@crewx/sdk 0.9.0-rc.233 → 0.9.0-rc.235
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/index.js +2 -2
- package/dist/index.js +2 -2
- package/package.json +1 -1
package/dist/esm/index.js
CHANGED
|
@@ -427,7 +427,7 @@ Set CREWX_SDK_WORKFLOW_TEMPLATES_PATH or pass options.templatesPath.`)}h();var m
|
|
|
427
427
|
`)}var Og=class extends Error{constructor(n){super(n==="timeout"?"model interceptor timed out":"model interceptor aborted");this.reason=n;}reason};function b8(e,t,n){return new Promise((r,o)=>{let i,s=()=>{i!==void 0&&clearTimeout(i),n?.removeEventListener("abort",a);},a=()=>{s(),o(new Og("aborted"));};if(i=setTimeout(()=>{s(),o(new Og("timeout"));},t),n?.aborted){a();return}n?.addEventListener("abort",a,{once:true}),e.then(d=>{s(),r(d);},d=>{s(),o(d);});})}function v8(e){return {inputTokens:e.inputTokens,outputTokens:e.outputTokens,cachedInputTokens:e.cachedInputTokens,costUsd:e.costUsd}}function C8(e){return e.replace(/^```(?:json)?\s*/i,"").replace(/\s*```$/,"").trim()}async function _R(e){let t=Date.now(),n,r=(a,d)=>({ok:false,code:a,message:d,durationMs:Date.now()-t,...n?{usage:n}:{}});if(e.signal?.aborted)return r(Jt.ABORTED,"model interceptor aborted before it started");let o;try{o=(e.providerFactory??Do)(e.providerStr);}catch(a){return r(Jt.PROVIDER_FAILED,a instanceof Error?a.message:String(a))}let i,s=()=>{i!==void 0&&On(i,{signal:"SIGKILL"}).catch(()=>{});};e.signal?.addEventListener("abort",s,{once:true});try{let a=await b8(o.query(e.text,{systemPrompt:dM(e.type,e.instruction),...e.model?{model:e.model}:{},timeoutMs:e.timeoutMs,cwd:e.cwd,env:{CREWX_INTERCEPTOR:"1"},onPid:c=>{i=c,e.onSpawn?.(c),e.signal?.aborted&&s();},onUsage:c=>{n=v8(c);}}),e.timeoutMs,e.signal);if(e.type==="mutation"){let c=a.trim();return c===""?r(Jt.PAYLOAD_INVALID,"model interceptor returned empty output"):{ok:!0,result:{modified:c!==e.text,payload:{messages:[{role:e.role,content:c}]}},durationMs:Date.now()-t,...n?{usage:n}:{}}}let d;try{d=JSON.parse(C8(a));}catch{return r(Jt.PAYLOAD_INVALID,"model interceptor verdict is not JSON")}return {ok:!0,result:d,durationMs:Date.now()-t,...n?{usage:n}:{}}}catch(a){return a instanceof Og?r(a.reason==="timeout"?Jt.TIMEOUT:Jt.ABORTED,a.message):r(Jt.PROVIDER_FAILED,a instanceof Error?a.message:String(a))}finally{e.signal?.removeEventListener("abort",s),e.onExit?.();try{await o.dispose?.();}catch{}}}h();Pi();var P8=["PATH","HOME","LANG","TMPDIR"],lM=4*1024*1024;function uM(e=process.env){let t={CREWX_INTERCEPTOR:"1"};for(let n of P8){let r=e[n];r!==void 0&&(t[n]=r);}return t}function AR(e){return new Promise(t=>{let n=Date.now(),r=[],o=0,i=[],s=0,a=false,d=false,c,l,[u,...p]=e.command;if(u===void 0){t({ok:false,code:Jt.SPAWN_FAILED,message:"empty command",durationMs:0});return}let f;try{f=spawn(u,p,{cwd:e.cwd,env:uM(),shell:!1,detached:process.platform!=="win32",stdio:["pipe","pipe","pipe"],windowsHide:!0});}catch(_){t({ok:false,code:Jt.SPAWN_FAILED,message:_ instanceof Error?_.message:String(_),durationMs:Date.now()-n});return}let g=_=>{if(a)return;a=true,c!==void 0&&clearTimeout(c),l&&e.signal?.removeEventListener("abort",l),e.onExit?.();let A=Buffer.concat(i).toString("utf8"),I=Date.now()-n;t(_.ok?{ok:true,result:_.result,durationMs:I,...A?{stderr:A}:{}}:{ok:false,code:_.code,message:_.message,durationMs:I,...A?{stderr:A}:{}});},y=async(_,A)=>{if(a||d)return;d=true;let I=f.pid;if(I!==void 0)try{await On(I,{signal:"SIGKILL"});}catch{}d=false,g({ok:false,code:_,message:A});};f.pid!==void 0&&e.onSpawn?.(f.pid),f.stdin?.on("error",()=>{}),f.stdout?.on("data",_=>{if(!(a||d)){if(o+=_.length,o>4194304){y(Jt.OUTPUT_TOO_LARGE,`stdout exceeded ${4194304} bytes`);return}r.push(_);}}),f.stderr?.on("data",_=>{if(s>=lM)return;let A=lM-s;i.push(_.length>A?_.subarray(0,A):_),s+=Math.min(_.length,A);}),f.on("error",_=>{g({ok:false,code:Jt.SPAWN_FAILED,message:_.message});}),f.on("close",(_,A)=>{if(a||d)return;if(_!==0){g({ok:false,code:Jt.EXIT_FAILURE,message:`exited with ${A?`signal ${A}`:`code ${_}`}`});return}let I=iM(Buffer.concat(r).toString("utf8"),e.request.id);if(!I.ok){g({ok:false,code:I.code,message:I.message});return}g({ok:true,result:I.result});}),c=setTimeout(()=>{y(Jt.TIMEOUT,`program interceptor timed out after ${e.timeoutMs} ms`);},e.timeoutMs),e.signal&&(e.signal.aborted?y(Jt.ABORTED,"interceptor aborted before it finished"):(l=()=>{y(Jt.ABORTED,"interceptor aborted before it finished");},e.signal.addEventListener("abort",l,{once:true}))),f.stdin?.end(`${JSON.stringify(e.request)}
|
|
428
428
|
`);})}function hM(e){return e==="request"?"user":"assistant"}function IR(e,t,n){return {phase:e,status:"stopped",text:t,changed:false,steps:n}}function pM(e,t){return [{role:hM(e),content:t}]}function fM(e){return [...e].sort((t,n)=>t.priorityHint!==n.priorityHint?t.priorityHint-n.priorityHint:t.name<n.name?-1:t.name>n.name?1:0)}function N8(e,t){let n=fM(e.filter(o=>o.type==="mutation")),r=fM(e.filter(o=>o.type==="validation"));return t==="request"?[...n,...r]:[...r,...n]}function gM(e){return `${e.message} (code ${e.code})`}var Td=class e{items;constructor(t){this.items=t;}static fromAgent(t){let n=P_(t.id,t.interceptors);if(!n)return;let r=n.filter(o=>o.enabled);return r.length>0?new e(r):void 0}hasPhase(t){return this.items.some(n=>n.phase===t)}get responseIntercepted(){return this.items.some(t=>t.phase==="response"&&t.mode==="active")}async run(t,n,r){let o=N8(this.items.filter(l=>l.phase===t),t),i=[],s=[],a=n,d=false,c;for(let l of o){if(r.signal?.aborted)return IR(t,n,i);let u={name:l.name,type:l.type,phase:t,mode:l.mode,outcome:"bypassed",failOpen:l.failOpen,durationMs:0,before:a};if(c||l.type==="mutation"&&l.mode==="active"&&d){i.push(u);continue}let p=await this.invoke(l,t,a,r);if(r.signal?.aborted)return u.durationMs=p.durationMs,u.outcome="failed",u.error={code:ks,message:"task stopped while this interceptor was running"},i.push(u),IR(t,n,i);if(u.durationMs=p.durationMs,p.usage&&(u.usage=p.usage),p.stderr&&(u.stderr=p.stderr),l.type==="mutation"){let y,_;if(!p.ok)_={code:p.code,message:p.message};else {let A=sM(p.result,pM(t,a));A.ok?y=A.modified?A.messages[0].content:a:_={code:A.code,message:A.message};}if(_){if(u.error=_,l.mode==="audit")u.outcome="failed";else {for(let A of s)A.outcome="bypassed";s.length=0,a=n,d=true,u.outcome=l.failOpen?"failed":"blocked",l.failOpen||(c={step:l.name,code:xi,message:`${t} blocked: interceptor "${l.name}" failed: ${gM(_)}`});}i.push(u);continue}u.after=y,l.mode==="audit"?u.outcome="audit":y!==a?(u.outcome="applied",s.push(u),a=y):u.outcome="unchanged",i.push(u);continue}let f=p.ok?aM(p.result):{ok:false,code:p.code,message:p.message};if(!f.ok){let y={code:f.code,message:f.message};u.error=y,l.mode==="audit"||l.failOpen?u.outcome="failed":(u.outcome="blocked",c={step:l.name,code:xi,message:`${t} blocked: interceptor "${l.name}" failed: ${gM(y)}`}),i.push(u);continue}let g=f.verdict;if(u.verdict=g,l.mode==="audit")u.outcome="audit";else if(!g.valid&&g.severity==="error"){u.outcome="blocked";let y=g.messages.map(_=>_.message).join("; ")||"error verdict";c={step:l.name,code:xi,message:`${t} blocked by interceptor "${l.name}": ${y}`};}else u.outcome="unchanged";i.push(u);}return c?{phase:t,status:"blocked",text:n,changed:false,steps:i,blocked:c}:r.signal?.aborted?IR(t,n,i):{phase:t,status:"passed",text:a,changed:a!==n,steps:i}}invoke(t,n,r,o){if(t.command){let s=oM({name:t.name,phase:n,messages:pM(n,r),model:o.model??null,config:t.config,timeoutMs:t.timeoutMs,sessionId:o.threadId??"",traceId:o.traceId,agentId:o.agentId});return AR({command:t.command,cwd:o.cwd,request:s,timeoutMs:t.timeoutMs,signal:o.signal,onSpawn:o.onSpawn,onExit:o.onExit})}let i=t.model;return _R({providerStr:i.provider,...i.model?{model:i.model}:{},instruction:i.instruction,type:t.type,role:hM(n),text:r,timeoutMs:t.timeoutMs,cwd:o.cwd,signal:o.signal,onSpawn:o.onSpawn,onExit:o.onExit,providerFactory:o.providerFactory})}};h();var mM=Symbol.for("crewx.interceptor.run-stops");function N_(){let e=globalThis,t=e[mM];if(t)return t;let n=new Map;return e[mM]=n,n}function ER(e,t){N_().set(e,t);}function TR(e,t){N_().get(e)===t&&N_().delete(e);}function yM(e){let t=N_().get(e);return t?(t.abort(),true):false}h();vR();h();function CM(){return Object.freeze({schemaVersion:1,supportedProviders:Object.freeze(["cli/claude","cli/codex","cli/antigravity"]),registryVersions:Object.freeze([1,2]),features:Object.freeze(["antigravity-acp-accounts-v1"])})}U_();Ug();FR();Z_();M_();Jc();Lo();h();Ag();Mw();var N4=new Set(["USAGE_LIMITED","CONTEXT_WINDOW_EXCEEDED","INPUT_TOO_LARGE","MODEL_NOT_SUPPORTED","MODEL_AT_CAPACITY","AUTH_REQUIRED","ACCOUNT_SETTING_REQUIRED","MODEL_RETIRED","SUBSCRIPTION_REQUIRED","CLI_NOT_AVAILABLE","CLI_UPDATE_REQUIRED","AGENT_NOT_FOUND","PERMISSION_OR_TRUST","TIMEOUT_OR_STUCK","NETWORK_OR_PROVIDER_TRANSIENT","PROVIDER_CONFIGURATION","AGENT_MODE_RESTRICTED","PROCESS_FAILED"]),x4=new Set(["plan","plan-auto","read-only"]),D4={QUOTA_EXHAUSTED:"USAGE_LIMITED",RATE_LIMITED:"USAGE_LIMITED",AUTH_REQUIRED:"AUTH_REQUIRED",ACCOUNT_SETTING_REQUIRED:"ACCOUNT_SETTING_REQUIRED",MODEL_RETIRED:"MODEL_RETIRED",SUBSCRIPTION_REQUIRED:"SUBSCRIPTION_REQUIRED",TIMEOUT_IDLE:"TIMEOUT_OR_STUCK",TIMEOUT_TOTAL:"TIMEOUT_OR_STUCK",TIMEOUT_RESUME:"NETWORK_OR_PROVIDER_TRANSIENT",PROVIDER_NOT_FOUND:"PROVIDER_CONFIGURATION",INVALID_PROVIDER_FORMAT:"PROVIDER_CONFIGURATION",PROVIDER_CRASHED:"PROCESS_FAILED",EMPTY_OUTPUT:"PROCESS_FAILED"},L4=[{code:"USAGE_LIMITED",pattern:/(?:rate[ _-]?limit|quota|usage[ /_-]?limit|usage exhausted|too many requests|429\b)/i},{code:"CONTEXT_WINDOW_EXCEEDED",pattern:/context (?:window|length)|maximum context|context[_ -]?window[_ -]?exceeded|too many tokens/i},{code:"INPUT_TOO_LARGE",pattern:/input[_ -]?(?:is[_ -]?)?too[_ -]?large|prompt (?:is )?too (?:large|long)|request[_ -]?(?:is[_ -]?)?too[_ -]?large|payload[_ -]?(?:is[_ -]?)?too[_ -]?large|maximum input/i},{code:"MODEL_AT_CAPACITY",pattern:/(?:model|service|provider).*(?:at capacity|overloaded|temporarily busy)|at capacity|overloaded/i},{code:"MODEL_NOT_SUPPORTED",pattern:/(?:model|invalid_request_error).*(?:not[ _-]?supported|unsupported|does[ _-]?not[ _-]?exist|not[ _-]?found|invalid)|model[_-]?not[_-]?(?:found|supported)/i},{code:"MODEL_NOT_SUPPORTED",pattern:/\bunrecognized_model\b/i},{code:"AUTH_REQUIRED",pattern:/(?:401\b|unauthori[sz]ed|not logged in|login required|sign[ -]?in required|api key (?:is )?(?:missing|invalid|required)|authentication required)/i},{code:"CLI_UPDATE_REQUIRED",pattern:/(?:requires? a newer version|update (?:your )?cli|cli version.*(?:old|outdated|unsupported)|version mismatch)/i},{code:"CLI_NOT_AVAILABLE",pattern:/(?:ENOENT|command not found|executable.*not found|cli.*(?:not installed|unavailable)|is .* installed\?)/i},{code:"AGENT_NOT_FOUND",pattern:/agent[_ -]?not[_ -]?found|unknown agent/i},{code:"PERMISSION_OR_TRUST",pattern:/(?:permission denied|operation not permitted|workspace trust|not trusted|access denied|EACCES|EPERM)/i},{code:"NETWORK_OR_PROVIDER_TRANSIENT",pattern:/(?:resume failed|failed .*resum(?:e|ing)|after resuming the session|재개 실패|세션 재개)/i},{code:"TIMEOUT_OR_STUCK",pattern:/(?:timeout|timed out|took too long|stuck|idle timeout|ETIMEDOUT)/i},{code:"NETWORK_OR_PROVIDER_TRANSIENT",pattern:/(?:network (?:unreachable|error)|connection (?:reset|refused|closed)|ECONN(?:RESET|REFUSED|ABORTED)|service unavailable|upstream.*(?:5\d\d|error)|provider.*(?:5\d\d|unavailable|down)|\b5\d\d\b)/i},{code:"PROVIDER_CONFIGURATION",pattern:/(?:invalid provider|unsupported provider|provider namespace|provider configuration|provider config|missing provider)/i}];function iS(e){try{if(!Nd(e)||e.status!=="failed")return tS();let t=M4(e.error);if(oS(t.message))return tS();let n=mo(e.providerId)??t.provider??null,r=B4(e.logs),o=RU(t.code);if(o)return tp(o,n,t.message,t);let i=eh(t.providerCode)??eh(t.code),s=i?rS(i,t.message,{exitCode:G4(e.exitCode),mode:t.mode,fromProviderCodeField:!!t.providerCode}):void 0;if(s)return tp(s,n,t.message,t,i);if(n==="cli/antigravity"&&eh(t.providerCode)==="UNKNOWN"&&/(?:permission denied|operation not permitted|workspace trust|not trusted|access denied|EACCES|EPERM)/i.test(t.providerReason??""))return tp("PERMISSION_OR_TRUST",n,t.message,t,i);let a=F4(r);if(!U4(t)&&a&&(a.type==="user_stop"||oS(a.message)))return tS();if(a){let c=H4(a.code,a.providerCode,a.message);if(c)return tp(c,n,a.message??t.message,t,a.providerCode??a.code,a,a.structuredFailure?"terminal":"envelope")}let d=j4(t.message,r);return d?tp(d.code,n,d.message,t,d.terminal?.providerCode??d.terminal?.code,d.terminal,d.terminal?.structuredFailure?"terminal":"envelope"):tp("PROCESS_FAILED",n,t.message,t)}catch{return {errorCode:"PROCESS_FAILED",errorProvider:null}}}function tS(){return {errorCode:null,errorProvider:null}}function tp(e,t,n,r,o,i,s="envelope"){let a={};if(i?.resetAt!==void 0?a.resetAt=i.resetAt:r?.resetAt!==void 0?a.resetAt=r.resetAt:r?.retryAfterMs!==void 0&&(a.resetAt=Date.now()+r.retryAfterMs),e==="ACCOUNT_SETTING_REQUIRED"&&r?.settingReason&&(a.settingReason=r.settingReason),e==="MODEL_RETIRED"&&r?.replacementModel&&(a.replacementModel=r.replacementModel),e==="ACCOUNT_SETTING_REQUIRED"||e==="MODEL_RETIRED"||e==="SUBSCRIPTION_REQUIRED"){let u=Bc(r?.providerReason);u&&(a.providerReason=u);}else if(e==="PERMISSION_OR_TRUST"&&r?.providerReason){let u=gd(r.providerReason);u&&(a.providerReason=u);}if(r?.model&&(a.model=r.model),r?.mode&&(a.mode=r.mode),i?.type&&(a.upstreamType=i.type),o&&(a.upstreamCode=o),e==="CLI_NOT_AVAILABLE"||e==="CLI_UPDATE_REQUIRED"){let u=t?.startsWith("cli/")?t.slice(4):void 0;u&&(a.cliName=u);}let d=s==="terminal"?n:r?.message,c=s==="terminal"?i?.structuredFailure?d:void 0:r?.isEnvelope?d:void 0,l=gd(c);return l&&(a.technicalMessage=l),Object.keys(a).length>0?{errorCode:e,errorProvider:t,errorMeta:a}:{errorCode:e,errorProvider:t}}function M4(e){let t=typeof e=="string"?rp(e):e;return Nd(t)?{isEnvelope:true,code:mo(t.code),providerCode:mo(t.providerCode),settingReason:q4(t.settingReason),replacementModel:W4(t.replacementModel),providerReason:mo(t.providerReason),retryAfterMs:V4(t.retryAfterMs),resetAt:SU(t.resetAt),message:mo(t.message)??mo(t.error),provider:mo(t.provider)??mo(t.errorProvider),model:mo(t.model),mode:mo(t.mode)}:{isEnvelope:false,...typeof e=="string"&&e.trim()?{message:e.trim()}:{}}}function rp(e){try{return JSON.parse(e)}catch{return}}function U4(e){return !!(e.code||e.providerCode||e.message)}function B4(e){let t=[];if(typeof e=="string"){let n=rp(e);if(Array.isArray(n))t.push(...n);else for(let r of e.split(/\r?\n/)){let o=rp(r.trim());o!==void 0&&t.push(o);}}else Array.isArray(e)?t.push(...e):Nd(e)&&t.push(e);return t.flatMap(np)}function np(e){if(!Nd(e))return [];let t=mo(e.type),n=mo(e.message);if(n&&!t){let o=rp(n);if(Array.isArray(o))return o.flatMap(np);if(Nd(o))return np(o);let i=n.split(/\r?\n/).map(s=>rp(s.trim())).filter(s=>Nd(s));return i.length>0?i.flatMap(np):e.level==="stderr"?[{type:"stderr",message:n,rank:1,structuredFailure:false}]:np({type:"info",content:n})}if(t==="rate_limit_event"){let o=wU(e.rate_limit_info);return mo(o?.status)!=="rejected"?[]:[{type:t,code:"RATE_LIMITED",message:Zg(o?.message,e.message),resetAt:SU(o?.resetsAt),rank:4,structuredFailure:true}]}if(t==="turn.failed"||t==="error"){let o=wU(e.error),i=Zg(o?.message,o?.detail,e.message,e.errorMessage,e.content),s=Zg(o?.code,e.code,e.errorCode);return [{type:t,code:s,providerCode:Zg(o?.providerCode,e.providerCode),message:i,rank:t==="turn.failed"?3:2,structuredFailure:true}]}if(t==="text"&&typeof e.content=="string"){let o=rp(e.content);if(Nd(o))return np(o)}let r=Zg(e.errorMessage,e.content);return r&&oS(r)?[{type:"user_stop",message:r,rank:1,structuredFailure:false}]:r&&/(?:turn\.failed|type:error)/i.test(r)?[{type:r.match(/turn\.failed/i)?"turn.failed":"error",message:r,rank:3,structuredFailure:false}]:[]}function F4(e){return [...e].sort((t,n)=>n.rank-t.rank)[0]}function H4(e,t,n){let r=RU(e);if(r)return r;if(e){let o=rS(e,n);if(o)return o}if(t){let o=rS(t,n);if(o)return o}return nS(n)}function j4(e,t){let n=nS(e);if(n)return {code:n,message:e};for(let r of [...t].sort((o,i)=>i.rank-o.rank)){let o=nS(r.message);if(o)return {code:o,message:r.message,terminal:r}}}function nS(e){if(!(typeof e!="string"||!e.trim()))return L4.find(t=>t.pattern.test(e))?.code}function rS(e,t,n){let r=eh(e)??e;if(r==="MODEL_UNAVAILABLE")return /(?:capacity|overloaded|busy)/i.test(t??"")?"MODEL_AT_CAPACITY":"MODEL_NOT_SUPPORTED";if(r==="EMPTY_OUTPUT"&&n?.fromProviderCodeField===true&&n.exitCode===0&&$4(n.mode))return "AGENT_MODE_RESTRICTED";if(r!=="UNKNOWN")return D4[r]}function RU(e){let t=eh(e);return t&&N4.has(t)?t:void 0}function eh(e){return typeof e=="string"&&e.trim()?e.trim().toUpperCase():void 0}function $4(e){return typeof e=="string"&&x4.has(e.trim().toLowerCase())}function oS(e){return e?/\b(?:stopped|killed|aborted|cancelled|canceled)\s+by\s+user\b/i.test(e)||/사용자에 의해 중지됨/.test(e)||/\b(?:SIGTERM\s+143|143\s+SIGTERM)\b/i.test(e):false}function Nd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function wU(e){return Nd(e)?e:void 0}function mo(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function SU(e){return typeof e=="string"||typeof e=="number"&&Number.isFinite(e)?e:void 0}function V4(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function q4(e){return e==="region"||e==="training_consent"||e==="access"||e==="other"?e:void 0}function W4(e){return typeof e=="string"&&/^[A-Za-z0-9._/-]{1,128}$/.test(e)?e:void 0}function G4(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function Zg(...e){return e.map(mo).find(t=>!!t)}Cd();Rg();kc();h();h();function z4(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function J4(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function th(e){if(!z4(e)||J4(e,"grok"))return e;let t=e.mode,n;switch(t){case "agent":n={...e,grok:{alwaysApprove:true,sandbox:"workspace"}},delete n.mode;break;case "agent-full-access":case "yolo":n={...e,grok:{alwaysApprove:true,sandbox:"off"}},delete n.mode;break;case "read-only":case "plan":n={...e,mode:"plan",grok:{alwaysApprove:false,sandbox:"read-only"}};break;default:return e}return n}function sS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function bU(e){if(e)return e.slice(e.lastIndexOf("/")+1)}function K4(e,t){let n=e.providerOptions;if(sS(n)){let i=bU(t),s=i?n[i]:void 0;return sS(s)?{...s}:{...n}}let r=bU(t),o=r?e[r]:void 0;return sS(o)?{...o}:void 0}function eA(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,n=typeof t.provider=="string"?t.provider.trim():void 0,r=n?.slice(n.lastIndexOf("/")+1)==="grok",o=Object.prototype.hasOwnProperty.call(t,"grok")||Object.prototype.hasOwnProperty.call(t,"providerOptions"),i=r&&!o?th(t):t,s={};typeof i.provider=="string"&&i.provider.trim()&&(s.provider=i.provider.trim()),typeof i.model=="string"&&i.model.trim()&&(s.model=i.model.trim()),typeof i.mode=="string"&&i.mode.trim()&&(s.mode=i.mode.trim()),typeof i.effort=="string"&&i.effort.trim()&&(s.effort=i.effort.trim());let a=K4(i,s.provider);return a&&(s.providerOptions=a),s}function aS(e){if(e==null||e===false)return {active:false};if(e===true)return {active:true};if(typeof e=="object"){let t=e.mode;return {active:true,mode:t==="count"||t==="latch"?t:void 0}}return {active:false}}function dS(e,t,n,r){if(!r.active)return {active:false,crossProvider:false};if(!e||typeof e!="object"||Array.isArray(e))return {active:false,crossProvider:false};let i=e[t];if(!i||typeof i!="object"||Array.isArray(i))return {active:false,crossProvider:false};let s=eA(i.overdrive);if(!s||!s.provider||!s.model)return {active:false,crossProvider:false};let a=s.provider!==n;return {active:true,provider:s.provider,model:s.model,mode:s.mode,effort:s.effort,crossProvider:a,providerOptions:s.providerOptions}}function cS(e,t){if(!e||typeof e!="object"||Array.isArray(e))return {};let r=e[t];if(!r||typeof r!="object"||Array.isArray(r))return {};let o=r,i={};return o.provider!==void 0&&(typeof o.provider=="string"?o.provider.trim()&&(i.provider=o.provider.trim()):console.warn(`[crewx] options.${t}.provider must be a single string; ignoring non-string value (${JSON.stringify(o.provider)})`)),typeof o.model=="string"&&o.model.trim()&&(i.model=o.model.trim()),i}h();h();pd();la();ys();var Q4=[/^ANTHROPIC_/i,/^OPENAI_/i,/^AWS_SECRET/i,/^SLACK_/i,/^GITHUB_TOKEN$/i,/^CREWX_MCP_KEY$/i,/^DATABASE_/i,/^AWS_ACCESS_KEY/i,/^AWS_SESSION_TOKEN$/i,/^GH_TOKEN$/i,/^GH_APP_/i,/^NPM_TOKEN$/i,/^NPM_AUTH/i,/^GOOGLE_APPLICATION/i,/^GCLOUD_/i,/^AZURE_/i,/^ARM_/i,/^DOCKER_PASSWORD$/i,/^DOCKER_AUTH/i,/^SSH_PRIVATE/i,/^SSH_AUTH_SOCK$/i,/^CI_JOB_TOKEN$/i,/^ACTIONS_RUNTIME_TOKEN$/i,/^VAULT_TOKEN$/i,/^SONAR_TOKEN$/i,/^CODECOV_TOKEN$/i,/TOKEN$/i,/SECRET$/i,/PASSWORD$/i,/API_KEY$/i],Z4=/[;|&`$(){}!><\n\r]/,e3=2,t3=["*","**","*:*","* *","**/*"],uS=Symbol("crewx.execReuseScope"),vU=16;function n3(){let e={};for(let[t,n]of Object.entries(process.env))n!==void 0&&(Q4.some(r=>r.test(t))||(e[t]=n));return cr(e)}function r3(e){if(Z4.test(e))throw new Error(`exec blocked: shell metacharacter detected in "${e}"`)}function o3(e){return /^npx\s+@crewx\/[\w-]+/.test(e)}function i3(e){if(t3.includes(e.trim()))throw new Error(`exec config error: overly broad pattern "${e}" is not allowed`);if(!/^[\w./@-]/.test(e))throw new Error("exec config error: pattern must start with a command name")}function s3(e,t){let n=t.allow??[],r=t.deny??[];for(let o of [...n,...r])i3(o);return r.some(o=>Er(e,o))?false:o3(e)?true:n.some(o=>Er(e,o))}var OU=false;function a3(e){OU=e;}function el(e){if(!OU)return;let t=JSON.stringify({span:"template_exec",...e,timestamp:new Date().toISOString()});console.error(t);}function d3(e){let t=[],n="",r=false,o=false;for(let i=0;i<e.length;i++){let s=e[i];s==="'"&&!o?r=!r:s==='"'&&!r?o=!o:s===" "&&!r&&!o?n.length>0&&(t.push(n),n=""):n+=s;}return n.length>0&&t.push(n),t}function c3(e){return e[0]!=="crewx"?false:e[1]==="workflow"&&e[2]==="list"?e.length===3:e[1]!=="agent"||e[2]!=="ls"?false:e.length===3?true:e.length===4&&/^--team=.+/.test(e[3]??"")}function CU(e){return createHash("sha256").update(JSON.stringify(e)).digest("hex")}function l3(e){let t=Object.entries(e.sanitizedEnv).sort(([n],[r])=>n.localeCompare(r));return CU({argv:e.argv,cwd:e.cwd,execDepth:e.execDepth,timeout:e.policy.timeout??5e3,policy:{allow:e.policy.allow??[],deny:e.policy.deny??[]},env:CU(t)})}function lS(e,t){return `<${Xe.execOutput} cmd="${e}">
|
|
429
429
|
${t.trim()}
|
|
430
|
-
</${Xe.execOutput}>`}function PU(e,t,n){let r=Date.now(),o,i=parseInt(process.env.CREWX_EXEC_DEPTH??"0",10);if(isNaN(i)||i>=e3)return el({command:e,status:"denied",reason:"invalid or max recursion depth"}),"(exec blocked: max recursion depth reached)";try{r3(e);}catch{return el({command:e,status:"denied",reason:"shell metacharacter detected"}),`(exec blocked: shell metacharacter detected in "${e}")`}if(!s3(e,t))return el({command:e,status:"denied",reason:"not in allow list"}),`(exec blocked: ${e})`;try{let s=d3(e),[a,...d]=s;if(!a)return `(exec failed: ${e})`;let c=n3(),u=!!n&&c3(s)?l3({argv:s,cwd:process.cwd(),execDepth:i,policy:t,sanitizedEnv:c}):void 0;if(n&&u){let _=Date.now(),A=n.cache.get(u);if(A!==void 0){let I=Date.now()-_;return n.metrics.reusedCalls+=1,n.metrics.reusedMs+=I,el({command:e,status:"reused",allowed_by:"policy",duration_ms:I}),lS(e,A)}}if(n?.listResolver&&u){let _=Date.now(),A=n.listResolver(s,{cwd:process.cwd(),env:c});if(A!==void 0){let I=Date.now()-_;return n.metrics.inProcessCalls+=1,n.metrics.inProcessMs+=I,n.cache.size<vU&&n.cache.set(u,A),el({command:e,status:"in-process",allowed_by:"policy",duration_ms:I}),lS(e,A)}}xc();let p=Date.now();n&&u&&(o=p,n.metrics.actualCalls+=1);let f=execFileSync(a,d,{timeout:t.timeout??5e3,maxBuffer:64*1024,encoding:null,env:{...c,CREWX_EXEC_DEPTH:String(i+1)},stdio:["pipe","pipe","pipe"]}),g=yg(f);n&&u&&(n.metrics.actualMs+=Date.now()-p,o=void 0,n.cache.size<vU&&n.cache.set(u,g));let y=Date.now()-r;return el({command:e,status:"allowed",allowed_by:"policy",duration_ms:y}),lS(e,g)}catch{return n&&o!==void 0&&(n.metrics.actualMs+=Date.now()-o),el({command:e,status:"error",reason:"execution failed"}),`(exec failed: ${e})`}}h();function NU(e){return e==null?"":String(e)}h();function xU(e,t){return `\`\`\`${t?.hash?.lang??""}
|
|
430
|
+
</${Xe.execOutput}>`}function PU(e,t,n){let r=Date.now(),o,i=parseInt(process.env.CREWX_EXEC_DEPTH??"0",10);if(isNaN(i)||i>=e3)return el({command:e,status:"denied",reason:"invalid or max recursion depth"}),"(exec blocked: max recursion depth reached)";try{r3(e);}catch{return el({command:e,status:"denied",reason:"shell metacharacter detected"}),`(exec blocked: shell metacharacter detected in "${e}")`}if(!s3(e,t))return el({command:e,status:"denied",reason:"not in allow list"}),`(exec blocked: ${e})`;try{let s=d3(e),[a,...d]=s;if(!a)return `(exec failed: ${e})`;let c=n3(),u=!!n&&c3(s)?l3({argv:s,cwd:process.cwd(),execDepth:i,policy:t,sanitizedEnv:c}):void 0;if(n&&u){let _=Date.now(),A=n.cache.get(u);if(A!==void 0){let I=Date.now()-_;return n.metrics.reusedCalls+=1,n.metrics.reusedMs+=I,el({command:e,status:"reused",allowed_by:"policy",duration_ms:I}),lS(e,A)}}if(n?.listResolver&&u){let _=Date.now(),A=n.listResolver(s,{cwd:process.cwd(),env:c});if(A!==void 0){let I=Date.now()-_;return n.metrics.inProcessCalls+=1,n.metrics.inProcessMs+=I,n.cache.size<vU&&n.cache.set(u,A),el({command:e,status:"in-process",allowed_by:"policy",duration_ms:I}),lS(e,A)}}xc();let p=Date.now();n&&u&&(o=p,n.metrics.actualCalls+=1);let f=execFileSync(a,d,{timeout:t.timeout??5e3,maxBuffer:64*1024,encoding:null,env:{...c,CREWX_EXEC_DEPTH:String(i+1)},stdio:["pipe","pipe","pipe"],windowsHide:!0}),g=yg(f);n&&u&&(n.metrics.actualMs+=Date.now()-p,o=void 0,n.cache.size<vU&&n.cache.set(u,g));let y=Date.now()-r;return el({command:e,status:"allowed",allowed_by:"policy",duration_ms:y}),lS(e,g)}catch{return n&&o!==void 0&&(n.metrics.actualMs+=Date.now()-o),el({command:e,status:"error",reason:"execution failed"}),`(exec failed: ${e})`}}h();function NU(e){return e==null?"":String(e)}h();function xU(e,t){return `\`\`\`${t?.hash?.lang??""}
|
|
431
431
|
${e??""}
|
|
432
432
|
\`\`\``}h();h();function pS(e){let t=n=>String(n).padStart(2,"0");return `${e.getFullYear()}${t(e.getMonth()+1)}${t(e.getDate())}T${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}`}function fS(e){let t=e.toISOString();return `${t.slice(0,10)} ${t.slice(11,19)} UTC`}function gS(e,t){if(!e)return "";if(e.length<=t)return e;let n=e.length-t;return `${e.substring(0,t)} (...+${n} chars)`}function hS(e){return Array.isArray(e)||typeof e=="string"?e.length:0}function mS(e){return typeof e!="string"?"":e.replace(/\{\{/g,"{{").replace(/\}\}/g,"}}")}var DU=["B","KB","MB","GB"];function yS(e){if(e===0)return "0 B";let t=Math.min(Math.floor(Math.log(e)/Math.log(1024)),DU.length-1);return `${Math.round(e/Math.pow(1024,t)*100)/100} ${DU[t]}`}function _S(e){if(!e)return "";try{let t=e instanceof Date?e:new Date(e);return isNaN(t.getTime())?"":fS(t)}catch{return ""}}var nh=class{hbs;execPolicy;execEnabled;constructor(t={}){this.hbs=bs.create(),this.execPolicy=t.execPolicy??{allow:[],deny:[]},this.execEnabled=t.execEnabled??true,this.registerHelpers();}registerHelpers(){let t=this.hbs,n=this.execPolicy,r=this.execEnabled;t.registerHelper("exec",function(o,i){if(typeof o!="string")return "";if(!r)return "(exec disabled)";let s=i?.data?.__crewxExecScope,a=typeof s=="function"?s(uS):void 0;return new t.SafeString(PU(o,n,a))}),t.registerHelper("include",function(o){return new t.SafeString(NU(o))}),t.registerHelper("fenced_code",function(o,i){return new t.SafeString(xU(o,i))}),t.registerHelper("eq",function(o,i){return o===i}),t.registerHelper("ne",function(o,i){return o!==i}),t.registerHelper("and",function(o,i){return o&&i}),t.registerHelper("or",function(o,i){return o||i}),t.registerHelper("not",function(o){return !o}),t.registerHelper("contains",function(o,i){return Array.isArray(o)&&o.includes(i)}),t.registerHelper("json",function(o){return JSON.stringify(o,null,2)}),t.registerHelper("truncate",function(o,i){return gS(o,i)}),t.registerHelper("length",function(o){return hS(o)}),t.registerHelper("escapeHandlebars",function(o){return new t.SafeString(mS(o))}),t.registerHelper("formatFileSize",function(o){return yS(o)}),t.registerHelper("formatTimestamp",function(o){return _S(o)});}async render(t,n={},r={}){let o=this.hbs.compile(t,{noEscape:true}),i={};if(r.execReuseScope){let s=r.execReuseScope;i.__crewxExecScope=a=>a===uS?s:void 0;}return o(n,{data:i})}};h();h();var tA=class{async readFile(t){return readFile(t,"utf-8")}async exists(t){try{return await access(t),!0}catch{return false}}resolvePath(...t){return t.length===1?resolve(t[0]):resolve(join(...t))}isAbsolute(t){return isAbsolute(t)}async readdir(t){try{return await readdir(t)}catch{return []}}},tl=new tA;var nl=class{docs=new Map;fs;constructor(t){this.fs=t??tl;}async load(t,n){if(t)for(let[r,o]of Object.entries(t)){let i=o;if(typeof i=="string")this.docs.set(r,{content:i});else if(i&&typeof i=="object"){let s=i;"content"in s&&typeof s.content=="string"?this.docs.set(r,{content:s.content}):"path"in s&&typeof s.path=="string"?await this.loadFromFile(r,s.path,n):console.warn(`[DocumentLoader] Skipping '${r}': unsupported format`);}else console.warn(`[DocumentLoader] Skipping '${r}': unsupported format`);}}async getContent(t){return this.docs.get(t)?.content}async getToc(t){let n=this.docs.get(t);if(!n)return;let r=[];for(let o of n.content.split(`
|
|
433
433
|
`)){let i=/^(#{1,6})\s+(.+)$/.exec(o.trim());i&&r.push({depth:i[1].length,text:i[2].trim()});}if(r.length!==0)return r.map(({depth:o,text:i})=>`${" ".repeat(o-1)}- ${i}`).join(`
|
|
@@ -1357,7 +1357,7 @@ ${e.body}
|
|
|
1357
1357
|
`)}function Hhe(e){let t=iJ(e);return sJ(t).slice(0,Xf)}function aJ(e){return e.issues.map(t=>t.path.length>0?t.path.join("."):"response").slice(0,20)}function vN(e){if(typeof e!="string")throw new Fn(["response"]);let t;try{t=JSON.parse(hu(e));}catch{throw new Fn(["json"])}let n=tJ.safeParse(t);if(!n.success)throw new Fn(aJ(n.error));return n.data}function dJ(e){if(typeof e!="string")throw new Fn(["response"]);let t;try{t=JSON.parse(hu(e));}catch{throw new Fn(["json"])}let n=rJ.safeParse(t);if(!n.success)throw new Fn(aJ(n.error));return n.data}function Jz(e,t){let n=new Map(t.turns.map((s,a)=>[s.taskId,a])),r=n.get(t.coversFromTaskId),o=n.get(t.coversToTaskId),i=new Map;for(let s of e.highlights){let a=n.get(s.anchorTaskId),d=n.get(s.coversFromTaskId),c=n.get(s.coversToTaskId);if(a===void 0)throw new Fn(["highlights.anchorTaskId"]);if(d===void 0)throw new Fn(["highlights.coversFromTaskId"]);if(c===void 0)throw new Fn(["highlights.coversToTaskId"]);if(d>c||d<r||c>o||a<d||a>c)throw new Fn(["highlights.coverage"]);let l={...s,text:hu(s.text)};if(l.text.trim().length===0||l.text.length>160||/[\r\n]/u.test(l.text))throw new Fn(["highlights.text"]);let u=JSON.stringify(l);i.set(u,l);}return [...i.values()]}function jhe(e,t){let n=new Map;for(let r of e.highlights){if(r.source==="manual"||r.status==="dismissed")continue;if(!t.taskIds.has(r.anchorTaskId))throw new Fn(["highlights.anchorTaskId"]);if(!t.taskIds.has(r.coversFromTaskId))throw new Fn(["highlights.coversFromTaskId"]);if(!t.taskIds.has(r.coversToTaskId))throw new Fn(["highlights.coversToTaskId"]);let o=oJ(r,"highlights","auto"),i=o.contentFingerprint||py(o);n.has(i)||n.set(i,o);}return [...n.values()]}function $he(e,t,n,r){return [e,t,n,r].join(":")}function jr(e,t,n,r){return {ok:false,failure:{code:e,message:t,retryable:n,attempts:r}}}function CN(e,t){return {threadId:e.threadId,agentId:e.agentId,workspaceId:e.workspaceId,turns:t,alreadyRecorded:e.alreadyRecorded,coversFromTaskId:t[0].taskId,coversToTaskId:t[t.length-1].taskId,detectorVersion:e.detectorVersion}}function Vhe(e){if(e.turns.length===0)return [];let t=[],n=[],r=()=>{n.length!==0&&(t.push({...e,turns:n,coversFromTaskId:n[0].taskId,coversToTaskId:n[n.length-1].taskId}),n=[]);};for(let o of e.turns){let i=[...n,o],s=i.length>Zz,a=false;if(!s){let d=CN(e,i),c=uy(d);a=SN(c).length>Xf;}if((s||a)&&n.length>0){r(),n=[o];let d=CN(e,n),c=uy(d);if(SN(c).length>Xf)throw new ht("turns.prompt.length");continue}if(s||a)throw new ht("turns.prompt.length");n=i;}return r(),t}function qhe(e){return il("thl",JSON.stringify({kind:e.kind,text:e.text,anchorTaskId:e.anchorTaskId,coversFromTaskId:e.coversFromTaskId,coversToTaskId:e.coversToTaskId}))}function Whe(e){let t=new Map;for(let i of e){let s=i.candidate.contentFingerprint;t.has(s)||t.set(s,i);}let n=new Map;for(let i of t.values()){let s=n.get(i.batchIndex)??[];s.push(i),n.set(i.batchIndex,s);}let r=[...n.keys()].sort((i,s)=>i-s),o=[];for(let i=0;o.length<RN;i+=1){let s=false;for(let a of r){let d=n.get(a)?.[i];if(d&&(o.push(d.candidate),s=true,o.length>=RN))break}if(!s)break}return o}function Kz(e,t){return {...t===void 0?{}:{id:t},source:"auto",status:"active",kind:e.kind,text:e.text,anchorTaskId:e.anchorTaskId,coversFromTaskId:e.coversFromTaskId,coversToTaskId:e.coversToTaskId,contentFingerprint:e.contentFingerprint||py(e)}}function Xz(e){return {kind:e.kind,text:e.text,anchorTaskId:e.anchorTaskId,coversFromTaskId:e.coversFromTaskId,coversToTaskId:e.coversToTaskId,contentFingerprint:e.contentFingerprint}}var gu=class{repository;workspaceId;providerFactory;providers;constructor(t){this.repository=t.repository,this.workspaceId=t.workspaceId,this.providerFactory=t.providerFactory??(n=>Do(n)),this.providers=t.providers??{};}async detectBatch(t,n){let r=bN(CN(t,t.turns)),o=[];for(let i of ly){let s=a=>{o.push({provider:i,outcome:a,...n===void 0?{}:{batchIndex:n}});};try{let d=await(this.providers[i]??this.providerFactory(i)).query(r,{mode:"query"}),c=vN(d),l=Jz(c,t);return {ok:!0,provider:i,items:l,attempts:o}}catch(a){if(a instanceof Fn)return s("invalid_output"),{ok:false,code:"INVALID_OUTPUT",attempts:o};s("provider_error");}}return {ok:false,code:"PROVIDER_EXHAUSTED",attempts:o}}async detectBatches(t){let n,r=Array.isArray(t?.turns)?t.turns:[],o=r.length>0&&(t.coversFromTaskId===void 0||t.coversToTaskId===void 0)&&(t.covers_from_task_id===void 0||t.covers_to_task_id===void 0)?{...t,coversFromTaskId:r[0].taskId??r[0].task_id??r[0].id,coversToTaskId:r[r.length-1].taskId??r[r.length-1].task_id??r[r.length-1].id}:t;try{n=uy(o,{maxTurns:Number.MAX_SAFE_INTEGER,allowEmpty:!0});}catch(u){let p=u instanceof ht?u.field:"input";return jr("INVALID_INPUT",`Invalid thread highlight input: ${p}`,false,[])}if(n.turns.length===0)return jr("THREAD_HIGHLIGHT_REGENERATION_NO_ELIGIBLE_TURNS","No eligible completed turns were available for regeneration",false,[]);let i;try{i=Vhe(n);}catch(u){let p=u instanceof ht?u.field:"turns";return jr("INVALID_INPUT",`Invalid thread highlight input: ${p}`,false,[])}let s=[],a=[],d=ly[0];for(let[u,p]of i.entries()){let f;try{f=await this.detectBatch(p,u);}catch{return jr("THREAD_HIGHLIGHT_REGENERATION_DETECTION_FAILED","Thread highlight regeneration detection failed",true,s)}if(s.push(...f.attempts),!f.ok)return jr("THREAD_HIGHLIGHT_REGENERATION_DETECTION_FAILED","Thread highlight regeneration detection failed",true,s);d=f.provider;for(let g of f.items)a.push({batchIndex:u,candidate:{kind:g.kind,text:g.text,anchorTaskId:g.anchorTaskId,coversFromTaskId:g.coversFromTaskId,coversToTaskId:g.coversToTaskId,contentFingerprint:qhe(g)}});}let c=Whe(a);if(c.length<=Ok)return {ok:true,provider:d,candidates:c,batchCount:i.length,attempts:s};let l=await this.consolidate({threadId:n.threadId,detectorVersion:n.detectorVersion,newCandidates:c});return l.ok?{ok:true,provider:l.provider??d,candidates:l.candidates,batchCount:i.length,attempts:[...s,...l.attempts]}:{ok:false,failure:{...l.failure,attempts:[...s,...l.failure.attempts]}}}async consolidate(t){let n;try{n=iJ(t);}catch(d){let c=d instanceof ht?d.field:"input";return jr("INVALID_INPUT",`Invalid thread highlight consolidation input: ${c}`,false,[])}let r=n.automatic.map(d=>Kz(d,d.id));if(r.length<=Ok){let d=r.map(Xz);return {ok:true,provider:null,highlights:r,candidates:d,dismissedHighlightIds:[],attempts:[]}}let o;try{o=sJ(n).slice(0,Xf);}catch{return jr("INVALID_INPUT","Invalid thread highlight consolidation input: prompt",false,[])}let i=[],s=new Map(n.automatic.filter(d=>d.id!==void 0).map(d=>[d.id,d])),a=new Map;for(let d of n.automatic)a.set(d.contentFingerprint,d),a.set(py(d),d);for(let d of ly)try{let l=await(this.providers[d]??this.providerFactory(d)).query(o,{mode:"query"}),u=dJ(l),f=jhe(u,n).map(A=>{let I=(A.id===void 0?void 0:s.get(A.id))??a.get(A.contentFingerprint);return Kz(A,I?.id)}),g=new Set(f.flatMap(A=>A.id===void 0?[]:[A.id])),y=n.current.filter(A=>A.source==="auto"&&A.status==="active"&&A.id!==void 0).filter(A=>!g.has(A.id)).map(A=>A.id),_=f.map(Xz);return {ok:!0,provider:d,highlights:f,candidates:_,dismissedHighlightIds:y,attempts:i}}catch(c){if(c instanceof Fn)return i.push({provider:d,outcome:"invalid_output"}),jr("INVALID_OUTPUT","Consolidation returned invalid thread highlight JSON",true,i);i.push({provider:d,outcome:"provider_error"});}return jr("PROVIDER_EXHAUSTED","No thread highlight consolidation provider was available",true,i)}async consolidateHighlights(t){return this.consolidate(t)}async generate(t){let n;try{n=uy(t);}catch(s){let a=s instanceof ht?s.field:"input";return jr("INVALID_INPUT",`Invalid thread highlight input: ${a}`,false,[])}let r=n.workspaceId??this.workspaceId;if(!r&&this.repository.resolveWorkspaceId)try{r=await this.repository.resolveWorkspaceId(n.threadId)??void 0;}catch{return jr("REPOSITORY_FAILED","Thread highlight persistence failed",true,[])}if(!r)return jr("INVALID_INPUT","Invalid thread highlight input: workspaceId",false,[]);let o;try{o=bN(t);}catch{return jr("INVALID_INPUT","Invalid thread highlight input: prompt",false,[])}let i=[];for(let s of ly){let a;try{let l=await(this.providers[s]??this.providerFactory(s)).query(o,{mode:"query"}),u=vN(l);a=Jz(u,n);}catch(c){if(c instanceof Fn)return i.push({provider:s,outcome:"invalid_output"}),jr("INVALID_OUTPUT","Detector returned invalid thread highlight JSON",true,i);i.push({provider:s,outcome:"provider_error"});continue}let d=[];try{for(let c of a){let l=c.anchorTaskId,u=JSON.stringify({kind:c.kind,text:c.text,anchorTaskId:c.anchorTaskId,coversFromTaskId:c.coversFromTaskId,coversToTaskId:c.coversToTaskId}),p=il("thl",u),f=await this.repository.createHighlight({threadId:n.threadId,workspaceId:r,source:"auto",kind:c.kind,text:c.text,coversFromTaskId:c.coversFromTaskId,coversToTaskId:c.coversToTaskId,agentId:n.agentId,sourceTaskId:l,detectorVersion:n.detectorVersion,contentFingerprint:p,idempotencyKey:$he(n.threadId,l,n.detectorVersion,p),actorType:"agent",actorId:ON});d.push(f);}}catch{return jr("REPOSITORY_FAILED","Thread highlight persistence failed",true,i)}return {ok:true,provider:s,highlights:d,attempts:i}}return jr("PROVIDER_EXHAUSTED","No thread highlight provider was available",true,i)}async generateOrThrow(t){let n=await this.generate(t);if(!n.ok)throw new Pk(n.failure);return n}};async function Ghe(e,t){return new gu(t).generate(e)}async function zhe(e,t={}){return new gu({repository:{createHighlight:()=>{throw new Error("storage is not used by consolidation")}},providerFactory:t.providerFactory,providers:t.providers}).consolidate(e)}async function cJ(e,t){return new gu({repository:{createHighlight:()=>{throw new Error("storage is not used by batch detection")}},providerFactory:t.providerFactory,providers:t.providers}).detectBatches(e)}var Jhe=cJ,Khe=gu;Lo();cP();lP();h();Cd();Kd();h();qg();ek();uo();c_();var Xhe="model",Yhe="mode",Qhe="thought_level";function PN(e){if(e.length===0)return [];if(e[0]?.group!=null){let t=[];for(let n of e)for(let r of n.options??[])t.push(r);return t}return e}function Zhe(e,t){let n=new Map;for(let r of [...e,...t])n.has(r.id)||n.set(r.id,r);return Array.from(n.values())}function eme(e,t,n,r){let o=n.agentInfo?.name,i=t??o??e,s=r.configOptions??[],d=(r.modes?.availableModes??[]).map(A=>({id:A.id,name:A.name,...A.description!=null?{description:A.description}:{}})),c=[];for(let A of s)if(A.category?.trim().toLowerCase()===Yhe&&A.options!=null)for(let I of PN(A.options))I.value!=null&&c.push({id:I.value,name:I.name??I.value});let l=Zhe(d,c),u=[];for(let A of s)if(A.category?.trim().toLowerCase()===Qhe&&A.type==="select")for(let I of PN(A.options??[]))I.value!=null&&u.push(I.value);if(e==="claude"){let A=dg(sg()),I=lJ(n);return uJ(e,{models:A,modes:l,availableModelsCount:0,configModelsCount:0,skipModelWarn:true}),{id:`acp/${e}`,name:i,modes:l,effort:u,models:A,capabilities:I}}let f=(r.models?.availableModels??[]).map(A=>({id:A.modelId})),g=[];for(let A of s)if(A.category?.trim().toLowerCase()===Xhe&&A.options!=null)for(let I of PN(A.options))I.value!=null&&g.push({id:I.value,...I.name!=null?{name:I.name}:{}});let y=dg(ag(f,g));uJ(e,{models:y,modes:l,availableModelsCount:f.length,configModelsCount:g.length,skipModelWarn:false});let _=lJ(n);return {id:`acp/${e}`,name:i,modes:l,effort:u,models:y,capabilities:_}}function lJ(e){let t=e.agentCapabilities??{};return {loadSession:t.loadSession??false,image:t.promptCapabilities?.image??false,audio:t.promptCapabilities?.audio??false,mcp:t.mcpCapabilities!=null}}function uJ(e,t){!t.skipModelWarn&&t.models.length===0&&console.warn(`[acp] ${e} meta: models empty (availableModels=${t.availableModelsCount}, configOptions[model]=${t.configModelsCount})`),t.modes.length===0&&console.warn(`[acp] ${e} meta: modes empty`);}async function pJ(e){let t=su[e];if(!t)return null;let n=t.meta?.displayName,r=new ga({spawn:t.spawn,cwd:process.cwd()});try{await r.connect(t.clientInfo);let o=r.initResponse;if(!o)return null;let i=t.buildSessionParams({cwd:process.cwd()}),s=await r.newSessionRaw(i);return eme(e,n,o,s)}catch(o){return console.warn(`[acp] ${e} meta query failed: ${o instanceof Error?o.message:String(o)}`),null}finally{await r.dispose();}}async function tme(){let e=Object.keys(su),t=await Promise.allSettled(e.map(r=>pJ(r))),n=[];for(let r of t)r.status==="fulfilled"&&r.value!==null&&n.push(r.value);return n.sort((r,o)=>wg(r.id,o.id))}qg();pP();ek();_P();Ky();Ad();jw();p_();Uc();pd();h();var NN=0;function nme(e){let t=e.meta?.taskId,n=t?` taskId=${t}`:"";if(e.ok)return `Task completed:${n}
|
|
1358
1358
|
|
|
1359
1359
|
${e.data}`;let r=e.error?.message??"Unknown error";return `Task failed:${n}
|
|
1360
|
-
Error: ${r}`}function rme(e){let t=Array.from(e.agents.keys());return {name:"delegate_to_agent",description:`Delegate a task to another agent. Available agents: ${t.join(", ")}`,parameters:{type:"object",properties:{agent:{type:"string",description:`Agent ID to delegate to. One of: ${t.join(", ")}`},message:{type:"string",description:"Task description for the target agent"},mode:{type:"string",description:'Execution mode: "query" for questions, "execute" for actions. Default: query'}},required:["agent","message"]},execute:async n=>{if(NN>=3)return "Error: Maximum delegation depth (3) reached. Cannot delegate further.";let r=n.agent,o=n.message,i=n.mode??"query";if(!t.includes(r))return `Error: Unknown agent "${r}". Available: ${t.join(", ")}`;NN++;try{let s=i==="execute"?await e.execute(r,o):await e.query(r,o);return nme(s)}finally{NN--;}}}}Po();ys();h();Po();var gJ="update-quiesce.lock",hJ="update-admission",MN="CREWX_UPDATE_ADMISSION_SCOPE",ame=5e3;function Yf(){return join(Ht(),gJ)}function Dk(){return join(Ht(),hJ)}function mJ(e){return join(Dk(),`${e}.json`)}function mu(e){try{return process.kill(e,0),!0}catch(t){return t?.code!=="ESRCH"}}function yJ(){let e=process.env[MN];if(typeof e!="string"||e.length===0)return false;let t;try{t=readFileSync(Yf(),"utf8");}catch(o){return o?.code!=="ENOENT"}let n;try{n=JSON.parse(t);}catch{return true}if(typeof n!="object"||n===null)return true;let r=n;return typeof r.ownerPid!="number"||!Number.isInteger(r.ownerPid)?true:mu(r.ownerPid)?r.ownerScope===e:false}function fy(){let e;try{e=readFileSync(Yf(),"utf8");}catch(t){return t?.code==="ENOENT"?{kind:"absent"}:{kind:"unknown"}}try{let t=JSON.parse(e);return typeof t.ownerPid=="number"&&Number.isInteger(t.ownerPid)?{kind:"owned",ownerPid:t.ownerPid}:{kind:"unknown"}}catch{return {kind:"unknown"}}}function _J(e){let t=Yf(),n=`${t}.reclaim`;try{writeFileSync(n,String(process.pid),{flag:"wx"});}catch(r){if(r?.code==="EEXIST")return "contended";throw r}try{let r=fy();return r.kind!=="owned"||r.ownerPid!==e?"changed":(unlinkSync(t),"cleared")}finally{try{unlinkSync(n);}catch{}}}function dme(e){let t=Yf();mkdirSync(dirname(t),{recursive:true});let n=process.env[MN],r=typeof n=="string"&&n.length>0?n:null,o=JSON.stringify({quiescing:true,since:new Date().toISOString(),ownerPid:e,ownerScope:r});for(let i=0;i<2;i++)try{return writeFileSync(t,o,{flag:"wx"}),{ok:!0}}catch(s){if(s?.code!=="EEXIST")throw s;let a=fy();if(a.kind==="absent")continue;if(a.kind==="owned"&&a.ownerPid===e)return {ok:true};if(a.kind==="owned"&&!mu(a.ownerPid)){if(_J(a.ownerPid)==="contended")return {ok:false,reason:"another process is currently reclaiming the durable update-admission lock; refusing to proceed concurrently"};continue}return a.kind==="owned"?{ok:false,reason:`durable update-admission lock is already held by live pid ${a.ownerPid}`}:{ok:false,reason:"durable update-admission lock exists in an unreadable/corrupt state; refusing to acquire it without proof no other owner holds it"}}return {ok:false,reason:"lost the race to acquire the durable update-admission lock after reclaiming what looked like a dead owner"}}function cme(e){let t=fy();if(t.kind==="absent")return {ok:true};if(t.kind==="unknown")return {ok:false,reason:"durable update-admission lock is unreadable/corrupt; refusing to delete a marker this process cannot prove it owns"};if(t.ownerPid!==e)return {ok:false,reason:`durable update-admission lock is owned by pid ${t.ownerPid}, not this process (${e}); refusing to delete another owner's marker`};try{return unlinkSync(Yf()),{ok:!0}}catch(n){return n?.code==="ENOENT"?{ok:true}:{ok:false,reason:n instanceof Error?n.message:String(n)}}}function lme(){for(let e=0;e<3;e++){let t=fy();if(t.kind==="absent")return "absent";if(t.kind==="unknown")return "kept-unknown";if(mu(t.ownerPid))return "kept-live";let n=_J(t.ownerPid);if(n==="cleared")return "cleared";if(n==="contended")return "kept-live"}return "kept-unknown"}function AJ(e,t,n,r){let o=mJ(e);try{let i=Dk();mkdirSync(i,{recursive:!0});let s=new Date(Date.now()+n+ame).toISOString(),a=JSON.stringify({taskId:e,scheduleId:t,...r===void 0?{}:{runId:r},pid:process.pid,createdAt:new Date().toISOString(),expiresAt:s}),d=`${o}.${process.pid}.tmp`;return writeFileSync(d,a),renameSync(d,o),!0}catch{return false}}function xN(e){try{unlinkSync(mJ(e));}catch{}}function ume(){let e=Dk(),t;try{t=readdirSync(e);}catch(o){if(o?.code==="ENOENT")return [];throw o}let n=Date.now(),r=[];for(let o of t)if(o.endsWith(".json"))try{let i=JSON.parse(readFileSync(join(e,o),"utf8")),s=typeof i.taskId=="string"?i.taskId:o,a=typeof i.scheduleId=="string"?i.scheduleId:"unknown",d=typeof i.expiresAt=="string"?Date.parse(i.expiresAt):NaN;if(Number.isFinite(d)&&d<n){let c=typeof i.pid=="number"&&Number.isInteger(i.pid)?i.pid:null;if(c===null){r.push({taskId:s,scheduleId:a,corrupt:!0});continue}if(mu(c)){r.push({taskId:s,scheduleId:a,corrupt:!1});continue}continue}r.push({taskId:s,scheduleId:a,corrupt:!1});}catch{r.push({taskId:o,scheduleId:"unknown",corrupt:true});}return r}var IJ=1440*60*1e3;function pme(e,t=IJ){let n=dn("tsk");return AJ(n,e,t)?yJ()?(xN(n),{ok:false,reason:"UPDATE_QUIESCING",message:"CrewX is preparing for an update and is not accepting new work"}):{ok:true,taskId:n,release:()=>xN(n)}:{ok:false,reason:"ADMISSION_UNKNOWN",message:"Unable to durably record the update-admission reservation; refusing to start new work"}}h();Po();h();function gy(e,t,n){if(e.host!==t.host)return {kind:"unknown",reason:"identity-unknown"};if(!Number.isSafeInteger(e.pid)||e.pid<=0)return {kind:"unknown",reason:"identity-unknown"};let r;try{r=n.isAlive(e.pid);}catch{return {kind:"unknown",reason:"identity-unknown"}}if(r==="unknown")return {kind:"unknown",reason:"identity-unknown"};if(r===false)return {kind:"dead"};let o;try{o=e.pid===t.pid?t.pidStartIdentity:n.getStartIdentity(e.pid);}catch{return {kind:"unknown",reason:"identity-unknown"}}return o?o===e.pidStartIdentity?{kind:"live"}:{kind:"reused"}:{kind:"unknown",reason:"identity-unknown"}}var PJ="process-lease.json",Ime=".reclaim",Eme=4,Tme={isAlive:e=>mu(e),getStartIdentity:FN};function hy(e){let t=typeof e=="string"?e:e?.leasePath;return t?isAbsolute(t)?resolve(t):join(Ht(),t):join(Ht(),PJ)}function FN(e){if(!Number.isSafeInteger(e)||e<=0)return null;try{if(process.platform==="linux"){let r=readFileSync(`/proc/${e}/stat`,"utf8"),o=r.lastIndexOf(")");if(o<0)return null;let s=r.slice(o+2).trim().split(/\s+/)[19];return s?`linux:${s}`:null}return (process.platform==="win32"?execFileSync("powershell.exe",["-NoLogo","-NoProfile","-NonInteractive","-Command",`(Get-CimInstance Win32_Process -Filter "ProcessId = ${e}").CreationDate.ToUniversalTime().ToString("o")`],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}):execFileSync("ps",["-p",String(e),"-o","lstart="],{encoding:"utf8",stdio:["ignore","pipe","ignore"]})).trim()||null}catch{return null}}var kme=FN;function wme(e){let t;try{t=hy(e);}catch{return {status:"unknown",reason:"io-error"}}return nd(t)}function Rme(e={}){let t,n,r,o;try{t=hy(e),r=HN(e),n=jN(e,r),o=MJ(LJ(e)),$N(t);}catch{return mc("invalid-options")}let i={leaseId:randomUUID(),ownerId:n.ownerId,pid:n.pid,pidStartIdentity:n.pidStartIdentity,host:n.host,startedAt:o,heartbeatAt:o};for(let s=0;s<Eme;s+=1){try{if(bme(t,i))return wJ(t,i,e)}catch{return mc("io-error")}let a=nd(t);if(a.status==="absent")continue;if(a.status==="unknown")return mc(a.reason);if(UJ(a.record,n))return wJ(t,a.record,e);let d=gy(a.record,n,r);if(d.kind==="live")return mc("live-owner",a.record);if(d.kind==="unknown")return mc(d.reason,a.record);if(DJ({...e,leaseId:a.record.leaseId,expectedOwnerId:a.record.ownerId,ownerId:n.ownerId,pid:n.pid,pidStartIdentity:n.pidStartIdentity,host:n.host,processProbe:r}))continue;let l=nd(t);if(l.status==="unknown")return mc(l.reason);if(l.status==="present"&&l.record.leaseId===a.record.leaseId)return mc("contention",l.record)}return mc("contention")}function NJ(e){return BJ(e,(t,n,r)=>{let o={...n,heartbeatAt:MJ(r)};return vme(t,n,o),!0})}function xJ(e){return BJ(e,t=>{try{return unlinkSync(t),!0}catch(n){if(n?.code==="ENOENT")return !1;throw n}})}function DJ(e){let t,n,r;try{t=hy(e),r=HN(e),n=jN(e,r);}catch{return false}let o=nd(t);if(o.status!=="present"||o.record.leaseId!==e.leaseId||e.expectedOwnerId!==void 0&&o.record.ownerId!==e.expectedOwnerId)return false;let i=HJ(t,n,r);if(!i)return false;try{let s=nd(t);if(s.status!=="present"||s.record.leaseId!==e.leaseId||e.expectedOwnerId!==void 0&&s.record.ownerId!==e.expectedOwnerId)return !1;let a=gy(s.record,n,r);if(a.kind!=="dead"&&a.kind!=="reused")return !1;try{return unlinkSync(t),!0}catch(d){if(d?.code==="ENOENT")return !1;throw d}}catch{return false}finally{VN(i);}}function wJ(e,t,n){let r=t,o={leasePath:e,get leaseId(){return r.leaseId},get ownerId(){return r.ownerId},get pid(){return r.pid},get pidStartIdentity(){return r.pidStartIdentity},get record(){return r},renew:()=>{let i=NJ({...n,leasePath:e,leaseId:r.leaseId,ownerId:r.ownerId,pid:r.pid,pidStartIdentity:r.pidStartIdentity,host:r.host});if(i){let s=nd(e);s.status==="present"&&(r=s.record);}return i},release:()=>xJ({...n,leasePath:e,leaseId:r.leaseId,ownerId:r.ownerId,pid:r.pid,pidStartIdentity:r.pidStartIdentity,host:r.host})};return {acquired:true,status:"owner",role:"owner",leaseId:t.leaseId,ownerId:t.ownerId,record:t,lease:o}}function mc(e,t){return {acquired:false,status:"standby",role:"standby",reason:e,...t?{record:t}:{}}}function HN(e){return e.processProbe??e.probe??Tme}function LJ(e){return e.clock??e.now??(()=>Date.now())}function jN(e,t){let n=e.pid??process.pid;if(!Number.isSafeInteger(n)||n<=0)throw new Error("invalid process pid");let r=e.pidStartIdentity??t.getStartIdentity(n);if(typeof r!="string"||r.length===0)throw new Error("process start identity is unavailable");let o=e.host??hostname();if(typeof o!="string"||o.length===0)throw new Error("invalid process host");let i=e.ownerId??`${o}:${n}:${r}`;if(typeof i!="string"||i.length===0)throw new Error("invalid owner id");return {ownerId:i,pid:n,pidStartIdentity:r,host:o}}function MJ(e){let t=e();if(!Number.isFinite(t))throw new Error("clock returned a non-finite value");return new Date(t).toISOString()}function $N(e){mkdirSync(dirname(e),{recursive:true,mode:448});}function nd(e){let t;try{t=readFileSync(e,"utf8");}catch(r){return r?.code==="ENOENT"?{status:"absent"}:{status:"unknown",reason:"marker-unreadable"}}let n;try{n=JSON.parse(t);}catch{return {status:"unknown",reason:"marker-corrupt"}}return Sme(n)?{status:"present",record:n}:{status:"unknown",reason:"marker-corrupt"}}function Sme(e){if(typeof e!="object"||e===null||Array.isArray(e))return false;let t=e;return typeof t.leaseId=="string"&&t.leaseId.length>0&&typeof t.ownerId=="string"&&t.ownerId.length>0&&typeof t.pid=="number"&&Number.isSafeInteger(t.pid)&&t.pid>0&&typeof t.pidStartIdentity=="string"&&t.pidStartIdentity.length>0&&typeof t.host=="string"&&t.host.length>0&&RJ(t.startedAt)&&RJ(t.heartbeatAt)}function RJ(e){return typeof e=="string"&&Number.isFinite(Date.parse(e))}function UJ(e,t){return e.ownerId===t.ownerId&&e.pid===t.pid&&e.pidStartIdentity===t.pidStartIdentity&&e.host===t.host}function BJ(e,t){let n,r,o;try{n=hy(e),o=HN(e),r=jN(e,o);}catch{return false}let i=nd(n);if(i.status!=="present"||!SJ(i.record,e,r))return false;let s=HJ(n,r,o);if(!s)return false;try{let a=nd(n);return a.status!=="present"||!SJ(a.record,e,r)?!1:t(n,a.record,LJ(e))}catch{return false}finally{VN(s);}}function SJ(e,t,n){return e.leaseId===t.leaseId&&UJ(e,n)}function bme(e,t){let n=FJ(e,t);try{return linkSync(n,e),!0}catch(r){if(r?.code==="EEXIST")return false;throw r}finally{try{unlinkSync(n);}catch{}}}function vme(e,t,n){let r=nd(e);if(r.status!=="present"||r.record.leaseId!==t.leaseId)throw new Error("process lease changed before renewal");let o=FJ(e,n);try{renameSync(o,e);}finally{try{unlinkSync(o);}catch{}}}function FJ(e,t){$N(e);let n=`${e}.${process.pid}.${randomUUID()}.tmp`,r;try{return r=openSync(n,"wx",384),writeFileSync(r,JSON.stringify(t)),fsyncSync(r),closeSync(r),r=void 0,n}finally{if(r!==void 0)try{closeSync(r);}catch{}if(r!==void 0)try{unlinkSync(n);}catch{}}}function HJ(e,t,n){let r=`${e}${Ime}`,o=randomUUID();try{return $N(r),bJ(r,{lockId:o,pid:t.pid,pidStartIdentity:t.pidStartIdentity,host:t.host}),{path:r,lockId:o}}catch(l){if(l?.code!=="EEXIST")throw l}let i=UN(r);if(!i)return null;let s=gy(i,t,n);if(s.kind!=="dead"&&s.kind!=="reused")return null;let a=`${r}.${i.lockId}.${o}.steal`;try{renameSync(r,a);}catch(l){let u=l?.code;if(u==="ENOENT"||u==="EEXIST")return null;throw l}let d=true,c=()=>{if(d){try{linkSync(a,r);}catch(l){if(l?.code!=="EEXIST")return}try{unlinkSync(a),d=!1;}catch{}}};try{let l=UN(a);if(!l||l.lockId!==i.lockId)return c(),null;let u=gy(l,t,n);if(u.kind!=="dead"&&u.kind!=="reused")return c(),null;try{bJ(r,{lockId:o,pid:t.pid,pidStartIdentity:t.pidStartIdentity,host:t.host});}catch(f){if(c(),f?.code==="EEXIST")return null;throw f}let p=UN(r);if(!p||p.lockId!==o)return VN({path:r,lockId:o}),c(),null;try{unlinkSync(a),d=!1;}catch{}return {path:r,lockId:o}}catch(l){throw c(),l}}function bJ(e,t){writeFileSync(e,JSON.stringify(t),{flag:"wx",mode:384});}function UN(e){let t;try{t=readFileSync(e,"utf8");}catch{return null}let n;try{n=JSON.parse(t);}catch{return null}return Cme(n)?n:null}function Cme(e){if(typeof e!="object"||e===null||Array.isArray(e))return false;let t=e;return typeof t.lockId=="string"&&/^[A-Za-z0-9_-]+$/.test(t.lockId)&&typeof t.pid=="number"&&Number.isSafeInteger(t.pid)&&t.pid>0&&typeof t.pidStartIdentity=="string"&&t.pidStartIdentity.length>0&&typeof t.host=="string"&&t.host.length>0}function VN(e){try{let t=readFileSync(e.path,"utf8");if(JSON.parse(t).lockId!==e.lockId)return;unlinkSync(e.path);}catch{}}h();h();function Mk(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yu(e){return typeof e=="string"&&e.trim().length>0?e:void 0}function _u(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function jJ(e){return e==="local_bash"||e==="local_agent"?e:"unknown"}function Ome(e){let t=_u(e.exit_code)??_u(e.exitCode);if(t!==void 0)return t;if(typeof e.summary!="string")return;let n=/exit code (\d+)/.exec(e.summary);return n?Number(n[1]):void 0}function $J(e){if(!Mk(e)||e.type!=="system")return null;let t=e.subtype;if(t==="background_tasks_changed"){if(!Array.isArray(e.tasks))return null;let r=e.tasks.flatMap(o=>{if(!Mk(o))return [];let i=yu(o.task_id);return i?[{taskId:i,taskType:jJ(o.task_type)}]:[]});return {subtype:t,tasks:r}}let n=yu(e.task_id);if(!n)return null;if(t==="task_started"){let r=yu(e.description);return {subtype:t,taskId:n,parentToolUseId:yu(e.tool_use_id),taskType:jJ(e.task_type),...r?{label:r}:{},...typeof e.is_backgrounded=="boolean"?{isBackgrounded:e.is_backgrounded}:{}}}if(t==="task_progress"){let r=Mk(e.usage)?e.usage:void 0;return {subtype:t,taskId:n,parentToolUseId:yu(e.tool_use_id),lastToolName:yu(e.last_tool_name),...r?{usage:{totalTokens:_u(r.total_tokens),toolUses:_u(r.tool_uses),durationMs:_u(r.duration_ms)}}:{}}}if(t==="task_updated")return Mk(e.patch)?{subtype:t,taskId:n,patch:{...typeof e.patch.is_backgrounded=="boolean"?{isBackgrounded:e.patch.is_backgrounded}:{},...typeof e.patch.status=="string"?{status:e.patch.status}:{},..._u(e.patch.end_time)!==void 0?{endTime:_u(e.patch.end_time)}:{}}}:null;if(t==="task_notification"){let r=Ome(e);return {subtype:t,taskId:n,parentToolUseId:yu(e.tool_use_id),...typeof e.status=="string"?{status:e.status}:{},...r!==void 0?{exitCode:r}:{}}}return null}function Pme(e){try{let t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function Nme(e){return typeof e=="string"&&e.length>0}function xme(e){if(e==="completed"||e==="failed")return e;if(e==="stopped"||e==="killed")return "stopped";if(e==="running")return "running"}function Dme(e){return e!=="running"}function Lme(e){if(e===void 0)return;let t=new Date(e);return Number.isNaN(t.getTime())?void 0:t.toISOString()}function Mme(e){if(e.subtype==="background_tasks_changed"){let n=new Map;for(let r of e.tasks)n.has(r.taskId)||n.set(r.taskId,{taskId:r.taskId,taskType:r.taskType});return [...n.values()]}let t=e.subtype==="task_started"?e.taskType:void 0;return [{taskId:e.taskId,...t?{taskType:t}:{}}]}function Ume(e,t){let n=t.timestamp.length>0?t.timestamp:void 0;return {providerTaskId:e,taskType:"unknown",status:"running",endedWithTurn:false,backgrounded:false,...n?{firstTimestamp:n}:{},firstSeq:t.seq,lastSeq:t.seq,rawSeqs:[]}}function Bme(e,t){e.firstSeq=Math.min(e.firstSeq,t.seq),e.lastSeq=Math.max(e.lastSeq,t.seq),e.rawSeqs.push(t.seq),!Nme(e.firstTimestamp)&&t.timestamp.length>0&&(e.firstTimestamp=t.timestamp);}function Fme(e,t,n){if(t.parentToolUseId&&!e.parentToolUseId&&(e.parentToolUseId=t.parentToolUseId),t.lastToolName&&(e.lastToolNameSeq===void 0||n>e.lastToolNameSeq)&&(e.lastToolName=t.lastToolName,e.lastToolNameSeq=n),!!t.usage){if(e.usageSeq===void 0||n>e.usageSeq){e.totalTokens=t.usage.totalTokens,e.toolUses=t.usage.toolUses,e.elapsedMs=t.usage.durationMs,e.usageSeq=n;return}n===e.usageSeq&&(t.usage.totalTokens!==void 0&&(e.totalTokens=Math.max(e.totalTokens??0,t.usage.totalTokens)),t.usage.toolUses!==void 0&&(e.toolUses=Math.max(e.toolUses??0,t.usage.toolUses)),t.usage.durationMs!==void 0&&(e.elapsedMs=Math.max(e.elapsedMs??0,t.usage.durationMs)));}}function VJ(e,t,n,r,o,i){let s=xme(t);s&&(s==="running"&&Dme(e.status)||(e.status=s,s!=="running"&&(e.terminalStatusSeq=n,e.endedAt=Lme(o)??(r.length>0?r:void 0),s==="failed"?i!==void 0&&(e.exitCode=i):delete e.exitCode)));}function Hme(e,t,n){if(t.subtype==="task_started"){t.taskType!=="unknown"&&(e.taskType=t.taskType),e.parentToolUseId=t.parentToolUseId??e.parentToolUseId,e.label=t.label??e.label,e.startedAt=n.timestamp.length>0?n.timestamp:e.startedAt,t.isBackgrounded===true&&(e.backgrounded=true);return}if(t.subtype==="task_progress"){Fme(e,t,n.seq);return}if(t.subtype==="task_updated"){t.patch.isBackgrounded===true&&(e.backgrounded=true),VJ(e,t.patch.status,n.seq,n.timestamp,t.patch.endTime);return}t.subtype==="task_notification"&&(t.parentToolUseId&&!e.parentToolUseId&&(e.parentToolUseId=t.parentToolUseId),VJ(e,t.status,n.seq,n.timestamp,void 0,t.exitCode));}function jme(e,t,n){let r=e.status,o=false,i=e.endedAt;r==="stopped"&&e.terminalStatusSeq!==void 0?o=t!==void 0&&e.terminalStatusSeq>=t:e.terminalStatusSeq===void 0&&t!==void 0&&t>e.lastSeq&&(r="stopped",o=true,i=n);let s={providerTaskId:e.providerTaskId,taskType:e.taskType,status:r,endedWithTurn:o,backgrounded:e.backgrounded,firstSeq:e.firstSeq,lastSeq:e.lastSeq,rawSeqs:[...e.rawSeqs].sort((d,c)=>d-c)};e.parentToolUseId&&(s.parentToolUseId=e.parentToolUseId),e.label&&(s.label=e.label),e.exitCode!==void 0&&(s.exitCode=e.exitCode);let a=e.startedAt??e.firstTimestamp;return a&&(s.startedAt=a),i&&(s.endedAt=i),e.elapsedMs!==void 0&&(s.elapsedMs=e.elapsedMs),e.taskType==="local_agent"&&(e.lastToolName&&(s.lastToolName=e.lastToolName),e.toolUses!==void 0&&(s.toolUses=e.toolUses),e.totalTokens!==void 0&&(s.totalTokens=e.totalTokens)),s}function $me(e){let t=[],n,r;e.forEach((a,d)=>{let c=Pme(a.message);if(!c)return;c.type==="result"&&(n===void 0||a.seq>=n)&&(n=a.seq,r=a.timestamp.length>0?a.timestamp:void 0);let l=$J(c);l&&t.push({row:a,event:l,index:d});}),t.sort((a,d)=>a.row.seq-d.row.seq||a.index-d.index);let o=new Map,i=new Set;for(let{row:a,event:d}of t){let c=Mme(d);for(let l of c){let u=o.get(l.taskId);u||(u=Ume(l.taskId,a),o.set(l.taskId,u)),Bme(u,a),l.taskType&&l.taskType!=="unknown"&&(u.taskType=l.taskType),Hme(u,d,a),i.add(a.seq);}}return {tasks:[...o.values()].map(a=>jme(a,n,r)).sort((a,d)=>a.firstSeq-d.firstSeq||(a.providerTaskId<d.providerTaskId?-1:a.providerTaskId>d.providerTaskId?1:0)),consumedSeqs:new Set([...i].sort((a,d)=>a-d))}}h();md();function Vme(e,t){let n=qJ(e,"agent_call"),r=qJ(e,"tool_result"),o=e.some(f=>f.type==="tool_result"&&!_c(f.toolUseId)&&Object.prototype.hasOwnProperty.call(f,"delegationResult")),i=new Set,s=[];for(let[f,g]of n){let y=r.get(f)??[];if(g.length!==1||y.length>1){for(let T of g)i.add(T.index);continue}if(y.length!==1)continue;let _=g[0],A=y[0],I=Jme(A.entry);if(!I.present||(i.add(_.index),!I.result?.taskId||!I.result.agentId)||_c(_.entry.targetAgent)&&_.entry.targetAgent!==I.result.agentId)continue;let k=t.filter(T=>T.taskId===I.result.taskId);if(k.length!==1)continue;let E=k[0];E.agentId===I.result.agentId&&s.push({callIndex:_.index,child:E});}let a=qme(s),d=new Set([...a.values()].map(f=>f.taskId)),c=e.map((f,g)=>({entry:f,index:g})).filter(({entry:f,index:g})=>f.type==="agent_call"&&!a.has(g)&&!i.has(g)&&!(o&&!_c(f.toolUseId))),l=t.filter(f=>!d.has(f.taskId)),u=Wme(c,l),p=new Map(a);for(let f of u)p.set(f.callIndex,f.child);return e.map((f,g)=>{let y=p.get(g);return y?{...f,targetTaskId:y.taskId,targetAgent:y.agentId}:{...f}})}function qJ(e,t){let n=new Map;return e.forEach((r,o)=>{if(r.type!==t||!_c(r.toolUseId))return;let i=n.get(r.toolUseId)??[];i.push({entry:r,index:o}),n.set(r.toolUseId,i);}),n}function qme(e){let t=new Map;for(let r of e){let o=t.get(r.child.taskId)??[];o.push(r),t.set(r.child.taskId,o);}let n=new Map;for(let r of t.values()){if(r.length!==1)continue;let o=r[0];n.set(o.callIndex,o.child);}return n}function Wme(e,t){if(e.length===0||t.length===0)return [];let n=e.filter(({entry:s})=>!_c(s.targetAgent));if(n.length>0){if(e.length!==1||t.length!==1)return [];let s=t[0];return _c(s.agentId)?[{callIndex:n[0].index,child:s}]:[]}let r=Gme(e),o=zme(t),i=[];for(let[s,a]of r){let d=o.get(s)??[];a.length!==1||d.length!==1||i.push({callIndex:a[0].index,child:d[0]});}return i}function Gme(e){let t=new Map;for(let n of e){let r=n.entry.targetAgent;if(!_c(r))continue;let o=t.get(r)??[];o.push(n),t.set(r,o);}return t}function zme(e){let t=new Map;for(let n of e){if(!_c(n.agentId))continue;let r=t.get(n.agentId)??[];r.push(n),t.set(n.agentId,r);}return t}function Jme(e){return e.type!=="tool_result"?{present:false,result:null}:Object.prototype.hasOwnProperty.call(e,"delegationResult")?{present:true,result:n_(e.delegationResult)?e.delegationResult:null}:{present:false,result:null}}function _c(e){return typeof e=="string"&&e.trim().length>0}md();h();Ag();h();var Kme=/^[a-zA-Z0-9._-]+$/,qN=class{constructor(t){this.storage=t;}storage;listBoxes(t){this.validateId(t);let r=this.storage.listBoxes(t).map(o=>this.toBoxResponse(o));return {boxes:r,total:r.length}}getBox(t,n){this.validateId(t),this.validateId(n);let r=this.storage.findBox(t,n);return r?this.toBoxResponse(r):null}createBox(t,n){this.validateId(t);let r=this.generateBoxId(),o=new Date().toISOString(),i=this.storage.insertBox(t,{id:r,seq:n.seq,firstTaskId:n.firstTaskId,midTaskId:n.midTaskId,lastTaskId:n.lastTaskId,taskCount:n.taskCount,summary:n.summary??null,sourceTokens:n.sourceTokens,summaryTokens:n.summaryTokens??null,createdAt:o});return this.toBoxResponse(i)}toBoxResponse(t){return {id:t.id,threadId:t.thread_id,seq:t.seq,firstTaskId:t.first_task_id,lastTaskId:t.last_task_id,taskCount:t.task_count,sourceTokens:t.source_tokens,summaryTokens:t.summary_tokens,summary:t.summary,previewFirst:this.storage.getTaskPreview(t.first_task_id,200),previewMid:this.storage.getTaskPreview(t.mid_task_id,200),previewLast:this.storage.getTaskPreview(t.last_task_id,200),createdAt:t.created_at}}validateId(t){if(!Kme.test(t))throw new Error(`Invalid ID format: ${t}`)}generateBoxId(){return dn("box")}};h();function Xme(e){return typeof e=="object"&&e!==null}function Uk(e){return typeof e=="string"&&e.length>0?e:void 0}function Yme(e){let t=e.metadata;if(t){let r=Uk(t.taskId)??Uk(t.task_id);if(r)return r;let o=t.task;if(Xme(o)){let i=Uk(o.taskId)??Uk(o.task_id);if(i)return i}}return /^(.*)-(?:user|assistant)$/.exec(e.id)?.[1]||`message:${e.id}`}var Qme=100,Zme=8e3;function eye(e){let t=Math.min(e.length,Zme),n=/\r\n|\r|\n/g,r=0,o=n.exec(e);for(;o!==null;){if(r++,r===Qme){t=Math.min(t,o.index);break}o=n.exec(e);}let i=t>0?e.charCodeAt(t-1):0;return t<e.length&&i>=55296&&i<=56319&&t--,e.slice(0,t)}function WN(e){return e.role==="user"?eye(e.content):e.content}function GN(e,t){let n=t.countTokens(e.content);return {...e,contentTruncated:false,originalTokens:n,includedTokens:n}}function tye(e){return `(truncated; run \`crewx dreaming --task=${e}\` for the full result)`}function nye(e,t,n,r){let o=Math.max(0,Math.floor(n));if(r.countTokens(t)>o)return "";let i=Array.from(e),s=0,a=i.length;for(;s<a;){let d=Math.ceil((s+a)/2),c=i.slice(0,d).join("");r.countTokens(`${c}${t}`)<=o?s=d:a=d-1;}return i.slice(0,s).join("")}function rye(e,t,n,r){let o=r.countTokens(e.content);if(o<=n)return GN(e,r);let i=tye(t),s=nye(e.content,i,n,r),a=`${s}${s?`
|
|
1360
|
+
Error: ${r}`}function rme(e){let t=Array.from(e.agents.keys());return {name:"delegate_to_agent",description:`Delegate a task to another agent. Available agents: ${t.join(", ")}`,parameters:{type:"object",properties:{agent:{type:"string",description:`Agent ID to delegate to. One of: ${t.join(", ")}`},message:{type:"string",description:"Task description for the target agent"},mode:{type:"string",description:'Execution mode: "query" for questions, "execute" for actions. Default: query'}},required:["agent","message"]},execute:async n=>{if(NN>=3)return "Error: Maximum delegation depth (3) reached. Cannot delegate further.";let r=n.agent,o=n.message,i=n.mode??"query";if(!t.includes(r))return `Error: Unknown agent "${r}". Available: ${t.join(", ")}`;NN++;try{let s=i==="execute"?await e.execute(r,o):await e.query(r,o);return nme(s)}finally{NN--;}}}}Po();ys();h();Po();var gJ="update-quiesce.lock",hJ="update-admission",MN="CREWX_UPDATE_ADMISSION_SCOPE",ame=5e3;function Yf(){return join(Ht(),gJ)}function Dk(){return join(Ht(),hJ)}function mJ(e){return join(Dk(),`${e}.json`)}function mu(e){try{return process.kill(e,0),!0}catch(t){return t?.code!=="ESRCH"}}function yJ(){let e=process.env[MN];if(typeof e!="string"||e.length===0)return false;let t;try{t=readFileSync(Yf(),"utf8");}catch(o){return o?.code!=="ENOENT"}let n;try{n=JSON.parse(t);}catch{return true}if(typeof n!="object"||n===null)return true;let r=n;return typeof r.ownerPid!="number"||!Number.isInteger(r.ownerPid)?true:mu(r.ownerPid)?r.ownerScope===e:false}function fy(){let e;try{e=readFileSync(Yf(),"utf8");}catch(t){return t?.code==="ENOENT"?{kind:"absent"}:{kind:"unknown"}}try{let t=JSON.parse(e);return typeof t.ownerPid=="number"&&Number.isInteger(t.ownerPid)?{kind:"owned",ownerPid:t.ownerPid}:{kind:"unknown"}}catch{return {kind:"unknown"}}}function _J(e){let t=Yf(),n=`${t}.reclaim`;try{writeFileSync(n,String(process.pid),{flag:"wx"});}catch(r){if(r?.code==="EEXIST")return "contended";throw r}try{let r=fy();return r.kind!=="owned"||r.ownerPid!==e?"changed":(unlinkSync(t),"cleared")}finally{try{unlinkSync(n);}catch{}}}function dme(e){let t=Yf();mkdirSync(dirname(t),{recursive:true});let n=process.env[MN],r=typeof n=="string"&&n.length>0?n:null,o=JSON.stringify({quiescing:true,since:new Date().toISOString(),ownerPid:e,ownerScope:r});for(let i=0;i<2;i++)try{return writeFileSync(t,o,{flag:"wx"}),{ok:!0}}catch(s){if(s?.code!=="EEXIST")throw s;let a=fy();if(a.kind==="absent")continue;if(a.kind==="owned"&&a.ownerPid===e)return {ok:true};if(a.kind==="owned"&&!mu(a.ownerPid)){if(_J(a.ownerPid)==="contended")return {ok:false,reason:"another process is currently reclaiming the durable update-admission lock; refusing to proceed concurrently"};continue}return a.kind==="owned"?{ok:false,reason:`durable update-admission lock is already held by live pid ${a.ownerPid}`}:{ok:false,reason:"durable update-admission lock exists in an unreadable/corrupt state; refusing to acquire it without proof no other owner holds it"}}return {ok:false,reason:"lost the race to acquire the durable update-admission lock after reclaiming what looked like a dead owner"}}function cme(e){let t=fy();if(t.kind==="absent")return {ok:true};if(t.kind==="unknown")return {ok:false,reason:"durable update-admission lock is unreadable/corrupt; refusing to delete a marker this process cannot prove it owns"};if(t.ownerPid!==e)return {ok:false,reason:`durable update-admission lock is owned by pid ${t.ownerPid}, not this process (${e}); refusing to delete another owner's marker`};try{return unlinkSync(Yf()),{ok:!0}}catch(n){return n?.code==="ENOENT"?{ok:true}:{ok:false,reason:n instanceof Error?n.message:String(n)}}}function lme(){for(let e=0;e<3;e++){let t=fy();if(t.kind==="absent")return "absent";if(t.kind==="unknown")return "kept-unknown";if(mu(t.ownerPid))return "kept-live";let n=_J(t.ownerPid);if(n==="cleared")return "cleared";if(n==="contended")return "kept-live"}return "kept-unknown"}function AJ(e,t,n,r){let o=mJ(e);try{let i=Dk();mkdirSync(i,{recursive:!0});let s=new Date(Date.now()+n+ame).toISOString(),a=JSON.stringify({taskId:e,scheduleId:t,...r===void 0?{}:{runId:r},pid:process.pid,createdAt:new Date().toISOString(),expiresAt:s}),d=`${o}.${process.pid}.tmp`;return writeFileSync(d,a),renameSync(d,o),!0}catch{return false}}function xN(e){try{unlinkSync(mJ(e));}catch{}}function ume(){let e=Dk(),t;try{t=readdirSync(e);}catch(o){if(o?.code==="ENOENT")return [];throw o}let n=Date.now(),r=[];for(let o of t)if(o.endsWith(".json"))try{let i=JSON.parse(readFileSync(join(e,o),"utf8")),s=typeof i.taskId=="string"?i.taskId:o,a=typeof i.scheduleId=="string"?i.scheduleId:"unknown",d=typeof i.expiresAt=="string"?Date.parse(i.expiresAt):NaN;if(Number.isFinite(d)&&d<n){let c=typeof i.pid=="number"&&Number.isInteger(i.pid)?i.pid:null;if(c===null){r.push({taskId:s,scheduleId:a,corrupt:!0});continue}if(mu(c)){r.push({taskId:s,scheduleId:a,corrupt:!1});continue}continue}r.push({taskId:s,scheduleId:a,corrupt:!1});}catch{r.push({taskId:o,scheduleId:"unknown",corrupt:true});}return r}var IJ=1440*60*1e3;function pme(e,t=IJ){let n=dn("tsk");return AJ(n,e,t)?yJ()?(xN(n),{ok:false,reason:"UPDATE_QUIESCING",message:"CrewX is preparing for an update and is not accepting new work"}):{ok:true,taskId:n,release:()=>xN(n)}:{ok:false,reason:"ADMISSION_UNKNOWN",message:"Unable to durably record the update-admission reservation; refusing to start new work"}}h();Po();h();function gy(e,t,n){if(e.host!==t.host)return {kind:"unknown",reason:"identity-unknown"};if(!Number.isSafeInteger(e.pid)||e.pid<=0)return {kind:"unknown",reason:"identity-unknown"};let r;try{r=n.isAlive(e.pid);}catch{return {kind:"unknown",reason:"identity-unknown"}}if(r==="unknown")return {kind:"unknown",reason:"identity-unknown"};if(r===false)return {kind:"dead"};let o;try{o=e.pid===t.pid?t.pidStartIdentity:n.getStartIdentity(e.pid);}catch{return {kind:"unknown",reason:"identity-unknown"}}return o?o===e.pidStartIdentity?{kind:"live"}:{kind:"reused"}:{kind:"unknown",reason:"identity-unknown"}}var PJ="process-lease.json",Ime=".reclaim",Eme=4,Tme={isAlive:e=>mu(e),getStartIdentity:FN};function hy(e){let t=typeof e=="string"?e:e?.leasePath;return t?isAbsolute(t)?resolve(t):join(Ht(),t):join(Ht(),PJ)}function FN(e){if(!Number.isSafeInteger(e)||e<=0)return null;try{if(process.platform==="linux"){let r=readFileSync(`/proc/${e}/stat`,"utf8"),o=r.lastIndexOf(")");if(o<0)return null;let s=r.slice(o+2).trim().split(/\s+/)[19];return s?`linux:${s}`:null}return (process.platform==="win32"?execFileSync("powershell.exe",["-NoLogo","-NoProfile","-NonInteractive","-Command",`(Get-CimInstance Win32_Process -Filter "ProcessId = ${e}").CreationDate.ToUniversalTime().ToString("o")`],{encoding:"utf8",stdio:["ignore","pipe","ignore"],windowsHide:!0}):execFileSync("ps",["-p",String(e),"-o","lstart="],{encoding:"utf8",stdio:["ignore","pipe","ignore"]})).trim()||null}catch{return null}}var kme=FN;function wme(e){let t;try{t=hy(e);}catch{return {status:"unknown",reason:"io-error"}}return nd(t)}function Rme(e={}){let t,n,r,o;try{t=hy(e),r=HN(e),n=jN(e,r),o=MJ(LJ(e)),$N(t);}catch{return mc("invalid-options")}let i={leaseId:randomUUID(),ownerId:n.ownerId,pid:n.pid,pidStartIdentity:n.pidStartIdentity,host:n.host,startedAt:o,heartbeatAt:o};for(let s=0;s<Eme;s+=1){try{if(bme(t,i))return wJ(t,i,e)}catch{return mc("io-error")}let a=nd(t);if(a.status==="absent")continue;if(a.status==="unknown")return mc(a.reason);if(UJ(a.record,n))return wJ(t,a.record,e);let d=gy(a.record,n,r);if(d.kind==="live")return mc("live-owner",a.record);if(d.kind==="unknown")return mc(d.reason,a.record);if(DJ({...e,leaseId:a.record.leaseId,expectedOwnerId:a.record.ownerId,ownerId:n.ownerId,pid:n.pid,pidStartIdentity:n.pidStartIdentity,host:n.host,processProbe:r}))continue;let l=nd(t);if(l.status==="unknown")return mc(l.reason);if(l.status==="present"&&l.record.leaseId===a.record.leaseId)return mc("contention",l.record)}return mc("contention")}function NJ(e){return BJ(e,(t,n,r)=>{let o={...n,heartbeatAt:MJ(r)};return vme(t,n,o),!0})}function xJ(e){return BJ(e,t=>{try{return unlinkSync(t),!0}catch(n){if(n?.code==="ENOENT")return !1;throw n}})}function DJ(e){let t,n,r;try{t=hy(e),r=HN(e),n=jN(e,r);}catch{return false}let o=nd(t);if(o.status!=="present"||o.record.leaseId!==e.leaseId||e.expectedOwnerId!==void 0&&o.record.ownerId!==e.expectedOwnerId)return false;let i=HJ(t,n,r);if(!i)return false;try{let s=nd(t);if(s.status!=="present"||s.record.leaseId!==e.leaseId||e.expectedOwnerId!==void 0&&s.record.ownerId!==e.expectedOwnerId)return !1;let a=gy(s.record,n,r);if(a.kind!=="dead"&&a.kind!=="reused")return !1;try{return unlinkSync(t),!0}catch(d){if(d?.code==="ENOENT")return !1;throw d}}catch{return false}finally{VN(i);}}function wJ(e,t,n){let r=t,o={leasePath:e,get leaseId(){return r.leaseId},get ownerId(){return r.ownerId},get pid(){return r.pid},get pidStartIdentity(){return r.pidStartIdentity},get record(){return r},renew:()=>{let i=NJ({...n,leasePath:e,leaseId:r.leaseId,ownerId:r.ownerId,pid:r.pid,pidStartIdentity:r.pidStartIdentity,host:r.host});if(i){let s=nd(e);s.status==="present"&&(r=s.record);}return i},release:()=>xJ({...n,leasePath:e,leaseId:r.leaseId,ownerId:r.ownerId,pid:r.pid,pidStartIdentity:r.pidStartIdentity,host:r.host})};return {acquired:true,status:"owner",role:"owner",leaseId:t.leaseId,ownerId:t.ownerId,record:t,lease:o}}function mc(e,t){return {acquired:false,status:"standby",role:"standby",reason:e,...t?{record:t}:{}}}function HN(e){return e.processProbe??e.probe??Tme}function LJ(e){return e.clock??e.now??(()=>Date.now())}function jN(e,t){let n=e.pid??process.pid;if(!Number.isSafeInteger(n)||n<=0)throw new Error("invalid process pid");let r=e.pidStartIdentity??t.getStartIdentity(n);if(typeof r!="string"||r.length===0)throw new Error("process start identity is unavailable");let o=e.host??hostname();if(typeof o!="string"||o.length===0)throw new Error("invalid process host");let i=e.ownerId??`${o}:${n}:${r}`;if(typeof i!="string"||i.length===0)throw new Error("invalid owner id");return {ownerId:i,pid:n,pidStartIdentity:r,host:o}}function MJ(e){let t=e();if(!Number.isFinite(t))throw new Error("clock returned a non-finite value");return new Date(t).toISOString()}function $N(e){mkdirSync(dirname(e),{recursive:true,mode:448});}function nd(e){let t;try{t=readFileSync(e,"utf8");}catch(r){return r?.code==="ENOENT"?{status:"absent"}:{status:"unknown",reason:"marker-unreadable"}}let n;try{n=JSON.parse(t);}catch{return {status:"unknown",reason:"marker-corrupt"}}return Sme(n)?{status:"present",record:n}:{status:"unknown",reason:"marker-corrupt"}}function Sme(e){if(typeof e!="object"||e===null||Array.isArray(e))return false;let t=e;return typeof t.leaseId=="string"&&t.leaseId.length>0&&typeof t.ownerId=="string"&&t.ownerId.length>0&&typeof t.pid=="number"&&Number.isSafeInteger(t.pid)&&t.pid>0&&typeof t.pidStartIdentity=="string"&&t.pidStartIdentity.length>0&&typeof t.host=="string"&&t.host.length>0&&RJ(t.startedAt)&&RJ(t.heartbeatAt)}function RJ(e){return typeof e=="string"&&Number.isFinite(Date.parse(e))}function UJ(e,t){return e.ownerId===t.ownerId&&e.pid===t.pid&&e.pidStartIdentity===t.pidStartIdentity&&e.host===t.host}function BJ(e,t){let n,r,o;try{n=hy(e),o=HN(e),r=jN(e,o);}catch{return false}let i=nd(n);if(i.status!=="present"||!SJ(i.record,e,r))return false;let s=HJ(n,r,o);if(!s)return false;try{let a=nd(n);return a.status!=="present"||!SJ(a.record,e,r)?!1:t(n,a.record,LJ(e))}catch{return false}finally{VN(s);}}function SJ(e,t,n){return e.leaseId===t.leaseId&&UJ(e,n)}function bme(e,t){let n=FJ(e,t);try{return linkSync(n,e),!0}catch(r){if(r?.code==="EEXIST")return false;throw r}finally{try{unlinkSync(n);}catch{}}}function vme(e,t,n){let r=nd(e);if(r.status!=="present"||r.record.leaseId!==t.leaseId)throw new Error("process lease changed before renewal");let o=FJ(e,n);try{renameSync(o,e);}finally{try{unlinkSync(o);}catch{}}}function FJ(e,t){$N(e);let n=`${e}.${process.pid}.${randomUUID()}.tmp`,r;try{return r=openSync(n,"wx",384),writeFileSync(r,JSON.stringify(t)),fsyncSync(r),closeSync(r),r=void 0,n}finally{if(r!==void 0)try{closeSync(r);}catch{}if(r!==void 0)try{unlinkSync(n);}catch{}}}function HJ(e,t,n){let r=`${e}${Ime}`,o=randomUUID();try{return $N(r),bJ(r,{lockId:o,pid:t.pid,pidStartIdentity:t.pidStartIdentity,host:t.host}),{path:r,lockId:o}}catch(l){if(l?.code!=="EEXIST")throw l}let i=UN(r);if(!i)return null;let s=gy(i,t,n);if(s.kind!=="dead"&&s.kind!=="reused")return null;let a=`${r}.${i.lockId}.${o}.steal`;try{renameSync(r,a);}catch(l){let u=l?.code;if(u==="ENOENT"||u==="EEXIST")return null;throw l}let d=true,c=()=>{if(d){try{linkSync(a,r);}catch(l){if(l?.code!=="EEXIST")return}try{unlinkSync(a),d=!1;}catch{}}};try{let l=UN(a);if(!l||l.lockId!==i.lockId)return c(),null;let u=gy(l,t,n);if(u.kind!=="dead"&&u.kind!=="reused")return c(),null;try{bJ(r,{lockId:o,pid:t.pid,pidStartIdentity:t.pidStartIdentity,host:t.host});}catch(f){if(c(),f?.code==="EEXIST")return null;throw f}let p=UN(r);if(!p||p.lockId!==o)return VN({path:r,lockId:o}),c(),null;try{unlinkSync(a),d=!1;}catch{}return {path:r,lockId:o}}catch(l){throw c(),l}}function bJ(e,t){writeFileSync(e,JSON.stringify(t),{flag:"wx",mode:384});}function UN(e){let t;try{t=readFileSync(e,"utf8");}catch{return null}let n;try{n=JSON.parse(t);}catch{return null}return Cme(n)?n:null}function Cme(e){if(typeof e!="object"||e===null||Array.isArray(e))return false;let t=e;return typeof t.lockId=="string"&&/^[A-Za-z0-9_-]+$/.test(t.lockId)&&typeof t.pid=="number"&&Number.isSafeInteger(t.pid)&&t.pid>0&&typeof t.pidStartIdentity=="string"&&t.pidStartIdentity.length>0&&typeof t.host=="string"&&t.host.length>0}function VN(e){try{let t=readFileSync(e.path,"utf8");if(JSON.parse(t).lockId!==e.lockId)return;unlinkSync(e.path);}catch{}}h();h();function Mk(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yu(e){return typeof e=="string"&&e.trim().length>0?e:void 0}function _u(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function jJ(e){return e==="local_bash"||e==="local_agent"?e:"unknown"}function Ome(e){let t=_u(e.exit_code)??_u(e.exitCode);if(t!==void 0)return t;if(typeof e.summary!="string")return;let n=/exit code (\d+)/.exec(e.summary);return n?Number(n[1]):void 0}function $J(e){if(!Mk(e)||e.type!=="system")return null;let t=e.subtype;if(t==="background_tasks_changed"){if(!Array.isArray(e.tasks))return null;let r=e.tasks.flatMap(o=>{if(!Mk(o))return [];let i=yu(o.task_id);return i?[{taskId:i,taskType:jJ(o.task_type)}]:[]});return {subtype:t,tasks:r}}let n=yu(e.task_id);if(!n)return null;if(t==="task_started"){let r=yu(e.description);return {subtype:t,taskId:n,parentToolUseId:yu(e.tool_use_id),taskType:jJ(e.task_type),...r?{label:r}:{},...typeof e.is_backgrounded=="boolean"?{isBackgrounded:e.is_backgrounded}:{}}}if(t==="task_progress"){let r=Mk(e.usage)?e.usage:void 0;return {subtype:t,taskId:n,parentToolUseId:yu(e.tool_use_id),lastToolName:yu(e.last_tool_name),...r?{usage:{totalTokens:_u(r.total_tokens),toolUses:_u(r.tool_uses),durationMs:_u(r.duration_ms)}}:{}}}if(t==="task_updated")return Mk(e.patch)?{subtype:t,taskId:n,patch:{...typeof e.patch.is_backgrounded=="boolean"?{isBackgrounded:e.patch.is_backgrounded}:{},...typeof e.patch.status=="string"?{status:e.patch.status}:{},..._u(e.patch.end_time)!==void 0?{endTime:_u(e.patch.end_time)}:{}}}:null;if(t==="task_notification"){let r=Ome(e);return {subtype:t,taskId:n,parentToolUseId:yu(e.tool_use_id),...typeof e.status=="string"?{status:e.status}:{},...r!==void 0?{exitCode:r}:{}}}return null}function Pme(e){try{let t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function Nme(e){return typeof e=="string"&&e.length>0}function xme(e){if(e==="completed"||e==="failed")return e;if(e==="stopped"||e==="killed")return "stopped";if(e==="running")return "running"}function Dme(e){return e!=="running"}function Lme(e){if(e===void 0)return;let t=new Date(e);return Number.isNaN(t.getTime())?void 0:t.toISOString()}function Mme(e){if(e.subtype==="background_tasks_changed"){let n=new Map;for(let r of e.tasks)n.has(r.taskId)||n.set(r.taskId,{taskId:r.taskId,taskType:r.taskType});return [...n.values()]}let t=e.subtype==="task_started"?e.taskType:void 0;return [{taskId:e.taskId,...t?{taskType:t}:{}}]}function Ume(e,t){let n=t.timestamp.length>0?t.timestamp:void 0;return {providerTaskId:e,taskType:"unknown",status:"running",endedWithTurn:false,backgrounded:false,...n?{firstTimestamp:n}:{},firstSeq:t.seq,lastSeq:t.seq,rawSeqs:[]}}function Bme(e,t){e.firstSeq=Math.min(e.firstSeq,t.seq),e.lastSeq=Math.max(e.lastSeq,t.seq),e.rawSeqs.push(t.seq),!Nme(e.firstTimestamp)&&t.timestamp.length>0&&(e.firstTimestamp=t.timestamp);}function Fme(e,t,n){if(t.parentToolUseId&&!e.parentToolUseId&&(e.parentToolUseId=t.parentToolUseId),t.lastToolName&&(e.lastToolNameSeq===void 0||n>e.lastToolNameSeq)&&(e.lastToolName=t.lastToolName,e.lastToolNameSeq=n),!!t.usage){if(e.usageSeq===void 0||n>e.usageSeq){e.totalTokens=t.usage.totalTokens,e.toolUses=t.usage.toolUses,e.elapsedMs=t.usage.durationMs,e.usageSeq=n;return}n===e.usageSeq&&(t.usage.totalTokens!==void 0&&(e.totalTokens=Math.max(e.totalTokens??0,t.usage.totalTokens)),t.usage.toolUses!==void 0&&(e.toolUses=Math.max(e.toolUses??0,t.usage.toolUses)),t.usage.durationMs!==void 0&&(e.elapsedMs=Math.max(e.elapsedMs??0,t.usage.durationMs)));}}function VJ(e,t,n,r,o,i){let s=xme(t);s&&(s==="running"&&Dme(e.status)||(e.status=s,s!=="running"&&(e.terminalStatusSeq=n,e.endedAt=Lme(o)??(r.length>0?r:void 0),s==="failed"?i!==void 0&&(e.exitCode=i):delete e.exitCode)));}function Hme(e,t,n){if(t.subtype==="task_started"){t.taskType!=="unknown"&&(e.taskType=t.taskType),e.parentToolUseId=t.parentToolUseId??e.parentToolUseId,e.label=t.label??e.label,e.startedAt=n.timestamp.length>0?n.timestamp:e.startedAt,t.isBackgrounded===true&&(e.backgrounded=true);return}if(t.subtype==="task_progress"){Fme(e,t,n.seq);return}if(t.subtype==="task_updated"){t.patch.isBackgrounded===true&&(e.backgrounded=true),VJ(e,t.patch.status,n.seq,n.timestamp,t.patch.endTime);return}t.subtype==="task_notification"&&(t.parentToolUseId&&!e.parentToolUseId&&(e.parentToolUseId=t.parentToolUseId),VJ(e,t.status,n.seq,n.timestamp,void 0,t.exitCode));}function jme(e,t,n){let r=e.status,o=false,i=e.endedAt;r==="stopped"&&e.terminalStatusSeq!==void 0?o=t!==void 0&&e.terminalStatusSeq>=t:e.terminalStatusSeq===void 0&&t!==void 0&&t>e.lastSeq&&(r="stopped",o=true,i=n);let s={providerTaskId:e.providerTaskId,taskType:e.taskType,status:r,endedWithTurn:o,backgrounded:e.backgrounded,firstSeq:e.firstSeq,lastSeq:e.lastSeq,rawSeqs:[...e.rawSeqs].sort((d,c)=>d-c)};e.parentToolUseId&&(s.parentToolUseId=e.parentToolUseId),e.label&&(s.label=e.label),e.exitCode!==void 0&&(s.exitCode=e.exitCode);let a=e.startedAt??e.firstTimestamp;return a&&(s.startedAt=a),i&&(s.endedAt=i),e.elapsedMs!==void 0&&(s.elapsedMs=e.elapsedMs),e.taskType==="local_agent"&&(e.lastToolName&&(s.lastToolName=e.lastToolName),e.toolUses!==void 0&&(s.toolUses=e.toolUses),e.totalTokens!==void 0&&(s.totalTokens=e.totalTokens)),s}function $me(e){let t=[],n,r;e.forEach((a,d)=>{let c=Pme(a.message);if(!c)return;c.type==="result"&&(n===void 0||a.seq>=n)&&(n=a.seq,r=a.timestamp.length>0?a.timestamp:void 0);let l=$J(c);l&&t.push({row:a,event:l,index:d});}),t.sort((a,d)=>a.row.seq-d.row.seq||a.index-d.index);let o=new Map,i=new Set;for(let{row:a,event:d}of t){let c=Mme(d);for(let l of c){let u=o.get(l.taskId);u||(u=Ume(l.taskId,a),o.set(l.taskId,u)),Bme(u,a),l.taskType&&l.taskType!=="unknown"&&(u.taskType=l.taskType),Hme(u,d,a),i.add(a.seq);}}return {tasks:[...o.values()].map(a=>jme(a,n,r)).sort((a,d)=>a.firstSeq-d.firstSeq||(a.providerTaskId<d.providerTaskId?-1:a.providerTaskId>d.providerTaskId?1:0)),consumedSeqs:new Set([...i].sort((a,d)=>a-d))}}h();md();function Vme(e,t){let n=qJ(e,"agent_call"),r=qJ(e,"tool_result"),o=e.some(f=>f.type==="tool_result"&&!_c(f.toolUseId)&&Object.prototype.hasOwnProperty.call(f,"delegationResult")),i=new Set,s=[];for(let[f,g]of n){let y=r.get(f)??[];if(g.length!==1||y.length>1){for(let T of g)i.add(T.index);continue}if(y.length!==1)continue;let _=g[0],A=y[0],I=Jme(A.entry);if(!I.present||(i.add(_.index),!I.result?.taskId||!I.result.agentId)||_c(_.entry.targetAgent)&&_.entry.targetAgent!==I.result.agentId)continue;let k=t.filter(T=>T.taskId===I.result.taskId);if(k.length!==1)continue;let E=k[0];E.agentId===I.result.agentId&&s.push({callIndex:_.index,child:E});}let a=qme(s),d=new Set([...a.values()].map(f=>f.taskId)),c=e.map((f,g)=>({entry:f,index:g})).filter(({entry:f,index:g})=>f.type==="agent_call"&&!a.has(g)&&!i.has(g)&&!(o&&!_c(f.toolUseId))),l=t.filter(f=>!d.has(f.taskId)),u=Wme(c,l),p=new Map(a);for(let f of u)p.set(f.callIndex,f.child);return e.map((f,g)=>{let y=p.get(g);return y?{...f,targetTaskId:y.taskId,targetAgent:y.agentId}:{...f}})}function qJ(e,t){let n=new Map;return e.forEach((r,o)=>{if(r.type!==t||!_c(r.toolUseId))return;let i=n.get(r.toolUseId)??[];i.push({entry:r,index:o}),n.set(r.toolUseId,i);}),n}function qme(e){let t=new Map;for(let r of e){let o=t.get(r.child.taskId)??[];o.push(r),t.set(r.child.taskId,o);}let n=new Map;for(let r of t.values()){if(r.length!==1)continue;let o=r[0];n.set(o.callIndex,o.child);}return n}function Wme(e,t){if(e.length===0||t.length===0)return [];let n=e.filter(({entry:s})=>!_c(s.targetAgent));if(n.length>0){if(e.length!==1||t.length!==1)return [];let s=t[0];return _c(s.agentId)?[{callIndex:n[0].index,child:s}]:[]}let r=Gme(e),o=zme(t),i=[];for(let[s,a]of r){let d=o.get(s)??[];a.length!==1||d.length!==1||i.push({callIndex:a[0].index,child:d[0]});}return i}function Gme(e){let t=new Map;for(let n of e){let r=n.entry.targetAgent;if(!_c(r))continue;let o=t.get(r)??[];o.push(n),t.set(r,o);}return t}function zme(e){let t=new Map;for(let n of e){if(!_c(n.agentId))continue;let r=t.get(n.agentId)??[];r.push(n),t.set(n.agentId,r);}return t}function Jme(e){return e.type!=="tool_result"?{present:false,result:null}:Object.prototype.hasOwnProperty.call(e,"delegationResult")?{present:true,result:n_(e.delegationResult)?e.delegationResult:null}:{present:false,result:null}}function _c(e){return typeof e=="string"&&e.trim().length>0}md();h();Ag();h();var Kme=/^[a-zA-Z0-9._-]+$/,qN=class{constructor(t){this.storage=t;}storage;listBoxes(t){this.validateId(t);let r=this.storage.listBoxes(t).map(o=>this.toBoxResponse(o));return {boxes:r,total:r.length}}getBox(t,n){this.validateId(t),this.validateId(n);let r=this.storage.findBox(t,n);return r?this.toBoxResponse(r):null}createBox(t,n){this.validateId(t);let r=this.generateBoxId(),o=new Date().toISOString(),i=this.storage.insertBox(t,{id:r,seq:n.seq,firstTaskId:n.firstTaskId,midTaskId:n.midTaskId,lastTaskId:n.lastTaskId,taskCount:n.taskCount,summary:n.summary??null,sourceTokens:n.sourceTokens,summaryTokens:n.summaryTokens??null,createdAt:o});return this.toBoxResponse(i)}toBoxResponse(t){return {id:t.id,threadId:t.thread_id,seq:t.seq,firstTaskId:t.first_task_id,lastTaskId:t.last_task_id,taskCount:t.task_count,sourceTokens:t.source_tokens,summaryTokens:t.summary_tokens,summary:t.summary,previewFirst:this.storage.getTaskPreview(t.first_task_id,200),previewMid:this.storage.getTaskPreview(t.mid_task_id,200),previewLast:this.storage.getTaskPreview(t.last_task_id,200),createdAt:t.created_at}}validateId(t){if(!Kme.test(t))throw new Error(`Invalid ID format: ${t}`)}generateBoxId(){return dn("box")}};h();function Xme(e){return typeof e=="object"&&e!==null}function Uk(e){return typeof e=="string"&&e.length>0?e:void 0}function Yme(e){let t=e.metadata;if(t){let r=Uk(t.taskId)??Uk(t.task_id);if(r)return r;let o=t.task;if(Xme(o)){let i=Uk(o.taskId)??Uk(o.task_id);if(i)return i}}return /^(.*)-(?:user|assistant)$/.exec(e.id)?.[1]||`message:${e.id}`}var Qme=100,Zme=8e3;function eye(e){let t=Math.min(e.length,Zme),n=/\r\n|\r|\n/g,r=0,o=n.exec(e);for(;o!==null;){if(r++,r===Qme){t=Math.min(t,o.index);break}o=n.exec(e);}let i=t>0?e.charCodeAt(t-1):0;return t<e.length&&i>=55296&&i<=56319&&t--,e.slice(0,t)}function WN(e){return e.role==="user"?eye(e.content):e.content}function GN(e,t){let n=t.countTokens(e.content);return {...e,contentTruncated:false,originalTokens:n,includedTokens:n}}function tye(e){return `(truncated; run \`crewx dreaming --task=${e}\` for the full result)`}function nye(e,t,n,r){let o=Math.max(0,Math.floor(n));if(r.countTokens(t)>o)return "";let i=Array.from(e),s=0,a=i.length;for(;s<a;){let d=Math.ceil((s+a)/2),c=i.slice(0,d).join("");r.countTokens(`${c}${t}`)<=o?s=d:a=d-1;}return i.slice(0,s).join("")}function rye(e,t,n,r){let o=r.countTokens(e.content);if(o<=n)return GN(e,r);let i=tye(t),s=nye(e.content,i,n,r),a=`${s}${s?`
|
|
1361
1361
|
|
|
1362
1362
|
`:""}${i}`;return {...e,content:a,contentTruncated:true,originalTokens:o,includedTokens:r.countTokens(a)}}function oye(e){let t=new Map;for(let n of e){let r=Yme(n),o=t.get(r);o?o.messages.push(n):t.set(r,{taskId:r,messages:[n]});}return [...t.values()]}function iye(e,t,n){let r=e.messages.filter(s=>s.role==="user").map(WN).join(""),o=Math.max(0,Math.floor(t-n.countTokens(r))),i=e.messages.map(s=>{if(s.role!=="assistant")return GN(s,n);let a=rye(s,e.taskId,o,n);return o=Math.max(0,o-(a.includedTokens??0)),a});return {messages:i,tokens:n.countTokens(i.map(WN).join(""))}}function sye(e,t,n,r,o){let{maxTokens:i,hotzoneRatio:s,warmzoneRatio:a,minGuaranteedPairs:d=5}=r,c=i*s,l=i*a,u=c+l,p=Number.isFinite(d)&&d>0?d:5,f=c/p,g=t.getThreadMessages(e),y=[],_=0,A=false,I=0,k=oye(g);for(let w=k.length-1;w>=0;w--){let v=k[w],P=o.countTokens(v.messages.map(WN).join("")),O=c-_;if(P<=O){_+=P,y.unshift(...v.messages.map(N=>GN(N,o))),I++;continue}if(I<p){let N=Math.max(0,Math.min(f,O)),x=iye(v,N,o);_+=x.tokens,y.unshift(...x.messages),I++,A=true;continue}A=true;break}let E=[],T=0;if(A&&l>0)try{let{boxes:w}=n.listBoxes(e);for(let v=w.length-1;v>=0;v--){let P=w[v],O=P.summaryTokens??P.sourceTokens;if(T+O>l)break;T+=O,E.unshift({boxId:P.id,seq:P.seq,taskCount:P.taskCount,sourceTokens:P.sourceTokens,summary:P.summary,previewFirst:P.previewFirst,previewMid:P.previewMid,previewLast:P.previewLast,createdAt:P.createdAt});}}catch(w){if(w instanceof Error&&!/not found/i.test(w.message))throw w}return {hot:y,warm:E,hotTokens:_,warmTokens:T,hotOverflow:A,totalBudget:u,config:{maxTokens:i,hotzoneRatio:s,warmzoneRatio:a}}}Ad();Dc();h();var Bk=class extends Error{constructor(n,r){super(`Task ${n} timed out after ${r}ms`);this.taskId=n;this.timeoutMs=r;this.name="ParallelRunnerTimeoutError";}taskId;timeoutMs},yy=class{constructor(t={}){this.defaults=t;}defaults;metrics={totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0};async run(t,n={}){if(!Array.isArray(t))throw new TypeError("ParallelRunner.run expects an array of tasks");if(t.length===0)return this.metrics={totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0},[];let r=this.mergeOptions(n),o=Math.max(1,r.maxConcurrency??5),i=r.timeoutMs,s=r.failFast??false,a=r.callbacks,d=r.evaluateTaskSuccess??(()=>true),c=[],l=0,u=0,p=0,f=false,g=0,y=performance$1.now(),_=async P=>{a?.onTaskStart&&await a.onTaskStart(P),p+=1;let O=new AbortController,N={signal:O.signal},x,j;typeof i=="number"&&Number.isFinite(i)&&i>0&&(j=new Promise((X,Ie)=>{x=setTimeout(()=>{let ge=new Bk(P.id,i);O.abort(ge),Ie(ge);},i);}));let Z=performance$1.now(),K=P.run(N),we=j?Promise.race([K,j]):K;try{let X=await we,Ie=performance$1.now(),ge=Ie-Z,F=d(X,P),Y={taskId:P.id,success:F,value:X,durationMs:ge,startedAt:Z,finishedAt:Ie,metadata:P.metadata,aborted:!1};c.push(Y),F?l+=1:u+=1,a?.onTaskComplete&&await a.onTaskComplete(Y),s&&!F&&(f=!0);}catch(X){let Ie=performance$1.now(),ge=Ie-Z,F=X instanceof Error?X:new Error(String(X)),Y={taskId:P.id,success:false,error:F,durationMs:ge,startedAt:Z,finishedAt:Ie,metadata:P.metadata,aborted:O.signal.aborted};c.push(Y),u+=1,a?.onError&&await a.onError(P,F,ge),s&&(f=true);}finally{x&&clearTimeout(x),j&&K.catch(()=>{});}},A=async()=>{for(;!f;){let P=g;if(P>=t.length)break;g+=1;let O=t[P];if(!O||(await _(O),f))break}},I=Math.min(o,t.length),k=[];for(let P=0;P<I;P++)k.push(A());await Promise.all(k);let T=performance$1.now()-y,w=c.length?c.reduce((P,O)=>P+O.durationMs,0)/c.length:0,v=T>0?c.length/(T/1e3):c.length;return this.metrics={totalTasks:t.length,startedTasks:p,completedTasks:c.length,successCount:l,failureCount:u,totalDurationMs:T,averageDurationMs:w,throughput:v},c}getMetrics(){return this.metrics}mergeOptions(t){return {maxConcurrency:t.maxConcurrency??this.defaults.maxConcurrency,timeoutMs:t.timeoutMs??this.defaults.timeoutMs,failFast:t.failFast??this.defaults.failFast,evaluateTaskSuccess:t.evaluateTaskSuccess??this.defaults.evaluateTaskSuccess,callbacks:this.mergeCallbacks(this.defaults.callbacks,t.callbacks)}}mergeCallbacks(t,n){if(!(!t&&!n))return {onTaskStart:async r=>{t?.onTaskStart&&await t.onTaskStart(r),n?.onTaskStart&&await n.onTaskStart(r);},onTaskComplete:async r=>{t?.onTaskComplete&&await t.onTaskComplete(r),n?.onTaskComplete&&await n.onTaskComplete(r);},onError:async(r,o,i)=>{t?.onError&&await t.onError(r,o,i),n?.onError&&await n.onError(r,o,i);}}}};h();h();var _y=class{async query(t){throw new Error("AgentRuntime.query is not implemented. Provide a subclass or mock AgentRuntime.prototype.query.")}async execute(t){throw new Error("AgentRuntime.execute is not implemented. Provide a subclass or mock AgentRuntime.prototype.execute.")}};var WJ=3,GJ=3e4,zJ=500,aye=e=>{if(typeof e!="number"||Number.isNaN(e)||!Number.isFinite(e))return WJ;let t=Math.floor(e);return t>0?t:WJ},dye=e=>e===void 0||typeof e!="number"||Number.isNaN(e)||e<=0?GJ:e,cye=e=>{if(!e)return {maxRetries:0,retryDelay:zJ};let t=Number.isInteger(e.maxRetries)&&e.maxRetries>=0?e.maxRetries:0,n=typeof e.retryDelay=="number"&&e.retryDelay>=0?e.retryDelay:zJ;return {maxRetries:t,retryDelay:n}},zN=e=>{let t=e.reason;return t instanceof Error?t:typeof t=="string"?new Error(t):new Error("Parallel operation aborted")},lye=(e,t)=>e<=0?Promise.resolve():new Promise((n,r)=>{let o=setTimeout(()=>{t.removeEventListener("abort",i),n();},e),i=()=>{clearTimeout(o),r(zN(t));};if(t.aborted){i();return}t.addEventListener("abort",i,{once:true});}),uye=async(e,t,n)=>{let r,o;for(let i=0;i<=t.maxRetries;i++){if(n.aborted)throw zN(n);try{let s=await e();if(r=s,s.success||i===t.maxRetries)return s}catch(s){if(o=s,n.aborted)throw zN(n);if(i===t.maxRetries)throw s instanceof Error?s:new Error(String(s))}i<t.maxRetries&&await lye(t.retryDelay,n);}if(r)return r;throw o?o instanceof Error?o:new Error(String(o)):new Error("Parallel helper encountered an unexpected state")},JJ=(e,t,n)=>{t.completed+=1,n?t.success+=1:t.failure+=1;try{e.onProgress?.(t.completed,t.total);}catch(r){process.env.NODE_ENV!=="production"&&console.warn("Parallel helper onProgress callback threw an error:",r);}},pye=e=>e.map(n=>({metadata:n.metadata,taskResult:n})).slice().sort((n,r)=>n.metadata.index-r.metadata.index).map(({metadata:n,taskResult:r})=>{if(r.value){let i=r.value;return {...i,agentId:i.agentId??n.request.agentId,metadata:{...i.metadata,requestIndex:n.index,mode:n.mode}}}let o=r.error??new Error("Unknown error");return {agentId:n.request.agentId,content:o.message,success:false,metadata:{error:o.message,aborted:r.aborted??false,requestIndex:n.index,mode:n.mode}}}),fye=e=>e.filter(t=>!t.success).map(t=>{let n=t.metadata;if(t.error instanceof Error)return {index:n.index,error:t.error};if(t.value&&!t.value.success){let r=String(t.value.metadata?.error??t.value.content??"Agent returned unsuccessful result");return {index:n.index,error:new Error(r)}}return {index:n.index,error:new Error("Unknown failure")}}),gye=(e,t)=>({onTaskComplete:async n=>{JJ(t,e,n.success);},onError:async()=>{JJ(t,e,false);}}),KJ=async(e,t,n={})=>{if(!Array.isArray(e))throw new TypeError("Parallel helpers expect an array of requests");if(e.length===0){let _={total:0,completed:0,successCount:0,failureCount:0,results:[],errors:[],metrics:{totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0}};return n.onComplete?.(_),[]}let r=aye(n.concurrency),o=dye(n.timeout),i=cye(n.retryPolicy),s=new yy,a=new _y,d=e.map((y,_)=>({id:`${t}:${y.agentId??"anonymous"}:${_}`,metadata:{index:_,mode:t,request:y},run:A=>uye(()=>t==="query"?a.query(y):a.execute(y),i,A.signal)})),c={completed:0,success:0,failure:0,total:e.length},l=await s.run(d,{maxConcurrency:r,timeoutMs:o,evaluateTaskSuccess:y=>y.success,callbacks:gye(c,n)}),u=pye(l),p=fye(l),f=s.getMetrics(),g={total:e.length,completed:e.length,successCount:u.filter(y=>y.success).length,failureCount:u.filter(y=>!y.success).length,results:u,errors:p,metrics:f};return n.onComplete?.(g),u},hye=(e,t)=>KJ(e,"query",t),mye=(e,t)=>KJ(e,"execute",t);TP();Yi();Yi();El();Yi();LI();Cs();Hp();Pi();YS();h();jt();Kt();ln();cn();var XN=["taskLogs","requestLogs","prompts","threadsLedger","tasksLedger"],Fk=["task_log_events","request_logs","tasks","threads"],Eye=`
|
|
1363
1363
|
SELECT 1 FROM storage_metadata LIMIT 1
|
package/dist/index.js
CHANGED
|
@@ -427,7 +427,7 @@ Set CREWX_SDK_WORKFLOW_TEMPLATES_PATH or pass options.templatesPath.`)}h();var h
|
|
|
427
427
|
`)}var Cg=class extends Error{constructor(n){super(n==="timeout"?"model interceptor timed out":"model interceptor aborted");this.reason=n;}reason};function T8(e,t,n){return new Promise((r,o)=>{let i,s=()=>{i!==void 0&&clearTimeout(i),n?.removeEventListener("abort",a);},a=()=>{s(),o(new Cg("aborted"));};if(i=setTimeout(()=>{s(),o(new Cg("timeout"));},t),n?.aborted){a();return}n?.addEventListener("abort",a,{once:true}),e.then(d=>{s(),r(d);},d=>{s(),o(d);});})}function k8(e){return {inputTokens:e.inputTokens,outputTokens:e.outputTokens,cachedInputTokens:e.cachedInputTokens,costUsd:e.costUsd}}function w8(e){return e.replace(/^```(?:json)?\s*/i,"").replace(/\s*```$/,"").trim()}async function yR(e){let t=Date.now(),n,r=(a,d)=>({ok:false,code:a,message:d,durationMs:Date.now()-t,...n?{usage:n}:{}});if(e.signal?.aborted)return r(zt.ABORTED,"model interceptor aborted before it started");let o;try{o=(e.providerFactory??xo)(e.providerStr);}catch(a){return r(zt.PROVIDER_FAILED,a instanceof Error?a.message:String(a))}let i,s=()=>{i!==void 0&&Cn(i,{signal:"SIGKILL"}).catch(()=>{});};e.signal?.addEventListener("abort",s,{once:true});try{let a=await T8(o.query(e.text,{systemPrompt:sM(e.type,e.instruction),...e.model?{model:e.model}:{},timeoutMs:e.timeoutMs,cwd:e.cwd,env:{CREWX_INTERCEPTOR:"1"},onPid:c=>{i=c,e.onSpawn?.(c),e.signal?.aborted&&s();},onUsage:c=>{n=k8(c);}}),e.timeoutMs,e.signal);if(e.type==="mutation"){let c=a.trim();return c===""?r(zt.PAYLOAD_INVALID,"model interceptor returned empty output"):{ok:!0,result:{modified:c!==e.text,payload:{messages:[{role:e.role,content:c}]}},durationMs:Date.now()-t,...n?{usage:n}:{}}}let d;try{d=JSON.parse(w8(a));}catch{return r(zt.PAYLOAD_INVALID,"model interceptor verdict is not JSON")}return {ok:!0,result:d,durationMs:Date.now()-t,...n?{usage:n}:{}}}catch(a){return a instanceof Cg?r(a.reason==="timeout"?zt.TIMEOUT:zt.ABORTED,a.message):r(zt.PROVIDER_FAILED,a instanceof Error?a.message:String(a))}finally{e.signal?.removeEventListener("abort",s),e.onExit?.();try{await o.dispose?.();}catch{}}}h();Oi();var S8=["PATH","HOME","LANG","TMPDIR"],dM=4*1024*1024;function cM(e=process.env){let t={CREWX_INTERCEPTOR:"1"};for(let n of S8){let r=e[n];r!==void 0&&(t[n]=r);}return t}function _R(e){return new Promise(t=>{let n=Date.now(),r=[],o=0,i=[],s=0,a=false,d=false,c,l,[u,...p]=e.command;if(u===void 0){t({ok:false,code:zt.SPAWN_FAILED,message:"empty command",durationMs:0});return}let f;try{f=child_process.spawn(u,p,{cwd:e.cwd,env:cM(),shell:!1,detached:process.platform!=="win32",stdio:["pipe","pipe","pipe"],windowsHide:!0});}catch(_){t({ok:false,code:zt.SPAWN_FAILED,message:_ instanceof Error?_.message:String(_),durationMs:Date.now()-n});return}let g=_=>{if(a)return;a=true,c!==void 0&&clearTimeout(c),l&&e.signal?.removeEventListener("abort",l),e.onExit?.();let A=Buffer.concat(i).toString("utf8"),I=Date.now()-n;t(_.ok?{ok:true,result:_.result,durationMs:I,...A?{stderr:A}:{}}:{ok:false,code:_.code,message:_.message,durationMs:I,...A?{stderr:A}:{}});},y=async(_,A)=>{if(a||d)return;d=true;let I=f.pid;if(I!==void 0)try{await Cn(I,{signal:"SIGKILL"});}catch{}d=false,g({ok:false,code:_,message:A});};f.pid!==void 0&&e.onSpawn?.(f.pid),f.stdin?.on("error",()=>{}),f.stdout?.on("data",_=>{if(!(a||d)){if(o+=_.length,o>4194304){y(zt.OUTPUT_TOO_LARGE,`stdout exceeded ${4194304} bytes`);return}r.push(_);}}),f.stderr?.on("data",_=>{if(s>=dM)return;let A=dM-s;i.push(_.length>A?_.subarray(0,A):_),s+=Math.min(_.length,A);}),f.on("error",_=>{g({ok:false,code:zt.SPAWN_FAILED,message:_.message});}),f.on("close",(_,A)=>{if(a||d)return;if(_!==0){g({ok:false,code:zt.EXIT_FAILURE,message:`exited with ${A?`signal ${A}`:`code ${_}`}`});return}let I=rM(Buffer.concat(r).toString("utf8"),e.request.id);if(!I.ok){g({ok:false,code:I.code,message:I.message});return}g({ok:true,result:I.result});}),c=setTimeout(()=>{y(zt.TIMEOUT,`program interceptor timed out after ${e.timeoutMs} ms`);},e.timeoutMs),e.signal&&(e.signal.aborted?y(zt.ABORTED,"interceptor aborted before it finished"):(l=()=>{y(zt.ABORTED,"interceptor aborted before it finished");},e.signal.addEventListener("abort",l,{once:true}))),f.stdin?.end(`${JSON.stringify(e.request)}
|
|
428
428
|
`);})}function fM(e){return e==="request"?"user":"assistant"}function AR(e,t,n){return {phase:e,status:"stopped",text:t,changed:false,steps:n}}function lM(e,t){return [{role:fM(e),content:t}]}function uM(e){return [...e].sort((t,n)=>t.priorityHint!==n.priorityHint?t.priorityHint-n.priorityHint:t.name<n.name?-1:t.name>n.name?1:0)}function b8(e,t){let n=uM(e.filter(o=>o.type==="mutation")),r=uM(e.filter(o=>o.type==="validation"));return t==="request"?[...n,...r]:[...r,...n]}function pM(e){return `${e.message} (code ${e.code})`}var Ed=class e{items;constructor(t){this.items=t;}static fromAgent(t){let n=O_(t.id,t.interceptors);if(!n)return;let r=n.filter(o=>o.enabled);return r.length>0?new e(r):void 0}hasPhase(t){return this.items.some(n=>n.phase===t)}get responseIntercepted(){return this.items.some(t=>t.phase==="response"&&t.mode==="active")}async run(t,n,r){let o=b8(this.items.filter(l=>l.phase===t),t),i=[],s=[],a=n,d=false,c;for(let l of o){if(r.signal?.aborted)return AR(t,n,i);let u={name:l.name,type:l.type,phase:t,mode:l.mode,outcome:"bypassed",failOpen:l.failOpen,durationMs:0,before:a};if(c||l.type==="mutation"&&l.mode==="active"&&d){i.push(u);continue}let p=await this.invoke(l,t,a,r);if(r.signal?.aborted)return u.durationMs=p.durationMs,u.outcome="failed",u.error={code:Ts,message:"task stopped while this interceptor was running"},i.push(u),AR(t,n,i);if(u.durationMs=p.durationMs,p.usage&&(u.usage=p.usage),p.stderr&&(u.stderr=p.stderr),l.type==="mutation"){let y,_;if(!p.ok)_={code:p.code,message:p.message};else {let A=oM(p.result,lM(t,a));A.ok?y=A.modified?A.messages[0].content:a:_={code:A.code,message:A.message};}if(_){if(u.error=_,l.mode==="audit")u.outcome="failed";else {for(let A of s)A.outcome="bypassed";s.length=0,a=n,d=true,u.outcome=l.failOpen?"failed":"blocked",l.failOpen||(c={step:l.name,code:Ni,message:`${t} blocked: interceptor "${l.name}" failed: ${pM(_)}`});}i.push(u);continue}u.after=y,l.mode==="audit"?u.outcome="audit":y!==a?(u.outcome="applied",s.push(u),a=y):u.outcome="unchanged",i.push(u);continue}let f=p.ok?iM(p.result):{ok:false,code:p.code,message:p.message};if(!f.ok){let y={code:f.code,message:f.message};u.error=y,l.mode==="audit"||l.failOpen?u.outcome="failed":(u.outcome="blocked",c={step:l.name,code:Ni,message:`${t} blocked: interceptor "${l.name}" failed: ${pM(y)}`}),i.push(u);continue}let g=f.verdict;if(u.verdict=g,l.mode==="audit")u.outcome="audit";else if(!g.valid&&g.severity==="error"){u.outcome="blocked";let y=g.messages.map(_=>_.message).join("; ")||"error verdict";c={step:l.name,code:Ni,message:`${t} blocked by interceptor "${l.name}": ${y}`};}else u.outcome="unchanged";i.push(u);}return c?{phase:t,status:"blocked",text:n,changed:false,steps:i,blocked:c}:r.signal?.aborted?AR(t,n,i):{phase:t,status:"passed",text:a,changed:a!==n,steps:i}}invoke(t,n,r,o){if(t.command){let s=nM({name:t.name,phase:n,messages:lM(n,r),model:o.model??null,config:t.config,timeoutMs:t.timeoutMs,sessionId:o.threadId??"",traceId:o.traceId,agentId:o.agentId});return _R({command:t.command,cwd:o.cwd,request:s,timeoutMs:t.timeoutMs,signal:o.signal,onSpawn:o.onSpawn,onExit:o.onExit})}let i=t.model;return yR({providerStr:i.provider,...i.model?{model:i.model}:{},instruction:i.instruction,type:t.type,role:fM(n),text:r,timeoutMs:t.timeoutMs,cwd:o.cwd,signal:o.signal,onSpawn:o.onSpawn,onExit:o.onExit,providerFactory:o.providerFactory})}};h();var gM=Symbol.for("crewx.interceptor.run-stops");function P_(){let e=globalThis,t=e[gM];if(t)return t;let n=new Map;return e[gM]=n,n}function IR(e,t){P_().set(e,t);}function ER(e,t){P_().get(e)===t&&P_().delete(e);}function hM(e){let t=P_().get(e);return t?(t.abort(),true):false}h();bR();h();function bM(){return Object.freeze({schemaVersion:1,supportedProviders:Object.freeze(["cli/claude","cli/codex","cli/antigravity"]),registryVersions:Object.freeze([1,2]),features:Object.freeze(["antigravity-acp-accounts-v1"])})}M_();Mg();BR();Q_();L_();zc();Do();h();_g();Lw();var b4=new Set(["USAGE_LIMITED","CONTEXT_WINDOW_EXCEEDED","INPUT_TOO_LARGE","MODEL_NOT_SUPPORTED","MODEL_AT_CAPACITY","AUTH_REQUIRED","ACCOUNT_SETTING_REQUIRED","MODEL_RETIRED","SUBSCRIPTION_REQUIRED","CLI_NOT_AVAILABLE","CLI_UPDATE_REQUIRED","AGENT_NOT_FOUND","PERMISSION_OR_TRUST","TIMEOUT_OR_STUCK","NETWORK_OR_PROVIDER_TRANSIENT","PROVIDER_CONFIGURATION","AGENT_MODE_RESTRICTED","PROCESS_FAILED"]),v4=new Set(["plan","plan-auto","read-only"]),C4={QUOTA_EXHAUSTED:"USAGE_LIMITED",RATE_LIMITED:"USAGE_LIMITED",AUTH_REQUIRED:"AUTH_REQUIRED",ACCOUNT_SETTING_REQUIRED:"ACCOUNT_SETTING_REQUIRED",MODEL_RETIRED:"MODEL_RETIRED",SUBSCRIPTION_REQUIRED:"SUBSCRIPTION_REQUIRED",TIMEOUT_IDLE:"TIMEOUT_OR_STUCK",TIMEOUT_TOTAL:"TIMEOUT_OR_STUCK",TIMEOUT_RESUME:"NETWORK_OR_PROVIDER_TRANSIENT",PROVIDER_NOT_FOUND:"PROVIDER_CONFIGURATION",INVALID_PROVIDER_FORMAT:"PROVIDER_CONFIGURATION",PROVIDER_CRASHED:"PROCESS_FAILED",EMPTY_OUTPUT:"PROCESS_FAILED"},O4=[{code:"USAGE_LIMITED",pattern:/(?:rate[ _-]?limit|quota|usage[ /_-]?limit|usage exhausted|too many requests|429\b)/i},{code:"CONTEXT_WINDOW_EXCEEDED",pattern:/context (?:window|length)|maximum context|context[_ -]?window[_ -]?exceeded|too many tokens/i},{code:"INPUT_TOO_LARGE",pattern:/input[_ -]?(?:is[_ -]?)?too[_ -]?large|prompt (?:is )?too (?:large|long)|request[_ -]?(?:is[_ -]?)?too[_ -]?large|payload[_ -]?(?:is[_ -]?)?too[_ -]?large|maximum input/i},{code:"MODEL_AT_CAPACITY",pattern:/(?:model|service|provider).*(?:at capacity|overloaded|temporarily busy)|at capacity|overloaded/i},{code:"MODEL_NOT_SUPPORTED",pattern:/(?:model|invalid_request_error).*(?:not[ _-]?supported|unsupported|does[ _-]?not[ _-]?exist|not[ _-]?found|invalid)|model[_-]?not[_-]?(?:found|supported)/i},{code:"MODEL_NOT_SUPPORTED",pattern:/\bunrecognized_model\b/i},{code:"AUTH_REQUIRED",pattern:/(?:401\b|unauthori[sz]ed|not logged in|login required|sign[ -]?in required|api key (?:is )?(?:missing|invalid|required)|authentication required)/i},{code:"CLI_UPDATE_REQUIRED",pattern:/(?:requires? a newer version|update (?:your )?cli|cli version.*(?:old|outdated|unsupported)|version mismatch)/i},{code:"CLI_NOT_AVAILABLE",pattern:/(?:ENOENT|command not found|executable.*not found|cli.*(?:not installed|unavailable)|is .* installed\?)/i},{code:"AGENT_NOT_FOUND",pattern:/agent[_ -]?not[_ -]?found|unknown agent/i},{code:"PERMISSION_OR_TRUST",pattern:/(?:permission denied|operation not permitted|workspace trust|not trusted|access denied|EACCES|EPERM)/i},{code:"NETWORK_OR_PROVIDER_TRANSIENT",pattern:/(?:resume failed|failed .*resum(?:e|ing)|after resuming the session|재개 실패|세션 재개)/i},{code:"TIMEOUT_OR_STUCK",pattern:/(?:timeout|timed out|took too long|stuck|idle timeout|ETIMEDOUT)/i},{code:"NETWORK_OR_PROVIDER_TRANSIENT",pattern:/(?:network (?:unreachable|error)|connection (?:reset|refused|closed)|ECONN(?:RESET|REFUSED|ABORTED)|service unavailable|upstream.*(?:5\d\d|error)|provider.*(?:5\d\d|unavailable|down)|\b5\d\d\b)/i},{code:"PROVIDER_CONFIGURATION",pattern:/(?:invalid provider|unsupported provider|provider namespace|provider configuration|provider config|missing provider)/i}];function oS(e){try{if(!Pd(e)||e.status!=="failed")return eS();let t=P4(e.error);if(rS(t.message))return eS();let n=ho(e.providerId)??t.provider??null,r=x4(e.logs),o=kU(t.code);if(o)return ep(o,n,t.message,t);let i=Zg(t.providerCode)??Zg(t.code),s=i?nS(i,t.message,{exitCode:j4(e.exitCode),mode:t.mode,fromProviderCodeField:!!t.providerCode}):void 0;if(s)return ep(s,n,t.message,t,i);if(n==="cli/antigravity"&&Zg(t.providerCode)==="UNKNOWN"&&/(?:permission denied|operation not permitted|workspace trust|not trusted|access denied|EACCES|EPERM)/i.test(t.providerReason??""))return ep("PERMISSION_OR_TRUST",n,t.message,t,i);let a=D4(r);if(!N4(t)&&a&&(a.type==="user_stop"||rS(a.message)))return eS();if(a){let c=L4(a.code,a.providerCode,a.message);if(c)return ep(c,n,a.message??t.message,t,a.providerCode??a.code,a,a.structuredFailure?"terminal":"envelope")}let d=M4(t.message,r);return d?ep(d.code,n,d.message,t,d.terminal?.providerCode??d.terminal?.code,d.terminal,d.terminal?.structuredFailure?"terminal":"envelope"):ep("PROCESS_FAILED",n,t.message,t)}catch{return {errorCode:"PROCESS_FAILED",errorProvider:null}}}function eS(){return {errorCode:null,errorProvider:null}}function ep(e,t,n,r,o,i,s="envelope"){let a={};if(i?.resetAt!==void 0?a.resetAt=i.resetAt:r?.resetAt!==void 0?a.resetAt=r.resetAt:r?.retryAfterMs!==void 0&&(a.resetAt=Date.now()+r.retryAfterMs),e==="ACCOUNT_SETTING_REQUIRED"&&r?.settingReason&&(a.settingReason=r.settingReason),e==="MODEL_RETIRED"&&r?.replacementModel&&(a.replacementModel=r.replacementModel),e==="ACCOUNT_SETTING_REQUIRED"||e==="MODEL_RETIRED"||e==="SUBSCRIPTION_REQUIRED"){let u=Uc(r?.providerReason);u&&(a.providerReason=u);}else if(e==="PERMISSION_OR_TRUST"&&r?.providerReason){let u=fd(r.providerReason);u&&(a.providerReason=u);}if(r?.model&&(a.model=r.model),r?.mode&&(a.mode=r.mode),i?.type&&(a.upstreamType=i.type),o&&(a.upstreamCode=o),e==="CLI_NOT_AVAILABLE"||e==="CLI_UPDATE_REQUIRED"){let u=t?.startsWith("cli/")?t.slice(4):void 0;u&&(a.cliName=u);}let d=s==="terminal"?n:r?.message,c=s==="terminal"?i?.structuredFailure?d:void 0:r?.isEnvelope?d:void 0,l=fd(c);return l&&(a.technicalMessage=l),Object.keys(a).length>0?{errorCode:e,errorProvider:t,errorMeta:a}:{errorCode:e,errorProvider:t}}function P4(e){let t=typeof e=="string"?np(e):e;return Pd(t)?{isEnvelope:true,code:ho(t.code),providerCode:ho(t.providerCode),settingReason:F4(t.settingReason),replacementModel:H4(t.replacementModel),providerReason:ho(t.providerReason),retryAfterMs:B4(t.retryAfterMs),resetAt:wU(t.resetAt),message:ho(t.message)??ho(t.error),provider:ho(t.provider)??ho(t.errorProvider),model:ho(t.model),mode:ho(t.mode)}:{isEnvelope:false,...typeof e=="string"&&e.trim()?{message:e.trim()}:{}}}function np(e){try{return JSON.parse(e)}catch{return}}function N4(e){return !!(e.code||e.providerCode||e.message)}function x4(e){let t=[];if(typeof e=="string"){let n=np(e);if(Array.isArray(n))t.push(...n);else for(let r of e.split(/\r?\n/)){let o=np(r.trim());o!==void 0&&t.push(o);}}else Array.isArray(e)?t.push(...e):Pd(e)&&t.push(e);return t.flatMap(tp)}function tp(e){if(!Pd(e))return [];let t=ho(e.type),n=ho(e.message);if(n&&!t){let o=np(n);if(Array.isArray(o))return o.flatMap(tp);if(Pd(o))return tp(o);let i=n.split(/\r?\n/).map(s=>np(s.trim())).filter(s=>Pd(s));return i.length>0?i.flatMap(tp):e.level==="stderr"?[{type:"stderr",message:n,rank:1,structuredFailure:false}]:tp({type:"info",content:n})}if(t==="rate_limit_event"){let o=TU(e.rate_limit_info);return ho(o?.status)!=="rejected"?[]:[{type:t,code:"RATE_LIMITED",message:Qg(o?.message,e.message),resetAt:wU(o?.resetsAt),rank:4,structuredFailure:true}]}if(t==="turn.failed"||t==="error"){let o=TU(e.error),i=Qg(o?.message,o?.detail,e.message,e.errorMessage,e.content),s=Qg(o?.code,e.code,e.errorCode);return [{type:t,code:s,providerCode:Qg(o?.providerCode,e.providerCode),message:i,rank:t==="turn.failed"?3:2,structuredFailure:true}]}if(t==="text"&&typeof e.content=="string"){let o=np(e.content);if(Pd(o))return tp(o)}let r=Qg(e.errorMessage,e.content);return r&&rS(r)?[{type:"user_stop",message:r,rank:1,structuredFailure:false}]:r&&/(?:turn\.failed|type:error)/i.test(r)?[{type:r.match(/turn\.failed/i)?"turn.failed":"error",message:r,rank:3,structuredFailure:false}]:[]}function D4(e){return [...e].sort((t,n)=>n.rank-t.rank)[0]}function L4(e,t,n){let r=kU(e);if(r)return r;if(e){let o=nS(e,n);if(o)return o}if(t){let o=nS(t,n);if(o)return o}return tS(n)}function M4(e,t){let n=tS(e);if(n)return {code:n,message:e};for(let r of [...t].sort((o,i)=>i.rank-o.rank)){let o=tS(r.message);if(o)return {code:o,message:r.message,terminal:r}}}function tS(e){if(!(typeof e!="string"||!e.trim()))return O4.find(t=>t.pattern.test(e))?.code}function nS(e,t,n){let r=Zg(e)??e;if(r==="MODEL_UNAVAILABLE")return /(?:capacity|overloaded|busy)/i.test(t??"")?"MODEL_AT_CAPACITY":"MODEL_NOT_SUPPORTED";if(r==="EMPTY_OUTPUT"&&n?.fromProviderCodeField===true&&n.exitCode===0&&U4(n.mode))return "AGENT_MODE_RESTRICTED";if(r!=="UNKNOWN")return C4[r]}function kU(e){let t=Zg(e);return t&&b4.has(t)?t:void 0}function Zg(e){return typeof e=="string"&&e.trim()?e.trim().toUpperCase():void 0}function U4(e){return typeof e=="string"&&v4.has(e.trim().toLowerCase())}function rS(e){return e?/\b(?:stopped|killed|aborted|cancelled|canceled)\s+by\s+user\b/i.test(e)||/사용자에 의해 중지됨/.test(e)||/\b(?:SIGTERM\s+143|143\s+SIGTERM)\b/i.test(e):false}function Pd(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function TU(e){return Pd(e)?e:void 0}function ho(e){return typeof e=="string"&&e.trim()?e.trim():void 0}function wU(e){return typeof e=="string"||typeof e=="number"&&Number.isFinite(e)?e:void 0}function B4(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function F4(e){return e==="region"||e==="training_consent"||e==="access"||e==="other"?e:void 0}function H4(e){return typeof e=="string"&&/^[A-Za-z0-9._/-]{1,128}$/.test(e)?e:void 0}function j4(e){return typeof e=="number"&&Number.isInteger(e)?e:void 0}function Qg(...e){return e.map(ho).find(t=>!!t)}vd();wg();Tc();h();h();function $4(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function V4(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function eh(e){if(!$4(e)||V4(e,"grok"))return e;let t=e.mode,n;switch(t){case "agent":n={...e,grok:{alwaysApprove:true,sandbox:"workspace"}},delete n.mode;break;case "agent-full-access":case "yolo":n={...e,grok:{alwaysApprove:true,sandbox:"off"}},delete n.mode;break;case "read-only":case "plan":n={...e,mode:"plan",grok:{alwaysApprove:false,sandbox:"read-only"}};break;default:return e}return n}function iS(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function RU(e){if(e)return e.slice(e.lastIndexOf("/")+1)}function q4(e,t){let n=e.providerOptions;if(iS(n)){let i=RU(t),s=i?n[i]:void 0;return iS(s)?{...s}:{...n}}let r=RU(t),o=r?e[r]:void 0;return iS(o)?{...o}:void 0}function Z_(e){if(!e||typeof e!="object"||Array.isArray(e))return;let t=e,n=typeof t.provider=="string"?t.provider.trim():void 0,r=n?.slice(n.lastIndexOf("/")+1)==="grok",o=Object.prototype.hasOwnProperty.call(t,"grok")||Object.prototype.hasOwnProperty.call(t,"providerOptions"),i=r&&!o?eh(t):t,s={};typeof i.provider=="string"&&i.provider.trim()&&(s.provider=i.provider.trim()),typeof i.model=="string"&&i.model.trim()&&(s.model=i.model.trim()),typeof i.mode=="string"&&i.mode.trim()&&(s.mode=i.mode.trim()),typeof i.effort=="string"&&i.effort.trim()&&(s.effort=i.effort.trim());let a=q4(i,s.provider);return a&&(s.providerOptions=a),s}function sS(e){if(e==null||e===false)return {active:false};if(e===true)return {active:true};if(typeof e=="object"){let t=e.mode;return {active:true,mode:t==="count"||t==="latch"?t:void 0}}return {active:false}}function aS(e,t,n,r){if(!r.active)return {active:false,crossProvider:false};if(!e||typeof e!="object"||Array.isArray(e))return {active:false,crossProvider:false};let i=e[t];if(!i||typeof i!="object"||Array.isArray(i))return {active:false,crossProvider:false};let s=Z_(i.overdrive);if(!s||!s.provider||!s.model)return {active:false,crossProvider:false};let a=s.provider!==n;return {active:true,provider:s.provider,model:s.model,mode:s.mode,effort:s.effort,crossProvider:a,providerOptions:s.providerOptions}}function dS(e,t){if(!e||typeof e!="object"||Array.isArray(e))return {};let r=e[t];if(!r||typeof r!="object"||Array.isArray(r))return {};let o=r,i={};return o.provider!==void 0&&(typeof o.provider=="string"?o.provider.trim()&&(i.provider=o.provider.trim()):console.warn(`[crewx] options.${t}.provider must be a single string; ignoring non-string value (${JSON.stringify(o.provider)})`)),typeof o.model=="string"&&o.model.trim()&&(i.model=o.model.trim()),i}h();h();ud();ca();ms();var z4=[/^ANTHROPIC_/i,/^OPENAI_/i,/^AWS_SECRET/i,/^SLACK_/i,/^GITHUB_TOKEN$/i,/^CREWX_MCP_KEY$/i,/^DATABASE_/i,/^AWS_ACCESS_KEY/i,/^AWS_SESSION_TOKEN$/i,/^GH_TOKEN$/i,/^GH_APP_/i,/^NPM_TOKEN$/i,/^NPM_AUTH/i,/^GOOGLE_APPLICATION/i,/^GCLOUD_/i,/^AZURE_/i,/^ARM_/i,/^DOCKER_PASSWORD$/i,/^DOCKER_AUTH/i,/^SSH_PRIVATE/i,/^SSH_AUTH_SOCK$/i,/^CI_JOB_TOKEN$/i,/^ACTIONS_RUNTIME_TOKEN$/i,/^VAULT_TOKEN$/i,/^SONAR_TOKEN$/i,/^CODECOV_TOKEN$/i,/TOKEN$/i,/SECRET$/i,/PASSWORD$/i,/API_KEY$/i],J4=/[;|&`$(){}!><\n\r]/,K4=2,X4=["*","**","*:*","* *","**/*"],lS=Symbol("crewx.execReuseScope"),SU=16;function Y4(){let e={};for(let[t,n]of Object.entries(process.env))n!==void 0&&(z4.some(r=>r.test(t))||(e[t]=n));return dr(e)}function Q4(e){if(J4.test(e))throw new Error(`exec blocked: shell metacharacter detected in "${e}"`)}function Z4(e){return /^npx\s+@crewx\/[\w-]+/.test(e)}function e3(e){if(X4.includes(e.trim()))throw new Error(`exec config error: overly broad pattern "${e}" is not allowed`);if(!/^[\w./@-]/.test(e))throw new Error("exec config error: pattern must start with a command name")}function t3(e,t){let n=t.allow??[],r=t.deny??[];for(let o of [...n,...r])e3(o);return r.some(o=>Ir(e,o))?false:Z4(e)?true:n.some(o=>Ir(e,o))}var vU=false;function n3(e){vU=e;}function Zc(e){if(!vU)return;let t=JSON.stringify({span:"template_exec",...e,timestamp:new Date().toISOString()});console.error(t);}function r3(e){let t=[],n="",r=false,o=false;for(let i=0;i<e.length;i++){let s=e[i];s==="'"&&!o?r=!r:s==='"'&&!r?o=!o:s===" "&&!r&&!o?n.length>0&&(t.push(n),n=""):n+=s;}return n.length>0&&t.push(n),t}function o3(e){return e[0]!=="crewx"?false:e[1]==="workflow"&&e[2]==="list"?e.length===3:e[1]!=="agent"||e[2]!=="ls"?false:e.length===3?true:e.length===4&&/^--team=.+/.test(e[3]??"")}function bU(e){return gN.createHash("sha256").update(JSON.stringify(e)).digest("hex")}function i3(e){let t=Object.entries(e.sanitizedEnv).sort(([n],[r])=>n.localeCompare(r));return bU({argv:e.argv,cwd:e.cwd,execDepth:e.execDepth,timeout:e.policy.timeout??5e3,policy:{allow:e.policy.allow??[],deny:e.policy.deny??[]},env:bU(t)})}function cS(e,t){return `<${exports.PROMPT_TAGS.execOutput} cmd="${e}">
|
|
429
429
|
${t.trim()}
|
|
430
|
-
</${exports.PROMPT_TAGS.execOutput}>`}function CU(e,t,n){let r=Date.now(),o,i=parseInt(process.env.CREWX_EXEC_DEPTH??"0",10);if(isNaN(i)||i>=K4)return Zc({command:e,status:"denied",reason:"invalid or max recursion depth"}),"(exec blocked: max recursion depth reached)";try{Q4(e);}catch{return Zc({command:e,status:"denied",reason:"shell metacharacter detected"}),`(exec blocked: shell metacharacter detected in "${e}")`}if(!t3(e,t))return Zc({command:e,status:"denied",reason:"not in allow list"}),`(exec blocked: ${e})`;try{let s=r3(e),[a,...d]=s;if(!a)return `(exec failed: ${e})`;let c=Y4(),u=!!n&&o3(s)?i3({argv:s,cwd:process.cwd(),execDepth:i,policy:t,sanitizedEnv:c}):void 0;if(n&&u){let _=Date.now(),A=n.cache.get(u);if(A!==void 0){let I=Date.now()-_;return n.metrics.reusedCalls+=1,n.metrics.reusedMs+=I,Zc({command:e,status:"reused",allowed_by:"policy",duration_ms:I}),cS(e,A)}}if(n?.listResolver&&u){let _=Date.now(),A=n.listResolver(s,{cwd:process.cwd(),env:c});if(A!==void 0){let I=Date.now()-_;return n.metrics.inProcessCalls+=1,n.metrics.inProcessMs+=I,n.cache.size<SU&&n.cache.set(u,A),Zc({command:e,status:"in-process",allowed_by:"policy",duration_ms:I}),cS(e,A)}}Nc();let p=Date.now();n&&u&&(o=p,n.metrics.actualCalls+=1);let f=child_process.execFileSync(a,d,{timeout:t.timeout??5e3,maxBuffer:64*1024,encoding:null,env:{...c,CREWX_EXEC_DEPTH:String(i+1)},stdio:["pipe","pipe","pipe"]}),g=mg(f);n&&u&&(n.metrics.actualMs+=Date.now()-p,o=void 0,n.cache.size<SU&&n.cache.set(u,g));let y=Date.now()-r;return Zc({command:e,status:"allowed",allowed_by:"policy",duration_ms:y}),cS(e,g)}catch{return n&&o!==void 0&&(n.metrics.actualMs+=Date.now()-o),Zc({command:e,status:"error",reason:"execution failed"}),`(exec failed: ${e})`}}h();function OU(e){return e==null?"":String(e)}h();function PU(e,t){return `\`\`\`${t?.hash?.lang??""}
|
|
430
|
+
</${exports.PROMPT_TAGS.execOutput}>`}function CU(e,t,n){let r=Date.now(),o,i=parseInt(process.env.CREWX_EXEC_DEPTH??"0",10);if(isNaN(i)||i>=K4)return Zc({command:e,status:"denied",reason:"invalid or max recursion depth"}),"(exec blocked: max recursion depth reached)";try{Q4(e);}catch{return Zc({command:e,status:"denied",reason:"shell metacharacter detected"}),`(exec blocked: shell metacharacter detected in "${e}")`}if(!t3(e,t))return Zc({command:e,status:"denied",reason:"not in allow list"}),`(exec blocked: ${e})`;try{let s=r3(e),[a,...d]=s;if(!a)return `(exec failed: ${e})`;let c=Y4(),u=!!n&&o3(s)?i3({argv:s,cwd:process.cwd(),execDepth:i,policy:t,sanitizedEnv:c}):void 0;if(n&&u){let _=Date.now(),A=n.cache.get(u);if(A!==void 0){let I=Date.now()-_;return n.metrics.reusedCalls+=1,n.metrics.reusedMs+=I,Zc({command:e,status:"reused",allowed_by:"policy",duration_ms:I}),cS(e,A)}}if(n?.listResolver&&u){let _=Date.now(),A=n.listResolver(s,{cwd:process.cwd(),env:c});if(A!==void 0){let I=Date.now()-_;return n.metrics.inProcessCalls+=1,n.metrics.inProcessMs+=I,n.cache.size<SU&&n.cache.set(u,A),Zc({command:e,status:"in-process",allowed_by:"policy",duration_ms:I}),cS(e,A)}}Nc();let p=Date.now();n&&u&&(o=p,n.metrics.actualCalls+=1);let f=child_process.execFileSync(a,d,{timeout:t.timeout??5e3,maxBuffer:64*1024,encoding:null,env:{...c,CREWX_EXEC_DEPTH:String(i+1)},stdio:["pipe","pipe","pipe"],windowsHide:!0}),g=mg(f);n&&u&&(n.metrics.actualMs+=Date.now()-p,o=void 0,n.cache.size<SU&&n.cache.set(u,g));let y=Date.now()-r;return Zc({command:e,status:"allowed",allowed_by:"policy",duration_ms:y}),cS(e,g)}catch{return n&&o!==void 0&&(n.metrics.actualMs+=Date.now()-o),Zc({command:e,status:"error",reason:"execution failed"}),`(exec failed: ${e})`}}h();function OU(e){return e==null?"":String(e)}h();function PU(e,t){return `\`\`\`${t?.hash?.lang??""}
|
|
431
431
|
${e??""}
|
|
432
432
|
\`\`\``}h();h();function uS(e){let t=n=>String(n).padStart(2,"0");return `${e.getFullYear()}${t(e.getMonth()+1)}${t(e.getDate())}T${t(e.getHours())}${t(e.getMinutes())}${t(e.getSeconds())}`}function pS(e){let t=e.toISOString();return `${t.slice(0,10)} ${t.slice(11,19)} UTC`}function fS(e,t){if(!e)return "";if(e.length<=t)return e;let n=e.length-t;return `${e.substring(0,t)} (...+${n} chars)`}function gS(e){return Array.isArray(e)||typeof e=="string"?e.length:0}function hS(e){return typeof e!="string"?"":e.replace(/\{\{/g,"{{").replace(/\}\}/g,"}}")}var NU=["B","KB","MB","GB"];function mS(e){if(e===0)return "0 B";let t=Math.min(Math.floor(Math.log(e)/Math.log(1024)),NU.length-1);return `${Math.round(e/Math.pow(1024,t)*100)/100} ${NU[t]}`}function yS(e){if(!e)return "";try{let t=e instanceof Date?e:new Date(e);return isNaN(t.getTime())?"":pS(t)}catch{return ""}}var th=class{hbs;execPolicy;execEnabled;constructor(t={}){this.hbs=Ss__namespace.create(),this.execPolicy=t.execPolicy??{allow:[],deny:[]},this.execEnabled=t.execEnabled??true,this.registerHelpers();}registerHelpers(){let t=this.hbs,n=this.execPolicy,r=this.execEnabled;t.registerHelper("exec",function(o,i){if(typeof o!="string")return "";if(!r)return "(exec disabled)";let s=i?.data?.__crewxExecScope,a=typeof s=="function"?s(lS):void 0;return new t.SafeString(CU(o,n,a))}),t.registerHelper("include",function(o){return new t.SafeString(OU(o))}),t.registerHelper("fenced_code",function(o,i){return new t.SafeString(PU(o,i))}),t.registerHelper("eq",function(o,i){return o===i}),t.registerHelper("ne",function(o,i){return o!==i}),t.registerHelper("and",function(o,i){return o&&i}),t.registerHelper("or",function(o,i){return o||i}),t.registerHelper("not",function(o){return !o}),t.registerHelper("contains",function(o,i){return Array.isArray(o)&&o.includes(i)}),t.registerHelper("json",function(o){return JSON.stringify(o,null,2)}),t.registerHelper("truncate",function(o,i){return fS(o,i)}),t.registerHelper("length",function(o){return gS(o)}),t.registerHelper("escapeHandlebars",function(o){return new t.SafeString(hS(o))}),t.registerHelper("formatFileSize",function(o){return mS(o)}),t.registerHelper("formatTimestamp",function(o){return yS(o)});}async render(t,n={},r={}){let o=this.hbs.compile(t,{noEscape:true}),i={};if(r.execReuseScope){let s=r.execReuseScope;i.__crewxExecScope=a=>a===lS?s:void 0;}return o(n,{data:i})}};h();h();var eA=class{async readFile(t){return promises.readFile(t,"utf-8")}async exists(t){try{return await promises.access(t),!0}catch{return false}}resolvePath(...t){return t.length===1?Gt.resolve(t[0]):Gt.resolve(Gt.join(...t))}isAbsolute(t){return Gt.isAbsolute(t)}async readdir(t){try{return await promises.readdir(t)}catch{return []}}},el=new eA;var tl=class{docs=new Map;fs;constructor(t){this.fs=t??el;}async load(t,n){if(t)for(let[r,o]of Object.entries(t)){let i=o;if(typeof i=="string")this.docs.set(r,{content:i});else if(i&&typeof i=="object"){let s=i;"content"in s&&typeof s.content=="string"?this.docs.set(r,{content:s.content}):"path"in s&&typeof s.path=="string"?await this.loadFromFile(r,s.path,n):console.warn(`[DocumentLoader] Skipping '${r}': unsupported format`);}else console.warn(`[DocumentLoader] Skipping '${r}': unsupported format`);}}async getContent(t){return this.docs.get(t)?.content}async getToc(t){let n=this.docs.get(t);if(!n)return;let r=[];for(let o of n.content.split(`
|
|
433
433
|
`)){let i=/^(#{1,6})\s+(.+)$/.exec(o.trim());i&&r.push({depth:i[1].length,text:i[2].trim()});}if(r.length!==0)return r.map(({depth:o,text:i})=>`${" ".repeat(o-1)}- ${i}`).join(`
|
|
@@ -1357,7 +1357,7 @@ ${e.body}
|
|
|
1357
1357
|
`)}function Lhe(e){let t=rJ(e);return oJ(t).slice(0,Kf)}function iJ(e){return e.issues.map(t=>t.path.length>0?t.path.join("."):"response").slice(0,20)}function bN(e){if(typeof e!="string")throw new Bn(["response"]);let t;try{t=JSON.parse(gu(e));}catch{throw new Bn(["json"])}let n=Zz.safeParse(t);if(!n.success)throw new Bn(iJ(n.error));return n.data}function sJ(e){if(typeof e!="string")throw new Bn(["response"]);let t;try{t=JSON.parse(gu(e));}catch{throw new Bn(["json"])}let n=tJ.safeParse(t);if(!n.success)throw new Bn(iJ(n.error));return n.data}function Gz(e,t){let n=new Map(t.turns.map((s,a)=>[s.taskId,a])),r=n.get(t.coversFromTaskId),o=n.get(t.coversToTaskId),i=new Map;for(let s of e.highlights){let a=n.get(s.anchorTaskId),d=n.get(s.coversFromTaskId),c=n.get(s.coversToTaskId);if(a===void 0)throw new Bn(["highlights.anchorTaskId"]);if(d===void 0)throw new Bn(["highlights.coversFromTaskId"]);if(c===void 0)throw new Bn(["highlights.coversToTaskId"]);if(d>c||d<r||c>o||a<d||a>c)throw new Bn(["highlights.coverage"]);let l={...s,text:gu(s.text)};if(l.text.trim().length===0||l.text.length>160||/[\r\n]/u.test(l.text))throw new Bn(["highlights.text"]);let u=JSON.stringify(l);i.set(u,l);}return [...i.values()]}function Mhe(e,t){let n=new Map;for(let r of e.highlights){if(r.source==="manual"||r.status==="dismissed")continue;if(!t.taskIds.has(r.anchorTaskId))throw new Bn(["highlights.anchorTaskId"]);if(!t.taskIds.has(r.coversFromTaskId))throw new Bn(["highlights.coversFromTaskId"]);if(!t.taskIds.has(r.coversToTaskId))throw new Bn(["highlights.coversToTaskId"]);let o=nJ(r,"highlights","auto"),i=o.contentFingerprint||uy(o);n.has(i)||n.set(i,o);}return [...n.values()]}function Uhe(e,t,n,r){return [e,t,n,r].join(":")}function Hr(e,t,n,r){return {ok:false,failure:{code:e,message:t,retryable:n,attempts:r}}}function vN(e,t){return {threadId:e.threadId,agentId:e.agentId,workspaceId:e.workspaceId,turns:t,alreadyRecorded:e.alreadyRecorded,coversFromTaskId:t[0].taskId,coversToTaskId:t[t.length-1].taskId,detectorVersion:e.detectorVersion}}function Bhe(e){if(e.turns.length===0)return [];let t=[],n=[],r=()=>{n.length!==0&&(t.push({...e,turns:n,coversFromTaskId:n[0].taskId,coversToTaskId:n[n.length-1].taskId}),n=[]);};for(let o of e.turns){let i=[...n,o],s=i.length>Yz,a=false;if(!s){let d=vN(e,i),c=ly(d);a=RN(c).length>Kf;}if((s||a)&&n.length>0){r(),n=[o];let d=vN(e,n),c=ly(d);if(RN(c).length>Kf)throw new gt("turns.prompt.length");continue}if(s||a)throw new gt("turns.prompt.length");n=i;}return r(),t}function Fhe(e){return ol("thl",JSON.stringify({kind:e.kind,text:e.text,anchorTaskId:e.anchorTaskId,coversFromTaskId:e.coversFromTaskId,coversToTaskId:e.coversToTaskId}))}function Hhe(e){let t=new Map;for(let i of e){let s=i.candidate.contentFingerprint;t.has(s)||t.set(s,i);}let n=new Map;for(let i of t.values()){let s=n.get(i.batchIndex)??[];s.push(i),n.set(i.batchIndex,s);}let r=[...n.keys()].sort((i,s)=>i-s),o=[];for(let i=0;o.length<wN;i+=1){let s=false;for(let a of r){let d=n.get(a)?.[i];if(d&&(o.push(d.candidate),s=true,o.length>=wN))break}if(!s)break}return o}function zz(e,t){return {...t===void 0?{}:{id:t},source:"auto",status:"active",kind:e.kind,text:e.text,anchorTaskId:e.anchorTaskId,coversFromTaskId:e.coversFromTaskId,coversToTaskId:e.coversToTaskId,contentFingerprint:e.contentFingerprint||uy(e)}}function Jz(e){return {kind:e.kind,text:e.text,anchorTaskId:e.anchorTaskId,coversFromTaskId:e.coversFromTaskId,coversToTaskId:e.coversToTaskId,contentFingerprint:e.contentFingerprint}}var fu=class{repository;workspaceId;providerFactory;providers;constructor(t){this.repository=t.repository,this.workspaceId=t.workspaceId,this.providerFactory=t.providerFactory??(n=>xo(n)),this.providers=t.providers??{};}async detectBatch(t,n){let r=SN(vN(t,t.turns)),o=[];for(let i of cy){let s=a=>{o.push({provider:i,outcome:a,...n===void 0?{}:{batchIndex:n}});};try{let d=await(this.providers[i]??this.providerFactory(i)).query(r,{mode:"query"}),c=bN(d),l=Gz(c,t);return {ok:!0,provider:i,items:l,attempts:o}}catch(a){if(a instanceof Bn)return s("invalid_output"),{ok:false,code:"INVALID_OUTPUT",attempts:o};s("provider_error");}}return {ok:false,code:"PROVIDER_EXHAUSTED",attempts:o}}async detectBatches(t){let n,r=Array.isArray(t?.turns)?t.turns:[],o=r.length>0&&(t.coversFromTaskId===void 0||t.coversToTaskId===void 0)&&(t.covers_from_task_id===void 0||t.covers_to_task_id===void 0)?{...t,coversFromTaskId:r[0].taskId??r[0].task_id??r[0].id,coversToTaskId:r[r.length-1].taskId??r[r.length-1].task_id??r[r.length-1].id}:t;try{n=ly(o,{maxTurns:Number.MAX_SAFE_INTEGER,allowEmpty:!0});}catch(u){let p=u instanceof gt?u.field:"input";return Hr("INVALID_INPUT",`Invalid thread highlight input: ${p}`,false,[])}if(n.turns.length===0)return Hr("THREAD_HIGHLIGHT_REGENERATION_NO_ELIGIBLE_TURNS","No eligible completed turns were available for regeneration",false,[]);let i;try{i=Bhe(n);}catch(u){let p=u instanceof gt?u.field:"turns";return Hr("INVALID_INPUT",`Invalid thread highlight input: ${p}`,false,[])}let s=[],a=[],d=cy[0];for(let[u,p]of i.entries()){let f;try{f=await this.detectBatch(p,u);}catch{return Hr("THREAD_HIGHLIGHT_REGENERATION_DETECTION_FAILED","Thread highlight regeneration detection failed",true,s)}if(s.push(...f.attempts),!f.ok)return Hr("THREAD_HIGHLIGHT_REGENERATION_DETECTION_FAILED","Thread highlight regeneration detection failed",true,s);d=f.provider;for(let g of f.items)a.push({batchIndex:u,candidate:{kind:g.kind,text:g.text,anchorTaskId:g.anchorTaskId,coversFromTaskId:g.coversFromTaskId,coversToTaskId:g.coversToTaskId,contentFingerprint:Fhe(g)}});}let c=Hhe(a);if(c.length<=Ck)return {ok:true,provider:d,candidates:c,batchCount:i.length,attempts:s};let l=await this.consolidate({threadId:n.threadId,detectorVersion:n.detectorVersion,newCandidates:c});return l.ok?{ok:true,provider:l.provider??d,candidates:l.candidates,batchCount:i.length,attempts:[...s,...l.attempts]}:{ok:false,failure:{...l.failure,attempts:[...s,...l.failure.attempts]}}}async consolidate(t){let n;try{n=rJ(t);}catch(d){let c=d instanceof gt?d.field:"input";return Hr("INVALID_INPUT",`Invalid thread highlight consolidation input: ${c}`,false,[])}let r=n.automatic.map(d=>zz(d,d.id));if(r.length<=Ck){let d=r.map(Jz);return {ok:true,provider:null,highlights:r,candidates:d,dismissedHighlightIds:[],attempts:[]}}let o;try{o=oJ(n).slice(0,Kf);}catch{return Hr("INVALID_INPUT","Invalid thread highlight consolidation input: prompt",false,[])}let i=[],s=new Map(n.automatic.filter(d=>d.id!==void 0).map(d=>[d.id,d])),a=new Map;for(let d of n.automatic)a.set(d.contentFingerprint,d),a.set(uy(d),d);for(let d of cy)try{let l=await(this.providers[d]??this.providerFactory(d)).query(o,{mode:"query"}),u=sJ(l),f=Mhe(u,n).map(A=>{let I=(A.id===void 0?void 0:s.get(A.id))??a.get(A.contentFingerprint);return zz(A,I?.id)}),g=new Set(f.flatMap(A=>A.id===void 0?[]:[A.id])),y=n.current.filter(A=>A.source==="auto"&&A.status==="active"&&A.id!==void 0).filter(A=>!g.has(A.id)).map(A=>A.id),_=f.map(Jz);return {ok:!0,provider:d,highlights:f,candidates:_,dismissedHighlightIds:y,attempts:i}}catch(c){if(c instanceof Bn)return i.push({provider:d,outcome:"invalid_output"}),Hr("INVALID_OUTPUT","Consolidation returned invalid thread highlight JSON",true,i);i.push({provider:d,outcome:"provider_error"});}return Hr("PROVIDER_EXHAUSTED","No thread highlight consolidation provider was available",true,i)}async consolidateHighlights(t){return this.consolidate(t)}async generate(t){let n;try{n=ly(t);}catch(s){let a=s instanceof gt?s.field:"input";return Hr("INVALID_INPUT",`Invalid thread highlight input: ${a}`,false,[])}let r=n.workspaceId??this.workspaceId;if(!r&&this.repository.resolveWorkspaceId)try{r=await this.repository.resolveWorkspaceId(n.threadId)??void 0;}catch{return Hr("REPOSITORY_FAILED","Thread highlight persistence failed",true,[])}if(!r)return Hr("INVALID_INPUT","Invalid thread highlight input: workspaceId",false,[]);let o;try{o=SN(t);}catch{return Hr("INVALID_INPUT","Invalid thread highlight input: prompt",false,[])}let i=[];for(let s of cy){let a;try{let l=await(this.providers[s]??this.providerFactory(s)).query(o,{mode:"query"}),u=bN(l);a=Gz(u,n);}catch(c){if(c instanceof Bn)return i.push({provider:s,outcome:"invalid_output"}),Hr("INVALID_OUTPUT","Detector returned invalid thread highlight JSON",true,i);i.push({provider:s,outcome:"provider_error"});continue}let d=[];try{for(let c of a){let l=c.anchorTaskId,u=JSON.stringify({kind:c.kind,text:c.text,anchorTaskId:c.anchorTaskId,coversFromTaskId:c.coversFromTaskId,coversToTaskId:c.coversToTaskId}),p=ol("thl",u),f=await this.repository.createHighlight({threadId:n.threadId,workspaceId:r,source:"auto",kind:c.kind,text:c.text,coversFromTaskId:c.coversFromTaskId,coversToTaskId:c.coversToTaskId,agentId:n.agentId,sourceTaskId:l,detectorVersion:n.detectorVersion,contentFingerprint:p,idempotencyKey:Uhe(n.threadId,l,n.detectorVersion,p),actorType:"agent",actorId:CN});d.push(f);}}catch{return Hr("REPOSITORY_FAILED","Thread highlight persistence failed",true,i)}return {ok:true,provider:s,highlights:d,attempts:i}}return Hr("PROVIDER_EXHAUSTED","No thread highlight provider was available",true,i)}async generateOrThrow(t){let n=await this.generate(t);if(!n.ok)throw new Ok(n.failure);return n}};async function jhe(e,t){return new fu(t).generate(e)}async function $he(e,t={}){return new fu({repository:{createHighlight:()=>{throw new Error("storage is not used by consolidation")}},providerFactory:t.providerFactory,providers:t.providers}).consolidate(e)}async function aJ(e,t){return new fu({repository:{createHighlight:()=>{throw new Error("storage is not used by batch detection")}},providerFactory:t.providerFactory,providers:t.providers}).detectBatches(e)}var Vhe=aJ,qhe=fu;Do();dP();cP();h();vd();Jd();h();Vg();ZT();lo();d_();var Whe="model",Ghe="mode",zhe="thought_level";function ON(e){if(e.length===0)return [];if(e[0]?.group!=null){let t=[];for(let n of e)for(let r of n.options??[])t.push(r);return t}return e}function Jhe(e,t){let n=new Map;for(let r of [...e,...t])n.has(r.id)||n.set(r.id,r);return Array.from(n.values())}function Khe(e,t,n,r){let o=n.agentInfo?.name,i=t??o??e,s=r.configOptions??[],d=(r.modes?.availableModes??[]).map(A=>({id:A.id,name:A.name,...A.description!=null?{description:A.description}:{}})),c=[];for(let A of s)if(A.category?.trim().toLowerCase()===Ghe&&A.options!=null)for(let I of ON(A.options))I.value!=null&&c.push({id:I.value,name:I.name??I.value});let l=Jhe(d,c),u=[];for(let A of s)if(A.category?.trim().toLowerCase()===zhe&&A.type==="select")for(let I of ON(A.options??[]))I.value!=null&&u.push(I.value);if(e==="claude"){let A=ag(ig()),I=dJ(n);return cJ(e,{models:A,modes:l,availableModelsCount:0,configModelsCount:0,skipModelWarn:true}),{id:`acp/${e}`,name:i,modes:l,effort:u,models:A,capabilities:I}}let f=(r.models?.availableModels??[]).map(A=>({id:A.modelId})),g=[];for(let A of s)if(A.category?.trim().toLowerCase()===Whe&&A.options!=null)for(let I of ON(A.options))I.value!=null&&g.push({id:I.value,...I.name!=null?{name:I.name}:{}});let y=ag(sg(f,g));cJ(e,{models:y,modes:l,availableModelsCount:f.length,configModelsCount:g.length,skipModelWarn:false});let _=dJ(n);return {id:`acp/${e}`,name:i,modes:l,effort:u,models:y,capabilities:_}}function dJ(e){let t=e.agentCapabilities??{};return {loadSession:t.loadSession??false,image:t.promptCapabilities?.image??false,audio:t.promptCapabilities?.audio??false,mcp:t.mcpCapabilities!=null}}function cJ(e,t){!t.skipModelWarn&&t.models.length===0&&console.warn(`[acp] ${e} meta: models empty (availableModels=${t.availableModelsCount}, configOptions[model]=${t.configModelsCount})`),t.modes.length===0&&console.warn(`[acp] ${e} meta: modes empty`);}async function lJ(e){let t=exports.ACP_ADAPTERS[e];if(!t)return null;let n=t.meta?.displayName,r=new exports.AcpConnection({spawn:t.spawn,cwd:process.cwd()});try{await r.connect(t.clientInfo);let o=r.initResponse;if(!o)return null;let i=t.buildSessionParams({cwd:process.cwd()}),s=await r.newSessionRaw(i);return Khe(e,n,o,s)}catch(o){return console.warn(`[acp] ${e} meta query failed: ${o instanceof Error?o.message:String(o)}`),null}finally{await r.dispose();}}async function Xhe(){let e=Object.keys(exports.ACP_ADAPTERS),t=await Promise.allSettled(e.map(r=>lJ(r))),n=[];for(let r of t)r.status==="fulfilled"&&r.value!==null&&n.push(r.value);return n.sort((r,o)=>kg(r.id,o.id))}Vg();uP();ZT();yP();Jy();_d();Hw();u_();Mc();ud();h();var PN=0;function Yhe(e){let t=e.meta?.taskId,n=t?` taskId=${t}`:"";if(e.ok)return `Task completed:${n}
|
|
1358
1358
|
|
|
1359
1359
|
${e.data}`;let r=e.error?.message??"Unknown error";return `Task failed:${n}
|
|
1360
|
-
Error: ${r}`}function Qhe(e){let t=Array.from(e.agents.keys());return {name:"delegate_to_agent",description:`Delegate a task to another agent. Available agents: ${t.join(", ")}`,parameters:{type:"object",properties:{agent:{type:"string",description:`Agent ID to delegate to. One of: ${t.join(", ")}`},message:{type:"string",description:"Task description for the target agent"},mode:{type:"string",description:'Execution mode: "query" for questions, "execute" for actions. Default: query'}},required:["agent","message"]},execute:async n=>{if(PN>=3)return "Error: Maximum delegation depth (3) reached. Cannot delegate further.";let r=n.agent,o=n.message,i=n.mode??"query";if(!t.includes(r))return `Error: Unknown agent "${r}". Available: ${t.join(", ")}`;PN++;try{let s=i==="execute"?await e.execute(r,o):await e.query(r,o);return Yhe(s)}finally{PN--;}}}}Oo();ms();h();Oo();var pJ="update-quiesce.lock",fJ="update-admission",LN="CREWX_UPDATE_ADMISSION_SCOPE",nme=5e3;function Xf(){return Gt.join(Ft(),pJ)}function xk(){return Gt.join(Ft(),fJ)}function gJ(e){return Gt.join(xk(),`${e}.json`)}function hu(e){try{return process.kill(e,0),!0}catch(t){return t?.code!=="ESRCH"}}function hJ(){let e=process.env[LN];if(typeof e!="string"||e.length===0)return false;let t;try{t=mr.readFileSync(Xf(),"utf8");}catch(o){return o?.code!=="ENOENT"}let n;try{n=JSON.parse(t);}catch{return true}if(typeof n!="object"||n===null)return true;let r=n;return typeof r.ownerPid!="number"||!Number.isInteger(r.ownerPid)?true:hu(r.ownerPid)?r.ownerScope===e:false}function py(){let e;try{e=mr.readFileSync(Xf(),"utf8");}catch(t){return t?.code==="ENOENT"?{kind:"absent"}:{kind:"unknown"}}try{let t=JSON.parse(e);return typeof t.ownerPid=="number"&&Number.isInteger(t.ownerPid)?{kind:"owned",ownerPid:t.ownerPid}:{kind:"unknown"}}catch{return {kind:"unknown"}}}function mJ(e){let t=Xf(),n=`${t}.reclaim`;try{mr.writeFileSync(n,String(process.pid),{flag:"wx"});}catch(r){if(r?.code==="EEXIST")return "contended";throw r}try{let r=py();return r.kind!=="owned"||r.ownerPid!==e?"changed":(mr.unlinkSync(t),"cleared")}finally{try{mr.unlinkSync(n);}catch{}}}function rme(e){let t=Xf();mr.mkdirSync(Gt.dirname(t),{recursive:true});let n=process.env[LN],r=typeof n=="string"&&n.length>0?n:null,o=JSON.stringify({quiescing:true,since:new Date().toISOString(),ownerPid:e,ownerScope:r});for(let i=0;i<2;i++)try{return mr.writeFileSync(t,o,{flag:"wx"}),{ok:!0}}catch(s){if(s?.code!=="EEXIST")throw s;let a=py();if(a.kind==="absent")continue;if(a.kind==="owned"&&a.ownerPid===e)return {ok:true};if(a.kind==="owned"&&!hu(a.ownerPid)){if(mJ(a.ownerPid)==="contended")return {ok:false,reason:"another process is currently reclaiming the durable update-admission lock; refusing to proceed concurrently"};continue}return a.kind==="owned"?{ok:false,reason:`durable update-admission lock is already held by live pid ${a.ownerPid}`}:{ok:false,reason:"durable update-admission lock exists in an unreadable/corrupt state; refusing to acquire it without proof no other owner holds it"}}return {ok:false,reason:"lost the race to acquire the durable update-admission lock after reclaiming what looked like a dead owner"}}function ome(e){let t=py();if(t.kind==="absent")return {ok:true};if(t.kind==="unknown")return {ok:false,reason:"durable update-admission lock is unreadable/corrupt; refusing to delete a marker this process cannot prove it owns"};if(t.ownerPid!==e)return {ok:false,reason:`durable update-admission lock is owned by pid ${t.ownerPid}, not this process (${e}); refusing to delete another owner's marker`};try{return mr.unlinkSync(Xf()),{ok:!0}}catch(n){return n?.code==="ENOENT"?{ok:true}:{ok:false,reason:n instanceof Error?n.message:String(n)}}}function ime(){for(let e=0;e<3;e++){let t=py();if(t.kind==="absent")return "absent";if(t.kind==="unknown")return "kept-unknown";if(hu(t.ownerPid))return "kept-live";let n=mJ(t.ownerPid);if(n==="cleared")return "cleared";if(n==="contended")return "kept-live"}return "kept-unknown"}function yJ(e,t,n,r){let o=gJ(e);try{let i=xk();mr.mkdirSync(i,{recursive:!0});let s=new Date(Date.now()+n+nme).toISOString(),a=JSON.stringify({taskId:e,scheduleId:t,...r===void 0?{}:{runId:r},pid:process.pid,createdAt:new Date().toISOString(),expiresAt:s}),d=`${o}.${process.pid}.tmp`;return mr.writeFileSync(d,a),mr.renameSync(d,o),!0}catch{return false}}function NN(e){try{mr.unlinkSync(gJ(e));}catch{}}function sme(){let e=xk(),t;try{t=mr.readdirSync(e);}catch(o){if(o?.code==="ENOENT")return [];throw o}let n=Date.now(),r=[];for(let o of t)if(o.endsWith(".json"))try{let i=JSON.parse(mr.readFileSync(Gt.join(e,o),"utf8")),s=typeof i.taskId=="string"?i.taskId:o,a=typeof i.scheduleId=="string"?i.scheduleId:"unknown",d=typeof i.expiresAt=="string"?Date.parse(i.expiresAt):NaN;if(Number.isFinite(d)&&d<n){let c=typeof i.pid=="number"&&Number.isInteger(i.pid)?i.pid:null;if(c===null){r.push({taskId:s,scheduleId:a,corrupt:!0});continue}if(hu(c)){r.push({taskId:s,scheduleId:a,corrupt:!1});continue}continue}r.push({taskId:s,scheduleId:a,corrupt:!1});}catch{r.push({taskId:o,scheduleId:"unknown",corrupt:true});}return r}var _J=1440*60*1e3;function ame(e,t=_J){let n=an("tsk");return yJ(n,e,t)?hJ()?(NN(n),{ok:false,reason:"UPDATE_QUIESCING",message:"CrewX is preparing for an update and is not accepting new work"}):{ok:true,taskId:n,release:()=>NN(n)}:{ok:false,reason:"ADMISSION_UNKNOWN",message:"Unable to durably record the update-admission reservation; refusing to start new work"}}h();Oo();h();function fy(e,t,n){if(e.host!==t.host)return {kind:"unknown",reason:"identity-unknown"};if(!Number.isSafeInteger(e.pid)||e.pid<=0)return {kind:"unknown",reason:"identity-unknown"};let r;try{r=n.isAlive(e.pid);}catch{return {kind:"unknown",reason:"identity-unknown"}}if(r==="unknown")return {kind:"unknown",reason:"identity-unknown"};if(r===false)return {kind:"dead"};let o;try{o=e.pid===t.pid?t.pidStartIdentity:n.getStartIdentity(e.pid);}catch{return {kind:"unknown",reason:"identity-unknown"}}return o?o===e.pidStartIdentity?{kind:"live"}:{kind:"reused"}:{kind:"unknown",reason:"identity-unknown"}}var CJ="process-lease.json",hme=".reclaim",mme=4,yme={isAlive:e=>hu(e),getStartIdentity:BN};function gy(e){let t=typeof e=="string"?e:e?.leasePath;return t?Gt.isAbsolute(t)?Gt.resolve(t):Gt.join(Ft(),t):Gt.join(Ft(),CJ)}function BN(e){if(!Number.isSafeInteger(e)||e<=0)return null;try{if(process.platform==="linux"){let r=mr.readFileSync(`/proc/${e}/stat`,"utf8"),o=r.lastIndexOf(")");if(o<0)return null;let s=r.slice(o+2).trim().split(/\s+/)[19];return s?`linux:${s}`:null}return (process.platform==="win32"?child_process.execFileSync("powershell.exe",["-NoLogo","-NoProfile","-NonInteractive","-Command",`(Get-CimInstance Win32_Process -Filter "ProcessId = ${e}").CreationDate.ToUniversalTime().ToString("o")`],{encoding:"utf8",stdio:["ignore","pipe","ignore"]}):child_process.execFileSync("ps",["-p",String(e),"-o","lstart="],{encoding:"utf8",stdio:["ignore","pipe","ignore"]})).trim()||null}catch{return null}}var _me=BN;function Ame(e){let t;try{t=gy(e);}catch{return {status:"unknown",reason:"io-error"}}return td(t)}function Ime(e={}){let t,n,r,o;try{t=gy(e),r=FN(e),n=HN(e,r),o=DJ(xJ(e)),jN(t);}catch{return hc("invalid-options")}let i={leaseId:gN.randomUUID(),ownerId:n.ownerId,pid:n.pid,pidStartIdentity:n.pidStartIdentity,host:n.host,startedAt:o,heartbeatAt:o};for(let s=0;s<mme;s+=1){try{if(Tme(t,i))return TJ(t,i,e)}catch{return hc("io-error")}let a=td(t);if(a.status==="absent")continue;if(a.status==="unknown")return hc(a.reason);if(LJ(a.record,n))return TJ(t,a.record,e);let d=fy(a.record,n,r);if(d.kind==="live")return hc("live-owner",a.record);if(d.kind==="unknown")return hc(d.reason,a.record);if(NJ({...e,leaseId:a.record.leaseId,expectedOwnerId:a.record.ownerId,ownerId:n.ownerId,pid:n.pid,pidStartIdentity:n.pidStartIdentity,host:n.host,processProbe:r}))continue;let l=td(t);if(l.status==="unknown")return hc(l.reason);if(l.status==="present"&&l.record.leaseId===a.record.leaseId)return hc("contention",l.record)}return hc("contention")}function OJ(e){return MJ(e,(t,n,r)=>{let o={...n,heartbeatAt:DJ(r)};return kme(t,n,o),!0})}function PJ(e){return MJ(e,t=>{try{return mr.unlinkSync(t),!0}catch(n){if(n?.code==="ENOENT")return !1;throw n}})}function NJ(e){let t,n,r;try{t=gy(e),r=FN(e),n=HN(e,r);}catch{return false}let o=td(t);if(o.status!=="present"||o.record.leaseId!==e.leaseId||e.expectedOwnerId!==void 0&&o.record.ownerId!==e.expectedOwnerId)return false;let i=BJ(t,n,r);if(!i)return false;try{let s=td(t);if(s.status!=="present"||s.record.leaseId!==e.leaseId||e.expectedOwnerId!==void 0&&s.record.ownerId!==e.expectedOwnerId)return !1;let a=fy(s.record,n,r);if(a.kind!=="dead"&&a.kind!=="reused")return !1;try{return mr.unlinkSync(t),!0}catch(d){if(d?.code==="ENOENT")return !1;throw d}}catch{return false}finally{$N(i);}}function TJ(e,t,n){let r=t,o={leasePath:e,get leaseId(){return r.leaseId},get ownerId(){return r.ownerId},get pid(){return r.pid},get pidStartIdentity(){return r.pidStartIdentity},get record(){return r},renew:()=>{let i=OJ({...n,leasePath:e,leaseId:r.leaseId,ownerId:r.ownerId,pid:r.pid,pidStartIdentity:r.pidStartIdentity,host:r.host});if(i){let s=td(e);s.status==="present"&&(r=s.record);}return i},release:()=>PJ({...n,leasePath:e,leaseId:r.leaseId,ownerId:r.ownerId,pid:r.pid,pidStartIdentity:r.pidStartIdentity,host:r.host})};return {acquired:true,status:"owner",role:"owner",leaseId:t.leaseId,ownerId:t.ownerId,record:t,lease:o}}function hc(e,t){return {acquired:false,status:"standby",role:"standby",reason:e,...t?{record:t}:{}}}function FN(e){return e.processProbe??e.probe??yme}function xJ(e){return e.clock??e.now??(()=>Date.now())}function HN(e,t){let n=e.pid??process.pid;if(!Number.isSafeInteger(n)||n<=0)throw new Error("invalid process pid");let r=e.pidStartIdentity??t.getStartIdentity(n);if(typeof r!="string"||r.length===0)throw new Error("process start identity is unavailable");let o=e.host??QU.hostname();if(typeof o!="string"||o.length===0)throw new Error("invalid process host");let i=e.ownerId??`${o}:${n}:${r}`;if(typeof i!="string"||i.length===0)throw new Error("invalid owner id");return {ownerId:i,pid:n,pidStartIdentity:r,host:o}}function DJ(e){let t=e();if(!Number.isFinite(t))throw new Error("clock returned a non-finite value");return new Date(t).toISOString()}function jN(e){mr.mkdirSync(Gt.dirname(e),{recursive:true,mode:448});}function td(e){let t;try{t=mr.readFileSync(e,"utf8");}catch(r){return r?.code==="ENOENT"?{status:"absent"}:{status:"unknown",reason:"marker-unreadable"}}let n;try{n=JSON.parse(t);}catch{return {status:"unknown",reason:"marker-corrupt"}}return Eme(n)?{status:"present",record:n}:{status:"unknown",reason:"marker-corrupt"}}function Eme(e){if(typeof e!="object"||e===null||Array.isArray(e))return false;let t=e;return typeof t.leaseId=="string"&&t.leaseId.length>0&&typeof t.ownerId=="string"&&t.ownerId.length>0&&typeof t.pid=="number"&&Number.isSafeInteger(t.pid)&&t.pid>0&&typeof t.pidStartIdentity=="string"&&t.pidStartIdentity.length>0&&typeof t.host=="string"&&t.host.length>0&&kJ(t.startedAt)&&kJ(t.heartbeatAt)}function kJ(e){return typeof e=="string"&&Number.isFinite(Date.parse(e))}function LJ(e,t){return e.ownerId===t.ownerId&&e.pid===t.pid&&e.pidStartIdentity===t.pidStartIdentity&&e.host===t.host}function MJ(e,t){let n,r,o;try{n=gy(e),o=FN(e),r=HN(e,o);}catch{return false}let i=td(n);if(i.status!=="present"||!wJ(i.record,e,r))return false;let s=BJ(n,r,o);if(!s)return false;try{let a=td(n);return a.status!=="present"||!wJ(a.record,e,r)?!1:t(n,a.record,xJ(e))}catch{return false}finally{$N(s);}}function wJ(e,t,n){return e.leaseId===t.leaseId&&LJ(e,n)}function Tme(e,t){let n=UJ(e,t);try{return mr.linkSync(n,e),!0}catch(r){if(r?.code==="EEXIST")return false;throw r}finally{try{mr.unlinkSync(n);}catch{}}}function kme(e,t,n){let r=td(e);if(r.status!=="present"||r.record.leaseId!==t.leaseId)throw new Error("process lease changed before renewal");let o=UJ(e,n);try{mr.renameSync(o,e);}finally{try{mr.unlinkSync(o);}catch{}}}function UJ(e,t){jN(e);let n=`${e}.${process.pid}.${gN.randomUUID()}.tmp`,r;try{return r=mr.openSync(n,"wx",384),mr.writeFileSync(r,JSON.stringify(t)),mr.fsyncSync(r),mr.closeSync(r),r=void 0,n}finally{if(r!==void 0)try{mr.closeSync(r);}catch{}if(r!==void 0)try{mr.unlinkSync(n);}catch{}}}function BJ(e,t,n){let r=`${e}${hme}`,o=gN.randomUUID();try{return jN(r),RJ(r,{lockId:o,pid:t.pid,pidStartIdentity:t.pidStartIdentity,host:t.host}),{path:r,lockId:o}}catch(l){if(l?.code!=="EEXIST")throw l}let i=MN(r);if(!i)return null;let s=fy(i,t,n);if(s.kind!=="dead"&&s.kind!=="reused")return null;let a=`${r}.${i.lockId}.${o}.steal`;try{mr.renameSync(r,a);}catch(l){let u=l?.code;if(u==="ENOENT"||u==="EEXIST")return null;throw l}let d=true,c=()=>{if(d){try{mr.linkSync(a,r);}catch(l){if(l?.code!=="EEXIST")return}try{mr.unlinkSync(a),d=!1;}catch{}}};try{let l=MN(a);if(!l||l.lockId!==i.lockId)return c(),null;let u=fy(l,t,n);if(u.kind!=="dead"&&u.kind!=="reused")return c(),null;try{RJ(r,{lockId:o,pid:t.pid,pidStartIdentity:t.pidStartIdentity,host:t.host});}catch(f){if(c(),f?.code==="EEXIST")return null;throw f}let p=MN(r);if(!p||p.lockId!==o)return $N({path:r,lockId:o}),c(),null;try{mr.unlinkSync(a),d=!1;}catch{}return {path:r,lockId:o}}catch(l){throw c(),l}}function RJ(e,t){mr.writeFileSync(e,JSON.stringify(t),{flag:"wx",mode:384});}function MN(e){let t;try{t=mr.readFileSync(e,"utf8");}catch{return null}let n;try{n=JSON.parse(t);}catch{return null}return wme(n)?n:null}function wme(e){if(typeof e!="object"||e===null||Array.isArray(e))return false;let t=e;return typeof t.lockId=="string"&&/^[A-Za-z0-9_-]+$/.test(t.lockId)&&typeof t.pid=="number"&&Number.isSafeInteger(t.pid)&&t.pid>0&&typeof t.pidStartIdentity=="string"&&t.pidStartIdentity.length>0&&typeof t.host=="string"&&t.host.length>0}function $N(e){try{let t=mr.readFileSync(e.path,"utf8");if(JSON.parse(t).lockId!==e.lockId)return;mr.unlinkSync(e.path);}catch{}}h();h();function Lk(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function mu(e){return typeof e=="string"&&e.trim().length>0?e:void 0}function yu(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function FJ(e){return e==="local_bash"||e==="local_agent"?e:"unknown"}function Rme(e){let t=yu(e.exit_code)??yu(e.exitCode);if(t!==void 0)return t;if(typeof e.summary!="string")return;let n=/exit code (\d+)/.exec(e.summary);return n?Number(n[1]):void 0}function HJ(e){if(!Lk(e)||e.type!=="system")return null;let t=e.subtype;if(t==="background_tasks_changed"){if(!Array.isArray(e.tasks))return null;let r=e.tasks.flatMap(o=>{if(!Lk(o))return [];let i=mu(o.task_id);return i?[{taskId:i,taskType:FJ(o.task_type)}]:[]});return {subtype:t,tasks:r}}let n=mu(e.task_id);if(!n)return null;if(t==="task_started"){let r=mu(e.description);return {subtype:t,taskId:n,parentToolUseId:mu(e.tool_use_id),taskType:FJ(e.task_type),...r?{label:r}:{},...typeof e.is_backgrounded=="boolean"?{isBackgrounded:e.is_backgrounded}:{}}}if(t==="task_progress"){let r=Lk(e.usage)?e.usage:void 0;return {subtype:t,taskId:n,parentToolUseId:mu(e.tool_use_id),lastToolName:mu(e.last_tool_name),...r?{usage:{totalTokens:yu(r.total_tokens),toolUses:yu(r.tool_uses),durationMs:yu(r.duration_ms)}}:{}}}if(t==="task_updated")return Lk(e.patch)?{subtype:t,taskId:n,patch:{...typeof e.patch.is_backgrounded=="boolean"?{isBackgrounded:e.patch.is_backgrounded}:{},...typeof e.patch.status=="string"?{status:e.patch.status}:{},...yu(e.patch.end_time)!==void 0?{endTime:yu(e.patch.end_time)}:{}}}:null;if(t==="task_notification"){let r=Rme(e);return {subtype:t,taskId:n,parentToolUseId:mu(e.tool_use_id),...typeof e.status=="string"?{status:e.status}:{},...r!==void 0?{exitCode:r}:{}}}return null}function Sme(e){try{let t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function bme(e){return typeof e=="string"&&e.length>0}function vme(e){if(e==="completed"||e==="failed")return e;if(e==="stopped"||e==="killed")return "stopped";if(e==="running")return "running"}function Cme(e){return e!=="running"}function Ome(e){if(e===void 0)return;let t=new Date(e);return Number.isNaN(t.getTime())?void 0:t.toISOString()}function Pme(e){if(e.subtype==="background_tasks_changed"){let n=new Map;for(let r of e.tasks)n.has(r.taskId)||n.set(r.taskId,{taskId:r.taskId,taskType:r.taskType});return [...n.values()]}let t=e.subtype==="task_started"?e.taskType:void 0;return [{taskId:e.taskId,...t?{taskType:t}:{}}]}function Nme(e,t){let n=t.timestamp.length>0?t.timestamp:void 0;return {providerTaskId:e,taskType:"unknown",status:"running",endedWithTurn:false,backgrounded:false,...n?{firstTimestamp:n}:{},firstSeq:t.seq,lastSeq:t.seq,rawSeqs:[]}}function xme(e,t){e.firstSeq=Math.min(e.firstSeq,t.seq),e.lastSeq=Math.max(e.lastSeq,t.seq),e.rawSeqs.push(t.seq),!bme(e.firstTimestamp)&&t.timestamp.length>0&&(e.firstTimestamp=t.timestamp);}function Dme(e,t,n){if(t.parentToolUseId&&!e.parentToolUseId&&(e.parentToolUseId=t.parentToolUseId),t.lastToolName&&(e.lastToolNameSeq===void 0||n>e.lastToolNameSeq)&&(e.lastToolName=t.lastToolName,e.lastToolNameSeq=n),!!t.usage){if(e.usageSeq===void 0||n>e.usageSeq){e.totalTokens=t.usage.totalTokens,e.toolUses=t.usage.toolUses,e.elapsedMs=t.usage.durationMs,e.usageSeq=n;return}n===e.usageSeq&&(t.usage.totalTokens!==void 0&&(e.totalTokens=Math.max(e.totalTokens??0,t.usage.totalTokens)),t.usage.toolUses!==void 0&&(e.toolUses=Math.max(e.toolUses??0,t.usage.toolUses)),t.usage.durationMs!==void 0&&(e.elapsedMs=Math.max(e.elapsedMs??0,t.usage.durationMs)));}}function jJ(e,t,n,r,o,i){let s=vme(t);s&&(s==="running"&&Cme(e.status)||(e.status=s,s!=="running"&&(e.terminalStatusSeq=n,e.endedAt=Ome(o)??(r.length>0?r:void 0),s==="failed"?i!==void 0&&(e.exitCode=i):delete e.exitCode)));}function Lme(e,t,n){if(t.subtype==="task_started"){t.taskType!=="unknown"&&(e.taskType=t.taskType),e.parentToolUseId=t.parentToolUseId??e.parentToolUseId,e.label=t.label??e.label,e.startedAt=n.timestamp.length>0?n.timestamp:e.startedAt,t.isBackgrounded===true&&(e.backgrounded=true);return}if(t.subtype==="task_progress"){Dme(e,t,n.seq);return}if(t.subtype==="task_updated"){t.patch.isBackgrounded===true&&(e.backgrounded=true),jJ(e,t.patch.status,n.seq,n.timestamp,t.patch.endTime);return}t.subtype==="task_notification"&&(t.parentToolUseId&&!e.parentToolUseId&&(e.parentToolUseId=t.parentToolUseId),jJ(e,t.status,n.seq,n.timestamp,void 0,t.exitCode));}function Mme(e,t,n){let r=e.status,o=false,i=e.endedAt;r==="stopped"&&e.terminalStatusSeq!==void 0?o=t!==void 0&&e.terminalStatusSeq>=t:e.terminalStatusSeq===void 0&&t!==void 0&&t>e.lastSeq&&(r="stopped",o=true,i=n);let s={providerTaskId:e.providerTaskId,taskType:e.taskType,status:r,endedWithTurn:o,backgrounded:e.backgrounded,firstSeq:e.firstSeq,lastSeq:e.lastSeq,rawSeqs:[...e.rawSeqs].sort((d,c)=>d-c)};e.parentToolUseId&&(s.parentToolUseId=e.parentToolUseId),e.label&&(s.label=e.label),e.exitCode!==void 0&&(s.exitCode=e.exitCode);let a=e.startedAt??e.firstTimestamp;return a&&(s.startedAt=a),i&&(s.endedAt=i),e.elapsedMs!==void 0&&(s.elapsedMs=e.elapsedMs),e.taskType==="local_agent"&&(e.lastToolName&&(s.lastToolName=e.lastToolName),e.toolUses!==void 0&&(s.toolUses=e.toolUses),e.totalTokens!==void 0&&(s.totalTokens=e.totalTokens)),s}function Ume(e){let t=[],n,r;e.forEach((a,d)=>{let c=Sme(a.message);if(!c)return;c.type==="result"&&(n===void 0||a.seq>=n)&&(n=a.seq,r=a.timestamp.length>0?a.timestamp:void 0);let l=HJ(c);l&&t.push({row:a,event:l,index:d});}),t.sort((a,d)=>a.row.seq-d.row.seq||a.index-d.index);let o=new Map,i=new Set;for(let{row:a,event:d}of t){let c=Pme(d);for(let l of c){let u=o.get(l.taskId);u||(u=Nme(l.taskId,a),o.set(l.taskId,u)),xme(u,a),l.taskType&&l.taskType!=="unknown"&&(u.taskType=l.taskType),Lme(u,d,a),i.add(a.seq);}}return {tasks:[...o.values()].map(a=>Mme(a,n,r)).sort((a,d)=>a.firstSeq-d.firstSeq||(a.providerTaskId<d.providerTaskId?-1:a.providerTaskId>d.providerTaskId?1:0)),consumedSeqs:new Set([...i].sort((a,d)=>a-d))}}h();hd();function Bme(e,t){let n=$J(e,"agent_call"),r=$J(e,"tool_result"),o=e.some(f=>f.type==="tool_result"&&!yc(f.toolUseId)&&Object.prototype.hasOwnProperty.call(f,"delegationResult")),i=new Set,s=[];for(let[f,g]of n){let y=r.get(f)??[];if(g.length!==1||y.length>1){for(let T of g)i.add(T.index);continue}if(y.length!==1)continue;let _=g[0],A=y[0],I=Vme(A.entry);if(!I.present||(i.add(_.index),!I.result?.taskId||!I.result.agentId)||yc(_.entry.targetAgent)&&_.entry.targetAgent!==I.result.agentId)continue;let k=t.filter(T=>T.taskId===I.result.taskId);if(k.length!==1)continue;let E=k[0];E.agentId===I.result.agentId&&s.push({callIndex:_.index,child:E});}let a=Fme(s),d=new Set([...a.values()].map(f=>f.taskId)),c=e.map((f,g)=>({entry:f,index:g})).filter(({entry:f,index:g})=>f.type==="agent_call"&&!a.has(g)&&!i.has(g)&&!(o&&!yc(f.toolUseId))),l=t.filter(f=>!d.has(f.taskId)),u=Hme(c,l),p=new Map(a);for(let f of u)p.set(f.callIndex,f.child);return e.map((f,g)=>{let y=p.get(g);return y?{...f,targetTaskId:y.taskId,targetAgent:y.agentId}:{...f}})}function $J(e,t){let n=new Map;return e.forEach((r,o)=>{if(r.type!==t||!yc(r.toolUseId))return;let i=n.get(r.toolUseId)??[];i.push({entry:r,index:o}),n.set(r.toolUseId,i);}),n}function Fme(e){let t=new Map;for(let r of e){let o=t.get(r.child.taskId)??[];o.push(r),t.set(r.child.taskId,o);}let n=new Map;for(let r of t.values()){if(r.length!==1)continue;let o=r[0];n.set(o.callIndex,o.child);}return n}function Hme(e,t){if(e.length===0||t.length===0)return [];let n=e.filter(({entry:s})=>!yc(s.targetAgent));if(n.length>0){if(e.length!==1||t.length!==1)return [];let s=t[0];return yc(s.agentId)?[{callIndex:n[0].index,child:s}]:[]}let r=jme(e),o=$me(t),i=[];for(let[s,a]of r){let d=o.get(s)??[];a.length!==1||d.length!==1||i.push({callIndex:a[0].index,child:d[0]});}return i}function jme(e){let t=new Map;for(let n of e){let r=n.entry.targetAgent;if(!yc(r))continue;let o=t.get(r)??[];o.push(n),t.set(r,o);}return t}function $me(e){let t=new Map;for(let n of e){if(!yc(n.agentId))continue;let r=t.get(n.agentId)??[];r.push(n),t.set(n.agentId,r);}return t}function Vme(e){return e.type!=="tool_result"?{present:false,result:null}:Object.prototype.hasOwnProperty.call(e,"delegationResult")?{present:true,result:t_(e.delegationResult)?e.delegationResult:null}:{present:false,result:null}}function yc(e){return typeof e=="string"&&e.trim().length>0}hd();h();_g();h();var qme=/^[a-zA-Z0-9._-]+$/,VN=class{constructor(t){this.storage=t;}storage;listBoxes(t){this.validateId(t);let r=this.storage.listBoxes(t).map(o=>this.toBoxResponse(o));return {boxes:r,total:r.length}}getBox(t,n){this.validateId(t),this.validateId(n);let r=this.storage.findBox(t,n);return r?this.toBoxResponse(r):null}createBox(t,n){this.validateId(t);let r=this.generateBoxId(),o=new Date().toISOString(),i=this.storage.insertBox(t,{id:r,seq:n.seq,firstTaskId:n.firstTaskId,midTaskId:n.midTaskId,lastTaskId:n.lastTaskId,taskCount:n.taskCount,summary:n.summary??null,sourceTokens:n.sourceTokens,summaryTokens:n.summaryTokens??null,createdAt:o});return this.toBoxResponse(i)}toBoxResponse(t){return {id:t.id,threadId:t.thread_id,seq:t.seq,firstTaskId:t.first_task_id,lastTaskId:t.last_task_id,taskCount:t.task_count,sourceTokens:t.source_tokens,summaryTokens:t.summary_tokens,summary:t.summary,previewFirst:this.storage.getTaskPreview(t.first_task_id,200),previewMid:this.storage.getTaskPreview(t.mid_task_id,200),previewLast:this.storage.getTaskPreview(t.last_task_id,200),createdAt:t.created_at}}validateId(t){if(!qme.test(t))throw new Error(`Invalid ID format: ${t}`)}generateBoxId(){return an("box")}};h();function Wme(e){return typeof e=="object"&&e!==null}function Mk(e){return typeof e=="string"&&e.length>0?e:void 0}function Gme(e){let t=e.metadata;if(t){let r=Mk(t.taskId)??Mk(t.task_id);if(r)return r;let o=t.task;if(Wme(o)){let i=Mk(o.taskId)??Mk(o.task_id);if(i)return i}}return /^(.*)-(?:user|assistant)$/.exec(e.id)?.[1]||`message:${e.id}`}var zme=100,Jme=8e3;function Kme(e){let t=Math.min(e.length,Jme),n=/\r\n|\r|\n/g,r=0,o=n.exec(e);for(;o!==null;){if(r++,r===zme){t=Math.min(t,o.index);break}o=n.exec(e);}let i=t>0?e.charCodeAt(t-1):0;return t<e.length&&i>=55296&&i<=56319&&t--,e.slice(0,t)}function qN(e){return e.role==="user"?Kme(e.content):e.content}function WN(e,t){let n=t.countTokens(e.content);return {...e,contentTruncated:false,originalTokens:n,includedTokens:n}}function Xme(e){return `(truncated; run \`crewx dreaming --task=${e}\` for the full result)`}function Yme(e,t,n,r){let o=Math.max(0,Math.floor(n));if(r.countTokens(t)>o)return "";let i=Array.from(e),s=0,a=i.length;for(;s<a;){let d=Math.ceil((s+a)/2),c=i.slice(0,d).join("");r.countTokens(`${c}${t}`)<=o?s=d:a=d-1;}return i.slice(0,s).join("")}function Qme(e,t,n,r){let o=r.countTokens(e.content);if(o<=n)return WN(e,r);let i=Xme(t),s=Yme(e.content,i,n,r),a=`${s}${s?`
|
|
1360
|
+
Error: ${r}`}function Qhe(e){let t=Array.from(e.agents.keys());return {name:"delegate_to_agent",description:`Delegate a task to another agent. Available agents: ${t.join(", ")}`,parameters:{type:"object",properties:{agent:{type:"string",description:`Agent ID to delegate to. One of: ${t.join(", ")}`},message:{type:"string",description:"Task description for the target agent"},mode:{type:"string",description:'Execution mode: "query" for questions, "execute" for actions. Default: query'}},required:["agent","message"]},execute:async n=>{if(PN>=3)return "Error: Maximum delegation depth (3) reached. Cannot delegate further.";let r=n.agent,o=n.message,i=n.mode??"query";if(!t.includes(r))return `Error: Unknown agent "${r}". Available: ${t.join(", ")}`;PN++;try{let s=i==="execute"?await e.execute(r,o):await e.query(r,o);return Yhe(s)}finally{PN--;}}}}Oo();ms();h();Oo();var pJ="update-quiesce.lock",fJ="update-admission",LN="CREWX_UPDATE_ADMISSION_SCOPE",nme=5e3;function Xf(){return Gt.join(Ft(),pJ)}function xk(){return Gt.join(Ft(),fJ)}function gJ(e){return Gt.join(xk(),`${e}.json`)}function hu(e){try{return process.kill(e,0),!0}catch(t){return t?.code!=="ESRCH"}}function hJ(){let e=process.env[LN];if(typeof e!="string"||e.length===0)return false;let t;try{t=mr.readFileSync(Xf(),"utf8");}catch(o){return o?.code!=="ENOENT"}let n;try{n=JSON.parse(t);}catch{return true}if(typeof n!="object"||n===null)return true;let r=n;return typeof r.ownerPid!="number"||!Number.isInteger(r.ownerPid)?true:hu(r.ownerPid)?r.ownerScope===e:false}function py(){let e;try{e=mr.readFileSync(Xf(),"utf8");}catch(t){return t?.code==="ENOENT"?{kind:"absent"}:{kind:"unknown"}}try{let t=JSON.parse(e);return typeof t.ownerPid=="number"&&Number.isInteger(t.ownerPid)?{kind:"owned",ownerPid:t.ownerPid}:{kind:"unknown"}}catch{return {kind:"unknown"}}}function mJ(e){let t=Xf(),n=`${t}.reclaim`;try{mr.writeFileSync(n,String(process.pid),{flag:"wx"});}catch(r){if(r?.code==="EEXIST")return "contended";throw r}try{let r=py();return r.kind!=="owned"||r.ownerPid!==e?"changed":(mr.unlinkSync(t),"cleared")}finally{try{mr.unlinkSync(n);}catch{}}}function rme(e){let t=Xf();mr.mkdirSync(Gt.dirname(t),{recursive:true});let n=process.env[LN],r=typeof n=="string"&&n.length>0?n:null,o=JSON.stringify({quiescing:true,since:new Date().toISOString(),ownerPid:e,ownerScope:r});for(let i=0;i<2;i++)try{return mr.writeFileSync(t,o,{flag:"wx"}),{ok:!0}}catch(s){if(s?.code!=="EEXIST")throw s;let a=py();if(a.kind==="absent")continue;if(a.kind==="owned"&&a.ownerPid===e)return {ok:true};if(a.kind==="owned"&&!hu(a.ownerPid)){if(mJ(a.ownerPid)==="contended")return {ok:false,reason:"another process is currently reclaiming the durable update-admission lock; refusing to proceed concurrently"};continue}return a.kind==="owned"?{ok:false,reason:`durable update-admission lock is already held by live pid ${a.ownerPid}`}:{ok:false,reason:"durable update-admission lock exists in an unreadable/corrupt state; refusing to acquire it without proof no other owner holds it"}}return {ok:false,reason:"lost the race to acquire the durable update-admission lock after reclaiming what looked like a dead owner"}}function ome(e){let t=py();if(t.kind==="absent")return {ok:true};if(t.kind==="unknown")return {ok:false,reason:"durable update-admission lock is unreadable/corrupt; refusing to delete a marker this process cannot prove it owns"};if(t.ownerPid!==e)return {ok:false,reason:`durable update-admission lock is owned by pid ${t.ownerPid}, not this process (${e}); refusing to delete another owner's marker`};try{return mr.unlinkSync(Xf()),{ok:!0}}catch(n){return n?.code==="ENOENT"?{ok:true}:{ok:false,reason:n instanceof Error?n.message:String(n)}}}function ime(){for(let e=0;e<3;e++){let t=py();if(t.kind==="absent")return "absent";if(t.kind==="unknown")return "kept-unknown";if(hu(t.ownerPid))return "kept-live";let n=mJ(t.ownerPid);if(n==="cleared")return "cleared";if(n==="contended")return "kept-live"}return "kept-unknown"}function yJ(e,t,n,r){let o=gJ(e);try{let i=xk();mr.mkdirSync(i,{recursive:!0});let s=new Date(Date.now()+n+nme).toISOString(),a=JSON.stringify({taskId:e,scheduleId:t,...r===void 0?{}:{runId:r},pid:process.pid,createdAt:new Date().toISOString(),expiresAt:s}),d=`${o}.${process.pid}.tmp`;return mr.writeFileSync(d,a),mr.renameSync(d,o),!0}catch{return false}}function NN(e){try{mr.unlinkSync(gJ(e));}catch{}}function sme(){let e=xk(),t;try{t=mr.readdirSync(e);}catch(o){if(o?.code==="ENOENT")return [];throw o}let n=Date.now(),r=[];for(let o of t)if(o.endsWith(".json"))try{let i=JSON.parse(mr.readFileSync(Gt.join(e,o),"utf8")),s=typeof i.taskId=="string"?i.taskId:o,a=typeof i.scheduleId=="string"?i.scheduleId:"unknown",d=typeof i.expiresAt=="string"?Date.parse(i.expiresAt):NaN;if(Number.isFinite(d)&&d<n){let c=typeof i.pid=="number"&&Number.isInteger(i.pid)?i.pid:null;if(c===null){r.push({taskId:s,scheduleId:a,corrupt:!0});continue}if(hu(c)){r.push({taskId:s,scheduleId:a,corrupt:!1});continue}continue}r.push({taskId:s,scheduleId:a,corrupt:!1});}catch{r.push({taskId:o,scheduleId:"unknown",corrupt:true});}return r}var _J=1440*60*1e3;function ame(e,t=_J){let n=an("tsk");return yJ(n,e,t)?hJ()?(NN(n),{ok:false,reason:"UPDATE_QUIESCING",message:"CrewX is preparing for an update and is not accepting new work"}):{ok:true,taskId:n,release:()=>NN(n)}:{ok:false,reason:"ADMISSION_UNKNOWN",message:"Unable to durably record the update-admission reservation; refusing to start new work"}}h();Oo();h();function fy(e,t,n){if(e.host!==t.host)return {kind:"unknown",reason:"identity-unknown"};if(!Number.isSafeInteger(e.pid)||e.pid<=0)return {kind:"unknown",reason:"identity-unknown"};let r;try{r=n.isAlive(e.pid);}catch{return {kind:"unknown",reason:"identity-unknown"}}if(r==="unknown")return {kind:"unknown",reason:"identity-unknown"};if(r===false)return {kind:"dead"};let o;try{o=e.pid===t.pid?t.pidStartIdentity:n.getStartIdentity(e.pid);}catch{return {kind:"unknown",reason:"identity-unknown"}}return o?o===e.pidStartIdentity?{kind:"live"}:{kind:"reused"}:{kind:"unknown",reason:"identity-unknown"}}var CJ="process-lease.json",hme=".reclaim",mme=4,yme={isAlive:e=>hu(e),getStartIdentity:BN};function gy(e){let t=typeof e=="string"?e:e?.leasePath;return t?Gt.isAbsolute(t)?Gt.resolve(t):Gt.join(Ft(),t):Gt.join(Ft(),CJ)}function BN(e){if(!Number.isSafeInteger(e)||e<=0)return null;try{if(process.platform==="linux"){let r=mr.readFileSync(`/proc/${e}/stat`,"utf8"),o=r.lastIndexOf(")");if(o<0)return null;let s=r.slice(o+2).trim().split(/\s+/)[19];return s?`linux:${s}`:null}return (process.platform==="win32"?child_process.execFileSync("powershell.exe",["-NoLogo","-NoProfile","-NonInteractive","-Command",`(Get-CimInstance Win32_Process -Filter "ProcessId = ${e}").CreationDate.ToUniversalTime().ToString("o")`],{encoding:"utf8",stdio:["ignore","pipe","ignore"],windowsHide:!0}):child_process.execFileSync("ps",["-p",String(e),"-o","lstart="],{encoding:"utf8",stdio:["ignore","pipe","ignore"]})).trim()||null}catch{return null}}var _me=BN;function Ame(e){let t;try{t=gy(e);}catch{return {status:"unknown",reason:"io-error"}}return td(t)}function Ime(e={}){let t,n,r,o;try{t=gy(e),r=FN(e),n=HN(e,r),o=DJ(xJ(e)),jN(t);}catch{return hc("invalid-options")}let i={leaseId:gN.randomUUID(),ownerId:n.ownerId,pid:n.pid,pidStartIdentity:n.pidStartIdentity,host:n.host,startedAt:o,heartbeatAt:o};for(let s=0;s<mme;s+=1){try{if(Tme(t,i))return TJ(t,i,e)}catch{return hc("io-error")}let a=td(t);if(a.status==="absent")continue;if(a.status==="unknown")return hc(a.reason);if(LJ(a.record,n))return TJ(t,a.record,e);let d=fy(a.record,n,r);if(d.kind==="live")return hc("live-owner",a.record);if(d.kind==="unknown")return hc(d.reason,a.record);if(NJ({...e,leaseId:a.record.leaseId,expectedOwnerId:a.record.ownerId,ownerId:n.ownerId,pid:n.pid,pidStartIdentity:n.pidStartIdentity,host:n.host,processProbe:r}))continue;let l=td(t);if(l.status==="unknown")return hc(l.reason);if(l.status==="present"&&l.record.leaseId===a.record.leaseId)return hc("contention",l.record)}return hc("contention")}function OJ(e){return MJ(e,(t,n,r)=>{let o={...n,heartbeatAt:DJ(r)};return kme(t,n,o),!0})}function PJ(e){return MJ(e,t=>{try{return mr.unlinkSync(t),!0}catch(n){if(n?.code==="ENOENT")return !1;throw n}})}function NJ(e){let t,n,r;try{t=gy(e),r=FN(e),n=HN(e,r);}catch{return false}let o=td(t);if(o.status!=="present"||o.record.leaseId!==e.leaseId||e.expectedOwnerId!==void 0&&o.record.ownerId!==e.expectedOwnerId)return false;let i=BJ(t,n,r);if(!i)return false;try{let s=td(t);if(s.status!=="present"||s.record.leaseId!==e.leaseId||e.expectedOwnerId!==void 0&&s.record.ownerId!==e.expectedOwnerId)return !1;let a=fy(s.record,n,r);if(a.kind!=="dead"&&a.kind!=="reused")return !1;try{return mr.unlinkSync(t),!0}catch(d){if(d?.code==="ENOENT")return !1;throw d}}catch{return false}finally{$N(i);}}function TJ(e,t,n){let r=t,o={leasePath:e,get leaseId(){return r.leaseId},get ownerId(){return r.ownerId},get pid(){return r.pid},get pidStartIdentity(){return r.pidStartIdentity},get record(){return r},renew:()=>{let i=OJ({...n,leasePath:e,leaseId:r.leaseId,ownerId:r.ownerId,pid:r.pid,pidStartIdentity:r.pidStartIdentity,host:r.host});if(i){let s=td(e);s.status==="present"&&(r=s.record);}return i},release:()=>PJ({...n,leasePath:e,leaseId:r.leaseId,ownerId:r.ownerId,pid:r.pid,pidStartIdentity:r.pidStartIdentity,host:r.host})};return {acquired:true,status:"owner",role:"owner",leaseId:t.leaseId,ownerId:t.ownerId,record:t,lease:o}}function hc(e,t){return {acquired:false,status:"standby",role:"standby",reason:e,...t?{record:t}:{}}}function FN(e){return e.processProbe??e.probe??yme}function xJ(e){return e.clock??e.now??(()=>Date.now())}function HN(e,t){let n=e.pid??process.pid;if(!Number.isSafeInteger(n)||n<=0)throw new Error("invalid process pid");let r=e.pidStartIdentity??t.getStartIdentity(n);if(typeof r!="string"||r.length===0)throw new Error("process start identity is unavailable");let o=e.host??QU.hostname();if(typeof o!="string"||o.length===0)throw new Error("invalid process host");let i=e.ownerId??`${o}:${n}:${r}`;if(typeof i!="string"||i.length===0)throw new Error("invalid owner id");return {ownerId:i,pid:n,pidStartIdentity:r,host:o}}function DJ(e){let t=e();if(!Number.isFinite(t))throw new Error("clock returned a non-finite value");return new Date(t).toISOString()}function jN(e){mr.mkdirSync(Gt.dirname(e),{recursive:true,mode:448});}function td(e){let t;try{t=mr.readFileSync(e,"utf8");}catch(r){return r?.code==="ENOENT"?{status:"absent"}:{status:"unknown",reason:"marker-unreadable"}}let n;try{n=JSON.parse(t);}catch{return {status:"unknown",reason:"marker-corrupt"}}return Eme(n)?{status:"present",record:n}:{status:"unknown",reason:"marker-corrupt"}}function Eme(e){if(typeof e!="object"||e===null||Array.isArray(e))return false;let t=e;return typeof t.leaseId=="string"&&t.leaseId.length>0&&typeof t.ownerId=="string"&&t.ownerId.length>0&&typeof t.pid=="number"&&Number.isSafeInteger(t.pid)&&t.pid>0&&typeof t.pidStartIdentity=="string"&&t.pidStartIdentity.length>0&&typeof t.host=="string"&&t.host.length>0&&kJ(t.startedAt)&&kJ(t.heartbeatAt)}function kJ(e){return typeof e=="string"&&Number.isFinite(Date.parse(e))}function LJ(e,t){return e.ownerId===t.ownerId&&e.pid===t.pid&&e.pidStartIdentity===t.pidStartIdentity&&e.host===t.host}function MJ(e,t){let n,r,o;try{n=gy(e),o=FN(e),r=HN(e,o);}catch{return false}let i=td(n);if(i.status!=="present"||!wJ(i.record,e,r))return false;let s=BJ(n,r,o);if(!s)return false;try{let a=td(n);return a.status!=="present"||!wJ(a.record,e,r)?!1:t(n,a.record,xJ(e))}catch{return false}finally{$N(s);}}function wJ(e,t,n){return e.leaseId===t.leaseId&&LJ(e,n)}function Tme(e,t){let n=UJ(e,t);try{return mr.linkSync(n,e),!0}catch(r){if(r?.code==="EEXIST")return false;throw r}finally{try{mr.unlinkSync(n);}catch{}}}function kme(e,t,n){let r=td(e);if(r.status!=="present"||r.record.leaseId!==t.leaseId)throw new Error("process lease changed before renewal");let o=UJ(e,n);try{mr.renameSync(o,e);}finally{try{mr.unlinkSync(o);}catch{}}}function UJ(e,t){jN(e);let n=`${e}.${process.pid}.${gN.randomUUID()}.tmp`,r;try{return r=mr.openSync(n,"wx",384),mr.writeFileSync(r,JSON.stringify(t)),mr.fsyncSync(r),mr.closeSync(r),r=void 0,n}finally{if(r!==void 0)try{mr.closeSync(r);}catch{}if(r!==void 0)try{mr.unlinkSync(n);}catch{}}}function BJ(e,t,n){let r=`${e}${hme}`,o=gN.randomUUID();try{return jN(r),RJ(r,{lockId:o,pid:t.pid,pidStartIdentity:t.pidStartIdentity,host:t.host}),{path:r,lockId:o}}catch(l){if(l?.code!=="EEXIST")throw l}let i=MN(r);if(!i)return null;let s=fy(i,t,n);if(s.kind!=="dead"&&s.kind!=="reused")return null;let a=`${r}.${i.lockId}.${o}.steal`;try{mr.renameSync(r,a);}catch(l){let u=l?.code;if(u==="ENOENT"||u==="EEXIST")return null;throw l}let d=true,c=()=>{if(d){try{mr.linkSync(a,r);}catch(l){if(l?.code!=="EEXIST")return}try{mr.unlinkSync(a),d=!1;}catch{}}};try{let l=MN(a);if(!l||l.lockId!==i.lockId)return c(),null;let u=fy(l,t,n);if(u.kind!=="dead"&&u.kind!=="reused")return c(),null;try{RJ(r,{lockId:o,pid:t.pid,pidStartIdentity:t.pidStartIdentity,host:t.host});}catch(f){if(c(),f?.code==="EEXIST")return null;throw f}let p=MN(r);if(!p||p.lockId!==o)return $N({path:r,lockId:o}),c(),null;try{mr.unlinkSync(a),d=!1;}catch{}return {path:r,lockId:o}}catch(l){throw c(),l}}function RJ(e,t){mr.writeFileSync(e,JSON.stringify(t),{flag:"wx",mode:384});}function MN(e){let t;try{t=mr.readFileSync(e,"utf8");}catch{return null}let n;try{n=JSON.parse(t);}catch{return null}return wme(n)?n:null}function wme(e){if(typeof e!="object"||e===null||Array.isArray(e))return false;let t=e;return typeof t.lockId=="string"&&/^[A-Za-z0-9_-]+$/.test(t.lockId)&&typeof t.pid=="number"&&Number.isSafeInteger(t.pid)&&t.pid>0&&typeof t.pidStartIdentity=="string"&&t.pidStartIdentity.length>0&&typeof t.host=="string"&&t.host.length>0}function $N(e){try{let t=mr.readFileSync(e.path,"utf8");if(JSON.parse(t).lockId!==e.lockId)return;mr.unlinkSync(e.path);}catch{}}h();h();function Lk(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function mu(e){return typeof e=="string"&&e.trim().length>0?e:void 0}function yu(e){return typeof e=="number"&&Number.isFinite(e)&&e>=0?e:void 0}function FJ(e){return e==="local_bash"||e==="local_agent"?e:"unknown"}function Rme(e){let t=yu(e.exit_code)??yu(e.exitCode);if(t!==void 0)return t;if(typeof e.summary!="string")return;let n=/exit code (\d+)/.exec(e.summary);return n?Number(n[1]):void 0}function HJ(e){if(!Lk(e)||e.type!=="system")return null;let t=e.subtype;if(t==="background_tasks_changed"){if(!Array.isArray(e.tasks))return null;let r=e.tasks.flatMap(o=>{if(!Lk(o))return [];let i=mu(o.task_id);return i?[{taskId:i,taskType:FJ(o.task_type)}]:[]});return {subtype:t,tasks:r}}let n=mu(e.task_id);if(!n)return null;if(t==="task_started"){let r=mu(e.description);return {subtype:t,taskId:n,parentToolUseId:mu(e.tool_use_id),taskType:FJ(e.task_type),...r?{label:r}:{},...typeof e.is_backgrounded=="boolean"?{isBackgrounded:e.is_backgrounded}:{}}}if(t==="task_progress"){let r=Lk(e.usage)?e.usage:void 0;return {subtype:t,taskId:n,parentToolUseId:mu(e.tool_use_id),lastToolName:mu(e.last_tool_name),...r?{usage:{totalTokens:yu(r.total_tokens),toolUses:yu(r.tool_uses),durationMs:yu(r.duration_ms)}}:{}}}if(t==="task_updated")return Lk(e.patch)?{subtype:t,taskId:n,patch:{...typeof e.patch.is_backgrounded=="boolean"?{isBackgrounded:e.patch.is_backgrounded}:{},...typeof e.patch.status=="string"?{status:e.patch.status}:{},...yu(e.patch.end_time)!==void 0?{endTime:yu(e.patch.end_time)}:{}}}:null;if(t==="task_notification"){let r=Rme(e);return {subtype:t,taskId:n,parentToolUseId:mu(e.tool_use_id),...typeof e.status=="string"?{status:e.status}:{},...r!==void 0?{exitCode:r}:{}}}return null}function Sme(e){try{let t=JSON.parse(e);return typeof t=="object"&&t!==null&&!Array.isArray(t)?t:null}catch{return null}}function bme(e){return typeof e=="string"&&e.length>0}function vme(e){if(e==="completed"||e==="failed")return e;if(e==="stopped"||e==="killed")return "stopped";if(e==="running")return "running"}function Cme(e){return e!=="running"}function Ome(e){if(e===void 0)return;let t=new Date(e);return Number.isNaN(t.getTime())?void 0:t.toISOString()}function Pme(e){if(e.subtype==="background_tasks_changed"){let n=new Map;for(let r of e.tasks)n.has(r.taskId)||n.set(r.taskId,{taskId:r.taskId,taskType:r.taskType});return [...n.values()]}let t=e.subtype==="task_started"?e.taskType:void 0;return [{taskId:e.taskId,...t?{taskType:t}:{}}]}function Nme(e,t){let n=t.timestamp.length>0?t.timestamp:void 0;return {providerTaskId:e,taskType:"unknown",status:"running",endedWithTurn:false,backgrounded:false,...n?{firstTimestamp:n}:{},firstSeq:t.seq,lastSeq:t.seq,rawSeqs:[]}}function xme(e,t){e.firstSeq=Math.min(e.firstSeq,t.seq),e.lastSeq=Math.max(e.lastSeq,t.seq),e.rawSeqs.push(t.seq),!bme(e.firstTimestamp)&&t.timestamp.length>0&&(e.firstTimestamp=t.timestamp);}function Dme(e,t,n){if(t.parentToolUseId&&!e.parentToolUseId&&(e.parentToolUseId=t.parentToolUseId),t.lastToolName&&(e.lastToolNameSeq===void 0||n>e.lastToolNameSeq)&&(e.lastToolName=t.lastToolName,e.lastToolNameSeq=n),!!t.usage){if(e.usageSeq===void 0||n>e.usageSeq){e.totalTokens=t.usage.totalTokens,e.toolUses=t.usage.toolUses,e.elapsedMs=t.usage.durationMs,e.usageSeq=n;return}n===e.usageSeq&&(t.usage.totalTokens!==void 0&&(e.totalTokens=Math.max(e.totalTokens??0,t.usage.totalTokens)),t.usage.toolUses!==void 0&&(e.toolUses=Math.max(e.toolUses??0,t.usage.toolUses)),t.usage.durationMs!==void 0&&(e.elapsedMs=Math.max(e.elapsedMs??0,t.usage.durationMs)));}}function jJ(e,t,n,r,o,i){let s=vme(t);s&&(s==="running"&&Cme(e.status)||(e.status=s,s!=="running"&&(e.terminalStatusSeq=n,e.endedAt=Ome(o)??(r.length>0?r:void 0),s==="failed"?i!==void 0&&(e.exitCode=i):delete e.exitCode)));}function Lme(e,t,n){if(t.subtype==="task_started"){t.taskType!=="unknown"&&(e.taskType=t.taskType),e.parentToolUseId=t.parentToolUseId??e.parentToolUseId,e.label=t.label??e.label,e.startedAt=n.timestamp.length>0?n.timestamp:e.startedAt,t.isBackgrounded===true&&(e.backgrounded=true);return}if(t.subtype==="task_progress"){Dme(e,t,n.seq);return}if(t.subtype==="task_updated"){t.patch.isBackgrounded===true&&(e.backgrounded=true),jJ(e,t.patch.status,n.seq,n.timestamp,t.patch.endTime);return}t.subtype==="task_notification"&&(t.parentToolUseId&&!e.parentToolUseId&&(e.parentToolUseId=t.parentToolUseId),jJ(e,t.status,n.seq,n.timestamp,void 0,t.exitCode));}function Mme(e,t,n){let r=e.status,o=false,i=e.endedAt;r==="stopped"&&e.terminalStatusSeq!==void 0?o=t!==void 0&&e.terminalStatusSeq>=t:e.terminalStatusSeq===void 0&&t!==void 0&&t>e.lastSeq&&(r="stopped",o=true,i=n);let s={providerTaskId:e.providerTaskId,taskType:e.taskType,status:r,endedWithTurn:o,backgrounded:e.backgrounded,firstSeq:e.firstSeq,lastSeq:e.lastSeq,rawSeqs:[...e.rawSeqs].sort((d,c)=>d-c)};e.parentToolUseId&&(s.parentToolUseId=e.parentToolUseId),e.label&&(s.label=e.label),e.exitCode!==void 0&&(s.exitCode=e.exitCode);let a=e.startedAt??e.firstTimestamp;return a&&(s.startedAt=a),i&&(s.endedAt=i),e.elapsedMs!==void 0&&(s.elapsedMs=e.elapsedMs),e.taskType==="local_agent"&&(e.lastToolName&&(s.lastToolName=e.lastToolName),e.toolUses!==void 0&&(s.toolUses=e.toolUses),e.totalTokens!==void 0&&(s.totalTokens=e.totalTokens)),s}function Ume(e){let t=[],n,r;e.forEach((a,d)=>{let c=Sme(a.message);if(!c)return;c.type==="result"&&(n===void 0||a.seq>=n)&&(n=a.seq,r=a.timestamp.length>0?a.timestamp:void 0);let l=HJ(c);l&&t.push({row:a,event:l,index:d});}),t.sort((a,d)=>a.row.seq-d.row.seq||a.index-d.index);let o=new Map,i=new Set;for(let{row:a,event:d}of t){let c=Pme(d);for(let l of c){let u=o.get(l.taskId);u||(u=Nme(l.taskId,a),o.set(l.taskId,u)),xme(u,a),l.taskType&&l.taskType!=="unknown"&&(u.taskType=l.taskType),Lme(u,d,a),i.add(a.seq);}}return {tasks:[...o.values()].map(a=>Mme(a,n,r)).sort((a,d)=>a.firstSeq-d.firstSeq||(a.providerTaskId<d.providerTaskId?-1:a.providerTaskId>d.providerTaskId?1:0)),consumedSeqs:new Set([...i].sort((a,d)=>a-d))}}h();hd();function Bme(e,t){let n=$J(e,"agent_call"),r=$J(e,"tool_result"),o=e.some(f=>f.type==="tool_result"&&!yc(f.toolUseId)&&Object.prototype.hasOwnProperty.call(f,"delegationResult")),i=new Set,s=[];for(let[f,g]of n){let y=r.get(f)??[];if(g.length!==1||y.length>1){for(let T of g)i.add(T.index);continue}if(y.length!==1)continue;let _=g[0],A=y[0],I=Vme(A.entry);if(!I.present||(i.add(_.index),!I.result?.taskId||!I.result.agentId)||yc(_.entry.targetAgent)&&_.entry.targetAgent!==I.result.agentId)continue;let k=t.filter(T=>T.taskId===I.result.taskId);if(k.length!==1)continue;let E=k[0];E.agentId===I.result.agentId&&s.push({callIndex:_.index,child:E});}let a=Fme(s),d=new Set([...a.values()].map(f=>f.taskId)),c=e.map((f,g)=>({entry:f,index:g})).filter(({entry:f,index:g})=>f.type==="agent_call"&&!a.has(g)&&!i.has(g)&&!(o&&!yc(f.toolUseId))),l=t.filter(f=>!d.has(f.taskId)),u=Hme(c,l),p=new Map(a);for(let f of u)p.set(f.callIndex,f.child);return e.map((f,g)=>{let y=p.get(g);return y?{...f,targetTaskId:y.taskId,targetAgent:y.agentId}:{...f}})}function $J(e,t){let n=new Map;return e.forEach((r,o)=>{if(r.type!==t||!yc(r.toolUseId))return;let i=n.get(r.toolUseId)??[];i.push({entry:r,index:o}),n.set(r.toolUseId,i);}),n}function Fme(e){let t=new Map;for(let r of e){let o=t.get(r.child.taskId)??[];o.push(r),t.set(r.child.taskId,o);}let n=new Map;for(let r of t.values()){if(r.length!==1)continue;let o=r[0];n.set(o.callIndex,o.child);}return n}function Hme(e,t){if(e.length===0||t.length===0)return [];let n=e.filter(({entry:s})=>!yc(s.targetAgent));if(n.length>0){if(e.length!==1||t.length!==1)return [];let s=t[0];return yc(s.agentId)?[{callIndex:n[0].index,child:s}]:[]}let r=jme(e),o=$me(t),i=[];for(let[s,a]of r){let d=o.get(s)??[];a.length!==1||d.length!==1||i.push({callIndex:a[0].index,child:d[0]});}return i}function jme(e){let t=new Map;for(let n of e){let r=n.entry.targetAgent;if(!yc(r))continue;let o=t.get(r)??[];o.push(n),t.set(r,o);}return t}function $me(e){let t=new Map;for(let n of e){if(!yc(n.agentId))continue;let r=t.get(n.agentId)??[];r.push(n),t.set(n.agentId,r);}return t}function Vme(e){return e.type!=="tool_result"?{present:false,result:null}:Object.prototype.hasOwnProperty.call(e,"delegationResult")?{present:true,result:t_(e.delegationResult)?e.delegationResult:null}:{present:false,result:null}}function yc(e){return typeof e=="string"&&e.trim().length>0}hd();h();_g();h();var qme=/^[a-zA-Z0-9._-]+$/,VN=class{constructor(t){this.storage=t;}storage;listBoxes(t){this.validateId(t);let r=this.storage.listBoxes(t).map(o=>this.toBoxResponse(o));return {boxes:r,total:r.length}}getBox(t,n){this.validateId(t),this.validateId(n);let r=this.storage.findBox(t,n);return r?this.toBoxResponse(r):null}createBox(t,n){this.validateId(t);let r=this.generateBoxId(),o=new Date().toISOString(),i=this.storage.insertBox(t,{id:r,seq:n.seq,firstTaskId:n.firstTaskId,midTaskId:n.midTaskId,lastTaskId:n.lastTaskId,taskCount:n.taskCount,summary:n.summary??null,sourceTokens:n.sourceTokens,summaryTokens:n.summaryTokens??null,createdAt:o});return this.toBoxResponse(i)}toBoxResponse(t){return {id:t.id,threadId:t.thread_id,seq:t.seq,firstTaskId:t.first_task_id,lastTaskId:t.last_task_id,taskCount:t.task_count,sourceTokens:t.source_tokens,summaryTokens:t.summary_tokens,summary:t.summary,previewFirst:this.storage.getTaskPreview(t.first_task_id,200),previewMid:this.storage.getTaskPreview(t.mid_task_id,200),previewLast:this.storage.getTaskPreview(t.last_task_id,200),createdAt:t.created_at}}validateId(t){if(!qme.test(t))throw new Error(`Invalid ID format: ${t}`)}generateBoxId(){return an("box")}};h();function Wme(e){return typeof e=="object"&&e!==null}function Mk(e){return typeof e=="string"&&e.length>0?e:void 0}function Gme(e){let t=e.metadata;if(t){let r=Mk(t.taskId)??Mk(t.task_id);if(r)return r;let o=t.task;if(Wme(o)){let i=Mk(o.taskId)??Mk(o.task_id);if(i)return i}}return /^(.*)-(?:user|assistant)$/.exec(e.id)?.[1]||`message:${e.id}`}var zme=100,Jme=8e3;function Kme(e){let t=Math.min(e.length,Jme),n=/\r\n|\r|\n/g,r=0,o=n.exec(e);for(;o!==null;){if(r++,r===zme){t=Math.min(t,o.index);break}o=n.exec(e);}let i=t>0?e.charCodeAt(t-1):0;return t<e.length&&i>=55296&&i<=56319&&t--,e.slice(0,t)}function qN(e){return e.role==="user"?Kme(e.content):e.content}function WN(e,t){let n=t.countTokens(e.content);return {...e,contentTruncated:false,originalTokens:n,includedTokens:n}}function Xme(e){return `(truncated; run \`crewx dreaming --task=${e}\` for the full result)`}function Yme(e,t,n,r){let o=Math.max(0,Math.floor(n));if(r.countTokens(t)>o)return "";let i=Array.from(e),s=0,a=i.length;for(;s<a;){let d=Math.ceil((s+a)/2),c=i.slice(0,d).join("");r.countTokens(`${c}${t}`)<=o?s=d:a=d-1;}return i.slice(0,s).join("")}function Qme(e,t,n,r){let o=r.countTokens(e.content);if(o<=n)return WN(e,r);let i=Xme(t),s=Yme(e.content,i,n,r),a=`${s}${s?`
|
|
1361
1361
|
|
|
1362
1362
|
`:""}${i}`;return {...e,content:a,contentTruncated:true,originalTokens:o,includedTokens:r.countTokens(a)}}function Zme(e){let t=new Map;for(let n of e){let r=Gme(n),o=t.get(r);o?o.messages.push(n):t.set(r,{taskId:r,messages:[n]});}return [...t.values()]}function eye(e,t,n){let r=e.messages.filter(s=>s.role==="user").map(qN).join(""),o=Math.max(0,Math.floor(t-n.countTokens(r))),i=e.messages.map(s=>{if(s.role!=="assistant")return WN(s,n);let a=Qme(s,e.taskId,o,n);return o=Math.max(0,o-(a.includedTokens??0)),a});return {messages:i,tokens:n.countTokens(i.map(qN).join(""))}}function tye(e,t,n,r,o){let{maxTokens:i,hotzoneRatio:s,warmzoneRatio:a,minGuaranteedPairs:d=5}=r,c=i*s,l=i*a,u=c+l,p=Number.isFinite(d)&&d>0?d:5,f=c/p,g=t.getThreadMessages(e),y=[],_=0,A=false,I=0,k=Zme(g);for(let w=k.length-1;w>=0;w--){let b=k[w],O=o.countTokens(b.messages.map(qN).join("")),C=c-_;if(O<=C){_+=O,y.unshift(...b.messages.map(P=>WN(P,o))),I++;continue}if(I<p){let P=Math.max(0,Math.min(f,C)),N=eye(b,P,o);_+=N.tokens,y.unshift(...N.messages),I++,A=true;continue}A=true;break}let E=[],T=0;if(A&&l>0)try{let{boxes:w}=n.listBoxes(e);for(let b=w.length-1;b>=0;b--){let O=w[b],C=O.summaryTokens??O.sourceTokens;if(T+C>l)break;T+=C,E.unshift({boxId:O.id,seq:O.seq,taskCount:O.taskCount,sourceTokens:O.sourceTokens,summary:O.summary,previewFirst:O.previewFirst,previewMid:O.previewMid,previewLast:O.previewLast,createdAt:O.createdAt});}}catch(w){if(w instanceof Error&&!/not found/i.test(w.message))throw w}return {hot:y,warm:E,hotTokens:_,warmTokens:T,hotOverflow:A,totalBudget:u,config:{maxTokens:i,hotzoneRatio:s,warmzoneRatio:a}}}_d();xc();h();var Uk=class extends Error{constructor(n,r){super(`Task ${n} timed out after ${r}ms`);this.taskId=n;this.timeoutMs=r;this.name="ParallelRunnerTimeoutError";}taskId;timeoutMs},my=class{constructor(t={}){this.defaults=t;}defaults;metrics={totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0};async run(t,n={}){if(!Array.isArray(t))throw new TypeError("ParallelRunner.run expects an array of tasks");if(t.length===0)return this.metrics={totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0},[];let r=this.mergeOptions(n),o=Math.max(1,r.maxConcurrency??5),i=r.timeoutMs,s=r.failFast??false,a=r.callbacks,d=r.evaluateTaskSuccess??(()=>true),c=[],l=0,u=0,p=0,f=false,g=0,y=perf_hooks.performance.now(),_=async O=>{a?.onTaskStart&&await a.onTaskStart(O),p+=1;let C=new AbortController,P={signal:C.signal},N,H;typeof i=="number"&&Number.isFinite(i)&&i>0&&(H=new Promise((K,Ae)=>{N=setTimeout(()=>{let fe=new Uk(O.id,i);C.abort(fe),Ae(fe);},i);}));let Q=perf_hooks.performance.now(),J=O.run(P),ke=H?Promise.race([J,H]):J;try{let K=await ke,Ae=perf_hooks.performance.now(),fe=Ae-Q,B=d(K,O),X={taskId:O.id,success:B,value:K,durationMs:fe,startedAt:Q,finishedAt:Ae,metadata:O.metadata,aborted:!1};c.push(X),B?l+=1:u+=1,a?.onTaskComplete&&await a.onTaskComplete(X),s&&!B&&(f=!0);}catch(K){let Ae=perf_hooks.performance.now(),fe=Ae-Q,B=K instanceof Error?K:new Error(String(K)),X={taskId:O.id,success:false,error:B,durationMs:fe,startedAt:Q,finishedAt:Ae,metadata:O.metadata,aborted:C.signal.aborted};c.push(X),u+=1,a?.onError&&await a.onError(O,B,fe),s&&(f=true);}finally{N&&clearTimeout(N),H&&J.catch(()=>{});}},A=async()=>{for(;!f;){let O=g;if(O>=t.length)break;g+=1;let C=t[O];if(!C||(await _(C),f))break}},I=Math.min(o,t.length),k=[];for(let O=0;O<I;O++)k.push(A());await Promise.all(k);let T=perf_hooks.performance.now()-y,w=c.length?c.reduce((O,C)=>O+C.durationMs,0)/c.length:0,b=T>0?c.length/(T/1e3):c.length;return this.metrics={totalTasks:t.length,startedTasks:p,completedTasks:c.length,successCount:l,failureCount:u,totalDurationMs:T,averageDurationMs:w,throughput:b},c}getMetrics(){return this.metrics}mergeOptions(t){return {maxConcurrency:t.maxConcurrency??this.defaults.maxConcurrency,timeoutMs:t.timeoutMs??this.defaults.timeoutMs,failFast:t.failFast??this.defaults.failFast,evaluateTaskSuccess:t.evaluateTaskSuccess??this.defaults.evaluateTaskSuccess,callbacks:this.mergeCallbacks(this.defaults.callbacks,t.callbacks)}}mergeCallbacks(t,n){if(!(!t&&!n))return {onTaskStart:async r=>{t?.onTaskStart&&await t.onTaskStart(r),n?.onTaskStart&&await n.onTaskStart(r);},onTaskComplete:async r=>{t?.onTaskComplete&&await t.onTaskComplete(r),n?.onTaskComplete&&await n.onTaskComplete(r);},onError:async(r,o,i)=>{t?.onError&&await t.onError(r,o,i),n?.onError&&await n.onError(r,o,i);}}}};h();h();var yy=class{async query(t){throw new Error("AgentRuntime.query is not implemented. Provide a subclass or mock AgentRuntime.prototype.query.")}async execute(t){throw new Error("AgentRuntime.execute is not implemented. Provide a subclass or mock AgentRuntime.prototype.execute.")}};var VJ=3,qJ=3e4,WJ=500,nye=e=>{if(typeof e!="number"||Number.isNaN(e)||!Number.isFinite(e))return VJ;let t=Math.floor(e);return t>0?t:VJ},rye=e=>e===void 0||typeof e!="number"||Number.isNaN(e)||e<=0?qJ:e,oye=e=>{if(!e)return {maxRetries:0,retryDelay:WJ};let t=Number.isInteger(e.maxRetries)&&e.maxRetries>=0?e.maxRetries:0,n=typeof e.retryDelay=="number"&&e.retryDelay>=0?e.retryDelay:WJ;return {maxRetries:t,retryDelay:n}},GN=e=>{let t=e.reason;return t instanceof Error?t:typeof t=="string"?new Error(t):new Error("Parallel operation aborted")},iye=(e,t)=>e<=0?Promise.resolve():new Promise((n,r)=>{let o=setTimeout(()=>{t.removeEventListener("abort",i),n();},e),i=()=>{clearTimeout(o),r(GN(t));};if(t.aborted){i();return}t.addEventListener("abort",i,{once:true});}),sye=async(e,t,n)=>{let r,o;for(let i=0;i<=t.maxRetries;i++){if(n.aborted)throw GN(n);try{let s=await e();if(r=s,s.success||i===t.maxRetries)return s}catch(s){if(o=s,n.aborted)throw GN(n);if(i===t.maxRetries)throw s instanceof Error?s:new Error(String(s))}i<t.maxRetries&&await iye(t.retryDelay,n);}if(r)return r;throw o?o instanceof Error?o:new Error(String(o)):new Error("Parallel helper encountered an unexpected state")},GJ=(e,t,n)=>{t.completed+=1,n?t.success+=1:t.failure+=1;try{e.onProgress?.(t.completed,t.total);}catch(r){process.env.NODE_ENV!=="production"&&console.warn("Parallel helper onProgress callback threw an error:",r);}},aye=e=>e.map(n=>({metadata:n.metadata,taskResult:n})).slice().sort((n,r)=>n.metadata.index-r.metadata.index).map(({metadata:n,taskResult:r})=>{if(r.value){let i=r.value;return {...i,agentId:i.agentId??n.request.agentId,metadata:{...i.metadata,requestIndex:n.index,mode:n.mode}}}let o=r.error??new Error("Unknown error");return {agentId:n.request.agentId,content:o.message,success:false,metadata:{error:o.message,aborted:r.aborted??false,requestIndex:n.index,mode:n.mode}}}),dye=e=>e.filter(t=>!t.success).map(t=>{let n=t.metadata;if(t.error instanceof Error)return {index:n.index,error:t.error};if(t.value&&!t.value.success){let r=String(t.value.metadata?.error??t.value.content??"Agent returned unsuccessful result");return {index:n.index,error:new Error(r)}}return {index:n.index,error:new Error("Unknown failure")}}),cye=(e,t)=>({onTaskComplete:async n=>{GJ(t,e,n.success);},onError:async()=>{GJ(t,e,false);}}),zJ=async(e,t,n={})=>{if(!Array.isArray(e))throw new TypeError("Parallel helpers expect an array of requests");if(e.length===0){let _={total:0,completed:0,successCount:0,failureCount:0,results:[],errors:[],metrics:{totalTasks:0,startedTasks:0,completedTasks:0,successCount:0,failureCount:0,totalDurationMs:0,averageDurationMs:0,throughput:0}};return n.onComplete?.(_),[]}let r=nye(n.concurrency),o=rye(n.timeout),i=oye(n.retryPolicy),s=new my,a=new yy,d=e.map((y,_)=>({id:`${t}:${y.agentId??"anonymous"}:${_}`,metadata:{index:_,mode:t,request:y},run:A=>sye(()=>t==="query"?a.query(y):a.execute(y),i,A.signal)})),c={completed:0,success:0,failure:0,total:e.length},l=await s.run(d,{maxConcurrency:r,timeoutMs:o,evaluateTaskSuccess:y=>y.success,callbacks:cye(c,n)}),u=aye(l),p=dye(l),f=s.getMetrics(),g={total:e.length,completed:e.length,successCount:u.filter(y=>y.success).length,failureCount:u.filter(y=>!y.success).length,results:u,errors:p,metrics:f};return n.onComplete?.(g),u},lye=(e,t)=>zJ(e,"query",t),uye=(e,t)=>zJ(e,"execute",t);EP();Xi();Xi();Il();Xi();DI();vs();Fp();Oi();XS();h();Ht();Jt();cn();dn();var KN=["taskLogs","requestLogs","prompts","threadsLedger","tasksLedger"],Bk=["task_log_events","request_logs","tasks","threads"],mye=`
|
|
1363
1363
|
SELECT 1 FROM storage_metadata LIMIT 1
|