MCPcopy Index your code
hub / github.com/ChinaSiro/claude-code-sourcemap / ny4

Function ny4

package/cli.js:1713–1713  ·  view source on GitHub ↗
(q,K,_,z=kU)

Source from the content-addressed store, hash-verified

1711
1712Plan mode note: In plan mode, use this tool to clarify requirements or choose between approaches BEFORE finalizing your plan. Do NOT use this tool to ask "Is my plan ready?" or "Should I proceed?" - use ${TL} for plan approval. IMPORTANT: Do not reference "the plan" in your questions (e.g., "Do you have feedback about the plan?", "Does the plan look good?") because the user cannot see the plan in the UI until you call ${TL}. If you need plan approval, use ${TL} instead.
1713`});var BC="TodoWrite";var JM="Skill";var TN="TaskCreate";var Gq6="TaskGet";var Tq6="TaskList";var bL="TaskUpdate";var cN8="EnterWorktree";var lN8="ExitWorktree";function ezz(q,K){let{min:_,max:z}=K,Y=new Set;for(let $ of q.split(",")){let A=$.match(/^\*(?:\/(\d+))?$/);if(A){let j=A[1]?parseInt(A[1],10):1;if(j<1)return null;for(let H=_;H<=z;H+=j)Y.add(H);continue}let O=$.match(/^(\d+)-(\d+)(?:\/(\d+))?$/);if(O){let j=parseInt(O[1],10),H=parseInt(O[2],10),J=O[3]?parseInt(O[3],10):1,M=_===0&&z===6,X=M?7:z;if(j>H||J<1||j<_||H>X)return null;for(let P=j;P<=H;P+=J)Y.add(M&&P===7?0:P);continue}if($.match(/^\d+$/)){let j=parseInt($,10);if(_===0&&z===6&&j===7)j=0;if(j<_||j>z)return null;Y.add(j);continue}return null}if(Y.size===0)return null;return Array.from(Y).sort(($,A)=>$-A)}function Eo6(q){let K=q.trim().split(/\s+/);if(K.length!==5)return null;let _=[];for(let z=0;z<5;z++){let Y=ezz(K[z],tzz[z]);if(!Y)return null;_.push(Y)}return{minute:_[0],hour:_[1],dayOfMonth:_[2],month:_[3],dayOfWeek:_[4]}}function Qy4(q,K){let _=new Set(q.minute),z=new Set(q.hour),Y=new Set(q.dayOfMonth),$=new Set(q.month),A=new Set(q.dayOfWeek),O=q.dayOfMonth.length===31,w=q.dayOfWeek.length===7,j=new Date(K.getTime());j.setSeconds(0,0),j.setMinutes(j.getMinutes()+1);let H=527040;for(let J=0;J<H;J++){let M=j.getMonth()+1;if(!$.has(M)){j.setMonth(j.getMonth()+1,1),j.setHours(0,0,0,0);continue}let X=j.getDate(),P=j.getDay();if(!(O&&w?!0:O?A.has(P):w?Y.has(X):Y.has(X)||A.has(P))){j.setDate(j.getDate()+1),j.setHours(0,0,0,0);continue}if(!z.has(j.getHours())){j.setHours(j.getHours()+1,0,0,0);continue}if(!_.has(j.getMinutes())){j.setMinutes(j.getMinutes()+1);continue}return j}return null}function qYz(q,K){return new Date(2000,0,1,K,q).toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit"})}function KYz(q,K){let _=new Date;return _.setUTCHours(K,q,0,0),_.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit",timeZoneName:"short"})}function bV6(q,K){let _=K?.utc??!1,z=q.trim().split(/\s+/);if(z.length!==5)return q;let[Y,$,A,O,w]=z,j=Y.match(/^\*\/(\d+)$/);if(j&&$==="*"&&A==="*"&&O==="*"&&w==="*"){let P=parseInt(j[1],10);return P===1?"Every minute":`Every ${P} minutes`}if(Y.match(/^\d+$/)&&$==="*"&&A==="*"&&O==="*"&&w==="*"){let P=parseInt(Y,10);if(P===0)return"Every hour";return`Every hour at :${P.toString().padStart(2,"0")}`}let H=$.match(/^\*\/(\d+)$/);if(Y.match(/^\d+$/)&&H&&A==="*"&&O==="*"&&w==="*"){let P=parseInt(H[1],10),W=parseInt(Y,10),D=W===0?"":` at :${W.toString().padStart(2,"0")}`;return P===1?`Every hour${D}`:`Every ${P} hours${D}`}if(!Y.match(/^\d+$/)||!$.match(/^\d+$/))return q;let J=parseInt(Y,10),M=parseInt($,10),X=_?KYz:qYz;if(A==="*"&&O==="*"&&w==="*")return`Every day at ${X(J,M)}`;if(A==="*"&&O==="*"&&w.match(/^\d$/)){let P=parseInt(w,10)%7,W;if(_){let D=new Date,f=(P-D.getUTCDay()+7)%7;D.setUTCDate(D.getUTCDate()+f),D.setUTCHours(M,J,0,0),W=Uy4[D.getDay()]}else W=Uy4[P];if(W)return`Every ${W} at ${X(J,M)}`}if(A==="*"&&O==="*"&&w==="1-5")return`Weekdays at ${X(J,M)}`;return q}var tzz,Uy4;var Lo6=y(()=>{tzz=[{min:0,max:59},{min:0,max:23},{min:1,max:31},{min:1,max:12},{min:0,max:6}];Uy4=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]});import{randomUUID as _Yz}from"crypto";import{readFileSync as zYz}from"fs";import{mkdir as YYz,writeFile as $Yz}from"fs/promises";import{join as Op1}from"path";function pr(q){return Op1(q??Fz(),AYz)}async function IV6(q){let K=X8(),_;try{_=await K.readFile(pr(q),{encoding:"utf-8"})}catch(A){if(e3(A))return[];return H6(A),[]}let z=m5(_,!1);if(!z||typeof z!=="object")return[];let Y=z;if(!Array.isArray(Y.tasks))return[];let $=[];for(let A of Y.tasks){if(!A||typeof A.id!=="string"||typeof A.cron!=="string"||typeof A.prompt!=="string"||typeof A.createdAt!=="number"){N(`[ScheduledTasks] skipping malformed task: ${g6(A)}`);continue}if(!Eo6(A.cron)){N(`[ScheduledTasks] skipping task ${A.id} with invalid cron '${A.cron}'`);continue}$.push({id:A.id,cron:A.cron,prompt:A.prompt,createdAt:A.createdAt,...typeof A.lastFiredAt==="number"?{lastFiredAt:A.lastFiredAt}:{},...A.recurring?{recurring:!0}:{},...A.permanent?{permanent:!0}:{}})}return $}function nN8(q){let K;try{K=zYz(pr(q),"utf-8")}catch{return!1}let _=m5(K,!1);if(!_||typeof _!=="object")return!1;let z=_.tasks;return Array.isArray(z)&&z.length>0}async function wp1(q,K){let _=K??Fz();await YYz(Op1(_,".claude"),{recursive:!0});let z={tasks:q.map(({durable:Y,...$})=>$)};await $Yz(pr(_),g6(z,null,2)+`
1714`,"utf-8")}async function dy4(q,K,_,z,Y){let $=_Yz().slice(0,8),A={id:$,cron:q,prompt:K,createdAt:Date.now(),..._?{recurring:!0}:{}};if(!z)return mi8({...A,...Y?{agentId:Y}:{}}),$;let O=await IV6();return O.push(A),await wp1(O),$}async function Jw6(q,K){if(q.length===0)return;if(K===void 0&&ob6(q)===q.length)return;let _=new Set(q),z=await IV6(K),Y=z.filter(($)=>!_.has($.id));if(Y.length===z.length)return;await wp1(Y,K)}async function cy4(q,K,_){if(q.length===0)return;let z=new Set(q),Y=await IV6(_),$=!1;for(let A of Y)if(z.has(A.id))A.lastFiredAt=K,$=!0;if(!$)return;await wp1(Y,_)}async function uV6(q){let K=await IV6(q);if(q!==void 0)return K;let _=rb6().map((z)=>({...z,durable:!1}));return[...K,..._]}function xV6(q,K){let _=Eo6(q);if(!_)return null;let z=Qy4(_,new Date(K));return z?z.getTime():null}function ly4(q){let K=parseInt(q.slice(0,8),16)/4294967296;return Number.isFinite(K)?K:0}function jp1(q,K,_,z=kU){let Y=xV6(q,K);if(Y===null)return null;let $=xV6(q,Y);if($===null)return Y;let A=Math.min(ly4(_)*z.recurringFrac*($-Y),z.recurringCapMs);return Y+A}function ny4(q,K,_,z=kU){let Y=xV6(q,K);if(Y===null)return null;if(new Date(Y).getMinutes()%z.oneShotMinuteMod!==0)return Y;let $=z.oneShotFloorMs+ly4(_)*(z.oneShotMaxMs-z.oneShotFloorMs);return Math.max(Y-$,K)}function iy4(q,K){return q.filter((_)=>{let z=xV6(_.cron,_.createdAt);return z!==null&&z<K})}var AYz,kU;var vq6=y(()=>{v8();Lo6();_8();y8();e7();vO();E8();l8();AYz=Op1(".claude","scheduled_tasks.json");kU={recurringFrac:0.1,recurringCapMs:900000,oneShotMaxMs:90000,oneShotFloorMs:0,oneShotMinuteMod:30,recurringMaxAgeMs:604800000}});var oy4={};T8(oy4,{isKairosCronEnabled:()=>vN,isDurableCronEnabled:()=>Br,buildCronListPrompt:()=>Wp1,buildCronDeletePrompt:()=>Xp1,buildCronCreatePrompt:()=>Jp1,buildCronCreateDescription:()=>Hp1,DEFAULT_MAX_AGE_DAYS:()=>kq6,CRON_LIST_TOOL_NAME:()=>Ro6,CRON_LIST_DESCRIPTION:()=>Pp1,CRON_DELETE_TOOL_NAME:()=>Vq6,CRON_DELETE_DESCRIPTION:()=>Mp1,CRON_CREATE_TOOL_NAME:()=>xL});function vN(){return!i6(process.env.CLAUDE_CODE_DISABLE_CRON)&&gV("tengu_kairos_cron",!0,ry4)}function Br(){return gV("tengu_kairos_cron_durable",!0,ry4)}function Hp1(q){return q?"Schedule a prompt to run at a future time — either recurring on a cron schedule, or once at a specific time. Pass durable: true to persist to .claude/scheduled_tasks.json; otherwise session-only.":"Schedule a prompt to run at a future time within this Claude session — either recurring on a cron schedule, or once at a specific time."}function Jp1(q){return`Schedule a prompt to be enqueued at a future time. Use for both recurring schedules and one-shot reminders.
1715
1716Uses standard 5-field cron in the user's local timezone: minute hour day-of-month month day-of-week. "0 9 * * *" means 9am local — no timezone conversion needed.

Callers 1

pFunction · 0.85

Calls 3

xV6Function · 0.85
ly4Function · 0.85
maxMethod · 0.45

Tested by

no test coverage detected