@tomismeta/paperclip-aperture 0.4.3 → 0.4.4
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/README.md +4 -2
- package/dist/manifest.js +1 -1
- package/dist/worker.js +9 -9
- package/package.json +1 -1
package/dist/worker.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
var
|
|
2
|
-
`;function ls(e){return JSON.stringify(e)+nc}function ds(e){let t=e.trim();if(t.length===0)throw new Ne("Empty message");let n;try{n=JSON.parse(t)}catch{throw new Ne(`Invalid JSON: ${t.slice(0,200)}`)}if(typeof n!="object"||n===null)throw new Ne("Message must be a JSON object");let r=n;if(r.jsonrpc!=="2.0")throw new Ne(`Invalid or missing jsonrpc version (expected "2.0", got ${JSON.stringify(r.jsonrpc)})`);return n}var Ne=class extends Error{name="JsonRpcParseError";constructor(t){super(t)}},Pt=class extends Error{name="JsonRpcCallError";code;data;constructor(t){super(t.message),this.code=t.code,this.data=t.data}};var ff=3e4;function ms(e,t,n){if(n?.stdin!=null&&n?.stdout!=null)return ps({plugin:e,stdin:n.stdin,stdout:n.stdout});let r=process.argv[1];if(typeof r!="string")return;let i=rc.resolve(mf(t)),o=rc.resolve(r);i===o&&ps({plugin:e})}function ps(e){let{plugin:t}=e,n=e.stdin??process.stdin,r=e.stdout??process.stdout,i=e.rpcTimeoutMs??ff,o=!0,a=!1,c=null,u={},d=null,m=[],f=new Map,g=new Map,S=new Map,b=new Map,O=new Map,U=new Map,j=new Map,Z=1,q=Number.MAX_SAFE_INTEGER-1;function ae(l){if(!o)return;let p=ls(l);r.write(p)}function E(l,p,h){return new Promise((w,N)=>{if(!o){N(new Error(`Cannot call "${l}" \u2014 worker RPC host is not running`));return}Z>=q&&(Z=1);let Se=Z++,ee=h??i,ec=!1,nn=(ue,cf)=>{ec||(ec=!0,clearTimeout(tc),j.delete(Se),ue(cf))},tc=setTimeout(()=>{nn(N,new Pt({code:le.TIMEOUT,message:`Worker\u2192host call "${l}" timed out after ${ee}ms`}))},ee);j.set(Se,{resolve:ue=>{cs(ue)?nn(w,ue.result):us(ue)?nn(N,new Pt(ue.error)):nn(N,new Error(`Unexpected response format for "${l}"`))},timer:tc});try{let ue=ns(l,p,Se);ae(ue)}catch(ue){nn(N,ue instanceof Error?ue:new Error(String(ue)))}})}function ce(l,p){try{ae(ss(l,p))}catch{}}function Mm(){return{get manifest(){if(!c)throw new Error("Plugin context accessed before initialization");return c},config:{async get(){return E("config.get",{})}},events:{on(l,p,h){let w;if(typeof p=="function")w={name:l,fn:p};else{if(!h)throw new Error("Event handler function is required");w={name:l,filter:p,fn:h}}return m.push(w),E("events.subscribe",{eventPattern:l,filter:w.filter??null}).catch(N=>{ce("log",{level:"warn",message:`Failed to subscribe to event "${l}" on host: ${N instanceof Error?N.message:String(N)}`})}),()=>{let N=m.indexOf(w);N!==-1&&m.splice(N,1)}},async emit(l,p,h){await E("events.emit",{name:l,companyId:p,payload:h})}},jobs:{register(l,p){f.set(l,p)}},launchers:{register(l){g.set(l.id,l)}},db:{get namespace(){return d??""},async query(l,p){return E("db.query",{sql:l,params:p})},async execute(l,p){return E("db.execute",{sql:l,params:p})}},http:{async fetch(l,p){let h={};if(p){if(p.method&&(h.method=p.method),p.headers)if(p.headers instanceof Headers){let N={};p.headers.forEach((Se,ee)=>{N[ee]=Se}),h.headers=N}else if(Array.isArray(p.headers)){let N={};for(let[Se,ee]of p.headers)N[Se]=ee;h.headers=N}else h.headers=p.headers;p.body!==void 0&&p.body!==null&&(h.body=typeof p.body=="string"?p.body:String(p.body))}let w=await E("http.fetch",{url:l,init:Object.keys(h).length>0?h:void 0});return new Response(w.body,{status:w.status,statusText:w.statusText,headers:w.headers})}},secrets:{async resolve(l){return E("secrets.resolve",{secretRef:l})}},activity:{async log(l){await E("activity.log",{companyId:l.companyId,message:l.message,entityType:l.entityType,entityId:l.entityId,metadata:l.metadata})}},state:{async get(l){return E("state.get",{scopeKind:l.scopeKind,scopeId:l.scopeId,namespace:l.namespace,stateKey:l.stateKey})},async set(l,p){await E("state.set",{scopeKind:l.scopeKind,scopeId:l.scopeId,namespace:l.namespace,stateKey:l.stateKey,value:p})},async delete(l){await E("state.delete",{scopeKind:l.scopeKind,scopeId:l.scopeId,namespace:l.namespace,stateKey:l.stateKey})}},entities:{async upsert(l){return E("entities.upsert",{entityType:l.entityType,scopeKind:l.scopeKind,scopeId:l.scopeId,externalId:l.externalId,title:l.title,status:l.status,data:l.data})},async list(l){return E("entities.list",{entityType:l.entityType,scopeKind:l.scopeKind,scopeId:l.scopeId,externalId:l.externalId,limit:l.limit,offset:l.offset})}},projects:{async list(l){return E("projects.list",{companyId:l.companyId,limit:l.limit,offset:l.offset})},async get(l,p){return E("projects.get",{projectId:l,companyId:p})},async listWorkspaces(l,p){return E("projects.listWorkspaces",{projectId:l,companyId:p})},async getPrimaryWorkspace(l,p){return E("projects.getPrimaryWorkspace",{projectId:l,companyId:p})},async getWorkspaceForIssue(l,p){return E("projects.getWorkspaceForIssue",{issueId:l,companyId:p})}},companies:{async list(l){return E("companies.list",{limit:l?.limit,offset:l?.offset})},async get(l){return E("companies.get",{companyId:l})}},issues:{async list(l){return E("issues.list",{companyId:l.companyId,projectId:l.projectId,assigneeAgentId:l.assigneeAgentId,originKind:l.originKind,originId:l.originId,status:l.status,limit:l.limit,offset:l.offset})},async get(l,p){return E("issues.get",{issueId:l,companyId:p})},async create(l){return E("issues.create",{companyId:l.companyId,projectId:l.projectId,goalId:l.goalId,parentId:l.parentId,inheritExecutionWorkspaceFromIssueId:l.inheritExecutionWorkspaceFromIssueId,title:l.title,description:l.description,status:l.status,priority:l.priority,assigneeAgentId:l.assigneeAgentId,assigneeUserId:l.assigneeUserId,requestDepth:l.requestDepth,billingCode:l.billingCode,originKind:l.originKind,originId:l.originId,originRunId:l.originRunId,blockedByIssueIds:l.blockedByIssueIds,labelIds:l.labelIds,executionWorkspaceId:l.executionWorkspaceId,executionWorkspacePreference:l.executionWorkspacePreference,executionWorkspaceSettings:l.executionWorkspaceSettings,actorAgentId:l.actor?.actorAgentId,actorUserId:l.actor?.actorUserId,actorRunId:l.actor?.actorRunId})},async update(l,p,h,w){return E("issues.update",{issueId:l,patch:{...p,actorAgentId:w?.actorAgentId,actorUserId:w?.actorUserId,actorRunId:w?.actorRunId},companyId:h})},async assertCheckoutOwner(l){return E("issues.assertCheckoutOwner",l)},async getSubtree(l,p,h){return E("issues.getSubtree",{issueId:l,companyId:p,includeRoot:h?.includeRoot,includeRelations:h?.includeRelations,includeDocuments:h?.includeDocuments,includeActiveRuns:h?.includeActiveRuns,includeAssignees:h?.includeAssignees})},async requestWakeup(l,p,h){return E("issues.requestWakeup",{issueId:l,companyId:p,reason:h?.reason,contextSource:h?.contextSource,idempotencyKey:h?.idempotencyKey,actorAgentId:h?.actorAgentId,actorUserId:h?.actorUserId,actorRunId:h?.actorRunId})},async requestWakeups(l,p,h){return E("issues.requestWakeups",{issueIds:l,companyId:p,reason:h?.reason,contextSource:h?.contextSource,idempotencyKeyPrefix:h?.idempotencyKeyPrefix,actorAgentId:h?.actorAgentId,actorUserId:h?.actorUserId,actorRunId:h?.actorRunId})},async listComments(l,p){return E("issues.listComments",{issueId:l,companyId:p})},async createComment(l,p,h,w){return E("issues.createComment",{issueId:l,body:p,companyId:h,authorAgentId:w?.authorAgentId})},async createInteraction(l,p,h,w){return E("issues.createInteraction",{issueId:l,companyId:h,interaction:p,authorAgentId:w?.authorAgentId})},async suggestTasks(l,p,h,w){return E("issues.createInteraction",{issueId:l,companyId:h,interaction:{...p,kind:"suggest_tasks"},authorAgentId:w?.authorAgentId})},async askUserQuestions(l,p,h,w){return E("issues.createInteraction",{issueId:l,companyId:h,interaction:{...p,kind:"ask_user_questions"},authorAgentId:w?.authorAgentId})},async requestConfirmation(l,p,h,w){return E("issues.createInteraction",{issueId:l,companyId:h,interaction:{...p,kind:"request_confirmation"},authorAgentId:w?.authorAgentId})},documents:{async list(l,p){return E("issues.documents.list",{issueId:l,companyId:p})},async get(l,p,h){return E("issues.documents.get",{issueId:l,key:p,companyId:h})},async upsert(l){return E("issues.documents.upsert",{issueId:l.issueId,key:l.key,body:l.body,companyId:l.companyId,title:l.title,format:l.format,changeSummary:l.changeSummary})},async delete(l,p,h){return E("issues.documents.delete",{issueId:l,key:p,companyId:h})}},relations:{async get(l,p){return E("issues.relations.get",{issueId:l,companyId:p})},async setBlockedBy(l,p,h,w){return E("issues.relations.setBlockedBy",{issueId:l,companyId:h,blockedByIssueIds:p,actorAgentId:w?.actorAgentId,actorUserId:w?.actorUserId,actorRunId:w?.actorRunId})},async addBlockers(l,p,h,w){return E("issues.relations.addBlockers",{issueId:l,companyId:h,blockerIssueIds:p,actorAgentId:w?.actorAgentId,actorUserId:w?.actorUserId,actorRunId:w?.actorRunId})},async removeBlockers(l,p,h,w){return E("issues.relations.removeBlockers",{issueId:l,companyId:h,blockerIssueIds:p,actorAgentId:w?.actorAgentId,actorUserId:w?.actorUserId,actorRunId:w?.actorRunId})}},summaries:{async getOrchestration(l){return E("issues.summaries.getOrchestration",l)}}},agents:{async list(l){return E("agents.list",{companyId:l.companyId,status:l.status,limit:l.limit,offset:l.offset})},async get(l,p){return E("agents.get",{agentId:l,companyId:p})},async pause(l,p){return E("agents.pause",{agentId:l,companyId:p})},async resume(l,p){return E("agents.resume",{agentId:l,companyId:p})},async invoke(l,p,h){return E("agents.invoke",{agentId:l,companyId:p,prompt:h.prompt,reason:h.reason})},sessions:{async create(l,p,h){return E("agents.sessions.create",{agentId:l,companyId:p,taskKey:h?.taskKey,reason:h?.reason})},async list(l,p){return E("agents.sessions.list",{agentId:l,companyId:p})},async sendMessage(l,p,h){h.onEvent&&U.set(l,h.onEvent);try{return await E("agents.sessions.sendMessage",{sessionId:l,companyId:p,prompt:h.prompt,reason:h.reason})}catch(w){throw U.delete(l),w}},async close(l,p){U.delete(l),await E("agents.sessions.close",{sessionId:l,companyId:p})}}},goals:{async list(l){return E("goals.list",{companyId:l.companyId,level:l.level,status:l.status,limit:l.limit,offset:l.offset})},async get(l,p){return E("goals.get",{goalId:l,companyId:p})},async create(l){return E("goals.create",{companyId:l.companyId,title:l.title,description:l.description,level:l.level,status:l.status,parentId:l.parentId,ownerAgentId:l.ownerAgentId})},async update(l,p,h){return E("goals.update",{goalId:l,patch:p,companyId:h})}},data:{register(l,p){S.set(l,p)}},actions:{register(l,p){b.set(l,p)}},streams:(()=>{let l=new Map;return{open(p,h){l.set(p,h),ce("streams.open",{channel:p,companyId:h})},emit(p,h){let w=l.get(p)??"";ce("streams.emit",{channel:p,companyId:w,event:h})},close(p){let h=l.get(p)??"";l.delete(p),ce("streams.close",{channel:p,companyId:h})}}})(),tools:{register(l,p,h){O.set(l,{declaration:p,fn:h})}},metrics:{async write(l,p,h){await E("metrics.write",{name:l,value:p,tags:h})}},telemetry:{async track(l,p){await E("telemetry.track",{eventName:l,dimensions:p})}},logger:{info(l,p){ce("log",{level:"info",message:l,meta:p})},warn(l,p){ce("log",{level:"warn",message:l,meta:p})},error(l,p){ce("log",{level:"error",message:l,meta:p})},debug(l,p){ce("log",{level:"debug",message:l,meta:p})}}}}let Dm=Mm();async function Fm(l){let{id:p,method:h,params:w}=l;try{let N=await Um(h,w);ae(rs(p,N??null))}catch(N){let Se=N instanceof Error?N.message:String(N),ee=typeof N?.code=="number"?N.code:le.WORKER_ERROR;ae(Ot(p,ee,Se))}}async function Um(l,p){switch(l){case"initialize":return jm(p);case"health":return qm();case"shutdown":return Hm();case"validateConfig":return $m(p);case"configChanged":return Bm(p);case"onEvent":return Qa(p);case"runJob":return Vm(p);case"handleWebhook":return Km(p);case"handleApiRequest":return Wm(p);case"getData":return zm(p);case"performAction":return Gm(p);case"executeTool":return Zm(p);case"environmentValidateConfig":return Ym(p);case"environmentProbe":return Jm(p);case"environmentAcquireLease":return Xm(p);case"environmentResumeLease":return Qm(p);case"environmentReleaseLease":return ef(p);case"environmentDestroyLease":return tf(p);case"environmentRealizeWorkspace":return nf(p);case"environmentExecute":return rf(p);default:throw Object.assign(new Error(`Unknown method: ${l}`),{code:qn.METHOD_NOT_FOUND})}}async function jm(l){if(a)throw new Error("Worker already initialized");c=l.manifest,u=l.config,d=l.databaseNamespace??null,await t.definition.setup(Dm),a=!0;let p=[];return t.definition.onValidateConfig&&p.push("validateConfig"),t.definition.onConfigChanged&&p.push("configChanged"),t.definition.onHealth&&p.push("health"),t.definition.onShutdown&&p.push("shutdown"),t.definition.onApiRequest&&p.push("handleApiRequest"),t.definition.onEnvironmentValidateConfig&&p.push("environmentValidateConfig"),t.definition.onEnvironmentProbe&&p.push("environmentProbe"),t.definition.onEnvironmentAcquireLease&&p.push("environmentAcquireLease"),t.definition.onEnvironmentResumeLease&&p.push("environmentResumeLease"),t.definition.onEnvironmentReleaseLease&&p.push("environmentReleaseLease"),t.definition.onEnvironmentDestroyLease&&p.push("environmentDestroyLease"),t.definition.onEnvironmentRealizeWorkspace&&p.push("environmentRealizeWorkspace"),t.definition.onEnvironmentExecute&&p.push("environmentExecute"),{ok:!0,supportedMethods:p}}async function qm(){return t.definition.onHealth?t.definition.onHealth():{status:"ok"}}async function Hm(){t.definition.onShutdown&&await t.definition.onShutdown(),setImmediate(()=>{Qr(),!e.stdin&&!e.stdout&&process.exit(0)})}async function $m(l){if(!t.definition.onValidateConfig)throw Object.assign(new Error("validateConfig is not implemented by this plugin"),{code:le.METHOD_NOT_IMPLEMENTED});return t.definition.onValidateConfig(l.config)}async function Bm(l){u=l.config,t.definition.onConfigChanged&&await t.definition.onConfigChanged(l.config)}async function Qa(l){let p=l.event;for(let h of m){let w=h.name===p.eventType,N=h.name==="plugin.*"&&p.eventType.startsWith("plugin."),Se=h.name.endsWith(".*")&&p.eventType.startsWith(h.name.slice(0,-1));if(!(!w&&!N&&!Se)&&!(h.filter&&!sf(h.filter,p)))try{await h.fn(p)}catch(ee){ce("log",{level:"error",message:`Event handler for "${h.name}" failed: ${ee instanceof Error?ee.message:String(ee)}`,meta:{eventType:p.eventType,stack:ee instanceof Error?ee.stack:void 0}})}}}async function Vm(l){let p=f.get(l.job.jobKey);if(!p)throw new Error(`No handler registered for job "${l.job.jobKey}"`);await p(l.job)}async function Km(l){if(!t.definition.onWebhook)throw Object.assign(new Error("handleWebhook is not implemented by this plugin"),{code:le.METHOD_NOT_IMPLEMENTED});await t.definition.onWebhook(l)}async function Wm(l){if(!t.definition.onApiRequest)throw Object.assign(new Error("handleApiRequest is not implemented by this plugin"),{code:le.METHOD_NOT_IMPLEMENTED});return t.definition.onApiRequest(l)}async function zm(l){let p=S.get(l.key);if(!p)throw new Error(`No data handler registered for key "${l.key}"`);return p(l.renderEnvironment===void 0?l.params:{...l.params,renderEnvironment:l.renderEnvironment})}async function Gm(l){let p=b.get(l.key);if(!p)throw new Error(`No action handler registered for key "${l.key}"`);return p(l.renderEnvironment===void 0?l.params:{...l.params,renderEnvironment:l.renderEnvironment})}async function Zm(l){let p=O.get(l.toolName);if(!p)throw new Error(`No tool handler registered for "${l.toolName}"`);return p.fn(l.parameters,l.runContext)}function $e(l){return Object.assign(new Error(`${l} is not implemented by this plugin`),{code:le.METHOD_NOT_IMPLEMENTED})}async function Ym(l){if(!t.definition.onEnvironmentValidateConfig)throw $e("environmentValidateConfig");return t.definition.onEnvironmentValidateConfig(l)}async function Jm(l){if(!t.definition.onEnvironmentProbe)throw $e("environmentProbe");return t.definition.onEnvironmentProbe(l)}async function Xm(l){if(!t.definition.onEnvironmentAcquireLease)throw $e("environmentAcquireLease");return t.definition.onEnvironmentAcquireLease(l)}async function Qm(l){if(!t.definition.onEnvironmentResumeLease)throw $e("environmentResumeLease");return t.definition.onEnvironmentResumeLease(l)}async function ef(l){if(!t.definition.onEnvironmentReleaseLease)throw $e("environmentReleaseLease");return t.definition.onEnvironmentReleaseLease(l)}async function tf(l){if(!t.definition.onEnvironmentDestroyLease)throw $e("environmentDestroyLease");return t.definition.onEnvironmentDestroyLease(l)}async function nf(l){if(!t.definition.onEnvironmentRealizeWorkspace)throw $e("environmentRealizeWorkspace");return t.definition.onEnvironmentRealizeWorkspace(l)}async function rf(l){if(!t.definition.onEnvironmentExecute)throw $e("environmentExecute");return t.definition.onEnvironmentExecute(l)}function sf(l,p){let h=p.payload;return!(l.companyId!==void 0&&(p.companyId??String(h?.companyId??""))!==l.companyId||l.projectId!==void 0&&(p.entityType==="project"?p.entityId:String(h?.projectId??""))!==l.projectId||l.agentId!==void 0&&(p.entityType==="agent"?p.entityId:String(h?.agentId??""))!==l.agentId)}function of(l){let p=l.id;if(p==null)return;let h=j.get(p);h&&(clearTimeout(h.timer),j.delete(p),h.resolve(l))}function af(l){if(!l.trim())return;let p;try{p=ds(l)}catch(h){h instanceof Ne&&ae(Ot(null,qn.PARSE_ERROR,`Parse error: ${h.message}`));return}if(as(p))of(p);else if(is(p))Fm(p).catch(h=>{let w=h instanceof Error?h.message:String(h),N=h?.code??le.WORKER_ERROR;try{ae(Ot(p.id,typeof N=="number"?N:le.WORKER_ERROR,w))}catch{}});else if(os(p)){let h=p;if(h.method==="agents.sessions.event"&&h.params){let w=h.params,N=U.get(w.sessionId);N&&N(w)}else h.method==="onEvent"&&h.params&&Qa(h.params).catch(w=>{ce("log",{level:"error",message:`Failed to handle event notification: ${w instanceof Error?w.message:String(w)}`})})}}function Qr(){o=!1,tn&&(tn.close(),tn=null);for(let[l,p]of j)clearTimeout(p.timer),p.resolve(Ot(l,le.WORKER_UNAVAILABLE,"Worker RPC host is shutting down"));j.clear(),U.clear()}let tn=pf({input:n,crlfDelay:1/0});return tn.on("line",af),tn.on("close",()=>{o&&(Qr(),!e.stdin&&!e.stdout&&process.exit(0))}),!e.stdin&&!e.stdout&&(process.on("uncaughtException",l=>{ce("log",{level:"error",message:`Uncaught exception: ${l.message}`,meta:{stack:l.stack}}),setTimeout(()=>process.exit(1),100)}),process.on("unhandledRejection",l=>{let p=l instanceof Error?l.message:String(l),h=l instanceof Error?l.stack:void 0;ce("log",{level:"error",message:`Unhandled rejection: ${p}`,meta:{stack:h}})})),{get running(){return o},stop(){Qr()}}}var s={};lf(s,{BRAND:()=>qf,DIRTY:()=>et,EMPTY_PATH:()=>Sf,INVALID:()=>_,NEVER:()=>wg,OK:()=>W,ParseStatus:()=>B,Schema:()=>T,ZodAny:()=>Ke,ZodArray:()=>Fe,ZodBigInt:()=>nt,ZodBoolean:()=>rt,ZodBranded:()=>sn,ZodCatch:()=>ft,ZodDate:()=>st,ZodDefault:()=>mt,ZodDiscriminatedUnion:()=>Bn,ZodEffects:()=>me,ZodEnum:()=>dt,ZodError:()=>te,ZodFirstPartyTypeKind:()=>A,ZodFunction:()=>Kn,ZodIntersection:()=>ct,ZodIssueCode:()=>y,ZodLazy:()=>ut,ZodLiteral:()=>lt,ZodMap:()=>Ut,ZodNaN:()=>qt,ZodNativeEnum:()=>pt,ZodNever:()=>be,ZodNull:()=>ot,ZodNullable:()=>Ae,ZodNumber:()=>tt,ZodObject:()=>ne,ZodOptional:()=>de,ZodParsedType:()=>k,ZodPipeline:()=>on,ZodPromise:()=>We,ZodReadonly:()=>gt,ZodRecord:()=>Vn,ZodSchema:()=>T,ZodSet:()=>jt,ZodString:()=>Ve,ZodSymbol:()=>Dt,ZodTransformer:()=>me,ZodTuple:()=>_e,ZodType:()=>T,ZodUndefined:()=>it,ZodUnion:()=>at,ZodUnknown:()=>De,ZodVoid:()=>Ft,addIssueToContext:()=>v,any:()=>Zf,array:()=>Qf,bigint:()=>Vf,boolean:()=>fc,coerce:()=>Eg,custom:()=>dc,date:()=>Kf,datetimeRegex:()=>uc,defaultErrorMap:()=>Le,discriminatedUnion:()=>rg,effect:()=>gg,enum:()=>pg,function:()=>ug,getErrorMap:()=>Nt,getParsedType:()=>we,instanceof:()=>$f,intersection:()=>sg,isAborted:()=>Hn,isAsync:()=>Lt,isDirty:()=>$n,isValid:()=>Be,late:()=>Hf,lazy:()=>lg,literal:()=>dg,makeIssue:()=>rn,map:()=>ag,nan:()=>Bf,nativeEnum:()=>mg,never:()=>Jf,null:()=>Gf,nullable:()=>yg,number:()=>mc,object:()=>eg,objectUtil:()=>fs,oboolean:()=>Ig,onumber:()=>kg,optional:()=>hg,ostring:()=>vg,pipeline:()=>bg,preprocess:()=>Sg,promise:()=>fg,quotelessJson:()=>gf,record:()=>og,set:()=>cg,setErrorMap:()=>yf,strictObject:()=>tg,string:()=>pc,symbol:()=>Wf,transformer:()=>gg,tuple:()=>ig,undefined:()=>zf,union:()=>ng,unknown:()=>Yf,util:()=>C,void:()=>Xf});var C;(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{let o={};for(let a of i)o[a]=a;return o},e.getValidEnumValues=i=>{let o=e.objectKeys(i).filter(c=>typeof i[i[c]]!="number"),a={};for(let c of o)a[c]=i[c];return e.objectValues(a)},e.objectValues=i=>e.objectKeys(i).map(function(o){return i[o]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let o=[];for(let a in i)Object.prototype.hasOwnProperty.call(i,a)&&o.push(a);return o},e.find=(i,o)=>{for(let a of i)if(o(a))return a},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,o=" | "){return i.map(a=>typeof a=="string"?`'${a}'`:a).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(i,o)=>typeof o=="bigint"?o.toString():o})(C||(C={}));var fs;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(fs||(fs={}));var k=C.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),we=e=>{switch(typeof e){case"undefined":return k.undefined;case"string":return k.string;case"number":return Number.isNaN(e)?k.nan:k.number;case"boolean":return k.boolean;case"function":return k.function;case"bigint":return k.bigint;case"symbol":return k.symbol;case"object":return Array.isArray(e)?k.array:e===null?k.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?k.promise:typeof Map<"u"&&e instanceof Map?k.map:typeof Set<"u"&&e instanceof Set?k.set:typeof Date<"u"&&e instanceof Date?k.date:k.object;default:return k.unknown}};var y=C.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),gf=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),te=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(o){return o.message},r={_errors:[]},i=o=>{for(let a of o.issues)if(a.code==="invalid_union")a.unionErrors.map(i);else if(a.code==="invalid_return_type")i(a.returnTypeError);else if(a.code==="invalid_arguments")i(a.argumentsError);else if(a.path.length===0)r._errors.push(n(a));else{let c=r,u=0;for(;u<a.path.length;){let d=a.path[u];u===a.path.length-1?(c[d]=c[d]||{_errors:[]},c[d]._errors.push(n(a))):c[d]=c[d]||{_errors:[]},c=c[d],u++}}};return i(this),r}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,C.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let i of this.issues)if(i.path.length>0){let o=i.path[0];n[o]=n[o]||[],n[o].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};te.create=e=>new te(e);var hf=(e,t)=>{let n;switch(e.code){case y.invalid_type:e.received===k.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case y.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,C.jsonStringifyReplacer)}`;break;case y.unrecognized_keys:n=`Unrecognized key(s) in object: ${C.joinValues(e.keys,", ")}`;break;case y.invalid_union:n="Invalid input";break;case y.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${C.joinValues(e.options)}`;break;case y.invalid_enum_value:n=`Invalid enum value. Expected ${C.joinValues(e.options)}, received '${e.received}'`;break;case y.invalid_arguments:n="Invalid function arguments";break;case y.invalid_return_type:n="Invalid function return type";break;case y.invalid_date:n="Invalid date";break;case y.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:C.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case y.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case y.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case y.custom:n="Invalid input";break;case y.invalid_intersection_types:n="Intersection results could not be merged";break;case y.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case y.not_finite:n="Number must be finite";break;default:n=t.defaultError,C.assertNever(e)}return{message:n}},Le=hf;var sc=Le;function yf(e){sc=e}function Nt(){return sc}var rn=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,o=[...n,...i.path||[]],a={...i,path:o};if(i.message!==void 0)return{...i,path:o,message:i.message};let c="",u=r.filter(d=>!!d).slice().reverse();for(let d of u)c=d(a,{data:t,defaultError:c}).message;return{...i,path:o,message:c}},Sf=[];function v(e,t){let n=Nt(),r=rn({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Le?void 0:Le].filter(i=>!!i)});e.common.issues.push(r)}var B=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return _;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let o=await i.key,a=await i.value;r.push({key:o,value:a})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:o,value:a}=i;if(o.status==="aborted"||a.status==="aborted")return _;o.status==="dirty"&&t.dirty(),a.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof a.value<"u"||i.alwaysSet)&&(r[o.value]=a.value)}return{status:t.value,value:r}}},_=Object.freeze({status:"aborted"}),et=e=>({status:"dirty",value:e}),W=e=>({status:"valid",value:e}),Hn=e=>e.status==="aborted",$n=e=>e.status==="dirty",Be=e=>e.status==="valid",Lt=e=>typeof Promise<"u"&&e instanceof Promise;var I;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(I||(I={}));var pe=class{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},ic=(e,t)=>{if(Be(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new te(e.common.issues);return this._error=n,this._error}}};function R(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(a,c)=>{let{message:u}=e;return a.code==="invalid_enum_value"?{message:u??c.defaultError}:typeof c.data>"u"?{message:u??r??c.defaultError}:a.code!=="invalid_type"?{message:c.defaultError}:{message:u??n??c.defaultError}},description:i}}var T=class{get description(){return this._def.description}_getType(t){return we(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:we(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new B,ctx:{common:t.parent.common,data:t.data,parsedType:we(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(Lt(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:we(t)},i=this._parseSync({data:t,path:r.path,parent:r});return ic(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:we(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Be(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>Be(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:we(t)},i=this._parse({data:t,path:r.path,parent:r}),o=await(Lt(i)?i:Promise.resolve(i));return ic(r,o)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,o)=>{let a=t(i),c=()=>o.addIssue({code:y.custom,...r(i)});return typeof Promise<"u"&&a instanceof Promise?a.then(u=>u?!0:(c(),!1)):a?!0:(c(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new me({schema:this,typeName:A.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return de.create(this,this._def)}nullable(){return Ae.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Fe.create(this)}promise(){return We.create(this,this._def)}or(t){return at.create([this,t],this._def)}and(t){return ct.create(this,t,this._def)}transform(t){return new me({...R(this._def),schema:this,typeName:A.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new mt({...R(this._def),innerType:this,defaultValue:n,typeName:A.ZodDefault})}brand(){return new sn({typeName:A.ZodBranded,type:this,...R(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new ft({...R(this._def),innerType:this,catchValue:n,typeName:A.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return on.create(this,t)}readonly(){return gt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},bf=/^c[^\s-]{8,}$/i,vf=/^[0-9a-z]+$/,kf=/^[0-9A-HJKMNP-TV-Z]{26}$/i,If=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,Ef=/^[a-z0-9_-]{21}$/i,wf=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,_f=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Af=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Rf="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",gs,Tf=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,xf=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Cf=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Pf=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Of=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Nf=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ac="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Lf=new RegExp(`^${ac}$`);function cc(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Mf(e){return new RegExp(`^${cc(e)}$`)}function uc(e){let t=`${ac}T${cc(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Df(e,t){return!!((t==="v4"||!t)&&Tf.test(e)||(t==="v6"||!t)&&Cf.test(e))}function Ff(e,t){if(!wf.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function Uf(e,t){return!!((t==="v4"||!t)&&xf.test(e)||(t==="v6"||!t)&&Pf.test(e))}var Ve=class e extends T{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==k.string){let o=this._getOrReturnCtx(t);return v(o,{code:y.invalid_type,expected:k.string,received:o.parsedType}),_}let r=new B,i;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(i=this._getOrReturnCtx(t,i),v(i,{code:y.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")t.data.length>o.value&&(i=this._getOrReturnCtx(t,i),v(i,{code:y.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let a=t.data.length>o.value,c=t.data.length<o.value;(a||c)&&(i=this._getOrReturnCtx(t,i),a?v(i,{code:y.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):c&&v(i,{code:y.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")Af.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"email",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")gs||(gs=new RegExp(Rf,"u")),gs.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"emoji",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")If.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"uuid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")Ef.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"nanoid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")bf.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"cuid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")vf.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"cuid2",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")kf.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"ulid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{i=this._getOrReturnCtx(t,i),v(i,{validation:"url",code:y.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"regex",code:y.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(i=this._getOrReturnCtx(t,i),v(i,{code:y.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(i=this._getOrReturnCtx(t,i),v(i,{code:y.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(i=this._getOrReturnCtx(t,i),v(i,{code:y.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?uc(o).test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{code:y.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?Lf.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{code:y.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?Mf(o).test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{code:y.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?_f.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"duration",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?Df(t.data,o.version)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"ip",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?Ff(t.data,o.alg)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"jwt",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?Uf(t.data,o.version)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"cidr",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?Of.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"base64",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?Nf.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"base64url",code:y.invalid_string,message:o.message}),r.dirty()):C.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(i=>t.test(i),{validation:n,code:y.invalid_string,...I.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...I.errToObj(t)})}url(t){return this._addCheck({kind:"url",...I.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...I.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...I.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...I.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...I.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...I.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...I.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...I.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...I.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...I.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...I.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...I.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...I.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...I.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...I.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...I.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...I.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...I.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...I.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...I.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...I.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...I.errToObj(n)})}nonempty(t){return this.min(1,I.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};Ve.create=e=>new Ve({checks:[],typeName:A.ZodString,coerce:e?.coerce??!1,...R(e)});function jf(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,o=Number.parseInt(e.toFixed(i).replace(".","")),a=Number.parseInt(t.toFixed(i).replace(".",""));return o%a/10**i}var tt=class e extends T{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==k.number){let o=this._getOrReturnCtx(t);return v(o,{code:y.invalid_type,expected:k.number,received:o.parsedType}),_}let r,i=new B;for(let o of this._def.checks)o.kind==="int"?C.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),v(r,{code:y.invalid_type,expected:"integer",received:"float",message:o.message}),i.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),v(r,{code:y.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),i.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),v(r,{code:y.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),i.dirty()):o.kind==="multipleOf"?jf(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),v(r,{code:y.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),v(r,{code:y.not_finite,message:o.message}),i.dirty()):C.assertNever(o);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,I.toString(n))}gt(t,n){return this.setLimit("min",t,!1,I.toString(n))}lte(t,n){return this.setLimit("max",t,!0,I.toString(n))}lt(t,n){return this.setLimit("max",t,!1,I.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:I.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:I.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:I.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:I.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:I.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:I.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:I.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:I.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:I.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:I.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&C.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(n)&&Number.isFinite(t)}};tt.create=e=>new tt({checks:[],typeName:A.ZodNumber,coerce:e?.coerce||!1,...R(e)});var nt=class e extends T{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==k.bigint)return this._getInvalidInput(t);let r,i=new B;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),v(r,{code:y.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),i.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),v(r,{code:y.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),i.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),v(r,{code:y.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):C.assertNever(o);return{status:i.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return v(n,{code:y.invalid_type,expected:k.bigint,received:n.parsedType}),_}gte(t,n){return this.setLimit("min",t,!0,I.toString(n))}gt(t,n){return this.setLimit("min",t,!1,I.toString(n))}lte(t,n){return this.setLimit("max",t,!0,I.toString(n))}lt(t,n){return this.setLimit("max",t,!1,I.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:I.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:I.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:I.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:I.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:I.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:I.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};nt.create=e=>new nt({checks:[],typeName:A.ZodBigInt,coerce:e?.coerce??!1,...R(e)});var rt=class extends T{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==k.boolean){let r=this._getOrReturnCtx(t);return v(r,{code:y.invalid_type,expected:k.boolean,received:r.parsedType}),_}return W(t.data)}};rt.create=e=>new rt({typeName:A.ZodBoolean,coerce:e?.coerce||!1,...R(e)});var st=class e extends T{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==k.date){let o=this._getOrReturnCtx(t);return v(o,{code:y.invalid_type,expected:k.date,received:o.parsedType}),_}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return v(o,{code:y.invalid_date}),_}let r=new B,i;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(i=this._getOrReturnCtx(t,i),v(i,{code:y.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(i=this._getOrReturnCtx(t,i),v(i,{code:y.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):C.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:I.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:I.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}};st.create=e=>new st({checks:[],coerce:e?.coerce||!1,typeName:A.ZodDate,...R(e)});var Dt=class extends T{_parse(t){if(this._getType(t)!==k.symbol){let r=this._getOrReturnCtx(t);return v(r,{code:y.invalid_type,expected:k.symbol,received:r.parsedType}),_}return W(t.data)}};Dt.create=e=>new Dt({typeName:A.ZodSymbol,...R(e)});var it=class extends T{_parse(t){if(this._getType(t)!==k.undefined){let r=this._getOrReturnCtx(t);return v(r,{code:y.invalid_type,expected:k.undefined,received:r.parsedType}),_}return W(t.data)}};it.create=e=>new it({typeName:A.ZodUndefined,...R(e)});var ot=class extends T{_parse(t){if(this._getType(t)!==k.null){let r=this._getOrReturnCtx(t);return v(r,{code:y.invalid_type,expected:k.null,received:r.parsedType}),_}return W(t.data)}};ot.create=e=>new ot({typeName:A.ZodNull,...R(e)});var Ke=class extends T{constructor(){super(...arguments),this._any=!0}_parse(t){return W(t.data)}};Ke.create=e=>new Ke({typeName:A.ZodAny,...R(e)});var De=class extends T{constructor(){super(...arguments),this._unknown=!0}_parse(t){return W(t.data)}};De.create=e=>new De({typeName:A.ZodUnknown,...R(e)});var be=class extends T{_parse(t){let n=this._getOrReturnCtx(t);return v(n,{code:y.invalid_type,expected:k.never,received:n.parsedType}),_}};be.create=e=>new be({typeName:A.ZodNever,...R(e)});var Ft=class extends T{_parse(t){if(this._getType(t)!==k.undefined){let r=this._getOrReturnCtx(t);return v(r,{code:y.invalid_type,expected:k.void,received:r.parsedType}),_}return W(t.data)}};Ft.create=e=>new Ft({typeName:A.ZodVoid,...R(e)});var Fe=class e extends T{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==k.array)return v(n,{code:y.invalid_type,expected:k.array,received:n.parsedType}),_;if(i.exactLength!==null){let a=n.data.length>i.exactLength.value,c=n.data.length<i.exactLength.value;(a||c)&&(v(n,{code:a?y.too_big:y.too_small,minimum:c?i.exactLength.value:void 0,maximum:a?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),r.dirty())}if(i.minLength!==null&&n.data.length<i.minLength.value&&(v(n,{code:y.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),r.dirty()),i.maxLength!==null&&n.data.length>i.maxLength.value&&(v(n,{code:y.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((a,c)=>i.type._parseAsync(new pe(n,a,n.path,c)))).then(a=>B.mergeArray(r,a));let o=[...n.data].map((a,c)=>i.type._parseSync(new pe(n,a,n.path,c)));return B.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:I.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:I.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:I.toString(n)}})}nonempty(t){return this.min(1,t)}};Fe.create=(e,t)=>new Fe({type:e,minLength:null,maxLength:null,exactLength:null,typeName:A.ZodArray,...R(t)});function Mt(e){if(e instanceof ne){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=de.create(Mt(r))}return new ne({...e._def,shape:()=>t})}else return e instanceof Fe?new Fe({...e._def,type:Mt(e.element)}):e instanceof de?de.create(Mt(e.unwrap())):e instanceof Ae?Ae.create(Mt(e.unwrap())):e instanceof _e?_e.create(e.items.map(t=>Mt(t))):e}var ne=class e extends T{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=C.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==k.object){let d=this._getOrReturnCtx(t);return v(d,{code:y.invalid_type,expected:k.object,received:d.parsedType}),_}let{status:r,ctx:i}=this._processInputParams(t),{shape:o,keys:a}=this._getCached(),c=[];if(!(this._def.catchall instanceof be&&this._def.unknownKeys==="strip"))for(let d in i.data)a.includes(d)||c.push(d);let u=[];for(let d of a){let m=o[d],f=i.data[d];u.push({key:{status:"valid",value:d},value:m._parse(new pe(i,f,i.path,d)),alwaysSet:d in i.data})}if(this._def.catchall instanceof be){let d=this._def.unknownKeys;if(d==="passthrough")for(let m of c)u.push({key:{status:"valid",value:m},value:{status:"valid",value:i.data[m]}});else if(d==="strict")c.length>0&&(v(i,{code:y.unrecognized_keys,keys:c}),r.dirty());else if(d!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let d=this._def.catchall;for(let m of c){let f=i.data[m];u.push({key:{status:"valid",value:m},value:d._parse(new pe(i,f,i.path,m)),alwaysSet:m in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let d=[];for(let m of u){let f=await m.key,g=await m.value;d.push({key:f,value:g,alwaysSet:m.alwaysSet})}return d}).then(d=>B.mergeObjectSync(r,d)):B.mergeObjectSync(r,u)}get shape(){return this._def.shape()}strict(t){return I.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:I.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:A.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of C.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of C.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Mt(this)}partial(t){let n={};for(let r of C.objectKeys(this.shape)){let i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of C.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof de;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return lc(C.objectKeys(this.shape))}};ne.create=(e,t)=>new ne({shape:()=>e,unknownKeys:"strip",catchall:be.create(),typeName:A.ZodObject,...R(t)});ne.strictCreate=(e,t)=>new ne({shape:()=>e,unknownKeys:"strict",catchall:be.create(),typeName:A.ZodObject,...R(t)});ne.lazycreate=(e,t)=>new ne({shape:e,unknownKeys:"strip",catchall:be.create(),typeName:A.ZodObject,...R(t)});var at=class extends T{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function i(o){for(let c of o)if(c.result.status==="valid")return c.result;for(let c of o)if(c.result.status==="dirty")return n.common.issues.push(...c.ctx.common.issues),c.result;let a=o.map(c=>new te(c.ctx.common.issues));return v(n,{code:y.invalid_union,unionErrors:a}),_}if(n.common.async)return Promise.all(r.map(async o=>{let a={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:a}),ctx:a}})).then(i);{let o,a=[];for(let u of r){let d={...n,common:{...n.common,issues:[]},parent:null},m=u._parseSync({data:n.data,path:n.path,parent:d});if(m.status==="valid")return m;m.status==="dirty"&&!o&&(o={result:m,ctx:d}),d.common.issues.length&&a.push(d.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;let c=a.map(u=>new te(u));return v(n,{code:y.invalid_union,unionErrors:c}),_}}get options(){return this._def.options}};at.create=(e,t)=>new at({options:e,typeName:A.ZodUnion,...R(t)});var Me=e=>e instanceof ut?Me(e.schema):e instanceof me?Me(e.innerType()):e instanceof lt?[e.value]:e instanceof dt?e.options:e instanceof pt?C.objectValues(e.enum):e instanceof mt?Me(e._def.innerType):e instanceof it?[void 0]:e instanceof ot?[null]:e instanceof de?[void 0,...Me(e.unwrap())]:e instanceof Ae?[null,...Me(e.unwrap())]:e instanceof sn||e instanceof gt?Me(e.unwrap()):e instanceof ft?Me(e._def.innerType):[],Bn=class e extends T{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==k.object)return v(n,{code:y.invalid_type,expected:k.object,received:n.parsedType}),_;let r=this.discriminator,i=n.data[r],o=this.optionsMap.get(i);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(v(n,{code:y.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),_)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let o of n){let a=Me(o.shape[t]);if(!a.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let c of a){if(i.has(c))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(c)}`);i.set(c,o)}}return new e({typeName:A.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...R(r)})}};function hs(e,t){let n=we(e),r=we(t);if(e===t)return{valid:!0,data:e};if(n===k.object&&r===k.object){let i=C.objectKeys(t),o=C.objectKeys(e).filter(c=>i.indexOf(c)!==-1),a={...e,...t};for(let c of o){let u=hs(e[c],t[c]);if(!u.valid)return{valid:!1};a[c]=u.data}return{valid:!0,data:a}}else if(n===k.array&&r===k.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let o=0;o<e.length;o++){let a=e[o],c=t[o],u=hs(a,c);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return n===k.date&&r===k.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var ct=class extends T{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(o,a)=>{if(Hn(o)||Hn(a))return _;let c=hs(o.value,a.value);return c.valid?(($n(o)||$n(a))&&n.dirty(),{status:n.value,value:c.data}):(v(r,{code:y.invalid_intersection_types}),_)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,a])=>i(o,a)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};ct.create=(e,t,n)=>new ct({left:e,right:t,typeName:A.ZodIntersection,...R(n)});var _e=class e extends T{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==k.array)return v(r,{code:y.invalid_type,expected:k.array,received:r.parsedType}),_;if(r.data.length<this._def.items.length)return v(r,{code:y.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),_;!this._def.rest&&r.data.length>this._def.items.length&&(v(r,{code:y.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let o=[...r.data].map((a,c)=>{let u=this._def.items[c]||this._def.rest;return u?u._parse(new pe(r,a,r.path,c)):null}).filter(a=>!!a);return r.common.async?Promise.all(o).then(a=>B.mergeArray(n,a)):B.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};_e.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new _e({items:e,typeName:A.ZodTuple,rest:null,...R(t)})};var Vn=class e extends T{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==k.object)return v(r,{code:y.invalid_type,expected:k.object,received:r.parsedType}),_;let i=[],o=this._def.keyType,a=this._def.valueType;for(let c in r.data)i.push({key:o._parse(new pe(r,c,r.path,c)),value:a._parse(new pe(r,r.data[c],r.path,c)),alwaysSet:c in r.data});return r.common.async?B.mergeObjectAsync(n,i):B.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof T?new e({keyType:t,valueType:n,typeName:A.ZodRecord,...R(r)}):new e({keyType:Ve.create(),valueType:t,typeName:A.ZodRecord,...R(n)})}},Ut=class extends T{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==k.map)return v(r,{code:y.invalid_type,expected:k.map,received:r.parsedType}),_;let i=this._def.keyType,o=this._def.valueType,a=[...r.data.entries()].map(([c,u],d)=>({key:i._parse(new pe(r,c,r.path,[d,"key"])),value:o._parse(new pe(r,u,r.path,[d,"value"]))}));if(r.common.async){let c=new Map;return Promise.resolve().then(async()=>{for(let u of a){let d=await u.key,m=await u.value;if(d.status==="aborted"||m.status==="aborted")return _;(d.status==="dirty"||m.status==="dirty")&&n.dirty(),c.set(d.value,m.value)}return{status:n.value,value:c}})}else{let c=new Map;for(let u of a){let d=u.key,m=u.value;if(d.status==="aborted"||m.status==="aborted")return _;(d.status==="dirty"||m.status==="dirty")&&n.dirty(),c.set(d.value,m.value)}return{status:n.value,value:c}}}};Ut.create=(e,t,n)=>new Ut({valueType:t,keyType:e,typeName:A.ZodMap,...R(n)});var jt=class e extends T{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==k.set)return v(r,{code:y.invalid_type,expected:k.set,received:r.parsedType}),_;let i=this._def;i.minSize!==null&&r.data.size<i.minSize.value&&(v(r,{code:y.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),n.dirty()),i.maxSize!==null&&r.data.size>i.maxSize.value&&(v(r,{code:y.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let o=this._def.valueType;function a(u){let d=new Set;for(let m of u){if(m.status==="aborted")return _;m.status==="dirty"&&n.dirty(),d.add(m.value)}return{status:n.value,value:d}}let c=[...r.data.values()].map((u,d)=>o._parse(new pe(r,u,r.path,d)));return r.common.async?Promise.all(c).then(u=>a(u)):a(c)}min(t,n){return new e({...this._def,minSize:{value:t,message:I.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:I.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};jt.create=(e,t)=>new jt({valueType:e,minSize:null,maxSize:null,typeName:A.ZodSet,...R(t)});var Kn=class e extends T{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==k.function)return v(n,{code:y.invalid_type,expected:k.function,received:n.parsedType}),_;function r(c,u){return rn({data:c,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Nt(),Le].filter(d=>!!d),issueData:{code:y.invalid_arguments,argumentsError:u}})}function i(c,u){return rn({data:c,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Nt(),Le].filter(d=>!!d),issueData:{code:y.invalid_return_type,returnTypeError:u}})}let o={errorMap:n.common.contextualErrorMap},a=n.data;if(this._def.returns instanceof We){let c=this;return W(async function(...u){let d=new te([]),m=await c._def.args.parseAsync(u,o).catch(S=>{throw d.addIssue(r(u,S)),d}),f=await Reflect.apply(a,this,m);return await c._def.returns._def.type.parseAsync(f,o).catch(S=>{throw d.addIssue(i(f,S)),d})})}else{let c=this;return W(function(...u){let d=c._def.args.safeParse(u,o);if(!d.success)throw new te([r(u,d.error)]);let m=Reflect.apply(a,this,d.data),f=c._def.returns.safeParse(m,o);if(!f.success)throw new te([i(m,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:_e.create(t).rest(De.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||_e.create([]).rest(De.create()),returns:n||De.create(),typeName:A.ZodFunction,...R(r)})}},ut=class extends T{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};ut.create=(e,t)=>new ut({getter:e,typeName:A.ZodLazy,...R(t)});var lt=class extends T{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return v(n,{received:n.data,code:y.invalid_literal,expected:this._def.value}),_}return{status:"valid",value:t.data}}get value(){return this._def.value}};lt.create=(e,t)=>new lt({value:e,typeName:A.ZodLiteral,...R(t)});function lc(e,t){return new dt({values:e,typeName:A.ZodEnum,...R(t)})}var dt=class e extends T{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return v(n,{expected:C.joinValues(r),received:n.parsedType,code:y.invalid_type}),_}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return v(n,{received:n.data,code:y.invalid_enum_value,options:r}),_}return W(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};dt.create=lc;var pt=class extends T{_parse(t){let n=C.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==k.string&&r.parsedType!==k.number){let i=C.objectValues(n);return v(r,{expected:C.joinValues(i),received:r.parsedType,code:y.invalid_type}),_}if(this._cache||(this._cache=new Set(C.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=C.objectValues(n);return v(r,{received:r.data,code:y.invalid_enum_value,options:i}),_}return W(t.data)}get enum(){return this._def.values}};pt.create=(e,t)=>new pt({values:e,typeName:A.ZodNativeEnum,...R(t)});var We=class extends T{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==k.promise&&n.common.async===!1)return v(n,{code:y.invalid_type,expected:k.promise,received:n.parsedType}),_;let r=n.parsedType===k.promise?n.data:Promise.resolve(n.data);return W(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};We.create=(e,t)=>new We({type:e,typeName:A.ZodPromise,...R(t)});var me=class extends T{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===A.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,o={addIssue:a=>{v(r,a),a.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),i.type==="preprocess"){let a=i.transform(r.data,o);if(r.common.async)return Promise.resolve(a).then(async c=>{if(n.value==="aborted")return _;let u=await this._def.schema._parseAsync({data:c,path:r.path,parent:r});return u.status==="aborted"?_:u.status==="dirty"?et(u.value):n.value==="dirty"?et(u.value):u});{if(n.value==="aborted")return _;let c=this._def.schema._parseSync({data:a,path:r.path,parent:r});return c.status==="aborted"?_:c.status==="dirty"?et(c.value):n.value==="dirty"?et(c.value):c}}if(i.type==="refinement"){let a=c=>{let u=i.refinement(c,o);if(r.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return c};if(r.common.async===!1){let c=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return c.status==="aborted"?_:(c.status==="dirty"&&n.dirty(),a(c.value),{status:n.value,value:c.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(c=>c.status==="aborted"?_:(c.status==="dirty"&&n.dirty(),a(c.value).then(()=>({status:n.value,value:c.value}))))}if(i.type==="transform")if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Be(a))return _;let c=i.transform(a.value,o);if(c instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:c}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>Be(a)?Promise.resolve(i.transform(a.value,o)).then(c=>({status:n.value,value:c})):_);C.assertNever(i)}};me.create=(e,t,n)=>new me({schema:e,typeName:A.ZodEffects,effect:t,...R(n)});me.createWithPreprocess=(e,t,n)=>new me({schema:t,effect:{type:"preprocess",transform:e},typeName:A.ZodEffects,...R(n)});var de=class extends T{_parse(t){return this._getType(t)===k.undefined?W(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};de.create=(e,t)=>new de({innerType:e,typeName:A.ZodOptional,...R(t)});var Ae=class extends T{_parse(t){return this._getType(t)===k.null?W(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Ae.create=(e,t)=>new Ae({innerType:e,typeName:A.ZodNullable,...R(t)});var mt=class extends T{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===k.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};mt.create=(e,t)=>new mt({innerType:e,typeName:A.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...R(t)});var ft=class extends T{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Lt(i)?i.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new te(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new te(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};ft.create=(e,t)=>new ft({innerType:e,typeName:A.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...R(t)});var qt=class extends T{_parse(t){if(this._getType(t)!==k.nan){let r=this._getOrReturnCtx(t);return v(r,{code:y.invalid_type,expected:k.nan,received:r.parsedType}),_}return{status:"valid",value:t.data}}};qt.create=e=>new qt({typeName:A.ZodNaN,...R(e)});var qf=Symbol("zod_brand"),sn=class extends T{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},on=class e extends T{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?_:o.status==="dirty"?(n.dirty(),et(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?_:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:A.ZodPipeline})}},gt=class extends T{_parse(t){let n=this._def.innerType._parse(t),r=i=>(Be(i)&&(i.value=Object.freeze(i.value)),i);return Lt(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};gt.create=(e,t)=>new gt({innerType:e,typeName:A.ZodReadonly,...R(t)});function oc(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function dc(e,t={},n){return e?Ke.create().superRefine((r,i)=>{let o=e(r);if(o instanceof Promise)return o.then(a=>{if(!a){let c=oc(t,r),u=c.fatal??n??!0;i.addIssue({code:"custom",...c,fatal:u})}});if(!o){let a=oc(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}}):Ke.create()}var Hf={object:ne.lazycreate},A;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(A||(A={}));var $f=(e,t={message:`Input not instance of ${e.name}`})=>dc(n=>n instanceof e,t),pc=Ve.create,mc=tt.create,Bf=qt.create,Vf=nt.create,fc=rt.create,Kf=st.create,Wf=Dt.create,zf=it.create,Gf=ot.create,Zf=Ke.create,Yf=De.create,Jf=be.create,Xf=Ft.create,Qf=Fe.create,eg=ne.create,tg=ne.strictCreate,ng=at.create,rg=Bn.create,sg=ct.create,ig=_e.create,og=Vn.create,ag=Ut.create,cg=jt.create,ug=Kn.create,lg=ut.create,dg=lt.create,pg=dt.create,mg=pt.create,fg=We.create,gg=me.create,hg=de.create,yg=Ae.create,Sg=me.createWithPreprocess,bg=on.create,vg=()=>pc().optional(),kg=()=>mc().optional(),Ig=()=>fc().optional(),Eg={string:(e=>Ve.create({...e,coerce:!0})),number:(e=>tt.create({...e,coerce:!0})),boolean:(e=>rt.create({...e,coerce:!0})),bigint:(e=>nt.create({...e,coerce:!0})),date:(e=>st.create({...e,coerce:!0}))};var wg=_;var ys=["active","paused","archived"];var Ss=["local_trusted","authenticated"],bs=["private","public"],vs=["loopback","lan","tailnet","custom"],ks=["auto","explicit"],Is=["active","paused","idle","running","error","pending_approval","terminated"],an=["process","http","claude_local","codex_local","gemini_local","opencode_local","pi_local","cursor","openclaw_gateway"],Es=["ceo","cto","cmo","cfo","security","engineer","designer","pm","qa","devops","researcher","general"];var ws=["bot","cpu","brain","zap","rocket","code","terminal","shield","eye","search","wrench","hammer","lightbulb","sparkles","star","heart","flame","bug","cog","database","globe","lock","mail","message-square","file-code","git-branch","package","puzzle","target","wand","atom","circuit-board","radar","swords","telescope","microscope","crown","gem","hexagon","pentagon","fingerprint"],Wn=["backlog","todo","in_progress","in_review","done","blocked","cancelled"],gc=["backlog","todo","in_progress","in_review","blocked","done"],_s=gc.join(","),Ht=["critical","high","medium","low"],hc=1024;function As(e){return typeof e!="number"||!Number.isFinite(e)?0:Math.min(hc,Math.max(0,Math.floor(e)))}var Rs=["suggest_tasks","ask_user_questions","request_confirmation"],Ts=["pending","accepted","rejected","answered","expired","failed"],xs=["none","wake_assignee","wake_assignee_on_accept"];var Cs=["pause","resume","cancel","restore"];var Ps=["manual","after_active_runs_finish"],yc="continuation-summary",Sc=[yc],Ew=new Set(Sc);var Os=["normal","auto"],zn=["review","approval"],Ns=["idle","pending","changes_requested","completed"],Ls=["approved","changes_requested"],Ms=["company","team","agent","task"],Ds=["planned","active","achieved","cancelled"],Fs=["backlog","planned","in_progress","completed","cancelled"],Us=["local","ssh","sandbox","plugin"],js=["active","archived"],qs=["active","released","expired","failed","retained"];var Hs=["pending","success","failed"],$s=["active","paused","archived"],Bs=["coalesce_if_active","always_enqueue","skip_if_active"],Vs=["skip_missed","enqueue_missed_with_cap"];var Gn=["bearer","hmac_sha256","github_hmac","none"],Ks=["text","textarea","number","boolean","select"];var Ws=["hire_agent","approve_ceo_strategy","budget_override_required","request_board_approval"];var cn=["local_encrypted","aws_secrets_manager","gcp_secret_manager","vault"],zs=["local_disk","s3"],Gs=["metered_api","subscription_included","subscription_overage","credits","fixed","unknown"],Zs=["inference_charge","platform_fee","credit_purchase","credit_refund","credit_expiry","byok_fee","gateway_overhead","log_storage_charge","logpush_charge","provisioned_capacity_charge","training_charge","custom_model_import_charge","custom_model_storage_charge","manual_adjustment"],Ys=["debit","credit"],Js=["input_token","output_token","cached_input_token","request","credit_usd","credit_unit","model_unit_minute","model_unit_hour","gb_month","train_token","unknown"],Xs=["company","agent","project"],Qs=["billed_cents"],ei=["calendar_month_utc","lifetime"];var ti=["keep_paused","raise_budget_and_resume"];var un=["owner","admin","operator","viewer"];var ni=["human","agent","both"],Zn=["human","agent"],ri=["pending_approval","approved","rejected"],si=["agents:create","environments:manage","users:invite","users:manage_permissions","tasks:assign","tasks:assign_scope","tasks:manage_active_checkouts","joins:approve"];var Yn=["installed","ready","disabled","error","upgrade_pending","uninstalled"],Jn=["connector","workspace","automation","ui"],Xn=["companies.read","projects.read","project.workspaces.read","issues.read","issue.relations.read","issue.subtree.read","issue.comments.read","issue.documents.read","agents.read","goals.read","goals.create","goals.update","activity.read","costs.read","issues.orchestration.read","database.namespace.read","issues.create","issues.update","issue.relations.write","issues.checkout","issues.wakeup","issue.comments.create","issue.interactions.create","issue.documents.write","agents.pause","agents.resume","agents.invoke","agent.sessions.create","agent.sessions.list","agent.sessions.send","agent.sessions.close","activity.log.write","metrics.write","telemetry.track","database.namespace.migrate","database.namespace.write","plugin.state.read","plugin.state.write","events.subscribe","events.emit","jobs.schedule","webhooks.receive","api.routes.register","http.outbound","secrets.read-ref","environment.drivers.register","agent.tools.register","instance.settings.register","ui.sidebar.register","ui.page.register","ui.detailTab.register","ui.dashboardWidget.register","ui.commentAnnotation.register","ui.action.register"];var ii=["companies","projects","goals","agents","issues","issue_documents","issue_relations","issue_comments","heartbeat_runs","cost_events","approvals","issue_approvals","budget_incidents"],oi=["GET","POST","PATCH","DELETE"],ai=["board","agent","board-or-agent","webhook"],ci=["none","required-for-agent-in-progress","always-for-agent"],Qn=["page","detailTab","taskDetailView","dashboardWidget","sidebar","sidebarPanel","projectSidebarItem","globalToolbarButton","toolbarButton","contextMenuItem","commentAnnotation","commentContextMenuItem","settingsPage"],bc=["dashboard","onboarding","companies","company","settings","plugins","org","agents","projects","issues","goals","approvals","costs","activity","inbox","design-guide","tests"],ui=["page","detailTab","taskDetailView","dashboardWidget","sidebar","sidebarPanel","projectSidebarItem","globalToolbarButton","toolbarButton","contextMenuItem","commentAnnotation","commentContextMenuItem","settingsPage"],li=["navigate","openModal","openDrawer","openPopover","performAction","deepLink"],di=["inline","compact","default","wide","full"],pi=["hostInline","hostOverlay","hostRoute","external","iframe"],ln=["project","issue","agent","goal","run","comment"],$t=["instance","company","project","project_workspace","agent","issue","goal","run"];var mi=s.string().trim().min(1).default("process").describe(`Known built-in adapters: ${an.join(", ")}. External adapters may register additional non-empty string types at runtime.`),fi=s.string().trim().min(1).optional();function Bt(e){let t=e?.trim();return t||void 0}function gi(e){let t=Bt(e)?.toLowerCase();return t==="127.0.0.1"||t==="localhost"||t==="::1"}function hi(e){let t=Bt(e)?.toLowerCase();return t==="0.0.0.0"||t==="::"}function vc(e,t){let n=Bt(e),r=Bt(t?.tailnetBindHost);return!n||gi(n)?"loopback":hi(n)?"lan":r&&n===r?"tailnet":"custom"}function yi(e){let t=e.bind??vc(e.host),n=Bt(e.customBindHost),r=[];if(e.deploymentMode==="local_trusted"&&t!=="loopback"&&r.push("local_trusted requires server.bind=loopback"),t==="custom"&&!n){let i=Bt(e.host);(!i||gi(i)||hi(i))&&r.push("server.customBindHost is required when server.bind=custom")}return e.deploymentMode==="authenticated"&&e.deploymentExposure==="public"&&t==="tailnet"&&r.push("server.bind=tailnet is only supported for authenticated/private deployments"),r}var kc=s.string().uuid(),Ic=s.object({orderedIds:s.array(kc),updatedAt:s.coerce.date().nullable()}),Ec=s.object({orderedIds:s.array(kc)});var Si=s.enum(["active","idle","in_review","archived","cleanup_failed"]),wc=s.object({environmentId:s.string().uuid().optional().nullable(),provisionCommand:s.string().optional().nullable(),teardownCommand:s.string().optional().nullable(),cleanupCommand:s.string().optional().nullable(),workspaceRuntime:s.record(s.unknown()).optional().nullable(),desiredState:s.enum(["running","stopped","manual"]).optional().nullable(),serviceStates:s.record(s.enum(["running","stopped","manual"])).optional().nullable()}).strict(),_g=s.object({workspaceCommandId:s.string().min(1).optional().nullable(),runtimeServiceId:s.string().uuid().optional().nullable(),serviceIndex:s.number().int().nonnegative().optional().nullable()}).strict(),bi=s.enum(["ready","ready_with_warnings","blocked"]),vi=s.enum(["archive_record","stop_runtime_services","cleanup_command","teardown_command","git_worktree_remove","git_branch_delete","remove_local_directory"]),ki=s.object({kind:vi,label:s.string(),description:s.string(),command:s.string().nullable()}).strict(),Ii=s.object({id:s.string().uuid(),identifier:s.string().nullable(),title:s.string(),status:s.string(),isTerminal:s.boolean()}).strict(),Ei=s.object({repoRoot:s.string().nullable(),workspacePath:s.string().nullable(),branchName:s.string().nullable(),baseRef:s.string().nullable(),hasDirtyTrackedFiles:s.boolean(),hasUntrackedFiles:s.boolean(),dirtyEntryCount:s.number().int().nonnegative(),untrackedEntryCount:s.number().int().nonnegative(),aheadCount:s.number().int().nonnegative().nullable(),behindCount:s.number().int().nonnegative().nullable(),isMergedIntoBase:s.boolean().nullable(),createdByRuntime:s.boolean()}).strict(),Ag=s.object({id:s.string(),companyId:s.string().uuid(),projectId:s.string().uuid().nullable(),projectWorkspaceId:s.string().uuid().nullable(),executionWorkspaceId:s.string().uuid().nullable(),issueId:s.string().uuid().nullable(),scopeType:s.enum(["project_workspace","execution_workspace","run","agent"]),scopeId:s.string().nullable(),serviceName:s.string(),status:s.enum(["starting","running","stopped","failed"]),lifecycle:s.enum(["shared","ephemeral"]),reuseKey:s.string().nullable(),command:s.string().nullable(),cwd:s.string().nullable(),port:s.number().int().nullable(),url:s.string().nullable(),provider:s.enum(["local_process","adapter_managed"]),providerRef:s.string().nullable(),ownerAgentId:s.string().uuid().nullable(),startedByRunId:s.string().uuid().nullable(),lastUsedAt:s.coerce.date(),startedAt:s.coerce.date(),stoppedAt:s.coerce.date().nullable(),stopPolicy:s.record(s.unknown()).nullable(),healthStatus:s.enum(["unknown","healthy","unhealthy"]),configIndex:s.number().int().nonnegative().nullable().optional(),createdAt:s.coerce.date(),updatedAt:s.coerce.date()}).strict(),_c=s.object({workspaceId:s.string().uuid(),state:bi,blockingReasons:s.array(s.string()),warnings:s.array(s.string()),linkedIssues:s.array(Ii),plannedActions:s.array(ki),isDestructiveCloseAllowed:s.boolean(),isSharedWorkspace:s.boolean(),isProjectPrimaryWorkspace:s.boolean(),git:Ei.nullable(),runtimeServices:s.array(Ag)}).strict(),Ac=s.object({name:s.string().min(1).optional(),cwd:s.string().optional().nullable(),repoUrl:s.string().optional().nullable(),baseRef:s.string().optional().nullable(),branchName:s.string().optional().nullable(),providerRef:s.string().optional().nullable(),status:Si.optional(),cleanupEligibleAt:s.string().datetime().optional().nullable(),cleanupReason:s.string().optional().nullable(),config:wc.optional().nullable(),metadata:s.record(s.unknown()).optional().nullable()}).strict();var wi=["issue_comment","issue_document_revision"],_i=["up","down"],Ai=["allowed","not_allowed","prompt"],Ri="prompt",Ti=["local_only","pending","sent","failed"];var xi=[3,7,14],Ci=[1,2,4],Pi=[1,3,6],Oi=24,er=1,tr=720,Vt={dailyDays:7,weeklyWeeks:4,monthlyMonths:1};var Ni=s.enum(wi),Rc=s.enum(Ti),Li=s.enum(_i),Mi=s.enum(Ai),Tc=s.object({targetType:Ni,targetId:s.string().uuid(),vote:Li,reason:s.string().trim().max(1e3).optional(),allowSharing:s.boolean().optional()});function Di(e,t){return s.number().refine(n=>e.includes(n),{message:`${t} must be one of: ${e.join(", ")}`})}var Rg=s.object({dailyDays:Di(xi,"dailyDays").default(Vt.dailyDays),weeklyWeeks:Di(Ci,"weeklyWeeks").default(Vt.weeklyWeeks),monthlyMonths:Di(Pi,"monthlyMonths").default(Vt.monthlyMonths)}),Fi=s.object({censorUsernameInLogs:s.boolean().default(!1),keyboardShortcuts:s.boolean().default(!1),feedbackDataSharingPreference:Mi.default(Ri),backupRetention:Rg.default(Vt)}).strict(),xc=Fi.partial(),Ui=s.object({enableEnvironments:s.boolean().default(!1),enableIsolatedWorkspaces:s.boolean().default(!1),autoRestartDevServerWhenIdle:s.boolean().default(!1),enableIssueGraphLivenessAutoRecovery:s.boolean().default(!1),issueGraphLivenessAutoRecoveryLookbackHours:s.number().int().min(er).max(tr).default(Oi)}).strict(),Cc=Ui.partial(),Pc=s.object({lookbackHours:s.number().int().min(er).max(tr).optional()}).strict();var Oc=s.object({scopeType:s.enum(Xs),scopeId:s.string().uuid(),metric:s.enum(Qs).optional().default("billed_cents"),windowKind:s.enum(ei).optional().default("calendar_month_utc"),amount:s.number().int().nonnegative(),warnPercent:s.number().int().min(1).max(99).optional().default(80),hardStopEnabled:s.boolean().optional().default(!0),notifyEnabled:s.boolean().optional().default(!0),isActive:s.boolean().optional().default(!0)}),Nc=s.object({action:s.enum(ti),amount:s.number().int().nonnegative().optional(),decisionNote:s.string().optional().nullable()}).superRefine((e,t)=>{e.action==="raise_budget_and_resume"&&typeof e.amount!="number"&&t.addIssue({code:s.ZodIssueCode.custom,message:"amount is required when raising a budget",path:["amount"]})});var Lc=s.string().uuid().nullable().optional(),Mc=s.string().regex(/^#[0-9a-fA-F]{6}$/).nullable().optional(),Tg=s.string().min(1).nullable().optional(),Dc=s.number().int().min(1).max(1073741824),ji=s.object({name:s.string().min(1),description:s.string().optional().nullable(),budgetMonthlyCents:s.number().int().nonnegative().optional().default(0),attachmentMaxBytes:Dc.optional()}),Fc=ji.partial().extend({status:s.enum(ys).optional(),spentMonthlyCents:s.number().int().nonnegative().optional(),requireBoardApprovalForNewAgents:s.boolean().optional(),feedbackDataSharingEnabled:s.boolean().optional(),feedbackDataSharingConsentAt:s.coerce.date().nullable().optional(),feedbackDataSharingConsentByUserId:s.string().min(1).nullable().optional(),feedbackDataSharingTermsVersion:Tg,brandColor:Mc,logoAssetId:Lc,attachmentMaxBytes:Dc.optional()}),Uc=s.object({name:s.string().min(1).optional(),description:s.string().nullable().optional(),brandColor:Mc,logoAssetId:Lc}).strict().refine(e=>e.name!==void 0||e.description!==void 0||e.brandColor!==void 0||e.logoAssetId!==void 0,"At least one branding field must be provided");var dn=s.enum(Us),rr=s.enum(js),jc=s.enum(qs),qc=s.enum(Hs),xg={name:s.string().min(1),description:s.string().optional().nullable(),driver:dn,status:rr.optional().default("active"),config:s.record(s.unknown()).optional().default({}),metadata:s.record(s.unknown()).optional().nullable()},Hc=s.object(xg).strict(),$c=s.object({name:s.string().min(1).optional(),description:s.string().optional().nullable(),driver:dn.optional(),status:rr.optional(),config:s.record(s.unknown()).optional(),metadata:s.record(s.unknown()).optional().nullable()}).strict(),Bc=s.object({name:s.string().min(1).optional(),description:s.string().optional().nullable(),driver:dn,config:s.record(s.unknown()).optional().default({}),metadata:s.record(s.unknown()).optional().nullable()}).strict();var qi=s.enum(["local_path","github","url","catalog","skills_sh"]),Hi=s.enum(["markdown_only","assets","scripts_executables"]),$i=s.enum(["compatible","unknown","invalid"]),sr=s.enum(["paperclip","github","local","url","catalog","skills_sh"]),Bi=s.object({path:s.string().min(1),kind:s.enum(["skill","markdown","reference","script","asset","other"])}),Kt=s.object({id:s.string().uuid(),companyId:s.string().uuid(),key:s.string().min(1),slug:s.string().min(1),name:s.string().min(1),description:s.string().nullable(),markdown:s.string(),sourceType:qi,sourceLocator:s.string().nullable(),sourceRef:s.string().nullable(),trustLevel:Hi,compatibility:$i,fileInventory:s.array(Bi).default([]),metadata:s.record(s.unknown()).nullable(),createdAt:s.coerce.date(),updatedAt:s.coerce.date()}),Vc=Kt.extend({attachedAgentCount:s.number().int().nonnegative(),editable:s.boolean(),editableReason:s.string().nullable(),sourceLabel:s.string().nullable(),sourceBadge:sr}),Vi=s.object({id:s.string().uuid(),name:s.string().min(1),urlKey:s.string().min(1),adapterType:s.string().min(1),desired:s.boolean(),actualState:s.string().nullable().describe("Runtime adapter skill state when explicitly fetched; company skill detail reads return null without probing agent runtimes.")}),Kc=Kt.extend({attachedAgentCount:s.number().int().nonnegative(),usedByAgents:s.array(Vi).default([]),editable:s.boolean(),editableReason:s.string().nullable(),sourceLabel:s.string().nullable(),sourceBadge:sr}),Wc=s.object({supported:s.boolean(),reason:s.string().nullable(),trackingRef:s.string().nullable(),currentRef:s.string().nullable(),latestRef:s.string().nullable(),hasUpdate:s.boolean()}),zc=s.object({source:s.string().min(1)}),Gc=s.object({projectIds:s.array(s.string().uuid()).optional(),workspaceIds:s.array(s.string().uuid()).optional()}),Ki=s.object({projectId:s.string().uuid(),projectName:s.string().min(1),workspaceId:s.string().uuid().nullable(),workspaceName:s.string().nullable(),path:s.string().nullable(),reason:s.string().min(1)}),Wi=s.object({slug:s.string().min(1),key:s.string().min(1),projectId:s.string().uuid(),projectName:s.string().min(1),workspaceId:s.string().uuid(),workspaceName:s.string().min(1),path:s.string().min(1),existingSkillId:s.string().uuid(),existingSkillKey:s.string().min(1),existingSourceLocator:s.string().nullable(),reason:s.string().min(1)}),Zc=s.object({scannedProjects:s.number().int().nonnegative(),scannedWorkspaces:s.number().int().nonnegative(),discovered:s.number().int().nonnegative(),imported:s.array(Kt),updated:s.array(Kt),skipped:s.array(Ki),conflicts:s.array(Wi),warnings:s.array(s.string())}),Yc=s.object({name:s.string().min(1),slug:s.string().min(1).nullable().optional(),description:s.string().nullable().optional(),markdown:s.string().nullable().optional()}),Jc=s.object({skillId:s.string().uuid(),path:s.string().min(1),kind:s.enum(["skill","markdown","reference","script","asset","other"]),content:s.string(),language:s.string().nullable(),markdown:s.boolean(),editable:s.boolean()}),Xc=s.object({path:s.string().min(1),content:s.string()});var zi=s.enum(["available","configured","installed","missing","stale","external"]),Cg=s.enum(["company_managed","paperclip_required","user_installed","external_unknown"]),Gi=s.enum(["unsupported","persistent","ephemeral"]),Zi=s.object({key:s.string().min(1),runtimeName:s.string().min(1).nullable(),desired:s.boolean(),managed:s.boolean(),required:s.boolean().optional(),requiredReason:s.string().nullable().optional(),state:zi,origin:Cg.optional(),originLabel:s.string().nullable().optional(),locationLabel:s.string().nullable().optional(),readOnly:s.boolean().optional(),sourcePath:s.string().nullable().optional(),targetPath:s.string().nullable().optional(),detail:s.string().nullable().optional()}),Qc=s.object({adapterType:s.string().min(1),supported:s.boolean(),mode:Gi,desiredSkills:s.array(s.string().min(1)),entries:s.array(Zi),warnings:s.array(s.string())}),eu=s.object({desiredSkills:s.array(s.string().min(1))});function Pg(e){return e.replace(/\\r\\n/g,`
|
|
1
|
+
var lf=Object.defineProperty;var df=(e,t)=>{for(var n in t)lf(e,n,{get:t[n],enumerable:!0})};function es(e){return Object.freeze({definition:e})}import rc from"node:path";import{createInterface as mf}from"node:readline";import{fileURLToPath as ff}from"node:url";var qn={PARSE_ERROR:-32700,INVALID_REQUEST:-32600,METHOD_NOT_FOUND:-32601,INVALID_PARAMS:-32602,INTERNAL_ERROR:-32603},le={WORKER_UNAVAILABLE:-32e3,CAPABILITY_DENIED:-32001,WORKER_ERROR:-32002,TIMEOUT:-32003,METHOD_NOT_IMPLEMENTED:-32004,UNKNOWN:-32099};var ts=1,pf=Number.MAX_SAFE_INTEGER-1;function ns(e,t,n){return ts>=pf&&(ts=1),{jsonrpc:"2.0",id:n??ts++,method:e,params:t}}function rs(e,t){return{jsonrpc:"2.0",id:e,result:t}}function Ot(e,t,n,r){return{jsonrpc:"2.0",id:e,error:r!==void 0?{code:t,message:n,data:r}:{code:t,message:n}}}function ss(e,t){return{jsonrpc:"2.0",method:e,params:t}}function is(e){if(typeof e!="object"||e===null)return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&"id"in t&&t.id!==void 0&&t.id!==null}function os(e){if(typeof e!="object"||e===null)return!1;let t=e;return t.jsonrpc==="2.0"&&typeof t.method=="string"&&!("id"in t)}function as(e){if(typeof e!="object"||e===null)return!1;let t=e;return t.jsonrpc==="2.0"&&"id"in t&&("result"in t||"error"in t)}function cs(e){return"result"in e&&!("error"in e&&e.error!==void 0)}function us(e){return"error"in e&&e.error!==void 0}var nc=`
|
|
2
|
+
`;function ls(e){return JSON.stringify(e)+nc}function ds(e){let t=e.trim();if(t.length===0)throw new Ne("Empty message");let n;try{n=JSON.parse(t)}catch{throw new Ne(`Invalid JSON: ${t.slice(0,200)}`)}if(typeof n!="object"||n===null)throw new Ne("Message must be a JSON object");let r=n;if(r.jsonrpc!=="2.0")throw new Ne(`Invalid or missing jsonrpc version (expected "2.0", got ${JSON.stringify(r.jsonrpc)})`);return n}var Ne=class extends Error{name="JsonRpcParseError";constructor(t){super(t)}},Pt=class extends Error{name="JsonRpcCallError";code;data;constructor(t){super(t.message),this.code=t.code,this.data=t.data}};var gf=3e4;function ms(e,t,n){if(n?.stdin!=null&&n?.stdout!=null)return ps({plugin:e,stdin:n.stdin,stdout:n.stdout});let r=process.argv[1];if(typeof r!="string")return;let i=rc.resolve(ff(t)),o=rc.resolve(r);i===o&&ps({plugin:e})}function ps(e){let{plugin:t}=e,n=e.stdin??process.stdin,r=e.stdout??process.stdout,i=e.rpcTimeoutMs??gf,o=!0,a=!1,c=null,u={},d=null,m=[],f=new Map,g=new Map,S=new Map,b=new Map,O=new Map,U=new Map,j=new Map,Z=1,q=Number.MAX_SAFE_INTEGER-1;function ae(l){if(!o)return;let p=ls(l);r.write(p)}function E(l,p,h){return new Promise((w,N)=>{if(!o){N(new Error(`Cannot call "${l}" \u2014 worker RPC host is not running`));return}Z>=q&&(Z=1);let Se=Z++,ee=h??i,ec=!1,nn=(ue,uf)=>{ec||(ec=!0,clearTimeout(tc),j.delete(Se),ue(uf))},tc=setTimeout(()=>{nn(N,new Pt({code:le.TIMEOUT,message:`Worker\u2192host call "${l}" timed out after ${ee}ms`}))},ee);j.set(Se,{resolve:ue=>{cs(ue)?nn(w,ue.result):us(ue)?nn(N,new Pt(ue.error)):nn(N,new Error(`Unexpected response format for "${l}"`))},timer:tc});try{let ue=ns(l,p,Se);ae(ue)}catch(ue){nn(N,ue instanceof Error?ue:new Error(String(ue)))}})}function ce(l,p){try{ae(ss(l,p))}catch{}}function Dm(){return{get manifest(){if(!c)throw new Error("Plugin context accessed before initialization");return c},config:{async get(){return E("config.get",{})}},events:{on(l,p,h){let w;if(typeof p=="function")w={name:l,fn:p};else{if(!h)throw new Error("Event handler function is required");w={name:l,filter:p,fn:h}}return m.push(w),E("events.subscribe",{eventPattern:l,filter:w.filter??null}).catch(N=>{ce("log",{level:"warn",message:`Failed to subscribe to event "${l}" on host: ${N instanceof Error?N.message:String(N)}`})}),()=>{let N=m.indexOf(w);N!==-1&&m.splice(N,1)}},async emit(l,p,h){await E("events.emit",{name:l,companyId:p,payload:h})}},jobs:{register(l,p){f.set(l,p)}},launchers:{register(l){g.set(l.id,l)}},db:{get namespace(){return d??""},async query(l,p){return E("db.query",{sql:l,params:p})},async execute(l,p){return E("db.execute",{sql:l,params:p})}},http:{async fetch(l,p){let h={};if(p){if(p.method&&(h.method=p.method),p.headers)if(p.headers instanceof Headers){let N={};p.headers.forEach((Se,ee)=>{N[ee]=Se}),h.headers=N}else if(Array.isArray(p.headers)){let N={};for(let[Se,ee]of p.headers)N[Se]=ee;h.headers=N}else h.headers=p.headers;p.body!==void 0&&p.body!==null&&(h.body=typeof p.body=="string"?p.body:String(p.body))}let w=await E("http.fetch",{url:l,init:Object.keys(h).length>0?h:void 0});return new Response(w.body,{status:w.status,statusText:w.statusText,headers:w.headers})}},secrets:{async resolve(l){return E("secrets.resolve",{secretRef:l})}},activity:{async log(l){await E("activity.log",{companyId:l.companyId,message:l.message,entityType:l.entityType,entityId:l.entityId,metadata:l.metadata})}},state:{async get(l){return E("state.get",{scopeKind:l.scopeKind,scopeId:l.scopeId,namespace:l.namespace,stateKey:l.stateKey})},async set(l,p){await E("state.set",{scopeKind:l.scopeKind,scopeId:l.scopeId,namespace:l.namespace,stateKey:l.stateKey,value:p})},async delete(l){await E("state.delete",{scopeKind:l.scopeKind,scopeId:l.scopeId,namespace:l.namespace,stateKey:l.stateKey})}},entities:{async upsert(l){return E("entities.upsert",{entityType:l.entityType,scopeKind:l.scopeKind,scopeId:l.scopeId,externalId:l.externalId,title:l.title,status:l.status,data:l.data})},async list(l){return E("entities.list",{entityType:l.entityType,scopeKind:l.scopeKind,scopeId:l.scopeId,externalId:l.externalId,limit:l.limit,offset:l.offset})}},projects:{async list(l){return E("projects.list",{companyId:l.companyId,limit:l.limit,offset:l.offset})},async get(l,p){return E("projects.get",{projectId:l,companyId:p})},async listWorkspaces(l,p){return E("projects.listWorkspaces",{projectId:l,companyId:p})},async getPrimaryWorkspace(l,p){return E("projects.getPrimaryWorkspace",{projectId:l,companyId:p})},async getWorkspaceForIssue(l,p){return E("projects.getWorkspaceForIssue",{issueId:l,companyId:p})}},companies:{async list(l){return E("companies.list",{limit:l?.limit,offset:l?.offset})},async get(l){return E("companies.get",{companyId:l})}},issues:{async list(l){return E("issues.list",{companyId:l.companyId,projectId:l.projectId,assigneeAgentId:l.assigneeAgentId,originKind:l.originKind,originId:l.originId,status:l.status,limit:l.limit,offset:l.offset})},async get(l,p){return E("issues.get",{issueId:l,companyId:p})},async create(l){return E("issues.create",{companyId:l.companyId,projectId:l.projectId,goalId:l.goalId,parentId:l.parentId,inheritExecutionWorkspaceFromIssueId:l.inheritExecutionWorkspaceFromIssueId,title:l.title,description:l.description,status:l.status,priority:l.priority,assigneeAgentId:l.assigneeAgentId,assigneeUserId:l.assigneeUserId,requestDepth:l.requestDepth,billingCode:l.billingCode,originKind:l.originKind,originId:l.originId,originRunId:l.originRunId,blockedByIssueIds:l.blockedByIssueIds,labelIds:l.labelIds,executionWorkspaceId:l.executionWorkspaceId,executionWorkspacePreference:l.executionWorkspacePreference,executionWorkspaceSettings:l.executionWorkspaceSettings,actorAgentId:l.actor?.actorAgentId,actorUserId:l.actor?.actorUserId,actorRunId:l.actor?.actorRunId})},async update(l,p,h,w){return E("issues.update",{issueId:l,patch:{...p,actorAgentId:w?.actorAgentId,actorUserId:w?.actorUserId,actorRunId:w?.actorRunId},companyId:h})},async assertCheckoutOwner(l){return E("issues.assertCheckoutOwner",l)},async getSubtree(l,p,h){return E("issues.getSubtree",{issueId:l,companyId:p,includeRoot:h?.includeRoot,includeRelations:h?.includeRelations,includeDocuments:h?.includeDocuments,includeActiveRuns:h?.includeActiveRuns,includeAssignees:h?.includeAssignees})},async requestWakeup(l,p,h){return E("issues.requestWakeup",{issueId:l,companyId:p,reason:h?.reason,contextSource:h?.contextSource,idempotencyKey:h?.idempotencyKey,actorAgentId:h?.actorAgentId,actorUserId:h?.actorUserId,actorRunId:h?.actorRunId})},async requestWakeups(l,p,h){return E("issues.requestWakeups",{issueIds:l,companyId:p,reason:h?.reason,contextSource:h?.contextSource,idempotencyKeyPrefix:h?.idempotencyKeyPrefix,actorAgentId:h?.actorAgentId,actorUserId:h?.actorUserId,actorRunId:h?.actorRunId})},async listComments(l,p){return E("issues.listComments",{issueId:l,companyId:p})},async createComment(l,p,h,w){return E("issues.createComment",{issueId:l,body:p,companyId:h,authorAgentId:w?.authorAgentId})},async createInteraction(l,p,h,w){return E("issues.createInteraction",{issueId:l,companyId:h,interaction:p,authorAgentId:w?.authorAgentId})},async suggestTasks(l,p,h,w){return E("issues.createInteraction",{issueId:l,companyId:h,interaction:{...p,kind:"suggest_tasks"},authorAgentId:w?.authorAgentId})},async askUserQuestions(l,p,h,w){return E("issues.createInteraction",{issueId:l,companyId:h,interaction:{...p,kind:"ask_user_questions"},authorAgentId:w?.authorAgentId})},async requestConfirmation(l,p,h,w){return E("issues.createInteraction",{issueId:l,companyId:h,interaction:{...p,kind:"request_confirmation"},authorAgentId:w?.authorAgentId})},documents:{async list(l,p){return E("issues.documents.list",{issueId:l,companyId:p})},async get(l,p,h){return E("issues.documents.get",{issueId:l,key:p,companyId:h})},async upsert(l){return E("issues.documents.upsert",{issueId:l.issueId,key:l.key,body:l.body,companyId:l.companyId,title:l.title,format:l.format,changeSummary:l.changeSummary})},async delete(l,p,h){return E("issues.documents.delete",{issueId:l,key:p,companyId:h})}},relations:{async get(l,p){return E("issues.relations.get",{issueId:l,companyId:p})},async setBlockedBy(l,p,h,w){return E("issues.relations.setBlockedBy",{issueId:l,companyId:h,blockedByIssueIds:p,actorAgentId:w?.actorAgentId,actorUserId:w?.actorUserId,actorRunId:w?.actorRunId})},async addBlockers(l,p,h,w){return E("issues.relations.addBlockers",{issueId:l,companyId:h,blockerIssueIds:p,actorAgentId:w?.actorAgentId,actorUserId:w?.actorUserId,actorRunId:w?.actorRunId})},async removeBlockers(l,p,h,w){return E("issues.relations.removeBlockers",{issueId:l,companyId:h,blockerIssueIds:p,actorAgentId:w?.actorAgentId,actorUserId:w?.actorUserId,actorRunId:w?.actorRunId})}},summaries:{async getOrchestration(l){return E("issues.summaries.getOrchestration",l)}}},agents:{async list(l){return E("agents.list",{companyId:l.companyId,status:l.status,limit:l.limit,offset:l.offset})},async get(l,p){return E("agents.get",{agentId:l,companyId:p})},async pause(l,p){return E("agents.pause",{agentId:l,companyId:p})},async resume(l,p){return E("agents.resume",{agentId:l,companyId:p})},async invoke(l,p,h){return E("agents.invoke",{agentId:l,companyId:p,prompt:h.prompt,reason:h.reason})},sessions:{async create(l,p,h){return E("agents.sessions.create",{agentId:l,companyId:p,taskKey:h?.taskKey,reason:h?.reason})},async list(l,p){return E("agents.sessions.list",{agentId:l,companyId:p})},async sendMessage(l,p,h){h.onEvent&&U.set(l,h.onEvent);try{return await E("agents.sessions.sendMessage",{sessionId:l,companyId:p,prompt:h.prompt,reason:h.reason})}catch(w){throw U.delete(l),w}},async close(l,p){U.delete(l),await E("agents.sessions.close",{sessionId:l,companyId:p})}}},goals:{async list(l){return E("goals.list",{companyId:l.companyId,level:l.level,status:l.status,limit:l.limit,offset:l.offset})},async get(l,p){return E("goals.get",{goalId:l,companyId:p})},async create(l){return E("goals.create",{companyId:l.companyId,title:l.title,description:l.description,level:l.level,status:l.status,parentId:l.parentId,ownerAgentId:l.ownerAgentId})},async update(l,p,h){return E("goals.update",{goalId:l,patch:p,companyId:h})}},data:{register(l,p){S.set(l,p)}},actions:{register(l,p){b.set(l,p)}},streams:(()=>{let l=new Map;return{open(p,h){l.set(p,h),ce("streams.open",{channel:p,companyId:h})},emit(p,h){let w=l.get(p)??"";ce("streams.emit",{channel:p,companyId:w,event:h})},close(p){let h=l.get(p)??"";l.delete(p),ce("streams.close",{channel:p,companyId:h})}}})(),tools:{register(l,p,h){O.set(l,{declaration:p,fn:h})}},metrics:{async write(l,p,h){await E("metrics.write",{name:l,value:p,tags:h})}},telemetry:{async track(l,p){await E("telemetry.track",{eventName:l,dimensions:p})}},logger:{info(l,p){ce("log",{level:"info",message:l,meta:p})},warn(l,p){ce("log",{level:"warn",message:l,meta:p})},error(l,p){ce("log",{level:"error",message:l,meta:p})},debug(l,p){ce("log",{level:"debug",message:l,meta:p})}}}}let Fm=Dm();async function Um(l){let{id:p,method:h,params:w}=l;try{let N=await jm(h,w);ae(rs(p,N??null))}catch(N){let Se=N instanceof Error?N.message:String(N),ee=typeof N?.code=="number"?N.code:le.WORKER_ERROR;ae(Ot(p,ee,Se))}}async function jm(l,p){switch(l){case"initialize":return qm(p);case"health":return Hm();case"shutdown":return $m();case"validateConfig":return Bm(p);case"configChanged":return Vm(p);case"onEvent":return Qa(p);case"runJob":return Km(p);case"handleWebhook":return Wm(p);case"handleApiRequest":return zm(p);case"getData":return Gm(p);case"performAction":return Zm(p);case"executeTool":return Ym(p);case"environmentValidateConfig":return Jm(p);case"environmentProbe":return Xm(p);case"environmentAcquireLease":return Qm(p);case"environmentResumeLease":return ef(p);case"environmentReleaseLease":return tf(p);case"environmentDestroyLease":return nf(p);case"environmentRealizeWorkspace":return rf(p);case"environmentExecute":return sf(p);default:throw Object.assign(new Error(`Unknown method: ${l}`),{code:qn.METHOD_NOT_FOUND})}}async function qm(l){if(a)throw new Error("Worker already initialized");c=l.manifest,u=l.config,d=l.databaseNamespace??null,await t.definition.setup(Fm),a=!0;let p=[];return t.definition.onValidateConfig&&p.push("validateConfig"),t.definition.onConfigChanged&&p.push("configChanged"),t.definition.onHealth&&p.push("health"),t.definition.onShutdown&&p.push("shutdown"),t.definition.onApiRequest&&p.push("handleApiRequest"),t.definition.onEnvironmentValidateConfig&&p.push("environmentValidateConfig"),t.definition.onEnvironmentProbe&&p.push("environmentProbe"),t.definition.onEnvironmentAcquireLease&&p.push("environmentAcquireLease"),t.definition.onEnvironmentResumeLease&&p.push("environmentResumeLease"),t.definition.onEnvironmentReleaseLease&&p.push("environmentReleaseLease"),t.definition.onEnvironmentDestroyLease&&p.push("environmentDestroyLease"),t.definition.onEnvironmentRealizeWorkspace&&p.push("environmentRealizeWorkspace"),t.definition.onEnvironmentExecute&&p.push("environmentExecute"),{ok:!0,supportedMethods:p}}async function Hm(){return t.definition.onHealth?t.definition.onHealth():{status:"ok"}}async function $m(){t.definition.onShutdown&&await t.definition.onShutdown(),setImmediate(()=>{Qr(),!e.stdin&&!e.stdout&&process.exit(0)})}async function Bm(l){if(!t.definition.onValidateConfig)throw Object.assign(new Error("validateConfig is not implemented by this plugin"),{code:le.METHOD_NOT_IMPLEMENTED});return t.definition.onValidateConfig(l.config)}async function Vm(l){u=l.config,t.definition.onConfigChanged&&await t.definition.onConfigChanged(l.config)}async function Qa(l){let p=l.event;for(let h of m){let w=h.name===p.eventType,N=h.name==="plugin.*"&&p.eventType.startsWith("plugin."),Se=h.name.endsWith(".*")&&p.eventType.startsWith(h.name.slice(0,-1));if(!(!w&&!N&&!Se)&&!(h.filter&&!of(h.filter,p)))try{await h.fn(p)}catch(ee){ce("log",{level:"error",message:`Event handler for "${h.name}" failed: ${ee instanceof Error?ee.message:String(ee)}`,meta:{eventType:p.eventType,stack:ee instanceof Error?ee.stack:void 0}})}}}async function Km(l){let p=f.get(l.job.jobKey);if(!p)throw new Error(`No handler registered for job "${l.job.jobKey}"`);await p(l.job)}async function Wm(l){if(!t.definition.onWebhook)throw Object.assign(new Error("handleWebhook is not implemented by this plugin"),{code:le.METHOD_NOT_IMPLEMENTED});await t.definition.onWebhook(l)}async function zm(l){if(!t.definition.onApiRequest)throw Object.assign(new Error("handleApiRequest is not implemented by this plugin"),{code:le.METHOD_NOT_IMPLEMENTED});return t.definition.onApiRequest(l)}async function Gm(l){let p=S.get(l.key);if(!p)throw new Error(`No data handler registered for key "${l.key}"`);return p(l.renderEnvironment===void 0?l.params:{...l.params,renderEnvironment:l.renderEnvironment})}async function Zm(l){let p=b.get(l.key);if(!p)throw new Error(`No action handler registered for key "${l.key}"`);return p(l.renderEnvironment===void 0?l.params:{...l.params,renderEnvironment:l.renderEnvironment})}async function Ym(l){let p=O.get(l.toolName);if(!p)throw new Error(`No tool handler registered for "${l.toolName}"`);return p.fn(l.parameters,l.runContext)}function $e(l){return Object.assign(new Error(`${l} is not implemented by this plugin`),{code:le.METHOD_NOT_IMPLEMENTED})}async function Jm(l){if(!t.definition.onEnvironmentValidateConfig)throw $e("environmentValidateConfig");return t.definition.onEnvironmentValidateConfig(l)}async function Xm(l){if(!t.definition.onEnvironmentProbe)throw $e("environmentProbe");return t.definition.onEnvironmentProbe(l)}async function Qm(l){if(!t.definition.onEnvironmentAcquireLease)throw $e("environmentAcquireLease");return t.definition.onEnvironmentAcquireLease(l)}async function ef(l){if(!t.definition.onEnvironmentResumeLease)throw $e("environmentResumeLease");return t.definition.onEnvironmentResumeLease(l)}async function tf(l){if(!t.definition.onEnvironmentReleaseLease)throw $e("environmentReleaseLease");return t.definition.onEnvironmentReleaseLease(l)}async function nf(l){if(!t.definition.onEnvironmentDestroyLease)throw $e("environmentDestroyLease");return t.definition.onEnvironmentDestroyLease(l)}async function rf(l){if(!t.definition.onEnvironmentRealizeWorkspace)throw $e("environmentRealizeWorkspace");return t.definition.onEnvironmentRealizeWorkspace(l)}async function sf(l){if(!t.definition.onEnvironmentExecute)throw $e("environmentExecute");return t.definition.onEnvironmentExecute(l)}function of(l,p){let h=p.payload;return!(l.companyId!==void 0&&(p.companyId??String(h?.companyId??""))!==l.companyId||l.projectId!==void 0&&(p.entityType==="project"?p.entityId:String(h?.projectId??""))!==l.projectId||l.agentId!==void 0&&(p.entityType==="agent"?p.entityId:String(h?.agentId??""))!==l.agentId)}function af(l){let p=l.id;if(p==null)return;let h=j.get(p);h&&(clearTimeout(h.timer),j.delete(p),h.resolve(l))}function cf(l){if(!l.trim())return;let p;try{p=ds(l)}catch(h){h instanceof Ne&&ae(Ot(null,qn.PARSE_ERROR,`Parse error: ${h.message}`));return}if(as(p))af(p);else if(is(p))Um(p).catch(h=>{let w=h instanceof Error?h.message:String(h),N=h?.code??le.WORKER_ERROR;try{ae(Ot(p.id,typeof N=="number"?N:le.WORKER_ERROR,w))}catch{}});else if(os(p)){let h=p;if(h.method==="agents.sessions.event"&&h.params){let w=h.params,N=U.get(w.sessionId);N&&N(w)}else h.method==="onEvent"&&h.params&&Qa(h.params).catch(w=>{ce("log",{level:"error",message:`Failed to handle event notification: ${w instanceof Error?w.message:String(w)}`})})}}function Qr(){o=!1,tn&&(tn.close(),tn=null);for(let[l,p]of j)clearTimeout(p.timer),p.resolve(Ot(l,le.WORKER_UNAVAILABLE,"Worker RPC host is shutting down"));j.clear(),U.clear()}let tn=mf({input:n,crlfDelay:1/0});return tn.on("line",cf),tn.on("close",()=>{o&&(Qr(),!e.stdin&&!e.stdout&&process.exit(0))}),!e.stdin&&!e.stdout&&(process.on("uncaughtException",l=>{ce("log",{level:"error",message:`Uncaught exception: ${l.message}`,meta:{stack:l.stack}}),setTimeout(()=>process.exit(1),100)}),process.on("unhandledRejection",l=>{let p=l instanceof Error?l.message:String(l),h=l instanceof Error?l.stack:void 0;ce("log",{level:"error",message:`Unhandled rejection: ${p}`,meta:{stack:h}})})),{get running(){return o},stop(){Qr()}}}var s={};df(s,{BRAND:()=>Hf,DIRTY:()=>et,EMPTY_PATH:()=>bf,INVALID:()=>_,NEVER:()=>_g,OK:()=>W,ParseStatus:()=>B,Schema:()=>T,ZodAny:()=>Ke,ZodArray:()=>Fe,ZodBigInt:()=>nt,ZodBoolean:()=>rt,ZodBranded:()=>sn,ZodCatch:()=>ft,ZodDate:()=>st,ZodDefault:()=>mt,ZodDiscriminatedUnion:()=>Bn,ZodEffects:()=>me,ZodEnum:()=>dt,ZodError:()=>te,ZodFirstPartyTypeKind:()=>A,ZodFunction:()=>Kn,ZodIntersection:()=>ct,ZodIssueCode:()=>y,ZodLazy:()=>ut,ZodLiteral:()=>lt,ZodMap:()=>Ut,ZodNaN:()=>qt,ZodNativeEnum:()=>pt,ZodNever:()=>be,ZodNull:()=>ot,ZodNullable:()=>Ae,ZodNumber:()=>tt,ZodObject:()=>ne,ZodOptional:()=>de,ZodParsedType:()=>k,ZodPipeline:()=>on,ZodPromise:()=>We,ZodReadonly:()=>gt,ZodRecord:()=>Vn,ZodSchema:()=>T,ZodSet:()=>jt,ZodString:()=>Ve,ZodSymbol:()=>Dt,ZodTransformer:()=>me,ZodTuple:()=>_e,ZodType:()=>T,ZodUndefined:()=>it,ZodUnion:()=>at,ZodUnknown:()=>De,ZodVoid:()=>Ft,addIssueToContext:()=>v,any:()=>Yf,array:()=>eg,bigint:()=>Kf,boolean:()=>fc,coerce:()=>wg,custom:()=>dc,date:()=>Wf,datetimeRegex:()=>uc,defaultErrorMap:()=>Le,discriminatedUnion:()=>sg,effect:()=>hg,enum:()=>mg,function:()=>lg,getErrorMap:()=>Nt,getParsedType:()=>we,instanceof:()=>Bf,intersection:()=>ig,isAborted:()=>Hn,isAsync:()=>Lt,isDirty:()=>$n,isValid:()=>Be,late:()=>$f,lazy:()=>dg,literal:()=>pg,makeIssue:()=>rn,map:()=>cg,nan:()=>Vf,nativeEnum:()=>fg,never:()=>Xf,null:()=>Zf,nullable:()=>Sg,number:()=>mc,object:()=>tg,objectUtil:()=>fs,oboolean:()=>Eg,onumber:()=>Ig,optional:()=>yg,ostring:()=>kg,pipeline:()=>vg,preprocess:()=>bg,promise:()=>gg,quotelessJson:()=>hf,record:()=>ag,set:()=>ug,setErrorMap:()=>Sf,strictObject:()=>ng,string:()=>pc,symbol:()=>zf,transformer:()=>hg,tuple:()=>og,undefined:()=>Gf,union:()=>rg,unknown:()=>Jf,util:()=>C,void:()=>Qf});var C;(function(e){e.assertEqual=i=>{};function t(i){}e.assertIs=t;function n(i){throw new Error}e.assertNever=n,e.arrayToEnum=i=>{let o={};for(let a of i)o[a]=a;return o},e.getValidEnumValues=i=>{let o=e.objectKeys(i).filter(c=>typeof i[i[c]]!="number"),a={};for(let c of o)a[c]=i[c];return e.objectValues(a)},e.objectValues=i=>e.objectKeys(i).map(function(o){return i[o]}),e.objectKeys=typeof Object.keys=="function"?i=>Object.keys(i):i=>{let o=[];for(let a in i)Object.prototype.hasOwnProperty.call(i,a)&&o.push(a);return o},e.find=(i,o)=>{for(let a of i)if(o(a))return a},e.isInteger=typeof Number.isInteger=="function"?i=>Number.isInteger(i):i=>typeof i=="number"&&Number.isFinite(i)&&Math.floor(i)===i;function r(i,o=" | "){return i.map(a=>typeof a=="string"?`'${a}'`:a).join(o)}e.joinValues=r,e.jsonStringifyReplacer=(i,o)=>typeof o=="bigint"?o.toString():o})(C||(C={}));var fs;(function(e){e.mergeShapes=(t,n)=>({...t,...n})})(fs||(fs={}));var k=C.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]),we=e=>{switch(typeof e){case"undefined":return k.undefined;case"string":return k.string;case"number":return Number.isNaN(e)?k.nan:k.number;case"boolean":return k.boolean;case"function":return k.function;case"bigint":return k.bigint;case"symbol":return k.symbol;case"object":return Array.isArray(e)?k.array:e===null?k.null:e.then&&typeof e.then=="function"&&e.catch&&typeof e.catch=="function"?k.promise:typeof Map<"u"&&e instanceof Map?k.map:typeof Set<"u"&&e instanceof Set?k.set:typeof Date<"u"&&e instanceof Date?k.date:k.object;default:return k.unknown}};var y=C.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]),hf=e=>JSON.stringify(e,null,2).replace(/"([^"]+)":/g,"$1:"),te=class e extends Error{get errors(){return this.issues}constructor(t){super(),this.issues=[],this.addIssue=r=>{this.issues=[...this.issues,r]},this.addIssues=(r=[])=>{this.issues=[...this.issues,...r]};let n=new.target.prototype;Object.setPrototypeOf?Object.setPrototypeOf(this,n):this.__proto__=n,this.name="ZodError",this.issues=t}format(t){let n=t||function(o){return o.message},r={_errors:[]},i=o=>{for(let a of o.issues)if(a.code==="invalid_union")a.unionErrors.map(i);else if(a.code==="invalid_return_type")i(a.returnTypeError);else if(a.code==="invalid_arguments")i(a.argumentsError);else if(a.path.length===0)r._errors.push(n(a));else{let c=r,u=0;for(;u<a.path.length;){let d=a.path[u];u===a.path.length-1?(c[d]=c[d]||{_errors:[]},c[d]._errors.push(n(a))):c[d]=c[d]||{_errors:[]},c=c[d],u++}}};return i(this),r}static assert(t){if(!(t instanceof e))throw new Error(`Not a ZodError: ${t}`)}toString(){return this.message}get message(){return JSON.stringify(this.issues,C.jsonStringifyReplacer,2)}get isEmpty(){return this.issues.length===0}flatten(t=n=>n.message){let n={},r=[];for(let i of this.issues)if(i.path.length>0){let o=i.path[0];n[o]=n[o]||[],n[o].push(t(i))}else r.push(t(i));return{formErrors:r,fieldErrors:n}}get formErrors(){return this.flatten()}};te.create=e=>new te(e);var yf=(e,t)=>{let n;switch(e.code){case y.invalid_type:e.received===k.undefined?n="Required":n=`Expected ${e.expected}, received ${e.received}`;break;case y.invalid_literal:n=`Invalid literal value, expected ${JSON.stringify(e.expected,C.jsonStringifyReplacer)}`;break;case y.unrecognized_keys:n=`Unrecognized key(s) in object: ${C.joinValues(e.keys,", ")}`;break;case y.invalid_union:n="Invalid input";break;case y.invalid_union_discriminator:n=`Invalid discriminator value. Expected ${C.joinValues(e.options)}`;break;case y.invalid_enum_value:n=`Invalid enum value. Expected ${C.joinValues(e.options)}, received '${e.received}'`;break;case y.invalid_arguments:n="Invalid function arguments";break;case y.invalid_return_type:n="Invalid function return type";break;case y.invalid_date:n="Invalid date";break;case y.invalid_string:typeof e.validation=="object"?"includes"in e.validation?(n=`Invalid input: must include "${e.validation.includes}"`,typeof e.validation.position=="number"&&(n=`${n} at one or more positions greater than or equal to ${e.validation.position}`)):"startsWith"in e.validation?n=`Invalid input: must start with "${e.validation.startsWith}"`:"endsWith"in e.validation?n=`Invalid input: must end with "${e.validation.endsWith}"`:C.assertNever(e.validation):e.validation!=="regex"?n=`Invalid ${e.validation}`:n="Invalid";break;case y.too_small:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at least":"more than"} ${e.minimum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at least":"over"} ${e.minimum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="bigint"?n=`Number must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${e.minimum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly equal to ":e.inclusive?"greater than or equal to ":"greater than "}${new Date(Number(e.minimum))}`:n="Invalid input";break;case y.too_big:e.type==="array"?n=`Array must contain ${e.exact?"exactly":e.inclusive?"at most":"less than"} ${e.maximum} element(s)`:e.type==="string"?n=`String must contain ${e.exact?"exactly":e.inclusive?"at most":"under"} ${e.maximum} character(s)`:e.type==="number"?n=`Number must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="bigint"?n=`BigInt must be ${e.exact?"exactly":e.inclusive?"less than or equal to":"less than"} ${e.maximum}`:e.type==="date"?n=`Date must be ${e.exact?"exactly":e.inclusive?"smaller than or equal to":"smaller than"} ${new Date(Number(e.maximum))}`:n="Invalid input";break;case y.custom:n="Invalid input";break;case y.invalid_intersection_types:n="Intersection results could not be merged";break;case y.not_multiple_of:n=`Number must be a multiple of ${e.multipleOf}`;break;case y.not_finite:n="Number must be finite";break;default:n=t.defaultError,C.assertNever(e)}return{message:n}},Le=yf;var sc=Le;function Sf(e){sc=e}function Nt(){return sc}var rn=e=>{let{data:t,path:n,errorMaps:r,issueData:i}=e,o=[...n,...i.path||[]],a={...i,path:o};if(i.message!==void 0)return{...i,path:o,message:i.message};let c="",u=r.filter(d=>!!d).slice().reverse();for(let d of u)c=d(a,{data:t,defaultError:c}).message;return{...i,path:o,message:c}},bf=[];function v(e,t){let n=Nt(),r=rn({issueData:t,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,n,n===Le?void 0:Le].filter(i=>!!i)});e.common.issues.push(r)}var B=class e{constructor(){this.value="valid"}dirty(){this.value==="valid"&&(this.value="dirty")}abort(){this.value!=="aborted"&&(this.value="aborted")}static mergeArray(t,n){let r=[];for(let i of n){if(i.status==="aborted")return _;i.status==="dirty"&&t.dirty(),r.push(i.value)}return{status:t.value,value:r}}static async mergeObjectAsync(t,n){let r=[];for(let i of n){let o=await i.key,a=await i.value;r.push({key:o,value:a})}return e.mergeObjectSync(t,r)}static mergeObjectSync(t,n){let r={};for(let i of n){let{key:o,value:a}=i;if(o.status==="aborted"||a.status==="aborted")return _;o.status==="dirty"&&t.dirty(),a.status==="dirty"&&t.dirty(),o.value!=="__proto__"&&(typeof a.value<"u"||i.alwaysSet)&&(r[o.value]=a.value)}return{status:t.value,value:r}}},_=Object.freeze({status:"aborted"}),et=e=>({status:"dirty",value:e}),W=e=>({status:"valid",value:e}),Hn=e=>e.status==="aborted",$n=e=>e.status==="dirty",Be=e=>e.status==="valid",Lt=e=>typeof Promise<"u"&&e instanceof Promise;var I;(function(e){e.errToObj=t=>typeof t=="string"?{message:t}:t||{},e.toString=t=>typeof t=="string"?t:t?.message})(I||(I={}));var pe=class{constructor(t,n,r,i){this._cachedPath=[],this.parent=t,this.data=n,this._path=r,this._key=i}get path(){return this._cachedPath.length||(Array.isArray(this._key)?this._cachedPath.push(...this._path,...this._key):this._cachedPath.push(...this._path,this._key)),this._cachedPath}},ic=(e,t)=>{if(Be(t))return{success:!0,data:t.value};if(!e.common.issues.length)throw new Error("Validation failed but no issues detected.");return{success:!1,get error(){if(this._error)return this._error;let n=new te(e.common.issues);return this._error=n,this._error}}};function R(e){if(!e)return{};let{errorMap:t,invalid_type_error:n,required_error:r,description:i}=e;if(t&&(n||r))throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`);return t?{errorMap:t,description:i}:{errorMap:(a,c)=>{let{message:u}=e;return a.code==="invalid_enum_value"?{message:u??c.defaultError}:typeof c.data>"u"?{message:u??r??c.defaultError}:a.code!=="invalid_type"?{message:c.defaultError}:{message:u??n??c.defaultError}},description:i}}var T=class{get description(){return this._def.description}_getType(t){return we(t.data)}_getOrReturnCtx(t,n){return n||{common:t.parent.common,data:t.data,parsedType:we(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}_processInputParams(t){return{status:new B,ctx:{common:t.parent.common,data:t.data,parsedType:we(t.data),schemaErrorMap:this._def.errorMap,path:t.path,parent:t.parent}}}_parseSync(t){let n=this._parse(t);if(Lt(n))throw new Error("Synchronous parse encountered promise.");return n}_parseAsync(t){let n=this._parse(t);return Promise.resolve(n)}parse(t,n){let r=this.safeParse(t,n);if(r.success)return r.data;throw r.error}safeParse(t,n){let r={common:{issues:[],async:n?.async??!1,contextualErrorMap:n?.errorMap},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:we(t)},i=this._parseSync({data:t,path:r.path,parent:r});return ic(r,i)}"~validate"(t){let n={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:we(t)};if(!this["~standard"].async)try{let r=this._parseSync({data:t,path:[],parent:n});return Be(r)?{value:r.value}:{issues:n.common.issues}}catch(r){r?.message?.toLowerCase()?.includes("encountered")&&(this["~standard"].async=!0),n.common={issues:[],async:!0}}return this._parseAsync({data:t,path:[],parent:n}).then(r=>Be(r)?{value:r.value}:{issues:n.common.issues})}async parseAsync(t,n){let r=await this.safeParseAsync(t,n);if(r.success)return r.data;throw r.error}async safeParseAsync(t,n){let r={common:{issues:[],contextualErrorMap:n?.errorMap,async:!0},path:n?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:t,parsedType:we(t)},i=this._parse({data:t,path:r.path,parent:r}),o=await(Lt(i)?i:Promise.resolve(i));return ic(r,o)}refine(t,n){let r=i=>typeof n=="string"||typeof n>"u"?{message:n}:typeof n=="function"?n(i):n;return this._refinement((i,o)=>{let a=t(i),c=()=>o.addIssue({code:y.custom,...r(i)});return typeof Promise<"u"&&a instanceof Promise?a.then(u=>u?!0:(c(),!1)):a?!0:(c(),!1)})}refinement(t,n){return this._refinement((r,i)=>t(r)?!0:(i.addIssue(typeof n=="function"?n(r,i):n),!1))}_refinement(t){return new me({schema:this,typeName:A.ZodEffects,effect:{type:"refinement",refinement:t}})}superRefine(t){return this._refinement(t)}constructor(t){this.spa=this.safeParseAsync,this._def=t,this.parse=this.parse.bind(this),this.safeParse=this.safeParse.bind(this),this.parseAsync=this.parseAsync.bind(this),this.safeParseAsync=this.safeParseAsync.bind(this),this.spa=this.spa.bind(this),this.refine=this.refine.bind(this),this.refinement=this.refinement.bind(this),this.superRefine=this.superRefine.bind(this),this.optional=this.optional.bind(this),this.nullable=this.nullable.bind(this),this.nullish=this.nullish.bind(this),this.array=this.array.bind(this),this.promise=this.promise.bind(this),this.or=this.or.bind(this),this.and=this.and.bind(this),this.transform=this.transform.bind(this),this.brand=this.brand.bind(this),this.default=this.default.bind(this),this.catch=this.catch.bind(this),this.describe=this.describe.bind(this),this.pipe=this.pipe.bind(this),this.readonly=this.readonly.bind(this),this.isNullable=this.isNullable.bind(this),this.isOptional=this.isOptional.bind(this),this["~standard"]={version:1,vendor:"zod",validate:n=>this["~validate"](n)}}optional(){return de.create(this,this._def)}nullable(){return Ae.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return Fe.create(this)}promise(){return We.create(this,this._def)}or(t){return at.create([this,t],this._def)}and(t){return ct.create(this,t,this._def)}transform(t){return new me({...R(this._def),schema:this,typeName:A.ZodEffects,effect:{type:"transform",transform:t}})}default(t){let n=typeof t=="function"?t:()=>t;return new mt({...R(this._def),innerType:this,defaultValue:n,typeName:A.ZodDefault})}brand(){return new sn({typeName:A.ZodBranded,type:this,...R(this._def)})}catch(t){let n=typeof t=="function"?t:()=>t;return new ft({...R(this._def),innerType:this,catchValue:n,typeName:A.ZodCatch})}describe(t){let n=this.constructor;return new n({...this._def,description:t})}pipe(t){return on.create(this,t)}readonly(){return gt.create(this)}isOptional(){return this.safeParse(void 0).success}isNullable(){return this.safeParse(null).success}},vf=/^c[^\s-]{8,}$/i,kf=/^[0-9a-z]+$/,If=/^[0-9A-HJKMNP-TV-Z]{26}$/i,Ef=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i,wf=/^[a-z0-9_-]{21}$/i,_f=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/,Af=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/,Rf=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i,Tf="^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$",gs,xf=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,Cf=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/,Pf=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/,Of=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,Nf=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,Lf=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,ac="((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))",Mf=new RegExp(`^${ac}$`);function cc(e){let t="[0-5]\\d";e.precision?t=`${t}\\.\\d{${e.precision}}`:e.precision==null&&(t=`${t}(\\.\\d+)?`);let n=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${n}`}function Df(e){return new RegExp(`^${cc(e)}$`)}function uc(e){let t=`${ac}T${cc(e)}`,n=[];return n.push(e.local?"Z?":"Z"),e.offset&&n.push("([+-]\\d{2}:?\\d{2})"),t=`${t}(${n.join("|")})`,new RegExp(`^${t}$`)}function Ff(e,t){return!!((t==="v4"||!t)&&xf.test(e)||(t==="v6"||!t)&&Pf.test(e))}function Uf(e,t){if(!_f.test(e))return!1;try{let[n]=e.split(".");if(!n)return!1;let r=n.replace(/-/g,"+").replace(/_/g,"/").padEnd(n.length+(4-n.length%4)%4,"="),i=JSON.parse(atob(r));return!(typeof i!="object"||i===null||"typ"in i&&i?.typ!=="JWT"||!i.alg||t&&i.alg!==t)}catch{return!1}}function jf(e,t){return!!((t==="v4"||!t)&&Cf.test(e)||(t==="v6"||!t)&&Of.test(e))}var Ve=class e extends T{_parse(t){if(this._def.coerce&&(t.data=String(t.data)),this._getType(t)!==k.string){let o=this._getOrReturnCtx(t);return v(o,{code:y.invalid_type,expected:k.string,received:o.parsedType}),_}let r=new B,i;for(let o of this._def.checks)if(o.kind==="min")t.data.length<o.value&&(i=this._getOrReturnCtx(t,i),v(i,{code:y.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="max")t.data.length>o.value&&(i=this._getOrReturnCtx(t,i),v(i,{code:y.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!1,message:o.message}),r.dirty());else if(o.kind==="length"){let a=t.data.length>o.value,c=t.data.length<o.value;(a||c)&&(i=this._getOrReturnCtx(t,i),a?v(i,{code:y.too_big,maximum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}):c&&v(i,{code:y.too_small,minimum:o.value,type:"string",inclusive:!0,exact:!0,message:o.message}),r.dirty())}else if(o.kind==="email")Rf.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"email",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="emoji")gs||(gs=new RegExp(Tf,"u")),gs.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"emoji",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="uuid")Ef.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"uuid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="nanoid")wf.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"nanoid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid")vf.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"cuid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="cuid2")kf.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"cuid2",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="ulid")If.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"ulid",code:y.invalid_string,message:o.message}),r.dirty());else if(o.kind==="url")try{new URL(t.data)}catch{i=this._getOrReturnCtx(t,i),v(i,{validation:"url",code:y.invalid_string,message:o.message}),r.dirty()}else o.kind==="regex"?(o.regex.lastIndex=0,o.regex.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"regex",code:y.invalid_string,message:o.message}),r.dirty())):o.kind==="trim"?t.data=t.data.trim():o.kind==="includes"?t.data.includes(o.value,o.position)||(i=this._getOrReturnCtx(t,i),v(i,{code:y.invalid_string,validation:{includes:o.value,position:o.position},message:o.message}),r.dirty()):o.kind==="toLowerCase"?t.data=t.data.toLowerCase():o.kind==="toUpperCase"?t.data=t.data.toUpperCase():o.kind==="startsWith"?t.data.startsWith(o.value)||(i=this._getOrReturnCtx(t,i),v(i,{code:y.invalid_string,validation:{startsWith:o.value},message:o.message}),r.dirty()):o.kind==="endsWith"?t.data.endsWith(o.value)||(i=this._getOrReturnCtx(t,i),v(i,{code:y.invalid_string,validation:{endsWith:o.value},message:o.message}),r.dirty()):o.kind==="datetime"?uc(o).test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{code:y.invalid_string,validation:"datetime",message:o.message}),r.dirty()):o.kind==="date"?Mf.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{code:y.invalid_string,validation:"date",message:o.message}),r.dirty()):o.kind==="time"?Df(o).test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{code:y.invalid_string,validation:"time",message:o.message}),r.dirty()):o.kind==="duration"?Af.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"duration",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="ip"?Ff(t.data,o.version)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"ip",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="jwt"?Uf(t.data,o.alg)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"jwt",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="cidr"?jf(t.data,o.version)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"cidr",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="base64"?Nf.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"base64",code:y.invalid_string,message:o.message}),r.dirty()):o.kind==="base64url"?Lf.test(t.data)||(i=this._getOrReturnCtx(t,i),v(i,{validation:"base64url",code:y.invalid_string,message:o.message}),r.dirty()):C.assertNever(o);return{status:r.value,value:t.data}}_regex(t,n,r){return this.refinement(i=>t.test(i),{validation:n,code:y.invalid_string,...I.errToObj(r)})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}email(t){return this._addCheck({kind:"email",...I.errToObj(t)})}url(t){return this._addCheck({kind:"url",...I.errToObj(t)})}emoji(t){return this._addCheck({kind:"emoji",...I.errToObj(t)})}uuid(t){return this._addCheck({kind:"uuid",...I.errToObj(t)})}nanoid(t){return this._addCheck({kind:"nanoid",...I.errToObj(t)})}cuid(t){return this._addCheck({kind:"cuid",...I.errToObj(t)})}cuid2(t){return this._addCheck({kind:"cuid2",...I.errToObj(t)})}ulid(t){return this._addCheck({kind:"ulid",...I.errToObj(t)})}base64(t){return this._addCheck({kind:"base64",...I.errToObj(t)})}base64url(t){return this._addCheck({kind:"base64url",...I.errToObj(t)})}jwt(t){return this._addCheck({kind:"jwt",...I.errToObj(t)})}ip(t){return this._addCheck({kind:"ip",...I.errToObj(t)})}cidr(t){return this._addCheck({kind:"cidr",...I.errToObj(t)})}datetime(t){return typeof t=="string"?this._addCheck({kind:"datetime",precision:null,offset:!1,local:!1,message:t}):this._addCheck({kind:"datetime",precision:typeof t?.precision>"u"?null:t?.precision,offset:t?.offset??!1,local:t?.local??!1,...I.errToObj(t?.message)})}date(t){return this._addCheck({kind:"date",message:t})}time(t){return typeof t=="string"?this._addCheck({kind:"time",precision:null,message:t}):this._addCheck({kind:"time",precision:typeof t?.precision>"u"?null:t?.precision,...I.errToObj(t?.message)})}duration(t){return this._addCheck({kind:"duration",...I.errToObj(t)})}regex(t,n){return this._addCheck({kind:"regex",regex:t,...I.errToObj(n)})}includes(t,n){return this._addCheck({kind:"includes",value:t,position:n?.position,...I.errToObj(n?.message)})}startsWith(t,n){return this._addCheck({kind:"startsWith",value:t,...I.errToObj(n)})}endsWith(t,n){return this._addCheck({kind:"endsWith",value:t,...I.errToObj(n)})}min(t,n){return this._addCheck({kind:"min",value:t,...I.errToObj(n)})}max(t,n){return this._addCheck({kind:"max",value:t,...I.errToObj(n)})}length(t,n){return this._addCheck({kind:"length",value:t,...I.errToObj(n)})}nonempty(t){return this.min(1,I.errToObj(t))}trim(){return new e({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new e({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find(t=>t.kind==="datetime")}get isDate(){return!!this._def.checks.find(t=>t.kind==="date")}get isTime(){return!!this._def.checks.find(t=>t.kind==="time")}get isDuration(){return!!this._def.checks.find(t=>t.kind==="duration")}get isEmail(){return!!this._def.checks.find(t=>t.kind==="email")}get isURL(){return!!this._def.checks.find(t=>t.kind==="url")}get isEmoji(){return!!this._def.checks.find(t=>t.kind==="emoji")}get isUUID(){return!!this._def.checks.find(t=>t.kind==="uuid")}get isNANOID(){return!!this._def.checks.find(t=>t.kind==="nanoid")}get isCUID(){return!!this._def.checks.find(t=>t.kind==="cuid")}get isCUID2(){return!!this._def.checks.find(t=>t.kind==="cuid2")}get isULID(){return!!this._def.checks.find(t=>t.kind==="ulid")}get isIP(){return!!this._def.checks.find(t=>t.kind==="ip")}get isCIDR(){return!!this._def.checks.find(t=>t.kind==="cidr")}get isBase64(){return!!this._def.checks.find(t=>t.kind==="base64")}get isBase64url(){return!!this._def.checks.find(t=>t.kind==="base64url")}get minLength(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxLength(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};Ve.create=e=>new Ve({checks:[],typeName:A.ZodString,coerce:e?.coerce??!1,...R(e)});function qf(e,t){let n=(e.toString().split(".")[1]||"").length,r=(t.toString().split(".")[1]||"").length,i=n>r?n:r,o=Number.parseInt(e.toFixed(i).replace(".","")),a=Number.parseInt(t.toFixed(i).replace(".",""));return o%a/10**i}var tt=class e extends T{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte,this.step=this.multipleOf}_parse(t){if(this._def.coerce&&(t.data=Number(t.data)),this._getType(t)!==k.number){let o=this._getOrReturnCtx(t);return v(o,{code:y.invalid_type,expected:k.number,received:o.parsedType}),_}let r,i=new B;for(let o of this._def.checks)o.kind==="int"?C.isInteger(t.data)||(r=this._getOrReturnCtx(t,r),v(r,{code:y.invalid_type,expected:"integer",received:"float",message:o.message}),i.dirty()):o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),v(r,{code:y.too_small,minimum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),i.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),v(r,{code:y.too_big,maximum:o.value,type:"number",inclusive:o.inclusive,exact:!1,message:o.message}),i.dirty()):o.kind==="multipleOf"?qf(t.data,o.value)!==0&&(r=this._getOrReturnCtx(t,r),v(r,{code:y.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):o.kind==="finite"?Number.isFinite(t.data)||(r=this._getOrReturnCtx(t,r),v(r,{code:y.not_finite,message:o.message}),i.dirty()):C.assertNever(o);return{status:i.value,value:t.data}}gte(t,n){return this.setLimit("min",t,!0,I.toString(n))}gt(t,n){return this.setLimit("min",t,!1,I.toString(n))}lte(t,n){return this.setLimit("max",t,!0,I.toString(n))}lt(t,n){return this.setLimit("max",t,!1,I.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:I.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}int(t){return this._addCheck({kind:"int",message:I.toString(t)})}positive(t){return this._addCheck({kind:"min",value:0,inclusive:!1,message:I.toString(t)})}negative(t){return this._addCheck({kind:"max",value:0,inclusive:!1,message:I.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:0,inclusive:!0,message:I.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:0,inclusive:!0,message:I.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:I.toString(n)})}finite(t){return this._addCheck({kind:"finite",message:I.toString(t)})}safe(t){return this._addCheck({kind:"min",inclusive:!0,value:Number.MIN_SAFE_INTEGER,message:I.toString(t)})._addCheck({kind:"max",inclusive:!0,value:Number.MAX_SAFE_INTEGER,message:I.toString(t)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}get isInt(){return!!this._def.checks.find(t=>t.kind==="int"||t.kind==="multipleOf"&&C.isInteger(t.value))}get isFinite(){let t=null,n=null;for(let r of this._def.checks){if(r.kind==="finite"||r.kind==="int"||r.kind==="multipleOf")return!0;r.kind==="min"?(n===null||r.value>n)&&(n=r.value):r.kind==="max"&&(t===null||r.value<t)&&(t=r.value)}return Number.isFinite(n)&&Number.isFinite(t)}};tt.create=e=>new tt({checks:[],typeName:A.ZodNumber,coerce:e?.coerce||!1,...R(e)});var nt=class e extends T{constructor(){super(...arguments),this.min=this.gte,this.max=this.lte}_parse(t){if(this._def.coerce)try{t.data=BigInt(t.data)}catch{return this._getInvalidInput(t)}if(this._getType(t)!==k.bigint)return this._getInvalidInput(t);let r,i=new B;for(let o of this._def.checks)o.kind==="min"?(o.inclusive?t.data<o.value:t.data<=o.value)&&(r=this._getOrReturnCtx(t,r),v(r,{code:y.too_small,type:"bigint",minimum:o.value,inclusive:o.inclusive,message:o.message}),i.dirty()):o.kind==="max"?(o.inclusive?t.data>o.value:t.data>=o.value)&&(r=this._getOrReturnCtx(t,r),v(r,{code:y.too_big,type:"bigint",maximum:o.value,inclusive:o.inclusive,message:o.message}),i.dirty()):o.kind==="multipleOf"?t.data%o.value!==BigInt(0)&&(r=this._getOrReturnCtx(t,r),v(r,{code:y.not_multiple_of,multipleOf:o.value,message:o.message}),i.dirty()):C.assertNever(o);return{status:i.value,value:t.data}}_getInvalidInput(t){let n=this._getOrReturnCtx(t);return v(n,{code:y.invalid_type,expected:k.bigint,received:n.parsedType}),_}gte(t,n){return this.setLimit("min",t,!0,I.toString(n))}gt(t,n){return this.setLimit("min",t,!1,I.toString(n))}lte(t,n){return this.setLimit("max",t,!0,I.toString(n))}lt(t,n){return this.setLimit("max",t,!1,I.toString(n))}setLimit(t,n,r,i){return new e({...this._def,checks:[...this._def.checks,{kind:t,value:n,inclusive:r,message:I.toString(i)}]})}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}positive(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!1,message:I.toString(t)})}negative(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!1,message:I.toString(t)})}nonpositive(t){return this._addCheck({kind:"max",value:BigInt(0),inclusive:!0,message:I.toString(t)})}nonnegative(t){return this._addCheck({kind:"min",value:BigInt(0),inclusive:!0,message:I.toString(t)})}multipleOf(t,n){return this._addCheck({kind:"multipleOf",value:t,message:I.toString(n)})}get minValue(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t}get maxValue(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t}};nt.create=e=>new nt({checks:[],typeName:A.ZodBigInt,coerce:e?.coerce??!1,...R(e)});var rt=class extends T{_parse(t){if(this._def.coerce&&(t.data=!!t.data),this._getType(t)!==k.boolean){let r=this._getOrReturnCtx(t);return v(r,{code:y.invalid_type,expected:k.boolean,received:r.parsedType}),_}return W(t.data)}};rt.create=e=>new rt({typeName:A.ZodBoolean,coerce:e?.coerce||!1,...R(e)});var st=class e extends T{_parse(t){if(this._def.coerce&&(t.data=new Date(t.data)),this._getType(t)!==k.date){let o=this._getOrReturnCtx(t);return v(o,{code:y.invalid_type,expected:k.date,received:o.parsedType}),_}if(Number.isNaN(t.data.getTime())){let o=this._getOrReturnCtx(t);return v(o,{code:y.invalid_date}),_}let r=new B,i;for(let o of this._def.checks)o.kind==="min"?t.data.getTime()<o.value&&(i=this._getOrReturnCtx(t,i),v(i,{code:y.too_small,message:o.message,inclusive:!0,exact:!1,minimum:o.value,type:"date"}),r.dirty()):o.kind==="max"?t.data.getTime()>o.value&&(i=this._getOrReturnCtx(t,i),v(i,{code:y.too_big,message:o.message,inclusive:!0,exact:!1,maximum:o.value,type:"date"}),r.dirty()):C.assertNever(o);return{status:r.value,value:new Date(t.data.getTime())}}_addCheck(t){return new e({...this._def,checks:[...this._def.checks,t]})}min(t,n){return this._addCheck({kind:"min",value:t.getTime(),message:I.toString(n)})}max(t,n){return this._addCheck({kind:"max",value:t.getTime(),message:I.toString(n)})}get minDate(){let t=null;for(let n of this._def.checks)n.kind==="min"&&(t===null||n.value>t)&&(t=n.value);return t!=null?new Date(t):null}get maxDate(){let t=null;for(let n of this._def.checks)n.kind==="max"&&(t===null||n.value<t)&&(t=n.value);return t!=null?new Date(t):null}};st.create=e=>new st({checks:[],coerce:e?.coerce||!1,typeName:A.ZodDate,...R(e)});var Dt=class extends T{_parse(t){if(this._getType(t)!==k.symbol){let r=this._getOrReturnCtx(t);return v(r,{code:y.invalid_type,expected:k.symbol,received:r.parsedType}),_}return W(t.data)}};Dt.create=e=>new Dt({typeName:A.ZodSymbol,...R(e)});var it=class extends T{_parse(t){if(this._getType(t)!==k.undefined){let r=this._getOrReturnCtx(t);return v(r,{code:y.invalid_type,expected:k.undefined,received:r.parsedType}),_}return W(t.data)}};it.create=e=>new it({typeName:A.ZodUndefined,...R(e)});var ot=class extends T{_parse(t){if(this._getType(t)!==k.null){let r=this._getOrReturnCtx(t);return v(r,{code:y.invalid_type,expected:k.null,received:r.parsedType}),_}return W(t.data)}};ot.create=e=>new ot({typeName:A.ZodNull,...R(e)});var Ke=class extends T{constructor(){super(...arguments),this._any=!0}_parse(t){return W(t.data)}};Ke.create=e=>new Ke({typeName:A.ZodAny,...R(e)});var De=class extends T{constructor(){super(...arguments),this._unknown=!0}_parse(t){return W(t.data)}};De.create=e=>new De({typeName:A.ZodUnknown,...R(e)});var be=class extends T{_parse(t){let n=this._getOrReturnCtx(t);return v(n,{code:y.invalid_type,expected:k.never,received:n.parsedType}),_}};be.create=e=>new be({typeName:A.ZodNever,...R(e)});var Ft=class extends T{_parse(t){if(this._getType(t)!==k.undefined){let r=this._getOrReturnCtx(t);return v(r,{code:y.invalid_type,expected:k.void,received:r.parsedType}),_}return W(t.data)}};Ft.create=e=>new Ft({typeName:A.ZodVoid,...R(e)});var Fe=class e extends T{_parse(t){let{ctx:n,status:r}=this._processInputParams(t),i=this._def;if(n.parsedType!==k.array)return v(n,{code:y.invalid_type,expected:k.array,received:n.parsedType}),_;if(i.exactLength!==null){let a=n.data.length>i.exactLength.value,c=n.data.length<i.exactLength.value;(a||c)&&(v(n,{code:a?y.too_big:y.too_small,minimum:c?i.exactLength.value:void 0,maximum:a?i.exactLength.value:void 0,type:"array",inclusive:!0,exact:!0,message:i.exactLength.message}),r.dirty())}if(i.minLength!==null&&n.data.length<i.minLength.value&&(v(n,{code:y.too_small,minimum:i.minLength.value,type:"array",inclusive:!0,exact:!1,message:i.minLength.message}),r.dirty()),i.maxLength!==null&&n.data.length>i.maxLength.value&&(v(n,{code:y.too_big,maximum:i.maxLength.value,type:"array",inclusive:!0,exact:!1,message:i.maxLength.message}),r.dirty()),n.common.async)return Promise.all([...n.data].map((a,c)=>i.type._parseAsync(new pe(n,a,n.path,c)))).then(a=>B.mergeArray(r,a));let o=[...n.data].map((a,c)=>i.type._parseSync(new pe(n,a,n.path,c)));return B.mergeArray(r,o)}get element(){return this._def.type}min(t,n){return new e({...this._def,minLength:{value:t,message:I.toString(n)}})}max(t,n){return new e({...this._def,maxLength:{value:t,message:I.toString(n)}})}length(t,n){return new e({...this._def,exactLength:{value:t,message:I.toString(n)}})}nonempty(t){return this.min(1,t)}};Fe.create=(e,t)=>new Fe({type:e,minLength:null,maxLength:null,exactLength:null,typeName:A.ZodArray,...R(t)});function Mt(e){if(e instanceof ne){let t={};for(let n in e.shape){let r=e.shape[n];t[n]=de.create(Mt(r))}return new ne({...e._def,shape:()=>t})}else return e instanceof Fe?new Fe({...e._def,type:Mt(e.element)}):e instanceof de?de.create(Mt(e.unwrap())):e instanceof Ae?Ae.create(Mt(e.unwrap())):e instanceof _e?_e.create(e.items.map(t=>Mt(t))):e}var ne=class e extends T{constructor(){super(...arguments),this._cached=null,this.nonstrict=this.passthrough,this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;let t=this._def.shape(),n=C.objectKeys(t);return this._cached={shape:t,keys:n},this._cached}_parse(t){if(this._getType(t)!==k.object){let d=this._getOrReturnCtx(t);return v(d,{code:y.invalid_type,expected:k.object,received:d.parsedType}),_}let{status:r,ctx:i}=this._processInputParams(t),{shape:o,keys:a}=this._getCached(),c=[];if(!(this._def.catchall instanceof be&&this._def.unknownKeys==="strip"))for(let d in i.data)a.includes(d)||c.push(d);let u=[];for(let d of a){let m=o[d],f=i.data[d];u.push({key:{status:"valid",value:d},value:m._parse(new pe(i,f,i.path,d)),alwaysSet:d in i.data})}if(this._def.catchall instanceof be){let d=this._def.unknownKeys;if(d==="passthrough")for(let m of c)u.push({key:{status:"valid",value:m},value:{status:"valid",value:i.data[m]}});else if(d==="strict")c.length>0&&(v(i,{code:y.unrecognized_keys,keys:c}),r.dirty());else if(d!=="strip")throw new Error("Internal ZodObject error: invalid unknownKeys value.")}else{let d=this._def.catchall;for(let m of c){let f=i.data[m];u.push({key:{status:"valid",value:m},value:d._parse(new pe(i,f,i.path,m)),alwaysSet:m in i.data})}}return i.common.async?Promise.resolve().then(async()=>{let d=[];for(let m of u){let f=await m.key,g=await m.value;d.push({key:f,value:g,alwaysSet:m.alwaysSet})}return d}).then(d=>B.mergeObjectSync(r,d)):B.mergeObjectSync(r,u)}get shape(){return this._def.shape()}strict(t){return I.errToObj,new e({...this._def,unknownKeys:"strict",...t!==void 0?{errorMap:(n,r)=>{let i=this._def.errorMap?.(n,r).message??r.defaultError;return n.code==="unrecognized_keys"?{message:I.errToObj(t).message??i}:{message:i}}}:{}})}strip(){return new e({...this._def,unknownKeys:"strip"})}passthrough(){return new e({...this._def,unknownKeys:"passthrough"})}extend(t){return new e({...this._def,shape:()=>({...this._def.shape(),...t})})}merge(t){return new e({unknownKeys:t._def.unknownKeys,catchall:t._def.catchall,shape:()=>({...this._def.shape(),...t._def.shape()}),typeName:A.ZodObject})}setKey(t,n){return this.augment({[t]:n})}catchall(t){return new e({...this._def,catchall:t})}pick(t){let n={};for(let r of C.objectKeys(t))t[r]&&this.shape[r]&&(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}omit(t){let n={};for(let r of C.objectKeys(this.shape))t[r]||(n[r]=this.shape[r]);return new e({...this._def,shape:()=>n})}deepPartial(){return Mt(this)}partial(t){let n={};for(let r of C.objectKeys(this.shape)){let i=this.shape[r];t&&!t[r]?n[r]=i:n[r]=i.optional()}return new e({...this._def,shape:()=>n})}required(t){let n={};for(let r of C.objectKeys(this.shape))if(t&&!t[r])n[r]=this.shape[r];else{let o=this.shape[r];for(;o instanceof de;)o=o._def.innerType;n[r]=o}return new e({...this._def,shape:()=>n})}keyof(){return lc(C.objectKeys(this.shape))}};ne.create=(e,t)=>new ne({shape:()=>e,unknownKeys:"strip",catchall:be.create(),typeName:A.ZodObject,...R(t)});ne.strictCreate=(e,t)=>new ne({shape:()=>e,unknownKeys:"strict",catchall:be.create(),typeName:A.ZodObject,...R(t)});ne.lazycreate=(e,t)=>new ne({shape:e,unknownKeys:"strip",catchall:be.create(),typeName:A.ZodObject,...R(t)});var at=class extends T{_parse(t){let{ctx:n}=this._processInputParams(t),r=this._def.options;function i(o){for(let c of o)if(c.result.status==="valid")return c.result;for(let c of o)if(c.result.status==="dirty")return n.common.issues.push(...c.ctx.common.issues),c.result;let a=o.map(c=>new te(c.ctx.common.issues));return v(n,{code:y.invalid_union,unionErrors:a}),_}if(n.common.async)return Promise.all(r.map(async o=>{let a={...n,common:{...n.common,issues:[]},parent:null};return{result:await o._parseAsync({data:n.data,path:n.path,parent:a}),ctx:a}})).then(i);{let o,a=[];for(let u of r){let d={...n,common:{...n.common,issues:[]},parent:null},m=u._parseSync({data:n.data,path:n.path,parent:d});if(m.status==="valid")return m;m.status==="dirty"&&!o&&(o={result:m,ctx:d}),d.common.issues.length&&a.push(d.common.issues)}if(o)return n.common.issues.push(...o.ctx.common.issues),o.result;let c=a.map(u=>new te(u));return v(n,{code:y.invalid_union,unionErrors:c}),_}}get options(){return this._def.options}};at.create=(e,t)=>new at({options:e,typeName:A.ZodUnion,...R(t)});var Me=e=>e instanceof ut?Me(e.schema):e instanceof me?Me(e.innerType()):e instanceof lt?[e.value]:e instanceof dt?e.options:e instanceof pt?C.objectValues(e.enum):e instanceof mt?Me(e._def.innerType):e instanceof it?[void 0]:e instanceof ot?[null]:e instanceof de?[void 0,...Me(e.unwrap())]:e instanceof Ae?[null,...Me(e.unwrap())]:e instanceof sn||e instanceof gt?Me(e.unwrap()):e instanceof ft?Me(e._def.innerType):[],Bn=class e extends T{_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==k.object)return v(n,{code:y.invalid_type,expected:k.object,received:n.parsedType}),_;let r=this.discriminator,i=n.data[r],o=this.optionsMap.get(i);return o?n.common.async?o._parseAsync({data:n.data,path:n.path,parent:n}):o._parseSync({data:n.data,path:n.path,parent:n}):(v(n,{code:y.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[r]}),_)}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(t,n,r){let i=new Map;for(let o of n){let a=Me(o.shape[t]);if(!a.length)throw new Error(`A discriminator value for key \`${t}\` could not be extracted from all schema options`);for(let c of a){if(i.has(c))throw new Error(`Discriminator property ${String(t)} has duplicate value ${String(c)}`);i.set(c,o)}}return new e({typeName:A.ZodDiscriminatedUnion,discriminator:t,options:n,optionsMap:i,...R(r)})}};function hs(e,t){let n=we(e),r=we(t);if(e===t)return{valid:!0,data:e};if(n===k.object&&r===k.object){let i=C.objectKeys(t),o=C.objectKeys(e).filter(c=>i.indexOf(c)!==-1),a={...e,...t};for(let c of o){let u=hs(e[c],t[c]);if(!u.valid)return{valid:!1};a[c]=u.data}return{valid:!0,data:a}}else if(n===k.array&&r===k.array){if(e.length!==t.length)return{valid:!1};let i=[];for(let o=0;o<e.length;o++){let a=e[o],c=t[o],u=hs(a,c);if(!u.valid)return{valid:!1};i.push(u.data)}return{valid:!0,data:i}}else return n===k.date&&r===k.date&&+e==+t?{valid:!0,data:e}:{valid:!1}}var ct=class extends T{_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=(o,a)=>{if(Hn(o)||Hn(a))return _;let c=hs(o.value,a.value);return c.valid?(($n(o)||$n(a))&&n.dirty(),{status:n.value,value:c.data}):(v(r,{code:y.invalid_intersection_types}),_)};return r.common.async?Promise.all([this._def.left._parseAsync({data:r.data,path:r.path,parent:r}),this._def.right._parseAsync({data:r.data,path:r.path,parent:r})]).then(([o,a])=>i(o,a)):i(this._def.left._parseSync({data:r.data,path:r.path,parent:r}),this._def.right._parseSync({data:r.data,path:r.path,parent:r}))}};ct.create=(e,t,n)=>new ct({left:e,right:t,typeName:A.ZodIntersection,...R(n)});var _e=class e extends T{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==k.array)return v(r,{code:y.invalid_type,expected:k.array,received:r.parsedType}),_;if(r.data.length<this._def.items.length)return v(r,{code:y.too_small,minimum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),_;!this._def.rest&&r.data.length>this._def.items.length&&(v(r,{code:y.too_big,maximum:this._def.items.length,inclusive:!0,exact:!1,type:"array"}),n.dirty());let o=[...r.data].map((a,c)=>{let u=this._def.items[c]||this._def.rest;return u?u._parse(new pe(r,a,r.path,c)):null}).filter(a=>!!a);return r.common.async?Promise.all(o).then(a=>B.mergeArray(n,a)):B.mergeArray(n,o)}get items(){return this._def.items}rest(t){return new e({...this._def,rest:t})}};_e.create=(e,t)=>{if(!Array.isArray(e))throw new Error("You must pass an array of schemas to z.tuple([ ... ])");return new _e({items:e,typeName:A.ZodTuple,rest:null,...R(t)})};var Vn=class e extends T{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==k.object)return v(r,{code:y.invalid_type,expected:k.object,received:r.parsedType}),_;let i=[],o=this._def.keyType,a=this._def.valueType;for(let c in r.data)i.push({key:o._parse(new pe(r,c,r.path,c)),value:a._parse(new pe(r,r.data[c],r.path,c)),alwaysSet:c in r.data});return r.common.async?B.mergeObjectAsync(n,i):B.mergeObjectSync(n,i)}get element(){return this._def.valueType}static create(t,n,r){return n instanceof T?new e({keyType:t,valueType:n,typeName:A.ZodRecord,...R(r)}):new e({keyType:Ve.create(),valueType:t,typeName:A.ZodRecord,...R(n)})}},Ut=class extends T{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==k.map)return v(r,{code:y.invalid_type,expected:k.map,received:r.parsedType}),_;let i=this._def.keyType,o=this._def.valueType,a=[...r.data.entries()].map(([c,u],d)=>({key:i._parse(new pe(r,c,r.path,[d,"key"])),value:o._parse(new pe(r,u,r.path,[d,"value"]))}));if(r.common.async){let c=new Map;return Promise.resolve().then(async()=>{for(let u of a){let d=await u.key,m=await u.value;if(d.status==="aborted"||m.status==="aborted")return _;(d.status==="dirty"||m.status==="dirty")&&n.dirty(),c.set(d.value,m.value)}return{status:n.value,value:c}})}else{let c=new Map;for(let u of a){let d=u.key,m=u.value;if(d.status==="aborted"||m.status==="aborted")return _;(d.status==="dirty"||m.status==="dirty")&&n.dirty(),c.set(d.value,m.value)}return{status:n.value,value:c}}}};Ut.create=(e,t,n)=>new Ut({valueType:t,keyType:e,typeName:A.ZodMap,...R(n)});var jt=class e extends T{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.parsedType!==k.set)return v(r,{code:y.invalid_type,expected:k.set,received:r.parsedType}),_;let i=this._def;i.minSize!==null&&r.data.size<i.minSize.value&&(v(r,{code:y.too_small,minimum:i.minSize.value,type:"set",inclusive:!0,exact:!1,message:i.minSize.message}),n.dirty()),i.maxSize!==null&&r.data.size>i.maxSize.value&&(v(r,{code:y.too_big,maximum:i.maxSize.value,type:"set",inclusive:!0,exact:!1,message:i.maxSize.message}),n.dirty());let o=this._def.valueType;function a(u){let d=new Set;for(let m of u){if(m.status==="aborted")return _;m.status==="dirty"&&n.dirty(),d.add(m.value)}return{status:n.value,value:d}}let c=[...r.data.values()].map((u,d)=>o._parse(new pe(r,u,r.path,d)));return r.common.async?Promise.all(c).then(u=>a(u)):a(c)}min(t,n){return new e({...this._def,minSize:{value:t,message:I.toString(n)}})}max(t,n){return new e({...this._def,maxSize:{value:t,message:I.toString(n)}})}size(t,n){return this.min(t,n).max(t,n)}nonempty(t){return this.min(1,t)}};jt.create=(e,t)=>new jt({valueType:e,minSize:null,maxSize:null,typeName:A.ZodSet,...R(t)});var Kn=class e extends T{constructor(){super(...arguments),this.validate=this.implement}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==k.function)return v(n,{code:y.invalid_type,expected:k.function,received:n.parsedType}),_;function r(c,u){return rn({data:c,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Nt(),Le].filter(d=>!!d),issueData:{code:y.invalid_arguments,argumentsError:u}})}function i(c,u){return rn({data:c,path:n.path,errorMaps:[n.common.contextualErrorMap,n.schemaErrorMap,Nt(),Le].filter(d=>!!d),issueData:{code:y.invalid_return_type,returnTypeError:u}})}let o={errorMap:n.common.contextualErrorMap},a=n.data;if(this._def.returns instanceof We){let c=this;return W(async function(...u){let d=new te([]),m=await c._def.args.parseAsync(u,o).catch(S=>{throw d.addIssue(r(u,S)),d}),f=await Reflect.apply(a,this,m);return await c._def.returns._def.type.parseAsync(f,o).catch(S=>{throw d.addIssue(i(f,S)),d})})}else{let c=this;return W(function(...u){let d=c._def.args.safeParse(u,o);if(!d.success)throw new te([r(u,d.error)]);let m=Reflect.apply(a,this,d.data),f=c._def.returns.safeParse(m,o);if(!f.success)throw new te([i(m,f.error)]);return f.data})}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...t){return new e({...this._def,args:_e.create(t).rest(De.create())})}returns(t){return new e({...this._def,returns:t})}implement(t){return this.parse(t)}strictImplement(t){return this.parse(t)}static create(t,n,r){return new e({args:t||_e.create([]).rest(De.create()),returns:n||De.create(),typeName:A.ZodFunction,...R(r)})}},ut=class extends T{get schema(){return this._def.getter()}_parse(t){let{ctx:n}=this._processInputParams(t);return this._def.getter()._parse({data:n.data,path:n.path,parent:n})}};ut.create=(e,t)=>new ut({getter:e,typeName:A.ZodLazy,...R(t)});var lt=class extends T{_parse(t){if(t.data!==this._def.value){let n=this._getOrReturnCtx(t);return v(n,{received:n.data,code:y.invalid_literal,expected:this._def.value}),_}return{status:"valid",value:t.data}}get value(){return this._def.value}};lt.create=(e,t)=>new lt({value:e,typeName:A.ZodLiteral,...R(t)});function lc(e,t){return new dt({values:e,typeName:A.ZodEnum,...R(t)})}var dt=class e extends T{_parse(t){if(typeof t.data!="string"){let n=this._getOrReturnCtx(t),r=this._def.values;return v(n,{expected:C.joinValues(r),received:n.parsedType,code:y.invalid_type}),_}if(this._cache||(this._cache=new Set(this._def.values)),!this._cache.has(t.data)){let n=this._getOrReturnCtx(t),r=this._def.values;return v(n,{received:n.data,code:y.invalid_enum_value,options:r}),_}return W(t.data)}get options(){return this._def.values}get enum(){let t={};for(let n of this._def.values)t[n]=n;return t}get Values(){let t={};for(let n of this._def.values)t[n]=n;return t}get Enum(){let t={};for(let n of this._def.values)t[n]=n;return t}extract(t,n=this._def){return e.create(t,{...this._def,...n})}exclude(t,n=this._def){return e.create(this.options.filter(r=>!t.includes(r)),{...this._def,...n})}};dt.create=lc;var pt=class extends T{_parse(t){let n=C.getValidEnumValues(this._def.values),r=this._getOrReturnCtx(t);if(r.parsedType!==k.string&&r.parsedType!==k.number){let i=C.objectValues(n);return v(r,{expected:C.joinValues(i),received:r.parsedType,code:y.invalid_type}),_}if(this._cache||(this._cache=new Set(C.getValidEnumValues(this._def.values))),!this._cache.has(t.data)){let i=C.objectValues(n);return v(r,{received:r.data,code:y.invalid_enum_value,options:i}),_}return W(t.data)}get enum(){return this._def.values}};pt.create=(e,t)=>new pt({values:e,typeName:A.ZodNativeEnum,...R(t)});var We=class extends T{unwrap(){return this._def.type}_parse(t){let{ctx:n}=this._processInputParams(t);if(n.parsedType!==k.promise&&n.common.async===!1)return v(n,{code:y.invalid_type,expected:k.promise,received:n.parsedType}),_;let r=n.parsedType===k.promise?n.data:Promise.resolve(n.data);return W(r.then(i=>this._def.type.parseAsync(i,{path:n.path,errorMap:n.common.contextualErrorMap})))}};We.create=(e,t)=>new We({type:e,typeName:A.ZodPromise,...R(t)});var me=class extends T{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===A.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(t){let{status:n,ctx:r}=this._processInputParams(t),i=this._def.effect||null,o={addIssue:a=>{v(r,a),a.fatal?n.abort():n.dirty()},get path(){return r.path}};if(o.addIssue=o.addIssue.bind(o),i.type==="preprocess"){let a=i.transform(r.data,o);if(r.common.async)return Promise.resolve(a).then(async c=>{if(n.value==="aborted")return _;let u=await this._def.schema._parseAsync({data:c,path:r.path,parent:r});return u.status==="aborted"?_:u.status==="dirty"?et(u.value):n.value==="dirty"?et(u.value):u});{if(n.value==="aborted")return _;let c=this._def.schema._parseSync({data:a,path:r.path,parent:r});return c.status==="aborted"?_:c.status==="dirty"?et(c.value):n.value==="dirty"?et(c.value):c}}if(i.type==="refinement"){let a=c=>{let u=i.refinement(c,o);if(r.common.async)return Promise.resolve(u);if(u instanceof Promise)throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.");return c};if(r.common.async===!1){let c=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});return c.status==="aborted"?_:(c.status==="dirty"&&n.dirty(),a(c.value),{status:n.value,value:c.value})}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(c=>c.status==="aborted"?_:(c.status==="dirty"&&n.dirty(),a(c.value).then(()=>({status:n.value,value:c.value}))))}if(i.type==="transform")if(r.common.async===!1){let a=this._def.schema._parseSync({data:r.data,path:r.path,parent:r});if(!Be(a))return _;let c=i.transform(a.value,o);if(c instanceof Promise)throw new Error("Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.");return{status:n.value,value:c}}else return this._def.schema._parseAsync({data:r.data,path:r.path,parent:r}).then(a=>Be(a)?Promise.resolve(i.transform(a.value,o)).then(c=>({status:n.value,value:c})):_);C.assertNever(i)}};me.create=(e,t,n)=>new me({schema:e,typeName:A.ZodEffects,effect:t,...R(n)});me.createWithPreprocess=(e,t,n)=>new me({schema:t,effect:{type:"preprocess",transform:e},typeName:A.ZodEffects,...R(n)});var de=class extends T{_parse(t){return this._getType(t)===k.undefined?W(void 0):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};de.create=(e,t)=>new de({innerType:e,typeName:A.ZodOptional,...R(t)});var Ae=class extends T{_parse(t){return this._getType(t)===k.null?W(null):this._def.innerType._parse(t)}unwrap(){return this._def.innerType}};Ae.create=(e,t)=>new Ae({innerType:e,typeName:A.ZodNullable,...R(t)});var mt=class extends T{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return n.parsedType===k.undefined&&(r=this._def.defaultValue()),this._def.innerType._parse({data:r,path:n.path,parent:n})}removeDefault(){return this._def.innerType}};mt.create=(e,t)=>new mt({innerType:e,typeName:A.ZodDefault,defaultValue:typeof t.default=="function"?t.default:()=>t.default,...R(t)});var ft=class extends T{_parse(t){let{ctx:n}=this._processInputParams(t),r={...n,common:{...n.common,issues:[]}},i=this._def.innerType._parse({data:r.data,path:r.path,parent:{...r}});return Lt(i)?i.then(o=>({status:"valid",value:o.status==="valid"?o.value:this._def.catchValue({get error(){return new te(r.common.issues)},input:r.data})})):{status:"valid",value:i.status==="valid"?i.value:this._def.catchValue({get error(){return new te(r.common.issues)},input:r.data})}}removeCatch(){return this._def.innerType}};ft.create=(e,t)=>new ft({innerType:e,typeName:A.ZodCatch,catchValue:typeof t.catch=="function"?t.catch:()=>t.catch,...R(t)});var qt=class extends T{_parse(t){if(this._getType(t)!==k.nan){let r=this._getOrReturnCtx(t);return v(r,{code:y.invalid_type,expected:k.nan,received:r.parsedType}),_}return{status:"valid",value:t.data}}};qt.create=e=>new qt({typeName:A.ZodNaN,...R(e)});var Hf=Symbol("zod_brand"),sn=class extends T{_parse(t){let{ctx:n}=this._processInputParams(t),r=n.data;return this._def.type._parse({data:r,path:n.path,parent:n})}unwrap(){return this._def.type}},on=class e extends T{_parse(t){let{status:n,ctx:r}=this._processInputParams(t);if(r.common.async)return(async()=>{let o=await this._def.in._parseAsync({data:r.data,path:r.path,parent:r});return o.status==="aborted"?_:o.status==="dirty"?(n.dirty(),et(o.value)):this._def.out._parseAsync({data:o.value,path:r.path,parent:r})})();{let i=this._def.in._parseSync({data:r.data,path:r.path,parent:r});return i.status==="aborted"?_:i.status==="dirty"?(n.dirty(),{status:"dirty",value:i.value}):this._def.out._parseSync({data:i.value,path:r.path,parent:r})}}static create(t,n){return new e({in:t,out:n,typeName:A.ZodPipeline})}},gt=class extends T{_parse(t){let n=this._def.innerType._parse(t),r=i=>(Be(i)&&(i.value=Object.freeze(i.value)),i);return Lt(n)?n.then(i=>r(i)):r(n)}unwrap(){return this._def.innerType}};gt.create=(e,t)=>new gt({innerType:e,typeName:A.ZodReadonly,...R(t)});function oc(e,t){let n=typeof e=="function"?e(t):typeof e=="string"?{message:e}:e;return typeof n=="string"?{message:n}:n}function dc(e,t={},n){return e?Ke.create().superRefine((r,i)=>{let o=e(r);if(o instanceof Promise)return o.then(a=>{if(!a){let c=oc(t,r),u=c.fatal??n??!0;i.addIssue({code:"custom",...c,fatal:u})}});if(!o){let a=oc(t,r),c=a.fatal??n??!0;i.addIssue({code:"custom",...a,fatal:c})}}):Ke.create()}var $f={object:ne.lazycreate},A;(function(e){e.ZodString="ZodString",e.ZodNumber="ZodNumber",e.ZodNaN="ZodNaN",e.ZodBigInt="ZodBigInt",e.ZodBoolean="ZodBoolean",e.ZodDate="ZodDate",e.ZodSymbol="ZodSymbol",e.ZodUndefined="ZodUndefined",e.ZodNull="ZodNull",e.ZodAny="ZodAny",e.ZodUnknown="ZodUnknown",e.ZodNever="ZodNever",e.ZodVoid="ZodVoid",e.ZodArray="ZodArray",e.ZodObject="ZodObject",e.ZodUnion="ZodUnion",e.ZodDiscriminatedUnion="ZodDiscriminatedUnion",e.ZodIntersection="ZodIntersection",e.ZodTuple="ZodTuple",e.ZodRecord="ZodRecord",e.ZodMap="ZodMap",e.ZodSet="ZodSet",e.ZodFunction="ZodFunction",e.ZodLazy="ZodLazy",e.ZodLiteral="ZodLiteral",e.ZodEnum="ZodEnum",e.ZodEffects="ZodEffects",e.ZodNativeEnum="ZodNativeEnum",e.ZodOptional="ZodOptional",e.ZodNullable="ZodNullable",e.ZodDefault="ZodDefault",e.ZodCatch="ZodCatch",e.ZodPromise="ZodPromise",e.ZodBranded="ZodBranded",e.ZodPipeline="ZodPipeline",e.ZodReadonly="ZodReadonly"})(A||(A={}));var Bf=(e,t={message:`Input not instance of ${e.name}`})=>dc(n=>n instanceof e,t),pc=Ve.create,mc=tt.create,Vf=qt.create,Kf=nt.create,fc=rt.create,Wf=st.create,zf=Dt.create,Gf=it.create,Zf=ot.create,Yf=Ke.create,Jf=De.create,Xf=be.create,Qf=Ft.create,eg=Fe.create,tg=ne.create,ng=ne.strictCreate,rg=at.create,sg=Bn.create,ig=ct.create,og=_e.create,ag=Vn.create,cg=Ut.create,ug=jt.create,lg=Kn.create,dg=ut.create,pg=lt.create,mg=dt.create,fg=pt.create,gg=We.create,hg=me.create,yg=de.create,Sg=Ae.create,bg=me.createWithPreprocess,vg=on.create,kg=()=>pc().optional(),Ig=()=>mc().optional(),Eg=()=>fc().optional(),wg={string:(e=>Ve.create({...e,coerce:!0})),number:(e=>tt.create({...e,coerce:!0})),boolean:(e=>rt.create({...e,coerce:!0})),bigint:(e=>nt.create({...e,coerce:!0})),date:(e=>st.create({...e,coerce:!0}))};var _g=_;var ys=["active","paused","archived"];var Ss=["local_trusted","authenticated"],bs=["private","public"],vs=["loopback","lan","tailnet","custom"],ks=["auto","explicit"],Is=["active","paused","idle","running","error","pending_approval","terminated"],an=["process","http","claude_local","codex_local","gemini_local","opencode_local","pi_local","cursor","openclaw_gateway"],Es=["ceo","cto","cmo","cfo","security","engineer","designer","pm","qa","devops","researcher","general"];var ws=["bot","cpu","brain","zap","rocket","code","terminal","shield","eye","search","wrench","hammer","lightbulb","sparkles","star","heart","flame","bug","cog","database","globe","lock","mail","message-square","file-code","git-branch","package","puzzle","target","wand","atom","circuit-board","radar","swords","telescope","microscope","crown","gem","hexagon","pentagon","fingerprint"],Wn=["backlog","todo","in_progress","in_review","done","blocked","cancelled"],gc=["backlog","todo","in_progress","in_review","blocked","done"],_s=gc.join(","),Ht=["critical","high","medium","low"],hc=1024;function As(e){return typeof e!="number"||!Number.isFinite(e)?0:Math.min(hc,Math.max(0,Math.floor(e)))}var Rs=["suggest_tasks","ask_user_questions","request_confirmation"],Ts=["pending","accepted","rejected","answered","expired","failed"],xs=["none","wake_assignee","wake_assignee_on_accept"];var Cs=["pause","resume","cancel","restore"];var Ps=["manual","after_active_runs_finish"],yc="continuation-summary",Sc=[yc],Ew=new Set(Sc);var Os=["normal","auto"],zn=["review","approval"],Ns=["idle","pending","changes_requested","completed"],Ls=["approved","changes_requested"],Ms=["company","team","agent","task"],Ds=["planned","active","achieved","cancelled"],Fs=["backlog","planned","in_progress","completed","cancelled"],Us=["local","ssh","sandbox","plugin"],js=["active","archived"],qs=["active","released","expired","failed","retained"];var Hs=["pending","success","failed"],$s=["active","paused","archived"],Bs=["coalesce_if_active","always_enqueue","skip_if_active"],Vs=["skip_missed","enqueue_missed_with_cap"];var Gn=["bearer","hmac_sha256","github_hmac","none"],Ks=["text","textarea","number","boolean","select"];var Ws=["hire_agent","approve_ceo_strategy","budget_override_required","request_board_approval"];var cn=["local_encrypted","aws_secrets_manager","gcp_secret_manager","vault"],zs=["local_disk","s3"],Gs=["metered_api","subscription_included","subscription_overage","credits","fixed","unknown"],Zs=["inference_charge","platform_fee","credit_purchase","credit_refund","credit_expiry","byok_fee","gateway_overhead","log_storage_charge","logpush_charge","provisioned_capacity_charge","training_charge","custom_model_import_charge","custom_model_storage_charge","manual_adjustment"],Ys=["debit","credit"],Js=["input_token","output_token","cached_input_token","request","credit_usd","credit_unit","model_unit_minute","model_unit_hour","gb_month","train_token","unknown"],Xs=["company","agent","project"],Qs=["billed_cents"],ei=["calendar_month_utc","lifetime"];var ti=["keep_paused","raise_budget_and_resume"];var un=["owner","admin","operator","viewer"];var ni=["human","agent","both"],Zn=["human","agent"],ri=["pending_approval","approved","rejected"],si=["agents:create","environments:manage","users:invite","users:manage_permissions","tasks:assign","tasks:assign_scope","tasks:manage_active_checkouts","joins:approve"];var Yn=["installed","ready","disabled","error","upgrade_pending","uninstalled"],Jn=["connector","workspace","automation","ui"],Xn=["companies.read","projects.read","project.workspaces.read","issues.read","issue.relations.read","issue.subtree.read","issue.comments.read","issue.documents.read","agents.read","goals.read","goals.create","goals.update","activity.read","costs.read","issues.orchestration.read","database.namespace.read","issues.create","issues.update","issue.relations.write","issues.checkout","issues.wakeup","issue.comments.create","issue.interactions.create","issue.documents.write","agents.pause","agents.resume","agents.invoke","agent.sessions.create","agent.sessions.list","agent.sessions.send","agent.sessions.close","activity.log.write","metrics.write","telemetry.track","database.namespace.migrate","database.namespace.write","plugin.state.read","plugin.state.write","events.subscribe","events.emit","jobs.schedule","webhooks.receive","api.routes.register","http.outbound","secrets.read-ref","environment.drivers.register","agent.tools.register","instance.settings.register","ui.sidebar.register","ui.page.register","ui.detailTab.register","ui.dashboardWidget.register","ui.commentAnnotation.register","ui.action.register"];var ii=["companies","projects","goals","agents","issues","issue_documents","issue_relations","issue_comments","heartbeat_runs","cost_events","approvals","issue_approvals","budget_incidents"],oi=["GET","POST","PATCH","DELETE"],ai=["board","agent","board-or-agent","webhook"],ci=["none","required-for-agent-in-progress","always-for-agent"],Qn=["page","detailTab","taskDetailView","dashboardWidget","sidebar","sidebarPanel","projectSidebarItem","globalToolbarButton","toolbarButton","contextMenuItem","commentAnnotation","commentContextMenuItem","settingsPage"],bc=["dashboard","onboarding","companies","company","settings","plugins","org","agents","projects","issues","goals","approvals","costs","activity","inbox","design-guide","tests"],ui=["page","detailTab","taskDetailView","dashboardWidget","sidebar","sidebarPanel","projectSidebarItem","globalToolbarButton","toolbarButton","contextMenuItem","commentAnnotation","commentContextMenuItem","settingsPage"],li=["navigate","openModal","openDrawer","openPopover","performAction","deepLink"],di=["inline","compact","default","wide","full"],pi=["hostInline","hostOverlay","hostRoute","external","iframe"],ln=["project","issue","agent","goal","run","comment"],$t=["instance","company","project","project_workspace","agent","issue","goal","run"];var mi=s.string().trim().min(1).default("process").describe(`Known built-in adapters: ${an.join(", ")}. External adapters may register additional non-empty string types at runtime.`),fi=s.string().trim().min(1).optional();function Bt(e){let t=e?.trim();return t||void 0}function gi(e){let t=Bt(e)?.toLowerCase();return t==="127.0.0.1"||t==="localhost"||t==="::1"}function hi(e){let t=Bt(e)?.toLowerCase();return t==="0.0.0.0"||t==="::"}function vc(e,t){let n=Bt(e),r=Bt(t?.tailnetBindHost);return!n||gi(n)?"loopback":hi(n)?"lan":r&&n===r?"tailnet":"custom"}function yi(e){let t=e.bind??vc(e.host),n=Bt(e.customBindHost),r=[];if(e.deploymentMode==="local_trusted"&&t!=="loopback"&&r.push("local_trusted requires server.bind=loopback"),t==="custom"&&!n){let i=Bt(e.host);(!i||gi(i)||hi(i))&&r.push("server.customBindHost is required when server.bind=custom")}return e.deploymentMode==="authenticated"&&e.deploymentExposure==="public"&&t==="tailnet"&&r.push("server.bind=tailnet is only supported for authenticated/private deployments"),r}var kc=s.string().uuid(),Ic=s.object({orderedIds:s.array(kc),updatedAt:s.coerce.date().nullable()}),Ec=s.object({orderedIds:s.array(kc)});var Si=s.enum(["active","idle","in_review","archived","cleanup_failed"]),wc=s.object({environmentId:s.string().uuid().optional().nullable(),provisionCommand:s.string().optional().nullable(),teardownCommand:s.string().optional().nullable(),cleanupCommand:s.string().optional().nullable(),workspaceRuntime:s.record(s.unknown()).optional().nullable(),desiredState:s.enum(["running","stopped","manual"]).optional().nullable(),serviceStates:s.record(s.enum(["running","stopped","manual"])).optional().nullable()}).strict(),Ag=s.object({workspaceCommandId:s.string().min(1).optional().nullable(),runtimeServiceId:s.string().uuid().optional().nullable(),serviceIndex:s.number().int().nonnegative().optional().nullable()}).strict(),bi=s.enum(["ready","ready_with_warnings","blocked"]),vi=s.enum(["archive_record","stop_runtime_services","cleanup_command","teardown_command","git_worktree_remove","git_branch_delete","remove_local_directory"]),ki=s.object({kind:vi,label:s.string(),description:s.string(),command:s.string().nullable()}).strict(),Ii=s.object({id:s.string().uuid(),identifier:s.string().nullable(),title:s.string(),status:s.string(),isTerminal:s.boolean()}).strict(),Ei=s.object({repoRoot:s.string().nullable(),workspacePath:s.string().nullable(),branchName:s.string().nullable(),baseRef:s.string().nullable(),hasDirtyTrackedFiles:s.boolean(),hasUntrackedFiles:s.boolean(),dirtyEntryCount:s.number().int().nonnegative(),untrackedEntryCount:s.number().int().nonnegative(),aheadCount:s.number().int().nonnegative().nullable(),behindCount:s.number().int().nonnegative().nullable(),isMergedIntoBase:s.boolean().nullable(),createdByRuntime:s.boolean()}).strict(),Rg=s.object({id:s.string(),companyId:s.string().uuid(),projectId:s.string().uuid().nullable(),projectWorkspaceId:s.string().uuid().nullable(),executionWorkspaceId:s.string().uuid().nullable(),issueId:s.string().uuid().nullable(),scopeType:s.enum(["project_workspace","execution_workspace","run","agent"]),scopeId:s.string().nullable(),serviceName:s.string(),status:s.enum(["starting","running","stopped","failed"]),lifecycle:s.enum(["shared","ephemeral"]),reuseKey:s.string().nullable(),command:s.string().nullable(),cwd:s.string().nullable(),port:s.number().int().nullable(),url:s.string().nullable(),provider:s.enum(["local_process","adapter_managed"]),providerRef:s.string().nullable(),ownerAgentId:s.string().uuid().nullable(),startedByRunId:s.string().uuid().nullable(),lastUsedAt:s.coerce.date(),startedAt:s.coerce.date(),stoppedAt:s.coerce.date().nullable(),stopPolicy:s.record(s.unknown()).nullable(),healthStatus:s.enum(["unknown","healthy","unhealthy"]),configIndex:s.number().int().nonnegative().nullable().optional(),createdAt:s.coerce.date(),updatedAt:s.coerce.date()}).strict(),_c=s.object({workspaceId:s.string().uuid(),state:bi,blockingReasons:s.array(s.string()),warnings:s.array(s.string()),linkedIssues:s.array(Ii),plannedActions:s.array(ki),isDestructiveCloseAllowed:s.boolean(),isSharedWorkspace:s.boolean(),isProjectPrimaryWorkspace:s.boolean(),git:Ei.nullable(),runtimeServices:s.array(Rg)}).strict(),Ac=s.object({name:s.string().min(1).optional(),cwd:s.string().optional().nullable(),repoUrl:s.string().optional().nullable(),baseRef:s.string().optional().nullable(),branchName:s.string().optional().nullable(),providerRef:s.string().optional().nullable(),status:Si.optional(),cleanupEligibleAt:s.string().datetime().optional().nullable(),cleanupReason:s.string().optional().nullable(),config:wc.optional().nullable(),metadata:s.record(s.unknown()).optional().nullable()}).strict();var wi=["issue_comment","issue_document_revision"],_i=["up","down"],Ai=["allowed","not_allowed","prompt"],Ri="prompt",Ti=["local_only","pending","sent","failed"];var xi=[3,7,14],Ci=[1,2,4],Pi=[1,3,6],Oi=24,er=1,tr=720,Vt={dailyDays:7,weeklyWeeks:4,monthlyMonths:1};var Ni=s.enum(wi),Rc=s.enum(Ti),Li=s.enum(_i),Mi=s.enum(Ai),Tc=s.object({targetType:Ni,targetId:s.string().uuid(),vote:Li,reason:s.string().trim().max(1e3).optional(),allowSharing:s.boolean().optional()});function Di(e,t){return s.number().refine(n=>e.includes(n),{message:`${t} must be one of: ${e.join(", ")}`})}var Tg=s.object({dailyDays:Di(xi,"dailyDays").default(Vt.dailyDays),weeklyWeeks:Di(Ci,"weeklyWeeks").default(Vt.weeklyWeeks),monthlyMonths:Di(Pi,"monthlyMonths").default(Vt.monthlyMonths)}),Fi=s.object({censorUsernameInLogs:s.boolean().default(!1),keyboardShortcuts:s.boolean().default(!1),feedbackDataSharingPreference:Mi.default(Ri),backupRetention:Tg.default(Vt)}).strict(),xc=Fi.partial(),Ui=s.object({enableEnvironments:s.boolean().default(!1),enableIsolatedWorkspaces:s.boolean().default(!1),autoRestartDevServerWhenIdle:s.boolean().default(!1),enableIssueGraphLivenessAutoRecovery:s.boolean().default(!1),issueGraphLivenessAutoRecoveryLookbackHours:s.number().int().min(er).max(tr).default(Oi)}).strict(),Cc=Ui.partial(),Pc=s.object({lookbackHours:s.number().int().min(er).max(tr).optional()}).strict();var Oc=s.object({scopeType:s.enum(Xs),scopeId:s.string().uuid(),metric:s.enum(Qs).optional().default("billed_cents"),windowKind:s.enum(ei).optional().default("calendar_month_utc"),amount:s.number().int().nonnegative(),warnPercent:s.number().int().min(1).max(99).optional().default(80),hardStopEnabled:s.boolean().optional().default(!0),notifyEnabled:s.boolean().optional().default(!0),isActive:s.boolean().optional().default(!0)}),Nc=s.object({action:s.enum(ti),amount:s.number().int().nonnegative().optional(),decisionNote:s.string().optional().nullable()}).superRefine((e,t)=>{e.action==="raise_budget_and_resume"&&typeof e.amount!="number"&&t.addIssue({code:s.ZodIssueCode.custom,message:"amount is required when raising a budget",path:["amount"]})});var Lc=s.string().uuid().nullable().optional(),Mc=s.string().regex(/^#[0-9a-fA-F]{6}$/).nullable().optional(),xg=s.string().min(1).nullable().optional(),Dc=s.number().int().min(1).max(1073741824),ji=s.object({name:s.string().min(1),description:s.string().optional().nullable(),budgetMonthlyCents:s.number().int().nonnegative().optional().default(0),attachmentMaxBytes:Dc.optional()}),Fc=ji.partial().extend({status:s.enum(ys).optional(),spentMonthlyCents:s.number().int().nonnegative().optional(),requireBoardApprovalForNewAgents:s.boolean().optional(),feedbackDataSharingEnabled:s.boolean().optional(),feedbackDataSharingConsentAt:s.coerce.date().nullable().optional(),feedbackDataSharingConsentByUserId:s.string().min(1).nullable().optional(),feedbackDataSharingTermsVersion:xg,brandColor:Mc,logoAssetId:Lc,attachmentMaxBytes:Dc.optional()}),Uc=s.object({name:s.string().min(1).optional(),description:s.string().nullable().optional(),brandColor:Mc,logoAssetId:Lc}).strict().refine(e=>e.name!==void 0||e.description!==void 0||e.brandColor!==void 0||e.logoAssetId!==void 0,"At least one branding field must be provided");var dn=s.enum(Us),rr=s.enum(js),jc=s.enum(qs),qc=s.enum(Hs),Cg={name:s.string().min(1),description:s.string().optional().nullable(),driver:dn,status:rr.optional().default("active"),config:s.record(s.unknown()).optional().default({}),metadata:s.record(s.unknown()).optional().nullable()},Hc=s.object(Cg).strict(),$c=s.object({name:s.string().min(1).optional(),description:s.string().optional().nullable(),driver:dn.optional(),status:rr.optional(),config:s.record(s.unknown()).optional(),metadata:s.record(s.unknown()).optional().nullable()}).strict(),Bc=s.object({name:s.string().min(1).optional(),description:s.string().optional().nullable(),driver:dn,config:s.record(s.unknown()).optional().default({}),metadata:s.record(s.unknown()).optional().nullable()}).strict();var qi=s.enum(["local_path","github","url","catalog","skills_sh"]),Hi=s.enum(["markdown_only","assets","scripts_executables"]),$i=s.enum(["compatible","unknown","invalid"]),sr=s.enum(["paperclip","github","local","url","catalog","skills_sh"]),Bi=s.object({path:s.string().min(1),kind:s.enum(["skill","markdown","reference","script","asset","other"])}),Kt=s.object({id:s.string().uuid(),companyId:s.string().uuid(),key:s.string().min(1),slug:s.string().min(1),name:s.string().min(1),description:s.string().nullable(),markdown:s.string(),sourceType:qi,sourceLocator:s.string().nullable(),sourceRef:s.string().nullable(),trustLevel:Hi,compatibility:$i,fileInventory:s.array(Bi).default([]),metadata:s.record(s.unknown()).nullable(),createdAt:s.coerce.date(),updatedAt:s.coerce.date()}),Vc=Kt.extend({attachedAgentCount:s.number().int().nonnegative(),editable:s.boolean(),editableReason:s.string().nullable(),sourceLabel:s.string().nullable(),sourceBadge:sr}),Vi=s.object({id:s.string().uuid(),name:s.string().min(1),urlKey:s.string().min(1),adapterType:s.string().min(1),desired:s.boolean(),actualState:s.string().nullable().describe("Runtime adapter skill state when explicitly fetched; company skill detail reads return null without probing agent runtimes.")}),Kc=Kt.extend({attachedAgentCount:s.number().int().nonnegative(),usedByAgents:s.array(Vi).default([]),editable:s.boolean(),editableReason:s.string().nullable(),sourceLabel:s.string().nullable(),sourceBadge:sr}),Wc=s.object({supported:s.boolean(),reason:s.string().nullable(),trackingRef:s.string().nullable(),currentRef:s.string().nullable(),latestRef:s.string().nullable(),hasUpdate:s.boolean()}),zc=s.object({source:s.string().min(1)}),Gc=s.object({projectIds:s.array(s.string().uuid()).optional(),workspaceIds:s.array(s.string().uuid()).optional()}),Ki=s.object({projectId:s.string().uuid(),projectName:s.string().min(1),workspaceId:s.string().uuid().nullable(),workspaceName:s.string().nullable(),path:s.string().nullable(),reason:s.string().min(1)}),Wi=s.object({slug:s.string().min(1),key:s.string().min(1),projectId:s.string().uuid(),projectName:s.string().min(1),workspaceId:s.string().uuid(),workspaceName:s.string().min(1),path:s.string().min(1),existingSkillId:s.string().uuid(),existingSkillKey:s.string().min(1),existingSourceLocator:s.string().nullable(),reason:s.string().min(1)}),Zc=s.object({scannedProjects:s.number().int().nonnegative(),scannedWorkspaces:s.number().int().nonnegative(),discovered:s.number().int().nonnegative(),imported:s.array(Kt),updated:s.array(Kt),skipped:s.array(Ki),conflicts:s.array(Wi),warnings:s.array(s.string())}),Yc=s.object({name:s.string().min(1),slug:s.string().min(1).nullable().optional(),description:s.string().nullable().optional(),markdown:s.string().nullable().optional()}),Jc=s.object({skillId:s.string().uuid(),path:s.string().min(1),kind:s.enum(["skill","markdown","reference","script","asset","other"]),content:s.string(),language:s.string().nullable(),markdown:s.boolean(),editable:s.boolean()}),Xc=s.object({path:s.string().min(1),content:s.string()});var zi=s.enum(["available","configured","installed","missing","stale","external"]),Pg=s.enum(["company_managed","paperclip_required","user_installed","external_unknown"]),Gi=s.enum(["unsupported","persistent","ephemeral"]),Zi=s.object({key:s.string().min(1),runtimeName:s.string().min(1).nullable(),desired:s.boolean(),managed:s.boolean(),required:s.boolean().optional(),requiredReason:s.string().nullable().optional(),state:zi,origin:Pg.optional(),originLabel:s.string().nullable().optional(),locationLabel:s.string().nullable().optional(),readOnly:s.boolean().optional(),sourcePath:s.string().nullable().optional(),targetPath:s.string().nullable().optional(),detail:s.string().nullable().optional()}),Qc=s.object({adapterType:s.string().min(1),supported:s.boolean(),mode:Gi,desiredSkills:s.array(s.string().min(1)),entries:s.array(Zi),warnings:s.array(s.string())}),eu=s.object({desiredSkills:s.array(s.string().min(1))});function Og(e){return e.replace(/\\r\\n/g,`
|
|
3
3
|
`).replace(/\\n/g,`
|
|
4
4
|
`).replace(/\\r/g,`
|
|
5
|
-
`)}var ve=s.string().transform(Pg);var ir=["inherit","shared_workspace","isolated_workspace","operator_branch","reuse_existing","agent_default"],Og=s.object({type:s.enum(["project_primary","git_worktree","adapter_managed","cloud_sandbox"]).optional(),baseRef:s.string().optional().nullable(),branchTemplate:s.string().optional().nullable(),worktreeParentDir:s.string().optional().nullable(),provisionCommand:s.string().optional().nullable(),teardownCommand:s.string().optional().nullable()}).strict(),mn=s.object({mode:s.enum(ir).optional(),environmentId:s.string().uuid().optional().nullable(),workspaceStrategy:Og.optional().nullable(),workspaceRuntime:s.record(s.unknown()).optional().nullable()}).strict(),Ng=s.object({adapterConfig:s.record(s.unknown()).optional(),useProjectWorkspace:s.boolean().optional()}).strict(),nu=s.object({type:s.enum(["agent","user"]),agentId:s.string().uuid().optional().nullable(),userId:s.string().optional().nullable()}),tu=nu.superRefine((e,t)=>{if(e.type==="agent"){e.agentId||t.addIssue({code:s.ZodIssueCode.custom,message:"Agent participants require agentId",path:["agentId"]}),e.userId&&t.addIssue({code:s.ZodIssueCode.custom,message:"Agent participants cannot set userId",path:["userId"]});return}e.userId||t.addIssue({code:s.ZodIssueCode.custom,message:"User participants require userId",path:["userId"]}),e.agentId&&t.addIssue({code:s.ZodIssueCode.custom,message:"User participants cannot set agentId",path:["agentId"]})}),Lg=nu.extend({id:s.string().uuid().optional()}).superRefine((e,t)=>{if(e.type==="agent"){e.agentId||t.addIssue({code:s.ZodIssueCode.custom,message:"Agent participants require agentId",path:["agentId"]}),e.userId&&t.addIssue({code:s.ZodIssueCode.custom,message:"Agent participants cannot set userId",path:["userId"]});return}e.userId||t.addIssue({code:s.ZodIssueCode.custom,message:"User participants require userId",path:["userId"]}),e.agentId&&t.addIssue({code:s.ZodIssueCode.custom,message:"User participants cannot set agentId",path:["agentId"]})}),Mg=s.object({id:s.string().uuid().optional(),type:s.enum(zn),approvalsNeeded:s.literal(1).optional().default(1),participants:s.array(Lg).default([])}),Yi=s.object({mode:s.enum(Os).optional().default("normal"),commentRequired:s.boolean().optional().default(!0),stages:s.array(Mg).default([])}),or=s.object({instructions:s.string().trim().min(1).max(2e4)}).strict(),ru=s.object({status:s.enum(Ns),currentStageId:s.string().uuid().nullable(),currentStageIndex:s.number().int().nonnegative().nullable(),currentStageType:s.enum(zn).nullable(),currentParticipant:tu.nullable(),returnAssignee:tu.nullable(),reviewRequest:or.nullable().optional().default(null),completedStageIds:s.array(s.string().uuid()).default([]),lastDecisionId:s.string().uuid().nullable(),lastDecisionOutcome:s.enum(Ls).nullable()}),su=s.number().int().nonnegative().transform(e=>As(e)),ar=s.object({projectId:s.string().uuid().optional().nullable(),projectWorkspaceId:s.string().uuid().optional().nullable(),goalId:s.string().uuid().optional().nullable(),parentId:s.string().uuid().optional().nullable(),blockedByIssueIds:s.array(s.string().uuid()).optional(),inheritExecutionWorkspaceFromIssueId:s.string().uuid().optional().nullable(),title:s.string().min(1),description:ve.optional().nullable(),status:s.enum(Wn).optional().default("backlog"),priority:s.enum(Ht).optional().default("medium"),assigneeAgentId:s.string().uuid().optional().nullable(),assigneeUserId:s.string().optional().nullable(),requestDepth:su.optional().default(0),billingCode:s.string().optional().nullable(),assigneeAdapterOverrides:Ng.optional().nullable(),executionPolicy:Yi.optional().nullable(),executionWorkspaceId:s.string().uuid().optional().nullable(),executionWorkspacePreference:s.enum(ir).optional().nullable(),executionWorkspaceSettings:mn.optional().nullable(),labelIds:s.array(s.string().uuid()).optional()}),iu=ar.omit({parentId:!0,inheritExecutionWorkspaceFromIssueId:!0}).extend({acceptanceCriteria:s.array(s.string().trim().min(1).max(500)).max(20).optional(),blockParentUntilDone:s.boolean().optional().default(!1)}),ou=s.object({name:s.string().trim().min(1).max(48),color:s.string().regex(/^#(?:[0-9a-fA-F]{6})$/,"Color must be a 6-digit hex value")}),au=ar.partial().extend({requestDepth:su.optional(),assigneeAgentId:s.string().trim().min(1).optional().nullable(),comment:ve.pipe(s.string().min(1)).optional(),reviewRequest:or.optional().nullable(),reopen:s.boolean().optional(),resume:s.boolean().optional(),interrupt:s.boolean().optional(),hiddenAt:s.string().datetime().nullable().optional()}),cu=s.object({agentId:s.string().uuid(),expectedStatuses:s.array(s.enum(Wn)).nonempty()}),uu=s.object({body:ve.pipe(s.string().min(1)),reopen:s.boolean().optional(),resume:s.boolean().optional(),interrupt:s.boolean().optional()}),lu=s.enum(Ts),du=s.enum(Rs),pn=s.enum(xs),Ji=s.string().trim().min(1).max(64).regex(/^[a-z0-9][a-z0-9_-]*$/,"Document key must be lowercase letters, numbers, _ or -"),Xi=s.object({clientKey:s.string().trim().min(1).max(120),parentClientKey:s.string().trim().min(1).max(120).nullable().optional(),parentId:s.string().uuid().nullable().optional(),title:s.string().trim().min(1).max(240),description:ve.pipe(s.string().trim().max(2e4)).nullable().optional(),priority:s.enum(Ht).nullable().optional(),assigneeAgentId:s.string().uuid().nullable().optional(),assigneeUserId:s.string().trim().min(1).nullable().optional(),projectId:s.string().uuid().nullable().optional(),goalId:s.string().uuid().nullable().optional(),billingCode:s.string().trim().max(120).nullable().optional(),labels:s.array(s.string().trim().min(1).max(48)).max(20).optional(),hiddenInPreview:s.boolean().optional()}).superRefine((e,t)=>{e.assigneeAgentId&&e.assigneeUserId&&t.addIssue({code:s.ZodIssueCode.custom,message:"Suggested tasks can only target one assignee",path:["assigneeAgentId"]})}),Qi=s.object({version:s.literal(1),defaultParentId:s.string().uuid().nullable().optional(),tasks:s.array(Xi).min(1).max(50)}).superRefine((e,t)=>{let n=new Set;for(let[r,i]of e.tasks.entries()){if(n.has(i.clientKey)){t.addIssue({code:s.ZodIssueCode.custom,message:"clientKey must be unique within one interaction",path:["tasks",r,"clientKey"]});continue}n.add(i.clientKey)}}),eo=s.object({clientKey:s.string().trim().min(1).max(120),issueId:s.string().uuid(),identifier:s.string().trim().min(1).nullable().optional(),title:s.string().trim().min(1).nullable().optional(),parentIssueId:s.string().uuid().nullable().optional(),parentIdentifier:s.string().trim().min(1).nullable().optional()}),pu=s.object({version:s.literal(1),createdTasks:s.array(eo).max(50).optional(),skippedClientKeys:s.array(s.string().trim().min(1).max(120)).max(50).optional(),rejectionReason:s.string().trim().max(4e3).nullable().optional()}),to=s.object({id:s.string().trim().min(1).max(120),label:s.string().trim().min(1).max(120),description:s.string().trim().max(500).nullable().optional()}),no=s.object({id:s.string().trim().min(1).max(120),prompt:s.string().trim().min(1).max(500),helpText:s.string().trim().max(1e3).nullable().optional(),selectionMode:s.enum(["single","multi"]),required:s.boolean().optional(),options:s.array(to).min(1).max(10)}),ro=s.object({version:s.literal(1),title:s.string().trim().max(240).nullable().optional(),submitLabel:s.string().trim().max(120).nullable().optional(),questions:s.array(no).min(1).max(10)}).superRefine((e,t)=>{let n=new Set;for(let[r,i]of e.questions.entries()){n.has(i.id)&&t.addIssue({code:s.ZodIssueCode.custom,message:"Question ids must be unique within one interaction",path:["questions",r,"id"]}),n.add(i.id);let o=new Set;for(let[a,c]of i.options.entries())o.has(c.id)&&t.addIssue({code:s.ZodIssueCode.custom,message:"Option ids must be unique within one question",path:["questions",r,"options",a,"id"]}),o.add(c.id)}}),cr=s.object({questionId:s.string().trim().min(1).max(120),optionIds:s.array(s.string().trim().min(1).max(120)).max(20)}),mu=s.object({version:s.literal(1),answers:s.array(cr).max(20),summaryMarkdown:s.string().max(2e4).nullable().optional()}),Dg=s.string().trim().min(1).max(2e3).refine(e=>{let t=e.toLowerCase();return!t.startsWith("javascript:")&&!t.startsWith("data:")&&!e.startsWith("//")},"href must not use javascript:, data:, or protocol-relative URLs"),fu=s.object({label:s.string().trim().min(1).max(120).nullable().optional(),href:Dg.nullable().optional()}),so=fu.extend({type:s.literal("issue_document"),issueId:s.string().uuid().nullable().optional(),documentId:s.string().uuid().nullable().optional(),key:Ji,revisionId:s.string().uuid(),revisionNumber:s.number().int().positive().nullable().optional()}),io=fu.extend({type:s.literal("custom"),key:s.string().trim().min(1).max(120),revisionId:s.string().trim().min(1).max(255).nullable().optional(),revisionNumber:s.number().int().positive().nullable().optional()}),ur=s.discriminatedUnion("type",[so,io]),oo=s.object({version:s.literal(1),prompt:s.string().trim().min(1).max(1e3),acceptLabel:s.string().trim().min(1).max(80).nullable().optional(),rejectLabel:s.string().trim().min(1).max(80).nullable().optional(),rejectRequiresReason:s.boolean().optional(),rejectReasonLabel:s.string().trim().min(1).max(160).nullable().optional(),allowDeclineReason:s.boolean().optional().default(!0),declineReasonPlaceholder:s.string().trim().min(1).max(240).nullable().optional(),detailsMarkdown:s.string().max(2e4).nullable().optional(),supersedeOnUserComment:s.boolean().optional(),target:ur.nullable().optional()}),gu=s.object({version:s.literal(1),outcome:s.enum(["accepted","rejected","superseded_by_comment","stale_target"]),reason:s.string().trim().max(4e3).nullable().optional(),commentId:s.string().uuid().nullable().optional(),staleTarget:ur.nullable().optional()}),hu=s.discriminatedUnion("kind",[s.object({kind:s.literal("suggest_tasks"),idempotencyKey:s.string().trim().max(255).nullable().optional(),sourceCommentId:s.string().uuid().nullable().optional(),sourceRunId:s.string().uuid().nullable().optional(),title:s.string().trim().max(240).nullable().optional(),summary:s.string().trim().max(1e3).nullable().optional(),continuationPolicy:pn.optional().default("wake_assignee"),payload:Qi}),s.object({kind:s.literal("ask_user_questions"),idempotencyKey:s.string().trim().max(255).nullable().optional(),sourceCommentId:s.string().uuid().nullable().optional(),sourceRunId:s.string().uuid().nullable().optional(),title:s.string().trim().max(240).nullable().optional(),summary:s.string().trim().max(1e3).nullable().optional(),continuationPolicy:pn.optional().default("wake_assignee"),payload:ro}),s.object({kind:s.literal("request_confirmation"),idempotencyKey:s.string().trim().max(255).nullable().optional(),sourceCommentId:s.string().uuid().nullable().optional(),sourceRunId:s.string().uuid().nullable().optional(),title:s.string().trim().max(240).nullable().optional(),summary:s.string().trim().max(1e3).nullable().optional(),continuationPolicy:pn.optional().default("none"),payload:oo})]),yu=s.object({selectedClientKeys:s.array(s.string().trim().min(1).max(120)).min(1).max(50).optional()}).superRefine((e,t)=>{let n=new Set;for(let[r,i]of(e.selectedClientKeys??[]).entries()){if(n.has(i)){t.addIssue({code:s.ZodIssueCode.custom,message:"selectedClientKeys must be unique",path:["selectedClientKeys",r]});continue}n.add(i)}}),Su=s.object({reason:s.string().trim().max(4e3).optional()}),bu=s.object({answers:s.array(cr).max(20),summaryMarkdown:ve.pipe(s.string().max(2e4)).nullable().optional()}),vu=s.object({approvalId:s.string().uuid()}),ku=s.object({issueCommentId:s.string().uuid().optional().nullable()}),Fg=["markdown"],ao=s.enum(Fg),Iu=s.object({title:s.string().trim().max(200).nullable().optional(),format:ao,body:ve.pipe(s.string().max(524288)),changeSummary:s.string().trim().max(500).nullable().optional(),baseRevisionId:s.string().uuid().nullable().optional()}),Eu=s.object({});var wu=s.union([s.string(),s.number().finite(),s.boolean()]),fn=s.object({name:s.string().trim().regex(/^[A-Za-z][A-Za-z0-9_]*$/),label:s.string().trim().max(120).optional().nullable(),type:s.enum(Ks).optional().default("text"),defaultValue:wu.optional().nullable(),required:s.boolean().optional().default(!0),options:s.array(s.string().trim().min(1).max(120)).max(50).optional().default([])}).superRefine((e,t)=>{e.type==="select"&&e.options.length===0&&t.addIssue({code:s.ZodIssueCode.custom,path:["options"],message:"Select variables require at least one option"}),e.type!=="select"&&e.options.length>0&&t.addIssue({code:s.ZodIssueCode.custom,path:["options"],message:"Only select variables can define options"}),e.type==="select"&&e.defaultValue!=null&&(typeof e.defaultValue!="string"||!e.options.includes(e.defaultValue))&&t.addIssue({code:s.ZodIssueCode.custom,path:["defaultValue"],message:"Select variable defaults must match one of the allowed options"})}),uo=s.object({projectId:s.string().uuid().optional().nullable(),goalId:s.string().uuid().optional().nullable(),parentIssueId:s.string().uuid().optional().nullable(),title:s.string().trim().min(1).max(200),description:s.string().optional().nullable(),assigneeAgentId:s.string().uuid().optional().nullable(),priority:s.enum(Ht).optional().default("medium"),status:s.enum($s).optional().default("active"),concurrencyPolicy:s.enum(Bs).optional().default("coalesce_if_active"),catchUpPolicy:s.enum(Vs).optional().default("skip_missed"),variables:s.array(fn).optional().default([])}),_u=uo.partial(),co=s.object({label:s.string().trim().max(120).optional().nullable(),enabled:s.boolean().optional().default(!0)}),Au=s.discriminatedUnion("kind",[co.extend({kind:s.literal("schedule"),cronExpression:s.string().trim().min(1),timezone:s.string().trim().min(1).default("UTC")}),co.extend({kind:s.literal("webhook"),signingMode:s.enum(Gn).optional().default("bearer"),replayWindowSec:s.number().int().min(30).max(86400).optional().default(300)}),co.extend({kind:s.literal("api")})]),Ru=s.object({label:s.string().trim().max(120).optional().nullable(),enabled:s.boolean().optional(),cronExpression:s.string().trim().min(1).optional().nullable(),timezone:s.string().trim().min(1).optional().nullable(),signingMode:s.enum(Gn).optional().nullable(),replayWindowSec:s.number().int().min(30).max(86400).optional().nullable()}),Tu=s.object({triggerId:s.string().uuid().optional().nullable(),payload:s.record(s.unknown()).optional().nullable(),variables:s.record(wu).optional().nullable(),projectId:s.string().uuid().optional().nullable(),assigneeAgentId:s.string().uuid().optional().nullable(),idempotencyKey:s.string().trim().max(255).optional().nullable(),source:s.enum(["manual","api"]).optional().default("manual"),executionWorkspaceId:s.string().uuid().optional().nullable(),executionWorkspacePreference:s.enum(ir).optional().nullable(),executionWorkspaceSettings:mn.optional().nullable()}),xu=s.object({});var lr=s.object({company:s.boolean().optional(),agents:s.boolean().optional(),projects:s.boolean().optional(),issues:s.boolean().optional(),skills:s.boolean().optional()}).partial(),lo=s.object({key:s.string().min(1),description:s.string().nullable(),agentSlug:s.string().min(1).nullable(),projectSlug:s.string().min(1).nullable(),kind:s.enum(["secret","plain"]),requirement:s.enum(["required","optional"]),defaultValue:s.string().nullable(),portability:s.enum(["portable","system_dependent"])}),Ug=s.union([s.string(),s.object({encoding:s.literal("base64"),data:s.string(),contentType:s.string().min(1).optional().nullable()})]),po=s.object({path:s.string().min(1),name:s.string().min(1),description:s.string().nullable(),brandColor:s.string().nullable(),logoPath:s.string().nullable(),attachmentMaxBytes:s.number().int().min(1).max(1073741824).nullable().default(null),requireBoardApprovalForNewAgents:s.boolean(),feedbackDataSharingEnabled:s.boolean().default(!1),feedbackDataSharingConsentAt:s.string().datetime().nullable().default(null),feedbackDataSharingConsentByUserId:s.string().nullable().default(null),feedbackDataSharingTermsVersion:s.string().nullable().default(null)}),dr=s.object({agents:s.array(s.string().min(1)).default([]),projects:s.array(s.string().min(1)).default([])}),mo=s.object({slug:s.string().min(1),name:s.string().min(1),path:s.string().min(1),skills:s.array(s.string().min(1)).default([]),role:s.string().min(1),title:s.string().nullable(),icon:s.string().nullable(),capabilities:s.string().nullable(),reportsToSlug:s.string().min(1).nullable(),adapterType:s.string().min(1),adapterConfig:s.record(s.unknown()),runtimeConfig:s.record(s.unknown()),permissions:s.record(s.unknown()),budgetMonthlyCents:s.number().int().nonnegative(),metadata:s.record(s.unknown()).nullable()}),Cu=s.object({key:s.string().min(1),slug:s.string().min(1),name:s.string().min(1),path:s.string().min(1),description:s.string().nullable(),sourceType:s.string().min(1),sourceLocator:s.string().nullable(),sourceRef:s.string().nullable(),trustLevel:s.string().nullable(),compatibility:s.string().nullable(),metadata:s.record(s.unknown()).nullable(),fileInventory:s.array(s.object({path:s.string().min(1),kind:s.string().min(1)})).default([])}),jg=s.object({slug:s.string().min(1),name:s.string().min(1),path:s.string().min(1),description:s.string().nullable(),ownerAgentSlug:s.string().min(1).nullable(),leadAgentSlug:s.string().min(1).nullable(),targetDate:s.string().nullable(),color:s.string().nullable(),status:s.string().nullable(),executionWorkspacePolicy:s.record(s.unknown()).nullable(),workspaces:s.array(s.object({key:s.string().min(1),name:s.string().min(1),sourceType:s.string().nullable(),repoUrl:s.string().nullable(),repoRef:s.string().nullable(),defaultRef:s.string().nullable(),visibility:s.string().nullable(),setupCommand:s.string().nullable(),cleanupCommand:s.string().nullable(),metadata:s.record(s.unknown()).nullable(),isPrimary:s.boolean()})).default([]),metadata:s.record(s.unknown()).nullable()}),qg=s.object({kind:s.string().min(1),label:s.string().nullable(),enabled:s.boolean(),cronExpression:s.string().nullable(),timezone:s.string().nullable(),signingMode:s.string().nullable(),replayWindowSec:s.number().int().nullable()}),Hg=s.object({concurrencyPolicy:s.string().nullable(),catchUpPolicy:s.string().nullable(),variables:s.array(fn).nullable().optional(),triggers:s.array(qg).default([])}),$g=s.object({slug:s.string().min(1),identifier:s.string().min(1).nullable(),title:s.string().min(1),path:s.string().min(1),projectSlug:s.string().min(1).nullable(),projectWorkspaceKey:s.string().min(1).nullable(),assigneeAgentSlug:s.string().min(1).nullable(),description:s.string().nullable(),recurring:s.boolean().default(!1),routine:Hg.nullable(),legacyRecurrence:s.record(s.unknown()).nullable(),status:s.string().nullable(),priority:s.string().nullable(),labelIds:s.array(s.string().min(1)).default([]),billingCode:s.string().nullable(),executionWorkspaceSettings:s.record(s.unknown()).nullable(),assigneeAdapterOverrides:s.record(s.unknown()).nullable(),metadata:s.record(s.unknown()).nullable()}),Pu=s.object({schemaVersion:s.number().int().positive(),generatedAt:s.string().datetime(),source:s.object({companyId:s.string().uuid(),companyName:s.string().min(1)}).nullable(),includes:s.object({company:s.boolean(),agents:s.boolean(),projects:s.boolean(),issues:s.boolean(),skills:s.boolean()}),company:po.nullable(),sidebar:dr.nullable(),agents:s.array(mo),skills:s.array(Cu).default([]),projects:s.array(jg).default([]),issues:s.array($g).default([]),envInputs:s.array(lo).default([])}),fo=s.discriminatedUnion("type",[s.object({type:s.literal("inline"),rootPath:s.string().min(1).optional().nullable(),files:s.record(Ug)}),s.object({type:s.literal("github"),url:s.string().url()})]),go=s.discriminatedUnion("mode",[s.object({mode:s.literal("new_company"),newCompanyName:s.string().min(1).optional().nullable()}),s.object({mode:s.literal("existing_company"),companyId:s.string().uuid()})]),ho=s.union([s.literal("all"),s.array(s.string().min(1))]),yo=s.enum(["rename","skip","replace"]),Ou=s.object({include:lr.optional(),agents:s.array(s.string().min(1)).optional(),skills:s.array(s.string().min(1)).optional(),projects:s.array(s.string().min(1)).optional(),issues:s.array(s.string().min(1)).optional(),projectIssues:s.array(s.string().min(1)).optional(),selectedFiles:s.array(s.string().min(1)).optional(),expandReferencedSkills:s.boolean().optional(),sidebarOrder:dr.partial().optional()}),So=s.object({source:fo,include:lr.optional(),target:go,agents:ho.optional(),collisionStrategy:yo.optional(),nameOverrides:s.record(s.string().min(1),s.string().min(1)).optional(),selectedFiles:s.array(s.string().min(1)).optional()}),Bg=s.object({adapterType:s.string().min(1),adapterConfig:s.record(s.unknown()).optional()}),Nu=So.extend({adapterOverrides:s.record(s.string().min(1),Bg).optional()});var bo=s.object({type:s.literal("plain"),value:s.string()}),vo=s.object({type:s.literal("secret_ref"),secretId:s.string().uuid(),version:s.union([s.literal("latest"),s.number().int().positive()]).optional()}),ko=s.union([s.string(),bo,vo]),Wt=s.record(ko),Lu=s.object({name:s.string().min(1),provider:s.enum(cn).optional(),value:s.string().min(1),description:s.string().optional().nullable(),externalRef:s.string().optional().nullable()}),Mu=s.object({value:s.string().min(1),externalRef:s.string().optional().nullable()}),Du=s.object({name:s.string().min(1).optional(),description:s.string().optional().nullable(),externalRef:s.string().optional().nullable()});var Io=s.object({canCreateAgents:s.boolean().optional().default(!1)}),Eo=s.enum(["managed","external"]),Fu=s.object({mode:Eo.optional(),rootPath:s.string().trim().min(1).nullable().optional(),entryFile:s.string().trim().min(1).optional(),clearLegacyPromptTemplate:s.boolean().optional().default(!1)}),Uu=s.object({path:s.string().trim().min(1),content:s.string(),clearLegacyPromptTemplate:s.boolean().optional().default(!1)}),ju=s.record(s.unknown()).superRefine((e,t)=>{let n=e.env;if(n===void 0)return;Wt.safeParse(n).success||t.addIssue({code:s.ZodIssueCode.custom,message:"adapterConfig.env must be a map of valid env bindings",path:["env"]})}),Vg=s.object({entryFile:s.string().trim().min(1).optional(),files:s.record(s.string()).refine(e=>Object.keys(e).length>0,{message:"instructionsBundle.files must contain at least one file"})}),pr=s.object({name:s.string().min(1),role:s.enum(Es).optional().default("general"),title:s.string().optional().nullable(),icon:s.enum(ws).optional().nullable(),reportsTo:s.string().uuid().optional().nullable(),capabilities:s.string().optional().nullable(),desiredSkills:s.array(s.string().min(1)).optional(),adapterType:mi,adapterConfig:ju.optional().default({}),instructionsBundle:Vg.optional(),runtimeConfig:s.record(s.unknown()).optional().default({}),defaultEnvironmentId:s.string().uuid().optional().nullable(),budgetMonthlyCents:s.number().int().nonnegative().optional().default(0),permissions:Io.optional(),metadata:s.record(s.unknown()).optional().nullable()}),qu=pr.extend({sourceIssueId:s.string().uuid().optional().nullable(),sourceIssueIds:s.array(s.string().uuid()).optional()}),Hu=pr.omit({permissions:!0}).partial().extend({permissions:s.never().optional(),replaceAdapterConfig:s.boolean().optional(),status:s.enum(Is).optional(),spentMonthlyCents:s.number().int().nonnegative().optional()}),$u=s.object({path:s.string().trim().min(1).nullable(),adapterConfigKey:s.string().trim().min(1).optional()}),Bu=s.object({name:s.string().min(1).default("default")}),Vu=s.object({userId:s.string().trim().min(1),status:s.string().trim().min(1).optional().default(_s)}),Ku=s.object({source:s.enum(["timer","assignment","on_demand","automation"]).optional().default("on_demand"),triggerDetail:s.enum(["manual","ping","callback","system"]).optional(),reason:s.string().optional().nullable(),payload:s.record(s.unknown()).optional().nullable(),idempotencyKey:s.string().optional().nullable(),forceFreshSession:s.preprocess(e=>e===null?void 0:e,s.boolean().optional().default(!1))}),Wu=s.object({taskKey:s.string().min(1).optional().nullable()}),zu=s.object({adapterConfig:ju.optional().default({})}),Gu=s.object({canCreateAgents:s.boolean(),canAssignTasks:s.boolean()});var Kg=s.object({type:s.enum(["project_primary","git_worktree","adapter_managed","cloud_sandbox"]).optional(),baseRef:s.string().optional().nullable(),branchTemplate:s.string().optional().nullable(),worktreeParentDir:s.string().optional().nullable(),provisionCommand:s.string().optional().nullable(),teardownCommand:s.string().optional().nullable()}).strict(),wo=s.object({enabled:s.boolean(),defaultMode:s.enum(["shared_workspace","isolated_workspace","operator_branch","adapter_default"]).optional(),allowIssueOverride:s.boolean().optional(),defaultProjectWorkspaceId:s.string().uuid().optional().nullable(),environmentId:s.string().uuid().optional().nullable(),workspaceStrategy:Kg.optional().nullable(),workspaceRuntime:s.record(s.unknown()).optional().nullable(),branchPolicy:s.record(s.unknown()).optional().nullable(),pullRequestPolicy:s.record(s.unknown()).optional().nullable(),runtimePolicy:s.record(s.unknown()).optional().nullable(),cleanupPolicy:s.record(s.unknown()).optional().nullable()}).strict(),Zu=s.object({workspaceRuntime:s.record(s.unknown()).optional().nullable(),desiredState:s.enum(["running","stopped","manual"]).optional().nullable(),serviceStates:s.record(s.enum(["running","stopped","manual"])).optional().nullable()}).strict(),Wg=s.enum(["local_path","git_repo","remote_managed","non_git_path"]),zg=s.enum(["default","advanced"]),Yu={name:s.string().min(1).optional(),sourceType:Wg.optional(),cwd:s.string().min(1).optional().nullable(),repoUrl:s.string().url().optional().nullable(),repoRef:s.string().optional().nullable(),defaultRef:s.string().optional().nullable(),visibility:zg.optional(),setupCommand:s.string().optional().nullable(),cleanupCommand:s.string().optional().nullable(),remoteProvider:s.string().optional().nullable(),remoteWorkspaceRef:s.string().optional().nullable(),sharedWorkspaceKey:s.string().optional().nullable(),metadata:s.record(s.unknown()).optional().nullable(),runtimeConfig:Zu.optional().nullable()};function Gg(e,t){let n=e.sourceType??"local_path",r=typeof e.cwd=="string"&&e.cwd.trim().length>0,i=typeof e.repoUrl=="string"&&e.repoUrl.trim().length>0,o=typeof e.remoteWorkspaceRef=="string"&&e.remoteWorkspaceRef.trim().length>0;if(n==="remote_managed"){!o&&!i&&t.addIssue({code:s.ZodIssueCode.custom,message:"Remote-managed workspace requires remoteWorkspaceRef or repoUrl.",path:["remoteWorkspaceRef"]});return}!r&&!i&&t.addIssue({code:s.ZodIssueCode.custom,message:"Workspace requires at least one of cwd or repoUrl.",path:["cwd"]})}var _o=s.object({...Yu,isPrimary:s.boolean().optional().default(!1)}).superRefine(Gg),Ju=s.object({...Yu,isPrimary:s.boolean().optional()}).partial(),Xu={goalId:s.string().uuid().optional().nullable(),goalIds:s.array(s.string().uuid()).optional(),name:s.string().min(1),description:s.string().optional().nullable(),status:s.enum(Fs).optional().default("backlog"),leadAgentId:s.string().uuid().optional().nullable(),targetDate:s.string().optional().nullable(),color:s.string().optional().nullable(),env:Wt.optional().nullable(),executionWorkspacePolicy:wo.optional().nullable(),archivedAt:s.string().datetime().optional().nullable()},Qu=s.object({...Xu,workspace:_o.optional()}),el=s.object(Xu).partial();var mr=s.enum(Cs),gn=s.object({strategy:s.enum(Ps).default("manual"),note:s.string().trim().min(1).max(500).optional().nullable()}).strict(),tl=s.object({mode:mr,releasePolicy:gn.optional().nullable()}).strict(),nl=s.object({mode:mr,reason:s.string().trim().min(1).max(1e3).optional().nullable(),releasePolicy:gn.optional().nullable(),metadata:s.record(s.unknown()).optional().nullable()}).strict(),rl=s.object({reason:s.string().trim().min(1).max(1e3).optional().nullable(),releasePolicy:gn.optional().nullable(),metadata:s.record(s.unknown()).optional().nullable()}).strict();var Ao=s.enum(["preview_url","runtime_service","pull_request","branch","commit","artifact","document"]),Ro=s.enum(["active","ready_for_review","approved","changes_requested","merged","closed","failed","archived","draft"]),To=s.enum(["none","needs_board_review","approved","changes_requested"]),xo=s.object({projectId:s.string().uuid().optional().nullable(),executionWorkspaceId:s.string().uuid().optional().nullable(),runtimeServiceId:s.string().uuid().optional().nullable(),type:Ao,provider:s.string().min(1),externalId:s.string().optional().nullable(),title:s.string().min(1),url:s.string().url().optional().nullable(),status:Ro.default("active"),reviewState:To.optional().default("none"),isPrimary:s.boolean().optional().default(!1),healthStatus:s.enum(["unknown","healthy","unhealthy"]).optional().default("unknown"),summary:s.string().optional().nullable(),metadata:s.record(s.unknown()).optional().nullable(),createdByRunId:s.string().uuid().optional().nullable()}),sl=xo.partial();var Co=s.object({title:s.string().min(1),description:s.string().optional().nullable(),level:s.enum(Ms).optional().default("task"),status:s.enum(Ds).optional().default("planned"),parentId:s.string().uuid().optional().nullable(),ownerAgentId:s.string().uuid().optional().nullable()}),il=Co.partial();var ol=s.object({type:s.enum(Ws),requestedByAgentId:s.string().uuid().optional().nullable(),payload:s.record(s.unknown()),issueIds:s.array(s.string().uuid()).optional()}),al=s.object({decisionNote:ve.optional().nullable()}),cl=s.object({decisionNote:ve.optional().nullable()}),ul=s.object({payload:s.record(s.unknown()).optional()}),ll=s.object({body:ve.pipe(s.string().min(1))});var dl=s.object({agentId:s.string().uuid(),issueId:s.string().uuid().optional().nullable(),projectId:s.string().uuid().optional().nullable(),goalId:s.string().uuid().optional().nullable(),heartbeatRunId:s.string().uuid().optional().nullable(),billingCode:s.string().optional().nullable(),provider:s.string().min(1),biller:s.string().min(1).optional(),billingType:s.enum(Gs).optional().default("unknown"),model:s.string().min(1),inputTokens:s.number().int().nonnegative().optional().default(0),cachedInputTokens:s.number().int().nonnegative().optional().default(0),outputTokens:s.number().int().nonnegative().optional().default(0),costCents:s.number().int().nonnegative(),occurredAt:s.string().datetime()}).transform(e=>({...e,biller:e.biller??e.provider})),pl=s.object({budgetMonthlyCents:s.number().int().nonnegative()});var ml=s.object({agentId:s.string().uuid().optional().nullable(),issueId:s.string().uuid().optional().nullable(),projectId:s.string().uuid().optional().nullable(),goalId:s.string().uuid().optional().nullable(),heartbeatRunId:s.string().uuid().optional().nullable(),costEventId:s.string().uuid().optional().nullable(),billingCode:s.string().optional().nullable(),description:s.string().max(500).optional().nullable(),eventKind:s.enum(Zs),direction:s.enum(Ys).optional().default("debit"),biller:s.string().min(1),provider:s.string().min(1).optional().nullable(),executionAdapterType:s.enum(an).optional().nullable(),pricingTier:s.string().min(1).optional().nullable(),region:s.string().min(1).optional().nullable(),model:s.string().min(1).optional().nullable(),quantity:s.number().int().nonnegative().optional().nullable(),unit:s.enum(Js).optional().nullable(),amountCents:s.number().int().nonnegative(),currency:s.string().length(3).optional().default("USD"),estimated:s.boolean().optional().default(!1),externalInvoiceId:s.string().optional().nullable(),metadataJson:s.record(s.string(),s.unknown()).optional().nullable(),occurredAt:s.string().datetime()}).transform(e=>({...e,currency:e.currency.toUpperCase()}));var fl=s.object({namespace:s.string().trim().min(1).max(120).regex(/^[a-zA-Z0-9/_-]+$/).optional()});var gl=s.object({allowedJoinTypes:s.enum(ni).default("both"),humanRole:s.enum(un).optional().nullable(),defaultsPayload:s.record(s.string(),s.unknown()).optional().nullable(),agentMessage:s.string().max(4e3).optional().nullable()}),hl=s.object({agentMessage:s.string().max(4e3).optional().nullable()}),yl=s.object({requestType:s.enum(Zn),agentName:s.string().min(1).max(120).optional(),adapterType:fi,capabilities:s.string().max(4e3).optional().nullable(),agentDefaultsPayload:s.record(s.string(),s.unknown()).optional().nullable(),responsesWebhookUrl:s.string().max(4e3).optional().nullable(),responsesWebhookMethod:s.string().max(32).optional().nullable(),responsesWebhookHeaders:s.record(s.string(),s.unknown()).optional().nullable(),paperclipApiUrl:s.string().max(4e3).optional().nullable(),webhookAuthHeader:s.string().max(4e3).optional().nullable()}),Sl=s.object({status:s.enum(ri).optional(),requestType:s.enum(Zn).optional()}),bl=s.object({state:s.enum(["active","revoked","accepted","expired"]).optional(),limit:s.coerce.number().int().min(1).max(100).optional().default(20),offset:s.coerce.number().int().min(0).optional().default(0)}),vl=s.object({claimSecret:s.string().min(16).max(256)}),Po=s.enum(["board","instance_admin_required"]),kl=s.object({command:s.string().min(1).max(240),clientName:s.string().max(120).optional().nullable(),requestedAccess:Po.default("board"),requestedCompanyId:s.string().uuid().optional().nullable()}),Il=s.object({token:s.string().min(16).max(256)}),Oo=s.object({grants:s.array(s.object({permissionKey:s.enum(si),scope:s.record(s.string(),s.unknown()).optional().nullable()}))}),El=["pending","active","suspended"],wl=s.object({membershipRole:s.enum(un).optional().nullable(),status:s.enum(El).optional()}).refine(e=>e.membershipRole!==void 0||e.status!==void 0,{message:"membershipRole or status is required"}),_l=s.object({membershipRole:s.enum(un).optional().nullable(),status:s.enum(El).optional(),grants:Oo.shape.grants.default([])}).refine(e=>e.membershipRole!==void 0||e.status!==void 0,{message:"membershipRole or status is required"}),Al=s.object({reassignment:s.object({assigneeAgentId:s.string().uuid().optional().nullable(),assigneeUserId:s.string().uuid().optional().nullable()}).optional().nullable()}).superRefine((e,t)=>{e.reassignment?.assigneeAgentId&&e.reassignment.assigneeUserId&&t.addIssue({code:s.ZodIssueCode.custom,message:"Choose either an agent or user reassignment target",path:["reassignment"]})}),Rl=s.object({companyIds:s.array(s.string().uuid()).default([])}),Tl=s.object({query:s.string().trim().max(120).optional().default("")}),Zg=/^\/api\/assets\/[^/?#]+\/content(?:\?[^#]*)?(?:#.*)?$/;function Yg(e){if(Zg.test(e))return!0;try{let t=new URL(e);return t.protocol==="https:"||t.protocol==="http:"}catch{return!1}}var xl=s.string().trim().min(1).max(4e3).refine(Yg,{message:"Invalid profile image URL"}),No=s.object({id:s.string().min(1),email:s.string().email().nullable(),name:s.string().min(1).max(120).nullable(),image:xl.nullable()}),Cl=s.object({session:s.object({id:s.string().min(1),userId:s.string().min(1)}),user:No}),Pl=s.object({name:s.string().trim().min(1).max(120),image:s.union([xl,s.literal(""),s.null()]).optional().transform(e=>e===""?null:e)});var hn=s.record(s.unknown()).refine(e=>Object.keys(e).length===0?!0:typeof e.type=="string"||e.$ref!==void 0||e.oneOf!==void 0||e.anyOf!==void 0||e.allOf!==void 0,{message:"Must be a valid JSON Schema object (requires at least a 'type', '$ref', or composition keyword)"}),Jg=/^(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?)(?:,(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?))*$/;function Xg(e){let t=e.trim();if(!t)return!1;let n=t.split(/\s+/);return n.length!==5?!1:n.every(r=>Jg.test(r))}var Lo=s.object({jobKey:s.string().min(1),displayName:s.string().min(1),description:s.string().optional(),schedule:s.string().refine(e=>Xg(e),{message:"schedule must be a valid 5-field cron expression (e.g. '*/15 * * * *')"}).optional()}),Mo=s.object({endpointKey:s.string().min(1),displayName:s.string().min(1),description:s.string().optional()}),Do=s.object({name:s.string().min(1),displayName:s.string().min(1),description:s.string().min(1),parametersSchema:hn}),Fo=s.object({driverKey:s.string().min(1).regex(/^[a-z0-9][a-z0-9._-]*$/,"Environment driver key must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, hyphens, or underscores"),kind:s.enum(["environment_driver","sandbox_provider"]).optional(),displayName:s.string().min(1).max(100),description:s.string().max(500).optional(),configSchema:hn}),Uo=s.object({type:s.enum(Qn),id:s.string().min(1),displayName:s.string().min(1),exportName:s.string().min(1),entityTypes:s.array(s.enum(ln)).optional(),routePath:s.string().regex(/^[a-z0-9][a-z0-9-]*$/,{message:"routePath must be a lowercase single-segment slug (letters, numbers, hyphens)"}).optional(),order:s.number().int().optional()}).superRefine((e,t)=>{["detailTab","taskDetailView","contextMenuItem","commentAnnotation","commentContextMenuItem","projectSidebarItem"].includes(e.type)&&(!e.entityTypes||e.entityTypes.length===0)&&t.addIssue({code:s.ZodIssueCode.custom,message:`${e.type} slots require at least one entityType`,path:["entityTypes"]}),e.type==="projectSidebarItem"&&e.entityTypes&&!e.entityTypes.includes("project")&&t.addIssue({code:s.ZodIssueCode.custom,message:'projectSidebarItem slots require entityTypes to include "project"',path:["entityTypes"]}),e.type==="commentAnnotation"&&e.entityTypes&&!e.entityTypes.includes("comment")&&t.addIssue({code:s.ZodIssueCode.custom,message:'commentAnnotation slots require entityTypes to include "comment"',path:["entityTypes"]}),e.type==="commentContextMenuItem"&&e.entityTypes&&!e.entityTypes.includes("comment")&&t.addIssue({code:s.ZodIssueCode.custom,message:'commentContextMenuItem slots require entityTypes to include "comment"',path:["entityTypes"]}),e.routePath&&e.type!=="page"&&t.addIssue({code:s.ZodIssueCode.custom,message:"routePath is only supported for page slots",path:["routePath"]}),e.routePath&&bc.includes(e.routePath)&&t.addIssue({code:s.ZodIssueCode.custom,message:`routePath "${e.routePath}" is reserved by the host`,path:["routePath"]})}),Qg=["detailTab","taskDetailView","contextMenuItem","commentAnnotation","commentContextMenuItem","projectSidebarItem"],eh={hostInline:["inline","compact","default"],hostOverlay:["compact","default","wide","full"],hostRoute:["default","wide","full"],external:[],iframe:["compact","default","wide","full"]},jo=s.object({type:s.enum(li),target:s.string().min(1),params:s.record(s.unknown()).optional()}).superRefine((e,t)=>{e.type==="performAction"&&e.target.includes("/")&&t.addIssue({code:s.ZodIssueCode.custom,message:"performAction launchers must target an action key, not a route or URL",path:["target"]}),e.type==="navigate"&&/^https?:\/\//.test(e.target)&&t.addIssue({code:s.ZodIssueCode.custom,message:"navigate launchers must target a host route, not an absolute URL",path:["target"]})}),qo=s.object({environment:s.enum(pi),bounds:s.enum(di).optional()}).superRefine((e,t)=>{if(!e.bounds)return;eh[e.environment].includes(e.bounds)||t.addIssue({code:s.ZodIssueCode.custom,message:`bounds "${e.bounds}" is not supported for render environment "${e.environment}"`,path:["bounds"]})}),fr=s.object({id:s.string().min(1),displayName:s.string().min(1),description:s.string().optional(),placementZone:s.enum(ui),exportName:s.string().min(1).optional(),entityTypes:s.array(s.enum(ln)).optional(),order:s.number().int().optional(),action:jo,render:qo.optional()}).superRefine((e,t)=>{Qg.some(n=>n===e.placementZone)&&(!e.entityTypes||e.entityTypes.length===0)&&t.addIssue({code:s.ZodIssueCode.custom,message:`${e.placementZone} launchers require at least one entityType`,path:["entityTypes"]}),e.placementZone==="projectSidebarItem"&&e.entityTypes&&!e.entityTypes.includes("project")&&t.addIssue({code:s.ZodIssueCode.custom,message:'projectSidebarItem launchers require entityTypes to include "project"',path:["entityTypes"]}),e.action.type==="performAction"&&e.render&&t.addIssue({code:s.ZodIssueCode.custom,message:"performAction launchers cannot declare render hints",path:["render"]}),["openModal","openDrawer","openPopover"].includes(e.action.type)&&!e.render&&t.addIssue({code:s.ZodIssueCode.custom,message:`${e.action.type} launchers require render metadata`,path:["render"]}),e.action.type==="openModal"&&e.render?.environment==="hostInline"&&t.addIssue({code:s.ZodIssueCode.custom,message:"openModal launchers cannot use the hostInline render environment",path:["render","environment"]}),e.action.type==="openDrawer"&&e.render&&!["hostOverlay","iframe"].includes(e.render.environment)&&t.addIssue({code:s.ZodIssueCode.custom,message:"openDrawer launchers must use hostOverlay or iframe render environments",path:["render","environment"]}),e.action.type==="openPopover"&&e.render?.environment==="hostRoute"&&t.addIssue({code:s.ZodIssueCode.custom,message:"openPopover launchers cannot use the hostRoute render environment",path:["render","environment"]})}),Ho=s.object({namespaceSlug:s.string().regex(/^[a-z0-9][a-z0-9_]*$/,{message:"namespaceSlug must be lowercase letters, digits, or underscores and start with a letter or digit"}).max(40).optional(),migrationsDir:s.string().min(1).refine(e=>!e.startsWith("/")&&!e.includes("..")&&!/[\\]/.test(e),{message:"migrationsDir must be a relative package path without '..' or backslashes"}),coreReadTables:s.array(s.enum(ii)).optional()}),$o=s.object({routeKey:s.string().min(1).max(100).regex(/^[a-z0-9][a-z0-9._:-]*$/,{message:"routeKey must be lowercase letters, digits, dots, colons, underscores, or hyphens"}),method:s.enum(oi),path:s.string().min(1).regex(/^\/[a-zA-Z0-9:_./-]*$/,{message:"path must start with / and contain only path-safe literal or :param segments"}).refine(e=>!e.includes("..")&&!e.includes("//")&&e!=="/api"&&!e.startsWith("/api/")&&e!=="/plugins"&&!e.startsWith("/plugins/"),{message:"path must stay inside the plugin api namespace"}),auth:s.enum(ai),capability:s.literal("api.routes.register"),checkoutPolicy:s.enum(ci).optional(),companyResolution:s.discriminatedUnion("from",[s.object({from:s.literal("body"),key:s.string().min(1)}),s.object({from:s.literal("query"),key:s.string().min(1)}),s.object({from:s.literal("issue"),param:s.string().min(1)})]).optional()}),Ol=s.object({id:s.string().min(1).regex(/^[a-z0-9][a-z0-9._-]*$/,"Plugin id must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, hyphens, or underscores"),apiVersion:s.literal(1),version:s.string().min(1).regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/,"Version must follow semver (e.g. 1.0.0 or 1.0.0-beta.1)"),displayName:s.string().min(1).max(100),description:s.string().min(1).max(500),author:s.string().min(1).max(200),categories:s.array(s.enum(Jn)).min(1),minimumHostVersion:s.string().regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/,"minimumHostVersion must follow semver (e.g. 1.0.0)").optional(),minimumPaperclipVersion:s.string().regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/,"minimumPaperclipVersion must follow semver (e.g. 1.0.0)").optional(),capabilities:s.array(s.enum(Xn)).min(1),entrypoints:s.object({worker:s.string().min(1),ui:s.string().min(1).optional()}),instanceConfigSchema:hn.optional(),jobs:s.array(Lo).optional(),webhooks:s.array(Mo).optional(),tools:s.array(Do).optional(),database:Ho.optional(),apiRoutes:s.array($o).optional(),environmentDrivers:s.array(Fo).optional(),launchers:s.array(fr).optional(),ui:s.object({slots:s.array(Uo).min(1).optional(),launchers:s.array(fr).optional()}).optional()}).superRefine((e,t)=>{let n=(e.ui?.slots?.length??0)>0,r=(e.ui?.launchers?.length??0)>0;if((n||r)&&!e.entrypoints.ui&&t.addIssue({code:s.ZodIssueCode.custom,message:"entrypoints.ui is required when ui.slots or ui.launchers are declared",path:["entrypoints","ui"]}),e.minimumHostVersion&&e.minimumPaperclipVersion&&e.minimumHostVersion!==e.minimumPaperclipVersion&&t.addIssue({code:s.ZodIssueCode.custom,message:"minimumHostVersion and minimumPaperclipVersion must match when both are declared",path:["minimumHostVersion"]}),e.tools&&e.tools.length>0&&(e.capabilities.includes("agent.tools.register")||t.addIssue({code:s.ZodIssueCode.custom,message:"Capability 'agent.tools.register' is required when tools are declared",path:["capabilities"]})),e.environmentDrivers&&e.environmentDrivers.length>0&&(e.capabilities.includes("environment.drivers.register")||t.addIssue({code:s.ZodIssueCode.custom,message:"Capability 'environment.drivers.register' is required when environmentDrivers are declared",path:["capabilities"]})),e.jobs&&e.jobs.length>0&&(e.capabilities.includes("jobs.schedule")||t.addIssue({code:s.ZodIssueCode.custom,message:"Capability 'jobs.schedule' is required when jobs are declared",path:["capabilities"]})),e.webhooks&&e.webhooks.length>0&&(e.capabilities.includes("webhooks.receive")||t.addIssue({code:s.ZodIssueCode.custom,message:"Capability 'webhooks.receive' is required when webhooks are declared",path:["capabilities"]})),e.apiRoutes&&e.apiRoutes.length>0&&(e.capabilities.includes("api.routes.register")||t.addIssue({code:s.ZodIssueCode.custom,message:"Capability 'api.routes.register' is required when apiRoutes are declared",path:["capabilities"]})),e.database){let o=["database.namespace.migrate","database.namespace.read"];for(let u of o)e.capabilities.includes(u)||t.addIssue({code:s.ZodIssueCode.custom,message:`Capability '${u}' is required when database migrations are declared`,path:["capabilities"]});let a=e.database.coreReadTables??[],c=a.filter((u,d)=>a.indexOf(u)!==d);c.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate database coreReadTables: ${[...new Set(c)].join(", ")}`,path:["database","coreReadTables"]})}if(e.jobs){let o=e.jobs.map(c=>c.jobKey),a=o.filter((c,u)=>o.indexOf(c)!==u);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate job keys: ${[...new Set(a)].join(", ")}`,path:["jobs"]})}if(e.webhooks){let o=e.webhooks.map(c=>c.endpointKey),a=o.filter((c,u)=>o.indexOf(c)!==u);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate webhook endpoint keys: ${[...new Set(a)].join(", ")}`,path:["webhooks"]})}if(e.apiRoutes){let o=e.apiRoutes.map(d=>d.routeKey),a=o.filter((d,m)=>o.indexOf(d)!==m);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate api route keys: ${[...new Set(a)].join(", ")}`,path:["apiRoutes"]});let c=e.apiRoutes.map(d=>`${d.method} ${d.path}`),u=c.filter((d,m)=>c.indexOf(d)!==m);u.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate api routes: ${[...new Set(u)].join(", ")}`,path:["apiRoutes"]})}if(e.tools){let o=e.tools.map(c=>c.name),a=o.filter((c,u)=>o.indexOf(c)!==u);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate tool names: ${[...new Set(a)].join(", ")}`,path:["tools"]})}if(e.environmentDrivers){let o=e.environmentDrivers.map(c=>c.driverKey),a=o.filter((c,u)=>o.indexOf(c)!==u);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate environment driver keys: ${[...new Set(a)].join(", ")}`,path:["environmentDrivers"]})}if(e.ui&&e.ui.slots){let o=e.ui.slots.map(c=>c.id),a=o.filter((c,u)=>o.indexOf(c)!==u);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate UI slot ids: ${[...new Set(a)].join(", ")}`,path:["ui","slots"]})}let i=[...e.launchers??[],...e.ui?.launchers??[]];if(i.length>0){let o=i.map(c=>c.id),a=o.filter((c,u)=>o.indexOf(c)!==u);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate launcher ids: ${[...new Set(a)].join(", ")}`,path:e.ui?.launchers?["ui","launchers"]:["launchers"]})}}),Nl=s.object({packageName:s.string().min(1),version:s.string().min(1).optional(),packagePath:s.string().min(1).optional()}),Ll=s.object({configJson:s.record(s.unknown())}),Ml=s.object({configJson:s.record(s.unknown())}),Dl=s.object({status:s.enum(Yn),lastError:s.string().nullable().optional()}),Fl=s.object({removeData:s.boolean().optional().default(!1)}),Ul=s.object({scopeKind:s.enum($t),scopeId:s.string().min(1).optional(),namespace:s.string().min(1).optional(),stateKey:s.string().min(1)}),jl=s.object({scopeKind:s.enum($t),scopeId:s.string().min(1).optional(),namespace:s.string().min(1).optional(),stateKey:s.string().min(1),value:s.unknown()}),ql=s.object({scopeKind:s.enum($t).optional(),scopeId:s.string().min(1).optional(),namespace:s.string().min(1).optional()});var H="/api",th={health:`${H}/health`,companies:`${H}/companies`,agents:`${H}/agents`,projects:`${H}/projects`,issues:`${H}/issues`,issueTreeControl:`${H}/issues/:issueId/tree-control`,issueTreeHolds:`${H}/issues/:issueId/tree-holds`,goals:`${H}/goals`,approvals:`${H}/approvals`,secrets:`${H}/secrets`,costs:`${H}/costs`,activity:`${H}/activity`,dashboard:`${H}/dashboard`,sidebarBadges:`${H}/sidebar-badges`,sidebarPreferences:`${H}/sidebar-preferences`,invites:`${H}/invites`,joinRequests:`${H}/join-requests`,members:`${H}/members`,admin:`${H}/admin`};var NA=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0,timeZone:"UTC",timeZoneName:"short"});var Hl=s.object({version:s.literal(1),updatedAt:s.string(),source:s.enum(["onboard","configure","doctor"])}),$l=s.object({provider:s.enum(["claude","openai"]),apiKey:s.string().optional()}),Bl=s.object({enabled:s.boolean().default(!0),intervalMinutes:s.number().int().min(1).max(10080).default(60),retentionDays:s.number().int().min(1).max(3650).default(7),dir:s.string().default("~/.paperclip/instances/default/data/backups")}),Vl=s.object({mode:s.enum(["embedded-postgres","postgres"]).default("embedded-postgres"),connectionString:s.string().optional(),embeddedPostgresDataDir:s.string().default("~/.paperclip/instances/default/db"),embeddedPostgresPort:s.number().int().min(1).max(65535).default(54329),backup:Bl.default({enabled:!0,intervalMinutes:60,retentionDays:7,dir:"~/.paperclip/instances/default/data/backups"})}),Kl=s.object({mode:s.enum(["file","cloud"]),logDir:s.string().default("~/.paperclip/instances/default/logs")}),Wl=s.object({deploymentMode:s.enum(Ss).default("local_trusted"),exposure:s.enum(bs).default("private"),bind:s.enum(vs).optional(),customBindHost:s.string().optional(),host:s.string().default("127.0.0.1"),port:s.number().int().min(1).max(65535).default(3100),allowedHostnames:s.array(s.string().min(1)).default([]),serveUi:s.boolean().default(!0)}),zl=s.object({baseUrlMode:s.enum(ks).default("auto"),publicBaseUrl:s.string().url().optional(),disableSignUp:s.boolean().default(!1)}),Gl=s.object({baseDir:s.string().default("~/.paperclip/instances/default/data/storage")}),Zl=s.object({bucket:s.string().min(1).default("paperclip"),region:s.string().min(1).default("us-east-1"),endpoint:s.string().optional(),prefix:s.string().default(""),forcePathStyle:s.boolean().default(!1)}),Yl=s.object({provider:s.enum(zs).default("local_disk"),localDisk:Gl.default({baseDir:"~/.paperclip/instances/default/data/storage"}),s3:Zl.default({bucket:"paperclip",region:"us-east-1",prefix:"",forcePathStyle:!1})}),Jl=s.object({keyFilePath:s.string().default("~/.paperclip/instances/default/secrets/master.key")}),Xl=s.object({provider:s.enum(cn).default("local_encrypted"),strictMode:s.boolean().default(!1),localEncrypted:Jl.default({keyFilePath:"~/.paperclip/instances/default/secrets/master.key"})}),Ql=s.object({enabled:s.boolean().default(!0)}).default({}),nh=s.object({$meta:Hl,llm:$l.optional(),database:Vl,logging:Kl,server:Wl,telemetry:Ql,auth:zl.default({baseUrlMode:"auto",disableSignUp:!1}),storage:Yl.default({provider:"local_disk",localDisk:{baseDir:"~/.paperclip/instances/default/data/storage"},s3:{bucket:"paperclip",region:"us-east-1",prefix:"",forcePathStyle:!1}}),secrets:Xl.default({provider:"local_encrypted",strictMode:!1,localEncrypted:{keyFilePath:"~/.paperclip/instances/default/secrets/master.key"}})}).superRefine((e,t)=>{e.server.deploymentMode==="local_trusted"&&e.server.exposure!=="private"&&t.addIssue({code:s.ZodIssueCode.custom,message:"server.exposure must be private when deploymentMode is local_trusted",path:["server","exposure"]});for(let n of yi({deploymentMode:e.server.deploymentMode,deploymentExposure:e.server.exposure,bind:e.server.bind,host:e.server.host,customBindHost:e.server.customBindHost}))t.addIssue({code:s.ZodIssueCode.custom,message:n,path:n.includes("customBindHost")?["server","customBindHost"]:["server","bind"]});e.auth.baseUrlMode==="explicit"&&!e.auth.publicBaseUrl&&t.addIssue({code:s.ZodIssueCode.custom,message:"auth.publicBaseUrl is required when auth.baseUrlMode is explicit",path:["auth","publicBaseUrl"]}),e.server.exposure==="public"&&e.auth.baseUrlMode!=="explicit"&&t.addIssue({code:s.ZodIssueCode.custom,message:"auth.baseUrlMode must be explicit when deploymentMode=authenticated and exposure=public",path:["auth","baseUrlMode"]}),e.server.exposure==="public"&&!e.auth.publicBaseUrl&&t.addIssue({code:s.ZodIssueCode.custom,message:"auth.publicBaseUrl is required when deploymentMode=authenticated and exposure=public",path:["auth","publicBaseUrl"]})});import{performance as ed}from"perf_hooks";import{join as Yo,dirname as lh}from"path";import{randomBytes as dh}from"crypto";import{readFile as ph,mkdir as mh,open as fh,rename as gh,unlink as hh}from"fs/promises";function yh(e){return yd(e.priority)*100+Sd(e.consequence)*10+bd(e.tone)+(e.blocking?1e3:0)+(e.attentionScoreOffset??0)}function xe(e,t={}){return yd(ie(e))*100+Sd(e.consequence)*10+bd(e.tone)+(Rt(e)?1e3:0)+hd(e)+Sh(e,t.now)}function ie(e){return e.mode==="status"?e.tone==="critical"||e.consequence==="high"?"high":e.tone==="focused"||e.consequence==="medium"?"normal":"background":"high"}function hd(e){let t=e.metadata?.attention;return t&&typeof t=="object"&&"scoreOffset"in t&&typeof t.scoreOffset=="number"?t.scoreOffset:0}function Rt(e){return e.mode!=="status"&&e.responseSpec?.kind!=="none"}function yd(e){switch(e){case"background":return 0;case"normal":return 1;case"high":return 2}}function Sd(e){switch(e){case"low":return 0;case"medium":return 1;case"high":return 2}}function bd(e){switch(e){case"ambient":return 0;case"focused":return 1;case"critical":return 2}}function Sh(e,t){let n=t??e.timing.updatedAt,r=Date.parse(e.timing.updatedAt),i=Date.parse(n);if(Number.isNaN(r)||Number.isNaN(i)||i<=r)return 0;let o=i-r,a=bh(e);if(o<=a.graceMs)return 0;let c=Math.floor((o-a.graceMs)/a.stepMs)+1;return-Math.min(a.maxPenalty,c*a.penaltyPerStep)}function bh(e){return Rt(e)?{graceMs:1800*1e3,stepMs:600*1e3,penaltyPerStep:1,maxPenalty:6}:e.tone==="critical"||e.consequence==="high"?{graceMs:1200*1e3,stepMs:600*1e3,penaltyPerStep:1,maxPenalty:8}:e.tone==="focused"||e.consequence==="medium"?{graceMs:600*1e3,stepMs:600*1e3,penaltyPerStep:2,maxPenalty:12}:{graceMs:300*1e3,stepMs:600*1e3,penaltyPerStep:3,maxPenalty:18}}var vh=250;function kh(e,t={}){let n=[],r=[];for(let a of e)a.now&&(Ih(a.now)?r.push(a.now):n.push(a.now)),n.push(...a.next),r.push(...a.ambient);let i=t.now??wh([...n,...r]);if(Eh([...n,...r])>=2){let a=[],c=[];for(let u of n)!vd(u)&&xe(u,{now:i})<200?c.push(u):a.push(u);n=a,r=[...r,...c]}if(n.sort((a,c)=>td(a,c,i)),r.sort((a,c)=>td(a,c,i)),t.operatorPresence==="absent")return{now:null,next:n,ambient:r};let o=_h(n,r,t.focusedInteractionId??null,i);if(o){let a=n.some(c=>c.interactionId===o.interactionId);return{now:o,next:a?n.filter(c=>c.interactionId!==o.interactionId):n,ambient:r.filter(c=>c.interactionId!==o.interactionId)}}if(n.length>0){let[a,...c]=n;return{now:a??null,next:c,ambient:r}}if(r.length>0){let[a,...c]=r;return a&&(xe(a,{now:i})<=0||t.globalAttentionState==="overloaded"&&xe(a,{now:i})<200)?{now:null,next:[],ambient:r}:{now:a??null,next:[],ambient:c}}return{now:null,next:[],ambient:[]}}function Ih(e){return e.mode==="status"||e.tone==="ambient"}function vd(e){return e.mode!=="status"||e.tone==="critical"||e.consequence==="high"}function Eh(e){return e.filter(vd).length}function td(e,t,n){let r=xe(t,{now:n})-xe(e,{now:n});return r!==0?r:e.timing.createdAt.localeCompare(t.timing.createdAt)}function wh(e){let t="1970-01-01T00:00:00.000Z";for(let n of e){let r=n.timing.updatedAt;r.localeCompare(t)>0&&(t=r)}return t}function _h(e,t,n,r){if(!n)return null;let i=e.find(a=>a.interactionId===n)??t.find(a=>a.interactionId===n)??null;if(!i)return null;let o=e[0]??t[0]??null;return!o||o.interactionId===i.interactionId?i:Ah(i,o,r)?null:i}function Ah(e,t,n){return t.tone==="critical"&&e.tone!=="critical"||t.mode!=="status"&&t.consequence==="high"&&e.consequence!=="high"?!0:xe(t,{now:n})-xe(e,{now:n})>=vh}function bt(e){let t=e.counts.presented>=5;return e.counts.presented+e.counts.deferred>=5&&e.counts.deferred>=3&&e.deferred.next+e.deferred.suppressed>=3?"overloaded":t&&e.dismissalRate>=.6&&e.deferred.suppressed>=2?"avoiding":e.counts.contextExpanded>=1&&e.averageResponseLatencyMs!==null&&e.averageResponseLatencyMs>=15e3?"hesitating":t&&e.responseRate>=.6&&e.averageResponseLatencyMs!==null&&e.averageResponseLatencyMs<=1e4?"engaged":"monitoring"}function gr(e){let t=[];return e.counts.contextExpanded>=1&&e.counts.responded>=1&&t.push("context_before_action"),e.counts.deferred>=2&&e.counts.returned>=1&&t.push("defer_then_return"),e.counts.attentionShifted>=3&&t.push("fragmented_attention"),e.counts.viewed>=1&&e.counts.timedOut>=1&&e.counts.responded===0&&t.push("stalling"),t}var Rh=class{apply(e,t,n=t){let r=this.scoreOffset(e,t,n),i=this.rationale(e,t,n,r);return{...e,...r!==0?{attentionScoreOffset:r}:{},...i.length>0?{attentionRationale:i}:{}}}scoreOffset(e,t,n){let r=0,i=bt(t),o=bt(n),a=gr(t),c=gr(n);if(e.mode==="status"){let u=e.consequence==="high"||e.tone==="critical";t.dismissalRate>=.5&&(r-=15),t.deferred.suppressed>=2&&(r-=10),u&&(r+=20),!u&&i==="overloaded"&&(r-=10),!u&&i==="avoiding"&&(r-=10),!u&&i!=="overloaded"&&o==="overloaded"&&(r-=5),!u&&c.includes("fragmented_attention")&&(r-=5)}return e.blocking&&t.counts.contextExpanded>=2&&(r+=10),e.blocking&&t.responseRate>=.75&&t.averageResponseLatencyMs!==null&&t.averageResponseLatencyMs<=1e4&&(r+=5),e.blocking&&i==="hesitating"&&(r+=5),e.blocking&&a.includes("defer_then_return")&&(r+=5),r}rationale(e,t,n,r){let i=[],o=bt(t),a=bt(n),c=gr(t),u=gr(n);return e.mode==="status"&&t.dismissalRate>=.5&&i.push("status updates for this task are often dismissed"),e.mode==="status"&&t.deferred.suppressed>=2&&i.push("similar task updates have repeatedly remained ambient"),e.mode==="status"&&(e.consequence==="high"||e.tone==="critical")&&i.push("high-consequence status should remain more visible"),e.mode==="status"&&e.consequence!=="high"&&e.tone!=="critical"&&o==="overloaded"&&i.push("recent task activity suggests attention is already saturated"),e.mode==="status"&&e.consequence!=="high"&&e.tone!=="critical"&&o==="avoiding"&&i.push("recent behavior suggests low-value updates should stay quiet"),e.mode==="status"&&e.consequence!=="high"&&e.tone!=="critical"&&o!=="overloaded"&&a==="overloaded"&&i.push("overall operator activity suggests attention is already saturated"),e.mode==="status"&&e.consequence!=="high"&&e.tone!=="critical"&&u.includes("fragmented_attention")&&i.push("recent attention has already shifted repeatedly across work"),e.blocking&&t.counts.contextExpanded>=2&&i.push("this task often requires deeper context before action"),e.blocking&&t.responseRate>=.75&&t.averageResponseLatencyMs!==null&&t.averageResponseLatencyMs<=1e4&&i.push("similar blocking interactions usually receive quick responses"),e.blocking&&o==="hesitating"&&i.push("similar blocking interactions appear to require more deliberation"),e.blocking&&c.includes("defer_then_return")&&i.push("similar interactions are often deferred and resumed later"),r===0?[]:i}},Th=["need your input","need your approval","need your review","need your sign off","need your sign-off","should i continue","can you approve","can you review","what should i do"],kd=["no action needed","no approval needed","approval is not needed","approval not needed","sign off not needed","sign-off not needed","no input needed","for awareness only","for your awareness","continuing automatically"],xh=["cannot continue","can't continue","cannot proceed","can't proceed","unable to continue","unable to proceed","blocked on","blocked until","stuck on","requires operator input before continuing","needs operator input before continuing","must be provided before continuing"],Ch=["waiting for approval","approval required","awaiting approval","waiting on approval","pending approval","waiting for input","awaiting input","waiting on input","awaiting review","waiting for review"],Ph=["production","prod","force push","git push --force","rm -rf","drop table","delete database","delete prod","sudo","chmod 777","kill process","migrate"],Oh=["result of running cat -n","result of running sed -n","result of running grep","result of running ls","result of running find","here s the result of running cat -n","here s the result of running sed -n"],Nh=["observation","contents of","showing first","showing top","found"],Lh=["path","type file","content"],Mh=["ran successfully and did not produce any output","command ran successfully and did not produce any output","completed successfully and did not produce any output"],Dh=["tool-output","dmesg"],Fh=["makefile","spdx-license-identifier","patchlevel","sublevel","extraversion"],Uh=/(?:^|\s)\/[a-z0-9._-]+(?:\/[a-z0-9._-]+)+(?:\s|$)/,jh=/\bfound\s+\d+\s+match(?:es)?\b|\bshowing\s+(?:first|top)\s+\d+\b|\bmatch(?:es)?\s+in\s+\d+\s+files?\b/,qh=/\b(import|from|export|class|def|function|const|let|var|return)\b/,Hh=/\b\d+\s+(?:import|from|export|class|def|function|const|let|var|return)\b/,$h=/\/[a-z0-9._/-]+\.(?:c|cc|cpp|cxx|h|hpp|ts|tsx|js|jsx|py|rb|go|rs|java|kt|swift)(?:\b|\/)/,Bh=/\b[a-z0-9.-]+\.(?:c|cc|cpp|cxx|h|hpp|ts|tsx|js|jsx|py|rb|go|rs|java|kt|swift)\b/,Vh=/\b(static|struct|enum|typedef|void|int|char|bool|return)\b/,Kh=/\b\d+\s+(?:static|struct|enum|typedef|void|int|char|bool|return)\b/,Wh=/\b\d+\s+\[\s*\d+\.\d+\]\s+[a-z0-9_.:-]+/,zh=/\b(?:version|patchlevel|sublevel|extraversion)\b/,Gh=["form is valid false","form without instance is valid false","form errors","errorlist","decompress result"],Zh=["traceback","exception","permission denied","command not found","segmentation fault"],Yh=["still","again","back again","came back","continues","continuing","returned","returning","remains","persisting","retrying","recurred"],Jh=["did not repeat","didn t repeat","did not return","didn t return","did not recur","didn t recur","not repeated","not returning","not recurring","no repeat"],Xh=["resolved","fixed","unblocked","no longer blocked"],nd=["not resolved","did not resolve","didn t resolve","not fixed","did not fix","didn t fix","not recovered","did not recover","didn t recover"],Qh=["recovered","completed successfully","succeeded after"],rd=["instead","supersedes","superseded","replaced by","use this plan instead","follow this plan instead"],ey=["worse","worsened","escalating","regression","regressed","spread","broader impact","degraded further","critical now","now failing"],ty=["did not regress","didn t regress","no regression","not worsening","did not worsen","didn t worsen","not escalating","did not escalate","didn t escalate"],ny=["fail","failed","failing","failure","error","broken","blocked","stalled","stall","incident","issue","outage","degraded","regression","retry","rollback"];function En(e){return e.toLowerCase().replace(/[^a-z0-9/._-]+/g," ").trim()}function Jo(e){return[...new Set(e)]}function ca(e){return Bo(e.toolFamily)??Bo(gy(e.metadata))??Bo(hy(e.context))}function Id(e){let t=ca(e);if(t)return t;let n=En(`${e.title} ${e.summary??""}`);return Re(n,"wants to read")||Re(n,"wants to inspect")||Sn(n,"read")||Sn(n,"inspect")?"read":Re(n,"wants to write")||Sn(n,"write")?"write":Re(n,"wants to edit")||Sn(n,"edit")?"edit":Re(n,"shell command")||Re(n,"wants to run")?"bash":Re(n,"search the web")?"web":Re(n,"search files")||Re(n,"search file contents")?"search":null}function ry(e){return M(e,kd)?!1:M(e,Th)}function sy(e){return M(e,kd)?null:M(e,xh)?"blocking":M(e,Ch)?"waiting":null}function Ed(e){let t=[],n=M(e,Yh)&&!M(e,Jh),r=M(e,Xh)&&!M(e,nd),i=M(e,Qh)&&!M(e,nd),o=M(e,ey)&&!M(e,ty),a=M(e,ny)||M(e,rd)||o;return n&&a&&t.push({kind:"same_issue"},{kind:"repeats"}),(r||i&&a)&&t.push({kind:"same_issue"},{kind:"resolves"}),M(e,rd)&&t.push({kind:"same_issue"},{kind:"supersedes"}),o&&t.push({kind:"same_issue"},{kind:"escalates"}),Sy(t)}function yn(e,t,n){return yy(e)||n==="read"||n==="search"?t:cy(e,Ph)?"high":(n==="write"||n==="edit"||n==="bash")&&t==="low"?"medium":t}function iy(e,t){return t!=="edit"&&t!=="read"?!1:M(e,Oh)||Ad(e)||_d(e)}function oy(e,t){return t==="search"?sd(e):t==="read"?sd(e)?!0:!Ad(e)&&!_d(e)||py(e)?!1:my(e)||fy(e):!1}function ay(e,t){return t!=="bash"?!1:M(e,Gh)&&!M(e,Zh)}function M(e,t){return t.some(n=>wd(e,n))}function cy(e,t){return t.some(n=>uy(e,n))}function wd(e,t){let n=En(t);return n?n.includes(" ")?Re(e,n):Sn(e,n):!1}function uy(e,t){return wd(e,t)}function _d(e){return ua(e)?M(e,Nh)||ly(e)||dy(e):!1}function Ad(e){return M(e,Lh)&&ua(e)}function sd(e){return jh.test(e)||ua(e)&&/\bmatch(?:es)?\b/.test(e)}function ua(e){return Uh.test(e)}function ly(e){return qh.test(e)}function dy(e){return Hh.test(e)}function py(e){return $h.test(e)||Bh.test(e)||Vh.test(e)||Kh.test(e)}function my(e){return Wh.test(e)||M(e,Dh)}function fy(e){return zh.test(e)||M(e,Fh)}function gy(e){let t=e?.toolFamily;return typeof t=="string"?t:null}function hy(e){if(!e?.items)return null;for(let t of e.items){let n=t.id.toLowerCase(),r=t.label.toLowerCase();if(n==="toolfamily"||n==="tool_family"||n==="tool"||r==="tool family")return t.value??null}return null}function Bo(e){if(!e)return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function Re(e,t){let n=En(t);return n?new RegExp(`(?:^|[^a-z0-9_])${Rd(n)}(?:$|[^a-z0-9_])`).test(e):!1}function Sn(e,t){return new RegExp(`(?:^|[^a-z0-9_])${Rd(t)}(?:$|[^a-z0-9_])`).test(e)}function Rd(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function yy(e){return M(e,Mh)}function Sy(e){let t=new Set,n=[];for(let r of e){let i=`${r.kind}:${r.target??""}`;t.has(i)||(t.add(i),n.push(r))}return n}function by(e){switch(e){case"approval":return"approval_request";case"choice":return"question_request";case"form":return"form_request"}}function vy(e){switch(e){case"approval":return"permission_request";case"choice":case"form":return"question_request"}}function ky(e,t){switch(e){case"approval":return t==="high"?"A high-risk action needs explicit operator approval.":"Approval is required before work can continue.";case"choice":return"A decision is required before work can continue.";case"form":return"Additional input is required before work can continue."}}function vt(e,t){if(t?.wasCancelled)return"Work was cancelled and may need review.";switch(e){case"failed":return"Work has failed and should be reviewed.";case"blocked":return"Work is blocked and may require operator attention.";case"running":case"waiting":case"completed":return t?.impliedAsk?"Status text implies the operator may need to respond.":void 0}}function zt(e,t){if(t?.wasCancelled)return["task cancellation is an explicit lifecycle fact"];switch(e){case"failed":return["task status explicitly indicates failure"];case"blocked":return["task status explicitly indicates blocked work"];case"running":case"waiting":case"completed":return t?.impliedAsk?["status wording suggests an implied operator request"]:["task update carries a non-blocking lifecycle status"]}}function id(e){switch(e){case"task_started":return["task start is an explicit lifecycle fact"];case"completion":return["task completion is an explicit lifecycle fact"]}}function Td(e){let t=Iy(e);return _y(t,e.semanticHints)}function Iy(e){switch(e.type){case"task.started":return{intentFrame:"task_started",activityClass:"session_status",consequence:"low",factors:["task.started"],relationHints:[],confidence:"high",reasons:id("task_started"),provenance:re(["intentFrame","activityClass","consequence","confidence"])};case"task.updated":return Ey(e);case"human.input.requested":return wy(e);case"task.completed":return{intentFrame:"completion",activityClass:"tool_completion",consequence:"low",factors:["task.completed"],relationHints:[],confidence:"high",reasons:id("completion"),provenance:re(["intentFrame","activityClass","consequence","confidence"])};case"task.cancelled":return{intentFrame:"cancellation",activityClass:"status_update",consequence:"low",...e.reason?{whyNow:vt("completed",{wasCancelled:!0})??"Work was cancelled and may need review."}:{},factors:["task.cancelled"],relationHints:[],confidence:"high",reasons:zt("completed",{wasCancelled:!0}),provenance:{...re(["intentFrame","activityClass","consequence","confidence"]),...e.reason?re(["whyNow"]):{}}};default:return xy(e)}}function Ey(e){let t=En(`${e.title} ${e.summary??""}`),n=ry(t),r=sy(t),i=Ed(t),o=Od(e.title,e.summary,e.toolFamily,e.context),{toolFamily:a,source:c}=Pd(o,!0),u=i.length>0?re(["relationHints"]):{},d=e.status==="failed"&&iy(t,a),m=e.status==="failed"&&oy(t,a),f=e.status==="failed"&&ay(t,a);switch(e.status){case"failed":return d?{intentFrame:"status_update",activityClass:"status_update",...a?{toolFamily:a}:{},consequence:yn(t,m?"low":"high",a),factors:["task.updated","failed","observational_failure"],relationHints:i,confidence:"high",reasons:["task status indicates failure but the update reads like observational output"],provenance:{...re(["intentFrame","activityClass","consequence","confidence"]),...bn(c),...u}}:{intentFrame:"failure",activityClass:"tool_failure",...a?{toolFamily:a}:{},consequence:yn(t,m?"low":f?"medium":"high",a),whyNow:vt("failed")??"Work has failed and should be reviewed.",factors:["task.updated","failed"],relationHints:i,confidence:n?"medium":"high",reasons:f?[...zt("failed",{impliedAsk:n}),"failure content looks like expected diagnostic output from repro work"]:zt("failed",{impliedAsk:n}),provenance:{...re(["intentFrame","activityClass","consequence","whyNow","confidence"]),...bn(c),...u}};case"blocked":return{intentFrame:"blocked_work",activityClass:"status_update",...a?{toolFamily:a}:{},consequence:yn(t,"medium",a),whyNow:vt("blocked")??"Work is blocked and may require operator attention.",factors:["task.updated","blocked"],relationHints:i,confidence:n?"medium":"high",reasons:zt("blocked",{impliedAsk:n}),provenance:{...re(["intentFrame","activityClass","consequence","whyNow","confidence"]),...bn(c),...u}};case"running":case"waiting":case"completed":return{intentFrame:r==="blocking"?"blocked_work":"status_update",activityClass:"status_update",...a?{toolFamily:a}:{},consequence:yn(t,"low",a),...(()=>{let g=r==="blocking"?vt("blocked"):n?vt(e.status,{impliedAsk:n}):void 0;return g!==void 0?{whyNow:g}:{}})(),factors:["task.updated",e.status,...r==="blocking"?["semantic blocking signal"]:[]],relationHints:i,confidence:r==="blocking"?"medium":n?"low":"high",reasons:r==="blocking"?[...zt("blocked"),"status wording indicates work cannot continue yet"]:zt(e.status,{impliedAsk:n}),provenance:{...re(["intentFrame","activityClass","consequence","confidence"]),...bn(c),...r==="blocking"||n?re(["whyNow"]):{},...u}};default:return Cy(e.status)}}function wy(e){let t=Od(e.title,e.summary,e.toolFamily,e.context),{toolFamily:n,source:r}=Pd(t,e.request.kind==="approval"),i=En(`${e.title} ${e.summary}`),o=Ed(i),a=e.riskHint??Ty(e.request.kind,n),c=yn(i,a,n),u=o.length>0?re(["relationHints"]):{};return{intentFrame:by(e.request.kind),activityClass:vy(e.request.kind),...n?{toolFamily:n}:{},consequence:c,whyNow:ky(e.request.kind,c),factors:["human.input.requested",e.request.kind],relationHints:o,confidence:e.riskHint?"high":e.request.kind==="approval"&&n?"medium":"low",reasons:[e.riskHint?"source provided an explicit risk hint":"request kind establishes an explicit operator decision point",...r==="explicit"?["tool family was supplied by the source or context"]:r==="inferred"?["tool family was inferred from approval wording"]:[]],provenance:{...re(["intentFrame","activityClass","whyNow"]),...bn(r),...e.riskHint?xd(["consequence","confidence"]):re(["consequence","confidence"]),...u}}}function re(e){return Cd(e,"inferred")}function xd(e){return Cd(e,"source")}function Cd(e,t){return Object.fromEntries(e.map(n=>[n,t]))}function bn(e){switch(e){case"explicit":return xd(["toolFamily"]);case"inferred":return re(["toolFamily"]);case"none":return{};default:return Oy(e)}}function Pd(e,t){let n=ca(e);if(n)return{toolFamily:n,source:"explicit"};if(!t)return{source:"none"};let r=Id(e);return r?{toolFamily:r,source:"inferred"}:{source:"none"}}function _y(e,t){return t?{...e,...Ry(t),factors:Jo([...e.factors??[],...t.factors??[]]),relationHints:[...t.relationHints??e.relationHints],reasons:Jo([...e.reasons??[],...t.reasons??[]]),provenance:{...e.provenance??{},...Ay(t)}}:e}function Ay(e){return{...e.intentFrame!==void 0?{intentFrame:"hint"}:{},...e.activityClass!==void 0?{activityClass:"hint"}:{},...e.toolFamily!==void 0?{toolFamily:"hint"}:{},...e.consequence!==void 0?{consequence:"hint"}:{},...e.whyNow!==void 0?{whyNow:"hint"}:{},...e.relationHints!==void 0?{relationHints:"hint"}:{},...e.confidence!==void 0?{confidence:"hint"}:{},...e.abstained!==void 0?{abstained:"hint"}:{}}}function Ry(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&n!=="factors"&&n!=="relationHints"&&n!=="reasons"&&(t[n]=r);return t}function Ty(e,t){switch(e){case"approval":return t==="read"||t==="search"?"low":"medium";case"choice":case"form":return"medium";default:return Py(e)}}function Od(e,t,n,r){return{title:e,...t!==void 0?{summary:t}:{},...n!==void 0?{toolFamily:n}:{},...r?.items!==void 0?{context:{items:r.items}}:{}}}function xy(e){throw new Error(`Unhandled source event in semantic interpreter: ${JSON.stringify(e)}`)}function Cy(e){throw new Error(`Unhandled task status in semantic interpreter: ${e}`)}function Py(e){throw new Error(`Unhandled human input request kind in semantic interpreter: ${e}`)}function Oy(e){throw new Error(`Unhandled tool family provenance source in semantic interpreter: ${e}`)}function la(e,t){return{ask:Ny(e,t),activity:Ly(e,t),...t.consequence!==void 0?{consequence:t.consequence}:{},blocking:My(e,t),episode:Dy(e,t),confidence:t.confidence,source:Uy(e,t)}}function Ny(e,t){switch(e.type){case"human.input.requested":return e.request.kind;case"task.started":case"task.completed":case"task.cancelled":return"none";case"task.updated":return t.intentFrame==="approval_request"||t.activityClass==="permission_request"?"approval":t.intentFrame==="form_request"?"form":t.intentFrame==="question_request"||t.activityClass==="question_request"?"choice":"status";default:return xr(e)}}function Ly(e,t){switch(e.type){case"human.input.requested":return e.request.kind==="approval"?"decision_request":"question";case"task.completed":case"task.cancelled":return"task_completion";case"task.updated":return t.intentFrame==="approval_request"||t.activityClass==="permission_request"?"decision_request":t.intentFrame==="question_request"||t.intentFrame==="form_request"||t.activityClass==="question_request"?"question":e.status==="failed"||t.intentFrame==="failure"?"failure":e.status==="completed"?"task_completion":"task_progress";case"task.started":return"background_work";default:return xr(e)}}function My(e,t){switch(e.type){case"human.input.requested":return"blocking";case"task.started":case"task.completed":case"task.cancelled":return"non_blocking";case"task.updated":return e.status==="blocked"||t.intentFrame==="blocked_work"?"blocking":e.status==="waiting"||t.intentFrame==="approval_request"||t.intentFrame==="question_request"||t.intentFrame==="form_request"?"waiting":"non_blocking";default:return xr(e)}}function Dy(e,t){let n=new Set(t.relationHints.map(r=>r.kind));return n.has("resolves")?"resolved":n.has("same_issue")&&Fy(t.relationHints)?"resurfaced":n.has("same_issue")?"same_issue":e.type==="human.input.requested"||e.type==="task.started"?"new":"unknown"}function Fy(e){return e.some(t=>t.kind==="repeats"||t.kind==="escalates"||t.kind==="supersedes")}function Uy(e,t){let n=Object.values(t.provenance??{});return n.includes("hint")?"hinted":jy(e,t)?e.type==="task.updated"&&t.intentFrame==="status_update"&&t.confidence==="low"&&t.provenance?.confidence==="inferred"?"inferred":"explicit":n.includes("source")?"explicit":n.includes("inferred")?"inferred":"explicit"}function jy(e,t){switch(e.type){case"human.input.requested":return!0;case"task.started":case"task.completed":case"task.cancelled":return!0;case"task.updated":switch(e.status){case"blocked":return t.intentFrame==="blocked_work";case"failed":return t.intentFrame==="failure"||t.intentFrame==="status_update";case"completed":return t.intentFrame==="completion"||t.intentFrame==="status_update";case"running":case"waiting":return t.intentFrame==="status_update";default:return qy(e.status)}default:return xr(e)}}function xr(e){throw new Error(`Unhandled semantic ontology event: ${JSON.stringify(e)}`)}function qy(e){throw new Error(`Unhandled task status in semantic ontology: ${e}`)}function Hy(e){if(!e.semantic)return{blockedLikeStatus:!1};let t=la(e,e.semantic),n=e.semantic.abstained===!0;return{ontology:t,semanticEvidence:{confidence:t.confidence,source:t.source,strength:Fd(t.confidence,t.source,n),abstained:n},...e.semantic.relationHints.length>0?{relationEvidence:{source:Ud(e.semantic),strength:Ky(e.semantic,n)}}:{},blockedLikeStatus:e.type==="task.updated"&&t.blocking==="blocking"&&e.status!=="blocked"}}function Nd(e){return Tt(e)?.strength??null}function Tt(e){return e.judgmentInput.semanticEvidence??null}function $y(e){return e.judgmentInput.relationEvidence??null}function Ld(e){return $y(e)?.strength??null}function Md(e){return e.judgmentInput.ontology??null}function kr(e){return Tt(e)?.confidence??null}function Ir(e){return Tt(e)?.abstained===!0}function By(e){return kr(e)==="low"}function Vy(e){let t=Nd(e),n=Tt(e)?.source;if(!t||!n)return 0;if(n==="inferred")switch(t){case"weak":return-2;case"qualified":return-1;case"strong":return 0}return(n==="explicit"||n==="hinted")&&t==="strong"?1:0}function da(e){return e.judgmentInput.blockedLikeStatus}function Dd(e,t){return t==="ambient"&&da(e)?"queue":t}function Fd(e,t,n){if(n)return"weak";switch(e){case"low":return"weak";case"medium":return t==="inferred"?"weak":"qualified";case"high":return t==="inferred"?"qualified":"strong"}}function Ud(e){switch(e.provenance?.relationHints){case"source":return"explicit";case"hint":return"hinted";case"inferred":return"inferred";default:return"inferred"}}function Ky(e,t){switch(Ud(e)){case"explicit":return"strong";case"hinted":return t?"weak":"qualified";case"inferred":return Fd(e.confidence,"inferred",t)}}var Wy=1,Ze=Wy,V={ambiguity:{nonBlockingActivationThreshold:180,promotionMargin:20},attentionValue:{memorySufficiency:{toolFamilyPresentations:3,toolFamilyResponses:3,consequenceReviewedCount:4},responseAffinity:{fastLatencyMs:2e3,mediumLatencyMs:5e3,fastBoost:8,mediumBoost:4},consequenceCalibration:{highRejectionRate:.5,mediumRejectionRate:.25,adjustments:{low:{highRate:8,mediumRate:4},medium:{highRate:4,mediumRate:2},high:{highRate:-4,mediumRate:-2}}},contextCost:{highRate:.6,mediumRate:.3,highPenalty:-6,mediumPenalty:-3},deferralAffinity:{highRate:.6,mediumRate:.3,highBoost:6,mediumBoost:3}},queuePlanner:{minimumDwellMs:3e4,streamContinuityMargin:20,conflictingInterruptMargin:10,statusBurstWindowMs:6e4,urgentBacklogWindowMs:9e4,deferredEscalationThreshold:3,returnedEscalationThreshold:2,escalationScoreSlack:10,highContextQueueMargin:8,mediumContextQueueMargin:4,actionableEpisodeEvidenceThreshold:4,actionableEpisodeScoreSlack:15},pressureForecast:{freshness:{demandMs:2e4,residualMs:12e4},visibleInterruptiveBoost:{elevatedCount:1,highCount:2},recentDemand:{elevatedCount:5,highCount:8},responseLatencyMs:{elevated:8e3,high:15e3},deferredPressure:{elevatedSuppressedCount:1,highSuppressedCount:2,elevatedDeferredCount:2,highDeferredCount:4},slowClearance:{presentedCount:4,responseRate:.3},scoreBands:{elevatedLevel:2,highLevel:5,risingRisk:3,highRisk:6}},attentionBudget:{thresholdOffset:{elevated:6,high:12},recentDecisions:{elevatedCount:4,highCount:8},responseLatencyMs:{elevated:8e3,high:15e3},deferredCount:{elevated:2,high:4},interruptiveVisible:{elevated:1,high:2},scoreBands:{elevatedScore:2,highScore:5}},episodeEvidence:{blockingBoost:4,recurringEpisodeBoost:1,persistentEpisodeBoost:1,highSignalBoost:2,multiModeBoost:1,stackingBoost:1,relationRepeatBoost:1,relationEscalationBoost:2,actionableThreshold:4,staleAfterMs:15*6e4}};function jd(e,t){return(e??[]).some(n=>n.kind===t)}function zy(e){return(e??[]).find(n=>typeof n.target=="string"&&n.target.length>0)?.target??null}function Cr(e=Date.now){return{nowMs:()=>e(),nowIso:()=>Zt(e()),parse:kn,add:Gy,diff:pa}}function kn(e){let t=Date.parse(e);return Number.isNaN(t)?null:t}function Zt(e){return new Date(e).toISOString()}function Gy(e,t){let n=kn(e);return n===null?null:Zt(n+t)}function pa(e,t){let n=kn(e),r=kn(t);return n===null||r===null?null:n-r}var Ie=V.episodeEvidence,Zy=1440*6e4,Yy=1024,Jy=class{byKey=new Map;byId=new Map;byInteractionId=new Map;nextSequenceByKey=new Map;clock;dormantRetentionMs;maxDormantEpisodes;latestObservedAtMs=null;prunedRecords=0;constructor(e={}){this.clock=e.clock??Cr(),this.dormantRetentionMs=e.dormantRetentionMs??Zy,this.maxDormantEpisodes=e.maxDormantEpisodes??Yy}assign(e){let t=this.clock.parse(e.timestamp);t!==null&&(this.latestObservedAtMs===null||t>this.latestObservedAtMs)&&(this.latestObservedAtMs=t);let n=Xy(e),r=this.byInteractionId.get(e.interactionId),i=r?this.byId.get(r):void 0,o=i?null:this.byKey.get(n),a=i??this.resolveAssignableRecord(n,o,e),c=this.evolveRecord(a,e);return this.byKey.set(c.key,c),this.byId.set(c.id,c),this.byInteractionId.set(e.interactionId,c.id),this.pruneDormantRecords(),{...e,episodeId:c.id,episodeKey:c.key,episodeState:c.state,episodeSize:c.size,episodeEvidenceScore:c.evidenceScore,episodeEvidenceReasons:[...c.evidenceReasons]}}resolveInteraction(e){let t=this.byInteractionId.get(e);if(!t)return;let n=this.byId.get(t);if(n){this.byKey.get(n.key)?.id===n.id&&this.byKey.delete(n.key),this.byId.delete(n.id);for(let r of n.interactions)this.byInteractionId.delete(r)}}readFrameEpisode(e){if(!e)return null;let t=e.metadata?.episode;if(!t||typeof t!="object")return null;let n=Gt(t,"id"),r=Gt(t,"key"),i=Hd(t,"state"),o=od(t,"size"),a=od(t,"evidenceScore")??0,c=sS(t,"evidenceReasons"),u=Gt(t,"lastInteractionId"),d=Gt(t,"updatedAt");return!n||!r||!i||o===null||!u||!d?null:{id:n,key:r,state:i,size:o,evidenceScore:a,evidenceReasons:c,lastInteractionId:u,updatedAt:d}}stats(){let e=0,t=0,n=null;for(let r of this.byId.values())this.isActiveRecord(r)?e+=1:t+=1,(n===null||r.updatedAt>n)&&(n=r.updatedAt);return{activeRecords:e,dormantRecords:t,retainedRecords:this.byId.size,boundInteractions:this.byInteractionId.size,dormantRetentionMs:this.dormantRetentionMs,maxDormantRecords:this.maxDormantEpisodes,prunedRecords:this.prunedRecords,latestEpisodeAt:n}}createRecord(e,t){let n=(this.nextSequenceByKey.get(e)??0)+1;this.nextSequenceByKey.set(e,n);let r=qd(t)?(t.relationHints??[]).map(i=>i.kind):[];return{id:`episode:${e}:${n}`,key:e,state:t.blocking?"actionable":"emerging",size:0,evidenceScore:t.blocking?Ie.blockingBoost:0,evidenceReasons:t.blocking?["operator-facing work makes this episode immediately actionable"]:[],lastInteractionId:t.interactionId,updatedAt:t.timestamp,interactions:new Set,modes:new Set([t.mode]),highSignals:t.consequence==="high"||t.tone==="critical"?1:0,blockingSignals:t.blocking?1:0,relationKinds:new Set(r)}}resolveAssignableRecord(e,t,n){if(!t)return this.createRecord(e,n);if(this.shouldRollEpisode(t,n.timestamp)){let r={...t,state:"stale"};return this.byId.set(r.id,r),this.createRecord(e,n)}return t}shouldRollEpisode(e,t){if(Ue(e.state))return!0;let n=this.clock.parse(e.updatedAt),r=this.clock.parse(t);return n===null||r===null?!1:r-n>=Ie.staleAfterMs}evolveRecord(e,t){let n=new Set(e.interactions);n.add(t.interactionId);let r=new Set(e.modes);r.add(t.mode);let i=nS(e.relationKinds,t),o={...e,lastInteractionId:t.interactionId,updatedAt:t.timestamp,size:n.size,interactions:n,modes:r,relationKinds:i,blockingSignals:e.blockingSignals+(t.blocking?1:0),highSignals:e.highSignals+(t.consequence==="high"||t.tone==="critical"?1:0)},a=tS(o,t);return{...o,evidenceScore:a.score,evidenceReasons:a.reasons,state:eS(e.state,t,o,a.score)}}pruneDormantRecords(){let e=[...this.byId.values()].filter(r=>!this.isActiveRecord(r));if(this.latestObservedAtMs!==null)for(let r of e){let i=this.clock.parse(r.updatedAt);i!==null&&this.latestObservedAtMs-i>this.dormantRetentionMs&&this.deleteRecord(r)}let t=[...this.byId.values()].filter(r=>!this.isActiveRecord(r)).sort((r,i)=>r.updatedAt.localeCompare(i.updatedAt));if(t.length<=this.maxDormantEpisodes)return;let n=t.length-this.maxDormantEpisodes;for(let r of t.slice(0,n))this.deleteRecord(r)}isActiveRecord(e){return this.byKey.get(e.key)?.id===e.id&&!Ue(e.state)}deleteRecord(e){this.byKey.get(e.key)?.id===e.id&&this.byKey.delete(e.key),this.byId.delete(e.id);for(let t of e.interactions)this.byInteractionId.get(t)===e.id&&this.byInteractionId.delete(t);this.prunedRecords+=1}};function Xy(e){let t=e.source?.kind??e.source?.id??"unknown",n=Qy(e),r=e.blocking?"interruptive":"status";return rS([t,r,n].join(":"))}function It(e){return e?Gt(e.metadata?.episode,"id"):null}function Et(e){return e?Hd(e.metadata?.episode,"state"):null}function Ue(e){return e==="stale"||e==="resolved"}function Qy(e){let t=zy(e.relationHints);if(t)return t;let r=(e.context?.items??[]).find(o=>{let a=o.id.toLowerCase(),c=o.label.toLowerCase();return a.includes("file")||a==="path"||a.includes("issue")||a==="command"||c.includes("file")||c.includes("path")||c.includes("issue")||c.includes("command")});if(r?.value)return r.value;let i=e.summary??e.title;return i.length>0?i:e.taskId}function eS(e,t,n,r){return t.blocking||r>=Ie.actionableThreshold?"actionable":e==="actionable"?"waiting":n.size>=2?"batched":"emerging"}function tS(e,t){let n=0,r=[];return t.blocking&&(n+=Ie.blockingBoost,r.push("operator-facing work makes this episode immediately actionable")),e.size>=2&&(n+=Ie.recurringEpisodeBoost,r.push("multiple related interactions have accumulated in this episode")),e.size>=3&&(n+=Ie.persistentEpisodeBoost,r.push("the same episode keeps recurring without resolution")),e.highSignals>=1&&(n+=Ie.highSignalBoost,r.push("at least one related interaction carried high consequence or critical tone")),e.modes.size>=2&&(n+=Ie.multiModeBoost,r.push("related work has spread across multiple interaction modes")),e.highSignals>=1&&e.size>=2&&(n+=Ie.stackingBoost,r.push("high-signal evidence is stacking up across the episode")),e.relationKinds.has("repeats")&&(n+=Ie.relationRepeatBoost,r.push("semantic relation hints indicate this issue is recurring")),e.relationKinds.has("escalates")&&(n+=Ie.relationEscalationBoost,r.push("semantic relation hints indicate this issue is escalating")),{score:n,reasons:r}}function nS(e,t){let n=new Set(e);if(!qd(t))return n;for(let r of t.relationHints??[])n.add(r.kind);return n}function rS(e){return e.toLowerCase().replace(/[^a-z0-9:/._-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,120)}function qd(e){let t=Ld(e);return t===null||t!=="weak"}function Gt(e,t){if(!e||typeof e!="object"||!(t in e))return null;let n=e[t];return typeof n=="string"&&n.length>0?n:null}function od(e,t){if(!e||typeof e!="object"||!(t in e))return null;let n=e[t];return typeof n=="number"?n:null}function Hd(e,t){let n=Gt(e,t);switch(n){case"emerging":case"actionable":case"batched":case"waiting":case"stale":case"resolved":return n;default:return null}}function sS(e,t){if(!e||typeof e!="object"||!(t in e))return[];let n=e[t];return Array.isArray(n)?n.filter(r=>typeof r=="string"&&r.length>0):[]}function ma(e={}){let t=e.base,n=e.semantic,r=t?.whyNow??n?.whyNow??e.fallbackWhyNow,i=Jo([...t?.factors??[],...n?.factors??[],...e.extraFactors??[]]);if(!(t===void 0&&r===void 0&&i.length===0))return{...t??{},...r!==void 0?{whyNow:r}:{},...i.length>0?{factors:i}:{}}}var iS=class{evaluate(e){switch(e.type){case"task.started":return{kind:"candidate",candidate:{taskId:e.taskId,interactionId:`interaction:${e.taskId}:status`,...e.source!==void 0?{source:e.source}:{},mode:"status",tone:"ambient",consequence:"low",title:e.title,responseSpec:{kind:"none"},priority:"background",blocking:!1,timestamp:e.timestamp,...e.summary!==void 0?{summary:e.summary}:{},...Vo(e)}};case"task.updated":return{kind:"candidate",candidate:this.evaluateTaskUpdate(e)};case"human.input.requested":return{kind:"candidate",candidate:this.evaluateHumanInput(e)};case"task.completed":case"task.cancelled":return{kind:"clear",taskId:e.taskId};default:return cS(e)}}evaluateTaskUpdate(e){let t=this.priorityForStatus(e.status),n=this.toneForStatus(e.status),r=this.consequenceForStatus(e.status),i=this.responseSpecForStatus(e.status);return{taskId:e.taskId,interactionId:`interaction:${e.taskId}:status`,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},mode:"status",tone:n,consequence:r,title:e.title,responseSpec:i,priority:t,blocking:!1,timestamp:e.timestamp,...e.summary!==void 0?{summary:e.summary}:{},...e.semantic?.relationHints?.length?{relationHints:e.semantic.relationHints}:{},...Vo(e),...oS(e),...aS(e)}}evaluateHumanInput(e){let t=this.createActions(e),n=this.createResponseSpec(e,t),r=e.request.kind==="approval"?e.toolFamily:void 0;return{taskId:e.taskId,interactionId:e.interactionId,...e.source!==void 0?{source:e.source}:{},...r!==void 0?{toolFamily:r}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},mode:e.request.kind,tone:e.tone??"focused",consequence:e.consequence??"medium",title:e.title,summary:e.summary,...e.semantic?.relationHints?.length?{relationHints:e.semantic.relationHints}:{},responseSpec:n,priority:this.priorityForHumanInput(e),blocking:!0,timestamp:e.timestamp,...Vo(e),...e.context!==void 0?{context:e.context}:{},...(()=>{let i=ma({base:e.provenance,semantic:e.semantic});return i!==void 0?{provenance:i}:{}})()}}priorityForHumanInput(e){return e.request.kind==="approval"&&e.consequence==="low"?"normal":"high"}createActions(e){switch(e.request.kind){case"approval":return[{id:"approve",label:"Approve",kind:"approve",emphasis:"primary"},{id:"reject",label:"Reject",kind:"reject",emphasis:"danger"}];case"choice":case"form":return[{id:"submit",label:"Continue",kind:"submit",emphasis:"primary"},{id:"cancel",label:"Cancel",kind:"cancel",emphasis:"secondary"}];default:return ad(e.request)}}createResponseSpec(e,t){switch(e.request.kind){case"approval":return e.request.requireReason!==void 0?{kind:"approval",actions:t,requireReason:e.request.requireReason}:{kind:"approval",actions:t};case"choice":return{kind:"choice",selectionMode:e.request.selectionMode,...e.request.allowTextResponse!==void 0?{allowTextResponse:e.request.allowTextResponse}:{},options:e.request.options,actions:t};case"form":return{kind:"form",fields:e.request.fields,actions:t};default:return ad(e.request)}}responseSpecForStatus(e){switch(e){case"blocked":case"failed":return{kind:"acknowledge",actions:[{id:"acknowledge",label:"Acknowledge",kind:"acknowledge",emphasis:"primary"}]};case"running":case"waiting":case"completed":return{kind:"none"};default:return hr(e)}}priorityForStatus(e){switch(e){case"blocked":return"normal";case"failed":return"high";case"running":case"waiting":case"completed":return"background";default:return hr(e)}}toneForStatus(e){switch(e){case"blocked":return"focused";case"failed":return"critical";case"running":case"waiting":case"completed":return"ambient";default:return hr(e)}}consequenceForStatus(e){switch(e){case"blocked":return"medium";case"failed":return"high";case"running":case"waiting":case"completed":return"low";default:return hr(e)}}};function oS(e){let t=e.context,n=t?.items,r=n!==void 0&&n.length>0;return e.progress===void 0&&t?.stage===void 0&&!r?{}:{context:{...t?.stage!==void 0?{stage:t.stage}:{},...e.progress!==void 0?{progress:e.progress}:{},...r?{items:n}:{}}}}function aS(e){let t=ma({semantic:e.semantic,fallbackWhyNow:e.status==="blocked"?vt("blocked"):e.status==="failed"?vt("failed"):void 0,extraFactors:e.status==="blocked"||e.status==="failed"?[e.status]:[]});return t===void 0?{}:{provenance:t}}function Vo(e){return{judgmentInput:Hy(e)}}function cS(e){throw new Error(`Unhandled ApertureEvent in event evaluator: ${JSON.stringify(e)}`)}function ad(e){throw new Error(`Unhandled human input request in event evaluator: ${JSON.stringify(e)}`)}function hr(e){throw new Error(`Unhandled task status in event evaluator: ${e}`)}var uS=class{plan(e,t){let n=t?.interactionId===e.interactionId,r=t?.metadata?.attention,i={...r&&typeof r=="object"?r:{},score:yh(e),scoreOffset:e.attentionScoreOffset??0,rationale:e.attentionRationale??[]},o=t?.metadata?.episode,a=e.toolFamily??(typeof t?.metadata?.toolFamily=="string"?t.metadata.toolFamily:void 0),c=e.episodeId?{...o&&typeof o=="object"?o:{},id:e.episodeId,key:e.episodeKey,state:e.episodeState,size:e.episodeSize??1,evidenceScore:e.episodeEvidenceScore??0,evidenceReasons:e.episodeEvidenceReasons??[],lastInteractionId:e.interactionId,updatedAt:e.timestamp}:o,u=t?.metadata?.semantic,d=e.relationHints?.length?{...u&&typeof u=="object"?u:{},relationHints:e.relationHints}:u;return{id:n?t.id:`frame:${e.interactionId}`,taskId:e.taskId,interactionId:e.interactionId,...e.source!==void 0?{source:e.source}:{},version:(t?.version??0)+1,mode:e.mode,tone:e.tone,consequence:e.consequence,title:e.title,responseSpec:e.responseSpec,timing:{createdAt:t?.timing.createdAt??e.timestamp,updatedAt:e.timestamp},metadata:{...t?.metadata??{},attention:i,...a!==void 0?{toolFamily:a}:{},...d?{semantic:d}:{},...c?{episode:c}:{}},...e.summary!==void 0?{summary:e.summary}:{},...e.context!==void 0?{context:e.context}:{},...e.provenance!==void 0?{provenance:e.provenance}:{}}}},lS=1800*1e3,cd=256,dS=1440*6e4,pS=1024,mS=class{byTaskId=new Map;clock;taskRetentionMs;maxTrackedTasks;latestObservedAtMs=null;prunedTasks=0;constructor(e={}){this.clock=e.clock??Cr(),this.taskRetentionMs=e.taskRetentionMs??dS,this.maxTrackedTasks=e.maxTrackedTasks??pS}record(e){let n=[...this.byTaskId.get(e.taskId)??[],e];this.byTaskId.set(e.taskId,n.length>cd?n.slice(-cd):n);let r=this.clock.parse(e.timestamp);r!==null&&(this.latestObservedAtMs===null||r>this.latestObservedAtMs)&&(this.latestObservedAtMs=r),this.prune()}list(e){return e!==void 0?[...this.byTaskId.get(e)??[]]:[...this.byTaskId.values()].flat().sort((t,n)=>t.timestamp.localeCompare(n.timestamp))}summarize(e){return $d(this.list(e),this.clock)}stats(){let e=0,t=null,n=null;for(let r of this.byTaskId.values()){e+=r.length;let i=r[0]?.timestamp??null,o=r[r.length-1]?.timestamp??null;i&&(t===null||i<t)&&(t=i),o&&(n===null||o>n)&&(n=o)}return{taskCount:this.byTaskId.size,signalCount:e,oldestSignalAt:t,latestSignalAt:n,taskRetentionMs:this.taskRetentionMs,maxTrackedTasks:this.maxTrackedTasks,prunedTasks:this.prunedTasks}}prune(){if(this.latestObservedAtMs!==null)for(let[n,r]of this.byTaskId.entries()){let i=r[r.length-1],o=i?this.clock.parse(i.timestamp):null;o!==null&&this.latestObservedAtMs-o>this.taskRetentionMs&&(this.byTaskId.delete(n),this.prunedTasks+=1)}if(this.byTaskId.size<=this.maxTrackedTasks)return;let e=this.byTaskId.size-this.maxTrackedTasks,t=[...this.byTaskId.entries()].map(([n,r])=>({taskId:n,latestAt:r[r.length-1]?.timestamp??""})).sort((n,r)=>n.latestAt.localeCompare(r.latestAt)).slice(0,e);for(let n of t)this.byTaskId.delete(n.taskId),this.prunedTasks+=1}};function $d(e,t=Cr()){let n=fS(e,t),r={presented:0,viewed:0,responded:0,dismissed:0,deferred:0,contextExpanded:0,contextSkipped:0,timedOut:0,returned:0,attentionShifted:0},i={next:0,suppressed:0,manual:0},o=0,a=0,c=0,u=0;for(let d of n)switch(d.kind){case"presented":r.presented+=1;break;case"viewed":r.viewed+=1;break;case"responded":r.responded+=1,d.latencyMs!==void 0&&(o+=d.latencyMs,a+=1);break;case"dismissed":r.dismissed+=1,d.latencyMs!==void 0&&(c+=d.latencyMs,u+=1);break;case"deferred":r.deferred+=1,d.reason!==void 0&&(i[d.reason]+=1);break;case"context_expanded":r.contextExpanded+=1;break;case"context_skipped":r.contextSkipped+=1;break;case"timed_out":r.timedOut+=1;break;case"returned":r.returned+=1;break;case"attention_shifted":r.attentionShifted+=1;break}return{recentSignals:n.length,lifetimeSignals:e.length,counts:r,deferred:i,responseRate:r.presented>0?r.responded/r.presented:0,dismissalRate:r.presented>0?r.dismissed/r.presented:0,averageResponseLatencyMs:a>0?Math.round(o/a):null,averageDismissalLatencyMs:u>0?Math.round(c/u):null,lastSignalAt:e.length>0?e[e.length-1]?.timestamp??null:null}}function fS(e,t){let n=e.slice(-32),r=n[n.length-1]?.timestamp;if(r===void 0)return n;let i=t.parse(r);if(i===null)return n;let o=n.filter(a=>{let c=t.parse(a.timestamp);return c===null?!0:i-c<=lS});return o.length>0?o:n}function Xo(e){return ca(e)}function gS(e){return Id(e)}function fa(e){return e.mode==="status"?Xo(e):e.mode!=="approval"||e.activityClass!==void 0&&e.activityClass!=="permission_request"?null:gS(e)}function Er(e){return e?e.kind??e.id:null}function Bd(e,t,n){let r=yS(e,t),i=SS(e,t),o=bS(e,t);return{...e,version:Ze,updatedAt:n,sessionCount:e.sessionCount+1,...Object.keys(r).length>0?{toolFamilies:r}:{},...Object.keys(i).length>0?{sourceTrust:i}:{},...Object.keys(o).length>0?{consequenceProfiles:o}:{}}}function wn(e){let t={consequence:e.consequence},n=Vd(e);n&&(t.toolFamily=n);let r=Er(e.source);r&&(t.sourceKey=r);let i=e.metadata?.episode;return i&&typeof i=="object"&&!Array.isArray(i)&&(t.episode=i),t}function hS(e){let t={consequence:e.consequence},n=Vd(e);n&&(t.toolFamily=n);let r=Er(e.source);return r&&(t.sourceKey=r),t}function Vd(e){return fa(e)}function yS(e,t){let n={...e.toolFamilies??{}},r=new Map,i=new Map;for(let o of t){let a=wr(o.metadata,"toolFamily");if(!a)continue;let c=`${a}::${o.interactionId}`,u=i.get(c)??{toolFamily:a,presented:!1,responded:!1,dismissed:!1,contextExpanded:!1,deferred:!1,returned:!1};switch(o.kind){case"presented":u.presented=!0;break;case"responded":u.responded=!0,u.dismissed=!1,o.latencyMs!==void 0&&(u.responseLatencyMs=o.latencyMs);break;case"dismissed":u.responded||(u.dismissed=!0,o.latencyMs!==void 0&&(u.dismissalLatencyMs=o.latencyMs));break;case"context_expanded":u.contextExpanded=!0;break;case"deferred":u.deferred=!0;break;case"returned":u.returned=!0;break}i.set(c,u)}for(let o of i.values()){let a=r.get(o.toolFamily)??{presentations:0,responses:0,dismissals:0,responseLatencyTotal:0,responseLatencyCount:0,dismissalLatencyTotal:0,dismissalLatencyCount:0,contextExpanded:0,deferrals:0,returns:0};(o.presented||o.responded||o.dismissed)&&(a.presentations+=1),o.responded?(a.responses+=1,o.responseLatencyMs!==void 0&&(a.responseLatencyTotal+=o.responseLatencyMs,a.responseLatencyCount+=1)):o.dismissed&&(a.dismissals+=1,o.dismissalLatencyMs!==void 0&&(a.dismissalLatencyTotal+=o.dismissalLatencyMs,a.dismissalLatencyCount+=1)),o.contextExpanded&&(a.contextExpanded+=1),o.deferred&&(a.deferrals+=1,o.returned&&(a.returns+=1)),r.set(o.toolFamily,a)}for(let[o,a]of r.entries()){let c=n[o]??{presentations:0,responses:0,dismissals:0},u=c.presentations+a.presentations,d=c.responses+a.responses,m=c.dismissals+a.dismissals,f=a.responseLatencyCount>0?a.responseLatencyTotal/a.responseLatencyCount:void 0,g=a.dismissalLatencyCount>0?a.dismissalLatencyTotal/a.dismissalLatencyCount:void 0,S=c.contextExpansionRate!==void 0?c.contextExpansionRate*c.presentations:0,b=a.contextExpanded;n[o]={presentations:u,responses:d,dismissals:m,...f!==void 0?{avgResponseLatencyMs:ud(c.avgResponseLatencyMs,c.responses,f,a.responseLatencyCount)}:c.avgResponseLatencyMs!==void 0?{avgResponseLatencyMs:c.avgResponseLatencyMs}:{},...g!==void 0?{avgDismissalLatencyMs:ud(c.avgDismissalLatencyMs,c.dismissals,g,a.dismissalLatencyCount)}:c.avgDismissalLatencyMs!==void 0?{avgDismissalLatencyMs:c.avgDismissalLatencyMs}:{},...u>0?{contextExpansionRate:Qo((S+b)/u)}:c.contextExpansionRate!==void 0?{contextExpansionRate:c.contextExpansionRate}:{},...a.deferrals>0?{returnAfterDeferralRate:Qo(a.returns/a.deferrals)}:c.returnAfterDeferralRate!==void 0?{returnAfterDeferralRate:c.returnAfterDeferralRate}:{}}}return n}function SS(e,t){let n=structuredClone(e.sourceTrust??{}),r=new Map;for(let i of t){let o=wr(i.metadata,"sourceKey"),a=wr(i.metadata,"consequence");if(!o||a!=="low"&&a!=="medium"&&a!=="high")continue;let c=`${o}::${a}::${i.interactionId}`,u=r.get(c)??{source:o,consequence:a,responded:!1,rejected:!1,dismissed:!1};i.kind==="responded"?(u.responded=!0,u.dismissed=!1,u.rejected=i.responseKind==="rejected"):i.kind==="dismissed"&&(u.responded||(u.dismissed=!0)),r.set(c,u)}for(let i of r.values()){let o=n[i.source]?.[i.consequence]??{confirmations:0,disagreements:0,trustAdjustment:0};i.responded?i.rejected?o.disagreements+=1:o.confirmations+=1:i.dismissed&&(o.disagreements+=1);let a=o.confirmations+o.disagreements;o.trustAdjustment=a>0?Math.round((o.confirmations-o.disagreements)/a*10*Math.min(a/5,1)):0,n[i.source]={...n[i.source]??{},[i.consequence]:o}}return n}function bS(e,t){let n={...e.consequenceProfiles??{}},r=new Map;for(let o of t){let a=wr(o.metadata,"consequence");a!=="low"&&a!=="medium"&&a!=="high"||o.kind==="responded"&&r.set(`${a}::${o.interactionId}`,{consequence:a,rejected:o.responseKind==="rejected"})}let i=new Map;for(let o of r.values()){let a=i.get(o.consequence)??{reviewed:0,rejected:0};a.reviewed+=1,o.rejected&&(a.rejected+=1),i.set(o.consequence,a)}for(let[o,a]of i.entries()){let c=n[o]??{rejectionRate:0,reviewedCount:0},u=(c.reviewedCount??0)+a.reviewed;n[o]={rejectionRate:u>0?Qo(((c.reviewedCount??0)*c.rejectionRate+a.rejected)/u):0,reviewedCount:u}}return n}function wr(e,t){let n=e?.[t];return typeof n=="string"&&n.length>0?n:null}function Qo(e){return Math.round(e*1e3)/1e3}function ud(e,t,n,r){let i=t+r;if(i<=0)return Math.round(n);let o=(e??0)*t,a=n*r;return Math.round((o+a)/i)}function vS(e,t,n,r="present",i){if(r==="absent")return Kd();let o=V.attentionBudget,a=kS(e,i),c=a?(e?.counts.responded??0)+(e?.counts.dismissed??0)+(e?.counts.deferred??0)+(e?.counts.contextExpanded??0)+(e?.counts.contextSkipped??0):0,u=a?e?.counts.deferred??0:0,d=a?e?.averageResponseLatencyMs??null:null,m=t?.metrics.interruptiveVisible??0,f=n??"monitoring",g=t?.level??"steady",S=[],b=0;return g==="high"?(b+=2,S.push("current pressure is already high")):g==="elevated"&&(b+=1,S.push("current pressure is elevated")),f==="overloaded"?(b+=2,S.push("recent operator behavior indicates overload")):(f==="hesitating"||f==="avoiding")&&(b+=1,S.push("recent operator behavior suggests attention is already strained")),c>=o.recentDecisions.highCount?(b+=2,S.push("recent decision volume is high")):c>=o.recentDecisions.elevatedCount&&(b+=1,S.push("recent decision volume is climbing")),d!==null&&d>=o.responseLatencyMs.high?(b+=2,S.push("recent decision latency is slow")):d!==null&&d>=o.responseLatencyMs.elevated&&(b+=1,S.push("recent decision latency is rising")),u>=o.deferredCount.high?(b+=2,S.push("recent deferrals are accumulating")):u>=o.deferredCount.elevated&&(b+=1,S.push("recent deferrals suggest growing burden")),m>=o.interruptiveVisible.high?(b+=2,S.push("multiple interruptive frames are already visible")):m>=o.interruptiveVisible.elevated&&(b+=1,S.push("interruptive work is already visible")),{level:b>=o.scoreBands.highScore?"high":b>=o.scoreBands.elevatedScore?"elevated":"light",thresholdOffset:b>=o.scoreBands.highScore?o.thresholdOffset.high:b>=o.scoreBands.elevatedScore?o.thresholdOffset.elevated:0,metrics:{recentDecisions:c,deferredCount:u,averageResponseLatencyMs:d,interruptiveVisible:m,pressureLevel:g,attentionState:f},reasons:S}}function kS(e,t){let n=e?.lastSignalAt;if(!n||t===void 0)return!0;let r=Date.parse(n),i=IS(t);return Number.isNaN(r)||i===null?!0:i-r<=V.pressureForecast.freshness.residualMs}function IS(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(e instanceof Date){let n=e.getTime();return Number.isFinite(n)?n:null}let t=Date.parse(e);return Number.isNaN(t)?null:t}function Kd(){return{level:"light",thresholdOffset:0,metrics:{recentDecisions:0,deferredCount:0,averageResponseLatencyMs:null,interruptiveVisible:0,pressureLevel:"steady",attentionState:"monitoring"},reasons:[]}}function ES(e,t,n){let r=RS(t),i=[],o=0,a=V.pressureForecast,c=wS(e,n),u=c===null||c<=a.freshness.demandMs,d=c===null||c<=a.freshness.residualMs,m=u?(e?.counts.presented??0)+(e?.counts.deferred??0)+(e?.counts.returned??0):0,f=d?e?.averageResponseLatencyMs??null:null,g=d?e?.counts.deferred??0:0,S=d?e?.deferred.suppressed??0:0,b=d?e?.responseRate??0:0,O=d?e?.counts.presented??0:0;return r>=a.visibleInterruptiveBoost.highCount?(o+=2,i.push("multiple interruptive frames are already visible")):r>=a.visibleInterruptiveBoost.elevatedCount&&(o+=1,i.push("interruptive work is already visible")),m>=a.recentDemand.highCount?(o+=2,i.push("incoming demand is arriving quickly")):m>=a.recentDemand.elevatedCount&&(o+=1,i.push("incoming demand is climbing")),f!==null&&f>=a.responseLatencyMs.high?(o+=2,i.push("recent response latency is slow")):f!==null&&f>=a.responseLatencyMs.elevated&&(o+=1,i.push("recent response latency is rising")),S>=a.deferredPressure.highSuppressedCount||g>=a.deferredPressure.highDeferredCount?(o+=2,i.push("recent deferrals suggest operator capacity is tightening")):(S>=a.deferredPressure.elevatedSuppressedCount||g>=a.deferredPressure.elevatedDeferredCount)&&(o+=1,i.push("recent deferrals suggest operator capacity is tightening")),O>=a.slowClearance.presentedCount&&b<=a.slowClearance.responseRate&&(o+=1,i.push("presented work is being cleared slowly")),{level:o>=a.scoreBands.highLevel?"high":o>=a.scoreBands.elevatedLevel?"elevated":"steady",overloadRisk:o>=a.scoreBands.highRisk?"high":o>=a.scoreBands.risingRisk?"rising":"low",score:o,metrics:{recentDemand:m,interruptiveVisible:r,averageResponseLatencyMs:f,deferredCount:g,suppressedCount:S},reasons:i}}function wS(e,t){let n=e?.lastSignalAt;if(!n||t===void 0)return null;let r=Date.parse(n),i=_S(t);return Number.isNaN(r)||i===null?null:Math.max(0,i-r)}function _S(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(e instanceof Date){let n=e.getTime();return Number.isFinite(n)?n:null}let t=Date.parse(e);return Number.isNaN(t)?null:t}function AS(){return{level:"steady",overloadRisk:"low",score:0,metrics:{recentDemand:0,interruptiveVisible:0,averageResponseLatencyMs:null,deferredCount:0,suppressedCount:0},reasons:[]}}function RS(e){return e?[e.now,...e.next].filter(t=>t!==null).filter(TS).length:0}function TS(e){return e.mode!=="status"||e.consequence==="high"||e.tone==="critical"}var _r={topology:{supportsAmbient:!0},responses:{supportsSingleChoice:!0,supportsMultipleChoice:!1,supportsForm:!0,supportsTextResponse:!1}};function ld(e={}){let t=e.taskSignalSummary??ea();return{currentFrame:e.currentFrame??null,currentTaskView:e.currentTaskView??CS(),currentEpisode:e.currentEpisode??null,attentionView:e.attentionView??PS(),taskSignalSummary:t,continuitySignalSummary:e.continuitySignalSummary??t,globalSignalSummary:e.globalSignalSummary??ea(),taskAttentionState:e.taskAttentionState??"monitoring",globalAttentionState:e.globalAttentionState??"monitoring",pressureForecast:e.pressureForecast??AS(),attentionBurden:e.attentionBurden??Kd(),surfaceCapabilities:e.surfaceCapabilities?{topology:{...e.surfaceCapabilities.topology},responses:{...e.surfaceCapabilities.responses}}:{topology:{..._r.topology},responses:{..._r.responses}},operatorPresence:e.operatorPresence??"present"}}function Pr(e={}){return{...e.currentFrame!==void 0?{currentFrame:e.currentFrame}:{},...e.currentTaskView!==void 0?{currentTaskView:e.currentTaskView}:{},...e.currentEpisode!==void 0?{currentEpisode:e.currentEpisode}:{},...e.attentionView!==void 0?{attentionView:e.attentionView}:{},...e.taskSignalSummary!==void 0?{taskSignalSummary:e.taskSignalSummary}:{},...e.continuitySignalSummary!==void 0?{continuitySignalSummary:e.continuitySignalSummary}:{},...e.globalSignalSummary!==void 0?{globalSignalSummary:e.globalSignalSummary}:{},...e.taskAttentionState!==void 0?{taskAttentionState:e.taskAttentionState}:{},...e.globalAttentionState!==void 0?{globalAttentionState:e.globalAttentionState}:{},...e.pressureForecast!==void 0?{pressureForecast:e.pressureForecast}:{},...e.attentionBurden!==void 0?{attentionBurden:e.attentionBurden}:{},...e.surfaceCapabilities!==void 0?{surfaceCapabilities:e.surfaceCapabilities}:{},...e.operatorPresence!==void 0?{operatorPresence:e.operatorPresence}:{}}}function ga(e,t={},n){let r=Pr(t);if(xS(r))return r.currentFrame===e?r:ld({...r,currentFrame:e});let i=r.globalSignalSummary??ea(),o=r.pressureForecast??ES(i,r.attentionView,n),a=r.operatorPresence??"present";return ld({...r,currentFrame:e,globalSignalSummary:i,pressureForecast:o,attentionBurden:r.attentionBurden??vS(i,o,r.globalAttentionState,a,n),operatorPresence:a})}function xS(e){return"currentFrame"in e&&"currentTaskView"in e&&"currentEpisode"in e&&"attentionView"in e&&"taskSignalSummary"in e&&"continuitySignalSummary"in e&&"globalSignalSummary"in e&&"taskAttentionState"in e&&"globalAttentionState"in e&&"pressureForecast"in e&&"attentionBurden"in e&&"surfaceCapabilities"in e&&"operatorPresence"in e&&e.currentFrame!==void 0&&e.currentTaskView!==void 0&&e.currentEpisode!==void 0&&e.attentionView!==void 0&&e.taskSignalSummary!==void 0&&e.continuitySignalSummary!==void 0&&e.globalSignalSummary!==void 0&&e.taskAttentionState!==void 0&&e.globalAttentionState!==void 0&&e.pressureForecast!==void 0&&e.attentionBurden!==void 0&&e.surfaceCapabilities!==void 0&&e.operatorPresence!==void 0}function CS(){return{now:null,next:[],ambient:[]}}function PS(){return{now:null,next:[],ambient:[]}}function ea(){return{recentSignals:0,lifetimeSignals:0,counts:{presented:0,viewed:0,responded:0,dismissed:0,deferred:0,contextExpanded:0,contextSkipped:0,timedOut:0,returned:0,attentionShifted:0},deferred:{next:0,suppressed:0,manual:0},responseRate:0,dismissalRate:0,averageResponseLatencyMs:null,averageDismissalLatencyMs:null,lastSignalAt:null}}function x(e,t=[]){return{rule:e,kind:"noop",rationale:t}}function ge(e,t,n,r,i){return{rule:e,kind:"override",decision:t,currentPriority:n,currentScore:r,rationale:i}}var OS=e=>{let{candidate:t,context:n,evidence:r}=e,i=r.attentionView.now??r.currentFrame;if(!i)return x("deferral_escalation");let o=i===r.currentFrame?n.currentScore:xe(i,{now:t.timestamp});return o===null||t.blocking||t.priority==="background"||Rt(i)||!In(r.continuitySignalSummary)||n.candidateScore<o-V.queuePlanner.escalationScoreSlack?x("deferral_escalation"):ge("deferral_escalation",{kind:"activate",candidate:t},ie(i),o,["repeated deferral or resurfacing makes this task more deserving of current focus"])};function In(e){return e.counts.deferred>=V.queuePlanner.deferredEscalationThreshold||e.counts.returned>=V.queuePlanner.returnedEscalationThreshold}var ha=V.queuePlanner;function NS(e,t,n,r){return n.currentFrame?FS(n.currentFrame,e,t,n,r):DS(e,t,n)}function wt(e,t,n){return{kind:ya(e,t,n),candidate:e}}function LS(e,t,n,r){return Gd(e,n)?{kind:"queue",candidate:e}:wt(e,t,r)}function ta(e,t,n,r){return(n.components.deferralAffinity>0||n.components.consequenceCalibration>0)&&t.minimumLane!=="now"?{kind:"queue",candidate:e}:wt(e,t,r)}function ya(e,t,n=_r){return Dd(e,t.minimumLane==="ambient"?"ambient":"queue")==="ambient"&&MS(e,n)?"ambient":"queue"}function MS(e,t){if(!t.topology.supportsAmbient)return!1;switch(e.responseSpec.kind){case"approval":return!0;case"choice":return(e.responseSpec.selectionMode==="multiple"?t.responses.supportsMultipleChoice:t.responses.supportsSingleChoice)&&(!e.responseSpec.allowTextResponse||t.responses.supportsTextResponse);case"form":return t.responses.supportsForm;case"none":return!0}return!1}function DS(e,t,n){let r=[];return zd(e)?n.pressureForecast.overloadRisk==="high"?(r.push("the episode has become actionable, but predicted overload keeps it in next instead of surfacing it now"),$({kind:"queue",candidate:e},r)):t.policyVerdict.mayInterrupt?(r.push("the episode has accumulated enough evidence to deserve interruptive attention"),$({kind:"activate",candidate:e},r)):(r.push("the episode has become actionable, so it stays visible even though policy still prevents interrupting"),$({kind:"queue",candidate:e},r)):Wd(e,t.policyVerdict,n.pressureForecast)?(r.push("predicted overload keeps lower-value work peripheral before the queue spikes"),$(ta(e,t.policyVerdict,t.utility,n.surfaceCapabilities),r)):!t.policyVerdict.mayInterrupt&&t.policyVerdict.minimumLane==="ambient"?da(e)?(r.push("status routing stays non-blocking, but blocked-like semantics keep it visible in next"),$({kind:"queue",candidate:e},r)):(r.push("policy keeps this interaction ambient until stronger context arrives"),$(wt(e,t.policyVerdict,n.surfaceCapabilities),r)):(r.push("nothing is in now for this task"),$({kind:"activate",candidate:e},r))}function FS(e,t,n,r,i){let o=[],a=zd(t),c=Rt(e),u=ie(e),d=n.currentScore;if(a)return c||r.pressureForecast.overloadRisk==="high"?(o.push(c?"the episode has become actionable, but current blocking work keeps it in next":"the episode has become actionable, but predicted overload keeps it in next"),$({kind:"queue",candidate:t},o,u,d)):d!==null&&n.candidateScore<d-ha.actionableEpisodeScoreSlack?(o.push("actionable episode evidence keeps this work visible even though the current frame is still stronger"),$({kind:"queue",candidate:t},o,u,d)):n.policyVerdict.mayInterrupt?(o.push("the episode has accumulated enough evidence to compete for current focus"),$({kind:"activate",candidate:t},o,u,d)):(o.push("the episode has become actionable, so it stays in next even though policy still prevents interrupting"),$({kind:"queue",candidate:t},o,u,d));if(c&&!t.blocking)return In(r.continuitySignalSummary)?(o.push("blocking work keeps resurfacing backlog in next so it stays visible until focus can return"),$({kind:"queue",candidate:t},o,u,d)):(o.push("blocking work keeps non-blocking updates in the periphery"),$(wt(t,n.policyVerdict,r.surfaceCapabilities),o));if(!c&&t.blocking)return o.push("blocking work interrupts non-blocking activity"),$({kind:"activate",candidate:t},o);if(Wd(t,n.policyVerdict,r.pressureForecast))return o.push("predicted overload keeps lower-value work peripheral before the queue spikes"),$(ta(t,n.policyVerdict,n.utility,r.surfaceCapabilities),o,u,d);if(US(t,r.attentionView,t.timestamp,i))return In(r.continuitySignalSummary)?(o.push("existing urgent backlog keeps resurfacing work in next so it remains visible"),$({kind:"queue",candidate:t},o,u,d)):(o.push(n.utility.components.deferralAffinity>0?"existing urgent backlog defers this work, but memory keeps it in next because it usually returns after deferral":"existing urgent backlog keeps lower-value status work in next"),$(ta(t,n.policyVerdict,n.utility,r.surfaceCapabilities),o,u,d));if(d!==null&&n.candidateScore<d)return o.push("current work still outranks the new candidate"),$(wt(t,n.policyVerdict,r.surfaceCapabilities),o,u,d);if(d!==null&&n.candidateScore===d){let m=pa(t.timestamp,e.timing.updatedAt);if(m!==null&&m<0)return o.push("older work yields when scores tie"),$(wt(t,n.policyVerdict,r.surfaceCapabilities),o,u,d)}return o.push("new work outranks the current frame"),$({kind:"activate",candidate:t},o,u,d)}function $(e,t,n=null,r=null){return{decision:e,currentPriority:n,currentScore:r,reasons:t}}function US(e,t,n,r){return r?.deferLowValueDuringPressure===!1||e.blocking||e.consequence==="high"||e.tone==="critical"||!t?!1:Gd(e,t)?!0:[t.now,...t.next].filter(o=>o!==null).filter(o=>o.interactionId===e.interactionId?!1:Rt(o)||o.consequence==="high"||o.tone==="critical").filter(o=>{let a=pa(n,o.timing.updatedAt);return a===null?!0:a<=ha.urgentBacklogWindowMs}).length>=2}function Wd(e,t,n){return n.overloadRisk==="low"||e.blocking||t.requiresOperatorResponse||t.minimumLane==="now"||e.consequence==="high"||e.tone==="critical"?!1:n.overloadRisk==="high"?!0:e.mode==="status"||e.priority==="background"||e.consequence==="low"}function zd(e){return!e.blocking&&e.episodeState==="actionable"&&(e.episodeEvidenceScore??0)>=ha.actionableEpisodeEvidenceThreshold}function Gd(e,t){return e.episodeId!==void 0&&[t?.now,...t?.next??[]].filter(n=>n!==null).some(n=>n.interactionId!==e.interactionId&&It(n)===e.episodeId&&!Ue(Et(n)))}var jS=e=>{let t=e.evidence.currentFrame,{candidate:n,context:r,evidence:i,helpers:o,plannerDefaults:a,routed:c}=e;if(!t||c.decision.kind!=="activate"||a?.batchStatusBursts===!1||t.taskId!==n.taskId||t.mode!=="status"||n.mode!=="status"||n.blocking||n.consequence==="high"||n.tone==="critical")return x("burst_dampening");let u=Date.parse(t.timing.updatedAt),d=Date.parse(n.timestamp);return Number.isNaN(u)||Number.isNaN(d)||d-u>V.queuePlanner.statusBurstWindowMs?x("burst_dampening"):ge("burst_dampening",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,[`rapid successive updates within ${d-u}ms stay bundled instead of stealing focus`])},Te={STATUS_ONLY:0,NON_STATUS:1,CRITICAL_CONSEQUENCE:2,BLOCKING_OR_REQUIRED:3},qS=e=>{let t=e.evidence.currentFrame,{candidate:n,context:r,evidence:i,helpers:o,routed:a,plannerDefaults:c}=e;if(!t||a.decision.kind!=="activate"||r.currentScore===null)return x("conflicting_interrupt");let u=HS(t),d=$S(n,r.policyVerdict);if(u===Te.STATUS_ONLY||d===Te.STATUS_ONLY||d>u)return x("conflicting_interrupt");if(d<u)return ge("conflicting_interrupt",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,["the current interrupt is more urgent, so the challenger waits instead of stealing focus"]);let m=c?.conflictingInterruptMargin??V.queuePlanner.conflictingInterruptMargin;return m<=0||r.candidateScore>=r.currentScore+m?x("conflicting_interrupt"):ge("conflicting_interrupt",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,["equally interruptive work needs a clear advantage before it can replace the current interrupt"])};function HS(e){return e.mode!=="status"&&e.responseSpec?.kind!=="none"?Te.BLOCKING_OR_REQUIRED:e.tone==="critical"||e.consequence==="high"?Te.CRITICAL_CONSEQUENCE:e.mode!=="status"?Te.NON_STATUS:Te.STATUS_ONLY}function $S(e,t){return e.blocking||t.requiresOperatorResponse||t.minimumLane==="now"?Te.BLOCKING_OR_REQUIRED:e.tone==="critical"||e.consequence==="high"?Te.CRITICAL_CONSEQUENCE:e.mode!=="status"?Te.NON_STATUS:Te.STATUS_ONLY}var BS=e=>{let t=e.evidence.currentFrame,{candidate:n,context:r,evidence:i,helpers:o}=e;if(!t||r.currentScore===null||n.blocking||Rt(t)||n.consequence==="high"||n.tone==="critical"||r.candidateScore<=r.currentScore)return x("context_patience");let{contextCost:a}=r.utility.components,c=a<=-6?V.queuePlanner.highContextQueueMargin:a<=-3?V.queuePlanner.mediumContextQueueMargin:null;if(c===null||r.candidateScore>=r.currentScore+c)return x("context_patience");let u=r.candidateScore-r.currentScore;return ge("context_patience",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,[`memory suggests this interaction usually needs context, so it stays peripheral until it clears the ${c}-point margin (gap: ${u})`])},VS=e=>{let t=e.evidence.currentFrame,{candidate:n,context:r,evidence:i,helpers:o,routed:a,plannerDefaults:c}=e;if(!t||a.decision.kind!=="activate"||r.currentScore===null||n.blocking||n.consequence==="high"||n.tone==="critical"||t.consequence==="high"||t.tone==="critical"||KS(t,n))return x("decision_stream_continuity");let u=c?.streamContinuityMargin??V.queuePlanner.streamContinuityMargin;if(u<=0||r.candidateScore>=r.currentScore+u)return x("decision_stream_continuity");let d=r.candidateScore-r.currentScore;return ge("decision_stream_continuity",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,[`the current decision stream stays active until cross-stream work clears the ${u}-point margin (gap: ${d})`])};function KS(e,t){let n=Er(e.source),r=Er(t.source);if(n&&r&&n!==r)return!1;if(n&&r&&n===r)return!0;let i=Xo(e),o=Xo(t);return i&&o&&i!==o?!1:!!(i&&o&&i===o||e.taskId===t.taskId)}var WS=e=>{let t=e.evidence.currentFrame,{candidate:n,context:r,evidence:i,helpers:o,routed:a,plannerDefaults:c}=e;if(!t||a.decision.kind!=="activate"||n.blocking||n.consequence==="high"||n.tone==="critical")return x("minimum_dwell");let u=c?.minimumDwellMs??V.queuePlanner.minimumDwellMs;if(u<=0)return x("minimum_dwell");let d=Date.parse(t.timing.updatedAt),m=Date.parse(n.timestamp);if(Number.isNaN(d)||Number.isNaN(m)||m-d>=u)return x("minimum_dwell");let f=u-(m-d);return ge("minimum_dwell",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,[`recently surfaced work keeps focus for another ${f}ms to avoid a premature switch`])},zS=e=>{let t=e.evidence.currentFrame,{candidate:n,context:r,evidence:i,helpers:o}=e;if(!t||!n.episodeId)return x("same_episode");let a=It(t);return!a||a!==n.episodeId||Ue(Et(t))?x("same_episode"):n.blocking&&!Rt(t)?ge("same_episode",{kind:"activate",candidate:n},ie(t),r.currentScore,["the current episode has progressed into an interruptive step that belongs in now"]):n.blocking&&jd(n.relationHints,"supersedes")&&Ld(n)!=="weak"?ge("same_episode",{kind:"activate",candidate:n},ie(t),r.currentScore,["the current episode has advanced to a superseding step that belongs in now"]):In(i.continuitySignalSummary)?x("same_episode"):ge("same_episode",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,["related work stays bundled with the current episode already in now"])},GS=e=>{let t=e.evidence.currentFrame;return!t||t.interactionId!==e.candidate.interactionId?x("same_interaction"):ge("same_interaction",{kind:"activate",candidate:e.candidate},null,null,["same interaction refreshes the existing frame"])},ZS=e=>{let{candidate:t,context:n,evidence:r,helpers:i}=e;if(!t.episodeId||t.blocking||t.consequence==="high"||t.tone==="critical")return x("visible_episode");let o=[r.attentionView.now,...r.attentionView.next,...r.attentionView.ambient].filter(a=>a!==null).filter(a=>a.interactionId!==t.interactionId&&It(a)===t.episodeId&&!Ue(Et(a)));return o.length===0||!(t.episodeState==="batched"||(t.episodeSize??1)>=2||o.length>=2)||In(r.continuitySignalSummary)?x("visible_episode"):ge("visible_episode",i.batchedDecision(t,n.policyVerdict,r.attentionView,r.surfaceCapabilities),null,r.currentFrame?n.currentScore:null,[r.currentFrame?"related episode work is already building in the queue, so this interaction stays bundled with it":"related episode work is already visible, so this interaction batches with it instead of interrupting"])},YS=[ZS,zS,WS,jS,GS,OS,qS,VS,BS],Zd=class{plannerDefaults;constructor(e={}){this.plannerDefaults=e.plannerDefaults}explain(e,t,n){let r=this.resolveEvidenceContext(e,n,t.timestamp),i=NS(t,n,r,this.plannerDefaults);return this.applyContinuity(t,n,r,i)}clear(){return{kind:"clear"}}preferredPeripheralBucket(e,t,n){return ya(e,t,n)}applyContinuity(e,t,n,r){let i=new Set(this.plannerDefaults?.disabledContinuityRules??[]),o=YS.map(c=>{let u=c({candidate:e,context:t,evidence:n,routed:r,plannerDefaults:this.plannerDefaults,helpers:{peripheralDecision:wt,batchedDecision:LS}});return i.has(u.rule)?x(u.rule,[`operator disabled the ${u.rule} continuity rule`]):u}),a=o.find(c=>c.kind==="override");return a?{decision:a.decision,currentPriority:a.currentPriority,currentScore:a.currentScore,reasons:[...r.reasons,...a.rationale],continuityEvaluations:o}:{...r,continuityEvaluations:o}}resolveEvidenceContext(e,t,n){return ga(e,Pr(t),kn(n)??0)}},JS=class{runtime;constructor(e){this.runtime=e}assemble(e,t){let n=this.runtime.signals.summarize(e),r=this.runtime.signals.summarize(),i=bt(n),o=bt(r),a=this.runtime.getTaskView(e),c=this.runtime.getAttentionView(),u=this.runtime.getOperatorPresence();return ga(t,Pr({currentFrame:t,currentTaskView:a,currentEpisode:this.runtime.episodes.readFrameEpisode(t),attentionView:c,taskSignalSummary:n,continuitySignalSummary:n,globalSignalSummary:r,taskAttentionState:i,globalAttentionState:o,surfaceCapabilities:this.runtime.getSurfaceCapabilities(),operatorPresence:u}),this.runtime.clock.nowMs())}augmentContinuitySignalSummary(e,t,n){let r=this.resolveContinuitySignalSummary(e,t,n.taskSignalSummary);return r===n.taskSignalSummary?n:{...n,continuitySignalSummary:r}}resolveContinuitySignalSummary(e,t,n){if(!t.episodeId)return n;let r=this.runtime.signals.list(e),i=this.runtime.signals.list().filter(o=>o.taskId!==e&&XS(o)===t.episodeId);return i.length===0?n:$d([...r,...i].sort((o,a)=>o.timestamp.localeCompare(a.timestamp)))}};function XS(e){let t=e.metadata?.episode;if(!t||typeof t!="object"||Array.isArray(t))return null;let n=t.id;return typeof n=="string"&&n.length>0?n:null}var Yd=class extends Error{code;constructor(e,t){super(t),this.name=new.target.name,this.code=e}},fe=class extends Yd{field;constructor(e,t={}){super(t.code??"validation_error",e),this.field=t.field}},QS=class extends Yd{taskId;interactionId;expiredAt;constructor(e){super("response_expired",`response for interaction ${e.interactionId} expired at ${e.expiredAt} and must be revalidated before submission`),this.taskId=e.taskId,this.interactionId=e.interactionId,this.expiredAt=e.expiredAt}};function eb(e,t,n){let r=ib(e,n),i={taskId:e.taskId,interactionId:e.interactionId,timestamp:n,frameId:e.id,...e.source!==void 0?{source:e.source}:{},metadata:wn(e)};return t.response.kind==="dismissed"?{kind:"dismissed",...i,...r!==void 0?{latencyMs:r}:{}}:{kind:"responded",...i,responseKind:t.response.kind,...r!==void 0?{latencyMs:r}:{}}}function tb(e,t,n){return{kind:"responded",taskId:e.taskId,interactionId:e.interactionId,timestamp:n,...e.source!==void 0?{source:e.source}:{},responseKind:t.response.kind==="dismissed"?"acknowledged":t.response.kind,metadata:{...hS(e),autoResolved:!0}}}function Ko(e,t,n=e){return{kind:"deferred",taskId:n.taskId,interactionId:n.interactionId,timestamp:e.timing.updatedAt,frameId:e.id,...n.source!==void 0?{source:n.source}:{},reason:t,metadata:wn(e)}}function nb(e,t,n){let r=e.now,i=t.now;return i?[...rb(r,i,n),...sb(e,i,n)]:[]}function yr(e,t,n,r,i,o={}){return{kind:e,taskId:t,interactionId:n,timestamp:r,...i?.id!==void 0?{frameId:i.id}:{},...i?.source!==void 0?{source:i.source}:{},...i?{metadata:wn(i)}:{},...o.surface!==void 0?{surface:o.surface}:{},...e==="context_expanded"&&o.section!==void 0?{section:o.section}:{},...e==="context_skipped"&&o.section!==void 0?{section:o.section}:{},...e==="timed_out"&&o.timeoutMs!==void 0?{timeoutMs:o.timeoutMs}:{}}}function rb(e,t,n){if(!e||na(e,t))return[];let r={kind:"attention_shifted",taskId:t.taskId,interactionId:t.interactionId,timestamp:n,frameId:t.id,...t.source!==void 0?{source:t.source}:{},fromInteractionId:e.interactionId,toInteractionId:t.interactionId};return e.taskId===t.taskId?[r]:[r,{kind:"attention_shifted",taskId:e.taskId,interactionId:e.interactionId,timestamp:n,frameId:e.id,...e.source!==void 0?{source:e.source}:{},fromInteractionId:e.interactionId,toInteractionId:t.interactionId}]}function sb(e,t,n){let r=e.next.some(i=>na(i,t))?"next":e.ambient.some(i=>na(i,t))?"ambient":null;return r?[{kind:"returned",taskId:t.taskId,interactionId:t.interactionId,timestamp:n,frameId:t.id,...t.source!==void 0?{source:t.source}:{},from:r,metadata:wn(t)}]:[]}function ib(e,t){let n=Date.parse(e.timing.updatedAt),r=Date.parse(t);if(!(Number.isNaN(n)||Number.isNaN(r)))return Math.max(0,r-n)}function na(e,t){return e.id===t.id||e.taskId===t.taskId&&e.interactionId===t.interactionId}var ob=class{runtime;constructor(e){this.runtime=e}commitFrame(e,t=[]){let n=this.runtime.getAttentionView(),r=new Set;for(let a of t){let c=`${a.taskId}::${a.interactionId}`;if(r.has(c))continue;r.add(c);let u=this.runtime.taskViews.discard(a.taskId,a.interactionId);a.taskId!==e.taskId&&(this.runtime.notifyFrame(a.taskId,u.now),this.runtime.notifyTaskView(a.taskId,u))}let i=this.runtime.taskViews.setNow(e.taskId,e),o=this.runtime.getAttentionView();return this.recordAttentionTransition(n,o,e.timing.updatedAt),this.runtime.recordSignal({kind:"presented",taskId:e.taskId,interactionId:e.interactionId,timestamp:e.timing.updatedAt,frameId:e.id,...e.source!==void 0?{source:e.source}:{},metadata:wn(e)}),this.runtime.notifyFrame(e.taskId,e),this.runtime.notifyTaskView(e.taskId,i),this.runtime.notifyAttentionView(),e}applyClear(e){let t=this.runtime.getAttentionView(),n=this.runtime.taskViews.get(e);if(!(n.now!==null||n.next.length>0||n.ambient.length>0))return null;for(let a of[n.now,...n.next,...n.ambient])a&&this.runtime.episodes.resolveInteraction(a.interactionId);this.runtime.clearOperatorEngagement(e);let i=this.runtime.taskViews.clear(e),o=this.runtime.getAttentionView();return this.recordAttentionTransition(t,o,this.runtime.clock.nowIso()),this.runtime.notifyFrame(e,null),this.runtime.notifyTaskView(e,i),this.runtime.notifyAttentionView(),null}queueFrame(e,t){let n=this.runtime.taskViews.addNext(e,t);return this.runtime.recordSignal(Ko(t,"next")),this.runtime.notifyTaskView(e,n),this.runtime.notifyAttentionView(),n.now??t}addAmbientFrame(e,t){let n=this.runtime.taskViews.addAmbient(e,t);return this.runtime.recordSignal(Ko(t,"suppressed")),this.runtime.notifyTaskView(e,n),this.runtime.notifyAttentionView(),n.now??t}materializePeripheralFrame(e,t,n){let r=e.episodeId?this.findPeripheralEpisodeFrame(e.episodeId,n):null;if(!r){let d=this.applyResponseExpiry(this.runtime.planner.plan(e,null));return t==="queue"?this.queueFrame(e.taskId,d):this.addAmbientFrame(e.taskId,d)}let i=r.bucket==="queue"||t==="queue"?"queue":"ambient",a={...this.applyResponseExpiry(this.runtime.planner.plan(e,r.frame)),id:r.frame.id},c=this.runtime.taskViews.discard(r.frame.taskId,r.frame.interactionId);this.runtime.notifyTaskView(r.frame.taskId,c);let u=i==="queue"?this.runtime.taskViews.addNext(a.taskId,a):this.runtime.taskViews.addAmbient(a.taskId,a);return this.runtime.recordSignal(Ko(a,i==="queue"?"next":"suppressed",e)),this.runtime.notifyTaskView(a.taskId,u),this.runtime.notifyAttentionView(),a}promotePeripheralEpisodeFrame(e,t){let r={...this.applyResponseExpiry(this.runtime.planner.plan(e,t)),id:t.id};return this.commitFrame(r,[t])}submit(e){let t=this.findFrame(e.taskId,e.interactionId);if(!t)return;let n=this.readExpiredResponseTimestamp(t,this.runtime.clock.nowIso());if(n)throw new QS({taskId:e.taskId,interactionId:e.interactionId,expiredAt:n});let r=this.runtime.getAttentionView(),i=this.runtime.clock.nowIso();this.runtime.clearOperatorEngagement(e.taskId,e.interactionId),this.runtime.recordSignal(eb(t,e,i)),this.runtime.episodes.resolveInteraction(e.interactionId);let o=this.runtime.taskViews.resolve(e.taskId,e.interactionId),a=this.runtime.getAttentionView();this.recordAttentionTransition(r,a,i),this.runtime.notifyFrame(e.taskId,o.now??null),this.runtime.notifyTaskView(e.taskId,o),this.runtime.notifyAttentionView(),this.runtime.emitResponse(e)}applyAutoResponse(e,t){let n=this.runtime.clock.nowIso();return this.runtime.recordSignal(tb(e,t,n)),this.runtime.episodes.resolveInteraction(e.interactionId),this.runtime.emitResponse(t),null}findFrameByInteractionId(e,t){return this.findFrame(e,t)}shouldRetireSupersededEpisodeFrames(e,t){return this.findSupersededEpisodeFrames(e,t).length>0}findSupersededEpisodeFrames(e,t){return!e.episodeId||!jd(e.relationHints,"supersedes")?[]:[t.now,...t.next,...t.ambient].filter(n=>n!==null&&n.interactionId!==e.interactionId&&It(n)===e.episodeId&&!Ue(Et(n)))}applyResponseExpiry(e){if(this.runtime.responseExpiryMs===void 0||e.responseSpec?.kind==="none")return e;let t=this.runtime.clock.add(e.timing.updatedAt,this.runtime.responseExpiryMs);return t===null?e:{...e,timing:{...e.timing,expiresAt:t}}}readExpiredResponseTimestamp(e,t){let n=e.timing.expiresAt;if(!n)return null;let r=this.runtime.clock.parse(n),i=this.runtime.clock.parse(t);return r===null||i===null||i<=r?null:n}findPeripheralEpisodeFrame(e,t){let n=t.next.find(i=>It(i)===e&&!Ue(Et(i)));if(n)return{frame:n,bucket:"queue"};let r=t.ambient.find(i=>It(i)===e&&!Ue(Et(i)));return r?{frame:r,bucket:"ambient"}:null}shouldPromotePeripheralEpisodeFrame(e){return e.continuityEvaluations?.some(t=>t.rule==="deferral_escalation"&&t.kind==="override"&&t.decision?.kind==="activate")??!1}findFrame(e,t){let n=this.runtime.taskViews.get(e);if(n.now?.interactionId===t)return n.now;let r=n.next.find(i=>i.interactionId===t);return r||(n.ambient.find(i=>i.interactionId===t)??null)}recordAttentionTransition(e,t,n){for(let r of nb(e,t,n))this.runtime.recordSignal(r)}},ab=12,cb=class{taskViews=new Map;get(e){return this.taskViews.get(e)??{now:null,next:[],ambient:[]}}setNow(e,t){let n=this.get(e),r=n.next.filter(a=>a.interactionId!==t.interactionId),i=n.now&&n.now.interactionId!==t.interactionId?n.now:null,o={now:t,next:i?[i,...r]:r,ambient:n.ambient.filter(a=>a.interactionId!==t.interactionId)};return this.persist(e,o)}addNext(e,t){return this.upsert(e,"next",t)}addAmbient(e,t){return this.upsert(e,"ambient",t)}clear(e){let t={now:null,next:[],ambient:[]};return this.taskViews.delete(e),t}discard(e,t){let n=this.get(e),r={now:n.now?.interactionId===t?null:n.now,next:n.next.filter(i=>i.interactionId!==t),ambient:n.ambient.filter(i=>i.interactionId!==t)};return this.persist(e,r)}resolve(e,t){let n=this.get(e),r=n.next.filter(c=>c.interactionId!==t),i=n.ambient.filter(c=>c.interactionId!==t),o=n.now;o?.interactionId===t&&(o=r.shift()??null);let a={now:o,next:r,ambient:i};return this.persist(e,a)}upsert(e,t,n){let r=this.get(e),i=r.next.filter(d=>d.interactionId!==n.interactionId),o=r.ambient.filter(d=>d.interactionId!==n.interactionId),u={now:r.now?.interactionId===n.interactionId?i.shift()??null:r.now,next:t==="next"?[n,...i]:i,ambient:t==="ambient"?[n,...o].slice(0,ab):o};return this.persist(e,u)}values(){return this.taskViews.values()}stats(){let e=0,t=0,n=0;for(let r of this.taskViews.values())r.now&&(e+=1),t+=r.next.length,n+=r.ambient.length;return{taskCount:this.taskViews.size,nowCount:e,nextCount:t,ambientCount:n,totalFrames:e+t+n}}persist(e,t){return ub(t)?this.taskViews.delete(e):this.taskViews.set(e,t),t}};function ub(e){return e.now===null&&e.next.length===0&&e.ambient.length===0}var ra=Symbol("aperture.internal.subscribeTrace");function Sa(e,t){let n=[];return br("",e,t,n),n}function br(e,t,n,r){if(!Object.is(t,n)){if(t==null&&Sr(n)){for(let i of Object.keys(n).sort()){let o=e.length>0?`${e}.${i}`:i;br(o,void 0,n[i],r)}return}if(n==null&&Sr(t)){for(let i of Object.keys(t).sort()){let o=e.length>0?`${e}.${i}`:i;br(o,t[i],void 0,r)}return}if(t===void 0||n===void 0){r.push({path:e,before:t,after:n});return}if(Array.isArray(t)||Array.isArray(n)){r.push({path:e,before:t,after:n});return}if(Sr(t)&&Sr(n)){let i=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of[...i].sort()){let a=e.length>0?`${e}.${o}`:o;br(a,t[o],n[o],r)}return}r.push({path:e,before:t,after:n})}}function Sr(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var lb=class{recordNoop(e){return{...e,evaluation:{kind:"noop"}}}recordClear(e,t){return{...e,evaluation:{kind:"clear",taskId:t}}}recordCandidate(e,t){let{original:n,adjusted:r,explanation:i,result:o}=t,a=fb(e.event,r);return{...e,evaluation:{kind:"candidate",original:n,adjusted:r},candidateTransition:db(n,r),frameTransition:pb(e.current,o),heuristics:{scoreOffset:r.attentionScoreOffset??0,rationale:r.attentionRationale??[]},...a!==void 0?{semantic:a}:{},episode:mb(r),policy:i.policy,policyRules:{gateEvaluations:i.policyGateEvaluations,criterion:i.criterion,criterionEvaluations:i.policyCriterionEvaluations},utility:{candidate:i.utility,currentScore:i.currentScore,currentPriority:i.currentPriority},planner:{kind:i.decision.kind,reasons:i.reasons,continuityEvaluations:i.continuityEvaluations},coordination:{kind:i.decision.kind,resultLane:Sb(e.attentionView,r.taskId,r.interactionId,i.decision.kind),candidateScore:i.candidateScore,currentScore:i.currentScore,currentPriority:i.currentPriority,criterion:i.criterion,ambiguity:i.ambiguity,reasons:i.reasons,continuityEvaluations:i.continuityEvaluations},pressureForecast:i.pressureForecast,attentionBurden:i.attentionBurden,result:o}}};function db(e,t){return{changedFields:Sa(e,t)}}function pb(e,t){return{changedFields:Sa(e,t)}}function mb(e){return e.episodeId?{id:e.episodeId,key:e.episodeKey??e.episodeId,state:e.episodeState??"emerging",size:e.episodeSize??1,evidenceScore:e.episodeEvidenceScore??0,evidenceReasons:e.episodeEvidenceReasons??[],lastInteractionId:e.interactionId,updatedAt:e.timestamp}:null}function fb(e,t){let n=e.semantic;if(!n)return;let r=Md(t)??la(e,n),i=Tt(t);return{intentFrame:n.intentFrame,...n.activityClass!==void 0?{activityClass:n.activityClass}:{},...n.toolFamily!==void 0?{toolFamily:n.toolFamily}:{},...n.consequence!==void 0?{consequence:n.consequence}:{},...i?.confidence!==void 0?{confidence:i.confidence}:{},...i?.abstained===!0?{abstained:!0}:{},ontology:r,...n.whyNow!==void 0?{whyNow:n.whyNow}:{},relationHints:n.relationHints,factors:n.factors,reasons:n.reasons,influence:gb(e,t),impact:hb(e,t),...n.provenance!==void 0?{provenance:n.provenance}:{}}}function gb(e,t){let n=e.semantic;if(!n)return[];let r=Md(t)??la(e,n),i=[];return e.type==="task.updated"?(i.push("task status stayed authoritative for candidate routing; semantic details still affected context, continuity, ambiguity handling, and ontology diagnostics"),"activityClass"in e&&e.activityClass===n.activityClass&&n.activityClass!==void 0&&i.push("activity class enriched canonical status facts"),e.toolFamily===n.toolFamily&&n.toolFamily!==void 0&&i.push("tool family enriched canonical status facts without changing the route"),n.relationHints.length>0&&i.push("relation hints informed continuity handling"),r.blocking!=="non_blocking"&&!t.blocking&&i.push(r.blocking==="blocking"?"semantic blocking marked the waiting status as blocked-like for peripheral routing while status handling stayed non-blocking":"semantic waiting stayed diagnostic because status updates still route as non-blocking candidates"),Ir(t)?i.push("semantic abstention can keep non-blocking status work peripheral until clearer evidence arrives"):kr(t)==="low"&&i.push("low semantic confidence can keep non-blocking status work peripheral until the signal is clearer"),i):e.type==="human.input.requested"?("activityClass"in e&&e.activityClass===n.activityClass&&n.activityClass!==void 0&&i.push("activity class was projected into the canonical request"),e.consequence===n.consequence&&n.consequence!==void 0&&i.push("semantic consequence set the canonical human-input consequence"),n.toolFamily!==void 0&&(e.request.kind==="approval"?i.push("tool family remained decision-bearing on the approval path"):i.push("tool family stayed context-only on the question/form path")),n.relationHints.length>0&&i.push("relation hints informed continuity handling"),Ir(t)?i.push(t.blocking?"semantic abstention stayed visible but did not downgrade blocking work":"semantic abstention constrained non-blocking routing"):kr(t)==="low"&&i.push(t.blocking?"semantic low confidence stayed visible but did not downgrade blocking work":"low semantic confidence constrained non-blocking routing"),i.length===0&&i.push("semantic interpretation mostly stayed context-only beyond the explicit request"),i):(i.push("semantic interpretation was recorded for explanation only"),i)}function hb(e,t){let n=e.semantic,r=new Set,i=new Set,o=new Set,a=new Set,c=new Set,u=Tt(t),d=yb(e);if(!n)return{routingAuthority:d,decisionBearing:[],explanatory:[],canonical:[],routing:[],continuity:[],ambiguity:[],contextOnly:[]};switch(c.add("intent"),n.activityClass!==void 0&&c.add("activity"),n.toolFamily!==void 0&&c.add("tool"),n.consequence!==void 0&&c.add("consequence"),n.whyNow!==void 0&&c.add("why now"),n.relationHints.length>0&&c.add("relations"),u?.confidence!==void 0&&c.add("confidence"),u?.abstained===!0&&c.add("abstention"),e.type){case"task.updated":"activityClass"in e&&e.activityClass===n.activityClass&&n.activityClass!==void 0&&ke(c,r,"activity","activity (canonical)"),n.toolFamily!==void 0&&e.toolFamily===n.toolFamily&&ke(c,r,"tool","tool (bounded)"),n.relationHints.length>0&&ke(c,o,"relations","relations (continuity)"),da(t)&&ke(c,i,"intent","blocking (peripheral routing)");break;case"human.input.requested":"activityClass"in e&&e.activityClass===n.activityClass&&n.activityClass!==void 0&&ke(c,r,"activity","activity (canonical)"),n.consequence!==void 0&&e.consequence===n.consequence&&ke(c,r,"consequence","consequence (canonical)"),n.toolFamily!==void 0&&e.request.kind==="approval"&&ke(c,r,"tool","tool (approval path)"),n.relationHints.length>0&&ke(c,o,"relations","relations (continuity)");break;default:n.relationHints.length>0&&ke(c,o,"relations","relations (continuity)");break}return!t.blocking&&By(t)&&ke(c,a,"confidence","confidence (ambiguity)"),!t.blocking&&Ir(t)&&ke(c,a,"abstention","abstention (ambiguity)"),{routingAuthority:d,decisionBearing:[...r,...i,...o,...a],explanatory:[...c],canonical:[...r],routing:[...i],continuity:[...o],ambiguity:[...a],contextOnly:[...c]}}function yb(e){switch(e.type){case"task.updated":return"status";case"human.input.requested":return"request";default:return"event"}}function ke(e,t,n,r){e.delete(n),t.add(r)}function Sb(e,t,n,r){return r==="auto_approve"||r==="clear"?"none":e.now&&e.now.taskId===t&&e.now.interactionId===n?"now":e.next.some(i=>i.taskId===t&&i.interactionId===n)?"next":e.ambient.some(i=>i.taskId===t&&i.interactionId===n)?"ambient":"none"}function bb(e,t,n){return{kind:e,original:t,finalized:n,changedFields:Sa(t,n)}}var vb=class{constructor(e){this.timeSource=e}engagement=null;timer=null;engage(e,t,n={},r){let i=kb(n.durationMs);this.engagement={taskId:e,interactionId:t,expiresAtMs:this.timeSource()+i},this.scheduleExpiry(i,e,t,r)}readFocusedInteractionId(e){let t=this.engagement;return t?t.expiresAtMs<=this.timeSource()?(this.clear(),null):e(t.taskId,t.interactionId)?t.interactionId:(this.clear(),null):null}clear(e,t){let n=this.engagement;n&&(e!==void 0&&n.taskId!==e||t!==void 0&&n.interactionId!==t||(this.engagement=null,this.clearTimer()))}dispose(){this.engagement=null,this.clearTimer()}scheduleExpiry(e,t,n,r){this.clearTimer(),this.timer=setTimeout(()=>{if(!(this.engagement?.taskId!==t||this.engagement?.interactionId!==n)){if(r){r();return}this.clear()}},e),this.timer.unref?.()}clearTimer(){this.timer&&(clearTimeout(this.timer),this.timer=null)}};function dd(e,t){return e.now?.interactionId===t.now?.interactionId&&pd(e.next,t.next)&&pd(e.ambient,t.ambient)}function kb(e){return e===void 0?12e3:Math.max(25,Math.floor(e))}function pd(e,t){return e.length===t.length&&e.every((n,r)=>n.interactionId===t[r]?.interactionId)}function Ib(e){return e.evaluation.kind==="candidate"}function Eb(e){return Ib(e)}function wb(e){if(e.evaluation.kind==="noop")return{timestamp:e.timestamp,event:e.event,eventTransition:e.eventTransition,evaluation:{kind:"noop"}};if(e.evaluation.kind==="clear")return{timestamp:e.timestamp,event:e.event,eventTransition:e.eventTransition,evaluation:{kind:"clear",taskId:e.evaluation.taskId}};if(!Eb(e))throw new Error("Unexpected internal trace variant");return{timestamp:e.timestamp,event:e.event,eventTransition:e.eventTransition,evaluation:{kind:"candidate"},candidateTransition:e.candidateTransition,frameTransition:e.frameTransition,...e.semantic!==void 0?{semantic:e.semantic}:{},policyRules:{gateEvaluations:e.policyRules.gateEvaluations.map(t=>({rule:t.rule,kind:t.kind,rationale:[...t.rationale]})),criterion:e.policyRules.criterion?{criterion:{activationThreshold:e.policyRules.criterion.criterion.activationThreshold,promotionMargin:e.policyRules.criterion.criterion.promotionMargin},peripheralResolution:e.policyRules.criterion.peripheralResolution,ambiguity:e.policyRules.criterion.ambiguity?{kind:e.policyRules.criterion.ambiguity.kind,reason:e.policyRules.criterion.ambiguity.reason,resolution:e.policyRules.criterion.ambiguity.resolution}:null,rationale:[...e.policyRules.criterion.rationale]}:null,criterionEvaluations:e.policyRules.criterionEvaluations.map(t=>({rule:t.rule,kind:t.kind,rationale:[...t.rationale]}))},coordination:{kind:e.coordination.kind,resultLane:e.coordination.resultLane,candidateScore:e.coordination.candidateScore,currentScore:e.coordination.currentScore,currentPriority:e.coordination.currentPriority,ambiguity:e.coordination.ambiguity?{kind:e.coordination.ambiguity.kind,reason:e.coordination.ambiguity.reason,resolution:e.coordination.ambiguity.resolution}:null,reasons:[...e.coordination.reasons],continuityEvaluations:e.coordination.continuityEvaluations.map(t=>({rule:t.rule,kind:t.kind,rationale:[...t.rationale]}))}}}var _b=3,Ab=25,Rb=class{frameListeners=new Map;taskViewListeners=new Map;attentionViewListeners=new Set;responseListeners=new Set;signalListeners=new Set;traceListeners=new Set;internalTraceListeners=new Set;frameHealth=yt();taskViewHealth=yt();attentionViewHealth=yt();responseHealth=yt();signalHealth=yt();traceHealth=yt();internalTraceHealth=yt();subscribeFrame(e,t,n){let r=this.frameListeners.get(e)??new Set,i=ht(t);r.add(i),this.frameListeners.set(e,r);let o=()=>{r.delete(i),r.size===0&&this.frameListeners.delete(e)};try{t(n)}catch(a){throw o(),a}return o}subscribeTaskView(e,t,n){let r=this.taskViewListeners.get(e)??new Set,i=ht(t);r.add(i),this.taskViewListeners.set(e,r);let o=()=>{r.delete(i),r.size===0&&this.taskViewListeners.delete(e)};try{t(n)}catch(a){throw o(),a}return o}subscribeAttentionView(e,t){let n=ht(e);this.attentionViewListeners.add(n);try{e(t)}catch(r){throw this.attentionViewListeners.delete(n),r}return()=>{this.attentionViewListeners.delete(n)}}onResponse(e){let t=ht(e);return this.responseListeners.add(t),()=>{this.responseListeners.delete(t)}}onSignal(e){let t=ht(e);return this.signalListeners.add(t),()=>{this.signalListeners.delete(t)}}onTrace(e){let t=ht(e);return this.traceListeners.add(t),()=>{this.traceListeners.delete(t)}}[ra](e){let t=ht(e);return this.internalTraceListeners.add(t),()=>{this.internalTraceListeners.delete(t)}}emitFrame(e,t){let n=this.frameListeners.get(e);n&&(this.emitRegistrations(n,this.frameHealth,r=>r(t)),n.size===0&&this.frameListeners.delete(e))}emitTaskView(e,t){let n=this.taskViewListeners.get(e);n&&(this.emitRegistrations(n,this.taskViewHealth,r=>r(t)),n.size===0&&this.taskViewListeners.delete(e))}emitAttentionView(e){this.emitRegistrations(this.attentionViewListeners,this.attentionViewHealth,t=>t(e))}emitResponse(e){this.emitRegistrations(this.responseListeners,this.responseHealth,t=>t(e))}emitSignal(e){this.emitRegistrations(this.signalListeners,this.signalHealth,t=>t(e))}emitTrace(e){this.emitRegistrations(this.internalTraceListeners,this.internalTraceHealth,n=>n(e));let t=wb(e);this.emitRegistrations(this.traceListeners,this.traceHealth,n=>n(t))}getHealthSnapshot(){let e=St(this.frameHealth,md(this.frameListeners)),t=St(this.taskViewHealth,md(this.taskViewListeners)),n=St(this.attentionViewHealth,this.attentionViewListeners.size),r=St(this.responseHealth,this.responseListeners.size),i=St(this.signalHealth,this.signalListeners.size),o=St(this.traceHealth,this.traceListeners.size),a=St(this.internalTraceHealth,this.internalTraceListeners.size);return{totalActive:e.active+t.active+n.active+r.active+i.active+o.active+a.active,frame:e,taskView:t,attentionView:n,response:r,signal:i,trace:o,internalTrace:a}}emitRegistrations(e,t,n){for(let r of[...e]){let i=ed.now();try{n(r.listener),r.consecutiveFailures=0}catch(o){r.consecutiveFailures+=1,t.failures+=1,t.lastErrorAt=new Date().toISOString(),t.lastErrorMessage=o instanceof Error?o.message:String(o),r.consecutiveFailures>=_b&&(e.delete(r),t.detached+=1)}finally{let o=ed.now()-i;t.emissions+=1,o>t.maxDeliveryMs&&(t.maxDeliveryMs=o),o>=Ab&&(t.slowDeliveries+=1)}}}};function ht(e){return{listener:e,consecutiveFailures:0}}function yt(){return{emissions:0,failures:0,detached:0,slowDeliveries:0,maxDeliveryMs:0,lastErrorAt:null,lastErrorMessage:null}}function St(e,t){return{active:t,emissions:e.emissions,failures:e.failures,detached:e.detached,slowDeliveries:e.slowDeliveries,maxDeliveryMs:Number(e.maxDeliveryMs.toFixed(2)),lastErrorAt:e.lastErrorAt,lastErrorMessage:e.lastErrorMessage}}function md(e){let t=0;for(let n of e.values())t+=n.size;return t}function Tb(e){let t=Td(e),n=e.type==="human.input.requested"&&e.riskHint!==void 0?{riskHint:e.riskHint}:void 0;return Jd(Pb(e),t,n)}function fd(e,t={}){if(t.skipSemanticDefaults)return e;let n=e.semantic??Td(Ob(e));return Jd(e,n)}function xb(e){switch(e){case"high":return"critical";case"medium":case"low":return"focused";default:return Lb(e)}}function Jd(e,t,n={}){switch(e.type){case"task.started":return{...e,semantic:t};case"task.updated":return{...e,...e.activityClass===void 0&&t.activityClass!==void 0?{activityClass:t.activityClass}:{},semantic:t};case"task.completed":case"task.cancelled":return{...e,semantic:t};case"human.input.requested":return Cb(e,t,n);default:return Xd(e)}}function Cb(e,t,n){let{toolFamily:r,...i}=e,o=e.consequence??t.consequence??n.riskHint??"medium",a=e.tone??xb(o),c=ma({base:e.provenance,semantic:t}),u=e.request.kind==="approval"?e.toolFamily??t.toolFamily:void 0;return{...i,...u!==void 0?{toolFamily:u}:{},...e.activityClass===void 0&&t.activityClass!==void 0?{activityClass:t.activityClass}:{},semantic:t,tone:a,consequence:o,...c!==void 0?{provenance:c}:{}}}function Pb(e){switch(e.type){case"task.started":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},title:e.title,...e.summary!==void 0?{summary:e.summary}:{}};case"task.updated":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},title:e.title,...e.summary!==void 0?{summary:e.summary}:{},status:e.status,...e.progress!==void 0?{progress:e.progress}:{},...e.context!==void 0?{context:e.context}:{}};case"task.completed":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.summary!==void 0?{summary:e.summary}:{}};case"task.cancelled":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.reason!==void 0?{reason:e.reason}:{}};case"human.input.requested":return{id:e.id,type:e.type,taskId:e.taskId,interactionId:e.interactionId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},title:e.title,summary:e.summary,request:e.request,...e.context!==void 0?{context:e.context}:{},...e.provenance!==void 0?{provenance:e.provenance}:{}};default:return Nb(e)}}function Ob(e){switch(e.type){case"task.started":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},title:e.title,...e.summary!==void 0?{summary:e.summary}:{}};case"task.updated":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},title:e.title,...e.summary!==void 0?{summary:e.summary}:{},status:e.status,...e.progress!==void 0?{progress:e.progress}:{},...e.context!==void 0?{context:e.context}:{}};case"task.completed":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.summary!==void 0?{summary:e.summary}:{}};case"task.cancelled":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.reason!==void 0?{reason:e.reason}:{}};case"human.input.requested":return{id:e.id,type:e.type,taskId:e.taskId,interactionId:e.interactionId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},title:e.title,summary:e.summary,request:e.request,...e.context!==void 0?{context:e.context}:{},...e.consequence!==void 0?{riskHint:e.consequence}:{}};default:return Xd(e)}}function Xd(e){throw new Error(`Unhandled ApertureEvent in semantic normalizer: ${JSON.stringify(e)}`)}function Nb(e){throw new Error(`Unhandled SourceEvent in semantic normalizer: ${JSON.stringify(e)}`)}function Lb(e){throw new Error(`Unhandled consequence level in semantic normalizer: ${e}`)}function Mb(e){return{originalEvent:e,finalizedEvent:Tb(e),transitionKind:"source_normalized"}}function Db(e,t={}){let n=t.applySemanticDefaults!==!1;return{originalEvent:e,finalizedEvent:n?fd(e):fd(e,{skipSemanticDefaults:!0}),transitionKind:n?"direct_enriched":"direct_passthrough"}}async function sa(e,t,n){try{let r=await ph(e,"utf8"),i=n(r);return i===null?(gd(e,"Failed to parse markdown state. Falling back to the in-memory default."),t):i}catch(r){return jb(r)||gd(e,"Failed to read markdown state. Falling back to the in-memory default.",r),t}}async function Fb(e,t){await mh(lh(e),{recursive:!0});let n=`${e}.${process.pid}.${dh(6).toString("hex")}.tmp`,r=await fh(n,"w",384),i=!1;try{await r.writeFile(t,"utf8"),await r.sync(),await r.close(),i=!0,await gh(n,e)}catch(o){throw i||await r.close().catch(()=>{}),await hh(n).catch(()=>{}),o}}function ba(e){let t=/^(#{1,3})\s+(.+?)\s*$/.exec(e.trim());if(!t)return null;let n=t[1];if(n===void 0)return null;let r=n.length;if(r<1||r>3)return null;let i=t[2]?.trim();return i?{level:r,text:i}:null}function va(e){let t=e.trim();if(!t.startsWith("- "))return null;let n=t.slice(2).trim(),r=n.indexOf(":");if(r===-1)return n.length>0?{text:n}:null;let i=n.slice(0,r).trim(),o=n.slice(r+1).trim();return i.length===0?null:{key:i,value:o}}function _t(e){return e==="true"?!0:e==="false"?!1:/^-?\d+(?:\.\d+)?$/.test(e)?Number(e):e}function z(e,t){return`- ${e}: ${String(t)}`}function Ub(e){return`- ${e}`}function jb(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT"}function gd(e,t,n){let r=n===void 0?"":` ${n instanceof Error?n.message:String(n)}`;console.warn(`[aperture] ${t} (${e})${r}`)}function Ar(e){switch(e){case"ambient":return"ambient";case"next":case"queue":return"next";case"now":case"active":return"now";default:return}}async function Qd(e,t){return sa(Yo(e,"JUDGMENT.md"),t,qb)}function qb(e){let t=new Map,n=new Map,r=new Map,i=new Map,o=null,a=null;for(let d of e.split(`
|
|
6
|
-
`)){let m=ba(d);if(m){m.level===2?(o=m.text,a=null):m.level===3&&o==="Policy"&&(a=m.text,n.has(a)||n.set(a,{}));continue}let f=va(d);if(!(!f||!("key"in f))){if(o==="Meta"){t.set(f.key,f.value);continue}if(o==="Policy"&&a){let g=_t(f.value),S
|
|
7
|
-
`)){let m=ba(d);if(m){m.level===2?(i=m.text,o=null):m.level===3&&i==="Tool Overrides"&&(o=m.text,r.has(o)||r.set(o,{}));continue}let f=va(d);if(!(!f||!("key"in f))){if(i==="Meta"){ia(t,f.key,f.value);continue}if(i==="Preferences"){ia(n,f.key,f.value);continue}if(i==="Tool Overrides"&&o){let g=_t(f.value),S=
|
|
8
|
-
`)){let S=ba(g);if(S){S.level===2?(a=S.text,c=null):S.level===3&&(c=S.text);continue}let b=va(g);if(b){if(a==="Meta"&&"key"in b){ia(t,b.key,b.value);continue}if(a==="Tool Families"&&c&&"key"in b){n.set(c,{...n.get(c)??
|
|
9
|
-
`)}function Xb(){return{presentations:0,responses:0,dismissals:0}}function ia(e,t,n){let r=e.get(t)??[];r.push(n),e.set(t,r)}function kt(e,t){return e.get(t)?.[0]??null}function ze(e,t){return e.get(t)??[]}function oa(e){return e!==null&&/^-?\d+(?:\.\d+)?$/.test(e)?Number(e):null}function vr(e){return e.replace(/\s+([a-z])/g,(t,n)=>n.toUpperCase())}async function Qb(e){let t=new zb(e),[n,r,i]=await Promise.all([t.loadUserProfile(ep()),t.loadMemoryProfile(nv()),Qd(e,tp())]);return{profileStore:t,markdownRootDir:e,userProfile:n,memoryProfile:r,judgmentConfig:i}}async function ev(e){let[t,n,r]=await Promise.all([e.profileStore.loadUserProfile(e.userProfile??ep()),e.profileStore.loadMemoryProfile(e.memoryProfile),Qd(e.markdownRootDir,e.judgmentConfig??tp())]);return{userProfile:t,memoryProfile:n,judgmentConfig:r}}async function tv(e){if(!e.profileStore)return null;let t=Bd(e.memoryProfile,e.signals,e.now);return await e.profileStore.saveMemoryProfile(t),t}function ep(){return{version:Ze,operatorId:"default",updatedAt:Zt(0)}}function nv(){return{version:Ze,operatorId:"default",updatedAt:Zt(0),sessionCount:0}}function tp(){return{version:Ze,updatedAt:Zt(0)}}function zo(e){let{timestamp:t,event:n,eventTransition:r,evidence:i,taskView:o,attentionView:a}=e;return{timestamp:t,event:n,eventTransition:r,taskSummary:i.taskSignalSummary,globalSummary:i.globalSignalSummary,taskAttentionState:i.taskAttentionState,globalAttentionState:i.globalAttentionState,pressureForecast:i.pressureForecast,attentionBurden:i.attentionBurden,current:i.currentFrame,taskView:o,attentionView:a}}function Or(e,t=[]){return{rule:e,kind:"noop",rationale:t}}function At(e,t,n=t.rationale){return{rule:e,kind:"verdict",verdict:t,rationale:n}}var rv=e=>e.candidate.priority!=="background"?Or("background"):At("background",{autoApprove:!1,mayInterrupt:!1,requiresOperatorResponse:!1,minimumLane:"ambient",minimumLaneIsSticky:!0,rationale:["background work should remain peripheral by default"]}),sv=e=>e.candidate.blocking?At("blocking",{autoApprove:!1,mayInterrupt:!0,requiresOperatorResponse:!0,minimumLane:"now",minimumLaneIsSticky:!1,rationale:["blocking interactions require explicit operator attention"]}):Or("blocking");function iv(e,t){let n=e?.policy;if(!n)return;let r=ov(t);for(let i of r){let o=n[i];if(o)return o}}function np(e){return rp(e)?fa(e):null}function ov(e){let t=[];if(!rp(e))return t;let n=np(e),r=[e.title,e.summary??"",...e.context?.items?.flatMap(i=>[i.label,i.value??""])??[]].join(" ").toLowerCase();return e.consequence==="low"&&n==="read"&&t.push("lowRiskRead"),e.consequence==="low"&&n==="web"&&t.push("lowRiskWeb"),r.includes(".env")&&(n==="write"||n==="edit"||n==="bash")&&t.push("envWrite"),(n==="write"||n==="edit")&&t.push("fileWrite"),n==="bash"&&e.consequence==="high"&&t.push("destructiveBash"),t}function rp(e){return e.activityClass!==void 0?av(e.activityClass):e.mode==="approval"}function av(e){switch(e){case"permission_request":return!0;case"question_request":case"follow_up":case"tool_completion":case"tool_failure":case"session_status":case"status_update":return!1;default:return e}}var cv=e=>{let{candidate:t,judgmentConfig:n,userProfile:r}=e,i=np(t),o=i?r?.overrides?.tools?.[i]:void 0,a=iv(n,t),c=o?.requireContextExpansion===!0||a?.requireContextExpansion===!0,u=a?.autoApprove===!0&&t.mode==="approval"&&t.responseSpec.kind==="approval"&&!c,d=Ar(o?.minimumLane??o?.defaultPresentation)??Ar(a?.minimumLane)??(c?"now":void 0),m=a?.mayInterrupt,f=!u&&(t.blocking||d==="now"||c);if(d===void 0&&m===void 0&&!o&&!u)return Or("configured_policy");let g=[];return i&&o&&g.push(`user override applies for ${i} interactions`),a&&g.push("configured judgment policy applies to this interaction"),u?(g.push("configured judgment policy auto-approves this bounded approval"),At("configured_policy",{autoApprove:!0,mayInterrupt:!1,requiresOperatorResponse:!1,minimumLane:"ambient",minimumLaneIsSticky:!0,rationale:g})):f?(g.push("operator-response work cannot remain passive without auto-resolution"),At("configured_policy",{autoApprove:!1,mayInterrupt:!0,requiresOperatorResponse:!0,minimumLane:"now",minimumLaneIsSticky:!1,rationale:g})):At("configured_policy",{autoApprove:!1,mayInterrupt:m??!1,requiresOperatorResponse:f,minimumLane:d??(t.blocking?"now":"next"),minimumLaneIsSticky:d!==void 0||m===!1,rationale:g})},uv=()=>At("interruptive_default",{autoApprove:!1,mayInterrupt:!0,requiresOperatorResponse:!1,minimumLane:"next",minimumLaneIsSticky:!1,rationale:["urgent non-blocking work may compete for interruptive attention"]});function Ge(e,t=[]){return{rule:e,kind:"noop",rationale:t}}function Ee(e,t,n=t.rationale){return{rule:e,kind:"verdict",verdict:t,rationale:n}}function sp(e,t,n){return{rule:e,kind:"adjust",criterion:t,rationale:n}}function Rr(e){return{criterion:e,peripheralResolution:null,ambiguity:null,rationale:[]}}function lv(e,t,n=[]){return{criterion:e,peripheralResolution:t,ambiguity:null,rationale:n}}function vn(e,t,n,r){return{criterion:e,peripheralResolution:t,ambiguity:n,rationale:r}}var dv=e=>{let{evidence:t,criterion:n}=e,r=t.attentionBurden.thresholdOffset;return r<=0?Ge("attention_budget"):sp("attention_budget",{activationThreshold:n.activationThreshold+r,promotionMargin:n.promotionMargin+r},["sustained attention burden raises the interrupt bar until the operator load eases"])},pv=e=>{let{candidate:t,policyVerdict:n,criterion:r,peripheralResolution:i,evidence:o}=e;return!n.mayInterrupt&&n.minimumLaneIsSticky?Ee("interrupt_eligibility",lv(r,mv(t,i,o.surfaceCapabilities))):t.blocking||t.episodeState==="actionable"||n.autoApprove||n.requiresOperatorResponse||n.minimumLane==="now"?Ee("interrupt_eligibility",Rr(r)):Ge("interrupt_eligibility")};function mv(e,t,n){if(t!=="ambient"||!n.topology.supportsAmbient)return"queue";switch(e.responseSpec.kind){case"approval":case"acknowledge":case"none":return"ambient";case"choice":return(e.responseSpec.selectionMode==="multiple"?n.responses.supportsMultipleChoice:n.responses.supportsSingleChoice)&&(!e.responseSpec.allowTextResponse||n.responses.supportsTextResponse)?"ambient":"queue";case"form":return n.responses.supportsForm?"ambient":"queue"}}var fv=e=>{let{candidate:t,evidence:n,candidateScore:r,criterion:i,peripheralResolution:o}=e;return n.currentFrame||t.episodeId!==void 0&&[n.attentionView.now,...n.attentionView.next,...n.attentionView.ambient].filter(a=>a!==null).some(a=>a.interactionId!==t.interactionId&&It(a)===t.episodeId&&!Ue(Et(a)))?Ge("no_active_frame"):r>=i.activationThreshold?Ee("no_active_frame",Rr(i)):Ee("no_active_frame",vn(i,o,{kind:"interrupt",reason:"low_signal",resolution:o},["uncertain interruptive work stays peripheral until its signal is stronger"]))},gv=e=>{let{evidence:t,criterion:n,peripheralResolution:r}=e;return t.operatorPresence!=="absent"?Ge("operator_absence"):Ee("operator_absence",{criterion:n,peripheralResolution:r,ambiguity:null,rationale:["operator absence keeps interruptive work peripheral until foreground attention returns"]})},hv=e=>{let{candidate:t}=e;return t.mode!=="status"||t.consequence==="high"||t.tone==="critical"?Or("peripheral_status"):At("peripheral_status",{autoApprove:!1,mayInterrupt:!1,requiresOperatorResponse:!1,minimumLane:"ambient",minimumLaneIsSticky:!1,rationale:["non-critical status work should start in the periphery"]})},yv=e=>{let{candidate:t,criterion:n,peripheralResolution:r}=e;return t.blocking?Ge("semantic_uncertainty"):Ir(t)?Ee("semantic_uncertainty",vn(n,r,{kind:"interrupt",reason:"low_signal",resolution:r},["semantic interpretation abstained, so non-blocking work stays peripheral until stronger explicit evidence arrives"])):kr(t)==="low"?Ee("semantic_uncertainty",vn(n,r,{kind:"interrupt",reason:"low_signal",resolution:r},["low-confidence semantic interpretation keeps non-blocking work peripheral until the signal is clearer"])):Nd(t)==="weak"?Ee("semantic_uncertainty",vn(n,r,{kind:"interrupt",reason:"low_signal",resolution:r},["inferred semantic evidence stays peripheral until stronger source-backed context arrives"])):Ge("semantic_uncertainty",Tt(t)!==null?["semantic evidence is strong enough to keep ordinary interrupt rules in play"]:[])},Sv=e=>{let{candidateScore:t,currentScore:n,criterion:r,peripheralResolution:i}=e;return n===null||t<=n||t>=n+r.promotionMargin?Ee("small_score_gap",Rr(r)):Ee("small_score_gap",vn(r,i,{kind:"interrupt",reason:"small_score_gap",resolution:i},["small score gaps resolve to the periphery instead of stealing focus immediately"]))},bv=2,Tr=6,vv=e=>{let{candidate:t,criterion:n,sourceTrustAdjustment:r}=e,i=kv(r),o=Vy(t),a=Math.max(-Tr,Math.min(Tr,i+o));if(a===0)return Ge("source_trust");let c={activationThreshold:Math.max(0,n.activationThreshold-a),promotionMargin:Math.max(0,n.promotionMargin-a)},u=[...i>0?["durable source trust lowers the interrupt bar for this source"]:i<0?["low-trust source signals need a clearer margin before interrupting"]:[],...o>0?["explicit semantic evidence lowers the interrupt bar slightly"]:o<0?["inferred semantic evidence needs a clearer margin before interrupting"]:[]];return sp("source_trust",c,u)};function kv(e){return e===0?0:Math.max(-Tr,Math.min(Tr,Math.trunc(e/bv)))}var Iv=[cv,sv,rv,hv,uv],Ev=[gv,pv,vv,dv,yv,fv,Sv],ip=class{judgmentConfig;userProfile;memoryProfile;constructor(e={}){this.judgmentConfig=e.judgmentConfig,this.userProfile=e.userProfile,this.memoryProfile=e.memoryProfile}evaluateGates(e){return this.explainGates(e).verdict}explainGates(e){let t=this.buildPolicyGateInput(e),n=[];for(let i of Iv){let o=i(t);if(n.push(o),o.kind==="verdict")return{verdict:o.verdict,evaluations:n}}return{verdict:{autoApprove:!1,mayInterrupt:!0,requiresOperatorResponse:!1,minimumLane:"next",minimumLaneIsSticky:!1,rationale:["urgent non-blocking work may compete for interruptive attention"]},evaluations:n}}evaluateInterruptCriterion(e,t,n,r,i,o={}){return this.explainInterruptCriterion(e,t,n,r,i,o).verdict}explainInterruptCriterion(e,t,n,r,i,o={}){let a=this.readInterruptCriterion(o.ambiguityDefaults),c=this.readPeripheralResolution(e,t),u=this.readSourceTrustAdjustment(e),d=[],m=[];for(let f of Ev){let g=f(this.buildPolicyCriterionInput(e,t,n,r,i,a,u,c));if(m.push(g),g.kind==="adjust"){a=g.criterion,d.push(...g.rationale);continue}if(g.kind==="verdict")return{verdict:{...g.verdict,rationale:[...d,...g.verdict.rationale]},evaluations:m}}return{verdict:{criterion:a,peripheralResolution:null,ambiguity:null,rationale:d},evaluations:m}}readInterruptCriterion(e){return{activationThreshold:e?.nonBlockingActivationThreshold??this.judgmentConfig?.ambiguityDefaults?.nonBlockingActivationThreshold??V.ambiguity.nonBlockingActivationThreshold,promotionMargin:e?.promotionMargin??this.judgmentConfig?.ambiguityDefaults?.promotionMargin??V.ambiguity.promotionMargin}}readPeripheralResolution(e,t){return Dd(e,t.minimumLane==="ambient"?"ambient":"queue")}readSourceTrustAdjustment(e){let t=e.source?.kind??e.source?.id;return t?this.memoryProfile?.sourceTrust?.[t]?.[e.consequence]?.trustAdjustment??0:0}buildPolicyGateInput(e){return{candidate:e,...this.judgmentConfig!==void 0?{judgmentConfig:this.judgmentConfig}:{},...this.userProfile!==void 0?{userProfile:this.userProfile}:{}}}buildPolicyCriterionInput(e,t,n,r,i,o,a,c){return{candidate:e,policyVerdict:t,evidence:n,candidateScore:r,currentScore:i,criterion:o,sourceTrustAdjustment:a,peripheralResolution:c}}},L=V.attentionValue,op=class{memoryProfile;constructor(e={}){this.memoryProfile=e.memoryProfile}scoreCandidate(e){let t=this.sourceTrustAdjustment(e),n=this.consequenceCalibrationAdjustment(e),r=this.responseAffinityAdjustment(e),i=this.contextCostAdjustment(e),o=this.deferralAffinityAdjustment(e),a={priority:wv(e.priority)*100,consequence:_v(e.consequence)*10,tone:Av(e.tone),blocking:e.blocking?1e3:0,heuristics:e.attentionScoreOffset??0,sourceTrust:t,consequenceCalibration:n,responseAffinity:r,contextCost:i,deferralAffinity:o},c=e.attentionRationale?[...e.attentionRationale]:[];return t!==0&&c.push("durable source trust adjusts this interaction's utility"),n>0&&c.push("memory suggests this consequence band is often understated and deserves more attention"),n<0&&c.push("memory suggests this consequence band is often overstated and should be tempered"),r>0&&c.push("memory suggests this kind of interaction usually resolves quickly"),i<0&&c.push("memory suggests this interaction usually needs extra context before action"),o>0&&c.push("memory suggests deferred interactions of this kind are usually resumed"),{total:a.priority+a.consequence+a.tone+a.blocking+a.heuristics+a.sourceTrust+a.consequenceCalibration+a.responseAffinity+a.contextCost+a.deferralAffinity,components:a,rationale:c}}scoreAttentionFrame(e,t={}){return{total:xe(e,t),components:{attentionAdjustment:hd(e)}}}sourceTrustAdjustment(e){let t=e.source?.kind??e.source?.id;return t?this.memoryProfile?.sourceTrust?.[t]?.[e.consequence]?.trustAdjustment??0:0}responseAffinityAdjustment(e){let t=Go(e);if(!t)return 0;let n=this.memoryProfile?.toolFamilies?.[t];return!n||n.avgResponseLatencyMs===void 0||n.presentations<L.memorySufficiency.toolFamilyPresentations||n.responses<L.memorySufficiency.toolFamilyResponses?0:n.avgResponseLatencyMs<=L.responseAffinity.fastLatencyMs?L.responseAffinity.fastBoost:n.avgResponseLatencyMs<=L.responseAffinity.mediumLatencyMs?L.responseAffinity.mediumBoost:0}consequenceCalibrationAdjustment(e){let t=this.memoryProfile?.consequenceProfiles?.[e.consequence],n=t?.rejectionRate;if(n===void 0||(t?.reviewedCount??0)<L.memorySufficiency.consequenceReviewedCount)return 0;switch(e.consequence){case"low":return n>=L.consequenceCalibration.highRejectionRate?L.consequenceCalibration.adjustments.low.highRate:n>=L.consequenceCalibration.mediumRejectionRate?L.consequenceCalibration.adjustments.low.mediumRate:0;case"medium":return n>=L.consequenceCalibration.highRejectionRate?L.consequenceCalibration.adjustments.medium.highRate:n>=L.consequenceCalibration.mediumRejectionRate?L.consequenceCalibration.adjustments.medium.mediumRate:0;case"high":return n>=L.consequenceCalibration.highRejectionRate?L.consequenceCalibration.adjustments.high.highRate:n>=L.consequenceCalibration.mediumRejectionRate?L.consequenceCalibration.adjustments.high.mediumRate:0}}contextCostAdjustment(e){let t=Go(e);if(!t)return 0;let n=this.memoryProfile?.toolFamilies?.[t]?.contextExpansionRate;return n===void 0||(this.memoryProfile?.toolFamilies?.[t]?.presentations??0)<L.memorySufficiency.toolFamilyPresentations?0:n>=L.contextCost.highRate?L.contextCost.highPenalty:n>=L.contextCost.mediumRate?L.contextCost.mediumPenalty:0}deferralAffinityAdjustment(e){let t=Go(e);if(!t)return 0;let n=this.memoryProfile?.toolFamilies?.[t]?.returnAfterDeferralRate;return n===void 0||(this.memoryProfile?.toolFamilies?.[t]?.presentations??0)<L.memorySufficiency.toolFamilyPresentations?0:n>=L.deferralAffinity.highRate?L.deferralAffinity.highBoost:n>=L.deferralAffinity.mediumRate?L.deferralAffinity.mediumBoost:0}};function Go(e){return fa(e)}function wv(e){switch(e){case"background":return 0;case"normal":return 1;case"high":return 2}}function _v(e){switch(e){case"low":return 0;case"medium":return 1;case"high":return 2}}function Av(e){switch(e){case"ambient":return 0;case"focused":return 1;case"critical":return 2}}var Rv=class{policyGates;utilityScore;queuePlanner;ambiguityDefaults;constructor(e=new ip,t=new op,n=new Zd,r={}){this.policyGates=e,this.utilityScore=t,this.queuePlanner=n,this.ambiguityDefaults=r.ambiguityDefaults}coordinate(e,t,n={}){return this.explain(e,t,n).decision}explain(e,t,n={}){let r=this.resolveEvidenceContext(e,n,t.timestamp),i=this.policyGates.explainGates(t),o=i.verdict,a=this.utilityScore.scoreCandidate(t),c=r.currentFrame?xe(r.currentFrame,{now:t.timestamp}):null,u=r.pressureForecast;if(o.autoApprove){let g=[...o.rationale,"bounded approval work is auto-resolved instead of entering the attention surface"];return{decision:{kind:"auto_approve",candidate:t,response:{taskId:t.taskId,interactionId:t.interactionId,response:{kind:"approved"}}},policy:o,policyGateEvaluations:i.evaluations,utility:a,criterion:null,policyCriterionEvaluations:[],pressureForecast:u,attentionBurden:r.attentionBurden,candidateScore:a.total,currentScore:c,currentPriority:null,ambiguity:null,reasons:g,continuityEvaluations:[]}}let d=this.policyGates.explainInterruptCriterion(t,o,r,a.total,c,this.ambiguityDefaults!==void 0?{ambiguityDefaults:this.ambiguityDefaults}:{}),m=d.verdict;if(m.peripheralResolution){let g=[...o.rationale,...m.rationale];return{decision:{kind:m.peripheralResolution,candidate:t},policy:o,policyGateEvaluations:i.evaluations,utility:a,criterion:m,policyCriterionEvaluations:d.evaluations,pressureForecast:u,attentionBurden:r.attentionBurden,candidateScore:a.total,currentScore:c,currentPriority:r.currentFrame?ie(r.currentFrame):null,ambiguity:m.ambiguity,reasons:g,continuityEvaluations:[]}}let f=this.queuePlanner.explain(r.currentFrame,t,{...r,policyVerdict:o,utility:a,pressureForecast:u,candidateScore:a.total,currentScore:c});return{decision:f.decision,policy:o,policyGateEvaluations:i.evaluations,utility:a,criterion:m,policyCriterionEvaluations:d.evaluations,pressureForecast:u,attentionBurden:r.attentionBurden,candidateScore:a.total,currentScore:f.currentScore,currentPriority:f.currentPriority,ambiguity:null,reasons:f.reasons,continuityEvaluations:f.continuityEvaluations??[]}}clear(){return this.queuePlanner.clear()}resolveEvidenceContext(e,t,n){return ga(e,Pr(t),Tv(n))}};function Tv(e){let t=Date.parse(e);return Number.isNaN(t)?0:t}function xv(e={}){return{userProfile:e.userProfile,baseMemoryProfile:e.memoryProfile??Cv(),judgmentConfig:e.judgmentConfig,surfaceCapabilities:aa(e.surfaceCapabilities),operatorPresence:e.operatorPresence??"present",responseExpiryMs:e.responseExpiryMs,timeSource:e.timeSource??Date.now}}function Zo(e){return new Rv(new ip({...e.userProfile!==void 0?{userProfile:e.userProfile}:{},...e.judgmentConfig!==void 0?{judgmentConfig:e.judgmentConfig}:{},memoryProfile:e.baseMemoryProfile}),new op({memoryProfile:e.baseMemoryProfile}),new Zd({...e.judgmentConfig?.plannerDefaults!==void 0?{plannerDefaults:e.judgmentConfig.plannerDefaults}:{}}))}function aa(e){let t=e??_r;return{topology:{...t.topology},responses:{...t.responses}}}function Cv(){return{version:Ze,operatorId:"default",updatedAt:Zt(0),sessionCount:0}}function Pv(e){switch(F("event.id",e.id),F("event.taskId",e.taskId),ka("event.timestamp",e.timestamp),e.source!==void 0&&F("event.source.id",e.source.id),e.type){case"task.started":case"task.updated":F("event.title",e.title);break;case"human.input.requested":F("event.interactionId",e.interactionId),F("event.title",e.title),F("event.summary",e.summary);break;case"task.completed":case"task.cancelled":break;default:return Uv(e)}}function Ov(e){switch(F("event.id",e.id),F("event.taskId",e.taskId),ka("event.timestamp",e.timestamp),e.source&&F("event.source.id",e.source.id),e.type){case"task.started":F("event.title",e.title);return;case"task.updated":F("event.title",e.title),Mv("event.status",e.status);return;case"task.completed":return;case"task.cancelled":e.reason!==void 0&&F("event.reason",e.reason);return;case"human.input.requested":F("event.interactionId",e.interactionId),F("event.title",e.title),F("event.summary",e.summary),Fv("event.request",e.request),e.riskHint!==void 0&&Dv("event.riskHint",e.riskHint);return;default:return jv(e)}}function Nv(e){switch(F("response.taskId",e.taskId),F("response.interactionId",e.interactionId),e.response.kind){case"acknowledged":case"approved":case"rejected":case"dismissed":return;case"option_selected":if(e.response.optionIds.length===0)throw new fe("response.optionIds must contain at least one option id",{field:"response.optionIds"});return;case"text_submitted":F("response.text",e.response.text);return;case"form_submitted":if(e.response.values===null||typeof e.response.values!="object"||Array.isArray(e.response.values))throw new fe("response.values must be an object",{field:"response.values"});return}}function Lv(e){F("signal.taskId",e.taskId),F("signal.interactionId",e.interactionId),ka("signal.timestamp",e.timestamp),e.source!==void 0&&F("signal.source.id",e.source.id)}function F(e,t){if(typeof t!="string"||t.trim().length===0)throw new fe(`${e} must be a non-empty string`,{field:e})}function ka(e,t){if(F(e,t),Number.isNaN(Date.parse(t)))throw new fe(`${e} must be a valid ISO timestamp`,{field:e})}function Mv(e,t){if(!["running","blocked","waiting","completed","failed"].includes(t))throw new fe(`${e} must be a valid task status`,{field:e})}function Dv(e,t){if(!["low","medium","high"].includes(t))throw new fe(`${e} must be a valid consequence level`,{field:e})}function Fv(e,t){if(!t||typeof t!="object"||!("kind"in t))throw new fe(`${e} must be a valid human input request`,{field:e});switch(t.kind){case"approval":return;case"choice":if(!Array.isArray(t.options)||t.options.length===0)throw new fe(`${e}.options must contain at least one option`,{field:`${e}.options`});return;case"form":if(!Array.isArray(t.fields)||t.fields.length===0)throw new fe(`${e}.fields must contain at least one field`,{field:`${e}.fields`});return;default:throw new fe(`${e} must have a supported request kind`,{field:e})}}function Uv(e){throw new fe(`Unhandled ApertureEvent in validation: ${JSON.stringify(e)}`,{field:"event.type",code:"unsupported_event_variant"})}function jv(e){throw new fe(`Unhandled SourceEvent in validation: ${JSON.stringify(e)}`,{field:"event.type",code:"unsupported_event_variant"})}var qv=Symbol("aperture.internal.readHealth"),ap=class cp{listeners=new Rb;taskViews=new cb;heuristics=new Rh;evaluation=new iS;traceRecorder=new lb;coordinator;planner=new uS;attentionEvidence;frameLifecycle;profileStore;markdownRootDir;baseMemoryProfile;userProfile;judgmentConfig;surfaceCapabilities;operatorPresence;responseExpiryMs;clock;signals;episodes;operatorEngagement;reloadInFlight=null;constructor(t={}){let n=xv(t);this.markdownRootDir=t.markdownRootDir,this.profileStore=t.profileStore,this.userProfile=n.userProfile,this.judgmentConfig=n.judgmentConfig,this.surfaceCapabilities=n.surfaceCapabilities,this.operatorPresence=n.operatorPresence,this.responseExpiryMs=n.responseExpiryMs,this.clock=Cr(n.timeSource),this.signals=new mS({clock:this.clock}),this.episodes=new Jy({clock:this.clock}),this.operatorEngagement=new vb(n.timeSource),this.baseMemoryProfile=n.baseMemoryProfile,this.coordinator=Zo(n),this.attentionEvidence=new JS({signals:this.signals,episodes:this.episodes,clock:this.clock,getTaskView:r=>this.getTaskView(r),getAttentionView:()=>this.getAttentionView(),getOperatorPresence:()=>this.getOperatorPresence(),getSurfaceCapabilities:()=>this.getSurfaceCapabilities()}),this.frameLifecycle=new ob({taskViews:this.taskViews,planner:this.planner,episodes:this.episodes,clock:this.clock,responseExpiryMs:this.responseExpiryMs,getAttentionView:()=>this.getAttentionView(),recordSignal:r=>this.recordSignal(r),clearOperatorEngagement:(r,i)=>this.operatorEngagement.clear(r,i),notifyFrame:(r,i)=>this.listeners.emitFrame(r,i),notifyTaskView:(r,i)=>this.listeners.emitTaskView(r,i),notifyAttentionView:()=>this.listeners.emitAttentionView(this.getAttentionView()),emitResponse:r=>this.listeners.emitResponse(r)})}static async fromMarkdown(t){let{profileStore:n,markdownRootDir:r,userProfile:i,memoryProfile:o,judgmentConfig:a}=await Qb(t);return new cp({userProfile:i,memoryProfile:o,judgmentConfig:a,profileStore:n,markdownRootDir:r})}async reloadMarkdown(){if(!this.profileStore||!this.markdownRootDir)return!1;if(this.reloadInFlight)return this.reloadInFlight;this.reloadInFlight=this.performMarkdownReload();try{return await this.reloadInFlight}finally{this.reloadInFlight=null}}publishSourceEvent(t){return Ov(t),this.publishPreparedEvent(Mb(t))}publish(t,n={}){return Pv(t),this.publishPreparedEvent(Db(t,n))}publishPreparedEvent(t){let{finalizedEvent:n,originalEvent:r,transitionKind:i}=t,o=bb(i,r,n),a=this.getFrame(n.taskId),c=this.attentionEvidence.assemble(n.taskId,a),u=c.taskSignalSummary,d=c.globalSignalSummary,m=c.attentionView,f=this.evaluation.evaluate(n);switch(f.kind){case"noop":return this.notifyTrace(this.traceRecorder.recordNoop(zo({timestamp:this.nowIso(),event:n,eventTransition:o,evidence:c,taskView:c.currentTaskView,attentionView:m}))),null;case"clear":{let g=this.frameLifecycle.applyClear(n.taskId),S=this.getAttentionView();return this.notifyTrace(this.traceRecorder.recordClear(zo({timestamp:this.nowIso(),event:n,eventTransition:o,evidence:c,taskView:this.getTaskView(n.taskId),attentionView:S}),n.taskId)),g}case"candidate":{let g=this.prepareCandidateForJudgment(f.candidate,u,d),S=this.explainCandidateDecision(n.taskId,g,c),b=this.applyCandidateDecision(n.taskId,S,c,m),O=this.getAttentionView();return this.notifyTrace(this.traceRecorder.recordCandidate(zo({timestamp:this.nowIso(),event:n,eventTransition:o,evidence:c,taskView:this.getTaskView(n.taskId),attentionView:O}),{original:f.candidate,adjusted:g,explanation:S,result:b})),b}}}prepareCandidateForJudgment(t,n,r){return this.episodes.assign(this.heuristics.apply(t,n,r))}explainCandidateDecision(t,n,r){let i=this.attentionEvidence.augmentContinuitySignalSummary(t,n,r);return this.coordinator.explain(r.currentFrame,n,i)}applyCandidateDecision(t,n,r,i){switch(n.decision.kind){case"auto_approve":return this.frameLifecycle.applyAutoResponse(n.decision.candidate,n.decision.response);case"clear":return this.frameLifecycle.applyClear(t);case"ambient":return this.frameLifecycle.materializePeripheralFrame(n.decision.candidate,"ambient",i);case"queue":return this.frameLifecycle.materializePeripheralFrame(n.decision.candidate,"queue",i);case"activate":return this.applyActivationDecision(n,r,i)}}applyActivationDecision(t,n,r){if(t.decision.kind!=="activate")return null;let i=t.decision.candidate;if(this.frameLifecycle.shouldRetireSupersededEpisodeFrames(i,r))return this.frameLifecycle.commitFrame(this.frameLifecycle.applyResponseExpiry(this.planner.plan(i,n.currentFrame)),this.frameLifecycle.findSupersededEpisodeFrames(i,r));let o=i.episodeId?this.frameLifecycle.findPeripheralEpisodeFrame(i.episodeId,r):null;return o&&this.frameLifecycle.shouldPromotePeripheralEpisodeFrame(t)?this.frameLifecycle.promotePeripheralEpisodeFrame(i,o.frame):o?this.frameLifecycle.materializePeripheralFrame(i,ya(i,t.policy,n.surfaceCapabilities),r):this.frameLifecycle.commitFrame(this.frameLifecycle.applyResponseExpiry(this.planner.plan(i,n.currentFrame)))}getFrame(t){return this.taskViews.get(t).now??null}subscribe(t,n){return this.listeners.subscribeFrame(t,n,this.getFrame(t))}subscribeTaskView(t,n){return this.listeners.subscribeTaskView(t,n,this.getTaskView(t))}subscribeAttentionView(t){return this.listeners.subscribeAttentionView(t,this.getAttentionView())}onResponse(t){return this.listeners.onResponse(t)}onSignal(t){return this.listeners.onSignal(t)}onTrace(t){return this.listeners.onTrace(t)}[ra](t){return this.listeners[ra](t)}submit(t){Nv(t),this.frameLifecycle.submit(t)}getTaskView(t){return this.taskViews.get(t)}getAttentionView(){return kh(this.taskViews.values(),{globalAttentionState:this.getAttentionState(),operatorPresence:this.getOperatorPresence(),focusedInteractionId:this.readOperatorEngagementInteractionId()})}getSignals(t){return this.signals.list(t)}getSignalSummary(t){return this.signals.summarize(t)}getAttentionState(t){return bt(this.signals.summarize(t))}[qv](){return{attentionState:this.getAttentionState(),operatorPresence:this.getOperatorPresence(),responseExpiryMs:this.responseExpiryMs??null,surfaceCapabilities:this.getSurfaceCapabilities(),listeners:this.listeners.getHealthSnapshot(),stores:{taskViews:this.taskViews.stats(),signals:this.signals.stats(),episodes:this.episodes.stats()}}}getSurfaceCapabilities(){return aa(this.surfaceCapabilities)}getOperatorPresence(){return this.operatorPresence}setOperatorPresence(t){this.operatorPresence=t}engage(t,n,r={}){if(!this.frameLifecycle.findFrameByInteractionId(t,n))return;let i=this.getAttentionView();this.operatorEngagement.engage(t,n,r,()=>{let a=this.getAttentionView();this.operatorEngagement.clear(t,n);let c=this.getAttentionView();dd(a,c)||this.notifyAttentionView()});let o=this.getAttentionView();dd(i,o)||this.notifyAttentionView()}setSurfaceCapabilities(t){this.surfaceCapabilities=aa(t)}snapshotMemoryProfile(t=this.nowIso()){return Bd(this.baseMemoryProfile,this.signals.list(),t)}async checkpointMemory(t=this.nowIso()){let n=await tv({profileStore:this.profileStore,memoryProfile:this.baseMemoryProfile,signals:this.signals.list(),now:t});return n?(this.baseMemoryProfile=n,this.coordinator=Zo({userProfile:this.userProfile,baseMemoryProfile:this.baseMemoryProfile,judgmentConfig:this.judgmentConfig}),n):null}markViewed(t,n,r={}){let i=this.frameLifecycle.findFrame(t,n);this.recordSignal(yr("viewed",t,n,this.nowIso(),i,r))}markTimedOut(t,n,r={}){let i=this.frameLifecycle.findFrame(t,n);this.recordSignal(yr("timed_out",t,n,this.nowIso(),i,r))}markContextExpanded(t,n,r={}){let i=this.frameLifecycle.findFrame(t,n);this.recordSignal(yr("context_expanded",t,n,this.nowIso(),i,r))}markContextSkipped(t,n,r={}){let i=this.frameLifecycle.findFrame(t,n);this.recordSignal(yr("context_skipped",t,n,this.nowIso(),i,r))}recordSignal(t){Lv(t),this.signals.record(t),this.listeners.emitSignal(t)}notifyFrame(t,n){this.listeners.emitFrame(t,n)}notifyTaskView(t,n){this.listeners.emitTaskView(t,n)}notifyAttentionView(){this.listeners.emitAttentionView(this.getAttentionView())}readOperatorEngagementInteractionId(){return this.operatorEngagement.readFocusedInteractionId((t,n)=>this.frameLifecycle.findFrameByInteractionId(t,n)!==null)}notifyTrace(t){this.listeners.emitTrace(t)}nowIso(){return this.clock.nowIso()}async performMarkdownReload(){let{userProfile:t,memoryProfile:n,judgmentConfig:r}=await ev({profileStore:this.profileStore,markdownRootDir:this.markdownRootDir,userProfile:this.userProfile,memoryProfile:this.baseMemoryProfile,judgmentConfig:this.judgmentConfig}),i=Zo({userProfile:t,baseMemoryProfile:n,judgmentConfig:r});return this.userProfile=t,this.baseMemoryProfile=n,this.judgmentConfig=r,this.coordinator=i,!0}};function Ia(e){return e?{id:e.id,taskId:e.taskId,interactionId:e.interactionId,source:e.source,version:e.version,mode:e.mode,tone:e.tone,consequence:e.consequence,title:e.title,summary:e.summary,context:e.context,responseSpec:e.responseSpec,provenance:e.provenance,timing:e.timing,metadata:e.metadata}:null}function oe(e){return{companyId:e,updatedAt:new Date().toISOString(),now:null,next:[],ambient:[],counts:{now:0,next:0,ambient:0,total:0}}}function Ye(){return[]}function G(e){return{companyId:e,updatedAt:new Date().toISOString(),frames:{}}}function he(e,t,n,r){let i=t,o=Ia("now"in t?t.now:i.active??null),a=("next"in t?t.next:i.queued??[]).map(u=>Ia(u)).filter(u=>u!==null),c=t.ambient.map(u=>Ia(u)).filter(u=>u!==null);return{companyId:e,updatedAt:r??new Date().toISOString(),now:o,next:a,ambient:c,counts:{now:o?1:0,next:a.length,ambient:c.length,total:(o?1:0)+a.length+c.length},...n?{lastEvent:n}:{}}}function Yt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function lp(e){let t=Yt(e);return t&&typeof t.taskId=="string"&&typeof t.interactionId=="string"?t:null}function up(e){return Array.isArray(e)?e.map(lp).filter(t=>t!==null):[]}function Jt(e,t){let n=Yt(t);if(!n||n.companyId!==e||typeof n.updatedAt!="string")return null;let r=Yt(n.counts),i=Yt(n.review),o=Yt(i?.unread),a=lp(n.now??n.active??null),c=up(n.next??n.queued??[]),u=up(n.ambient);return{companyId:e,updatedAt:n.updatedAt,now:a,next:c,ambient:u,counts:{now:typeof r?.now=="number"?r.now:typeof r?.active=="number"?r.active:a?1:0,next:typeof r?.next=="number"?r.next:typeof r?.queued=="number"?r.queued:c.length,ambient:typeof r?.ambient=="number"?r.ambient:u.length,total:typeof r?.total=="number"?r.total:(a?1:0)+c.length+u.length},...i?{review:{...typeof i.lastSeenAt=="string"?{lastSeenAt:i.lastSeenAt}:{},unread:{now:typeof o?.now=="number"?o.now:typeof o?.active=="number"?o.active:0,next:typeof o?.next=="number"?o.next:typeof o?.queued=="number"?o.queued:0,ambient:typeof o?.ambient=="number"?o.ambient:0,total:typeof o?.total=="number"?o.total:0}}}:{},...Yt(n.lastEvent)?{lastEvent:{eventType:String(n.lastEvent.eventType),...typeof n.lastEvent.entityId=="string"?{entityId:n.lastEvent.entityId}:{},...typeof n.lastEvent.entityType=="string"?{entityType:n.lastEvent.entityType}:{}}}:{}}}var Nr={topology:{supportsAmbient:!0},responses:{supportsSingleChoice:!0,supportsMultipleChoice:!1,supportsForm:!1,supportsTextResponse:!0}};var Hv=100,Ea=100,dp=1800*1e3,$v=15e3,Mr=class{sessions=new Map;getHealth(){return{trackedCompanies:this.sessions.size,maxCompanySessions:Ea,idleSessionTtlMs:dp,faultedCompanies:[...this.sessions.values()].filter(t=>t.persistence.state==="faulted").length,hostCacheEntries:[...this.sessions.values()].reduce((t,n)=>t+n.hostCache.size,0),cachedReconciliations:[...this.sessions.values()].filter(t=>t.reconciledCandidates!==null).length}}getCoreDiagnostics(t){let n=this.sessions.get(t);if(!n)return null;this.touchSession(n);let r=this.syncSnapshotFromCore(t,n),i=r.now?{taskId:r.now.taskId,interactionId:r.now.interactionId,signalSummary:n.core.getSignalSummary(r.now.taskId),attentionState:n.core.getAttentionState(r.now.taskId)}:null;return{eventCount:n.eventCount,persistence:{...n.persistence},surfaceCapabilities:n.core.getSurfaceCapabilities(),operatorPresence:n.core.getOperatorPresence(),globalSignalSummary:n.core.getSignalSummary(),globalAttentionState:n.core.getAttentionState(),memoryProfile:n.core.snapshotMemoryProfile(r.updatedAt),ledger:Vv(n.ledger),host:{cacheEntries:n.hostCache.size,hostDataRevision:n.hostDataRevision,approvalRecords:n.approvals.records?.length??0,approvalsDirty:n.approvals.dirty,approvalAdapterLastLoadedAt:n.approvals.lastLoadedAt,approvalAdapterLastError:n.approvals.lastError},currentNowTask:i}}hasSession(t){return this.sessions.has(t)}hydrate(t,n){let r=this.sessions.get(t);if(r)return this.touchSession(r),{snapshot:r.snapshot??he(t,r.core.getAttentionView()),review:r.review};let i=this.buildSession(t,n);return this.sessions.set(t,i),this.pruneSessions(),{snapshot:i.snapshot??he(t,i.core.getAttentionView()),review:i.review}}ingest(t,n,r){let i=this.ensureSession(t),o=i.core.publish(n);return i.eventCount+=1,i.snapshot=he(t,i.core.getAttentionView(),r),{frame:o,snapshot:i.snapshot}}submit(t,n,r){let i=this.ensureSession(t);return i.core.submit(n),i.snapshot=he(t,i.core.getAttentionView(),r),i.snapshot}getSnapshot(t){let n=this.sessions.get(t);return n?(this.touchSession(n),this.syncSnapshotFromCore(t,n)):null}getLedger(t){let n=this.sessions.get(t);return n&&this.touchSession(n),[...n?.ledger??[]]}getReview(t){let n=this.sessions.get(t);return n?(this.touchSession(n),n.review):null}setReview(t,n){let r=this.ensureSession(t);return r.review=n,this.invalidateReconciled(t),r.review}getTraces(t){let n=this.sessions.get(t);return n&&this.touchSession(n),[...n?.traces??[]]}getCachedReconciledCandidates(t,n){let r=this.sessions.get(t);r&&this.touchSession(r);let i=r?.reconciledCandidates;return!i||i.key!==n?null:i.expiresAt<=Date.now()?(r&&(r.reconciledCandidates=null,r.hostDataRevision+=1),null):[...i.candidates]}setCachedReconciledCandidates(t,n,r){let i=this.ensureSession(t);return i.reconciledCandidates={key:n,candidates:[...r],expiresAt:Date.now()+$v},[...r]}getReconciledRevision(t){return this.sessions.get(t)?.hostDataRevision??0}invalidateReconciled(t){let n=this.sessions.get(t);n&&(n.reconciledCandidates=null,n.hostDataRevision+=1)}getCachedHostValue(t,n){let r=this.sessions.get(t);if(!r)return null;this.touchSession(r);let i=r.hostCache.get(n);return i?i.expiresAt<=Date.now()?(r.hostCache.delete(n),null):i.value:null}setCachedHostValue(t,n,r,i){return this.ensureSession(t).hostCache.set(n,{value:r,expiresAt:Date.now()+Math.max(1,i)}),r}invalidateHostCache(t,n={}){let r=this.sessions.get(t);if(!r)return;let{keys:i=[],prefixes:o=[],bumpRevision:a=!0}=n;for(let c of i)r.hostCache.delete(c);if(o.length>0)for(let c of[...r.hostCache.keys()])o.some(u=>c.startsWith(u))&&r.hostCache.delete(c);a&&this.invalidateReconciled(t)}getApprovals(t){return this.sessions.get(t)?.approvals.records??null}setApprovals(t,n){let r=this.ensureSession(t);return r.approvals={records:[...n],dirty:!1,lastLoadedAt:new Date().toISOString(),lastError:void 0},[...n]}approvalsDirty(t){let n=this.sessions.get(t);return n&&this.touchSession(n),n?.approvals.dirty??!0}invalidateApprovals(t){let n=this.sessions.get(t);n&&(n.approvals={records:n.approvals.records,dirty:!0,lastLoadedAt:n.approvals.lastLoadedAt,lastError:n.approvals.lastError})}markApprovalAdapterFailure(t,n){let r=this.ensureSession(t);r.approvals={records:r.approvals.records,dirty:!0,lastLoadedAt:r.approvals.lastLoadedAt,lastError:n}}restore(t,n){let r=this.buildSession(t,n,this.sessions.get(t));return this.sessions.set(t,r),{snapshot:r.snapshot??he(t,r.core.getAttentionView()),review:r.review}}markPersistenceHealthy(t){let n=this.sessions.get(t);n&&(n.persistence={state:"healthy",updatedAt:new Date().toISOString()})}markPersistenceFault(t,n){let r=this.ensureSession(t);r.persistence={state:"faulted",updatedAt:new Date().toISOString(),lastError:n}}appendLedgerEntry(t,n){let r=this.ensureSession(t);return r.ledger=[...r.ledger,n],this.getLedger(t)}applyEvent(t,n){let r=this.ensureSession(t),i=r.ledger,o=r.snapshot,a=r.eventCount;r.ledger=[...r.ledger,n];try{let c=n.sourceEvent?r.core.publishSourceEvent(n.sourceEvent):r.core.publish(n.apertureEvent);return r.eventCount+=1,r.snapshot=he(t,r.core.getAttentionView(),n.source,n.occurredAt),r.reconciledCandidates=null,{frame:c,ledger:this.getLedger(t),snapshot:r.snapshot}}catch(c){throw r.ledger=i,r.snapshot=o,r.eventCount=a,c}}applyResponse(t,n){let r=this.ensureSession(t),i=r.ledger,o=r.snapshot,a=r.eventCount;r.ledger=[...r.ledger,n];try{return r.core.submit(n.apertureResponse),r.snapshot=he(t,r.core.getAttentionView(),n.source,n.occurredAt),r.reconciledCandidates=null,{ledger:this.getLedger(t),snapshot:r.snapshot}}catch(c){throw r.ledger=i,r.snapshot=o,r.eventCount=a,c}}applyOverlayResponse(t,n){let r=this.ensureSession(t);return r.ledger=[...r.ledger,n],r.reconciledCandidates=null,{ledger:this.getLedger(t),snapshot:this.syncSnapshotFromCore(t,r)}}applySignal(t,n){let r=this.ensureSession(t),i=this.syncSnapshotFromCore(t,r);r.ledger=[...r.ledger,n],r.core.recordSignal(n.apertureSignal);let o=this.syncSnapshotFromCore(t,r);return{ledger:this.getLedger(t),snapshot:o,changed:!Lr(i,o)}}replaceLedger(t,n){let r=this.ensureSession(t);return r.ledger=[...n],r.reconciledCandidates=null,this.getLedger(t)}rebuildFromLedger(t,n){let r=this.sessions.get(t)?.review??G(t),i=this.buildSession(t,{ledger:n,review:r},this.sessions.get(t));return this.sessions.set(t,i),i.snapshot??he(t,i.core.getAttentionView())}getCompanyCount(){return this.sessions.size}engage(t,n,r,i={}){let o=this.ensureSession(t),a=this.syncSnapshotFromCore(t,o);o.core.engage(n,r,i);let c=this.syncSnapshotFromCore(t,o);return{snapshot:c,changed:!Lr(a,c)}}markViewed(t,n,r,i={}){let o=this.ensureSession(t),a=this.syncSnapshotFromCore(t,o);o.core.markViewed(n,r,i);let c=this.syncSnapshotFromCore(t,o);return{snapshot:c,changed:!Lr(a,c)}}markContextExpanded(t,n,r,i={}){let o=this.ensureSession(t),a=this.syncSnapshotFromCore(t,o);o.core.markContextExpanded(n,r,i);let c=this.syncSnapshotFromCore(t,o);return{snapshot:c,changed:!Lr(a,c)}}setOperatorPresence(t,n){let r=this.ensureSession(t);return r.core.setOperatorPresence(n),this.touchSession(r),r.core.getOperatorPresence()}ensureSession(t){let n=this.sessions.get(t);return n?(this.touchSession(n),n):(n=this.createSession(t),this.sessions.set(t,n),this.pruneSessions(),n)}buildSession(t,n,r){let i=this.createSession(t);if(i.ledger=[...n.ledger],i.review=n.review??G(t),i.approvals={records:r?.approvals.records?[...r.approvals.records]:null,dirty:r?.approvals.dirty??!0,lastLoadedAt:r?.approvals.lastLoadedAt,lastError:r?.approvals.lastError},i.hostCache=r?new Map(r.hostCache):new Map,i.hostDataRevision=r?.hostDataRevision??0,i.persistence=r?.persistence??wa(),i.traces=r?[...r.traces]:[],n.ledger.length>0){let o,a;for(let c of n.ledger)o=c.source,a=c.occurredAt,c.kind==="event"?(c.sourceEvent?i.core.publishSourceEvent(c.sourceEvent):i.core.publish(c.apertureEvent),i.eventCount+=1):c.kind==="response"?i.core.submit(c.apertureResponse):c.kind==="signal"&&i.core.recordSignal(c.apertureSignal);i.snapshot=he(t,i.core.getAttentionView(),o,a)}else i.snapshot=n.snapshot??he(t,i.core.getAttentionView());return i.persistence=r?.persistence?.state==="faulted"?r.persistence:wa(),i}createSession(t){let n=new ap({surfaceCapabilities:Nr}),r=Date.now(),i={core:n,snapshot:null,ledger:Ye(),review:G(t),eventCount:0,traces:[],reconciledCandidates:null,approvals:{records:null,dirty:!0},hostCache:new Map,hostDataRevision:0,persistence:wa(),lastTouchedAt:r};return n.onTrace(o=>{i.traces=[...i.traces.slice(-(Hv-1)),o]}),i}touchSession(t){t.lastTouchedAt=Date.now()}pruneSessions(){let t=Date.now();for(let[r,i]of this.sessions.entries())t-i.lastTouchedAt>dp&&this.sessions.delete(r);if(this.sessions.size<=Ea)return;let n=[...this.sessions.entries()].sort((r,i)=>r[1].lastTouchedAt-i[1].lastTouchedAt);for(;this.sessions.size>Ea&&n.length>0;){let[r]=n.shift();this.sessions.delete(r)}}syncSnapshotFromCore(t,n){let r=n.core.getAttentionView(),i=n.snapshot;if(i&&Bv(i,r))return i;let o=he(t,r,i?.lastEvent);return n.snapshot=o,o}};function Lr(e,t){return!e||!t?e===t:e.now?.interactionId===t.now?.interactionId&&Dr(e.next,t.next)&&Dr(e.ambient,t.ambient)}function Bv(e,t){return e.now?.interactionId===t.now?.interactionId&&Dr(e.next,t.next)&&Dr(e.ambient,t.ambient)}function Dr(e,t){return e.length===t.length&&e.every((n,r)=>n.interactionId===t[r]?.interactionId)}function Vv(e){return{entries:e.length,eventEntries:e.filter(t=>t.kind==="event").length,responseEntries:e.filter(t=>t.kind==="response").length,overlayResponseEntries:e.filter(t=>t.kind==="overlay-response").length,signalEntries:e.filter(t=>t.kind==="signal").length,replayStrategy:"full-ledger",compactionRecommended:e.length>2e3}}function wa(){return{state:"healthy",updatedAt:new Date().toISOString()}}function Je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Ce(e){return typeof e=="string"&&e.trim().length>0?e:void 0}function _a(e){return e===null?null:Ce(e)}function Fr(e){if(!Array.isArray(e))return;let t=e.filter(n=>typeof n=="string"&&n.trim().length>0);return t.length>0?t:void 0}function Kv(e){if(!Array.isArray(e))return;let t=e.filter(n=>{if(typeof n!="object"||n===null)return!1;let r=n;return r.kind==="same_issue"||r.kind==="resolves"||r.kind==="supersedes"||r.kind==="repeats"||r.kind==="escalates"});return t.length>0?t:void 0}function _n(e){let t=Je(e.metadata),n=Je(t?.attention),r=Je(t?.semantic),i=Je(t?.episode),o=Je(t?.issueIntelligence),a=Je(t?.decision);return{entityType:Ce(t?.entityType),issueStatus:Ce(t?.issueStatus),issuePriority:Ce(t?.issuePriority),approvalStatus:Ce(t?.approvalStatus),approvalType:Ce(t?.approvalType),agentStatus:Ce(t?.agentStatus),pauseReason:_a(t?.pauseReason),liveReconciled:typeof t?.liveReconciled=="boolean"?t.liveReconciled:void 0,activityPath:Ce(t?.activityPath),attention:n?{rationale:Fr(n.rationale)}:void 0,semantic:r?{confidence:r.confidence==="low"||r.confidence==="medium"||r.confidence==="high"?r.confidence:void 0,relationHints:Kv(r.relationHints)}:void 0,episode:i?{size:typeof i.size=="number"?i.size:void 0,state:Ce(i.state)}:void 0,issueIntelligence:o?{matchedRuleIds:Fr(o.matchedRuleIds),owner:_a(o.owner),ownerKind:o.ownerKind==="agent"||o.ownerKind==="human"?o.ownerKind:o.ownerKind===null?null:void 0,blockingTarget:_a(o.blockingTarget)}:void 0,decision:a?{owner:a.owner==="aperture_core"||a.owner==="paperclip_reconciliation"||a.owner==="approval_overlay"||a.owner==="display_merge"?a.owner:void 0,lane:a.lane==="now"||a.lane==="next"||a.lane==="ambient"?a.lane:void 0,sourcePolicy:Ce(a.sourcePolicy),rationale:Fr(a.rationale),promotedFromLane:a.promotedFromLane==="next"||a.promotedFromLane==="ambient"?a.promotedFromLane:void 0}:void 0}}function xt(e,t){let n=Je(e.metadata)??{},r=Je(n.decision)??{},i=[...Fr(r.rationale)??[],...t.rationale??[]].filter((o,a,c)=>c.indexOf(o)===a);return{...e,metadata:{...n,decision:{...r,...t,...i.length>0?{rationale:i}:{}}}}}function Aa(e){return{taskId:e.taskId,interactionId:e.interactionId,response:e.action==="dismiss"?{kind:"dismissed"}:e.action==="approve"?{kind:"approved"}:e.action==="reject"?{kind:"rejected"}:e.action==="request-revision"?{kind:"rejected",reason:"revision requested"}:{kind:"acknowledged"}}}function Ra(e,t){let n=e.trim();if(!n)throw new Error(`${t} is required.`);return n}function pp(e){try{let t=decodeURIComponent(e);return t.trim().length>0?t:null}catch{return null}}function je(e,t){let n=Ra(e,"task kind"),r=Ra(t,"task id");return`${encodeURIComponent(n)}:${encodeURIComponent(r)}`}function An(e){if(typeof e!="string")return null;let t=e.indexOf(":");if(t<=0||t>=e.length-1)return null;let n=pp(e.slice(0,t)),r=pp(e.slice(t+1));return!n||!r?null:{kind:n,id:r}}function mp(e){return An(e)?.kind??null}function fp(e,t){return An(e)?.kind===t}function ye(e,t){let n=Ra(t,"interaction step");return`${e}:${encodeURIComponent(n)}`}var Wv="http://127.0.0.1:3100";function zv(e){let t=typeof e.paperclipApiBase=="string"?e.paperclipApiBase.trim():"",n=t.length>0?t:Wv,r=new URL(n);if(r.protocol!=="http:"&&r.protocol!=="https:")throw new Error("paperclipApiBase must be an http(s) URL.");return r.toString()}async function gp(e,t,n,r={}){let{expectJson:i=!0,retries:o=0,headers:a,...c}=r,u=new URL(n,zv(t)).toString(),d=null;for(let m=0;m<=o;m+=1)try{let f=await e.http.fetch(u,{...c,headers:{Accept:"application/json","X-Requested-With":"XMLHttpRequest",...a??{}}});if(!f.ok){let g=await f.text().catch(()=>"");throw new Error(`Request failed (${f.status})${g?`: ${g.trim()}`:""}`)}return i?await f.json():void 0}catch(f){if(d=f instanceof Error?f:new Error(String(f)),m>=o)break;await new Promise(g=>setTimeout(g,250*(m+1)))}throw d??new Error("Request failed.")}async function hp(e,t,n){return gp(e,n,`/api/companies/${t}/approvals?status=pending`,{method:"GET",retries:2})}async function yp(e,t,n,r){let i=n==="request-revision"?`/api/approvals/${t}/request-revision`:`/api/approvals/${t}/${n}`;await gp(e,r,i,{method:"POST",expectJson:!1,headers:{"Content-Type":"application/json"},body:JSON.stringify({})})}var Gv=1,Zv=2,bp=3;function Ur(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Yv(e){return!e||typeof e!="object"?!1:typeof e.eventType=="string"}function Jv(e){if(!e||typeof e!="object")return!1;let t=e;return t.kind!=="event"&&t.kind!=="response"&&t.kind!=="overlay-response"&&t.kind!=="signal"||typeof t.id!="string"||typeof t.occurredAt!="string"||!Yv(t.source)?!1:t.kind==="event"?!!t.apertureEvent&&typeof t.apertureEvent=="object":t.kind==="response"?!!t.apertureResponse&&typeof t.apertureResponse=="object":t.kind==="overlay-response"?!!t.apertureResponse&&typeof t.apertureResponse=="object"&&!!t.overlay&&typeof t.overlay=="object":!!t.apertureSignal&&typeof t.apertureSignal=="object"}function Xt(e){return Array.isArray(e)&&e.every(Jv)}function Rn(e,t){if(!e||typeof e!="object")return!1;let n=e;return n.companyId!==t||typeof n.updatedAt!="string"||!n.frames||typeof n.frames!="object"?!1:Object.values(n.frames).every(r=>{if(!r||typeof r!="object")return!1;let i=r;return(i.lastSeenAt===void 0||typeof i.lastSeenAt=="string")&&(i.suppressedAt===void 0||typeof i.suppressedAt=="string")})}function vp(e,t){let n=t.snapshot??oe(e),r=t.review??G(e);return{schemaVersion:bp,payload:{companyId:e,ledger:[...t.ledger],snapshot:n,review:r,meta:jr(t.ledger)}}}function kp(e,t){let n=Ur(t);if(!n)return null;let r=n.schemaVersion;return r===bp||r===Zv?Sp(e,n):r===Gv?Xv(e,n):r===void 0?Qv(e,n):null}function jr(e,t=new Date().toISOString()){let n=e.length;return{persistedAt:t,ledgerEntries:n,eventEntries:e.filter(r=>r.kind==="event").length,responseEntries:e.filter(r=>r.kind==="response").length,overlayResponseEntries:e.filter(r=>r.kind==="overlay-response").length,signalEntries:e.filter(r=>r.kind==="signal").length,replayStrategy:"full-ledger",compactionRecommended:n>2e3}}function Sp(e,t){let n=Ur(t.payload);if(!n||n.companyId!==e)return null;let r=Xt(n.ledger)?n.ledger:Ye(),i=Jt(e,n.snapshot),o=Rn(n.review,e)?n.review:G(e);return i?{companyId:e,ledger:r,snapshot:i,review:o,meta:ek(n.meta,r)}:null}function Xv(e,t){let n=Ur(t.payload);if(!n||n.companyId!==e)return null;let r=Xt(n.ledger)?n.ledger:Ye(),i=Jt(e,n.snapshot),o=Rn(n.review,e)?n.review:G(e);return i?{companyId:e,ledger:r,snapshot:i,review:o,meta:jr(r)}:null}function Qv(e,t){if(t.companyId!==e)return null;let n=Xt(t.ledger)?t.ledger:Ye(),r=Jt(e,t.snapshot),i=Rn(t.review,e)?t.review:G(e);return r?{companyId:e,ledger:n,snapshot:r,review:i,meta:jr(n)}:null}function ek(e,t){let n=Ur(e);return n&&typeof n.persistedAt=="string"&&typeof n.ledgerEntries=="number"&&typeof n.eventEntries=="number"&&typeof n.responseEntries=="number"?{persistedAt:n.persistedAt,ledgerEntries:n.ledgerEntries,eventEntries:n.eventEntries,responseEntries:n.responseEntries,overlayResponseEntries:typeof n.overlayResponseEntries=="number"?n.overlayResponseEntries:t.filter(r=>r.kind==="overlay-response").length,signalEntries:typeof n.signalEntries=="number"?n.signalEntries:t.filter(r=>r.kind==="signal").length,replayStrategy:"full-ledger",compactionRecommended:typeof n.compactionRecommended=="boolean"?n.compactionRecommended:t.length>2e3}:jr(t)}var Ep="attention-state",wp="attention-snapshot",_p="attention-ledger",Ap="attention-review",Ip="attention-updates",qr=new Map,Ta=[10,30];function Y(e,t){let n=e[t];if(typeof n=="string"&&n.trim().length>0)return n;throw new Error(`${t} is required`)}function K(e){return Y(e,"companyId")}async function Tn(e,t){let n=await e.state.get({scopeKind:"company",scopeId:t,stateKey:Ep});return kp(t,n)}async function tk(e,t,n){await e.state.set({scopeKind:"company",scopeId:t,stateKey:Ep},vp(t,n))}function Pe(e,t){e.streams.open(Ip,t.companyId),e.streams.emit(Ip,t)}async function Rp(e,t){for(let n=0;n<=Ta.length;n+=1)try{await e();return}catch(r){let i=n===Ta.length;if(t(r,n+1,i),i)return;await new Promise(o=>{setTimeout(o,Ta[n])})}}async function Ct(e,t,n){await Rp(async()=>{await e.telemetry.track(t,{surface:"focus",...n??{}})},(r,i,o)=>{e.logger.warn(o?"Failed to emit Focus telemetry after retries":"Retrying Focus telemetry after failure",{eventName:t,attempt:i,error:r instanceof Error?r.message:String(r)})})}async function xa(e,t){await Rp(async()=>{await e.activity.log({companyId:t.companyId,message:t.message,...t.entityType?{entityType:t.entityType}:{},...t.entityId?{entityId:t.entityId}:{},...t.metadata?{metadata:t.metadata}:{}})},(n,r,i)=>{e.logger.warn(i?"Failed to write Focus activity log entry after retries":"Retrying Focus activity log entry after failure",{message:t.message,entityType:t.entityType,entityId:t.entityId,attempt:r,error:n instanceof Error?n.message:String(n)})})}async function qe(e,t,n,r){let i=qr.get(n)??Promise.resolve(),o,a=new Promise(S=>{o=S}),c=i.catch(()=>{}).then(()=>a);qr.set(n,c),await i.catch(()=>{});let u=await Tn(e,n),d=t.getLedger(n),m=t.getSnapshot(n)??oe(n),f=t.getReview(n)??u?.review??G(n),g=u??{companyId:n,ledger:d,snapshot:m,review:f};try{let S=await r();try{return S.review&&t.setReview(n,S.review),await tk(e,n,{ledger:S.ledger,snapshot:S.snapshot,review:S.review??t.getReview(n)??f}),t.markPersistenceHealthy(n),S}catch(b){throw t.restore(n,g),t.markPersistenceFault(n,b instanceof Error?b.message:String(b)),b}}catch(S){throw t.restore(n,g),S}finally{o(),qr.get(n)===c&&qr.delete(n)}}async function Hr(e,t,n){let r=t.getReview(n);if(r)return r;let i=await Tn(e,n);return i?.review?i.review:G(n)}function $r(e,t,n,r=!1){let i=new Date().toISOString(),o={...e,updatedAt:i,lastSeenAt:i,frames:{...e.frames}};for(let a of n){let c=o.frames[a]??{};o.frames[a]={...c,lastSeenAt:i,...r?{suppressedAt:i}:{}}}return o}function nk(e,t){return e?[...e.now?[e.now]:[],...e.next,...e.ambient].some(r=>r.taskId===t):!1}function Tp(e){return mp(e)??"unknown"}function rk(e,t){return e?e.now?.taskId===t?"now":e.next.some(n=>n.taskId===t)?"next":e.ambient.some(n=>n.taskId===t)?"ambient":"ui_only":"ui_only"}function Ca(e){let t=e.occurredAt??new Date().toISOString();return{kind:"signal",id:`${e.taskId}:${e.signal.kind}:${t}`,occurredAt:t,source:{eventType:e.sourceEventType,entityId:e.sourceEntityId??e.taskId,entityType:Tp(e.taskId)},apertureSignal:{...e.signal,taskId:e.taskId,interactionId:e.interactionId,timestamp:t}}}function xn(e,t){let n=rk(e,t),r=Tp(t),i=n==="ui_only"?null:n==="now"?e?.now??null:n==="next"?e?.next.find(a=>a.taskId===t)??null:e?.ambient.find(a=>a.taskId===t)??null,o={entityType:r,lane:n};if(i?.mode&&(o.mode=i.mode),i?.source?.kind&&(o.sourceKind=i.source.kind),i){let a=_n(i);typeof a.liveReconciled=="boolean"&&(o.liveReconciled=a.liveReconciled)}return o}function sk(e){let t=An(e);return t?.kind==="approval"?t.id:null}function xp(e,t){e.actions.register("set-focus-presence",async n=>{let r=K(n),o=Y(n,"presence")==="absent"?"absent":"present";return{ok:!0,operatorPresence:t.setOperatorPresence(r,o)}}),e.actions.register("mark-attention-viewed",async n=>{let r=K(n),i=Y(n,"taskId"),o=Y(n,"interactionId"),a=typeof n.surface=="string"&&n.surface.trim().length>0?n.surface.trim():"focus",c=t.getSnapshot(r),u=Ca({taskId:i,interactionId:o,sourceEventType:"plugin.local.viewed",signal:{kind:"viewed",surface:a}}),{snapshot:d,changed:m}=await qe(e,t,r,()=>{let{ledger:f,snapshot:g,changed:S}=t.applySignal(r,u);return{ledger:f,snapshot:g,changed:S}});return m&&Pe(e,{companyId:r,reason:"action",eventType:"plugin.local.viewed",updatedAt:d.updatedAt,counts:d.counts}),await Ct(e,"frame_viewed",{...xn(c,i),surface:a}),{ok:!0,snapshot:d,changed:m}}),e.actions.register("engage-focus",async n=>{let r=K(n),i=Y(n,"taskId"),o=Y(n,"interactionId"),a=typeof n.durationMs=="number"&&Number.isFinite(n.durationMs)?Math.max(25,Math.floor(n.durationMs)):void 0,c=typeof n.reason=="string"&&n.reason.trim().length>0?n.reason.trim():"operator_interaction",u=t.getSnapshot(r),d=new Date().toISOString(),m=[Ca({taskId:i,interactionId:o,occurredAt:d,sourceEventType:"plugin.local.engage.viewed",signal:{kind:"viewed",surface:"focus"}}),...c==="show_context"||c==="comment_compose"?[Ca({taskId:i,interactionId:o,occurredAt:d,sourceEventType:"plugin.local.engage.context_expanded",signal:{kind:"context_expanded",surface:"focus",section:c==="show_context"?"now_context":"comment_compose"}})]:[]],{snapshot:f,changed:g}=await qe(e,t,r,()=>{let S=t.engage(r,i,o,{durationMs:a}),b=t.getLedger(r),O=S.snapshot,U=!1;for(let j of m){let Z=t.applySignal(r,j);b=Z.ledger,O=Z.snapshot,U||=Z.changed}return{ledger:b,snapshot:O,changed:S.changed||U}});return g&&Pe(e,{companyId:r,reason:"action",eventType:"plugin.local.engage",updatedAt:f.updatedAt,counts:f.counts}),await Ct(e,"focus_engaged",{...xn(u,i),actionKind:"engage",reason:c,...a?{durationMs:a}:{}}),{ok:!0,snapshot:f,changed:g}}),e.actions.register("acknowledge-frame",async n=>{let r=K(n),i=Y(n,"taskId"),o=Y(n,"interactionId"),a=Aa({taskId:i,interactionId:o,action:"acknowledge"}),c={kind:"response",id:`${i}:acknowledge:${Date.now()}`,occurredAt:new Date().toISOString(),source:{eventType:"plugin.local.acknowledge",entityId:i},apertureResponse:a},u=t.getSnapshot(r),d=await Hr(e,t,r),m=$r(d,r,[i],!0),{snapshot:f}=await qe(e,t,r,()=>{let{ledger:g,snapshot:S}=t.applyResponse(r,c);return{ledger:g,snapshot:S,review:m}});return Pe(e,{companyId:r,reason:"action",eventType:"plugin.local.acknowledge",updatedAt:f.updatedAt,counts:f.counts}),await Ct(e,"frame_acknowledged",{...xn(u,i)}),{ok:!0,snapshot:f}}),e.actions.register("comment-on-issue",async n=>{let r=K(n),i=Y(n,"taskId"),o=Y(n,"issueId"),a=Y(n,"body").trim(),c=An(i);if(!c||c.kind!=="issue")throw new Error("Comments can only be posted on issue-backed frames.");if(c.id!==o)throw new Error("Issue comment target does not match the selected frame.");let u=await e.issues.createComment(o,a,r),d=t.getSnapshot(r),m=await Hr(e,t,r),f=$r(m,r,[i],!1),{snapshot:g}=await qe(e,t,r,()=>(t.invalidateHostCache(r,{keys:[`issue:${o}:detail`,`issue:${o}:comments`],prefixes:["issues:blocked","issues:in_review"]}),t.setReview(r,f),{ledger:t.getLedger(r),snapshot:t.getSnapshot(r)??oe(r),review:f}));return Pe(e,{companyId:r,reason:"action",eventType:"plugin.local.comment",updatedAt:g.updatedAt,counts:g.counts}),await Ct(e,"issue_comment_submitted",{...xn(d,i),actionKind:"comment"}),await xa(e,{companyId:r,message:"Posted an issue comment from Focus.",entityType:"issue",entityId:o,metadata:{source:"focus",taskId:i}}),{ok:!0,comment:u,review:f}}),e.actions.register("record-approval-response",async n=>{let r=K(n),i=Y(n,"taskId"),o=Y(n,"interactionId"),a=Y(n,"decision");if(!fp(i,"approval"))throw new Error("Approval responses can only be recorded for approval-backed frames.");if(!["approve","reject","request-revision"].includes(a))throw new Error("decision must be approve, reject, or request-revision.");let c=Aa({taskId:i,interactionId:o,action:a}),u={kind:"response",id:`${i}:${a}:${Date.now()}`,occurredAt:new Date().toISOString(),source:{eventType:`plugin.local.approval.${a}`,entityId:i},apertureResponse:c},d=sk(i);if(!d)throw new Error("Approval responses require a durable approval id.");let m=await e.config.get();await yp(e,d,a,m),t.invalidateApprovals(r);let f=await Hr(e,t,r),g=$r(f,r,[i],!0),S=t.getSnapshot(r),b=nk(S,i),{snapshot:O}=await qe(e,t,r,()=>{if(b){let{ledger:q,snapshot:ae}=t.applyResponse(r,u);return{ledger:q,snapshot:ae,review:g}}let U={kind:"overlay-response",id:u.id,occurredAt:u.occurredAt,source:u.source,apertureResponse:u.apertureResponse,overlay:{kind:"approval_overlay",reason:"Approval frame came from the Paperclip approvals display adapter, not the replayed Core snapshot."}},{ledger:j,snapshot:Z}=t.applyOverlayResponse(r,U);return{ledger:j,snapshot:Z,review:g}});return Pe(e,{companyId:r,reason:"action",eventType:`plugin.local.approval.${a}`,updatedAt:O.updatedAt,counts:O.counts}),await Ct(e,"approval_response_recorded",{...xn(S,i),decision:a==="request-revision"?"request_revision":a}),await xa(e,{companyId:r,message:a==="approve"?"Approved a Focus approval.":a==="reject"?"Rejected a Focus approval.":"Requested revision on a Focus approval.",entityType:"approval",entityId:d,metadata:{source:"focus",decision:a,taskId:i}}),{ok:!0,snapshot:O,review:g}}),e.actions.register("mark-attention-seen",async n=>{let r=K(n),i=Array.isArray(n.taskIds)?n.taskIds.filter(u=>typeof u=="string"&&u.trim().length>0):[];if(i.length===0)throw new Error("taskIds must include at least one frame task id.");let o=await Hr(e,t,r),a=$r(o,r,i),{snapshot:c}=await qe(e,t,r,()=>(t.setReview(r,a),{ledger:t.getLedger(r),snapshot:t.getSnapshot(r)??oe(r),review:a}));return Pe(e,{companyId:r,reason:"action",eventType:"plugin.local.seen",updatedAt:c.updatedAt,counts:c.counts}),await Ct(e,"attention_seen_marked",{frameCount:i.length}),{ok:!0,review:a,snapshot:c}})}var J={approvalType:"approval-type",requestedAmount:"requested-amount",budgetReason:"budget-reason",decisionContext:"decision-context",linkedIssues:"linked-issues",needsActionFrom:"needs-action-from",blockedBy:"blocked-by",blocksTarget:"blocks-target",recommendedMove:"recommended-move",issueStatus:"issue-status",issuePriority:"issue-priority",latestComment:"latest-comment",agentStatus:"agent-status",pauseReason:"pause-reason",agentTitle:"agent-title"};function X(e,t,n){return{id:e,label:t,value:n}}function Cn(e){return e.split(/[_\-.]/g).filter(Boolean).map(t=>t.slice(0,1).toUpperCase()+t.slice(1)).join(" ")}function Br(e){return X(J.approvalType,"Type",e)}function Vr(e){return X(J.requestedAmount,"Requested amount",e)}function Kr(e){return X(J.budgetReason,"Reason",e)}function Wr(e){return X(J.decisionContext,"Decision context",e)}function Cp(e){return X(J.linkedIssues,"Linked issues",e)}function Pp(e){return X(J.needsActionFrom,"Needs action from",e)}function Op(e){return X(J.blockedBy,"Blocked by",e)}function Np(e){return X(J.blocksTarget,"Blocks",e)}function Lp(e){return X(J.recommendedMove,"Recommended move",e)}function Mp(e){return X(J.issueStatus,"Status",e)}function Dp(e){return X(J.issuePriority,"Priority",e)}function Fp(e){return X(J.latestComment,"Latest comment",e)}function Up(e){return X(J.agentStatus,"Status",e)}function jp(e){return X(J.pauseReason,"Pause reason",e)}function qp(e){return X(J.agentTitle,"Role",e)}var ik=300*1e3;function Pn(e,t){return e.timing.updatedAt||t}function Hp(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function ok(e,t,n){let r=Hp(Pn(e,t)),i=Hp(n);return r===null||i===null?!1:i-r>ik}function $p(){return{now:0,next:0,ambient:0,total:0}}function Bp(e,t){return e?.frames[t]}function ak(e,t,n){let r=Bp(n,e.taskId)?.suppressedAt;return r?Pn(e,t).localeCompare(r)<=0:!1}function Pa(e,t,n){let r=Pn(e,t),i=Bp(n,e.taskId)?.lastSeenAt??n?.lastSeenAt;return i?r.localeCompare(i)>0:!0}function ck(e,t){let n=$p();return e.now&&Pa(e.now,e.updatedAt,t)&&(n.now+=1),n.next=e.next.filter(r=>Pa(r,e.updatedAt,t)).length,n.ambient=e.ambient.filter(r=>Pa(r,e.updatedAt,t)).length,n.total=n.now+n.next+n.ambient,n}function uk(e,t){return{...e,review:{lastSeenAt:t?.lastSeenAt,unread:ck(e,t)}}}function Qt(e,t,n,r,i=new Date().toISOString()){let o=e??{companyId:t,updatedAt:new Date().toISOString(),now:null,next:[],ambient:[],counts:$p()},a=new Set(n.map(q=>q.frame.taskId)),u=[...[...o.now?[{frame:o.now,lane:"now"}]:[],...o.next.map(q=>({frame:q,lane:"next"})),...o.ambient.map(q=>({frame:q,lane:"ambient"}))].filter(q=>!a.has(q.frame.taskId)),...n].filter(q=>!ak(q.frame,o.updatedAt,r)),d=q=>u.filter(ae=>ae.lane===q).sort((ae,E)=>Pn(E.frame,o.updatedAt).localeCompare(Pn(ae.frame,o.updatedAt))),m=d("now"),f=d("next"),g=d("ambient").filter(q=>!ok(q.frame,o.updatedAt,i)),S=m.shift()??null,b=S?null:f.shift()??null,O=S??b,U=[...m,...f].map(q=>q.frame),j=g.map(q=>q.frame),Z=b?xt(b.frame,{owner:"display_merge",lane:"now",sourcePolicy:"mergeStoredFrames.promoteNextWhenNowEmpty",promotedFromLane:"next",rationale:["No explicit now candidate was available, so the highest next candidate became the active focus."]}):O?.frame??null;return uk({...o,now:Z,next:U,ambient:j,counts:{now:Z?1:0,next:U.length,ambient:j.length,total:(Z?1:0)+U.length+j.length}},r)}function zr(e){return e?"Budget controls are blocking work until a board decision lands.":"A board decision is blocking work in Paperclip."}function On(e){return e?"Budget controls are blocking work until a board decision lands.":"Paperclip is waiting on a human approval before work can continue."}function Vp(e){return e.status==="error"?{whyNow:"This agent is in an error state and may have a failed or stalled run.",factors:["run failed","operator review"]}:e.status==="pending_approval"?{whyNow:"This agent is paused behind a human approval gate.",factors:["pending approval","waiting on human"]}:e.pauseReason==="budget"?{whyNow:"This agent is paused by budget controls.",factors:["budget stop","paused work"]}:{whyNow:"This agent is paused and may represent stale work.",factors:["paused work"]}}function Kp(e){return e.status==="error"?"An agent needs operator attention after entering an error state.":e.status==="pending_approval"?"A human decision is required before this agent can continue.":e.pauseReason==="budget"?"Budget controls are holding this agent in a paused state.":"This agent is paused and may need a quick operator check."}function Wp(e){return e.status==="error"?`${e.name} needs attention`:e.status==="pending_approval"?`${e.name} is waiting for approval`:`${e.name} is paused`}function zp(){return"An agent run failed and may need operator attention."}function Oa(){return"A Paperclip-managed run failed and is now competing for operator attention."}function Gp(){return"Agent waiting for approval"}function Zp(){return"A Paperclip-managed agent cannot continue until a pending approval is resolved."}function Na(){return"The agent is paused behind a Paperclip approval gate."}function lk(e){let t=e.payload??{},n=typeof t.title=="string"?t.title:typeof t.plan=="string"?t.plan:typeof t.name=="string"?t.name:null;return n||`${Cn(e.type)} approval`}function La(e){return e.type==="budget_override_required"}function dk(e){return e?e.filter(t=>t.status==="pending"||t.status==="revision_requested").sort((t,n)=>{let r=La(t)?1:0,i=La(n)?1:0;return r!==i?i-r:(n.updatedAt??n.createdAt).localeCompare(t.updatedAt??t.createdAt)}):[]}function pk(e){let t=je("approval",e.id),n=e.payload??{},r=La(e),i=typeof n.requestedAmount=="string"?n.requestedAmount:void 0,o=typeof n.reason=="string"?n.reason:void 0,a=typeof n.decisionContext=="string"?n.decisionContext:void 0,c=typeof n.summary=="string"?n.summary:zr(r),u=e.updatedAt??e.createdAt,d={whyNow:On(r),factors:r?["budget stop","approval","operator decision"]:["approval","operator decision"]};return xt({id:`approval-bootstrap:${e.id}`,taskId:t,interactionId:ye(t,"approval"),source:{id:"paperclip:approval",kind:"paperclip",label:"Paperclip approval"},version:1,mode:"approval",tone:"focused",consequence:r?"high":"medium",title:lk(e),summary:c,context:{items:[{...Br(Cn(e.type))},...i?[Vr(i)]:[],...o?[Kr(o)]:[],...a?[Wr(a)]:[]]},responseSpec:{kind:"approval",actions:[{id:"approve",label:"Approve",kind:"approve",emphasis:"primary"},{id:"reject",label:"Reject",kind:"reject",emphasis:"danger"},...r?[{id:"request-revision",label:"Request revision",kind:"cancel",emphasis:"secondary"}]:[]]},provenance:d,timing:{createdAt:e.createdAt,updatedAt:u},metadata:{entityType:"approval",approvalStatus:e.status,approvalType:e.type,attention:{rationale:d.factors},semantic:{confidence:"high"}}},{owner:"approval_overlay",lane:"next",sourcePolicy:"pendingApprovals.displayOverlay",rationale:["Pending approval fetched from Paperclip approvals adapter."]})}function Ma(e,t,n,r){let i=dk(n).map(pk),o=e??oe(t);return Qt(o,t,[...i.map(c=>({frame:c,lane:"next"}))],r)}var mk=[{id:"clarification.generic",key:"clarification",pattern:/\b(?:clarification|clarify|question|need(?:s|ed)?\s+(?:info|more|clarification|feedback)|waiting on|feedback needed)\b/i,description:"Signals that the thread is blocked on clarification or more information."},{id:"resolution.direction",key:"resolution",pattern:/final direction|lock these in|use these|not a request for iteration|you can proceed|ready to proceed|unblocked|resolved/i,description:"Signals that the latest guidance appears to resolve or unblock the thread."},{id:"artifact.share_with_board",key:"share_with_board",pattern:/share .* with the board/i,description:"Signals that a review artifact still needs to be shared with the board."},{id:"confirmation.explicit",key:"confirmation",pattern:/please review and confirm|review and confirm|confirm the direction|confirm whether|\bconfirm\b/i,description:"Signals an explicit confirmation step before work can continue."},{id:"board_instruction.explicit",key:"board_instruction",pattern:/(board should either .*?)(?:[.!?]|$)/i,description:"Signals explicit board-facing instructions in the latest operator text."},{id:"dependency.reference",key:"dependency_reference",pattern:/\b[A-Z]+-\d+\b/,description:"Signals a downstream dependency reference in the thread."}];function fk(e){return e.toUpperCase()===e?e:e.slice(0,1).toUpperCase()+e.slice(1).toLowerCase()}function gk(e){return e.toUpperCase()===e?e:e.toLowerCase()}function Zr(e,t=180){let n=e.replace(/\s+/g," ").trim();return n.length<=t?n:`${n.slice(0,t-1).trimEnd()}\u2026`}function hk(e,t){return[t?.body,e.description].filter(n=>!!n).join(`
|
|
10
|
-
`)}function Gr(e){if(!e)return 0;if(e instanceof Date)return e.getTime();let t=Date.parse(e);return Number.isNaN(t)?0:t}function yk(e){return e?typeof e=="string"?e:e.toISOString():null}function Yp(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function Sk(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Yr(e){return je("issue",e)}function bk(e){let t=new Set,n=[];for(let r of mk)r.pattern.test(e)&&(t.add(r.key),n.push(r.id));return{intents:t,matchedRuleIds:n}}function vk(e,t){let n=t?.toUpperCase();return(e.match(/\b[A-Z]+-\d+\b/g)??[]).find(i=>i.toUpperCase()!==n)??null}function kk(e){return e.replace(/\s+/g," ").trim().match(/(board should either .*?)(?:[.!?]|$)/i)?.[1]??null}function Ik(e){return e.has("resolution")||e.has("share_with_board")||e.has("confirmation")||e.has("board_instruction")?"high":e.has("clarification")?"medium":null}function Ek(e,t){let n=[],r=t??void 0;return r&&n.push({kind:"same_issue",target:r}),e.has("resolution")?(n.push(r?{kind:"resolves",target:r}:{kind:"resolves"}),n):e.has("share_with_board")||e.has("confirmation")||e.has("board_instruction")?(n.push(r?{kind:"supersedes",target:r}:{kind:"supersedes"}),n):(e.has("clarification")&&n.push(r?{kind:"repeats",target:r}:{kind:"repeats"}),n)}function Da(e){let{intents:t,matchedRuleIds:n}=bk(e.text);return{text:e.text,blockingTarget:vk(e.text,e.identifier),intents:t,matchedRuleIds:n,explicitBoardInstruction:kk(e.text),semanticConfidence:Ik(t),relationHints:Ek(t,e.issueTarget)}}function wk(e,t){if(!t||t.agentNames.length===0)return null;let n=e.match(/needed from\s+@([a-z0-9_-]+)/i)??e.match(/@([a-z0-9_-]+)/i);if(n?.[1]){let r=Yp(n[1]),i=t.agentNames.find(o=>Yp(o)===r);if(i)return i}return[...t.agentNames].sort((r,i)=>i.length-r.length).find(r=>new RegExp(`\\b${Sk(r)}\\b`,"i").test(e))??null}function Jp(e,t,n){let r=hk(e,t),i=Da({text:r,identifier:e.identifier,issueTarget:Yr(e.id)}),o=wk(r,n),a=r.match(/needed from\s+@([a-z0-9_-]+)/i)??r.match(/@([a-z0-9_-]+)/i),c=o??(a?.[1]?fk(a[1]):/board should|board can/i.test(r)?"Board":/ceo agent|@ceo|\bceo\b/i.test(r)?"CEO":/requires human|waiting on human|human review/i.test(r)?"Human":/operator intervention|operator review/i.test(r)?"Operator":null);return{...i,owner:c,ownerKind:o?"agent":c?"human":null}}function Q(e,t){return e.intents.has(t)}function Nn(e,t){return t==="agent"?e:gk(e)}function _k(e){return e.length===0?null:[...e].sort((t,n)=>Gr(n.updatedAt)-Gr(t.updatedAt))[0]??null}function Xp(e,t,n){let r=_k(e),i=yk(r?.updatedAt),o=t?.updatedAt??null;return{hasDocuments:e.length>0,latestDocumentTitle:r?.title??null,latestDocumentUpdatedAt:i,resolvesArtifactRequest:Q(n,"share_with_board")&&!!r&&(!o||Gr(i)>=Gr(o))}}function Qp(e,t,n){let r=t.text.replace(/\s+/g," ").trim();return n?.resolvesArtifactRequest?"Monitor the review now that the memo is attached.":Q(t,"resolution")?"Monitor execution and confirm the team resumes work.":Q(t,"share_with_board")?"Share the memo with the board so review can continue.":t.explicitBoardInstruction?Zr(t.explicitBoardInstruction,140):Q(t,"confirmation")?t.blockingTarget?`Confirm the direction so ${t.blockingTarget} can proceed.`:"Review the draft and confirm whether work should proceed.":/leave a comment/i.test(r)?"Leave a comment with enough context for work to resume.":/complete [A-Z]+-\d+/i.test(r)?"Complete the blocking dependency or add enough context to proceed.":e.status==="blocked"?"Unblock the dependency or add the missing context needed to continue.":e.status==="in_review"?"Review the issue and decide whether work can continue.":null}function em(e,t,n){if(n?.resolvesArtifactRequest)return"The requested memo appears attached, so review should be able to continue.";if(Q(t,"resolution"))return"Latest operator guidance appears to unblock this issue.";if(Q(t,"share_with_board"))return"Board still needs the memo before review can continue.";if(Q(t,"confirmation")&&t.blockingTarget)return`Waiting on confirmation before ${t.blockingTarget} can proceed.`;let r=Q(t,"clarification"),i=t.owner;return e.status==="blocked"&&i?r?`Blocked on ${Nn(i,t.ownerKind)} clarification before work can continue.`:`Blocked on ${Nn(i,t.ownerKind)} action before work can continue.`:e.status==="blocked"?r?"Blocked issue waiting on clarification before work can continue.":"Blocked issue that may need operator intervention to move forward.":e.status==="in_review"?i?`Waiting on ${Nn(i,t.ownerKind)} review before work can continue.`:"Issue is waiting on human review before work can continue.":e.description?Zr(e.description):"This issue has new operator-relevant activity."}function tm(e,t,n){if(n?.resolvesArtifactRequest)return{whyNow:n.latestDocumentTitle?`${n.latestDocumentTitle} was attached after the request, so the missing artifact appears resolved.`:"A review document was attached after the request, so the missing artifact appears resolved.",factors:["document attached","review can proceed"]};if(Q(t,"resolution"))return{whyNow:"The latest comment appears to resolve the blocker; monitor execution rather than intervening.",factors:["comment follow-up"]};if(Q(t,"share_with_board"))return{whyNow:"The board still needs the memo before review can continue.",factors:["waiting on human","issue review"]};if(Q(t,"confirmation")&&t.blockingTarget)return{whyNow:`${t.blockingTarget} is waiting on explicit confirmation before work can continue.`,factors:["waiting on human","issue review"]};let r=t.owner;if(e.status==="blocked"){let i=Q(t,"clarification");return{whyNow:r?i?`This issue is blocked on clarification from ${Nn(r,t.ownerKind)}.`:`This issue is blocked on action from ${Nn(r,t.ownerKind)}.`:i?"This issue is blocked on clarification from a human.":"This issue is blocked and may need operator intervention.",factors:i?["blocked","needs clarification","waiting on human"]:["blocked","operator review"]}}return e.status==="in_review"?{whyNow:"This issue is waiting on human review before work can continue.",factors:["waiting on human","issue review"]}:{whyNow:"A recent issue comment added operator-relevant context.",factors:["comment follow-up"]}}var Fa=6,Ak=15e3,Rk=15e3,Tk=15e3,xk=15e3,Ck=15e3;function Pk(e,t){let n={...e?{confidence:e}:{},...t.length>0?{relationHints:t}:{}};return Object.keys(n).length>0?n:void 0}function He(e){if(e)return typeof e=="string"?e:e.toISOString()}function nm(e){if(!e)return 0;if(e instanceof Date)return e.getTime();let t=Date.parse(e);return Number.isNaN(t)?0:t}function sm(){return{kind:"acknowledge",actions:[{id:"acknowledge",label:"Acknowledge",kind:"acknowledge",emphasis:"primary"}]}}function Ok(e){return e.identifier?`${e.identifier} ${e.title}`:e.title}function Nk(e){if(e.length===0)return null;let t=[...e].sort((r,i)=>nm(i.updatedAt)-nm(r.updatedAt))[0],n=He(t.updatedAt)??He(t.createdAt)??new Date(0).toISOString();return{body:Zr(t.body),updatedAt:n}}function Lk(e){return e.priority==="critical"||e.priority==="high"?"high":"medium"}function Mk(e,t,n){return(e.status==="blocked"||e.status==="in_review")&&(Q(n.analysis,"resolution")||n.documentSignal.resolvesArtifactRequest)?t||e.isUnreadForMe||n.documentSignal.hasDocuments?"ambient":null:e.status==="blocked"?e.priority==="critical"?"now":"next":e.status==="in_review"?"next":t||e.isUnreadForMe?"ambient":null}function Dk(e){return e.status==="done"||e.status==="cancelled"}function im(e){return e?.blockedBy.filter(t=>!Dk(t))??[]}function om(e){return im(e)[0]??null}function ja(e){return e.identifier?`${e.identifier} ${e.title}`:e.title}function Fk(e){let t=im(e);if(t.length===0)return null;let[n,...r]=t,i=ja(n);return r.length>0?`${i} +${r.length} more`:i}function Uk(e){if(!e||e.blockedBy.length===0&&e.blocks.length===0)return;let t=n=>({id:n.id,identifier:n.identifier,title:n.title,status:n.status,priority:n.priority});return{blockedBy:e.blockedBy.map(t),blocks:e.blocks.map(t)}}function jk(e,t){let n=om(t.relations);return n?`${ja(n)} is a tracked blocker for this issue.`:em(e,t.analysis,t.documentSignal)}function qk(e,t){let n=tm(e,t.analysis,t.documentSignal),r=om(t.relations);return r?{...n,whyNow:`${ja(r)} is linked as a blocker in Paperclip.`,factors:[...new Set([...n.factors??[],"blocked by issue relation"])]}:n}function Hk(e,t,n){let r=[t?.updatedAt,He(e.lastExternalCommentAt),n.latestDocumentUpdatedAt].filter(i=>!!i).sort();return r.length>0?r.at(-1):He(e.updatedAt)??He(e.createdAt)??new Date(0).toISOString()}function $k(e,t,n,r,i){let o=Jp(e,t,i),a=Xp(n,t,o),c={analysis:o,documentSignal:a,relations:r},u=Mk(e,t,c);if(!u)return null;let d=Hk(e,t,a),m=qk(e,c),f=Q(o,"resolution")||a.resolvesArtifactRequest?null:o.owner,g=Qp(e,o,a),S=o.blockingTarget,b=Pk(o.semanticConfidence,o.relationHints),O=je("issue",e.id),U=Fk(r),j=Uk(r);return{lane:u,frame:xt({id:`reconcile:issue:${e.id}:${d}`,taskId:O,interactionId:ye(O,e.status),source:{id:"paperclip:issue",kind:"paperclip",label:"Paperclip issue"},version:1,mode:"status",tone:e.status==="blocked"?"focused":u==="ambient"?"ambient":"focused",consequence:e.status==="blocked"?Lk(e):u==="ambient"?"low":"medium",title:Ok(e),summary:jk(e,c),context:{items:[...f?[Pp(f)]:[],...U?[Op(U)]:[],...S?[Np(S)]:[],...g?[Lp(g)]:[],Mp(e.status.replace(/_/g," ")),Dp(e.priority),...t?[Fp(t.body)]:[]]},responseSpec:sm(),provenance:m,timing:{createdAt:He(e.createdAt)??d,updatedAt:d},metadata:{entityType:"issue",issueStatus:e.status,issuePriority:e.priority,liveReconciled:!0,activityPath:t?"activity":void 0,attention:{rationale:m.factors??[]},issueIntelligence:{matchedRuleIds:o.matchedRuleIds,owner:o.owner,ownerKind:o.ownerKind,blockingTarget:o.blockingTarget},...j?{issueRelations:j}:{},...b?{semantic:b}:{}}},{owner:"paperclip_reconciliation",lane:u,sourcePolicy:`issue.${e.status}.${e.priority}`,rationale:m.factors??[]})}}function Bk(e){return e.status==="error"?"now":e.status==="pending_approval"||e.status==="paused"&&e.pauseReason==="budget"?"next":e.status==="paused"?"ambient":null}function Vk(e){return Vp(e)}function Kk(e){return Kp(e)}function Wk(e){let t=Bk(e);if(!t)return null;let n=He(e.updatedAt)??He(e.createdAt)??new Date(0).toISOString(),r=Vk(e),i=je("agent",e.id);return{lane:t,frame:xt({id:`reconcile:agent:${e.id}:${n}`,taskId:i,interactionId:ye(i,e.status),source:{id:"paperclip:agent",kind:"paperclip",label:"Paperclip agent"},version:1,mode:"status",tone:e.status==="error"?"critical":e.pauseReason==="budget"||e.status==="pending_approval"?"focused":"ambient",consequence:e.status==="error"||e.pauseReason==="budget"?"high":e.status==="pending_approval"?"medium":"low",title:Wp(e),summary:Kk(e),context:{items:[Up(e.status.replace(/_/g," ")),...e.pauseReason?[jp(e.pauseReason)]:[],...e.title?[qp(e.title)]:[]]},responseSpec:sm(),provenance:r,timing:{createdAt:He(e.createdAt)??n,updatedAt:n},metadata:{entityType:"agent",agentStatus:e.status,pauseReason:e.pauseReason,liveReconciled:!0,activityPath:e.status==="error"?"activity":void 0,attention:{rationale:r.factors??[]},semantic:{confidence:"high"}}},{owner:"paperclip_reconciliation",lane:t,sourcePolicy:`agent.${e.status}${e.pauseReason?`.${e.pauseReason}`:""}`,rationale:r.factors??[]})}}async function zk(e,t){try{let n=await e.issues.listComments(t.id,t.companyId);return Nk(n)}catch(n){return e.logger.warn("Failed to load issue comments during Aperture reconciliation",{issueId:t.id,error:n instanceof Error?n.message:String(n)}),null}}async function Ln(e,t,n,r,i,o){if(!i?.fresh){let c=e.getCachedHostValue(t,n);if(c!==null)return c}let a=await o();return e.setCachedHostValue(t,n,a,r)}async function Gk(e,t){try{return await e.issues.documents.list(t.id,t.companyId)}catch(n){return e.logger.warn("Failed to load issue documents during Aperture reconciliation",{issueId:t.id,error:n instanceof Error?n.message:String(n)}),[]}}async function Zk(e,t){let n=t.blockedBy??[],r=t.blocks??[];if(n.length>0||r.length>0)return{blockedBy:n,blocks:r};try{return await e.issues.relations.get(t.id,t.companyId)}catch(i){return e.logger.warn("Failed to load issue relations during Aperture reconciliation",{issueId:t.id,error:i instanceof Error?i.message:String(i)}),null}}async function Ua(e,t,n){if(e.length===0)return[];let r=new Array(e.length),i=0;async function o(){for(;i<e.length;){let c=i;i+=1,r[c]=await n(e[c],c)}}let a=Math.min(t,e.length);return await Promise.all(Array.from({length:a},()=>o())),r}async function rm(e,t,n,r,i){return Ln(t,n,`issues:${r}`,Ak,{fresh:i?.freshHostData},async()=>await e.issues.list({companyId:n,status:r,limit:25}))}async function Yk(e,t,n,r){return Ln(t,n,"agents:all",Ck,{fresh:r?.freshHostData},async()=>await e.agents.list({companyId:n,limit:100}))}async function Jk(e,t,n,r,i){let[o,a]=await Promise.all([rm(e,t,n,"blocked",i),rm(e,t,n,"in_review",i)]),c=[...o,...a],[u,d,m]=await Promise.all([Ua(c,Fa,g=>Ln(t,n,`issue:${g.id}:comments`,Rk,{fresh:i?.freshHostData},()=>zk(e,g))),Ua(c,Fa,g=>Ln(t,n,`issue:${g.id}:documents`,Tk,{fresh:i?.freshHostData},()=>Gk(e,g))),Ua(c,Fa,g=>Ln(t,n,`issue:${g.id}:relations`,xk,{fresh:i?.freshHostData},()=>Zk(e,g)))]),f={agentNames:r.map(g=>g.name).filter(g=>typeof g=="string"&&g.trim().length>0)};return c.map((g,S)=>$k(g,u[S]??null,d[S]??[],m[S]??null,f)).filter(g=>g!==null)}function Xk(e){return e.filter(t=>t.status==="pending_approval"||t.status==="error"||t.status==="paused").map(t=>Wk(t)).filter(t=>t!==null)}async function am(e,t,n,r,i){let o=await Yk(e,t,n,i),a=r.captureIssueLifecycle===!1?Promise.resolve([]):Jk(e,t,n,o,i),c=Promise.resolve(Xk(o)),[u,d]=await Promise.all([a,c]);return[...u,...d]}function qa(e){let t=[];e.now&&t.push([e.now.taskId,{frame:e.now,lane:"now"}]);for(let n of e.next)t.push([n.taskId,{frame:n,lane:"next"}]);for(let n of e.ambient)t.push([n.taskId,{frame:n,lane:"ambient"}]);return new Map(t)}function cm(e,t,n){return t===n?null:t===null&&n!==null?{stage:e,kind:"introduced",fromLane:t,toLane:n}:t!==null&&n===null?{stage:e,kind:"removed",fromLane:t,toLane:n}:{stage:e,kind:"moved",fromLane:t,toLane:n}}function Qk(e,t){return e?"core":t?"reconciled":"display_overlay"}function eI(e,t){if(t==="display_overlay")return _n(e).entityType==="approval"?"approval_overlay":"display_overlay"}function Ha(e){let t=qa(e.snapshot),n=qa(e.reconciledSnapshot),r=qa(e.displaySnapshot),o=[...new Set([...t.keys(),...n.keys(),...r.keys()])].sort().map(c=>{let u=t.get(c),d=n.get(c),m=r.get(c),f=m?.frame??d?.frame??u?.frame;if(!f)throw new Error(`Overlay diagnostics could not resolve representative frame for ${c}.`);let g=_n(f),S=[cm("reconciled",u?.lane??null,d?.lane??null),cm("display",d?.lane??null,m?.lane??null)].filter(O=>O!==null),b=Qk(u,d);return{taskId:c,title:f.title,entityType:g.entityType,interactionIds:{...u?{core:u.frame.interactionId}:{},...d?{reconciled:d.frame.interactionId}:{},...m?{display:m.frame.interactionId}:{}},lanePath:{core:u?.lane??null,reconciled:d?.lane??null,display:m?.lane??null},canonicalSource:b,overlayKind:eI(f,b),liveReconciled:g.liveReconciled,attentionRationale:g.attention?.rationale??[],matchedRuleIds:g.issueIntelligence?.matchedRuleIds??[],relationHintKinds:g.semantic?.relationHints?.map(O=>O.kind)??[],decision:g.decision,changes:S}}),a={coreFrames:t.size,reconciledFrames:n.size,displayFrames:r.size,introducedByReconciliation:o.filter(c=>c.changes.some(u=>u.stage==="reconciled"&&u.kind==="introduced")).length,removedByReconciliation:o.filter(c=>c.changes.some(u=>u.stage==="reconciled"&&u.kind==="removed")).length,movedByReconciliation:o.filter(c=>c.changes.some(u=>u.stage==="reconciled"&&u.kind==="moved")).length,introducedByDisplayOverlay:o.filter(c=>c.changes.some(u=>u.stage==="display"&&u.kind==="introduced")).length,removedByDisplayOverlay:o.filter(c=>c.changes.some(u=>u.stage==="display"&&u.kind==="removed")).length,movedByDisplayOverlay:o.filter(c=>c.changes.some(u=>u.stage==="display"&&u.kind==="moved")).length,approvalOverlayFrames:o.filter(c=>c.overlayKind==="approval_overlay").length};return{generatedAt:e.displaySnapshot.updatedAt,summary:a,frames:o}}var um=250,tI=50,lm=1e3,nI=200;function dm(e){return{eventCount:0,persistence:{state:"healthy"},surfaceCapabilities:Nr,operatorPresence:"present",globalSignalSummary:{recentSignals:0,lifetimeSignals:0,counts:{presented:0,viewed:0,responded:0,dismissed:0,deferred:0,contextExpanded:0,contextSkipped:0,timedOut:0,returned:0,attentionShifted:0},deferred:{next:0,suppressed:0,manual:0},responseRate:0,dismissalRate:0,averageResponseLatencyMs:null,averageDismissalLatencyMs:null,lastSignalAt:null},globalAttentionState:"monitoring",memoryProfile:{version:1,operatorId:"unknown",updatedAt:e,sessionCount:0},ledger:{entries:0,eventEntries:0,responseEntries:0,overlayResponseEntries:0,signalEntries:0,replayStrategy:"full-ledger",compactionRecommended:!1},host:{cacheEntries:0,hostDataRevision:0,approvalRecords:0,approvalsDirty:!1},currentNowTask:null}}function Jr(e,t){return e?t?e.localeCompare(t)>=0?e:t:e:t}function $a(e,t,n){if(typeof e!="number"||!Number.isFinite(e))return t;let r=Math.trunc(e);return r<=0?t:Math.min(r,n)}function Ba(e,t){let n=e.length,r=Math.max(1,t);return n<=r?{items:[...e],total:n,hasMoreBefore:!1}:{items:e.slice(-r),total:n,hasMoreBefore:!0}}function rI(e,t,n){let r=n?{...n,frames:Object.fromEntries(Object.entries(n.frames).map(([i,o])=>[i,{...o}]))}:G(e);for(let i of t){if(i.kind!=="response"&&i.kind!=="overlay-response")continue;let o=i.occurredAt,a=i.apertureResponse.taskId,c=i.apertureResponse.response.kind,u=r.frames[a]??{};r.frames[a]={...u,lastSeenAt:Jr(u.lastSeenAt,o),...c==="acknowledged"||c==="dismissed"?{suppressedAt:Jr(u.suppressedAt,o)}:{}},r.lastSeenAt=Jr(r.lastSeenAt,o),r.updatedAt=Jr(r.updatedAt,o)??o}return r}async function Xe(e,t,n){if(t.hasSession(n)){let f=t.getSnapshot(n)??oe(n);return{baseLedger:t.getLedger(n),snapshot:f,reviewState:t.getReview(n)??G(n)}}let r=await Tn(e,n);if(r){let{snapshot:f}=t.hydrate(n,{ledger:r.ledger,snapshot:r.snapshot,review:r.review});return{baseLedger:r.ledger,snapshot:f,reviewState:r.review}}let i=await e.state.get({scopeKind:"company",scopeId:n,stateKey:_p}),o=await e.state.get({scopeKind:"company",scopeId:n,stateKey:wp}),a=await e.state.get({scopeKind:"company",scopeId:n,stateKey:Ap}),c=Xt(i)?i:Ye(),u=Jt(n,o),d=rI(n,c,Rn(a,n)?a:null),{snapshot:m}=t.hydrate(n,{ledger:c,snapshot:u,review:d});return!Xt(i)&&u&&e.logger.warn("Legacy snapshot found without replay ledger; rebuilt state may be partial until new events arrive.",{companyId:n}),{baseLedger:c,snapshot:m,reviewState:d}}function sI(e,t,n){return JSON.stringify({reconciliationRevision:e.getReconciledRevision(t),captureIssueLifecycle:n.captureIssueLifecycle!==!1,captureRunFailures:n.captureRunFailures!==!1})}async function Va(e,t,n,r,i,o={}){let a=await e.config.get(),c=sI(t,n,a);if(o.preferCache&&!o.freshHostData){let m=t.getCachedReconciledCandidates(n,c);if(m)return Qt(r,n,m,i)}let u=await am(e,t,n,a,{freshHostData:o.freshHostData}),d=Qt(r,n,u,i);return o.preferCache&&!o.freshHostData&&t.setCachedReconciledCandidates(n,c,u),d}async function mm(e,t,n){let r=t.getApprovals(n);if(!t.approvalsDirty(n)&&r)return r;let i=await e.config.get();try{let o=await hp(e,n,i);return t.setApprovals(n,o)}catch(o){let a=o instanceof Error?o.message:String(o);return t.markApprovalAdapterFailure(n,a),e.logger.warn("Failed to load pending approvals for Focus display",{companyId:n,error:a}),r||t.setApprovals(n,[])}}async function pm(e,t,n,r,i){let o=await Va(e,t,n,r,i,{preferCache:!0}),a=await mm(e,t,n);return{reconciledSnapshot:o,displaySnapshot:Ma(o,n,a,i)}}function fm(e,t){e.data.register("health",async()=>{let n=t.getHealth();return{status:"ok",checkedAt:new Date().toISOString(),trackedCompanies:n.trackedCompanies,maxCompanySessions:n.maxCompanySessions,idleSessionTtlMs:n.idleSessionTtlMs,faultedCompanies:n.faultedCompanies,hostCacheEntries:n.hostCacheEntries,cachedReconciliations:n.cachedReconciliations}}),e.data.register("attention-diagnostics",async n=>{let r=K(n);return await Xe(e,t,r),t.getCoreDiagnostics(r)??dm(new Date().toISOString())}),e.data.register("attention-overlay-diagnostics",async n=>{let r=K(n),{snapshot:i,reviewState:o}=await Xe(e,t,r),{reconciledSnapshot:a,displaySnapshot:c}=await pm(e,t,r,i,o);return Ha({snapshot:i,reconciledSnapshot:a,displaySnapshot:c})}),e.data.register("attention-summary",async n=>{let r=K(n),{snapshot:i,reviewState:o}=await Xe(e,t,r);return await Va(e,t,r,i,o,{freshHostData:!0})??oe(r)}),e.data.register("attention-display",async n=>{let r=K(n),{snapshot:i,reviewState:o}=await Xe(e,t,r),{displaySnapshot:a}=await pm(e,t,r,i,o);return{companyId:r,snapshot:a??oe(r),reviewState:o}}),e.data.register("attention-export",async n=>{let r=K(n),i=$a(n.limit,um,lm),o=$a(n.traceLimit,tI,nI),a=new Date().toISOString(),{baseLedger:c,snapshot:u,reviewState:d}=await Xe(e,t,r),m=await Va(e,t,r,u,d,{freshHostData:!0}),f=await mm(e,t,r),g=Ma(m,r,f,d),S=Ba(c,i),b=Ba(t.getTraces(r),o);return{companyId:r,exportedAt:a,ledger:S.items,eventEntries:S.items.filter(O=>O.kind==="event"),responseEntries:S.items.filter(O=>O.kind==="response"),overlayResponseEntries:S.items.filter(O=>O.kind==="overlay-response"),signalEntries:S.items.filter(O=>O.kind==="signal"),traces:b.items,window:{entryLimit:i,traceLimit:o,totalLedgerEntries:S.total,returnedLedgerEntries:S.items.length,totalTraces:b.total,returnedTraces:b.items.length,hasMoreBefore:S.hasMoreBefore||b.hasMoreBefore},snapshot:u,reconciledSnapshot:m,displaySnapshot:g,review:d,coreDiagnostics:t.getCoreDiagnostics(r)??dm(a),overlayDiagnostics:Ha({snapshot:u,reconciledSnapshot:m,displaySnapshot:g})}}),e.data.register("attention-traces",async n=>{let r=K(n);return await Xe(e,t,r),t.getTraces(r)}),e.data.register("attention-replay-scenario",async n=>{let r=K(n),i=$a(n.limit,um,lm),{baseLedger:o,snapshot:a}=await Xe(e,t,r),c=Ba(o,i);return{id:`paperclip-attention-${r}`,title:`Paperclip attention replay for ${r}`,description:"Replay scenario exported from the Paperclip Aperture plugin ledger.",doctrineTags:["paperclip","aperture","replay-export"],window:{entryLimit:i,totalLedgerEntries:c.total,returnedSteps:c.items.length,hasMoreBefore:c.hasMoreBefore},expectations:{finalNowInteractionId:a.now?.interactionId??null,nextInteractionIds:a.next.map(u=>u.interactionId),ambientInteractionIds:a.ambient.map(u=>u.interactionId),resultLaneCounts:{now:a.counts.now,next:a.counts.next,ambient:a.counts.ambient}},steps:c.items.map(u=>u.kind==="event"?{kind:"publish",event:u.apertureEvent,label:`${u.source.eventType} @ ${u.occurredAt}`}:u.kind==="response"?{kind:"submit",response:u.apertureResponse,label:`${u.source.eventType} @ ${u.occurredAt}`}:u.kind==="signal"?{kind:"signal",signal:u.apertureSignal,label:`${u.source.eventType} @ ${u.occurredAt}`}:{kind:"overlay-response",response:u.apertureResponse,overlay:u.overlay,label:`${u.source.eventType} @ ${u.occurredAt}`})}}),e.data.register("attention-review",async n=>{let r=K(n),{reviewState:i}=await Xe(e,t,r);return i})}var iI=["need your input","need your approval","need your review","need your sign off","need your sign-off","should i continue","can you approve","can you review","what should i do"],bm=["no action needed","no approval needed","approval is not needed","approval not needed","sign off not needed","sign-off not needed","no input needed","for awareness only","for your awareness","continuing automatically"],oI=["cannot continue","can't continue","cannot proceed","can't proceed","unable to continue","unable to proceed","blocked on","blocked until","stuck on","requires operator input before continuing","needs operator input before continuing","must be provided before continuing"],aI=["waiting for approval","approval required","awaiting approval","waiting on approval","pending approval","waiting for input","awaiting input","waiting on input","awaiting review","waiting for review"],cI=["production","prod","force push","git push --force","rm -rf","drop table","delete database","delete prod","sudo","chmod 777","kill process","migrate"],uI=["result of running cat -n","result of running sed -n","result of running grep","result of running ls","result of running find","here s the result of running cat -n","here s the result of running sed -n"],lI=["observation","contents of","showing first","showing top","found"],dI=["path","type file","content"],pI=["ran successfully and did not produce any output","command ran successfully and did not produce any output","completed successfully and did not produce any output"],mI=["tool-output","dmesg"],fI=["makefile","spdx-license-identifier","patchlevel","sublevel","extraversion"],gI=/(?:^|\s)\/[a-z0-9._-]+(?:\/[a-z0-9._-]+)+(?:\s|$)/,hI=/\bfound\s+\d+\s+match(?:es)?\b|\bshowing\s+(?:first|top)\s+\d+\b|\bmatch(?:es)?\s+in\s+\d+\s+files?\b/,yI=/\b(import|from|export|class|def|function|const|let|var|return)\b/,SI=/\b\d+\s+(?:import|from|export|class|def|function|const|let|var|return)\b/,bI=/\/[a-z0-9._/-]+\.(?:c|cc|cpp|cxx|h|hpp|ts|tsx|js|jsx|py|rb|go|rs|java|kt|swift)(?:\b|\/)/,vI=/\b[a-z0-9.-]+\.(?:c|cc|cpp|cxx|h|hpp|ts|tsx|js|jsx|py|rb|go|rs|java|kt|swift)\b/,kI=/\b(static|struct|enum|typedef|void|int|char|bool|return)\b/,II=/\b\d+\s+(?:static|struct|enum|typedef|void|int|char|bool|return)\b/,EI=/\b\d+\s+\[\s*\d+\.\d+\]\s+[a-z0-9_.:-]+/,wI=/\b(?:version|patchlevel|sublevel|extraversion)\b/,_I=["form is valid false","form without instance is valid false","form errors","errorlist","decompress result"],AI=["traceback","exception","permission denied","command not found","segmentation fault"],RI=["still","again","back again","came back","continues","continuing","returned","returning","remains","persisting","retrying","recurred"],TI=["did not repeat","didn t repeat","did not return","didn t return","did not recur","didn t recur","not repeated","not returning","not recurring","no repeat"],xI=["resolved","fixed","unblocked","no longer blocked"],gm=["not resolved","did not resolve","didn t resolve","not fixed","did not fix","didn t fix","not recovered","did not recover","didn t recover"],CI=["recovered","completed successfully","succeeded after"],hm=["instead","supersedes","superseded","replaced by","use this plan instead","follow this plan instead"],PI=["worse","worsened","escalating","regression","regressed","spread","broader impact","degraded further","critical now","now failing"],OI=["did not regress","didn t regress","no regression","not worsening","did not worsen","didn t worsen","not escalating","did not escalate","didn t escalate"],NI=["fail","failed","failing","failure","error","broken","blocked","stalled","stall","incident","issue","outage","degraded","regression","retry","rollback"];function jn(e){return e.toLowerCase().replace(/[^a-z0-9/._-]+/g," ").trim()}function Wa(e){return[...new Set(e)]}function vm(e){return Ka(e.toolFamily)??Ka(zI(e.metadata))??Ka(GI(e.context))}function LI(e){let t=vm(e);if(t)return t;let n=jn(`${e.title} ${e.summary??""}`);return Oe(n,"wants to read")||Oe(n,"wants to inspect")||Dn(n,"read")||Dn(n,"inspect")?"read":Oe(n,"wants to write")||Dn(n,"write")?"write":Oe(n,"wants to edit")||Dn(n,"edit")?"edit":Oe(n,"shell command")||Oe(n,"wants to run")?"bash":Oe(n,"search the web")?"web":Oe(n,"search files")||Oe(n,"search file contents")?"search":null}function MI(e){return D(e,bm)?!1:D(e,iI)}function DI(e){return D(e,bm)?null:D(e,oI)?"blocking":D(e,aI)?"waiting":null}function km(e){let t=[],n=D(e,RI)&&!D(e,TI),r=D(e,xI)&&!D(e,gm),i=D(e,CI)&&!D(e,gm),o=D(e,PI)&&!D(e,OI),a=D(e,NI)||D(e,hm)||o;return n&&a&&t.push({kind:"same_issue"},{kind:"repeats"}),(r||i&&a)&&t.push({kind:"same_issue"},{kind:"resolves"}),D(e,hm)&&t.push({kind:"same_issue"},{kind:"supersedes"}),o&&t.push({kind:"same_issue"},{kind:"escalates"}),YI(t)}function Mn(e,t,n){return ZI(e)||n==="read"||n==="search"?t:qI(e,cI)?"high":(n==="write"||n==="edit"||n==="bash")&&t==="low"?"medium":t}function FI(e,t){return t!=="edit"&&t!=="read"?!1:D(e,uI)||wm(e)||Em(e)}function UI(e,t){return t==="search"?ym(e):t==="read"?ym(e)?!0:!wm(e)&&!Em(e)||VI(e)?!1:KI(e)||WI(e):!1}function jI(e,t){return t!=="bash"?!1:D(e,_I)&&!D(e,AI)}function D(e,t){return t.some(n=>Im(e,n))}function qI(e,t){return t.some(n=>HI(e,n))}function Im(e,t){let n=jn(t);return n?n.includes(" ")?Oe(e,n):Dn(e,n):!1}function HI(e,t){return Im(e,t)}function Em(e){return za(e)?D(e,lI)||$I(e)||BI(e):!1}function wm(e){return D(e,dI)&&za(e)}function ym(e){return hI.test(e)||za(e)&&/\bmatch(?:es)?\b/.test(e)}function za(e){return gI.test(e)}function $I(e){return yI.test(e)}function BI(e){return SI.test(e)}function VI(e){return bI.test(e)||vI.test(e)||kI.test(e)||II.test(e)}function KI(e){return EI.test(e)||D(e,mI)}function WI(e){return wI.test(e)||D(e,fI)}function zI(e){let t=e?.toolFamily;return typeof t=="string"?t:null}function GI(e){if(!e?.items)return null;for(let t of e.items){let n=t.id.toLowerCase(),r=t.label.toLowerCase();if(n==="toolfamily"||n==="tool_family"||n==="tool"||r==="tool family")return t.value??null}return null}function Ka(e){if(!e)return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function Oe(e,t){let n=jn(t);return n?new RegExp(`(?:^|[^a-z0-9_])${_m(n)}(?:$|[^a-z0-9_])`).test(e):!1}function Dn(e,t){return new RegExp(`(?:^|[^a-z0-9_])${_m(t)}(?:$|[^a-z0-9_])`).test(e)}function _m(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ZI(e){return D(e,pI)}function YI(e){let t=new Set,n=[];for(let r of e){let i=`${r.kind}:${r.target??""}`;t.has(i)||(t.add(i),n.push(r))}return n}function JI(e){switch(e){case"approval":return"approval_request";case"choice":return"question_request";case"form":return"form_request"}}function XI(e){switch(e){case"approval":return"permission_request";case"choice":case"form":return"question_request"}}function QI(e,t){switch(e){case"approval":return t==="high"?"A high-risk action needs explicit operator approval.":"Approval is required before work can continue.";case"choice":return"A decision is required before work can continue.";case"form":return"Additional input is required before work can continue."}}function Fn(e,t){if(t?.wasCancelled)return"Work was cancelled and may need review.";switch(e){case"failed":return"Work has failed and should be reviewed.";case"blocked":return"Work is blocked and may require operator attention.";case"running":case"waiting":case"completed":return t?.impliedAsk?"Status text implies the operator may need to respond.":void 0}}function en(e,t){if(t?.wasCancelled)return["task cancellation is an explicit lifecycle fact"];switch(e){case"failed":return["task status explicitly indicates failure"];case"blocked":return["task status explicitly indicates blocked work"];case"running":case"waiting":case"completed":return t?.impliedAsk?["status wording suggests an implied operator request"]:["task update carries a non-blocking lifecycle status"]}}function Sm(e){switch(e){case"task_started":return["task start is an explicit lifecycle fact"];case"completion":return["task completion is an explicit lifecycle fact"]}}function Ga(e){let t=eE(e);return rE(t,e.semanticHints)}function eE(e){switch(e.type){case"task.started":return{intentFrame:"task_started",activityClass:"session_status",consequence:"low",factors:["task.started"],relationHints:[],confidence:"high",reasons:Sm("task_started"),provenance:se(["intentFrame","activityClass","consequence","confidence"])};case"task.updated":return tE(e);case"human.input.requested":return nE(e);case"task.completed":return{intentFrame:"completion",activityClass:"tool_completion",consequence:"low",factors:["task.completed"],relationHints:[],confidence:"high",reasons:Sm("completion"),provenance:se(["intentFrame","activityClass","consequence","confidence"])};case"task.cancelled":return{intentFrame:"cancellation",activityClass:"status_update",consequence:"low",...e.reason?{whyNow:Fn("completed",{wasCancelled:!0})??"Work was cancelled and may need review."}:{},factors:["task.cancelled"],relationHints:[],confidence:"high",reasons:en("completed",{wasCancelled:!0}),provenance:{...se(["intentFrame","activityClass","consequence","confidence"]),...e.reason?se(["whyNow"]):{}}};default:return aE(e)}}function tE(e){let t=jn(`${e.title} ${e.summary??""}`),n=MI(t),r=DI(t),i=km(t),o=xm(e.title,e.summary,e.toolFamily,e.context),{toolFamily:a,source:c}=Tm(o,!0),u=i.length>0?se(["relationHints"]):{},d=e.status==="failed"&&FI(t,a),m=e.status==="failed"&&UI(t,a),f=e.status==="failed"&&jI(t,a);switch(e.status){case"failed":return d?{intentFrame:"status_update",activityClass:"status_update",...a?{toolFamily:a}:{},consequence:Mn(t,m?"low":"high",a),factors:["task.updated","failed","observational_failure"],relationHints:i,confidence:"high",reasons:["task status indicates failure but the update reads like observational output"],provenance:{...se(["intentFrame","activityClass","consequence","confidence"]),...Un(c),...u}}:{intentFrame:"failure",activityClass:"tool_failure",...a?{toolFamily:a}:{},consequence:Mn(t,m?"low":f?"medium":"high",a),whyNow:Fn("failed")??"Work has failed and should be reviewed.",factors:["task.updated","failed"],relationHints:i,confidence:n?"medium":"high",reasons:f?[...en("failed",{impliedAsk:n}),"failure content looks like expected diagnostic output from repro work"]:en("failed",{impliedAsk:n}),provenance:{...se(["intentFrame","activityClass","consequence","whyNow","confidence"]),...Un(c),...u}};case"blocked":return{intentFrame:"blocked_work",activityClass:"status_update",...a?{toolFamily:a}:{},consequence:Mn(t,"medium",a),whyNow:Fn("blocked")??"Work is blocked and may require operator attention.",factors:["task.updated","blocked"],relationHints:i,confidence:n?"medium":"high",reasons:en("blocked",{impliedAsk:n}),provenance:{...se(["intentFrame","activityClass","consequence","whyNow","confidence"]),...Un(c),...u}};case"running":case"waiting":case"completed":return{intentFrame:r==="blocking"?"blocked_work":"status_update",activityClass:"status_update",...a?{toolFamily:a}:{},consequence:Mn(t,"low",a),...(()=>{let g=r==="blocking"?Fn("blocked"):n?Fn(e.status,{impliedAsk:n}):void 0;return g!==void 0?{whyNow:g}:{}})(),factors:["task.updated",e.status,...r==="blocking"?["semantic blocking signal"]:[]],relationHints:i,confidence:r==="blocking"?"medium":n?"low":"high",reasons:r==="blocking"?[...en("blocked"),"status wording indicates work cannot continue yet"]:en(e.status,{impliedAsk:n}),provenance:{...se(["intentFrame","activityClass","consequence","confidence"]),...Un(c),...r==="blocking"||n?se(["whyNow"]):{},...u}};default:return cE(e.status)}}function nE(e){let t=xm(e.title,e.summary,e.toolFamily,e.context),{toolFamily:n,source:r}=Tm(t,e.request.kind==="approval"),i=jn(`${e.title} ${e.summary}`),o=km(i),a=e.riskHint??oE(e.request.kind,n),c=Mn(i,a,n),u=o.length>0?se(["relationHints"]):{};return{intentFrame:JI(e.request.kind),activityClass:XI(e.request.kind),...n?{toolFamily:n}:{},consequence:c,whyNow:QI(e.request.kind,c),factors:["human.input.requested",e.request.kind],relationHints:o,confidence:e.riskHint?"high":e.request.kind==="approval"&&n?"medium":"low",reasons:[e.riskHint?"source provided an explicit risk hint":"request kind establishes an explicit operator decision point",...r==="explicit"?["tool family was supplied by the source or context"]:r==="inferred"?["tool family was inferred from approval wording"]:[]],provenance:{...se(["intentFrame","activityClass","whyNow"]),...Un(r),...e.riskHint?Am(["consequence","confidence"]):se(["consequence","confidence"]),...u}}}function se(e){return Rm(e,"inferred")}function Am(e){return Rm(e,"source")}function Rm(e,t){return Object.fromEntries(e.map(n=>[n,t]))}function Un(e){switch(e){case"explicit":return Am(["toolFamily"]);case"inferred":return se(["toolFamily"]);case"none":return{};default:return lE(e)}}function Tm(e,t){let n=vm(e);if(n)return{toolFamily:n,source:"explicit"};if(!t)return{source:"none"};let r=LI(e);return r?{toolFamily:r,source:"inferred"}:{source:"none"}}function rE(e,t){return t?{...e,...iE(t),factors:Wa([...e.factors??[],...t.factors??[]]),relationHints:[...t.relationHints??e.relationHints],reasons:Wa([...e.reasons??[],...t.reasons??[]]),provenance:{...e.provenance??{},...sE(t)}}:e}function sE(e){return{...e.intentFrame!==void 0?{intentFrame:"hint"}:{},...e.activityClass!==void 0?{activityClass:"hint"}:{},...e.toolFamily!==void 0?{toolFamily:"hint"}:{},...e.consequence!==void 0?{consequence:"hint"}:{},...e.whyNow!==void 0?{whyNow:"hint"}:{},...e.relationHints!==void 0?{relationHints:"hint"}:{},...e.confidence!==void 0?{confidence:"hint"}:{},...e.abstained!==void 0?{abstained:"hint"}:{}}}function iE(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&n!=="factors"&&n!=="relationHints"&&n!=="reasons"&&(t[n]=r);return t}function oE(e,t){switch(e){case"approval":return t==="read"||t==="search"?"low":"medium";case"choice":case"form":return"medium";default:return uE(e)}}function xm(e,t,n,r){return{title:e,...t!==void 0?{summary:t}:{},...n!==void 0?{toolFamily:n}:{},...r?.items!==void 0?{context:{items:r.items}}:{}}}function aE(e){throw new Error(`Unhandled source event in semantic interpreter: ${JSON.stringify(e)}`)}function cE(e){throw new Error(`Unhandled task status in semantic interpreter: ${e}`)}function uE(e){throw new Error(`Unhandled human input request kind in semantic interpreter: ${e}`)}function lE(e){throw new Error(`Unhandled tool family provenance source in semantic interpreter: ${e}`)}function dE(e={}){let t=e.base,n=e.semantic,r=t?.whyNow??n?.whyNow??e.fallbackWhyNow,i=Wa([...t?.factors??[],...n?.factors??[],...e.extraFactors??[]]);if(!(t===void 0&&r===void 0&&i.length===0))return{...t??{},...r!==void 0?{whyNow:r}:{},...i.length>0?{factors:i}:{}}}function Cm(e){let t=Ga(e),n=e.type==="human.input.requested"&&e.riskHint!==void 0?{riskHint:e.riskHint}:void 0;return mE(gE(e),t,n)}function pE(e){switch(e){case"high":return"critical";case"medium":case"low":return"focused";default:return SE(e)}}function mE(e,t,n={}){switch(e.type){case"task.started":return{...e,semantic:t};case"task.updated":return{...e,...e.activityClass===void 0&&t.activityClass!==void 0?{activityClass:t.activityClass}:{},semantic:t};case"task.completed":case"task.cancelled":return{...e,semantic:t};case"human.input.requested":return fE(e,t,n);default:return hE(e)}}function fE(e,t,n){let{toolFamily:r,...i}=e,o=e.consequence??t.consequence??n.riskHint??"medium",a=e.tone??pE(o),c=dE({base:e.provenance,semantic:t}),u=e.request.kind==="approval"?e.toolFamily??t.toolFamily:void 0;return{...i,...u!==void 0?{toolFamily:u}:{},...e.activityClass===void 0&&t.activityClass!==void 0?{activityClass:t.activityClass}:{},semantic:t,tone:a,consequence:o,...c!==void 0?{provenance:c}:{}}}function gE(e){switch(e.type){case"task.started":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},title:e.title,...e.summary!==void 0?{summary:e.summary}:{}};case"task.updated":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},title:e.title,...e.summary!==void 0?{summary:e.summary}:{},status:e.status,...e.progress!==void 0?{progress:e.progress}:{},...e.context!==void 0?{context:e.context}:{}};case"task.completed":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.summary!==void 0?{summary:e.summary}:{}};case"task.cancelled":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.reason!==void 0?{reason:e.reason}:{}};case"human.input.requested":return{id:e.id,type:e.type,taskId:e.taskId,interactionId:e.interactionId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},title:e.title,summary:e.summary,request:e.request,...e.context!==void 0?{context:e.context}:{},...e.provenance!==void 0?{provenance:e.provenance}:{}};default:return yE(e)}}function hE(e){throw new Error(`Unhandled ApertureEvent in semantic normalizer: ${JSON.stringify(e)}`)}function yE(e){throw new Error(`Unhandled SourceEvent in semantic normalizer: ${JSON.stringify(e)}`)}function SE(e){throw new Error(`Unhandled consequence level in semantic normalizer: ${e}`)}function bE(e){return typeof e=="string"&&e.trim().length>0?e:void 0}function vE(e,t){if(!e||typeof e!="object")return;let n=e[t];return Array.isArray(n)&&n.every(r=>typeof r=="string")?n:void 0}function P(e,t){if(!(!e||typeof e!="object"))return bE(e[t])}function Ja(e){return e?Cn(e):void 0}function kE(e){let t=e.entityType??"event",n=e.entityId??e.eventId;return je(t,n)}function IE(e){let t=e.entityType??"event";switch(t){case"approval":return{id:`paperclip:${t}`,kind:"paperclip",label:"Paperclip approval"};case"issue":return{id:`paperclip:${t}`,kind:"paperclip",label:"Paperclip issue"};case"run":return{id:`paperclip:${t}`,kind:"paperclip",label:"Paperclip run"};case"agent":return{id:`paperclip:${t}`,kind:"paperclip",label:"Paperclip agent"};default:return{id:`paperclip:${e.eventType}`,kind:"paperclip",label:"Paperclip"}}}function Za(e){let t=P(e,"status")?.toLowerCase(),n=[P(e,"summary"),P(e,"description"),P(e,"bodySnippet"),P(e,"title"),P(e,"issueTitle")].filter(r=>!!r).join(" ").toLowerCase();return t?.includes("block")?"blocked":t?.includes("wait")?"waiting":t?.includes("done")||t?.includes("complete")||t?.includes("closed")?"completed":t?.includes("fail")?"failed":n.includes("blocked")||n.includes("clarification")?"blocked":n.includes("waiting")?"waiting":"running"}function EE(e){let t=P(e,"status")?.toLowerCase();return t?t.includes("approval")||t.includes("block")?"blocked":t.includes("wait")||t.includes("pause")?"waiting":t.includes("fail")||t.includes("error")?"failed":t.includes("done")||t.includes("complete")?"completed":"running":"running"}function wE(e){let t=P(e.payload,"title")??P(e.payload,"plan")??P(e.payload,"name");if(t)return t;let n=Ja(P(e.payload,"type"));return n?`${n} approval`:"Approval requested"}function Pm(e){return P(e.payload,"type")}function _E(e){return Pm(e)==="budget_override_required"}function Ya(e,t){let n=P(e.payload,"identifier"),r=P(e.payload,"issueTitle")??P(e.payload,"title");return n&&r?`${n} ${r}`:n?`${n} ${t}`:r||t}function AE(e){if(!(!e||e.length===0))return{relationHints:e.map(t=>({kind:"same_issue",target:Yr(t)}))}}function RE(e){return[P(e,"bodySnippet"),P(e,"summary"),P(e,"description"),P(e,"title"),P(e,"issueTitle")].filter(t=>!!t).join(`
|
|
11
|
-
`)}function Xr(e){if(e.entityType!=="issue"||!e.entityId)return;let t=Da({text:RE(e.payload),identifier:P(e.payload,"identifier"),issueTarget:Yr(e.entityId)});return{...t.semanticConfidence?{confidence:t.semanticConfidence}:{},...t.relationHints.length>0?{relationHints:t.relationHints}:{}}}function TE(e,t){return{whyNow:On(e),factors:e?["budget stop","approval","operator decision"]:["approval","operator decision"],...AE(t)??{}}}function xE(){return{whyNow:Na(),factors:["pending approval"]}}function CE(){return{intentFrame:"failure",whyNow:Oa(),factors:["run failed","operator review"]}}function Qe(e){return Ga(e)}function Xa(e){let t=e.eventType,n=kE(e),r=IE(e);switch(t){case"approval.created":{let i=Pm(e),o=_E(e),a=P(e.payload,"requestedAmount"),c=P(e.payload,"reason"),u=P(e.payload,"decisionContext"),d=vE(e.payload,"issueIds"),m=wE(e),f=P(e.payload,"summary")??zr(o),g=Qe({id:`${e.eventId}:approval`,type:"human.input.requested",taskId:n,interactionId:ye(n,"approval"),timestamp:e.occurredAt,source:r,toolFamily:"paperclip",activityClass:"permission_request",title:m,summary:f,request:{kind:"approval"},riskHint:o?"high":"medium",semanticHints:TE(o,d)});return{id:`${e.eventId}:approval`,type:"human.input.requested",taskId:n,interactionId:ye(n,"approval"),timestamp:e.occurredAt,source:r,toolFamily:"paperclip",activityClass:"permission_request",title:m,summary:f,consequence:o?"high":"medium",tone:"focused",request:{kind:"approval"},semantic:g,context:{items:[...Ja(i)?[Br(Ja(i))]:[],...a?[Vr(a)]:[],...c?[Kr(c)]:[],...u?[Wr(u)]:[],...d?.length?[Cp(String(d.length))]:[]]},provenance:{whyNow:On(o),factors:o?["budget stop","approval","operator decision"]:["approval","operator decision"]}}}case"approval.decided":case"approval.approved":case"approval.rejected":case"approval.revision_requested":return{id:`${e.eventId}:resolved`,type:"task.completed",taskId:n,timestamp:e.occurredAt,source:r,summary:P(e.payload,"status")??(t==="approval.approved"?"Approval approved":t==="approval.rejected"?"Approval rejected":t==="approval.revision_requested"?"Revision requested":"Approval resolved")};case"issue.created":{let i=Ya(e,"Issue created"),o=P(e.payload,"description")??"A new issue entered Paperclip.",a=Za(e.payload);return a==="running"?{id:`${e.eventId}:issue-created`,type:"task.started",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,semantic:Qe({id:`${e.eventId}:issue-created`,type:"task.started",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,semanticHints:Xr(e)})}:{id:`${e.eventId}:issue-created-status`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,activityClass:"status_update",status:a,semantic:Qe({id:`${e.eventId}:issue-created-status`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,activityClass:"status_update",status:a,semanticHints:Xr(e)})}}case"issue.updated":{let i=Ya(e,"Issue updated"),o=P(e.payload,"summary")??P(e.payload,"description"),a=Za(e.payload);return{id:`${e.eventId}:issue-updated`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,activityClass:"status_update",status:a,semantic:Qe({id:`${e.eventId}:issue-updated`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:i,...o!==void 0?{summary:o}:{},activityClass:"status_update",status:a,semanticHints:Xr(e)})}}case"issue.comment.created":case"issue.comment_added":{let i=Ya(e,"Issue comment"),o=P(e.payload,"bodySnippet")??"A comment added new context in Paperclip.",a=Za(e.payload);return{id:`${e.eventId}:issue-comment`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,activityClass:"follow_up",status:a,progress:void 0,semantic:Qe({id:`${e.eventId}:issue-comment`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,activityClass:"follow_up",status:a,semanticHints:Xr(e)})}}case"agent.run.started":return{id:`${e.eventId}:run-started`,type:"task.started",taskId:n,timestamp:e.occurredAt,source:r,title:P(e.payload,"title")??"Agent run started",summary:P(e.payload,"summary")??"A Paperclip agent began a new run."};case"agent.run.failed":{let i=P(e.payload,"title")??"Agent run failed",o=P(e.payload,"summary")??zp();return{id:`${e.eventId}:run-failed`,type:"human.input.requested",taskId:n,interactionId:ye(n,"run-failed"),timestamp:e.occurredAt,source:r,toolFamily:"paperclip",activityClass:"tool_failure",title:i,summary:o,consequence:"high",tone:"critical",request:{kind:"approval"},semantic:Qe({id:`${e.eventId}:run-failed`,type:"human.input.requested",taskId:n,interactionId:ye(n,"run-failed"),timestamp:e.occurredAt,source:r,toolFamily:"paperclip",activityClass:"tool_failure",title:i,summary:o,request:{kind:"approval"},riskHint:"high",semanticHints:CE()}),provenance:{whyNow:Oa(),factors:["run failed","operator review"]}}}case"agent.run.finished":return{id:`${e.eventId}:run-finished`,type:"task.completed",taskId:n,timestamp:e.occurredAt,source:r,summary:P(e.payload,"summary")??"Agent run finished"};case"agent.run.cancelled":return{id:`${e.eventId}:run-cancelled`,type:"task.cancelled",taskId:n,timestamp:e.occurredAt,source:r,reason:P(e.payload,"summary")??"Agent run cancelled"};case"agent.status_changed":{let i=P(e.payload,"status")?.toLowerCase();if(i==="pending_approval"){let u=Gp(),d=Zp();return{id:`${e.eventId}:status-pending-approval`,type:"human.input.requested",taskId:n,interactionId:ye(n,"pending-approval"),timestamp:e.occurredAt,source:r,toolFamily:"paperclip",activityClass:"permission_request",title:u,summary:d,consequence:"medium",tone:"focused",request:{kind:"approval"},semantic:Qe({id:`${e.eventId}:status-pending-approval`,type:"human.input.requested",taskId:n,interactionId:ye(n,"pending-approval"),timestamp:e.occurredAt,source:r,toolFamily:"paperclip",activityClass:"permission_request",title:u,summary:d,request:{kind:"approval"},riskHint:"medium",semanticHints:xE()}),provenance:{whyNow:Na(),factors:["pending approval"]}}}let o=EE(e.payload),a="Agent status changed",c=i?`Agent status is now ${i}.`:"Agent status changed.";return{id:`${e.eventId}:status-updated`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:a,summary:c,activityClass:"session_status",status:o,semantic:Qe({id:`${e.eventId}:status-updated`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:a,summary:c,activityClass:"session_status",status:o})}}default:return null}}function PE(e){let t={...e.semantic?.confidence?{confidence:e.semantic.confidence}:{},...e.semantic?.relationHints?.length?{relationHints:e.semantic.relationHints}:{},...e.semantic?.whyNow?{whyNow:e.semantic.whyNow}:{},...e.semantic?.factors?.length?{factors:e.semantic.factors}:{},...e.semantic?.intentFrame?{intentFrame:e.semantic.intentFrame}:{}};return Object.keys(t).length>0?t:void 0}function Om(e){let t=Xa(e);if(!t)return null;let n={id:t.id,taskId:t.taskId,timestamp:t.timestamp,source:t.source,semanticHints:PE(t)};switch(t.type){case"task.started":return{...n,type:"task.started",title:t.title,...t.summary?{summary:t.summary}:{}};case"task.updated":return{...n,type:"task.updated",title:t.title,...t.summary?{summary:t.summary}:{},...t.toolFamily?{toolFamily:t.toolFamily}:{},...t.activityClass?{activityClass:t.activityClass}:{},status:t.status,...typeof t.progress=="number"?{progress:t.progress}:{},...t.context?{context:t.context}:{}};case"human.input.requested":return{...n,type:"human.input.requested",interactionId:t.interactionId,...t.toolFamily?{toolFamily:t.toolFamily}:{},...t.activityClass?{activityClass:t.activityClass}:{},title:t.title,summary:t.summary,request:t.request,...t.context?{context:t.context}:{},...t.provenance?{provenance:t.provenance}:{},...t.consequence?{riskHint:t.consequence}:{}};case"task.completed":return{...n,type:"task.completed",...t.summary?{summary:t.summary}:{}};case"task.cancelled":return{...n,type:"task.cancelled",...t.reason?{reason:t.reason}:{}};default:return null}}var OE=["activity.logged","approval.created","approval.decided","approval.approved","approval.rejected","approval.revision_requested","issue.created","issue.updated","issue.comment.created","issue.comment_added","agent.run.started","agent.run.failed","agent.run.finished","agent.run.cancelled","agent.status_changed"],NE=new Set(["issue.document_created","issue.document_updated","issue.document_deleted"]),LE=1e4;function ME(e,t){return!((t==="issue.created"||t==="issue.updated"||t==="issue.comment.created"||t==="issue.comment_added")&&e.captureIssueLifecycle===!1||t==="agent.run.failed"&&e.captureRunFailures===!1)}async function DE(e,t,n){if(n.entityType!=="issue"||!n.entityId)return n;let r=n.payload&&typeof n.payload=="object"?n.payload:{};try{let i=`issue:${n.entityId}:detail`,o=t.getCachedHostValue(n.companyId,i)??await e.issues.get(n.entityId,n.companyId);return o?(t.setCachedHostValue(n.companyId,i,o,LE),{...n,payload:{...r,title:typeof r.title=="string"?r.title:o.title,issueTitle:typeof r.issueTitle=="string"?r.issueTitle:o.title,identifier:typeof r.identifier=="string"?r.identifier:o.identifier,description:typeof r.description=="string"?r.description:o.description,status:typeof r.status=="string"?r.status:o.status}}):n}catch(i){return e.logger.warn("Failed to enrich issue payload for Aperture",{issueId:n.entityId,eventType:n.eventType,error:i instanceof Error?i.message:String(i)}),n}}async function FE(e,t,n){let r=await e.config.get();if(!ME(r,n.eventType))return;if(n.eventType==="activity.logged"){let d=n.payload&&typeof n.payload=="object"?n.payload:{},m=typeof d.action=="string"?d.action:void 0,f=typeof d.entityType=="string"?d.entityType:n.entityType;f==="issue"&&m&&NE.has(m)&&(t.invalidateHostCache(n.companyId,{keys:n.entityId?[`issue:${n.entityId}:documents`,`issue:${n.entityId}:relations`]:[],prefixes:["issues:blocked","issues:in_review"]}),Pe(e,{companyId:n.companyId,reason:"event",eventType:`activity.${m}`,updatedAt:n.occurredAt,counts:t.getSnapshot(n.companyId)?.counts??{now:0,next:0,ambient:0,total:0}}),e.logger.info("Triggered Focus refresh from activity log event",{companyId:n.companyId,action:m,entityId:n.entityId,entityType:f}));return}n.entityType==="issue"&&n.entityId?t.invalidateHostCache(n.companyId,{keys:[`issue:${n.entityId}:detail`,`issue:${n.entityId}:comments`,`issue:${n.entityId}:relations`],prefixes:["issues:blocked","issues:in_review"]}):n.entityType==="agent"&&t.invalidateHostCache(n.companyId,{keys:["agents:all"]});let i=await DE(e,t,n),o=Om(i),a=o?Cm(o):Xa(i);if(!a)return;i.entityType==="approval"&&t.invalidateApprovals(i.companyId);let c={kind:"event",id:`${i.eventId}:event`,occurredAt:i.occurredAt,source:{eventType:i.eventType,entityId:i.entityId,entityType:i.entityType},...o?{sourceEvent:o}:{},apertureEvent:a},{snapshot:u}=await qe(e,t,i.companyId,()=>{let{ledger:d,snapshot:m}=t.applyEvent(i.companyId,c);return{ledger:d,snapshot:m}});Pe(e,{companyId:i.companyId,reason:"event",eventType:i.eventType,updatedAt:u.updatedAt,counts:u.counts}),e.logger.info("Captured Paperclip event for Aperture",{companyId:i.companyId,eventType:i.eventType,entityId:i.entityId,mappedType:a.type})}function Nm(e,t){for(let n of OE)e.events.on(n,async r=>{await FE(e,t,r)})}var Lm=es({async setup(e){let t=new Mr;fm(e,t),xp(e,t),Nm(e,t)},async onHealth(){return{status:"ok",message:"Paperclip Aperture worker is running"}}}),n0=Lm;ms(Lm,import.meta.url);export{n0 as default};
|
|
5
|
+
`)}var ve=s.string().transform(Og);var ir=["inherit","shared_workspace","isolated_workspace","operator_branch","reuse_existing","agent_default"],Ng=s.object({type:s.enum(["project_primary","git_worktree","adapter_managed","cloud_sandbox"]).optional(),baseRef:s.string().optional().nullable(),branchTemplate:s.string().optional().nullable(),worktreeParentDir:s.string().optional().nullable(),provisionCommand:s.string().optional().nullable(),teardownCommand:s.string().optional().nullable()}).strict(),mn=s.object({mode:s.enum(ir).optional(),environmentId:s.string().uuid().optional().nullable(),workspaceStrategy:Ng.optional().nullable(),workspaceRuntime:s.record(s.unknown()).optional().nullable()}).strict(),Lg=s.object({adapterConfig:s.record(s.unknown()).optional(),useProjectWorkspace:s.boolean().optional()}).strict(),nu=s.object({type:s.enum(["agent","user"]),agentId:s.string().uuid().optional().nullable(),userId:s.string().optional().nullable()}),tu=nu.superRefine((e,t)=>{if(e.type==="agent"){e.agentId||t.addIssue({code:s.ZodIssueCode.custom,message:"Agent participants require agentId",path:["agentId"]}),e.userId&&t.addIssue({code:s.ZodIssueCode.custom,message:"Agent participants cannot set userId",path:["userId"]});return}e.userId||t.addIssue({code:s.ZodIssueCode.custom,message:"User participants require userId",path:["userId"]}),e.agentId&&t.addIssue({code:s.ZodIssueCode.custom,message:"User participants cannot set agentId",path:["agentId"]})}),Mg=nu.extend({id:s.string().uuid().optional()}).superRefine((e,t)=>{if(e.type==="agent"){e.agentId||t.addIssue({code:s.ZodIssueCode.custom,message:"Agent participants require agentId",path:["agentId"]}),e.userId&&t.addIssue({code:s.ZodIssueCode.custom,message:"Agent participants cannot set userId",path:["userId"]});return}e.userId||t.addIssue({code:s.ZodIssueCode.custom,message:"User participants require userId",path:["userId"]}),e.agentId&&t.addIssue({code:s.ZodIssueCode.custom,message:"User participants cannot set agentId",path:["agentId"]})}),Dg=s.object({id:s.string().uuid().optional(),type:s.enum(zn),approvalsNeeded:s.literal(1).optional().default(1),participants:s.array(Mg).default([])}),Yi=s.object({mode:s.enum(Os).optional().default("normal"),commentRequired:s.boolean().optional().default(!0),stages:s.array(Dg).default([])}),or=s.object({instructions:s.string().trim().min(1).max(2e4)}).strict(),ru=s.object({status:s.enum(Ns),currentStageId:s.string().uuid().nullable(),currentStageIndex:s.number().int().nonnegative().nullable(),currentStageType:s.enum(zn).nullable(),currentParticipant:tu.nullable(),returnAssignee:tu.nullable(),reviewRequest:or.nullable().optional().default(null),completedStageIds:s.array(s.string().uuid()).default([]),lastDecisionId:s.string().uuid().nullable(),lastDecisionOutcome:s.enum(Ls).nullable()}),su=s.number().int().nonnegative().transform(e=>As(e)),ar=s.object({projectId:s.string().uuid().optional().nullable(),projectWorkspaceId:s.string().uuid().optional().nullable(),goalId:s.string().uuid().optional().nullable(),parentId:s.string().uuid().optional().nullable(),blockedByIssueIds:s.array(s.string().uuid()).optional(),inheritExecutionWorkspaceFromIssueId:s.string().uuid().optional().nullable(),title:s.string().min(1),description:ve.optional().nullable(),status:s.enum(Wn).optional().default("backlog"),priority:s.enum(Ht).optional().default("medium"),assigneeAgentId:s.string().uuid().optional().nullable(),assigneeUserId:s.string().optional().nullable(),requestDepth:su.optional().default(0),billingCode:s.string().optional().nullable(),assigneeAdapterOverrides:Lg.optional().nullable(),executionPolicy:Yi.optional().nullable(),executionWorkspaceId:s.string().uuid().optional().nullable(),executionWorkspacePreference:s.enum(ir).optional().nullable(),executionWorkspaceSettings:mn.optional().nullable(),labelIds:s.array(s.string().uuid()).optional()}),iu=ar.omit({parentId:!0,inheritExecutionWorkspaceFromIssueId:!0}).extend({acceptanceCriteria:s.array(s.string().trim().min(1).max(500)).max(20).optional(),blockParentUntilDone:s.boolean().optional().default(!1)}),ou=s.object({name:s.string().trim().min(1).max(48),color:s.string().regex(/^#(?:[0-9a-fA-F]{6})$/,"Color must be a 6-digit hex value")}),au=ar.partial().extend({requestDepth:su.optional(),assigneeAgentId:s.string().trim().min(1).optional().nullable(),comment:ve.pipe(s.string().min(1)).optional(),reviewRequest:or.optional().nullable(),reopen:s.boolean().optional(),resume:s.boolean().optional(),interrupt:s.boolean().optional(),hiddenAt:s.string().datetime().nullable().optional()}),cu=s.object({agentId:s.string().uuid(),expectedStatuses:s.array(s.enum(Wn)).nonempty()}),uu=s.object({body:ve.pipe(s.string().min(1)),reopen:s.boolean().optional(),resume:s.boolean().optional(),interrupt:s.boolean().optional()}),lu=s.enum(Ts),du=s.enum(Rs),pn=s.enum(xs),Ji=s.string().trim().min(1).max(64).regex(/^[a-z0-9][a-z0-9_-]*$/,"Document key must be lowercase letters, numbers, _ or -"),Xi=s.object({clientKey:s.string().trim().min(1).max(120),parentClientKey:s.string().trim().min(1).max(120).nullable().optional(),parentId:s.string().uuid().nullable().optional(),title:s.string().trim().min(1).max(240),description:ve.pipe(s.string().trim().max(2e4)).nullable().optional(),priority:s.enum(Ht).nullable().optional(),assigneeAgentId:s.string().uuid().nullable().optional(),assigneeUserId:s.string().trim().min(1).nullable().optional(),projectId:s.string().uuid().nullable().optional(),goalId:s.string().uuid().nullable().optional(),billingCode:s.string().trim().max(120).nullable().optional(),labels:s.array(s.string().trim().min(1).max(48)).max(20).optional(),hiddenInPreview:s.boolean().optional()}).superRefine((e,t)=>{e.assigneeAgentId&&e.assigneeUserId&&t.addIssue({code:s.ZodIssueCode.custom,message:"Suggested tasks can only target one assignee",path:["assigneeAgentId"]})}),Qi=s.object({version:s.literal(1),defaultParentId:s.string().uuid().nullable().optional(),tasks:s.array(Xi).min(1).max(50)}).superRefine((e,t)=>{let n=new Set;for(let[r,i]of e.tasks.entries()){if(n.has(i.clientKey)){t.addIssue({code:s.ZodIssueCode.custom,message:"clientKey must be unique within one interaction",path:["tasks",r,"clientKey"]});continue}n.add(i.clientKey)}}),eo=s.object({clientKey:s.string().trim().min(1).max(120),issueId:s.string().uuid(),identifier:s.string().trim().min(1).nullable().optional(),title:s.string().trim().min(1).nullable().optional(),parentIssueId:s.string().uuid().nullable().optional(),parentIdentifier:s.string().trim().min(1).nullable().optional()}),pu=s.object({version:s.literal(1),createdTasks:s.array(eo).max(50).optional(),skippedClientKeys:s.array(s.string().trim().min(1).max(120)).max(50).optional(),rejectionReason:s.string().trim().max(4e3).nullable().optional()}),to=s.object({id:s.string().trim().min(1).max(120),label:s.string().trim().min(1).max(120),description:s.string().trim().max(500).nullable().optional()}),no=s.object({id:s.string().trim().min(1).max(120),prompt:s.string().trim().min(1).max(500),helpText:s.string().trim().max(1e3).nullable().optional(),selectionMode:s.enum(["single","multi"]),required:s.boolean().optional(),options:s.array(to).min(1).max(10)}),ro=s.object({version:s.literal(1),title:s.string().trim().max(240).nullable().optional(),submitLabel:s.string().trim().max(120).nullable().optional(),questions:s.array(no).min(1).max(10)}).superRefine((e,t)=>{let n=new Set;for(let[r,i]of e.questions.entries()){n.has(i.id)&&t.addIssue({code:s.ZodIssueCode.custom,message:"Question ids must be unique within one interaction",path:["questions",r,"id"]}),n.add(i.id);let o=new Set;for(let[a,c]of i.options.entries())o.has(c.id)&&t.addIssue({code:s.ZodIssueCode.custom,message:"Option ids must be unique within one question",path:["questions",r,"options",a,"id"]}),o.add(c.id)}}),cr=s.object({questionId:s.string().trim().min(1).max(120),optionIds:s.array(s.string().trim().min(1).max(120)).max(20)}),mu=s.object({version:s.literal(1),answers:s.array(cr).max(20),summaryMarkdown:s.string().max(2e4).nullable().optional()}),Fg=s.string().trim().min(1).max(2e3).refine(e=>{let t=e.toLowerCase();return!t.startsWith("javascript:")&&!t.startsWith("data:")&&!e.startsWith("//")},"href must not use javascript:, data:, or protocol-relative URLs"),fu=s.object({label:s.string().trim().min(1).max(120).nullable().optional(),href:Fg.nullable().optional()}),so=fu.extend({type:s.literal("issue_document"),issueId:s.string().uuid().nullable().optional(),documentId:s.string().uuid().nullable().optional(),key:Ji,revisionId:s.string().uuid(),revisionNumber:s.number().int().positive().nullable().optional()}),io=fu.extend({type:s.literal("custom"),key:s.string().trim().min(1).max(120),revisionId:s.string().trim().min(1).max(255).nullable().optional(),revisionNumber:s.number().int().positive().nullable().optional()}),ur=s.discriminatedUnion("type",[so,io]),oo=s.object({version:s.literal(1),prompt:s.string().trim().min(1).max(1e3),acceptLabel:s.string().trim().min(1).max(80).nullable().optional(),rejectLabel:s.string().trim().min(1).max(80).nullable().optional(),rejectRequiresReason:s.boolean().optional(),rejectReasonLabel:s.string().trim().min(1).max(160).nullable().optional(),allowDeclineReason:s.boolean().optional().default(!0),declineReasonPlaceholder:s.string().trim().min(1).max(240).nullable().optional(),detailsMarkdown:s.string().max(2e4).nullable().optional(),supersedeOnUserComment:s.boolean().optional(),target:ur.nullable().optional()}),gu=s.object({version:s.literal(1),outcome:s.enum(["accepted","rejected","superseded_by_comment","stale_target"]),reason:s.string().trim().max(4e3).nullable().optional(),commentId:s.string().uuid().nullable().optional(),staleTarget:ur.nullable().optional()}),hu=s.discriminatedUnion("kind",[s.object({kind:s.literal("suggest_tasks"),idempotencyKey:s.string().trim().max(255).nullable().optional(),sourceCommentId:s.string().uuid().nullable().optional(),sourceRunId:s.string().uuid().nullable().optional(),title:s.string().trim().max(240).nullable().optional(),summary:s.string().trim().max(1e3).nullable().optional(),continuationPolicy:pn.optional().default("wake_assignee"),payload:Qi}),s.object({kind:s.literal("ask_user_questions"),idempotencyKey:s.string().trim().max(255).nullable().optional(),sourceCommentId:s.string().uuid().nullable().optional(),sourceRunId:s.string().uuid().nullable().optional(),title:s.string().trim().max(240).nullable().optional(),summary:s.string().trim().max(1e3).nullable().optional(),continuationPolicy:pn.optional().default("wake_assignee"),payload:ro}),s.object({kind:s.literal("request_confirmation"),idempotencyKey:s.string().trim().max(255).nullable().optional(),sourceCommentId:s.string().uuid().nullable().optional(),sourceRunId:s.string().uuid().nullable().optional(),title:s.string().trim().max(240).nullable().optional(),summary:s.string().trim().max(1e3).nullable().optional(),continuationPolicy:pn.optional().default("none"),payload:oo})]),yu=s.object({selectedClientKeys:s.array(s.string().trim().min(1).max(120)).min(1).max(50).optional()}).superRefine((e,t)=>{let n=new Set;for(let[r,i]of(e.selectedClientKeys??[]).entries()){if(n.has(i)){t.addIssue({code:s.ZodIssueCode.custom,message:"selectedClientKeys must be unique",path:["selectedClientKeys",r]});continue}n.add(i)}}),Su=s.object({reason:s.string().trim().max(4e3).optional()}),bu=s.object({answers:s.array(cr).max(20),summaryMarkdown:ve.pipe(s.string().max(2e4)).nullable().optional()}),vu=s.object({approvalId:s.string().uuid()}),ku=s.object({issueCommentId:s.string().uuid().optional().nullable()}),Ug=["markdown"],ao=s.enum(Ug),Iu=s.object({title:s.string().trim().max(200).nullable().optional(),format:ao,body:ve.pipe(s.string().max(524288)),changeSummary:s.string().trim().max(500).nullable().optional(),baseRevisionId:s.string().uuid().nullable().optional()}),Eu=s.object({});var wu=s.union([s.string(),s.number().finite(),s.boolean()]),fn=s.object({name:s.string().trim().regex(/^[A-Za-z][A-Za-z0-9_]*$/),label:s.string().trim().max(120).optional().nullable(),type:s.enum(Ks).optional().default("text"),defaultValue:wu.optional().nullable(),required:s.boolean().optional().default(!0),options:s.array(s.string().trim().min(1).max(120)).max(50).optional().default([])}).superRefine((e,t)=>{e.type==="select"&&e.options.length===0&&t.addIssue({code:s.ZodIssueCode.custom,path:["options"],message:"Select variables require at least one option"}),e.type!=="select"&&e.options.length>0&&t.addIssue({code:s.ZodIssueCode.custom,path:["options"],message:"Only select variables can define options"}),e.type==="select"&&e.defaultValue!=null&&(typeof e.defaultValue!="string"||!e.options.includes(e.defaultValue))&&t.addIssue({code:s.ZodIssueCode.custom,path:["defaultValue"],message:"Select variable defaults must match one of the allowed options"})}),uo=s.object({projectId:s.string().uuid().optional().nullable(),goalId:s.string().uuid().optional().nullable(),parentIssueId:s.string().uuid().optional().nullable(),title:s.string().trim().min(1).max(200),description:s.string().optional().nullable(),assigneeAgentId:s.string().uuid().optional().nullable(),priority:s.enum(Ht).optional().default("medium"),status:s.enum($s).optional().default("active"),concurrencyPolicy:s.enum(Bs).optional().default("coalesce_if_active"),catchUpPolicy:s.enum(Vs).optional().default("skip_missed"),variables:s.array(fn).optional().default([])}),_u=uo.partial(),co=s.object({label:s.string().trim().max(120).optional().nullable(),enabled:s.boolean().optional().default(!0)}),Au=s.discriminatedUnion("kind",[co.extend({kind:s.literal("schedule"),cronExpression:s.string().trim().min(1),timezone:s.string().trim().min(1).default("UTC")}),co.extend({kind:s.literal("webhook"),signingMode:s.enum(Gn).optional().default("bearer"),replayWindowSec:s.number().int().min(30).max(86400).optional().default(300)}),co.extend({kind:s.literal("api")})]),Ru=s.object({label:s.string().trim().max(120).optional().nullable(),enabled:s.boolean().optional(),cronExpression:s.string().trim().min(1).optional().nullable(),timezone:s.string().trim().min(1).optional().nullable(),signingMode:s.enum(Gn).optional().nullable(),replayWindowSec:s.number().int().min(30).max(86400).optional().nullable()}),Tu=s.object({triggerId:s.string().uuid().optional().nullable(),payload:s.record(s.unknown()).optional().nullable(),variables:s.record(wu).optional().nullable(),projectId:s.string().uuid().optional().nullable(),assigneeAgentId:s.string().uuid().optional().nullable(),idempotencyKey:s.string().trim().max(255).optional().nullable(),source:s.enum(["manual","api"]).optional().default("manual"),executionWorkspaceId:s.string().uuid().optional().nullable(),executionWorkspacePreference:s.enum(ir).optional().nullable(),executionWorkspaceSettings:mn.optional().nullable()}),xu=s.object({});var lr=s.object({company:s.boolean().optional(),agents:s.boolean().optional(),projects:s.boolean().optional(),issues:s.boolean().optional(),skills:s.boolean().optional()}).partial(),lo=s.object({key:s.string().min(1),description:s.string().nullable(),agentSlug:s.string().min(1).nullable(),projectSlug:s.string().min(1).nullable(),kind:s.enum(["secret","plain"]),requirement:s.enum(["required","optional"]),defaultValue:s.string().nullable(),portability:s.enum(["portable","system_dependent"])}),jg=s.union([s.string(),s.object({encoding:s.literal("base64"),data:s.string(),contentType:s.string().min(1).optional().nullable()})]),po=s.object({path:s.string().min(1),name:s.string().min(1),description:s.string().nullable(),brandColor:s.string().nullable(),logoPath:s.string().nullable(),attachmentMaxBytes:s.number().int().min(1).max(1073741824).nullable().default(null),requireBoardApprovalForNewAgents:s.boolean(),feedbackDataSharingEnabled:s.boolean().default(!1),feedbackDataSharingConsentAt:s.string().datetime().nullable().default(null),feedbackDataSharingConsentByUserId:s.string().nullable().default(null),feedbackDataSharingTermsVersion:s.string().nullable().default(null)}),dr=s.object({agents:s.array(s.string().min(1)).default([]),projects:s.array(s.string().min(1)).default([])}),mo=s.object({slug:s.string().min(1),name:s.string().min(1),path:s.string().min(1),skills:s.array(s.string().min(1)).default([]),role:s.string().min(1),title:s.string().nullable(),icon:s.string().nullable(),capabilities:s.string().nullable(),reportsToSlug:s.string().min(1).nullable(),adapterType:s.string().min(1),adapterConfig:s.record(s.unknown()),runtimeConfig:s.record(s.unknown()),permissions:s.record(s.unknown()),budgetMonthlyCents:s.number().int().nonnegative(),metadata:s.record(s.unknown()).nullable()}),Cu=s.object({key:s.string().min(1),slug:s.string().min(1),name:s.string().min(1),path:s.string().min(1),description:s.string().nullable(),sourceType:s.string().min(1),sourceLocator:s.string().nullable(),sourceRef:s.string().nullable(),trustLevel:s.string().nullable(),compatibility:s.string().nullable(),metadata:s.record(s.unknown()).nullable(),fileInventory:s.array(s.object({path:s.string().min(1),kind:s.string().min(1)})).default([])}),qg=s.object({slug:s.string().min(1),name:s.string().min(1),path:s.string().min(1),description:s.string().nullable(),ownerAgentSlug:s.string().min(1).nullable(),leadAgentSlug:s.string().min(1).nullable(),targetDate:s.string().nullable(),color:s.string().nullable(),status:s.string().nullable(),executionWorkspacePolicy:s.record(s.unknown()).nullable(),workspaces:s.array(s.object({key:s.string().min(1),name:s.string().min(1),sourceType:s.string().nullable(),repoUrl:s.string().nullable(),repoRef:s.string().nullable(),defaultRef:s.string().nullable(),visibility:s.string().nullable(),setupCommand:s.string().nullable(),cleanupCommand:s.string().nullable(),metadata:s.record(s.unknown()).nullable(),isPrimary:s.boolean()})).default([]),metadata:s.record(s.unknown()).nullable()}),Hg=s.object({kind:s.string().min(1),label:s.string().nullable(),enabled:s.boolean(),cronExpression:s.string().nullable(),timezone:s.string().nullable(),signingMode:s.string().nullable(),replayWindowSec:s.number().int().nullable()}),$g=s.object({concurrencyPolicy:s.string().nullable(),catchUpPolicy:s.string().nullable(),variables:s.array(fn).nullable().optional(),triggers:s.array(Hg).default([])}),Bg=s.object({slug:s.string().min(1),identifier:s.string().min(1).nullable(),title:s.string().min(1),path:s.string().min(1),projectSlug:s.string().min(1).nullable(),projectWorkspaceKey:s.string().min(1).nullable(),assigneeAgentSlug:s.string().min(1).nullable(),description:s.string().nullable(),recurring:s.boolean().default(!1),routine:$g.nullable(),legacyRecurrence:s.record(s.unknown()).nullable(),status:s.string().nullable(),priority:s.string().nullable(),labelIds:s.array(s.string().min(1)).default([]),billingCode:s.string().nullable(),executionWorkspaceSettings:s.record(s.unknown()).nullable(),assigneeAdapterOverrides:s.record(s.unknown()).nullable(),metadata:s.record(s.unknown()).nullable()}),Pu=s.object({schemaVersion:s.number().int().positive(),generatedAt:s.string().datetime(),source:s.object({companyId:s.string().uuid(),companyName:s.string().min(1)}).nullable(),includes:s.object({company:s.boolean(),agents:s.boolean(),projects:s.boolean(),issues:s.boolean(),skills:s.boolean()}),company:po.nullable(),sidebar:dr.nullable(),agents:s.array(mo),skills:s.array(Cu).default([]),projects:s.array(qg).default([]),issues:s.array(Bg).default([]),envInputs:s.array(lo).default([])}),fo=s.discriminatedUnion("type",[s.object({type:s.literal("inline"),rootPath:s.string().min(1).optional().nullable(),files:s.record(jg)}),s.object({type:s.literal("github"),url:s.string().url()})]),go=s.discriminatedUnion("mode",[s.object({mode:s.literal("new_company"),newCompanyName:s.string().min(1).optional().nullable()}),s.object({mode:s.literal("existing_company"),companyId:s.string().uuid()})]),ho=s.union([s.literal("all"),s.array(s.string().min(1))]),yo=s.enum(["rename","skip","replace"]),Ou=s.object({include:lr.optional(),agents:s.array(s.string().min(1)).optional(),skills:s.array(s.string().min(1)).optional(),projects:s.array(s.string().min(1)).optional(),issues:s.array(s.string().min(1)).optional(),projectIssues:s.array(s.string().min(1)).optional(),selectedFiles:s.array(s.string().min(1)).optional(),expandReferencedSkills:s.boolean().optional(),sidebarOrder:dr.partial().optional()}),So=s.object({source:fo,include:lr.optional(),target:go,agents:ho.optional(),collisionStrategy:yo.optional(),nameOverrides:s.record(s.string().min(1),s.string().min(1)).optional(),selectedFiles:s.array(s.string().min(1)).optional()}),Vg=s.object({adapterType:s.string().min(1),adapterConfig:s.record(s.unknown()).optional()}),Nu=So.extend({adapterOverrides:s.record(s.string().min(1),Vg).optional()});var bo=s.object({type:s.literal("plain"),value:s.string()}),vo=s.object({type:s.literal("secret_ref"),secretId:s.string().uuid(),version:s.union([s.literal("latest"),s.number().int().positive()]).optional()}),ko=s.union([s.string(),bo,vo]),Wt=s.record(ko),Lu=s.object({name:s.string().min(1),provider:s.enum(cn).optional(),value:s.string().min(1),description:s.string().optional().nullable(),externalRef:s.string().optional().nullable()}),Mu=s.object({value:s.string().min(1),externalRef:s.string().optional().nullable()}),Du=s.object({name:s.string().min(1).optional(),description:s.string().optional().nullable(),externalRef:s.string().optional().nullable()});var Io=s.object({canCreateAgents:s.boolean().optional().default(!1)}),Eo=s.enum(["managed","external"]),Fu=s.object({mode:Eo.optional(),rootPath:s.string().trim().min(1).nullable().optional(),entryFile:s.string().trim().min(1).optional(),clearLegacyPromptTemplate:s.boolean().optional().default(!1)}),Uu=s.object({path:s.string().trim().min(1),content:s.string(),clearLegacyPromptTemplate:s.boolean().optional().default(!1)}),ju=s.record(s.unknown()).superRefine((e,t)=>{let n=e.env;if(n===void 0)return;Wt.safeParse(n).success||t.addIssue({code:s.ZodIssueCode.custom,message:"adapterConfig.env must be a map of valid env bindings",path:["env"]})}),Kg=s.object({entryFile:s.string().trim().min(1).optional(),files:s.record(s.string()).refine(e=>Object.keys(e).length>0,{message:"instructionsBundle.files must contain at least one file"})}),pr=s.object({name:s.string().min(1),role:s.enum(Es).optional().default("general"),title:s.string().optional().nullable(),icon:s.enum(ws).optional().nullable(),reportsTo:s.string().uuid().optional().nullable(),capabilities:s.string().optional().nullable(),desiredSkills:s.array(s.string().min(1)).optional(),adapterType:mi,adapterConfig:ju.optional().default({}),instructionsBundle:Kg.optional(),runtimeConfig:s.record(s.unknown()).optional().default({}),defaultEnvironmentId:s.string().uuid().optional().nullable(),budgetMonthlyCents:s.number().int().nonnegative().optional().default(0),permissions:Io.optional(),metadata:s.record(s.unknown()).optional().nullable()}),qu=pr.extend({sourceIssueId:s.string().uuid().optional().nullable(),sourceIssueIds:s.array(s.string().uuid()).optional()}),Hu=pr.omit({permissions:!0}).partial().extend({permissions:s.never().optional(),replaceAdapterConfig:s.boolean().optional(),status:s.enum(Is).optional(),spentMonthlyCents:s.number().int().nonnegative().optional()}),$u=s.object({path:s.string().trim().min(1).nullable(),adapterConfigKey:s.string().trim().min(1).optional()}),Bu=s.object({name:s.string().min(1).default("default")}),Vu=s.object({userId:s.string().trim().min(1),status:s.string().trim().min(1).optional().default(_s)}),Ku=s.object({source:s.enum(["timer","assignment","on_demand","automation"]).optional().default("on_demand"),triggerDetail:s.enum(["manual","ping","callback","system"]).optional(),reason:s.string().optional().nullable(),payload:s.record(s.unknown()).optional().nullable(),idempotencyKey:s.string().optional().nullable(),forceFreshSession:s.preprocess(e=>e===null?void 0:e,s.boolean().optional().default(!1))}),Wu=s.object({taskKey:s.string().min(1).optional().nullable()}),zu=s.object({adapterConfig:ju.optional().default({})}),Gu=s.object({canCreateAgents:s.boolean(),canAssignTasks:s.boolean()});var Wg=s.object({type:s.enum(["project_primary","git_worktree","adapter_managed","cloud_sandbox"]).optional(),baseRef:s.string().optional().nullable(),branchTemplate:s.string().optional().nullable(),worktreeParentDir:s.string().optional().nullable(),provisionCommand:s.string().optional().nullable(),teardownCommand:s.string().optional().nullable()}).strict(),wo=s.object({enabled:s.boolean(),defaultMode:s.enum(["shared_workspace","isolated_workspace","operator_branch","adapter_default"]).optional(),allowIssueOverride:s.boolean().optional(),defaultProjectWorkspaceId:s.string().uuid().optional().nullable(),environmentId:s.string().uuid().optional().nullable(),workspaceStrategy:Wg.optional().nullable(),workspaceRuntime:s.record(s.unknown()).optional().nullable(),branchPolicy:s.record(s.unknown()).optional().nullable(),pullRequestPolicy:s.record(s.unknown()).optional().nullable(),runtimePolicy:s.record(s.unknown()).optional().nullable(),cleanupPolicy:s.record(s.unknown()).optional().nullable()}).strict(),Zu=s.object({workspaceRuntime:s.record(s.unknown()).optional().nullable(),desiredState:s.enum(["running","stopped","manual"]).optional().nullable(),serviceStates:s.record(s.enum(["running","stopped","manual"])).optional().nullable()}).strict(),zg=s.enum(["local_path","git_repo","remote_managed","non_git_path"]),Gg=s.enum(["default","advanced"]),Yu={name:s.string().min(1).optional(),sourceType:zg.optional(),cwd:s.string().min(1).optional().nullable(),repoUrl:s.string().url().optional().nullable(),repoRef:s.string().optional().nullable(),defaultRef:s.string().optional().nullable(),visibility:Gg.optional(),setupCommand:s.string().optional().nullable(),cleanupCommand:s.string().optional().nullable(),remoteProvider:s.string().optional().nullable(),remoteWorkspaceRef:s.string().optional().nullable(),sharedWorkspaceKey:s.string().optional().nullable(),metadata:s.record(s.unknown()).optional().nullable(),runtimeConfig:Zu.optional().nullable()};function Zg(e,t){let n=e.sourceType??"local_path",r=typeof e.cwd=="string"&&e.cwd.trim().length>0,i=typeof e.repoUrl=="string"&&e.repoUrl.trim().length>0,o=typeof e.remoteWorkspaceRef=="string"&&e.remoteWorkspaceRef.trim().length>0;if(n==="remote_managed"){!o&&!i&&t.addIssue({code:s.ZodIssueCode.custom,message:"Remote-managed workspace requires remoteWorkspaceRef or repoUrl.",path:["remoteWorkspaceRef"]});return}!r&&!i&&t.addIssue({code:s.ZodIssueCode.custom,message:"Workspace requires at least one of cwd or repoUrl.",path:["cwd"]})}var _o=s.object({...Yu,isPrimary:s.boolean().optional().default(!1)}).superRefine(Zg),Ju=s.object({...Yu,isPrimary:s.boolean().optional()}).partial(),Xu={goalId:s.string().uuid().optional().nullable(),goalIds:s.array(s.string().uuid()).optional(),name:s.string().min(1),description:s.string().optional().nullable(),status:s.enum(Fs).optional().default("backlog"),leadAgentId:s.string().uuid().optional().nullable(),targetDate:s.string().optional().nullable(),color:s.string().optional().nullable(),env:Wt.optional().nullable(),executionWorkspacePolicy:wo.optional().nullable(),archivedAt:s.string().datetime().optional().nullable()},Qu=s.object({...Xu,workspace:_o.optional()}),el=s.object(Xu).partial();var mr=s.enum(Cs),gn=s.object({strategy:s.enum(Ps).default("manual"),note:s.string().trim().min(1).max(500).optional().nullable()}).strict(),tl=s.object({mode:mr,releasePolicy:gn.optional().nullable()}).strict(),nl=s.object({mode:mr,reason:s.string().trim().min(1).max(1e3).optional().nullable(),releasePolicy:gn.optional().nullable(),metadata:s.record(s.unknown()).optional().nullable()}).strict(),rl=s.object({reason:s.string().trim().min(1).max(1e3).optional().nullable(),releasePolicy:gn.optional().nullable(),metadata:s.record(s.unknown()).optional().nullable()}).strict();var Ao=s.enum(["preview_url","runtime_service","pull_request","branch","commit","artifact","document"]),Ro=s.enum(["active","ready_for_review","approved","changes_requested","merged","closed","failed","archived","draft"]),To=s.enum(["none","needs_board_review","approved","changes_requested"]),xo=s.object({projectId:s.string().uuid().optional().nullable(),executionWorkspaceId:s.string().uuid().optional().nullable(),runtimeServiceId:s.string().uuid().optional().nullable(),type:Ao,provider:s.string().min(1),externalId:s.string().optional().nullable(),title:s.string().min(1),url:s.string().url().optional().nullable(),status:Ro.default("active"),reviewState:To.optional().default("none"),isPrimary:s.boolean().optional().default(!1),healthStatus:s.enum(["unknown","healthy","unhealthy"]).optional().default("unknown"),summary:s.string().optional().nullable(),metadata:s.record(s.unknown()).optional().nullable(),createdByRunId:s.string().uuid().optional().nullable()}),sl=xo.partial();var Co=s.object({title:s.string().min(1),description:s.string().optional().nullable(),level:s.enum(Ms).optional().default("task"),status:s.enum(Ds).optional().default("planned"),parentId:s.string().uuid().optional().nullable(),ownerAgentId:s.string().uuid().optional().nullable()}),il=Co.partial();var ol=s.object({type:s.enum(Ws),requestedByAgentId:s.string().uuid().optional().nullable(),payload:s.record(s.unknown()),issueIds:s.array(s.string().uuid()).optional()}),al=s.object({decisionNote:ve.optional().nullable()}),cl=s.object({decisionNote:ve.optional().nullable()}),ul=s.object({payload:s.record(s.unknown()).optional()}),ll=s.object({body:ve.pipe(s.string().min(1))});var dl=s.object({agentId:s.string().uuid(),issueId:s.string().uuid().optional().nullable(),projectId:s.string().uuid().optional().nullable(),goalId:s.string().uuid().optional().nullable(),heartbeatRunId:s.string().uuid().optional().nullable(),billingCode:s.string().optional().nullable(),provider:s.string().min(1),biller:s.string().min(1).optional(),billingType:s.enum(Gs).optional().default("unknown"),model:s.string().min(1),inputTokens:s.number().int().nonnegative().optional().default(0),cachedInputTokens:s.number().int().nonnegative().optional().default(0),outputTokens:s.number().int().nonnegative().optional().default(0),costCents:s.number().int().nonnegative(),occurredAt:s.string().datetime()}).transform(e=>({...e,biller:e.biller??e.provider})),pl=s.object({budgetMonthlyCents:s.number().int().nonnegative()});var ml=s.object({agentId:s.string().uuid().optional().nullable(),issueId:s.string().uuid().optional().nullable(),projectId:s.string().uuid().optional().nullable(),goalId:s.string().uuid().optional().nullable(),heartbeatRunId:s.string().uuid().optional().nullable(),costEventId:s.string().uuid().optional().nullable(),billingCode:s.string().optional().nullable(),description:s.string().max(500).optional().nullable(),eventKind:s.enum(Zs),direction:s.enum(Ys).optional().default("debit"),biller:s.string().min(1),provider:s.string().min(1).optional().nullable(),executionAdapterType:s.enum(an).optional().nullable(),pricingTier:s.string().min(1).optional().nullable(),region:s.string().min(1).optional().nullable(),model:s.string().min(1).optional().nullable(),quantity:s.number().int().nonnegative().optional().nullable(),unit:s.enum(Js).optional().nullable(),amountCents:s.number().int().nonnegative(),currency:s.string().length(3).optional().default("USD"),estimated:s.boolean().optional().default(!1),externalInvoiceId:s.string().optional().nullable(),metadataJson:s.record(s.string(),s.unknown()).optional().nullable(),occurredAt:s.string().datetime()}).transform(e=>({...e,currency:e.currency.toUpperCase()}));var fl=s.object({namespace:s.string().trim().min(1).max(120).regex(/^[a-zA-Z0-9/_-]+$/).optional()});var gl=s.object({allowedJoinTypes:s.enum(ni).default("both"),humanRole:s.enum(un).optional().nullable(),defaultsPayload:s.record(s.string(),s.unknown()).optional().nullable(),agentMessage:s.string().max(4e3).optional().nullable()}),hl=s.object({agentMessage:s.string().max(4e3).optional().nullable()}),yl=s.object({requestType:s.enum(Zn),agentName:s.string().min(1).max(120).optional(),adapterType:fi,capabilities:s.string().max(4e3).optional().nullable(),agentDefaultsPayload:s.record(s.string(),s.unknown()).optional().nullable(),responsesWebhookUrl:s.string().max(4e3).optional().nullable(),responsesWebhookMethod:s.string().max(32).optional().nullable(),responsesWebhookHeaders:s.record(s.string(),s.unknown()).optional().nullable(),paperclipApiUrl:s.string().max(4e3).optional().nullable(),webhookAuthHeader:s.string().max(4e3).optional().nullable()}),Sl=s.object({status:s.enum(ri).optional(),requestType:s.enum(Zn).optional()}),bl=s.object({state:s.enum(["active","revoked","accepted","expired"]).optional(),limit:s.coerce.number().int().min(1).max(100).optional().default(20),offset:s.coerce.number().int().min(0).optional().default(0)}),vl=s.object({claimSecret:s.string().min(16).max(256)}),Po=s.enum(["board","instance_admin_required"]),kl=s.object({command:s.string().min(1).max(240),clientName:s.string().max(120).optional().nullable(),requestedAccess:Po.default("board"),requestedCompanyId:s.string().uuid().optional().nullable()}),Il=s.object({token:s.string().min(16).max(256)}),Oo=s.object({grants:s.array(s.object({permissionKey:s.enum(si),scope:s.record(s.string(),s.unknown()).optional().nullable()}))}),El=["pending","active","suspended"],wl=s.object({membershipRole:s.enum(un).optional().nullable(),status:s.enum(El).optional()}).refine(e=>e.membershipRole!==void 0||e.status!==void 0,{message:"membershipRole or status is required"}),_l=s.object({membershipRole:s.enum(un).optional().nullable(),status:s.enum(El).optional(),grants:Oo.shape.grants.default([])}).refine(e=>e.membershipRole!==void 0||e.status!==void 0,{message:"membershipRole or status is required"}),Al=s.object({reassignment:s.object({assigneeAgentId:s.string().uuid().optional().nullable(),assigneeUserId:s.string().uuid().optional().nullable()}).optional().nullable()}).superRefine((e,t)=>{e.reassignment?.assigneeAgentId&&e.reassignment.assigneeUserId&&t.addIssue({code:s.ZodIssueCode.custom,message:"Choose either an agent or user reassignment target",path:["reassignment"]})}),Rl=s.object({companyIds:s.array(s.string().uuid()).default([])}),Tl=s.object({query:s.string().trim().max(120).optional().default("")}),Yg=/^\/api\/assets\/[^/?#]+\/content(?:\?[^#]*)?(?:#.*)?$/;function Jg(e){if(Yg.test(e))return!0;try{let t=new URL(e);return t.protocol==="https:"||t.protocol==="http:"}catch{return!1}}var xl=s.string().trim().min(1).max(4e3).refine(Jg,{message:"Invalid profile image URL"}),No=s.object({id:s.string().min(1),email:s.string().email().nullable(),name:s.string().min(1).max(120).nullable(),image:xl.nullable()}),Cl=s.object({session:s.object({id:s.string().min(1),userId:s.string().min(1)}),user:No}),Pl=s.object({name:s.string().trim().min(1).max(120),image:s.union([xl,s.literal(""),s.null()]).optional().transform(e=>e===""?null:e)});var hn=s.record(s.unknown()).refine(e=>Object.keys(e).length===0?!0:typeof e.type=="string"||e.$ref!==void 0||e.oneOf!==void 0||e.anyOf!==void 0||e.allOf!==void 0,{message:"Must be a valid JSON Schema object (requires at least a 'type', '$ref', or composition keyword)"}),Xg=/^(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?)(?:,(\*(?:\/[0-9]+)?|[0-9]+(?:-[0-9]+)?(?:\/[0-9]+)?))*$/;function Qg(e){let t=e.trim();if(!t)return!1;let n=t.split(/\s+/);return n.length!==5?!1:n.every(r=>Xg.test(r))}var Lo=s.object({jobKey:s.string().min(1),displayName:s.string().min(1),description:s.string().optional(),schedule:s.string().refine(e=>Qg(e),{message:"schedule must be a valid 5-field cron expression (e.g. '*/15 * * * *')"}).optional()}),Mo=s.object({endpointKey:s.string().min(1),displayName:s.string().min(1),description:s.string().optional()}),Do=s.object({name:s.string().min(1),displayName:s.string().min(1),description:s.string().min(1),parametersSchema:hn}),Fo=s.object({driverKey:s.string().min(1).regex(/^[a-z0-9][a-z0-9._-]*$/,"Environment driver key must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, hyphens, or underscores"),kind:s.enum(["environment_driver","sandbox_provider"]).optional(),displayName:s.string().min(1).max(100),description:s.string().max(500).optional(),configSchema:hn}),Uo=s.object({type:s.enum(Qn),id:s.string().min(1),displayName:s.string().min(1),exportName:s.string().min(1),entityTypes:s.array(s.enum(ln)).optional(),routePath:s.string().regex(/^[a-z0-9][a-z0-9-]*$/,{message:"routePath must be a lowercase single-segment slug (letters, numbers, hyphens)"}).optional(),order:s.number().int().optional()}).superRefine((e,t)=>{["detailTab","taskDetailView","contextMenuItem","commentAnnotation","commentContextMenuItem","projectSidebarItem"].includes(e.type)&&(!e.entityTypes||e.entityTypes.length===0)&&t.addIssue({code:s.ZodIssueCode.custom,message:`${e.type} slots require at least one entityType`,path:["entityTypes"]}),e.type==="projectSidebarItem"&&e.entityTypes&&!e.entityTypes.includes("project")&&t.addIssue({code:s.ZodIssueCode.custom,message:'projectSidebarItem slots require entityTypes to include "project"',path:["entityTypes"]}),e.type==="commentAnnotation"&&e.entityTypes&&!e.entityTypes.includes("comment")&&t.addIssue({code:s.ZodIssueCode.custom,message:'commentAnnotation slots require entityTypes to include "comment"',path:["entityTypes"]}),e.type==="commentContextMenuItem"&&e.entityTypes&&!e.entityTypes.includes("comment")&&t.addIssue({code:s.ZodIssueCode.custom,message:'commentContextMenuItem slots require entityTypes to include "comment"',path:["entityTypes"]}),e.routePath&&e.type!=="page"&&t.addIssue({code:s.ZodIssueCode.custom,message:"routePath is only supported for page slots",path:["routePath"]}),e.routePath&&bc.includes(e.routePath)&&t.addIssue({code:s.ZodIssueCode.custom,message:`routePath "${e.routePath}" is reserved by the host`,path:["routePath"]})}),eh=["detailTab","taskDetailView","contextMenuItem","commentAnnotation","commentContextMenuItem","projectSidebarItem"],th={hostInline:["inline","compact","default"],hostOverlay:["compact","default","wide","full"],hostRoute:["default","wide","full"],external:[],iframe:["compact","default","wide","full"]},jo=s.object({type:s.enum(li),target:s.string().min(1),params:s.record(s.unknown()).optional()}).superRefine((e,t)=>{e.type==="performAction"&&e.target.includes("/")&&t.addIssue({code:s.ZodIssueCode.custom,message:"performAction launchers must target an action key, not a route or URL",path:["target"]}),e.type==="navigate"&&/^https?:\/\//.test(e.target)&&t.addIssue({code:s.ZodIssueCode.custom,message:"navigate launchers must target a host route, not an absolute URL",path:["target"]})}),qo=s.object({environment:s.enum(pi),bounds:s.enum(di).optional()}).superRefine((e,t)=>{if(!e.bounds)return;th[e.environment].includes(e.bounds)||t.addIssue({code:s.ZodIssueCode.custom,message:`bounds "${e.bounds}" is not supported for render environment "${e.environment}"`,path:["bounds"]})}),fr=s.object({id:s.string().min(1),displayName:s.string().min(1),description:s.string().optional(),placementZone:s.enum(ui),exportName:s.string().min(1).optional(),entityTypes:s.array(s.enum(ln)).optional(),order:s.number().int().optional(),action:jo,render:qo.optional()}).superRefine((e,t)=>{eh.some(n=>n===e.placementZone)&&(!e.entityTypes||e.entityTypes.length===0)&&t.addIssue({code:s.ZodIssueCode.custom,message:`${e.placementZone} launchers require at least one entityType`,path:["entityTypes"]}),e.placementZone==="projectSidebarItem"&&e.entityTypes&&!e.entityTypes.includes("project")&&t.addIssue({code:s.ZodIssueCode.custom,message:'projectSidebarItem launchers require entityTypes to include "project"',path:["entityTypes"]}),e.action.type==="performAction"&&e.render&&t.addIssue({code:s.ZodIssueCode.custom,message:"performAction launchers cannot declare render hints",path:["render"]}),["openModal","openDrawer","openPopover"].includes(e.action.type)&&!e.render&&t.addIssue({code:s.ZodIssueCode.custom,message:`${e.action.type} launchers require render metadata`,path:["render"]}),e.action.type==="openModal"&&e.render?.environment==="hostInline"&&t.addIssue({code:s.ZodIssueCode.custom,message:"openModal launchers cannot use the hostInline render environment",path:["render","environment"]}),e.action.type==="openDrawer"&&e.render&&!["hostOverlay","iframe"].includes(e.render.environment)&&t.addIssue({code:s.ZodIssueCode.custom,message:"openDrawer launchers must use hostOverlay or iframe render environments",path:["render","environment"]}),e.action.type==="openPopover"&&e.render?.environment==="hostRoute"&&t.addIssue({code:s.ZodIssueCode.custom,message:"openPopover launchers cannot use the hostRoute render environment",path:["render","environment"]})}),Ho=s.object({namespaceSlug:s.string().regex(/^[a-z0-9][a-z0-9_]*$/,{message:"namespaceSlug must be lowercase letters, digits, or underscores and start with a letter or digit"}).max(40).optional(),migrationsDir:s.string().min(1).refine(e=>!e.startsWith("/")&&!e.includes("..")&&!/[\\]/.test(e),{message:"migrationsDir must be a relative package path without '..' or backslashes"}),coreReadTables:s.array(s.enum(ii)).optional()}),$o=s.object({routeKey:s.string().min(1).max(100).regex(/^[a-z0-9][a-z0-9._:-]*$/,{message:"routeKey must be lowercase letters, digits, dots, colons, underscores, or hyphens"}),method:s.enum(oi),path:s.string().min(1).regex(/^\/[a-zA-Z0-9:_./-]*$/,{message:"path must start with / and contain only path-safe literal or :param segments"}).refine(e=>!e.includes("..")&&!e.includes("//")&&e!=="/api"&&!e.startsWith("/api/")&&e!=="/plugins"&&!e.startsWith("/plugins/"),{message:"path must stay inside the plugin api namespace"}),auth:s.enum(ai),capability:s.literal("api.routes.register"),checkoutPolicy:s.enum(ci).optional(),companyResolution:s.discriminatedUnion("from",[s.object({from:s.literal("body"),key:s.string().min(1)}),s.object({from:s.literal("query"),key:s.string().min(1)}),s.object({from:s.literal("issue"),param:s.string().min(1)})]).optional()}),Ol=s.object({id:s.string().min(1).regex(/^[a-z0-9][a-z0-9._-]*$/,"Plugin id must start with a lowercase alphanumeric and contain only lowercase letters, digits, dots, hyphens, or underscores"),apiVersion:s.literal(1),version:s.string().min(1).regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/,"Version must follow semver (e.g. 1.0.0 or 1.0.0-beta.1)"),displayName:s.string().min(1).max(100),description:s.string().min(1).max(500),author:s.string().min(1).max(200),categories:s.array(s.enum(Jn)).min(1),minimumHostVersion:s.string().regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/,"minimumHostVersion must follow semver (e.g. 1.0.0)").optional(),minimumPaperclipVersion:s.string().regex(/^\d+\.\d+\.\d+(-[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?(\+[0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*)?$/,"minimumPaperclipVersion must follow semver (e.g. 1.0.0)").optional(),capabilities:s.array(s.enum(Xn)).min(1),entrypoints:s.object({worker:s.string().min(1),ui:s.string().min(1).optional()}),instanceConfigSchema:hn.optional(),jobs:s.array(Lo).optional(),webhooks:s.array(Mo).optional(),tools:s.array(Do).optional(),database:Ho.optional(),apiRoutes:s.array($o).optional(),environmentDrivers:s.array(Fo).optional(),launchers:s.array(fr).optional(),ui:s.object({slots:s.array(Uo).min(1).optional(),launchers:s.array(fr).optional()}).optional()}).superRefine((e,t)=>{let n=(e.ui?.slots?.length??0)>0,r=(e.ui?.launchers?.length??0)>0;if((n||r)&&!e.entrypoints.ui&&t.addIssue({code:s.ZodIssueCode.custom,message:"entrypoints.ui is required when ui.slots or ui.launchers are declared",path:["entrypoints","ui"]}),e.minimumHostVersion&&e.minimumPaperclipVersion&&e.minimumHostVersion!==e.minimumPaperclipVersion&&t.addIssue({code:s.ZodIssueCode.custom,message:"minimumHostVersion and minimumPaperclipVersion must match when both are declared",path:["minimumHostVersion"]}),e.tools&&e.tools.length>0&&(e.capabilities.includes("agent.tools.register")||t.addIssue({code:s.ZodIssueCode.custom,message:"Capability 'agent.tools.register' is required when tools are declared",path:["capabilities"]})),e.environmentDrivers&&e.environmentDrivers.length>0&&(e.capabilities.includes("environment.drivers.register")||t.addIssue({code:s.ZodIssueCode.custom,message:"Capability 'environment.drivers.register' is required when environmentDrivers are declared",path:["capabilities"]})),e.jobs&&e.jobs.length>0&&(e.capabilities.includes("jobs.schedule")||t.addIssue({code:s.ZodIssueCode.custom,message:"Capability 'jobs.schedule' is required when jobs are declared",path:["capabilities"]})),e.webhooks&&e.webhooks.length>0&&(e.capabilities.includes("webhooks.receive")||t.addIssue({code:s.ZodIssueCode.custom,message:"Capability 'webhooks.receive' is required when webhooks are declared",path:["capabilities"]})),e.apiRoutes&&e.apiRoutes.length>0&&(e.capabilities.includes("api.routes.register")||t.addIssue({code:s.ZodIssueCode.custom,message:"Capability 'api.routes.register' is required when apiRoutes are declared",path:["capabilities"]})),e.database){let o=["database.namespace.migrate","database.namespace.read"];for(let u of o)e.capabilities.includes(u)||t.addIssue({code:s.ZodIssueCode.custom,message:`Capability '${u}' is required when database migrations are declared`,path:["capabilities"]});let a=e.database.coreReadTables??[],c=a.filter((u,d)=>a.indexOf(u)!==d);c.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate database coreReadTables: ${[...new Set(c)].join(", ")}`,path:["database","coreReadTables"]})}if(e.jobs){let o=e.jobs.map(c=>c.jobKey),a=o.filter((c,u)=>o.indexOf(c)!==u);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate job keys: ${[...new Set(a)].join(", ")}`,path:["jobs"]})}if(e.webhooks){let o=e.webhooks.map(c=>c.endpointKey),a=o.filter((c,u)=>o.indexOf(c)!==u);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate webhook endpoint keys: ${[...new Set(a)].join(", ")}`,path:["webhooks"]})}if(e.apiRoutes){let o=e.apiRoutes.map(d=>d.routeKey),a=o.filter((d,m)=>o.indexOf(d)!==m);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate api route keys: ${[...new Set(a)].join(", ")}`,path:["apiRoutes"]});let c=e.apiRoutes.map(d=>`${d.method} ${d.path}`),u=c.filter((d,m)=>c.indexOf(d)!==m);u.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate api routes: ${[...new Set(u)].join(", ")}`,path:["apiRoutes"]})}if(e.tools){let o=e.tools.map(c=>c.name),a=o.filter((c,u)=>o.indexOf(c)!==u);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate tool names: ${[...new Set(a)].join(", ")}`,path:["tools"]})}if(e.environmentDrivers){let o=e.environmentDrivers.map(c=>c.driverKey),a=o.filter((c,u)=>o.indexOf(c)!==u);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate environment driver keys: ${[...new Set(a)].join(", ")}`,path:["environmentDrivers"]})}if(e.ui&&e.ui.slots){let o=e.ui.slots.map(c=>c.id),a=o.filter((c,u)=>o.indexOf(c)!==u);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate UI slot ids: ${[...new Set(a)].join(", ")}`,path:["ui","slots"]})}let i=[...e.launchers??[],...e.ui?.launchers??[]];if(i.length>0){let o=i.map(c=>c.id),a=o.filter((c,u)=>o.indexOf(c)!==u);a.length>0&&t.addIssue({code:s.ZodIssueCode.custom,message:`Duplicate launcher ids: ${[...new Set(a)].join(", ")}`,path:e.ui?.launchers?["ui","launchers"]:["launchers"]})}}),Nl=s.object({packageName:s.string().min(1),version:s.string().min(1).optional(),packagePath:s.string().min(1).optional()}),Ll=s.object({configJson:s.record(s.unknown())}),Ml=s.object({configJson:s.record(s.unknown())}),Dl=s.object({status:s.enum(Yn),lastError:s.string().nullable().optional()}),Fl=s.object({removeData:s.boolean().optional().default(!1)}),Ul=s.object({scopeKind:s.enum($t),scopeId:s.string().min(1).optional(),namespace:s.string().min(1).optional(),stateKey:s.string().min(1)}),jl=s.object({scopeKind:s.enum($t),scopeId:s.string().min(1).optional(),namespace:s.string().min(1).optional(),stateKey:s.string().min(1),value:s.unknown()}),ql=s.object({scopeKind:s.enum($t).optional(),scopeId:s.string().min(1).optional(),namespace:s.string().min(1).optional()});var H="/api",nh={health:`${H}/health`,companies:`${H}/companies`,agents:`${H}/agents`,projects:`${H}/projects`,issues:`${H}/issues`,issueTreeControl:`${H}/issues/:issueId/tree-control`,issueTreeHolds:`${H}/issues/:issueId/tree-holds`,goals:`${H}/goals`,approvals:`${H}/approvals`,secrets:`${H}/secrets`,costs:`${H}/costs`,activity:`${H}/activity`,dashboard:`${H}/dashboard`,sidebarBadges:`${H}/sidebar-badges`,sidebarPreferences:`${H}/sidebar-preferences`,invites:`${H}/invites`,joinRequests:`${H}/join-requests`,members:`${H}/members`,admin:`${H}/admin`};var NA=new Intl.DateTimeFormat("en-US",{year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"2-digit",hour12:!0,timeZone:"UTC",timeZoneName:"short"});var Hl=s.object({version:s.literal(1),updatedAt:s.string(),source:s.enum(["onboard","configure","doctor"])}),$l=s.object({provider:s.enum(["claude","openai"]),apiKey:s.string().optional()}),Bl=s.object({enabled:s.boolean().default(!0),intervalMinutes:s.number().int().min(1).max(10080).default(60),retentionDays:s.number().int().min(1).max(3650).default(7),dir:s.string().default("~/.paperclip/instances/default/data/backups")}),Vl=s.object({mode:s.enum(["embedded-postgres","postgres"]).default("embedded-postgres"),connectionString:s.string().optional(),embeddedPostgresDataDir:s.string().default("~/.paperclip/instances/default/db"),embeddedPostgresPort:s.number().int().min(1).max(65535).default(54329),backup:Bl.default({enabled:!0,intervalMinutes:60,retentionDays:7,dir:"~/.paperclip/instances/default/data/backups"})}),Kl=s.object({mode:s.enum(["file","cloud"]),logDir:s.string().default("~/.paperclip/instances/default/logs")}),Wl=s.object({deploymentMode:s.enum(Ss).default("local_trusted"),exposure:s.enum(bs).default("private"),bind:s.enum(vs).optional(),customBindHost:s.string().optional(),host:s.string().default("127.0.0.1"),port:s.number().int().min(1).max(65535).default(3100),allowedHostnames:s.array(s.string().min(1)).default([]),serveUi:s.boolean().default(!0)}),zl=s.object({baseUrlMode:s.enum(ks).default("auto"),publicBaseUrl:s.string().url().optional(),disableSignUp:s.boolean().default(!1)}),Gl=s.object({baseDir:s.string().default("~/.paperclip/instances/default/data/storage")}),Zl=s.object({bucket:s.string().min(1).default("paperclip"),region:s.string().min(1).default("us-east-1"),endpoint:s.string().optional(),prefix:s.string().default(""),forcePathStyle:s.boolean().default(!1)}),Yl=s.object({provider:s.enum(zs).default("local_disk"),localDisk:Gl.default({baseDir:"~/.paperclip/instances/default/data/storage"}),s3:Zl.default({bucket:"paperclip",region:"us-east-1",prefix:"",forcePathStyle:!1})}),Jl=s.object({keyFilePath:s.string().default("~/.paperclip/instances/default/secrets/master.key")}),Xl=s.object({provider:s.enum(cn).default("local_encrypted"),strictMode:s.boolean().default(!1),localEncrypted:Jl.default({keyFilePath:"~/.paperclip/instances/default/secrets/master.key"})}),Ql=s.object({enabled:s.boolean().default(!0)}).default({}),rh=s.object({$meta:Hl,llm:$l.optional(),database:Vl,logging:Kl,server:Wl,telemetry:Ql,auth:zl.default({baseUrlMode:"auto",disableSignUp:!1}),storage:Yl.default({provider:"local_disk",localDisk:{baseDir:"~/.paperclip/instances/default/data/storage"},s3:{bucket:"paperclip",region:"us-east-1",prefix:"",forcePathStyle:!1}}),secrets:Xl.default({provider:"local_encrypted",strictMode:!1,localEncrypted:{keyFilePath:"~/.paperclip/instances/default/secrets/master.key"}})}).superRefine((e,t)=>{e.server.deploymentMode==="local_trusted"&&e.server.exposure!=="private"&&t.addIssue({code:s.ZodIssueCode.custom,message:"server.exposure must be private when deploymentMode is local_trusted",path:["server","exposure"]});for(let n of yi({deploymentMode:e.server.deploymentMode,deploymentExposure:e.server.exposure,bind:e.server.bind,host:e.server.host,customBindHost:e.server.customBindHost}))t.addIssue({code:s.ZodIssueCode.custom,message:n,path:n.includes("customBindHost")?["server","customBindHost"]:["server","bind"]});e.auth.baseUrlMode==="explicit"&&!e.auth.publicBaseUrl&&t.addIssue({code:s.ZodIssueCode.custom,message:"auth.publicBaseUrl is required when auth.baseUrlMode is explicit",path:["auth","publicBaseUrl"]}),e.server.exposure==="public"&&e.auth.baseUrlMode!=="explicit"&&t.addIssue({code:s.ZodIssueCode.custom,message:"auth.baseUrlMode must be explicit when deploymentMode=authenticated and exposure=public",path:["auth","baseUrlMode"]}),e.server.exposure==="public"&&!e.auth.publicBaseUrl&&t.addIssue({code:s.ZodIssueCode.custom,message:"auth.publicBaseUrl is required when deploymentMode=authenticated and exposure=public",path:["auth","publicBaseUrl"]})});import{performance as ed}from"perf_hooks";import{join as Yo,dirname as dh}from"path";import{randomBytes as ph}from"crypto";import{readFile as mh,mkdir as fh,open as gh,rename as hh,unlink as yh}from"fs/promises";function Sh(e){return yd(e.priority)*100+Sd(e.consequence)*10+bd(e.tone)+(e.blocking?1e3:0)+(e.attentionScoreOffset??0)}function xe(e,t={}){return yd(ie(e))*100+Sd(e.consequence)*10+bd(e.tone)+(Rt(e)?1e3:0)+hd(e)+bh(e,t.now)}function ie(e){return e.mode==="status"?e.tone==="critical"||e.consequence==="high"?"high":e.tone==="focused"||e.consequence==="medium"?"normal":"background":"high"}function hd(e){let t=e.metadata?.attention;return t&&typeof t=="object"&&"scoreOffset"in t&&typeof t.scoreOffset=="number"?t.scoreOffset:0}function Rt(e){return e.mode!=="status"&&e.responseSpec?.kind!=="none"}function yd(e){switch(e){case"background":return 0;case"normal":return 1;case"high":return 2}}function Sd(e){switch(e){case"low":return 0;case"medium":return 1;case"high":return 2}}function bd(e){switch(e){case"ambient":return 0;case"focused":return 1;case"critical":return 2}}function bh(e,t){let n=t??e.timing.updatedAt,r=Date.parse(e.timing.updatedAt),i=Date.parse(n);if(Number.isNaN(r)||Number.isNaN(i)||i<=r)return 0;let o=i-r,a=vh(e);if(o<=a.graceMs)return 0;let c=Math.floor((o-a.graceMs)/a.stepMs)+1;return-Math.min(a.maxPenalty,c*a.penaltyPerStep)}function vh(e){return Rt(e)?{graceMs:1800*1e3,stepMs:600*1e3,penaltyPerStep:1,maxPenalty:6}:e.tone==="critical"||e.consequence==="high"?{graceMs:1200*1e3,stepMs:600*1e3,penaltyPerStep:1,maxPenalty:8}:e.tone==="focused"||e.consequence==="medium"?{graceMs:600*1e3,stepMs:600*1e3,penaltyPerStep:2,maxPenalty:12}:{graceMs:300*1e3,stepMs:600*1e3,penaltyPerStep:3,maxPenalty:18}}var kh=250;function Ih(e,t={}){let n=[],r=[];for(let a of e)a.now&&(Eh(a.now)?r.push(a.now):n.push(a.now)),n.push(...a.next),r.push(...a.ambient);let i=t.now??_h([...n,...r]);if(wh([...n,...r])>=2){let a=[],c=[];for(let u of n)!vd(u)&&xe(u,{now:i})<200?c.push(u):a.push(u);n=a,r=[...r,...c]}if(n.sort((a,c)=>td(a,c,i)),r.sort((a,c)=>td(a,c,i)),t.operatorPresence==="absent")return{now:null,next:n,ambient:r};let o=Ah(n,r,t.focusedInteractionId??null,i);if(o){let a=n.some(c=>c.interactionId===o.interactionId);return{now:o,next:a?n.filter(c=>c.interactionId!==o.interactionId):n,ambient:r.filter(c=>c.interactionId!==o.interactionId)}}if(n.length>0){let[a,...c]=n;return{now:a??null,next:c,ambient:r}}if(r.length>0){let[a,...c]=r;return a&&(xe(a,{now:i})<=0||t.globalAttentionState==="overloaded"&&xe(a,{now:i})<200)?{now:null,next:[],ambient:r}:{now:a??null,next:[],ambient:c}}return{now:null,next:[],ambient:[]}}function Eh(e){return e.mode==="status"||e.tone==="ambient"}function vd(e){return e.mode!=="status"||e.tone==="critical"||e.consequence==="high"}function wh(e){return e.filter(vd).length}function td(e,t,n){let r=xe(t,{now:n})-xe(e,{now:n});return r!==0?r:e.timing.createdAt.localeCompare(t.timing.createdAt)}function _h(e){let t="1970-01-01T00:00:00.000Z";for(let n of e){let r=n.timing.updatedAt;r.localeCompare(t)>0&&(t=r)}return t}function Ah(e,t,n,r){if(!n)return null;let i=e.find(a=>a.interactionId===n)??t.find(a=>a.interactionId===n)??null;if(!i)return null;let o=e[0]??t[0]??null;return!o||o.interactionId===i.interactionId?i:Rh(i,o,r)?null:i}function Rh(e,t,n){return t.tone==="critical"&&e.tone!=="critical"||t.mode!=="status"&&t.consequence==="high"&&e.consequence!=="high"?!0:xe(t,{now:n})-xe(e,{now:n})>=kh}function bt(e){let t=e.counts.presented>=5;return e.counts.presented+e.counts.deferred>=5&&e.counts.deferred>=3&&e.deferred.next+e.deferred.suppressed>=3?"overloaded":t&&e.dismissalRate>=.6&&e.deferred.suppressed>=2?"avoiding":e.counts.contextExpanded>=1&&e.averageResponseLatencyMs!==null&&e.averageResponseLatencyMs>=15e3?"hesitating":t&&e.responseRate>=.6&&e.averageResponseLatencyMs!==null&&e.averageResponseLatencyMs<=1e4?"engaged":"monitoring"}function gr(e){let t=[];return e.counts.contextExpanded>=1&&e.counts.responded>=1&&t.push("context_before_action"),e.counts.deferred>=2&&e.counts.returned>=1&&t.push("defer_then_return"),e.counts.attentionShifted>=3&&t.push("fragmented_attention"),e.counts.viewed>=1&&e.counts.timedOut>=1&&e.counts.responded===0&&t.push("stalling"),t}var Th=class{apply(e,t,n=t){let r=this.scoreOffset(e,t,n),i=this.rationale(e,t,n,r);return{...e,...r!==0?{attentionScoreOffset:r}:{},...i.length>0?{attentionRationale:i}:{}}}scoreOffset(e,t,n){let r=0,i=bt(t),o=bt(n),a=gr(t),c=gr(n);if(e.mode==="status"){let u=e.consequence==="high"||e.tone==="critical";t.dismissalRate>=.5&&(r-=15),t.deferred.suppressed>=2&&(r-=10),u&&(r+=20),!u&&i==="overloaded"&&(r-=10),!u&&i==="avoiding"&&(r-=10),!u&&i!=="overloaded"&&o==="overloaded"&&(r-=5),!u&&c.includes("fragmented_attention")&&(r-=5)}return e.blocking&&t.counts.contextExpanded>=2&&(r+=10),e.blocking&&t.responseRate>=.75&&t.averageResponseLatencyMs!==null&&t.averageResponseLatencyMs<=1e4&&(r+=5),e.blocking&&i==="hesitating"&&(r+=5),e.blocking&&a.includes("defer_then_return")&&(r+=5),r}rationale(e,t,n,r){let i=[],o=bt(t),a=bt(n),c=gr(t),u=gr(n);return e.mode==="status"&&t.dismissalRate>=.5&&i.push("status updates for this task are often dismissed"),e.mode==="status"&&t.deferred.suppressed>=2&&i.push("similar task updates have repeatedly remained ambient"),e.mode==="status"&&(e.consequence==="high"||e.tone==="critical")&&i.push("high-consequence status should remain more visible"),e.mode==="status"&&e.consequence!=="high"&&e.tone!=="critical"&&o==="overloaded"&&i.push("recent task activity suggests attention is already saturated"),e.mode==="status"&&e.consequence!=="high"&&e.tone!=="critical"&&o==="avoiding"&&i.push("recent behavior suggests low-value updates should stay quiet"),e.mode==="status"&&e.consequence!=="high"&&e.tone!=="critical"&&o!=="overloaded"&&a==="overloaded"&&i.push("overall operator activity suggests attention is already saturated"),e.mode==="status"&&e.consequence!=="high"&&e.tone!=="critical"&&u.includes("fragmented_attention")&&i.push("recent attention has already shifted repeatedly across work"),e.blocking&&t.counts.contextExpanded>=2&&i.push("this task often requires deeper context before action"),e.blocking&&t.responseRate>=.75&&t.averageResponseLatencyMs!==null&&t.averageResponseLatencyMs<=1e4&&i.push("similar blocking interactions usually receive quick responses"),e.blocking&&o==="hesitating"&&i.push("similar blocking interactions appear to require more deliberation"),e.blocking&&c.includes("defer_then_return")&&i.push("similar interactions are often deferred and resumed later"),r===0?[]:i}},xh=["need your input","need your approval","need your review","need your sign off","need your sign-off","should i continue","can you approve","can you review","what should i do"],kd=["no action needed","no approval needed","approval is not needed","approval not needed","sign off not needed","sign-off not needed","no input needed","for awareness only","for your awareness","continuing automatically"],Ch=["cannot continue","can't continue","cannot proceed","can't proceed","unable to continue","unable to proceed","blocked on","blocked until","stuck on","requires operator input before continuing","needs operator input before continuing","must be provided before continuing"],Ph=["waiting for approval","approval required","awaiting approval","waiting on approval","pending approval","waiting for input","awaiting input","waiting on input","awaiting review","waiting for review"],Oh=["production","prod","force push","git push --force","rm -rf","drop table","delete database","delete prod","sudo","chmod 777","kill process","migrate"],Nh=["result of running cat -n","result of running sed -n","result of running grep","result of running ls","result of running find","here s the result of running cat -n","here s the result of running sed -n"],Lh=["observation","contents of","showing first","showing top","found"],Mh=["path","type file","content"],Dh=["ran successfully and did not produce any output","command ran successfully and did not produce any output","completed successfully and did not produce any output"],Fh=["tool-output","dmesg"],Uh=["makefile","spdx-license-identifier","patchlevel","sublevel","extraversion"],jh=/(?:^|\s)\/[a-z0-9._-]+(?:\/[a-z0-9._-]+)+(?:\s|$)/,qh=/\bfound\s+\d+\s+match(?:es)?\b|\bshowing\s+(?:first|top)\s+\d+\b|\bmatch(?:es)?\s+in\s+\d+\s+files?\b/,Hh=/\b(import|from|export|class|def|function|const|let|var|return)\b/,$h=/\b\d+\s+(?:import|from|export|class|def|function|const|let|var|return)\b/,Bh=/\/[a-z0-9._/-]+\.(?:c|cc|cpp|cxx|h|hpp|ts|tsx|js|jsx|py|rb|go|rs|java|kt|swift)(?:\b|\/)/,Vh=/\b[a-z0-9.-]+\.(?:c|cc|cpp|cxx|h|hpp|ts|tsx|js|jsx|py|rb|go|rs|java|kt|swift)\b/,Kh=/\b(static|struct|enum|typedef|void|int|char|bool|return)\b/,Wh=/\b\d+\s+(?:static|struct|enum|typedef|void|int|char|bool|return)\b/,zh=/\b\d+\s+\[\s*\d+\.\d+\]\s+[a-z0-9_.:-]+/,Gh=/\b(?:version|patchlevel|sublevel|extraversion)\b/,Zh=["form is valid false","form without instance is valid false","form errors","errorlist","decompress result"],Yh=["traceback","exception","permission denied","command not found","segmentation fault"],Jh=["still","again","back again","came back","continues","continuing","returned","returning","remains","persisting","retrying","recurred"],Xh=["did not repeat","didn t repeat","did not return","didn t return","did not recur","didn t recur","not repeated","not returning","not recurring","no repeat"],Qh=["resolved","fixed","unblocked","no longer blocked"],nd=["not resolved","did not resolve","didn t resolve","not fixed","did not fix","didn t fix","not recovered","did not recover","didn t recover"],ey=["recovered","completed successfully","succeeded after"],rd=["instead","supersedes","superseded","replaced by","use this plan instead","follow this plan instead"],ty=["worse","worsened","escalating","regression","regressed","spread","broader impact","degraded further","critical now","now failing"],ny=["did not regress","didn t regress","no regression","not worsening","did not worsen","didn t worsen","not escalating","did not escalate","didn t escalate"],ry=["fail","failed","failing","failure","error","broken","blocked","stalled","stall","incident","issue","outage","degraded","regression","retry","rollback"];function En(e){return e.toLowerCase().replace(/[^a-z0-9/._-]+/g," ").trim()}function Jo(e){return[...new Set(e)]}function ca(e){return Bo(e.toolFamily)??Bo(hy(e.metadata))??Bo(yy(e.context))}function Id(e){let t=ca(e);if(t)return t;let n=En(`${e.title} ${e.summary??""}`);return Re(n,"wants to read")||Re(n,"wants to inspect")||Sn(n,"read")||Sn(n,"inspect")?"read":Re(n,"wants to write")||Sn(n,"write")?"write":Re(n,"wants to edit")||Sn(n,"edit")?"edit":Re(n,"shell command")||Re(n,"wants to run")?"bash":Re(n,"search the web")?"web":Re(n,"search files")||Re(n,"search file contents")?"search":null}function sy(e){return M(e,kd)?!1:M(e,xh)}function iy(e){return M(e,kd)?null:M(e,Ch)?"blocking":M(e,Ph)?"waiting":null}function Ed(e){let t=[],n=M(e,Jh)&&!M(e,Xh),r=M(e,Qh)&&!M(e,nd),i=M(e,ey)&&!M(e,nd),o=M(e,ty)&&!M(e,ny),a=M(e,ry)||M(e,rd)||o;return n&&a&&t.push({kind:"same_issue"},{kind:"repeats"}),(r||i&&a)&&t.push({kind:"same_issue"},{kind:"resolves"}),M(e,rd)&&t.push({kind:"same_issue"},{kind:"supersedes"}),o&&t.push({kind:"same_issue"},{kind:"escalates"}),by(t)}function yn(e,t,n){return Sy(e)||n==="read"||n==="search"?t:uy(e,Oh)?"high":(n==="write"||n==="edit"||n==="bash")&&t==="low"?"medium":t}function oy(e,t){return t!=="edit"&&t!=="read"?!1:M(e,Nh)||Ad(e)||_d(e)}function ay(e,t){return t==="search"?sd(e):t==="read"?sd(e)?!0:!Ad(e)&&!_d(e)||my(e)?!1:fy(e)||gy(e):!1}function cy(e,t){return t!=="bash"?!1:M(e,Zh)&&!M(e,Yh)}function M(e,t){return t.some(n=>wd(e,n))}function uy(e,t){return t.some(n=>ly(e,n))}function wd(e,t){let n=En(t);return n?n.includes(" ")?Re(e,n):Sn(e,n):!1}function ly(e,t){return wd(e,t)}function _d(e){return ua(e)?M(e,Lh)||dy(e)||py(e):!1}function Ad(e){return M(e,Mh)&&ua(e)}function sd(e){return qh.test(e)||ua(e)&&/\bmatch(?:es)?\b/.test(e)}function ua(e){return jh.test(e)}function dy(e){return Hh.test(e)}function py(e){return $h.test(e)}function my(e){return Bh.test(e)||Vh.test(e)||Kh.test(e)||Wh.test(e)}function fy(e){return zh.test(e)||M(e,Fh)}function gy(e){return Gh.test(e)||M(e,Uh)}function hy(e){let t=e?.toolFamily;return typeof t=="string"?t:null}function yy(e){if(!e?.items)return null;for(let t of e.items){let n=t.id.toLowerCase(),r=t.label.toLowerCase();if(n==="toolfamily"||n==="tool_family"||n==="tool"||r==="tool family")return t.value??null}return null}function Bo(e){if(!e)return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function Re(e,t){let n=En(t);return n?new RegExp(`(?:^|[^a-z0-9_])${Rd(n)}(?:$|[^a-z0-9_])`).test(e):!1}function Sn(e,t){return new RegExp(`(?:^|[^a-z0-9_])${Rd(t)}(?:$|[^a-z0-9_])`).test(e)}function Rd(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Sy(e){return M(e,Dh)}function by(e){let t=new Set,n=[];for(let r of e){let i=`${r.kind}:${r.target??""}`;t.has(i)||(t.add(i),n.push(r))}return n}function vy(e){switch(e){case"approval":return"approval_request";case"choice":return"question_request";case"form":return"form_request"}}function ky(e){switch(e){case"approval":return"permission_request";case"choice":case"form":return"question_request"}}function Iy(e,t){switch(e){case"approval":return t==="high"?"A high-risk action needs explicit operator approval.":"Approval is required before work can continue.";case"choice":return"A decision is required before work can continue.";case"form":return"Additional input is required before work can continue."}}function vt(e,t){if(t?.wasCancelled)return"Work was cancelled and may need review.";switch(e){case"failed":return"Work has failed and should be reviewed.";case"blocked":return"Work is blocked and may require operator attention.";case"running":case"waiting":case"completed":return t?.impliedAsk?"Status text implies the operator may need to respond.":void 0}}function zt(e,t){if(t?.wasCancelled)return["task cancellation is an explicit lifecycle fact"];switch(e){case"failed":return["task status explicitly indicates failure"];case"blocked":return["task status explicitly indicates blocked work"];case"running":case"waiting":case"completed":return t?.impliedAsk?["status wording suggests an implied operator request"]:["task update carries a non-blocking lifecycle status"]}}function id(e){switch(e){case"task_started":return["task start is an explicit lifecycle fact"];case"completion":return["task completion is an explicit lifecycle fact"]}}function Td(e){let t=Ey(e);return Ay(t,e.semanticHints)}function Ey(e){switch(e.type){case"task.started":return{intentFrame:"task_started",activityClass:"session_status",consequence:"low",factors:["task.started"],relationHints:[],confidence:"high",reasons:id("task_started"),provenance:re(["intentFrame","activityClass","consequence","confidence"])};case"task.updated":return wy(e);case"human.input.requested":return _y(e);case"task.completed":return{intentFrame:"completion",activityClass:"tool_completion",consequence:"low",factors:["task.completed"],relationHints:[],confidence:"high",reasons:id("completion"),provenance:re(["intentFrame","activityClass","consequence","confidence"])};case"task.cancelled":return{intentFrame:"cancellation",activityClass:"status_update",consequence:"low",...e.reason?{whyNow:vt("completed",{wasCancelled:!0})??"Work was cancelled and may need review."}:{},factors:["task.cancelled"],relationHints:[],confidence:"high",reasons:zt("completed",{wasCancelled:!0}),provenance:{...re(["intentFrame","activityClass","consequence","confidence"]),...e.reason?re(["whyNow"]):{}}};default:return Cy(e)}}function wy(e){let t=En(`${e.title} ${e.summary??""}`),n=sy(t),r=iy(t),i=Ed(t),o=Od(e.title,e.summary,e.toolFamily,e.context),{toolFamily:a,source:c}=Pd(o,!0),u=i.length>0?re(["relationHints"]):{},d=e.status==="failed"&&oy(t,a),m=e.status==="failed"&&ay(t,a),f=e.status==="failed"&&cy(t,a);switch(e.status){case"failed":return d?{intentFrame:"status_update",activityClass:"status_update",...a?{toolFamily:a}:{},consequence:yn(t,m?"low":"high",a),factors:["task.updated","failed","observational_failure"],relationHints:i,confidence:"high",reasons:["task status indicates failure but the update reads like observational output"],provenance:{...re(["intentFrame","activityClass","consequence","confidence"]),...bn(c),...u}}:{intentFrame:"failure",activityClass:"tool_failure",...a?{toolFamily:a}:{},consequence:yn(t,m?"low":f?"medium":"high",a),whyNow:vt("failed")??"Work has failed and should be reviewed.",factors:["task.updated","failed"],relationHints:i,confidence:n?"medium":"high",reasons:f?[...zt("failed",{impliedAsk:n}),"failure content looks like expected diagnostic output from repro work"]:zt("failed",{impliedAsk:n}),provenance:{...re(["intentFrame","activityClass","consequence","whyNow","confidence"]),...bn(c),...u}};case"blocked":return{intentFrame:"blocked_work",activityClass:"status_update",...a?{toolFamily:a}:{},consequence:yn(t,"medium",a),whyNow:vt("blocked")??"Work is blocked and may require operator attention.",factors:["task.updated","blocked"],relationHints:i,confidence:n?"medium":"high",reasons:zt("blocked",{impliedAsk:n}),provenance:{...re(["intentFrame","activityClass","consequence","whyNow","confidence"]),...bn(c),...u}};case"running":case"waiting":case"completed":return{intentFrame:r==="blocking"?"blocked_work":"status_update",activityClass:"status_update",...a?{toolFamily:a}:{},consequence:yn(t,"low",a),...(()=>{let g=r==="blocking"?vt("blocked"):n?vt(e.status,{impliedAsk:n}):void 0;return g!==void 0?{whyNow:g}:{}})(),factors:["task.updated",e.status,...r==="blocking"?["semantic blocking signal"]:[]],relationHints:i,confidence:r==="blocking"?"medium":n?"low":"high",reasons:r==="blocking"?[...zt("blocked"),"status wording indicates work cannot continue yet"]:zt(e.status,{impliedAsk:n}),provenance:{...re(["intentFrame","activityClass","consequence","confidence"]),...bn(c),...r==="blocking"||n?re(["whyNow"]):{},...u}};default:return Py(e.status)}}function _y(e){let t=Od(e.title,e.summary,e.toolFamily,e.context),{toolFamily:n,source:r}=Pd(t,e.request.kind==="approval"),i=En(`${e.title} ${e.summary}`),o=Ed(i),a=e.riskHint??xy(e.request.kind,n),c=yn(i,a,n),u=o.length>0?re(["relationHints"]):{};return{intentFrame:vy(e.request.kind),activityClass:ky(e.request.kind),...n?{toolFamily:n}:{},consequence:c,whyNow:Iy(e.request.kind,c),factors:["human.input.requested",e.request.kind],relationHints:o,confidence:e.riskHint?"high":e.request.kind==="approval"&&n?"medium":"low",reasons:[e.riskHint?"source provided an explicit risk hint":"request kind establishes an explicit operator decision point",...r==="explicit"?["tool family was supplied by the source or context"]:r==="inferred"?["tool family was inferred from approval wording"]:[]],provenance:{...re(["intentFrame","activityClass","whyNow"]),...bn(r),...e.riskHint?xd(["consequence","confidence"]):re(["consequence","confidence"]),...u}}}function re(e){return Cd(e,"inferred")}function xd(e){return Cd(e,"source")}function Cd(e,t){return Object.fromEntries(e.map(n=>[n,t]))}function bn(e){switch(e){case"explicit":return xd(["toolFamily"]);case"inferred":return re(["toolFamily"]);case"none":return{};default:return Ny(e)}}function Pd(e,t){let n=ca(e);if(n)return{toolFamily:n,source:"explicit"};if(!t)return{source:"none"};let r=Id(e);return r?{toolFamily:r,source:"inferred"}:{source:"none"}}function Ay(e,t){return t?{...e,...Ty(t),factors:Jo([...e.factors??[],...t.factors??[]]),relationHints:[...t.relationHints??e.relationHints],reasons:Jo([...e.reasons??[],...t.reasons??[]]),provenance:{...e.provenance??{},...Ry(t)}}:e}function Ry(e){return{...e.intentFrame!==void 0?{intentFrame:"hint"}:{},...e.activityClass!==void 0?{activityClass:"hint"}:{},...e.toolFamily!==void 0?{toolFamily:"hint"}:{},...e.consequence!==void 0?{consequence:"hint"}:{},...e.whyNow!==void 0?{whyNow:"hint"}:{},...e.relationHints!==void 0?{relationHints:"hint"}:{},...e.confidence!==void 0?{confidence:"hint"}:{},...e.abstained!==void 0?{abstained:"hint"}:{}}}function Ty(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&n!=="factors"&&n!=="relationHints"&&n!=="reasons"&&(t[n]=r);return t}function xy(e,t){switch(e){case"approval":return t==="read"||t==="search"?"low":"medium";case"choice":case"form":return"medium";default:return Oy(e)}}function Od(e,t,n,r){return{title:e,...t!==void 0?{summary:t}:{},...n!==void 0?{toolFamily:n}:{},...r?.items!==void 0?{context:{items:r.items}}:{}}}function Cy(e){throw new Error(`Unhandled source event in semantic interpreter: ${JSON.stringify(e)}`)}function Py(e){throw new Error(`Unhandled task status in semantic interpreter: ${e}`)}function Oy(e){throw new Error(`Unhandled human input request kind in semantic interpreter: ${e}`)}function Ny(e){throw new Error(`Unhandled tool family provenance source in semantic interpreter: ${e}`)}function la(e,t){return{ask:Ly(e,t),activity:My(e,t),...t.consequence!==void 0?{consequence:t.consequence}:{},blocking:Dy(e,t),episode:Fy(e,t),confidence:t.confidence,source:jy(e,t)}}function Ly(e,t){switch(e.type){case"human.input.requested":return e.request.kind;case"task.started":case"task.completed":case"task.cancelled":return"none";case"task.updated":return t.intentFrame==="approval_request"||t.activityClass==="permission_request"?"approval":t.intentFrame==="form_request"?"form":t.intentFrame==="question_request"||t.activityClass==="question_request"?"choice":"status";default:return xr(e)}}function My(e,t){switch(e.type){case"human.input.requested":return e.request.kind==="approval"?"decision_request":"question";case"task.completed":case"task.cancelled":return"task_completion";case"task.updated":return t.intentFrame==="approval_request"||t.activityClass==="permission_request"?"decision_request":t.intentFrame==="question_request"||t.intentFrame==="form_request"||t.activityClass==="question_request"?"question":e.status==="failed"||t.intentFrame==="failure"?"failure":e.status==="completed"?"task_completion":"task_progress";case"task.started":return"background_work";default:return xr(e)}}function Dy(e,t){switch(e.type){case"human.input.requested":return"blocking";case"task.started":case"task.completed":case"task.cancelled":return"non_blocking";case"task.updated":return e.status==="blocked"||t.intentFrame==="blocked_work"?"blocking":e.status==="waiting"||t.intentFrame==="approval_request"||t.intentFrame==="question_request"||t.intentFrame==="form_request"?"waiting":"non_blocking";default:return xr(e)}}function Fy(e,t){let n=new Set(t.relationHints.map(r=>r.kind));return n.has("resolves")?"resolved":n.has("same_issue")&&Uy(t.relationHints)?"resurfaced":n.has("same_issue")?"same_issue":e.type==="human.input.requested"||e.type==="task.started"?"new":"unknown"}function Uy(e){return e.some(t=>t.kind==="repeats"||t.kind==="escalates"||t.kind==="supersedes")}function jy(e,t){let n=Object.values(t.provenance??{});return n.includes("hint")?"hinted":qy(e,t)?e.type==="task.updated"&&t.intentFrame==="status_update"&&t.confidence==="low"&&t.provenance?.confidence==="inferred"?"inferred":"explicit":n.includes("source")?"explicit":n.includes("inferred")?"inferred":"explicit"}function qy(e,t){switch(e.type){case"human.input.requested":return!0;case"task.started":case"task.completed":case"task.cancelled":return!0;case"task.updated":switch(e.status){case"blocked":return t.intentFrame==="blocked_work";case"failed":return t.intentFrame==="failure"||t.intentFrame==="status_update";case"completed":return t.intentFrame==="completion"||t.intentFrame==="status_update";case"running":case"waiting":return t.intentFrame==="status_update";default:return Hy(e.status)}default:return xr(e)}}function xr(e){throw new Error(`Unhandled semantic ontology event: ${JSON.stringify(e)}`)}function Hy(e){throw new Error(`Unhandled task status in semantic ontology: ${e}`)}function $y(e){if(!e.semantic)return{blockedLikeStatus:!1};let t=la(e,e.semantic),n=e.semantic.abstained===!0;return{ontology:t,semanticEvidence:{confidence:t.confidence,source:t.source,strength:Fd(t.confidence,t.source,n),abstained:n},...e.semantic.relationHints.length>0?{relationEvidence:{source:Ud(e.semantic),strength:Wy(e.semantic,n)}}:{},blockedLikeStatus:e.type==="task.updated"&&t.blocking==="blocking"&&e.status!=="blocked"}}function Nd(e){return Tt(e)?.strength??null}function Tt(e){return e.judgmentInput.semanticEvidence??null}function By(e){return e.judgmentInput.relationEvidence??null}function Ld(e){return By(e)?.strength??null}function Md(e){return e.judgmentInput.ontology??null}function kr(e){return Tt(e)?.confidence??null}function Ir(e){return Tt(e)?.abstained===!0}function Vy(e){return kr(e)==="low"}function Ky(e){let t=Nd(e),n=Tt(e)?.source;if(!t||!n)return 0;if(n==="inferred")switch(t){case"weak":return-2;case"qualified":return-1;case"strong":return 0}return(n==="explicit"||n==="hinted")&&t==="strong"?1:0}function da(e){return e.judgmentInput.blockedLikeStatus}function Dd(e,t){return t==="ambient"&&da(e)?"queue":t}function Fd(e,t,n){if(n)return"weak";switch(e){case"low":return"weak";case"medium":return t==="inferred"?"weak":"qualified";case"high":return t==="inferred"?"qualified":"strong"}}function Ud(e){switch(e.provenance?.relationHints){case"source":return"explicit";case"hint":return"hinted";case"inferred":return"inferred";default:return"inferred"}}function Wy(e,t){switch(Ud(e)){case"explicit":return"strong";case"hinted":return t?"weak":"qualified";case"inferred":return Fd(e.confidence,"inferred",t)}}var zy=1,Ze=zy,V={ambiguity:{nonBlockingActivationThreshold:180,promotionMargin:20},attentionValue:{memorySufficiency:{toolFamilyPresentations:3,toolFamilyResponses:3,consequenceReviewedCount:4},responseAffinity:{fastLatencyMs:2e3,mediumLatencyMs:5e3,fastBoost:8,mediumBoost:4},consequenceCalibration:{highRejectionRate:.5,mediumRejectionRate:.25,adjustments:{low:{highRate:8,mediumRate:4},medium:{highRate:4,mediumRate:2},high:{highRate:-4,mediumRate:-2}}},contextCost:{highRate:.6,mediumRate:.3,highPenalty:-6,mediumPenalty:-3},deferralAffinity:{highRate:.6,mediumRate:.3,highBoost:6,mediumBoost:3}},queuePlanner:{minimumDwellMs:3e4,streamContinuityMargin:20,conflictingInterruptMargin:10,statusBurstWindowMs:6e4,urgentBacklogWindowMs:9e4,deferredEscalationThreshold:3,returnedEscalationThreshold:2,escalationScoreSlack:10,highContextQueueMargin:8,mediumContextQueueMargin:4,actionableEpisodeEvidenceThreshold:4,actionableEpisodeScoreSlack:15},pressureForecast:{freshness:{demandMs:2e4,residualMs:12e4},visibleInterruptiveBoost:{elevatedCount:1,highCount:2},recentDemand:{elevatedCount:5,highCount:8},responseLatencyMs:{elevated:8e3,high:15e3},deferredPressure:{elevatedSuppressedCount:1,highSuppressedCount:2,elevatedDeferredCount:2,highDeferredCount:4},slowClearance:{presentedCount:4,responseRate:.3},scoreBands:{elevatedLevel:2,highLevel:5,risingRisk:3,highRisk:6}},attentionBudget:{thresholdOffset:{elevated:6,high:12},recentDecisions:{elevatedCount:4,highCount:8},responseLatencyMs:{elevated:8e3,high:15e3},deferredCount:{elevated:2,high:4},interruptiveVisible:{elevated:1,high:2},scoreBands:{elevatedScore:2,highScore:5}},episodeEvidence:{blockingBoost:4,recurringEpisodeBoost:1,persistentEpisodeBoost:1,highSignalBoost:2,multiModeBoost:1,stackingBoost:1,relationRepeatBoost:1,relationEscalationBoost:2,actionableThreshold:4,staleAfterMs:15*6e4}};function jd(e,t){return(e??[]).some(n=>n.kind===t)}function Gy(e){return(e??[]).find(n=>typeof n.target=="string"&&n.target.length>0)?.target??null}function Cr(e=Date.now){return{nowMs:()=>e(),nowIso:()=>Zt(e()),parse:kn,add:Zy,diff:pa}}function kn(e){let t=Date.parse(e);return Number.isNaN(t)?null:t}function Zt(e){return new Date(e).toISOString()}function Zy(e,t){let n=kn(e);return n===null?null:Zt(n+t)}function pa(e,t){let n=kn(e),r=kn(t);return n===null||r===null?null:n-r}var Ie=V.episodeEvidence,Yy=1440*6e4,Jy=1024,Xy=class{byKey=new Map;byId=new Map;byInteractionId=new Map;nextSequenceByKey=new Map;clock;dormantRetentionMs;maxDormantEpisodes;latestObservedAtMs=null;prunedRecords=0;constructor(e={}){this.clock=e.clock??Cr(),this.dormantRetentionMs=e.dormantRetentionMs??Yy,this.maxDormantEpisodes=e.maxDormantEpisodes??Jy}assign(e){let t=this.clock.parse(e.timestamp);t!==null&&(this.latestObservedAtMs===null||t>this.latestObservedAtMs)&&(this.latestObservedAtMs=t);let n=Qy(e),r=this.byInteractionId.get(e.interactionId),i=r?this.byId.get(r):void 0,o=i?null:this.byKey.get(n),a=i??this.resolveAssignableRecord(n,o,e),c=this.evolveRecord(a,e);return this.byKey.set(c.key,c),this.byId.set(c.id,c),this.byInteractionId.set(e.interactionId,c.id),this.pruneDormantRecords(),{...e,episodeId:c.id,episodeKey:c.key,episodeState:c.state,episodeSize:c.size,episodeEvidenceScore:c.evidenceScore,episodeEvidenceReasons:[...c.evidenceReasons]}}resolveInteraction(e){let t=this.byInteractionId.get(e);if(!t)return;let n=this.byId.get(t);if(n){this.byKey.get(n.key)?.id===n.id&&this.byKey.delete(n.key),this.byId.delete(n.id);for(let r of n.interactions)this.byInteractionId.delete(r)}}readFrameEpisode(e){if(!e)return null;let t=e.metadata?.episode;if(!t||typeof t!="object")return null;let n=Gt(t,"id"),r=Gt(t,"key"),i=Hd(t,"state"),o=od(t,"size"),a=od(t,"evidenceScore")??0,c=iS(t,"evidenceReasons"),u=Gt(t,"lastInteractionId"),d=Gt(t,"updatedAt");return!n||!r||!i||o===null||!u||!d?null:{id:n,key:r,state:i,size:o,evidenceScore:a,evidenceReasons:c,lastInteractionId:u,updatedAt:d}}stats(){let e=0,t=0,n=null;for(let r of this.byId.values())this.isActiveRecord(r)?e+=1:t+=1,(n===null||r.updatedAt>n)&&(n=r.updatedAt);return{activeRecords:e,dormantRecords:t,retainedRecords:this.byId.size,boundInteractions:this.byInteractionId.size,dormantRetentionMs:this.dormantRetentionMs,maxDormantRecords:this.maxDormantEpisodes,prunedRecords:this.prunedRecords,latestEpisodeAt:n}}createRecord(e,t){let n=(this.nextSequenceByKey.get(e)??0)+1;this.nextSequenceByKey.set(e,n);let r=qd(t)?(t.relationHints??[]).map(i=>i.kind):[];return{id:`episode:${e}:${n}`,key:e,state:t.blocking?"actionable":"emerging",size:0,evidenceScore:t.blocking?Ie.blockingBoost:0,evidenceReasons:t.blocking?["operator-facing work makes this episode immediately actionable"]:[],lastInteractionId:t.interactionId,updatedAt:t.timestamp,interactions:new Set,modes:new Set([t.mode]),highSignals:t.consequence==="high"||t.tone==="critical"?1:0,blockingSignals:t.blocking?1:0,relationKinds:new Set(r)}}resolveAssignableRecord(e,t,n){if(!t)return this.createRecord(e,n);if(this.shouldRollEpisode(t,n.timestamp)){let r={...t,state:"stale"};return this.byId.set(r.id,r),this.createRecord(e,n)}return t}shouldRollEpisode(e,t){if(Ue(e.state))return!0;let n=this.clock.parse(e.updatedAt),r=this.clock.parse(t);return n===null||r===null?!1:r-n>=Ie.staleAfterMs}evolveRecord(e,t){let n=new Set(e.interactions);n.add(t.interactionId);let r=new Set(e.modes);r.add(t.mode);let i=rS(e.relationKinds,t),o={...e,lastInteractionId:t.interactionId,updatedAt:t.timestamp,size:n.size,interactions:n,modes:r,relationKinds:i,blockingSignals:e.blockingSignals+(t.blocking?1:0),highSignals:e.highSignals+(t.consequence==="high"||t.tone==="critical"?1:0)},a=nS(o,t);return{...o,evidenceScore:a.score,evidenceReasons:a.reasons,state:tS(e.state,t,o,a.score)}}pruneDormantRecords(){let e=[...this.byId.values()].filter(r=>!this.isActiveRecord(r));if(this.latestObservedAtMs!==null)for(let r of e){let i=this.clock.parse(r.updatedAt);i!==null&&this.latestObservedAtMs-i>this.dormantRetentionMs&&this.deleteRecord(r)}let t=[...this.byId.values()].filter(r=>!this.isActiveRecord(r)).sort((r,i)=>r.updatedAt.localeCompare(i.updatedAt));if(t.length<=this.maxDormantEpisodes)return;let n=t.length-this.maxDormantEpisodes;for(let r of t.slice(0,n))this.deleteRecord(r)}isActiveRecord(e){return this.byKey.get(e.key)?.id===e.id&&!Ue(e.state)}deleteRecord(e){this.byKey.get(e.key)?.id===e.id&&this.byKey.delete(e.key),this.byId.delete(e.id);for(let t of e.interactions)this.byInteractionId.get(t)===e.id&&this.byInteractionId.delete(t);this.prunedRecords+=1}};function Qy(e){let t=e.source?.kind??e.source?.id??"unknown",n=eS(e),r=e.blocking?"interruptive":"status";return sS([t,r,n].join(":"))}function It(e){return e?Gt(e.metadata?.episode,"id"):null}function Et(e){return e?Hd(e.metadata?.episode,"state"):null}function Ue(e){return e==="stale"||e==="resolved"}function eS(e){let t=Gy(e.relationHints);if(t)return t;let r=(e.context?.items??[]).find(o=>{let a=o.id.toLowerCase(),c=o.label.toLowerCase();return a.includes("file")||a==="path"||a.includes("issue")||a==="command"||c.includes("file")||c.includes("path")||c.includes("issue")||c.includes("command")});if(r?.value)return r.value;let i=e.summary??e.title;return i.length>0?i:e.taskId}function tS(e,t,n,r){return t.blocking||r>=Ie.actionableThreshold?"actionable":e==="actionable"?"waiting":n.size>=2?"batched":"emerging"}function nS(e,t){let n=0,r=[];return t.blocking&&(n+=Ie.blockingBoost,r.push("operator-facing work makes this episode immediately actionable")),e.size>=2&&(n+=Ie.recurringEpisodeBoost,r.push("multiple related interactions have accumulated in this episode")),e.size>=3&&(n+=Ie.persistentEpisodeBoost,r.push("the same episode keeps recurring without resolution")),e.highSignals>=1&&(n+=Ie.highSignalBoost,r.push("at least one related interaction carried high consequence or critical tone")),e.modes.size>=2&&(n+=Ie.multiModeBoost,r.push("related work has spread across multiple interaction modes")),e.highSignals>=1&&e.size>=2&&(n+=Ie.stackingBoost,r.push("high-signal evidence is stacking up across the episode")),e.relationKinds.has("repeats")&&(n+=Ie.relationRepeatBoost,r.push("semantic relation hints indicate this issue is recurring")),e.relationKinds.has("escalates")&&(n+=Ie.relationEscalationBoost,r.push("semantic relation hints indicate this issue is escalating")),{score:n,reasons:r}}function rS(e,t){let n=new Set(e);if(!qd(t))return n;for(let r of t.relationHints??[])n.add(r.kind);return n}function sS(e){return e.toLowerCase().replace(/[^a-z0-9:/._-]+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"").slice(0,120)}function qd(e){let t=Ld(e);return t===null||t!=="weak"}function Gt(e,t){if(!e||typeof e!="object"||!(t in e))return null;let n=e[t];return typeof n=="string"&&n.length>0?n:null}function od(e,t){if(!e||typeof e!="object"||!(t in e))return null;let n=e[t];return typeof n=="number"?n:null}function Hd(e,t){let n=Gt(e,t);switch(n){case"emerging":case"actionable":case"batched":case"waiting":case"stale":case"resolved":return n;default:return null}}function iS(e,t){if(!e||typeof e!="object"||!(t in e))return[];let n=e[t];return Array.isArray(n)?n.filter(r=>typeof r=="string"&&r.length>0):[]}function ma(e={}){let t=e.base,n=e.semantic,r=t?.whyNow??n?.whyNow??e.fallbackWhyNow,i=Jo([...t?.factors??[],...n?.factors??[],...e.extraFactors??[]]);if(!(t===void 0&&r===void 0&&i.length===0))return{...t??{},...r!==void 0?{whyNow:r}:{},...i.length>0?{factors:i}:{}}}var oS=class{evaluate(e){switch(e.type){case"task.started":return{kind:"candidate",candidate:{taskId:e.taskId,interactionId:`interaction:${e.taskId}:status`,...e.source!==void 0?{source:e.source}:{},mode:"status",tone:"ambient",consequence:"low",title:e.title,responseSpec:{kind:"none"},priority:"background",blocking:!1,timestamp:e.timestamp,...e.summary!==void 0?{summary:e.summary}:{},...Vo(e)}};case"task.updated":return{kind:"candidate",candidate:this.evaluateTaskUpdate(e)};case"human.input.requested":return{kind:"candidate",candidate:this.evaluateHumanInput(e)};case"task.completed":case"task.cancelled":return{kind:"clear",taskId:e.taskId};default:return uS(e)}}evaluateTaskUpdate(e){let t=this.priorityForStatus(e.status),n=this.toneForStatus(e.status),r=this.consequenceForStatus(e.status),i=this.responseSpecForStatus(e.status);return{taskId:e.taskId,interactionId:`interaction:${e.taskId}:status`,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},mode:"status",tone:n,consequence:r,title:e.title,responseSpec:i,priority:t,blocking:!1,timestamp:e.timestamp,...e.summary!==void 0?{summary:e.summary}:{},...e.semantic?.relationHints?.length?{relationHints:e.semantic.relationHints}:{},...Vo(e),...aS(e),...cS(e)}}evaluateHumanInput(e){let t=this.createActions(e),n=this.createResponseSpec(e,t),r=e.request.kind==="approval"?e.toolFamily:void 0;return{taskId:e.taskId,interactionId:e.interactionId,...e.source!==void 0?{source:e.source}:{},...r!==void 0?{toolFamily:r}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},mode:e.request.kind,tone:e.tone??"focused",consequence:e.consequence??"medium",title:e.title,summary:e.summary,...e.semantic?.relationHints?.length?{relationHints:e.semantic.relationHints}:{},responseSpec:n,priority:this.priorityForHumanInput(e),blocking:!0,timestamp:e.timestamp,...Vo(e),...e.context!==void 0?{context:e.context}:{},...(()=>{let i=ma({base:e.provenance,semantic:e.semantic});return i!==void 0?{provenance:i}:{}})()}}priorityForHumanInput(e){return e.request.kind==="approval"&&e.consequence==="low"?"normal":"high"}createActions(e){switch(e.request.kind){case"approval":return[{id:"approve",label:"Approve",kind:"approve",emphasis:"primary"},{id:"reject",label:"Reject",kind:"reject",emphasis:"danger"}];case"choice":case"form":return[{id:"submit",label:"Continue",kind:"submit",emphasis:"primary"},{id:"cancel",label:"Cancel",kind:"cancel",emphasis:"secondary"}];default:return ad(e.request)}}createResponseSpec(e,t){switch(e.request.kind){case"approval":return e.request.requireReason!==void 0?{kind:"approval",actions:t,requireReason:e.request.requireReason}:{kind:"approval",actions:t};case"choice":return{kind:"choice",selectionMode:e.request.selectionMode,...e.request.allowTextResponse!==void 0?{allowTextResponse:e.request.allowTextResponse}:{},options:e.request.options,actions:t};case"form":return{kind:"form",fields:e.request.fields,actions:t};default:return ad(e.request)}}responseSpecForStatus(e){switch(e){case"blocked":case"failed":return{kind:"acknowledge",actions:[{id:"acknowledge",label:"Acknowledge",kind:"acknowledge",emphasis:"primary"}]};case"running":case"waiting":case"completed":return{kind:"none"};default:return hr(e)}}priorityForStatus(e){switch(e){case"blocked":return"normal";case"failed":return"high";case"running":case"waiting":case"completed":return"background";default:return hr(e)}}toneForStatus(e){switch(e){case"blocked":return"focused";case"failed":return"critical";case"running":case"waiting":case"completed":return"ambient";default:return hr(e)}}consequenceForStatus(e){switch(e){case"blocked":return"medium";case"failed":return"high";case"running":case"waiting":case"completed":return"low";default:return hr(e)}}};function aS(e){let t=e.context,n=t?.items,r=n!==void 0&&n.length>0;return e.progress===void 0&&t?.stage===void 0&&!r?{}:{context:{...t?.stage!==void 0?{stage:t.stage}:{},...e.progress!==void 0?{progress:e.progress}:{},...r?{items:n}:{}}}}function cS(e){let t=ma({semantic:e.semantic,fallbackWhyNow:e.status==="blocked"?vt("blocked"):e.status==="failed"?vt("failed"):void 0,extraFactors:e.status==="blocked"||e.status==="failed"?[e.status]:[]});return t===void 0?{}:{provenance:t}}function Vo(e){return{judgmentInput:$y(e)}}function uS(e){throw new Error(`Unhandled ApertureEvent in event evaluator: ${JSON.stringify(e)}`)}function ad(e){throw new Error(`Unhandled human input request in event evaluator: ${JSON.stringify(e)}`)}function hr(e){throw new Error(`Unhandled task status in event evaluator: ${e}`)}var lS=class{plan(e,t){let n=t?.interactionId===e.interactionId,r=t?.metadata?.attention,i={...r&&typeof r=="object"?r:{},score:Sh(e),scoreOffset:e.attentionScoreOffset??0,rationale:e.attentionRationale??[]},o=t?.metadata?.episode,a=e.toolFamily??(typeof t?.metadata?.toolFamily=="string"?t.metadata.toolFamily:void 0),c=e.episodeId?{...o&&typeof o=="object"?o:{},id:e.episodeId,key:e.episodeKey,state:e.episodeState,size:e.episodeSize??1,evidenceScore:e.episodeEvidenceScore??0,evidenceReasons:e.episodeEvidenceReasons??[],lastInteractionId:e.interactionId,updatedAt:e.timestamp}:o,u=t?.metadata?.semantic,d=e.relationHints?.length?{...u&&typeof u=="object"?u:{},relationHints:e.relationHints}:u;return{id:n?t.id:`frame:${e.interactionId}`,taskId:e.taskId,interactionId:e.interactionId,...e.source!==void 0?{source:e.source}:{},version:(t?.version??0)+1,mode:e.mode,tone:e.tone,consequence:e.consequence,title:e.title,responseSpec:e.responseSpec,timing:{createdAt:t?.timing.createdAt??e.timestamp,updatedAt:e.timestamp},metadata:{...t?.metadata??{},attention:i,...a!==void 0?{toolFamily:a}:{},...d?{semantic:d}:{},...c?{episode:c}:{}},...e.summary!==void 0?{summary:e.summary}:{},...e.context!==void 0?{context:e.context}:{},...e.provenance!==void 0?{provenance:e.provenance}:{}}}},dS=1800*1e3,cd=256,pS=1440*6e4,mS=1024,fS=class{byTaskId=new Map;clock;taskRetentionMs;maxTrackedTasks;latestObservedAtMs=null;prunedTasks=0;constructor(e={}){this.clock=e.clock??Cr(),this.taskRetentionMs=e.taskRetentionMs??pS,this.maxTrackedTasks=e.maxTrackedTasks??mS}record(e){let n=[...this.byTaskId.get(e.taskId)??[],e];this.byTaskId.set(e.taskId,n.length>cd?n.slice(-cd):n);let r=this.clock.parse(e.timestamp);r!==null&&(this.latestObservedAtMs===null||r>this.latestObservedAtMs)&&(this.latestObservedAtMs=r),this.prune()}list(e){return e!==void 0?[...this.byTaskId.get(e)??[]]:[...this.byTaskId.values()].flat().sort((t,n)=>t.timestamp.localeCompare(n.timestamp))}summarize(e){return $d(this.list(e),this.clock)}stats(){let e=0,t=null,n=null;for(let r of this.byTaskId.values()){e+=r.length;let i=r[0]?.timestamp??null,o=r[r.length-1]?.timestamp??null;i&&(t===null||i<t)&&(t=i),o&&(n===null||o>n)&&(n=o)}return{taskCount:this.byTaskId.size,signalCount:e,oldestSignalAt:t,latestSignalAt:n,taskRetentionMs:this.taskRetentionMs,maxTrackedTasks:this.maxTrackedTasks,prunedTasks:this.prunedTasks}}prune(){if(this.latestObservedAtMs!==null)for(let[n,r]of this.byTaskId.entries()){let i=r[r.length-1],o=i?this.clock.parse(i.timestamp):null;o!==null&&this.latestObservedAtMs-o>this.taskRetentionMs&&(this.byTaskId.delete(n),this.prunedTasks+=1)}if(this.byTaskId.size<=this.maxTrackedTasks)return;let e=this.byTaskId.size-this.maxTrackedTasks,t=[...this.byTaskId.entries()].map(([n,r])=>({taskId:n,latestAt:r[r.length-1]?.timestamp??""})).sort((n,r)=>n.latestAt.localeCompare(r.latestAt)).slice(0,e);for(let n of t)this.byTaskId.delete(n.taskId),this.prunedTasks+=1}};function $d(e,t=Cr()){let n=gS(e,t),r={presented:0,viewed:0,responded:0,dismissed:0,deferred:0,contextExpanded:0,contextSkipped:0,timedOut:0,returned:0,attentionShifted:0},i={next:0,suppressed:0,manual:0},o=0,a=0,c=0,u=0;for(let d of n)switch(d.kind){case"presented":r.presented+=1;break;case"viewed":r.viewed+=1;break;case"responded":r.responded+=1,d.latencyMs!==void 0&&(o+=d.latencyMs,a+=1);break;case"dismissed":r.dismissed+=1,d.latencyMs!==void 0&&(c+=d.latencyMs,u+=1);break;case"deferred":r.deferred+=1,d.reason!==void 0&&(i[d.reason]+=1);break;case"context_expanded":r.contextExpanded+=1;break;case"context_skipped":r.contextSkipped+=1;break;case"timed_out":r.timedOut+=1;break;case"returned":r.returned+=1;break;case"attention_shifted":r.attentionShifted+=1;break}return{recentSignals:n.length,lifetimeSignals:e.length,counts:r,deferred:i,responseRate:r.presented>0?r.responded/r.presented:0,dismissalRate:r.presented>0?r.dismissed/r.presented:0,averageResponseLatencyMs:a>0?Math.round(o/a):null,averageDismissalLatencyMs:u>0?Math.round(c/u):null,lastSignalAt:e.length>0?e[e.length-1]?.timestamp??null:null}}function gS(e,t){let n=e.slice(-32),r=n[n.length-1]?.timestamp;if(r===void 0)return n;let i=t.parse(r);if(i===null)return n;let o=n.filter(a=>{let c=t.parse(a.timestamp);return c===null?!0:i-c<=dS});return o.length>0?o:n}function Xo(e){return ca(e)}function hS(e){return Id(e)}function fa(e){return e.mode==="status"?Xo(e):e.mode!=="approval"||e.activityClass!==void 0&&e.activityClass!=="permission_request"?null:hS(e)}function Er(e){return e?e.kind??e.id:null}function Bd(e,t,n){let r=SS(e,t),i=bS(e,t),o=vS(e,t);return{...e,version:Ze,updatedAt:n,sessionCount:e.sessionCount+1,...Object.keys(r).length>0?{toolFamilies:r}:{},...Object.keys(i).length>0?{sourceTrust:i}:{},...Object.keys(o).length>0?{consequenceProfiles:o}:{}}}function wn(e){let t={consequence:e.consequence},n=Vd(e);n&&(t.toolFamily=n);let r=Er(e.source);r&&(t.sourceKey=r);let i=e.metadata?.episode;return i&&typeof i=="object"&&!Array.isArray(i)&&(t.episode=i),t}function yS(e){let t={consequence:e.consequence},n=Vd(e);n&&(t.toolFamily=n);let r=Er(e.source);return r&&(t.sourceKey=r),t}function Vd(e){return fa(e)}function SS(e,t){let n={...e.toolFamilies??{}},r=new Map,i=new Map;for(let o of t){let a=wr(o.metadata,"toolFamily");if(!a)continue;let c=`${a}::${o.interactionId}`,u=i.get(c)??{toolFamily:a,presented:!1,responded:!1,dismissed:!1,contextExpanded:!1,deferred:!1,returned:!1};switch(o.kind){case"presented":u.presented=!0;break;case"responded":u.responded=!0,u.dismissed=!1,o.latencyMs!==void 0&&(u.responseLatencyMs=o.latencyMs);break;case"dismissed":u.responded||(u.dismissed=!0,o.latencyMs!==void 0&&(u.dismissalLatencyMs=o.latencyMs));break;case"context_expanded":u.contextExpanded=!0;break;case"deferred":u.deferred=!0;break;case"returned":u.returned=!0;break}i.set(c,u)}for(let o of i.values()){let a=r.get(o.toolFamily)??{presentations:0,responses:0,dismissals:0,responseLatencyTotal:0,responseLatencyCount:0,dismissalLatencyTotal:0,dismissalLatencyCount:0,contextExpanded:0,deferrals:0,returns:0};(o.presented||o.responded||o.dismissed)&&(a.presentations+=1),o.responded?(a.responses+=1,o.responseLatencyMs!==void 0&&(a.responseLatencyTotal+=o.responseLatencyMs,a.responseLatencyCount+=1)):o.dismissed&&(a.dismissals+=1,o.dismissalLatencyMs!==void 0&&(a.dismissalLatencyTotal+=o.dismissalLatencyMs,a.dismissalLatencyCount+=1)),o.contextExpanded&&(a.contextExpanded+=1),o.deferred&&(a.deferrals+=1,o.returned&&(a.returns+=1)),r.set(o.toolFamily,a)}for(let[o,a]of r.entries()){let c=n[o]??{presentations:0,responses:0,dismissals:0},u=c.presentations+a.presentations,d=c.responses+a.responses,m=c.dismissals+a.dismissals,f=a.responseLatencyCount>0?a.responseLatencyTotal/a.responseLatencyCount:void 0,g=a.dismissalLatencyCount>0?a.dismissalLatencyTotal/a.dismissalLatencyCount:void 0,S=c.contextExpansionRate!==void 0?c.contextExpansionRate*c.presentations:0,b=a.contextExpanded;n[o]={presentations:u,responses:d,dismissals:m,...f!==void 0?{avgResponseLatencyMs:ud(c.avgResponseLatencyMs,c.responses,f,a.responseLatencyCount)}:c.avgResponseLatencyMs!==void 0?{avgResponseLatencyMs:c.avgResponseLatencyMs}:{},...g!==void 0?{avgDismissalLatencyMs:ud(c.avgDismissalLatencyMs,c.dismissals,g,a.dismissalLatencyCount)}:c.avgDismissalLatencyMs!==void 0?{avgDismissalLatencyMs:c.avgDismissalLatencyMs}:{},...u>0?{contextExpansionRate:Qo((S+b)/u)}:c.contextExpansionRate!==void 0?{contextExpansionRate:c.contextExpansionRate}:{},...a.deferrals>0?{returnAfterDeferralRate:Qo(a.returns/a.deferrals)}:c.returnAfterDeferralRate!==void 0?{returnAfterDeferralRate:c.returnAfterDeferralRate}:{}}}return n}function bS(e,t){let n=structuredClone(e.sourceTrust??{}),r=new Map;for(let i of t){let o=wr(i.metadata,"sourceKey"),a=wr(i.metadata,"consequence");if(!o||a!=="low"&&a!=="medium"&&a!=="high")continue;let c=`${o}::${a}::${i.interactionId}`,u=r.get(c)??{source:o,consequence:a,responded:!1,rejected:!1,dismissed:!1};i.kind==="responded"?(u.responded=!0,u.dismissed=!1,u.rejected=i.responseKind==="rejected"):i.kind==="dismissed"&&(u.responded||(u.dismissed=!0)),r.set(c,u)}for(let i of r.values()){let o=n[i.source]?.[i.consequence]??{confirmations:0,disagreements:0,trustAdjustment:0};i.responded?i.rejected?o.disagreements+=1:o.confirmations+=1:i.dismissed&&(o.disagreements+=1);let a=o.confirmations+o.disagreements;o.trustAdjustment=a>0?Math.round((o.confirmations-o.disagreements)/a*10*Math.min(a/5,1)):0,n[i.source]={...n[i.source]??{},[i.consequence]:o}}return n}function vS(e,t){let n={...e.consequenceProfiles??{}},r=new Map;for(let o of t){let a=wr(o.metadata,"consequence");a!=="low"&&a!=="medium"&&a!=="high"||o.kind==="responded"&&r.set(`${a}::${o.interactionId}`,{consequence:a,rejected:o.responseKind==="rejected"})}let i=new Map;for(let o of r.values()){let a=i.get(o.consequence)??{reviewed:0,rejected:0};a.reviewed+=1,o.rejected&&(a.rejected+=1),i.set(o.consequence,a)}for(let[o,a]of i.entries()){let c=n[o]??{rejectionRate:0,reviewedCount:0},u=(c.reviewedCount??0)+a.reviewed;n[o]={rejectionRate:u>0?Qo(((c.reviewedCount??0)*c.rejectionRate+a.rejected)/u):0,reviewedCount:u}}return n}function wr(e,t){let n=e?.[t];return typeof n=="string"&&n.length>0?n:null}function Qo(e){return Math.round(e*1e3)/1e3}function ud(e,t,n,r){let i=t+r;if(i<=0)return Math.round(n);let o=(e??0)*t,a=n*r;return Math.round((o+a)/i)}function kS(e,t,n,r="present",i){if(r==="absent")return Kd();let o=V.attentionBudget,a=IS(e,i),c=a?(e?.counts.responded??0)+(e?.counts.dismissed??0)+(e?.counts.deferred??0)+(e?.counts.contextExpanded??0)+(e?.counts.contextSkipped??0):0,u=a?e?.counts.deferred??0:0,d=a?e?.averageResponseLatencyMs??null:null,m=t?.metrics.interruptiveVisible??0,f=n??"monitoring",g=t?.level??"steady",S=[],b=0;return g==="high"?(b+=2,S.push("current pressure is already high")):g==="elevated"&&(b+=1,S.push("current pressure is elevated")),f==="overloaded"?(b+=2,S.push("recent operator behavior indicates overload")):(f==="hesitating"||f==="avoiding")&&(b+=1,S.push("recent operator behavior suggests attention is already strained")),c>=o.recentDecisions.highCount?(b+=2,S.push("recent decision volume is high")):c>=o.recentDecisions.elevatedCount&&(b+=1,S.push("recent decision volume is climbing")),d!==null&&d>=o.responseLatencyMs.high?(b+=2,S.push("recent decision latency is slow")):d!==null&&d>=o.responseLatencyMs.elevated&&(b+=1,S.push("recent decision latency is rising")),u>=o.deferredCount.high?(b+=2,S.push("recent deferrals are accumulating")):u>=o.deferredCount.elevated&&(b+=1,S.push("recent deferrals suggest growing burden")),m>=o.interruptiveVisible.high?(b+=2,S.push("multiple interruptive frames are already visible")):m>=o.interruptiveVisible.elevated&&(b+=1,S.push("interruptive work is already visible")),{level:b>=o.scoreBands.highScore?"high":b>=o.scoreBands.elevatedScore?"elevated":"light",thresholdOffset:b>=o.scoreBands.highScore?o.thresholdOffset.high:b>=o.scoreBands.elevatedScore?o.thresholdOffset.elevated:0,metrics:{recentDecisions:c,deferredCount:u,averageResponseLatencyMs:d,interruptiveVisible:m,pressureLevel:g,attentionState:f},reasons:S}}function IS(e,t){let n=e?.lastSignalAt;if(!n||t===void 0)return!0;let r=Date.parse(n),i=ES(t);return Number.isNaN(r)||i===null?!0:i-r<=V.pressureForecast.freshness.residualMs}function ES(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(e instanceof Date){let n=e.getTime();return Number.isFinite(n)?n:null}let t=Date.parse(e);return Number.isNaN(t)?null:t}function Kd(){return{level:"light",thresholdOffset:0,metrics:{recentDecisions:0,deferredCount:0,averageResponseLatencyMs:null,interruptiveVisible:0,pressureLevel:"steady",attentionState:"monitoring"},reasons:[]}}function wS(e,t,n){let r=TS(t),i=[],o=0,a=V.pressureForecast,c=_S(e,n),u=c===null||c<=a.freshness.demandMs,d=c===null||c<=a.freshness.residualMs,m=u?(e?.counts.presented??0)+(e?.counts.deferred??0)+(e?.counts.returned??0):0,f=d?e?.averageResponseLatencyMs??null:null,g=d?e?.counts.deferred??0:0,S=d?e?.deferred.suppressed??0:0,b=d?e?.responseRate??0:0,O=d?e?.counts.presented??0:0;return r>=a.visibleInterruptiveBoost.highCount?(o+=2,i.push("multiple interruptive frames are already visible")):r>=a.visibleInterruptiveBoost.elevatedCount&&(o+=1,i.push("interruptive work is already visible")),m>=a.recentDemand.highCount?(o+=2,i.push("incoming demand is arriving quickly")):m>=a.recentDemand.elevatedCount&&(o+=1,i.push("incoming demand is climbing")),f!==null&&f>=a.responseLatencyMs.high?(o+=2,i.push("recent response latency is slow")):f!==null&&f>=a.responseLatencyMs.elevated&&(o+=1,i.push("recent response latency is rising")),S>=a.deferredPressure.highSuppressedCount||g>=a.deferredPressure.highDeferredCount?(o+=2,i.push("recent deferrals suggest operator capacity is tightening")):(S>=a.deferredPressure.elevatedSuppressedCount||g>=a.deferredPressure.elevatedDeferredCount)&&(o+=1,i.push("recent deferrals suggest operator capacity is tightening")),O>=a.slowClearance.presentedCount&&b<=a.slowClearance.responseRate&&(o+=1,i.push("presented work is being cleared slowly")),{level:o>=a.scoreBands.highLevel?"high":o>=a.scoreBands.elevatedLevel?"elevated":"steady",overloadRisk:o>=a.scoreBands.highRisk?"high":o>=a.scoreBands.risingRisk?"rising":"low",score:o,metrics:{recentDemand:m,interruptiveVisible:r,averageResponseLatencyMs:f,deferredCount:g,suppressedCount:S},reasons:i}}function _S(e,t){let n=e?.lastSignalAt;if(!n||t===void 0)return null;let r=Date.parse(n),i=AS(t);return Number.isNaN(r)||i===null?null:Math.max(0,i-r)}function AS(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(e instanceof Date){let n=e.getTime();return Number.isFinite(n)?n:null}let t=Date.parse(e);return Number.isNaN(t)?null:t}function RS(){return{level:"steady",overloadRisk:"low",score:0,metrics:{recentDemand:0,interruptiveVisible:0,averageResponseLatencyMs:null,deferredCount:0,suppressedCount:0},reasons:[]}}function TS(e){return e?[e.now,...e.next].filter(t=>t!==null).filter(xS).length:0}function xS(e){return e.mode!=="status"||e.consequence==="high"||e.tone==="critical"}var _r={topology:{supportsAmbient:!0},responses:{supportsSingleChoice:!0,supportsMultipleChoice:!1,supportsForm:!0,supportsTextResponse:!1}};function ld(e={}){let t=e.taskSignalSummary??ea();return{currentFrame:e.currentFrame??null,currentTaskView:e.currentTaskView??PS(),currentEpisode:e.currentEpisode??null,attentionView:e.attentionView??OS(),taskSignalSummary:t,continuitySignalSummary:e.continuitySignalSummary??t,globalSignalSummary:e.globalSignalSummary??ea(),taskAttentionState:e.taskAttentionState??"monitoring",globalAttentionState:e.globalAttentionState??"monitoring",pressureForecast:e.pressureForecast??RS(),attentionBurden:e.attentionBurden??Kd(),surfaceCapabilities:e.surfaceCapabilities?{topology:{...e.surfaceCapabilities.topology},responses:{...e.surfaceCapabilities.responses}}:{topology:{..._r.topology},responses:{..._r.responses}},operatorPresence:e.operatorPresence??"present"}}function Pr(e={}){return{...e.currentFrame!==void 0?{currentFrame:e.currentFrame}:{},...e.currentTaskView!==void 0?{currentTaskView:e.currentTaskView}:{},...e.currentEpisode!==void 0?{currentEpisode:e.currentEpisode}:{},...e.attentionView!==void 0?{attentionView:e.attentionView}:{},...e.taskSignalSummary!==void 0?{taskSignalSummary:e.taskSignalSummary}:{},...e.continuitySignalSummary!==void 0?{continuitySignalSummary:e.continuitySignalSummary}:{},...e.globalSignalSummary!==void 0?{globalSignalSummary:e.globalSignalSummary}:{},...e.taskAttentionState!==void 0?{taskAttentionState:e.taskAttentionState}:{},...e.globalAttentionState!==void 0?{globalAttentionState:e.globalAttentionState}:{},...e.pressureForecast!==void 0?{pressureForecast:e.pressureForecast}:{},...e.attentionBurden!==void 0?{attentionBurden:e.attentionBurden}:{},...e.surfaceCapabilities!==void 0?{surfaceCapabilities:e.surfaceCapabilities}:{},...e.operatorPresence!==void 0?{operatorPresence:e.operatorPresence}:{}}}function ga(e,t={},n){let r=Pr(t);if(CS(r))return r.currentFrame===e?r:ld({...r,currentFrame:e});let i=r.globalSignalSummary??ea(),o=r.pressureForecast??wS(i,r.attentionView,n),a=r.operatorPresence??"present";return ld({...r,currentFrame:e,globalSignalSummary:i,pressureForecast:o,attentionBurden:r.attentionBurden??kS(i,o,r.globalAttentionState,a,n),operatorPresence:a})}function CS(e){return"currentFrame"in e&&"currentTaskView"in e&&"currentEpisode"in e&&"attentionView"in e&&"taskSignalSummary"in e&&"continuitySignalSummary"in e&&"globalSignalSummary"in e&&"taskAttentionState"in e&&"globalAttentionState"in e&&"pressureForecast"in e&&"attentionBurden"in e&&"surfaceCapabilities"in e&&"operatorPresence"in e&&e.currentFrame!==void 0&&e.currentTaskView!==void 0&&e.currentEpisode!==void 0&&e.attentionView!==void 0&&e.taskSignalSummary!==void 0&&e.continuitySignalSummary!==void 0&&e.globalSignalSummary!==void 0&&e.taskAttentionState!==void 0&&e.globalAttentionState!==void 0&&e.pressureForecast!==void 0&&e.attentionBurden!==void 0&&e.surfaceCapabilities!==void 0&&e.operatorPresence!==void 0}function PS(){return{now:null,next:[],ambient:[]}}function OS(){return{now:null,next:[],ambient:[]}}function ea(){return{recentSignals:0,lifetimeSignals:0,counts:{presented:0,viewed:0,responded:0,dismissed:0,deferred:0,contextExpanded:0,contextSkipped:0,timedOut:0,returned:0,attentionShifted:0},deferred:{next:0,suppressed:0,manual:0},responseRate:0,dismissalRate:0,averageResponseLatencyMs:null,averageDismissalLatencyMs:null,lastSignalAt:null}}function x(e,t=[]){return{rule:e,kind:"noop",rationale:t}}function ge(e,t,n,r,i){return{rule:e,kind:"override",decision:t,currentPriority:n,currentScore:r,rationale:i}}var NS=e=>{let{candidate:t,context:n,evidence:r}=e,i=r.attentionView.now??r.currentFrame;if(!i)return x("deferral_escalation");let o=i===r.currentFrame?n.currentScore:xe(i,{now:t.timestamp});return o===null||t.blocking||t.priority==="background"||Rt(i)||!In(r.continuitySignalSummary)||n.candidateScore<o-V.queuePlanner.escalationScoreSlack?x("deferral_escalation"):ge("deferral_escalation",{kind:"activate",candidate:t},ie(i),o,["repeated deferral or resurfacing makes this task more deserving of current focus"])};function In(e){return e.counts.deferred>=V.queuePlanner.deferredEscalationThreshold||e.counts.returned>=V.queuePlanner.returnedEscalationThreshold}var ha=V.queuePlanner;function LS(e,t,n,r){return n.currentFrame?US(n.currentFrame,e,t,n,r):FS(e,t,n)}function wt(e,t,n){return{kind:ya(e,t,n),candidate:e}}function MS(e,t,n,r){return Gd(e,n)?{kind:"queue",candidate:e}:wt(e,t,r)}function ta(e,t,n,r){return(n.components.deferralAffinity>0||n.components.consequenceCalibration>0)&&t.minimumLane!=="now"?{kind:"queue",candidate:e}:wt(e,t,r)}function ya(e,t,n=_r){return Dd(e,t.minimumLane==="ambient"?"ambient":"queue")==="ambient"&&DS(e,n)?"ambient":"queue"}function DS(e,t){if(!t.topology.supportsAmbient)return!1;switch(e.responseSpec.kind){case"approval":return!0;case"choice":return(e.responseSpec.selectionMode==="multiple"?t.responses.supportsMultipleChoice:t.responses.supportsSingleChoice)&&(!e.responseSpec.allowTextResponse||t.responses.supportsTextResponse);case"form":return t.responses.supportsForm;case"none":return!0}return!1}function FS(e,t,n){let r=[];return zd(e)?n.pressureForecast.overloadRisk==="high"?(r.push("the episode has become actionable, but predicted overload keeps it in next instead of surfacing it now"),$({kind:"queue",candidate:e},r)):t.policyVerdict.mayInterrupt?(r.push("the episode has accumulated enough evidence to deserve interruptive attention"),$({kind:"activate",candidate:e},r)):(r.push("the episode has become actionable, so it stays visible even though policy still prevents interrupting"),$({kind:"queue",candidate:e},r)):Wd(e,t.policyVerdict,n.pressureForecast)?(r.push("predicted overload keeps lower-value work peripheral before the queue spikes"),$(ta(e,t.policyVerdict,t.utility,n.surfaceCapabilities),r)):!t.policyVerdict.mayInterrupt&&t.policyVerdict.minimumLane==="ambient"?da(e)?(r.push("status routing stays non-blocking, but blocked-like semantics keep it visible in next"),$({kind:"queue",candidate:e},r)):(r.push("policy keeps this interaction ambient until stronger context arrives"),$(wt(e,t.policyVerdict,n.surfaceCapabilities),r)):(r.push("nothing is in now for this task"),$({kind:"activate",candidate:e},r))}function US(e,t,n,r,i){let o=[],a=zd(t),c=Rt(e),u=ie(e),d=n.currentScore;if(a)return c||r.pressureForecast.overloadRisk==="high"?(o.push(c?"the episode has become actionable, but current blocking work keeps it in next":"the episode has become actionable, but predicted overload keeps it in next"),$({kind:"queue",candidate:t},o,u,d)):d!==null&&n.candidateScore<d-ha.actionableEpisodeScoreSlack?(o.push("actionable episode evidence keeps this work visible even though the current frame is still stronger"),$({kind:"queue",candidate:t},o,u,d)):n.policyVerdict.mayInterrupt?(o.push("the episode has accumulated enough evidence to compete for current focus"),$({kind:"activate",candidate:t},o,u,d)):(o.push("the episode has become actionable, so it stays in next even though policy still prevents interrupting"),$({kind:"queue",candidate:t},o,u,d));if(c&&!t.blocking)return In(r.continuitySignalSummary)?(o.push("blocking work keeps resurfacing backlog in next so it stays visible until focus can return"),$({kind:"queue",candidate:t},o,u,d)):(o.push("blocking work keeps non-blocking updates in the periphery"),$(wt(t,n.policyVerdict,r.surfaceCapabilities),o));if(!c&&t.blocking)return o.push("blocking work interrupts non-blocking activity"),$({kind:"activate",candidate:t},o);if(Wd(t,n.policyVerdict,r.pressureForecast))return o.push("predicted overload keeps lower-value work peripheral before the queue spikes"),$(ta(t,n.policyVerdict,n.utility,r.surfaceCapabilities),o,u,d);if(jS(t,r.attentionView,t.timestamp,i))return In(r.continuitySignalSummary)?(o.push("existing urgent backlog keeps resurfacing work in next so it remains visible"),$({kind:"queue",candidate:t},o,u,d)):(o.push(n.utility.components.deferralAffinity>0?"existing urgent backlog defers this work, but memory keeps it in next because it usually returns after deferral":"existing urgent backlog keeps lower-value status work in next"),$(ta(t,n.policyVerdict,n.utility,r.surfaceCapabilities),o,u,d));if(d!==null&&n.candidateScore<d)return o.push("current work still outranks the new candidate"),$(wt(t,n.policyVerdict,r.surfaceCapabilities),o,u,d);if(d!==null&&n.candidateScore===d){let m=pa(t.timestamp,e.timing.updatedAt);if(m!==null&&m<0)return o.push("older work yields when scores tie"),$(wt(t,n.policyVerdict,r.surfaceCapabilities),o,u,d)}return o.push("new work outranks the current frame"),$({kind:"activate",candidate:t},o,u,d)}function $(e,t,n=null,r=null){return{decision:e,currentPriority:n,currentScore:r,reasons:t}}function jS(e,t,n,r){return r?.deferLowValueDuringPressure===!1||e.blocking||e.consequence==="high"||e.tone==="critical"||!t?!1:Gd(e,t)?!0:[t.now,...t.next].filter(o=>o!==null).filter(o=>o.interactionId===e.interactionId?!1:Rt(o)||o.consequence==="high"||o.tone==="critical").filter(o=>{let a=pa(n,o.timing.updatedAt);return a===null?!0:a<=ha.urgentBacklogWindowMs}).length>=2}function Wd(e,t,n){return n.overloadRisk==="low"||e.blocking||t.requiresOperatorResponse||t.minimumLane==="now"||e.consequence==="high"||e.tone==="critical"?!1:n.overloadRisk==="high"?!0:e.mode==="status"||e.priority==="background"||e.consequence==="low"}function zd(e){return!e.blocking&&e.episodeState==="actionable"&&(e.episodeEvidenceScore??0)>=ha.actionableEpisodeEvidenceThreshold}function Gd(e,t){return e.episodeId!==void 0&&[t?.now,...t?.next??[]].filter(n=>n!==null).some(n=>n.interactionId!==e.interactionId&&It(n)===e.episodeId&&!Ue(Et(n)))}var qS=e=>{let t=e.evidence.currentFrame,{candidate:n,context:r,evidence:i,helpers:o,plannerDefaults:a,routed:c}=e;if(!t||c.decision.kind!=="activate"||a?.batchStatusBursts===!1||t.taskId!==n.taskId||t.mode!=="status"||n.mode!=="status"||n.blocking||n.consequence==="high"||n.tone==="critical")return x("burst_dampening");let u=Date.parse(t.timing.updatedAt),d=Date.parse(n.timestamp);return Number.isNaN(u)||Number.isNaN(d)||d-u>V.queuePlanner.statusBurstWindowMs?x("burst_dampening"):ge("burst_dampening",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,[`rapid successive updates within ${d-u}ms stay bundled instead of stealing focus`])},Te={STATUS_ONLY:0,NON_STATUS:1,CRITICAL_CONSEQUENCE:2,BLOCKING_OR_REQUIRED:3},HS=e=>{let t=e.evidence.currentFrame,{candidate:n,context:r,evidence:i,helpers:o,routed:a,plannerDefaults:c}=e;if(!t||a.decision.kind!=="activate"||r.currentScore===null)return x("conflicting_interrupt");let u=$S(t),d=BS(n,r.policyVerdict);if(u===Te.STATUS_ONLY||d===Te.STATUS_ONLY||d>u)return x("conflicting_interrupt");if(d<u)return ge("conflicting_interrupt",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,["the current interrupt is more urgent, so the challenger waits instead of stealing focus"]);let m=c?.conflictingInterruptMargin??V.queuePlanner.conflictingInterruptMargin;return m<=0||r.candidateScore>=r.currentScore+m?x("conflicting_interrupt"):ge("conflicting_interrupt",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,["equally interruptive work needs a clear advantage before it can replace the current interrupt"])};function $S(e){return e.mode!=="status"&&e.responseSpec?.kind!=="none"?Te.BLOCKING_OR_REQUIRED:e.tone==="critical"||e.consequence==="high"?Te.CRITICAL_CONSEQUENCE:e.mode!=="status"?Te.NON_STATUS:Te.STATUS_ONLY}function BS(e,t){return e.blocking||t.requiresOperatorResponse||t.minimumLane==="now"?Te.BLOCKING_OR_REQUIRED:e.tone==="critical"||e.consequence==="high"?Te.CRITICAL_CONSEQUENCE:e.mode!=="status"?Te.NON_STATUS:Te.STATUS_ONLY}var VS=e=>{let t=e.evidence.currentFrame,{candidate:n,context:r,evidence:i,helpers:o}=e;if(!t||r.currentScore===null||n.blocking||Rt(t)||n.consequence==="high"||n.tone==="critical"||r.candidateScore<=r.currentScore)return x("context_patience");let{contextCost:a}=r.utility.components,c=a<=-6?V.queuePlanner.highContextQueueMargin:a<=-3?V.queuePlanner.mediumContextQueueMargin:null;if(c===null||r.candidateScore>=r.currentScore+c)return x("context_patience");let u=r.candidateScore-r.currentScore;return ge("context_patience",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,[`memory suggests this interaction usually needs context, so it stays peripheral until it clears the ${c}-point margin (gap: ${u})`])},KS=e=>{let t=e.evidence.currentFrame,{candidate:n,context:r,evidence:i,helpers:o,routed:a,plannerDefaults:c}=e;if(!t||a.decision.kind!=="activate"||r.currentScore===null||n.blocking||n.consequence==="high"||n.tone==="critical"||t.consequence==="high"||t.tone==="critical"||WS(t,n))return x("decision_stream_continuity");let u=c?.streamContinuityMargin??V.queuePlanner.streamContinuityMargin;if(u<=0||r.candidateScore>=r.currentScore+u)return x("decision_stream_continuity");let d=r.candidateScore-r.currentScore;return ge("decision_stream_continuity",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,[`the current decision stream stays active until cross-stream work clears the ${u}-point margin (gap: ${d})`])};function WS(e,t){let n=Er(e.source),r=Er(t.source);if(n&&r&&n!==r)return!1;if(n&&r&&n===r)return!0;let i=Xo(e),o=Xo(t);return i&&o&&i!==o?!1:!!(i&&o&&i===o||e.taskId===t.taskId)}var zS=e=>{let t=e.evidence.currentFrame,{candidate:n,context:r,evidence:i,helpers:o,routed:a,plannerDefaults:c}=e;if(!t||a.decision.kind!=="activate"||n.blocking||n.consequence==="high"||n.tone==="critical")return x("minimum_dwell");let u=c?.minimumDwellMs??V.queuePlanner.minimumDwellMs;if(u<=0)return x("minimum_dwell");let d=Date.parse(t.timing.updatedAt),m=Date.parse(n.timestamp);if(Number.isNaN(d)||Number.isNaN(m)||m-d>=u)return x("minimum_dwell");let f=u-(m-d);return ge("minimum_dwell",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,[`recently surfaced work keeps focus for another ${f}ms to avoid a premature switch`])},GS=e=>{let t=e.evidence.currentFrame,{candidate:n,context:r,evidence:i,helpers:o}=e;if(!t||!n.episodeId)return x("same_episode");let a=It(t);return!a||a!==n.episodeId||Ue(Et(t))?x("same_episode"):n.blocking&&!Rt(t)?ge("same_episode",{kind:"activate",candidate:n},ie(t),r.currentScore,["the current episode has progressed into an interruptive step that belongs in now"]):n.blocking&&jd(n.relationHints,"supersedes")&&Ld(n)!=="weak"?ge("same_episode",{kind:"activate",candidate:n},ie(t),r.currentScore,["the current episode has advanced to a superseding step that belongs in now"]):In(i.continuitySignalSummary)?x("same_episode"):ge("same_episode",o.peripheralDecision(n,r.policyVerdict,i.surfaceCapabilities),ie(t),r.currentScore,["related work stays bundled with the current episode already in now"])},ZS=e=>{let t=e.evidence.currentFrame;return!t||t.interactionId!==e.candidate.interactionId?x("same_interaction"):ge("same_interaction",{kind:"activate",candidate:e.candidate},null,null,["same interaction refreshes the existing frame"])},YS=e=>{let{candidate:t,context:n,evidence:r,helpers:i}=e;if(!t.episodeId||t.blocking||t.consequence==="high"||t.tone==="critical")return x("visible_episode");let o=[r.attentionView.now,...r.attentionView.next,...r.attentionView.ambient].filter(a=>a!==null).filter(a=>a.interactionId!==t.interactionId&&It(a)===t.episodeId&&!Ue(Et(a)));return o.length===0||!(t.episodeState==="batched"||(t.episodeSize??1)>=2||o.length>=2)||In(r.continuitySignalSummary)?x("visible_episode"):ge("visible_episode",i.batchedDecision(t,n.policyVerdict,r.attentionView,r.surfaceCapabilities),null,r.currentFrame?n.currentScore:null,[r.currentFrame?"related episode work is already building in the queue, so this interaction stays bundled with it":"related episode work is already visible, so this interaction batches with it instead of interrupting"])},JS=[YS,GS,zS,qS,ZS,NS,HS,KS,VS],Zd=class{plannerDefaults;constructor(e={}){this.plannerDefaults=e.plannerDefaults}explain(e,t,n){let r=this.resolveEvidenceContext(e,n,t.timestamp),i=LS(t,n,r,this.plannerDefaults);return this.applyContinuity(t,n,r,i)}clear(){return{kind:"clear"}}preferredPeripheralBucket(e,t,n){return ya(e,t,n)}applyContinuity(e,t,n,r){let i=new Set(this.plannerDefaults?.disabledContinuityRules??[]),o=JS.map(c=>{let u=c({candidate:e,context:t,evidence:n,routed:r,plannerDefaults:this.plannerDefaults,helpers:{peripheralDecision:wt,batchedDecision:MS}});return i.has(u.rule)?x(u.rule,[`operator disabled the ${u.rule} continuity rule`]):u}),a=o.find(c=>c.kind==="override");return a?{decision:a.decision,currentPriority:a.currentPriority,currentScore:a.currentScore,reasons:[...r.reasons,...a.rationale],continuityEvaluations:o}:{...r,continuityEvaluations:o}}resolveEvidenceContext(e,t,n){return ga(e,Pr(t),kn(n)??0)}},XS=class{runtime;constructor(e){this.runtime=e}assemble(e,t){let n=this.runtime.signals.summarize(e),r=this.runtime.signals.summarize(),i=bt(n),o=bt(r),a=this.runtime.getTaskView(e),c=this.runtime.getAttentionView(),u=this.runtime.getOperatorPresence();return ga(t,Pr({currentFrame:t,currentTaskView:a,currentEpisode:this.runtime.episodes.readFrameEpisode(t),attentionView:c,taskSignalSummary:n,continuitySignalSummary:n,globalSignalSummary:r,taskAttentionState:i,globalAttentionState:o,surfaceCapabilities:this.runtime.getSurfaceCapabilities(),operatorPresence:u}),this.runtime.clock.nowMs())}augmentContinuitySignalSummary(e,t,n){let r=this.resolveContinuitySignalSummary(e,t,n.taskSignalSummary);return r===n.taskSignalSummary?n:{...n,continuitySignalSummary:r}}resolveContinuitySignalSummary(e,t,n){if(!t.episodeId)return n;let r=this.runtime.signals.list(e),i=this.runtime.signals.list().filter(o=>o.taskId!==e&&QS(o)===t.episodeId);return i.length===0?n:$d([...r,...i].sort((o,a)=>o.timestamp.localeCompare(a.timestamp)))}};function QS(e){let t=e.metadata?.episode;if(!t||typeof t!="object"||Array.isArray(t))return null;let n=t.id;return typeof n=="string"&&n.length>0?n:null}var Yd=class extends Error{code;constructor(e,t){super(t),this.name=new.target.name,this.code=e}},fe=class extends Yd{field;constructor(e,t={}){super(t.code??"validation_error",e),this.field=t.field}},eb=class extends Yd{taskId;interactionId;expiredAt;constructor(e){super("response_expired",`response for interaction ${e.interactionId} expired at ${e.expiredAt} and must be revalidated before submission`),this.taskId=e.taskId,this.interactionId=e.interactionId,this.expiredAt=e.expiredAt}};function tb(e,t,n){let r=ob(e,n),i={taskId:e.taskId,interactionId:e.interactionId,timestamp:n,frameId:e.id,...e.source!==void 0?{source:e.source}:{},metadata:wn(e)};return t.response.kind==="dismissed"?{kind:"dismissed",...i,...r!==void 0?{latencyMs:r}:{}}:{kind:"responded",...i,responseKind:t.response.kind,...r!==void 0?{latencyMs:r}:{}}}function nb(e,t,n){return{kind:"responded",taskId:e.taskId,interactionId:e.interactionId,timestamp:n,...e.source!==void 0?{source:e.source}:{},responseKind:t.response.kind==="dismissed"?"acknowledged":t.response.kind,metadata:{...yS(e),autoResolved:!0}}}function Ko(e,t,n=e){return{kind:"deferred",taskId:n.taskId,interactionId:n.interactionId,timestamp:e.timing.updatedAt,frameId:e.id,...n.source!==void 0?{source:n.source}:{},reason:t,metadata:wn(e)}}function rb(e,t,n){let r=e.now,i=t.now;return i?[...sb(r,i,n),...ib(e,i,n)]:[]}function yr(e,t,n,r,i,o={}){return{kind:e,taskId:t,interactionId:n,timestamp:r,...i?.id!==void 0?{frameId:i.id}:{},...i?.source!==void 0?{source:i.source}:{},...i?{metadata:wn(i)}:{},...o.surface!==void 0?{surface:o.surface}:{},...e==="context_expanded"&&o.section!==void 0?{section:o.section}:{},...e==="context_skipped"&&o.section!==void 0?{section:o.section}:{},...e==="timed_out"&&o.timeoutMs!==void 0?{timeoutMs:o.timeoutMs}:{}}}function sb(e,t,n){if(!e||na(e,t))return[];let r={kind:"attention_shifted",taskId:t.taskId,interactionId:t.interactionId,timestamp:n,frameId:t.id,...t.source!==void 0?{source:t.source}:{},fromInteractionId:e.interactionId,toInteractionId:t.interactionId};return e.taskId===t.taskId?[r]:[r,{kind:"attention_shifted",taskId:e.taskId,interactionId:e.interactionId,timestamp:n,frameId:e.id,...e.source!==void 0?{source:e.source}:{},fromInteractionId:e.interactionId,toInteractionId:t.interactionId}]}function ib(e,t,n){let r=e.next.some(i=>na(i,t))?"next":e.ambient.some(i=>na(i,t))?"ambient":null;return r?[{kind:"returned",taskId:t.taskId,interactionId:t.interactionId,timestamp:n,frameId:t.id,...t.source!==void 0?{source:t.source}:{},from:r,metadata:wn(t)}]:[]}function ob(e,t){let n=Date.parse(e.timing.updatedAt),r=Date.parse(t);if(!(Number.isNaN(n)||Number.isNaN(r)))return Math.max(0,r-n)}function na(e,t){return e.id===t.id||e.taskId===t.taskId&&e.interactionId===t.interactionId}var ab=class{runtime;constructor(e){this.runtime=e}commitFrame(e,t=[]){let n=this.runtime.getAttentionView(),r=new Set;for(let a of t){let c=`${a.taskId}::${a.interactionId}`;if(r.has(c))continue;r.add(c);let u=this.runtime.taskViews.discard(a.taskId,a.interactionId);a.taskId!==e.taskId&&(this.runtime.notifyFrame(a.taskId,u.now),this.runtime.notifyTaskView(a.taskId,u))}let i=this.runtime.taskViews.setNow(e.taskId,e),o=this.runtime.getAttentionView();return this.recordAttentionTransition(n,o,e.timing.updatedAt),this.runtime.recordSignal({kind:"presented",taskId:e.taskId,interactionId:e.interactionId,timestamp:e.timing.updatedAt,frameId:e.id,...e.source!==void 0?{source:e.source}:{},metadata:wn(e)}),this.runtime.notifyFrame(e.taskId,e),this.runtime.notifyTaskView(e.taskId,i),this.runtime.notifyAttentionView(),e}applyClear(e){let t=this.runtime.getAttentionView(),n=this.runtime.taskViews.get(e);if(!(n.now!==null||n.next.length>0||n.ambient.length>0))return null;for(let a of[n.now,...n.next,...n.ambient])a&&this.runtime.episodes.resolveInteraction(a.interactionId);this.runtime.clearOperatorEngagement(e);let i=this.runtime.taskViews.clear(e),o=this.runtime.getAttentionView();return this.recordAttentionTransition(t,o,this.runtime.clock.nowIso()),this.runtime.notifyFrame(e,null),this.runtime.notifyTaskView(e,i),this.runtime.notifyAttentionView(),null}queueFrame(e,t){let n=this.runtime.taskViews.addNext(e,t);return this.runtime.recordSignal(Ko(t,"next")),this.runtime.notifyTaskView(e,n),this.runtime.notifyAttentionView(),n.now??t}addAmbientFrame(e,t){let n=this.runtime.taskViews.addAmbient(e,t);return this.runtime.recordSignal(Ko(t,"suppressed")),this.runtime.notifyTaskView(e,n),this.runtime.notifyAttentionView(),n.now??t}materializePeripheralFrame(e,t,n){let r=e.episodeId?this.findPeripheralEpisodeFrame(e.episodeId,n):null;if(!r){let d=this.applyResponseExpiry(this.runtime.planner.plan(e,null));return t==="queue"?this.queueFrame(e.taskId,d):this.addAmbientFrame(e.taskId,d)}let i=r.bucket==="queue"||t==="queue"?"queue":"ambient",a={...this.applyResponseExpiry(this.runtime.planner.plan(e,r.frame)),id:r.frame.id},c=this.runtime.taskViews.discard(r.frame.taskId,r.frame.interactionId);this.runtime.notifyTaskView(r.frame.taskId,c);let u=i==="queue"?this.runtime.taskViews.addNext(a.taskId,a):this.runtime.taskViews.addAmbient(a.taskId,a);return this.runtime.recordSignal(Ko(a,i==="queue"?"next":"suppressed",e)),this.runtime.notifyTaskView(a.taskId,u),this.runtime.notifyAttentionView(),a}promotePeripheralEpisodeFrame(e,t){let r={...this.applyResponseExpiry(this.runtime.planner.plan(e,t)),id:t.id};return this.commitFrame(r,[t])}submit(e){let t=this.findFrame(e.taskId,e.interactionId);if(!t)return;let n=this.readExpiredResponseTimestamp(t,this.runtime.clock.nowIso());if(n)throw new eb({taskId:e.taskId,interactionId:e.interactionId,expiredAt:n});let r=this.runtime.getAttentionView(),i=this.runtime.clock.nowIso();this.runtime.clearOperatorEngagement(e.taskId,e.interactionId),this.runtime.recordSignal(tb(t,e,i)),this.runtime.episodes.resolveInteraction(e.interactionId);let o=this.runtime.taskViews.resolve(e.taskId,e.interactionId),a=this.runtime.getAttentionView();this.recordAttentionTransition(r,a,i),this.runtime.notifyFrame(e.taskId,o.now??null),this.runtime.notifyTaskView(e.taskId,o),this.runtime.notifyAttentionView(),this.runtime.emitResponse(e)}applyAutoResponse(e,t){let n=this.runtime.clock.nowIso();return this.runtime.recordSignal(nb(e,t,n)),this.runtime.episodes.resolveInteraction(e.interactionId),this.runtime.emitResponse(t),null}findFrameByInteractionId(e,t){return this.findFrame(e,t)}shouldRetireSupersededEpisodeFrames(e,t){return this.findSupersededEpisodeFrames(e,t).length>0}findSupersededEpisodeFrames(e,t){return!e.episodeId||!jd(e.relationHints,"supersedes")?[]:[t.now,...t.next,...t.ambient].filter(n=>n!==null&&n.interactionId!==e.interactionId&&It(n)===e.episodeId&&!Ue(Et(n)))}applyResponseExpiry(e){if(this.runtime.responseExpiryMs===void 0||e.responseSpec?.kind==="none")return e;let t=this.runtime.clock.add(e.timing.updatedAt,this.runtime.responseExpiryMs);return t===null?e:{...e,timing:{...e.timing,expiresAt:t}}}readExpiredResponseTimestamp(e,t){let n=e.timing.expiresAt;if(!n)return null;let r=this.runtime.clock.parse(n),i=this.runtime.clock.parse(t);return r===null||i===null||i<=r?null:n}findPeripheralEpisodeFrame(e,t){let n=t.next.find(i=>It(i)===e&&!Ue(Et(i)));if(n)return{frame:n,bucket:"queue"};let r=t.ambient.find(i=>It(i)===e&&!Ue(Et(i)));return r?{frame:r,bucket:"ambient"}:null}shouldPromotePeripheralEpisodeFrame(e){return e.continuityEvaluations?.some(t=>t.rule==="deferral_escalation"&&t.kind==="override"&&t.decision?.kind==="activate")??!1}findFrame(e,t){let n=this.runtime.taskViews.get(e);if(n.now?.interactionId===t)return n.now;let r=n.next.find(i=>i.interactionId===t);return r||(n.ambient.find(i=>i.interactionId===t)??null)}recordAttentionTransition(e,t,n){for(let r of rb(e,t,n))this.runtime.recordSignal(r)}},cb=12,ub=class{taskViews=new Map;get(e){return this.taskViews.get(e)??{now:null,next:[],ambient:[]}}setNow(e,t){let n=this.get(e),r=n.next.filter(a=>a.interactionId!==t.interactionId),i=n.now&&n.now.interactionId!==t.interactionId?n.now:null,o={now:t,next:i?[i,...r]:r,ambient:n.ambient.filter(a=>a.interactionId!==t.interactionId)};return this.persist(e,o)}addNext(e,t){return this.upsert(e,"next",t)}addAmbient(e,t){return this.upsert(e,"ambient",t)}clear(e){let t={now:null,next:[],ambient:[]};return this.taskViews.delete(e),t}discard(e,t){let n=this.get(e),r={now:n.now?.interactionId===t?null:n.now,next:n.next.filter(i=>i.interactionId!==t),ambient:n.ambient.filter(i=>i.interactionId!==t)};return this.persist(e,r)}resolve(e,t){let n=this.get(e),r=n.next.filter(c=>c.interactionId!==t),i=n.ambient.filter(c=>c.interactionId!==t),o=n.now;o?.interactionId===t&&(o=r.shift()??null);let a={now:o,next:r,ambient:i};return this.persist(e,a)}upsert(e,t,n){let r=this.get(e),i=r.next.filter(d=>d.interactionId!==n.interactionId),o=r.ambient.filter(d=>d.interactionId!==n.interactionId),u={now:r.now?.interactionId===n.interactionId?i.shift()??null:r.now,next:t==="next"?[n,...i]:i,ambient:t==="ambient"?[n,...o].slice(0,cb):o};return this.persist(e,u)}values(){return this.taskViews.values()}stats(){let e=0,t=0,n=0;for(let r of this.taskViews.values())r.now&&(e+=1),t+=r.next.length,n+=r.ambient.length;return{taskCount:this.taskViews.size,nowCount:e,nextCount:t,ambientCount:n,totalFrames:e+t+n}}persist(e,t){return lb(t)?this.taskViews.delete(e):this.taskViews.set(e,t),t}};function lb(e){return e.now===null&&e.next.length===0&&e.ambient.length===0}var ra=Symbol("aperture.internal.subscribeTrace");function Sa(e,t){let n=[];return br("",e,t,n),n}function br(e,t,n,r){if(!Object.is(t,n)){if(t==null&&Sr(n)){for(let i of Object.keys(n).sort()){let o=e.length>0?`${e}.${i}`:i;br(o,void 0,n[i],r)}return}if(n==null&&Sr(t)){for(let i of Object.keys(t).sort()){let o=e.length>0?`${e}.${i}`:i;br(o,t[i],void 0,r)}return}if(t===void 0||n===void 0){r.push({path:e,before:t,after:n});return}if(Array.isArray(t)||Array.isArray(n)){r.push({path:e,before:t,after:n});return}if(Sr(t)&&Sr(n)){let i=new Set([...Object.keys(t),...Object.keys(n)]);for(let o of[...i].sort()){let a=e.length>0?`${e}.${o}`:o;br(a,t[o],n[o],r)}return}r.push({path:e,before:t,after:n})}}function Sr(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}var db=class{recordNoop(e){return{...e,evaluation:{kind:"noop"}}}recordClear(e,t){return{...e,evaluation:{kind:"clear",taskId:t}}}recordCandidate(e,t){let{original:n,adjusted:r,explanation:i,result:o}=t,a=gb(e.event,r);return{...e,evaluation:{kind:"candidate",original:n,adjusted:r},candidateTransition:pb(n,r),frameTransition:mb(e.current,o),heuristics:{scoreOffset:r.attentionScoreOffset??0,rationale:r.attentionRationale??[]},...a!==void 0?{semantic:a}:{},episode:fb(r),policy:i.policy,policyRules:{gateEvaluations:i.policyGateEvaluations,criterion:i.criterion,criterionEvaluations:i.policyCriterionEvaluations},utility:{candidate:i.utility,currentScore:i.currentScore,currentPriority:i.currentPriority},planner:{kind:i.decision.kind,reasons:i.reasons,continuityEvaluations:i.continuityEvaluations},coordination:{kind:i.decision.kind,resultLane:bb(e.attentionView,r.taskId,r.interactionId,i.decision.kind),candidateScore:i.candidateScore,currentScore:i.currentScore,currentPriority:i.currentPriority,criterion:i.criterion,ambiguity:i.ambiguity,reasons:i.reasons,continuityEvaluations:i.continuityEvaluations},pressureForecast:i.pressureForecast,attentionBurden:i.attentionBurden,result:o}}};function pb(e,t){return{changedFields:Sa(e,t)}}function mb(e,t){return{changedFields:Sa(e,t)}}function fb(e){return e.episodeId?{id:e.episodeId,key:e.episodeKey??e.episodeId,state:e.episodeState??"emerging",size:e.episodeSize??1,evidenceScore:e.episodeEvidenceScore??0,evidenceReasons:e.episodeEvidenceReasons??[],lastInteractionId:e.interactionId,updatedAt:e.timestamp}:null}function gb(e,t){let n=e.semantic;if(!n)return;let r=Md(t)??la(e,n),i=Tt(t);return{intentFrame:n.intentFrame,...n.activityClass!==void 0?{activityClass:n.activityClass}:{},...n.toolFamily!==void 0?{toolFamily:n.toolFamily}:{},...n.consequence!==void 0?{consequence:n.consequence}:{},...i?.confidence!==void 0?{confidence:i.confidence}:{},...i?.abstained===!0?{abstained:!0}:{},ontology:r,...n.whyNow!==void 0?{whyNow:n.whyNow}:{},relationHints:n.relationHints,factors:n.factors,reasons:n.reasons,influence:hb(e,t),impact:yb(e,t),...n.provenance!==void 0?{provenance:n.provenance}:{}}}function hb(e,t){let n=e.semantic;if(!n)return[];let r=Md(t)??la(e,n),i=[];return e.type==="task.updated"?(i.push("task status stayed authoritative for candidate routing; semantic details still affected context, continuity, ambiguity handling, and ontology diagnostics"),"activityClass"in e&&e.activityClass===n.activityClass&&n.activityClass!==void 0&&i.push("activity class enriched canonical status facts"),e.toolFamily===n.toolFamily&&n.toolFamily!==void 0&&i.push("tool family enriched canonical status facts without changing the route"),n.relationHints.length>0&&i.push("relation hints informed continuity handling"),r.blocking!=="non_blocking"&&!t.blocking&&i.push(r.blocking==="blocking"?"semantic blocking marked the waiting status as blocked-like for peripheral routing while status handling stayed non-blocking":"semantic waiting stayed diagnostic because status updates still route as non-blocking candidates"),Ir(t)?i.push("semantic abstention can keep non-blocking status work peripheral until clearer evidence arrives"):kr(t)==="low"&&i.push("low semantic confidence can keep non-blocking status work peripheral until the signal is clearer"),i):e.type==="human.input.requested"?("activityClass"in e&&e.activityClass===n.activityClass&&n.activityClass!==void 0&&i.push("activity class was projected into the canonical request"),e.consequence===n.consequence&&n.consequence!==void 0&&i.push("semantic consequence set the canonical human-input consequence"),n.toolFamily!==void 0&&(e.request.kind==="approval"?i.push("tool family remained decision-bearing on the approval path"):i.push("tool family stayed context-only on the question/form path")),n.relationHints.length>0&&i.push("relation hints informed continuity handling"),Ir(t)?i.push(t.blocking?"semantic abstention stayed visible but did not downgrade blocking work":"semantic abstention constrained non-blocking routing"):kr(t)==="low"&&i.push(t.blocking?"semantic low confidence stayed visible but did not downgrade blocking work":"low semantic confidence constrained non-blocking routing"),i.length===0&&i.push("semantic interpretation mostly stayed context-only beyond the explicit request"),i):(i.push("semantic interpretation was recorded for explanation only"),i)}function yb(e,t){let n=e.semantic,r=new Set,i=new Set,o=new Set,a=new Set,c=new Set,u=Tt(t),d=Sb(e);if(!n)return{routingAuthority:d,decisionBearing:[],explanatory:[],canonical:[],routing:[],continuity:[],ambiguity:[],contextOnly:[]};switch(c.add("intent"),n.activityClass!==void 0&&c.add("activity"),n.toolFamily!==void 0&&c.add("tool"),n.consequence!==void 0&&c.add("consequence"),n.whyNow!==void 0&&c.add("why now"),n.relationHints.length>0&&c.add("relations"),u?.confidence!==void 0&&c.add("confidence"),u?.abstained===!0&&c.add("abstention"),e.type){case"task.updated":"activityClass"in e&&e.activityClass===n.activityClass&&n.activityClass!==void 0&&ke(c,r,"activity","activity (canonical)"),n.toolFamily!==void 0&&e.toolFamily===n.toolFamily&&ke(c,r,"tool","tool (bounded)"),n.relationHints.length>0&&ke(c,o,"relations","relations (continuity)"),da(t)&&ke(c,i,"intent","blocking (peripheral routing)");break;case"human.input.requested":"activityClass"in e&&e.activityClass===n.activityClass&&n.activityClass!==void 0&&ke(c,r,"activity","activity (canonical)"),n.consequence!==void 0&&e.consequence===n.consequence&&ke(c,r,"consequence","consequence (canonical)"),n.toolFamily!==void 0&&e.request.kind==="approval"&&ke(c,r,"tool","tool (approval path)"),n.relationHints.length>0&&ke(c,o,"relations","relations (continuity)");break;default:n.relationHints.length>0&&ke(c,o,"relations","relations (continuity)");break}return!t.blocking&&Vy(t)&&ke(c,a,"confidence","confidence (ambiguity)"),!t.blocking&&Ir(t)&&ke(c,a,"abstention","abstention (ambiguity)"),{routingAuthority:d,decisionBearing:[...r,...i,...o,...a],explanatory:[...c],canonical:[...r],routing:[...i],continuity:[...o],ambiguity:[...a],contextOnly:[...c]}}function Sb(e){switch(e.type){case"task.updated":return"status";case"human.input.requested":return"request";default:return"event"}}function ke(e,t,n,r){e.delete(n),t.add(r)}function bb(e,t,n,r){return r==="auto_approve"||r==="clear"?"none":e.now&&e.now.taskId===t&&e.now.interactionId===n?"now":e.next.some(i=>i.taskId===t&&i.interactionId===n)?"next":e.ambient.some(i=>i.taskId===t&&i.interactionId===n)?"ambient":"none"}function vb(e,t,n){return{kind:e,original:t,finalized:n,changedFields:Sa(t,n)}}var kb=class{constructor(e){this.timeSource=e}engagement=null;timer=null;engage(e,t,n={},r){let i=Ib(n.durationMs);this.engagement={taskId:e,interactionId:t,expiresAtMs:this.timeSource()+i},this.scheduleExpiry(i,e,t,r)}readFocusedInteractionId(e){let t=this.engagement;return t?t.expiresAtMs<=this.timeSource()?(this.clear(),null):e(t.taskId,t.interactionId)?t.interactionId:(this.clear(),null):null}clear(e,t){let n=this.engagement;n&&(e!==void 0&&n.taskId!==e||t!==void 0&&n.interactionId!==t||(this.engagement=null,this.clearTimer()))}dispose(){this.engagement=null,this.clearTimer()}scheduleExpiry(e,t,n,r){this.clearTimer(),this.timer=setTimeout(()=>{if(!(this.engagement?.taskId!==t||this.engagement?.interactionId!==n)){if(r){r();return}this.clear()}},e),this.timer.unref?.()}clearTimer(){this.timer&&(clearTimeout(this.timer),this.timer=null)}};function dd(e,t){return e.now?.interactionId===t.now?.interactionId&&pd(e.next,t.next)&&pd(e.ambient,t.ambient)}function Ib(e){return e===void 0?12e3:Math.max(25,Math.floor(e))}function pd(e,t){return e.length===t.length&&e.every((n,r)=>n.interactionId===t[r]?.interactionId)}function Eb(e){return e.evaluation.kind==="candidate"}function wb(e){return Eb(e)}function _b(e){if(e.evaluation.kind==="noop")return{timestamp:e.timestamp,event:e.event,eventTransition:e.eventTransition,evaluation:{kind:"noop"}};if(e.evaluation.kind==="clear")return{timestamp:e.timestamp,event:e.event,eventTransition:e.eventTransition,evaluation:{kind:"clear",taskId:e.evaluation.taskId}};if(!wb(e))throw new Error("Unexpected internal trace variant");return{timestamp:e.timestamp,event:e.event,eventTransition:e.eventTransition,evaluation:{kind:"candidate"},candidateTransition:e.candidateTransition,frameTransition:e.frameTransition,...e.semantic!==void 0?{semantic:e.semantic}:{},policyRules:{gateEvaluations:e.policyRules.gateEvaluations.map(t=>({rule:t.rule,kind:t.kind,rationale:[...t.rationale]})),criterion:e.policyRules.criterion?{criterion:{activationThreshold:e.policyRules.criterion.criterion.activationThreshold,promotionMargin:e.policyRules.criterion.criterion.promotionMargin},peripheralResolution:e.policyRules.criterion.peripheralResolution,ambiguity:e.policyRules.criterion.ambiguity?{kind:e.policyRules.criterion.ambiguity.kind,reason:e.policyRules.criterion.ambiguity.reason,resolution:e.policyRules.criterion.ambiguity.resolution}:null,rationale:[...e.policyRules.criterion.rationale]}:null,criterionEvaluations:e.policyRules.criterionEvaluations.map(t=>({rule:t.rule,kind:t.kind,rationale:[...t.rationale]}))},coordination:{kind:e.coordination.kind,resultLane:e.coordination.resultLane,candidateScore:e.coordination.candidateScore,currentScore:e.coordination.currentScore,currentPriority:e.coordination.currentPriority,ambiguity:e.coordination.ambiguity?{kind:e.coordination.ambiguity.kind,reason:e.coordination.ambiguity.reason,resolution:e.coordination.ambiguity.resolution}:null,reasons:[...e.coordination.reasons],continuityEvaluations:e.coordination.continuityEvaluations.map(t=>({rule:t.rule,kind:t.kind,rationale:[...t.rationale]}))}}}var Ab=3,Rb=25,Tb=class{frameListeners=new Map;taskViewListeners=new Map;attentionViewListeners=new Set;responseListeners=new Set;signalListeners=new Set;traceListeners=new Set;internalTraceListeners=new Set;frameHealth=yt();taskViewHealth=yt();attentionViewHealth=yt();responseHealth=yt();signalHealth=yt();traceHealth=yt();internalTraceHealth=yt();subscribeFrame(e,t,n){let r=this.frameListeners.get(e)??new Set,i=ht(t);r.add(i),this.frameListeners.set(e,r);let o=()=>{r.delete(i),r.size===0&&this.frameListeners.delete(e)};try{t(n)}catch(a){throw o(),a}return o}subscribeTaskView(e,t,n){let r=this.taskViewListeners.get(e)??new Set,i=ht(t);r.add(i),this.taskViewListeners.set(e,r);let o=()=>{r.delete(i),r.size===0&&this.taskViewListeners.delete(e)};try{t(n)}catch(a){throw o(),a}return o}subscribeAttentionView(e,t){let n=ht(e);this.attentionViewListeners.add(n);try{e(t)}catch(r){throw this.attentionViewListeners.delete(n),r}return()=>{this.attentionViewListeners.delete(n)}}onResponse(e){let t=ht(e);return this.responseListeners.add(t),()=>{this.responseListeners.delete(t)}}onSignal(e){let t=ht(e);return this.signalListeners.add(t),()=>{this.signalListeners.delete(t)}}onTrace(e){let t=ht(e);return this.traceListeners.add(t),()=>{this.traceListeners.delete(t)}}[ra](e){let t=ht(e);return this.internalTraceListeners.add(t),()=>{this.internalTraceListeners.delete(t)}}emitFrame(e,t){let n=this.frameListeners.get(e);n&&(this.emitRegistrations(n,this.frameHealth,r=>r(t)),n.size===0&&this.frameListeners.delete(e))}emitTaskView(e,t){let n=this.taskViewListeners.get(e);n&&(this.emitRegistrations(n,this.taskViewHealth,r=>r(t)),n.size===0&&this.taskViewListeners.delete(e))}emitAttentionView(e){this.emitRegistrations(this.attentionViewListeners,this.attentionViewHealth,t=>t(e))}emitResponse(e){this.emitRegistrations(this.responseListeners,this.responseHealth,t=>t(e))}emitSignal(e){this.emitRegistrations(this.signalListeners,this.signalHealth,t=>t(e))}emitTrace(e){this.emitRegistrations(this.internalTraceListeners,this.internalTraceHealth,n=>n(e));let t=_b(e);this.emitRegistrations(this.traceListeners,this.traceHealth,n=>n(t))}getHealthSnapshot(){let e=St(this.frameHealth,md(this.frameListeners)),t=St(this.taskViewHealth,md(this.taskViewListeners)),n=St(this.attentionViewHealth,this.attentionViewListeners.size),r=St(this.responseHealth,this.responseListeners.size),i=St(this.signalHealth,this.signalListeners.size),o=St(this.traceHealth,this.traceListeners.size),a=St(this.internalTraceHealth,this.internalTraceListeners.size);return{totalActive:e.active+t.active+n.active+r.active+i.active+o.active+a.active,frame:e,taskView:t,attentionView:n,response:r,signal:i,trace:o,internalTrace:a}}emitRegistrations(e,t,n){for(let r of[...e]){let i=ed.now();try{n(r.listener),r.consecutiveFailures=0}catch(o){r.consecutiveFailures+=1,t.failures+=1,t.lastErrorAt=new Date().toISOString(),t.lastErrorMessage=o instanceof Error?o.message:String(o),r.consecutiveFailures>=Ab&&(e.delete(r),t.detached+=1)}finally{let o=ed.now()-i;t.emissions+=1,o>t.maxDeliveryMs&&(t.maxDeliveryMs=o),o>=Rb&&(t.slowDeliveries+=1)}}}};function ht(e){return{listener:e,consecutiveFailures:0}}function yt(){return{emissions:0,failures:0,detached:0,slowDeliveries:0,maxDeliveryMs:0,lastErrorAt:null,lastErrorMessage:null}}function St(e,t){return{active:t,emissions:e.emissions,failures:e.failures,detached:e.detached,slowDeliveries:e.slowDeliveries,maxDeliveryMs:Number(e.maxDeliveryMs.toFixed(2)),lastErrorAt:e.lastErrorAt,lastErrorMessage:e.lastErrorMessage}}function md(e){let t=0;for(let n of e.values())t+=n.size;return t}function xb(e){let t=Td(e),n=e.type==="human.input.requested"&&e.riskHint!==void 0?{riskHint:e.riskHint}:void 0;return Jd(Ob(e),t,n)}function fd(e,t={}){if(t.skipSemanticDefaults)return e;let n=e.semantic??Td(Nb(e));return Jd(e,n)}function Cb(e){switch(e){case"high":return"critical";case"medium":case"low":return"focused";default:return Mb(e)}}function Jd(e,t,n={}){switch(e.type){case"task.started":return{...e,semantic:t};case"task.updated":return{...e,...e.activityClass===void 0&&t.activityClass!==void 0?{activityClass:t.activityClass}:{},semantic:t};case"task.completed":case"task.cancelled":return{...e,semantic:t};case"human.input.requested":return Pb(e,t,n);default:return Xd(e)}}function Pb(e,t,n){let{toolFamily:r,...i}=e,o=e.consequence??t.consequence??n.riskHint??"medium",a=e.tone??Cb(o),c=ma({base:e.provenance,semantic:t}),u=e.request.kind==="approval"?e.toolFamily??t.toolFamily:void 0;return{...i,...u!==void 0?{toolFamily:u}:{},...e.activityClass===void 0&&t.activityClass!==void 0?{activityClass:t.activityClass}:{},semantic:t,tone:a,consequence:o,...c!==void 0?{provenance:c}:{}}}function Ob(e){switch(e.type){case"task.started":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},title:e.title,...e.summary!==void 0?{summary:e.summary}:{}};case"task.updated":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},title:e.title,...e.summary!==void 0?{summary:e.summary}:{},status:e.status,...e.progress!==void 0?{progress:e.progress}:{},...e.context!==void 0?{context:e.context}:{}};case"task.completed":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.summary!==void 0?{summary:e.summary}:{}};case"task.cancelled":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.reason!==void 0?{reason:e.reason}:{}};case"human.input.requested":return{id:e.id,type:e.type,taskId:e.taskId,interactionId:e.interactionId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},title:e.title,summary:e.summary,request:e.request,...e.context!==void 0?{context:e.context}:{},...e.provenance!==void 0?{provenance:e.provenance}:{}};default:return Lb(e)}}function Nb(e){switch(e.type){case"task.started":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},title:e.title,...e.summary!==void 0?{summary:e.summary}:{}};case"task.updated":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},title:e.title,...e.summary!==void 0?{summary:e.summary}:{},status:e.status,...e.progress!==void 0?{progress:e.progress}:{},...e.context!==void 0?{context:e.context}:{}};case"task.completed":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.summary!==void 0?{summary:e.summary}:{}};case"task.cancelled":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.reason!==void 0?{reason:e.reason}:{}};case"human.input.requested":return{id:e.id,type:e.type,taskId:e.taskId,interactionId:e.interactionId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},title:e.title,summary:e.summary,request:e.request,...e.context!==void 0?{context:e.context}:{},...e.consequence!==void 0?{riskHint:e.consequence}:{}};default:return Xd(e)}}function Xd(e){throw new Error(`Unhandled ApertureEvent in semantic normalizer: ${JSON.stringify(e)}`)}function Lb(e){throw new Error(`Unhandled SourceEvent in semantic normalizer: ${JSON.stringify(e)}`)}function Mb(e){throw new Error(`Unhandled consequence level in semantic normalizer: ${e}`)}function Db(e){return{originalEvent:e,finalizedEvent:xb(e),transitionKind:"source_normalized"}}function Fb(e,t={}){let n=t.applySemanticDefaults!==!1;return{originalEvent:e,finalizedEvent:n?fd(e):fd(e,{skipSemanticDefaults:!0}),transitionKind:n?"direct_enriched":"direct_passthrough"}}async function sa(e,t,n){try{let r=await mh(e,"utf8"),i=n(r);return i===null?(gd(e,"Failed to parse markdown state. Falling back to the in-memory default."),t):i}catch(r){return qb(r)||gd(e,"Failed to read markdown state. Falling back to the in-memory default.",r),t}}async function Ub(e,t){await fh(dh(e),{recursive:!0});let n=`${e}.${process.pid}.${ph(6).toString("hex")}.tmp`,r=await gh(n,"w",384),i=!1;try{await r.writeFile(t,"utf8"),await r.sync(),await r.close(),i=!0,await hh(n,e)}catch(o){throw i||await r.close().catch(()=>{}),await yh(n).catch(()=>{}),o}}function ba(e){let t=/^(#{1,3})\s+(.+?)\s*$/.exec(e.trim());if(!t)return null;let n=t[1];if(n===void 0)return null;let r=n.length;if(r<1||r>3)return null;let i=t[2]?.trim();return i?{level:r,text:i}:null}function va(e){let t=e.trim();if(!t.startsWith("- "))return null;let n=t.slice(2).trim(),r=n.indexOf(":");if(r===-1)return n.length>0?{text:n}:null;let i=n.slice(0,r).trim(),o=n.slice(r+1).trim();return i.length===0?null:{key:i,value:o}}function _t(e){return e==="true"?!0:e==="false"?!1:/^-?\d+(?:\.\d+)?$/.test(e)?Number(e):e}function z(e,t){return`- ${e}: ${String(t)}`}function jb(e){return`- ${e}`}function qb(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="ENOENT"}function gd(e,t,n){let r=n===void 0?"":` ${n instanceof Error?n.message:String(n)}`;console.warn(`[aperture] ${t} (${e})${r}`)}function Ar(e){switch(e){case"ambient":return"ambient";case"next":case"queue":return"next";case"now":case"active":return"now";default:return}}async function Qd(e,t){return sa(Yo(e,"JUDGMENT.md"),t,Hb)}function Hb(e){let t=new Map,n=new Map,r=new Map,i=new Map,o=null,a=null;for(let d of e.split(`
|
|
6
|
+
`)){let m=ba(d);if(m){m.level===2?(o=m.text,a=null):m.level===3&&o==="Policy"&&(a=m.text,n.has(a)||n.set(a,{}));continue}let f=va(d);if(!(!f||!("key"in f))){if(o==="Meta"){t.set(f.key,f.value);continue}if(o==="Policy"&&a){let g=_t(f.value),S=$b(Wo(f.key));n.set(a,{...n.get(a)??{},...S==="minimumLane"?(()=>{let b=Ar(g);return b===void 0?{}:{minimumLane:b}})():{[S]:g}});continue}if(o==="Planner Defaults"){let g=Wo(f.key);if(g==="disabledContinuityRules"){let b=Wb(f.value);b.length>0&&i.set(g,b);continue}let S=_t(f.value);(typeof S=="boolean"||typeof S=="number")&&i.set(g,S);continue}if(o==="Ambiguity Defaults"){let g=_t(f.value);typeof g=="number"&&r.set(Wo(f.key),g)}}}let c=Bb(t.get("version")),u=t.get("updated at");return c===null||c!==Ze||!u?null:{version:c,updatedAt:u,...n.size>0?{policy:Object.fromEntries(n.entries())}:{},...r.size>0?{ambiguityDefaults:Object.fromEntries(r.entries())}:{},...i.size>0?{plannerDefaults:Object.fromEntries(i.entries())}:{}}}function $b(e){return e==="minimumPresentation"?"minimumLane":e}function Bb(e){return e!==void 0&&/^-?\d+(?:\.\d+)?$/.test(e)?Number(e):null}function Wo(e){return e.replace(/\s+([a-z])/g,(t,n)=>n.toUpperCase())}var Vb={same_interaction:!0,visible_episode:!0,same_episode:!0,minimum_dwell:!0,burst_dampening:!0,deferral_escalation:!0,conflicting_interrupt:!0,decision_stream_continuity:!0,context_patience:!0},Kb=Object.keys(Vb);function Wb(e){let t=new Set;for(let n of e.split(",")){let r=n.trim();zb(r)&&t.add(r)}return[...t]}function zb(e){return Kb.includes(e)}var Gb=class{rootDir;constructor(e){this.rootDir=e}loadUserProfile(e){return sa(this.userPath(),e,Zb)}loadMemoryProfile(e){return sa(this.memoryPath(),e,Jb)}saveMemoryProfile(e){return Ub(this.memoryPath(),Xb(e))}userPath(){return Yo(this.rootDir,"USER.md")}memoryPath(){return Yo(this.rootDir,"MEMORY.md")}};function Zb(e){let t=new Map,n=new Map,r=new Map,i=null,o=null;for(let d of e.split(`
|
|
7
|
+
`)){let m=ba(d);if(m){m.level===2?(i=m.text,o=null):m.level===3&&i==="Tool Overrides"&&(o=m.text,r.has(o)||r.set(o,{}));continue}let f=va(d);if(!(!f||!("key"in f))){if(i==="Meta"){ia(t,f.key,f.value);continue}if(i==="Preferences"){ia(n,f.key,f.value);continue}if(i==="Tool Overrides"&&o){let g=_t(f.value),S=Yb(vr(f.key));r.set(o,{...r.get(o)??{},...S==="minimumLane"?(()=>{let b=Ar(g);return b===void 0?{}:{minimumLane:b}})():{[S]:g}})}}}let a=kt(t,"operator id"),c=kt(t,"updated at"),u=oa(kt(t,"version"));return!a||!c||u===null||u!==Ze?null:{version:u,operatorId:a,updatedAt:c,...n.size>0?{preferences:{...ze(n,"quiet hours").length>0?{quietHours:ze(n,"quiet hours")}:{},...ze(n,"prefer batching for").length>0?{preferBatchingFor:ze(n,"prefer batching for")}:{},...ze(n,"always expand context for").length>0?{alwaysExpandContextFor:ze(n,"always expand context for")}:{},...ze(n,"never auto approve").length>0?{neverAutoApprove:ze(n,"never auto approve")}:{}}}:{},...r.size>0?{overrides:{tools:Object.fromEntries(r.entries())}}:{}}}function Yb(e){switch(e){case"defaultPresentation":case"minimumPresentation":return"minimumLane";default:return e}}function Jb(e){let t=new Map,n=new Map,r=new Map,i=new Map,o=[],a=null,c=null;for(let g of e.split(`
|
|
8
|
+
`)){let S=ba(g);if(S){S.level===2?(a=S.text,c=null):S.level===3&&(c=S.text);continue}let b=va(g);if(b){if(a==="Meta"&&"key"in b){ia(t,b.key,b.value);continue}if(a==="Tool Families"&&c&&"key"in b){n.set(c,{...n.get(c)??Qb(),[vr(b.key)]:_t(b.value)});continue}if(a==="Source Trust"&&c&&"key"in b){let[O,U]=c.split("/").map(Z=>Z.trim());if(!O||!U)continue;let j=r.get(O)??{};j[U]={...j[U]??{confirmations:0,disagreements:0,trustAdjustment:0},[vr(b.key)]:_t(b.value)},r.set(O,j);continue}if(a==="Consequence Profiles"&&c&&"key"in b){i.set(c,{...i.get(c)??{rejectionRate:0},[vr(b.key)]:_t(b.value)});continue}a==="Lessons"&&"text"in b&&o.push(b.text)}}let u=kt(t,"operator id"),d=kt(t,"updated at"),m=oa(kt(t,"version")),f=oa(kt(t,"session count"));return!u||!d||m===null||m!==Ze||f===null?null:{version:m,operatorId:u,updatedAt:d,sessionCount:f,...n.size>0?{toolFamilies:Object.fromEntries(n.entries())}:{},...r.size>0?{sourceTrust:Object.fromEntries(r.entries())}:{},...i.size>0?{consequenceProfiles:Object.fromEntries(i.entries())}:{},...o.length>0?{lessons:o}:{}}}function Xb(e){let t=["# Memory","","## Meta",z("version",e.version),z("operator id",e.operatorId),z("updated at",e.updatedAt),z("session count",e.sessionCount)];if(e.toolFamilies&&Object.keys(e.toolFamilies).length>0){t.push("","## Tool Families");for(let[n,r]of Object.entries(e.toolFamilies))t.push("",`### ${n}`),t.push(z("presentations",r.presentations)),t.push(z("responses",r.responses)),t.push(z("dismissals",r.dismissals)),r.avgResponseLatencyMs!==void 0&&t.push(z("avg response latency ms",r.avgResponseLatencyMs)),r.avgDismissalLatencyMs!==void 0&&t.push(z("avg dismissal latency ms",r.avgDismissalLatencyMs)),r.contextExpansionRate!==void 0&&t.push(z("context expansion rate",r.contextExpansionRate)),r.returnAfterDeferralRate!==void 0&&t.push(z("return after deferral rate",r.returnAfterDeferralRate))}if(e.sourceTrust&&Object.keys(e.sourceTrust).length>0){t.push("","## Source Trust");for(let[n,r]of Object.entries(e.sourceTrust))for(let[i,o]of Object.entries(r))t.push("",`### ${n} / ${i}`),t.push(z("confirmations",o.confirmations)),t.push(z("disagreements",o.disagreements)),t.push(z("trust adjustment",o.trustAdjustment))}if(e.consequenceProfiles&&Object.keys(e.consequenceProfiles).length>0){t.push("","## Consequence Profiles");for(let[n,r]of Object.entries(e.consequenceProfiles))t.push("",`### ${n}`),t.push(z("rejection rate",r.rejectionRate)),r.reviewedCount!==void 0&&t.push(z("reviewed count",r.reviewedCount))}if(e.lessons&&e.lessons.length>0){t.push("","## Lessons");for(let n of e.lessons)t.push(jb(n))}return t.push(""),t.join(`
|
|
9
|
+
`)}function Qb(){return{presentations:0,responses:0,dismissals:0}}function ia(e,t,n){let r=e.get(t)??[];r.push(n),e.set(t,r)}function kt(e,t){return e.get(t)?.[0]??null}function ze(e,t){return e.get(t)??[]}function oa(e){return e!==null&&/^-?\d+(?:\.\d+)?$/.test(e)?Number(e):null}function vr(e){return e.replace(/\s+([a-z])/g,(t,n)=>n.toUpperCase())}async function ev(e){let t=new Gb(e),[n,r,i]=await Promise.all([t.loadUserProfile(ep()),t.loadMemoryProfile(rv()),Qd(e,tp())]);return{profileStore:t,markdownRootDir:e,userProfile:n,memoryProfile:r,judgmentConfig:i}}async function tv(e){let[t,n,r]=await Promise.all([e.profileStore.loadUserProfile(e.userProfile??ep()),e.profileStore.loadMemoryProfile(e.memoryProfile),Qd(e.markdownRootDir,e.judgmentConfig??tp())]);return{userProfile:t,memoryProfile:n,judgmentConfig:r}}async function nv(e){if(!e.profileStore)return null;let t=Bd(e.memoryProfile,e.signals,e.now);return await e.profileStore.saveMemoryProfile(t),t}function ep(){return{version:Ze,operatorId:"default",updatedAt:Zt(0)}}function rv(){return{version:Ze,operatorId:"default",updatedAt:Zt(0),sessionCount:0}}function tp(){return{version:Ze,updatedAt:Zt(0)}}function zo(e){let{timestamp:t,event:n,eventTransition:r,evidence:i,taskView:o,attentionView:a}=e;return{timestamp:t,event:n,eventTransition:r,taskSummary:i.taskSignalSummary,globalSummary:i.globalSignalSummary,taskAttentionState:i.taskAttentionState,globalAttentionState:i.globalAttentionState,pressureForecast:i.pressureForecast,attentionBurden:i.attentionBurden,current:i.currentFrame,taskView:o,attentionView:a}}function Or(e,t=[]){return{rule:e,kind:"noop",rationale:t}}function At(e,t,n=t.rationale){return{rule:e,kind:"verdict",verdict:t,rationale:n}}var sv=e=>e.candidate.priority!=="background"?Or("background"):At("background",{autoApprove:!1,mayInterrupt:!1,requiresOperatorResponse:!1,minimumLane:"ambient",minimumLaneIsSticky:!0,rationale:["background work should remain peripheral by default"]}),iv=e=>e.candidate.blocking?At("blocking",{autoApprove:!1,mayInterrupt:!0,requiresOperatorResponse:!0,minimumLane:"now",minimumLaneIsSticky:!1,rationale:["blocking interactions require explicit operator attention"]}):Or("blocking");function ov(e,t){let n=e?.policy;if(!n)return;let r=av(t);for(let i of r){let o=n[i];if(o)return o}}function np(e){return rp(e)?fa(e):null}function av(e){let t=[];if(!rp(e))return t;let n=np(e),r=[e.title,e.summary??"",...e.context?.items?.flatMap(i=>[i.label,i.value??""])??[]].join(" ").toLowerCase();return e.consequence==="low"&&n==="read"&&t.push("lowRiskRead"),e.consequence==="low"&&n==="web"&&t.push("lowRiskWeb"),r.includes(".env")&&(n==="write"||n==="edit"||n==="bash")&&t.push("envWrite"),(n==="write"||n==="edit")&&t.push("fileWrite"),n==="bash"&&e.consequence==="high"&&t.push("destructiveBash"),t}function rp(e){return e.activityClass!==void 0?cv(e.activityClass):e.mode==="approval"}function cv(e){switch(e){case"permission_request":return!0;case"question_request":case"follow_up":case"tool_completion":case"tool_failure":case"session_status":case"status_update":return!1;default:return e}}var uv=e=>{let{candidate:t,judgmentConfig:n,userProfile:r}=e,i=np(t),o=i?r?.overrides?.tools?.[i]:void 0,a=ov(n,t),c=o?.requireContextExpansion===!0||a?.requireContextExpansion===!0,u=a?.autoApprove===!0&&t.mode==="approval"&&t.responseSpec.kind==="approval"&&!c,d=Ar(o?.minimumLane??o?.defaultPresentation)??Ar(a?.minimumLane)??(c?"now":void 0),m=a?.mayInterrupt,f=!u&&(t.blocking||d==="now"||c);if(d===void 0&&m===void 0&&!o&&!u)return Or("configured_policy");let g=[];return i&&o&&g.push(`user override applies for ${i} interactions`),a&&g.push("configured judgment policy applies to this interaction"),u?(g.push("configured judgment policy auto-approves this bounded approval"),At("configured_policy",{autoApprove:!0,mayInterrupt:!1,requiresOperatorResponse:!1,minimumLane:"ambient",minimumLaneIsSticky:!0,rationale:g})):f?(g.push("operator-response work cannot remain passive without auto-resolution"),At("configured_policy",{autoApprove:!1,mayInterrupt:!0,requiresOperatorResponse:!0,minimumLane:"now",minimumLaneIsSticky:!1,rationale:g})):At("configured_policy",{autoApprove:!1,mayInterrupt:m??!1,requiresOperatorResponse:f,minimumLane:d??(t.blocking?"now":"next"),minimumLaneIsSticky:d!==void 0||m===!1,rationale:g})},lv=()=>At("interruptive_default",{autoApprove:!1,mayInterrupt:!0,requiresOperatorResponse:!1,minimumLane:"next",minimumLaneIsSticky:!1,rationale:["urgent non-blocking work may compete for interruptive attention"]});function Ge(e,t=[]){return{rule:e,kind:"noop",rationale:t}}function Ee(e,t,n=t.rationale){return{rule:e,kind:"verdict",verdict:t,rationale:n}}function sp(e,t,n){return{rule:e,kind:"adjust",criterion:t,rationale:n}}function Rr(e){return{criterion:e,peripheralResolution:null,ambiguity:null,rationale:[]}}function dv(e,t,n=[]){return{criterion:e,peripheralResolution:t,ambiguity:null,rationale:n}}function vn(e,t,n,r){return{criterion:e,peripheralResolution:t,ambiguity:n,rationale:r}}var pv=e=>{let{evidence:t,criterion:n}=e,r=t.attentionBurden.thresholdOffset;return r<=0?Ge("attention_budget"):sp("attention_budget",{activationThreshold:n.activationThreshold+r,promotionMargin:n.promotionMargin+r},["sustained attention burden raises the interrupt bar until the operator load eases"])},mv=e=>{let{candidate:t,policyVerdict:n,criterion:r,peripheralResolution:i,evidence:o}=e;return!n.mayInterrupt&&n.minimumLaneIsSticky?Ee("interrupt_eligibility",dv(r,fv(t,i,o.surfaceCapabilities))):t.blocking||t.episodeState==="actionable"||n.autoApprove||n.requiresOperatorResponse||n.minimumLane==="now"?Ee("interrupt_eligibility",Rr(r)):Ge("interrupt_eligibility")};function fv(e,t,n){if(t!=="ambient"||!n.topology.supportsAmbient)return"queue";switch(e.responseSpec.kind){case"approval":case"acknowledge":case"none":return"ambient";case"choice":return(e.responseSpec.selectionMode==="multiple"?n.responses.supportsMultipleChoice:n.responses.supportsSingleChoice)&&(!e.responseSpec.allowTextResponse||n.responses.supportsTextResponse)?"ambient":"queue";case"form":return n.responses.supportsForm?"ambient":"queue"}}var gv=e=>{let{candidate:t,evidence:n,candidateScore:r,criterion:i,peripheralResolution:o}=e;return n.currentFrame||t.episodeId!==void 0&&[n.attentionView.now,...n.attentionView.next,...n.attentionView.ambient].filter(a=>a!==null).some(a=>a.interactionId!==t.interactionId&&It(a)===t.episodeId&&!Ue(Et(a)))?Ge("no_active_frame"):r>=i.activationThreshold?Ee("no_active_frame",Rr(i)):Ee("no_active_frame",vn(i,o,{kind:"interrupt",reason:"low_signal",resolution:o},["uncertain interruptive work stays peripheral until its signal is stronger"]))},hv=e=>{let{evidence:t,criterion:n,peripheralResolution:r}=e;return t.operatorPresence!=="absent"?Ge("operator_absence"):Ee("operator_absence",{criterion:n,peripheralResolution:r,ambiguity:null,rationale:["operator absence keeps interruptive work peripheral until foreground attention returns"]})},yv=e=>{let{candidate:t}=e;return t.mode!=="status"||t.consequence==="high"||t.tone==="critical"?Or("peripheral_status"):At("peripheral_status",{autoApprove:!1,mayInterrupt:!1,requiresOperatorResponse:!1,minimumLane:"ambient",minimumLaneIsSticky:!1,rationale:["non-critical status work should start in the periphery"]})},Sv=e=>{let{candidate:t,criterion:n,peripheralResolution:r}=e;return t.blocking?Ge("semantic_uncertainty"):Ir(t)?Ee("semantic_uncertainty",vn(n,r,{kind:"interrupt",reason:"low_signal",resolution:r},["semantic interpretation abstained, so non-blocking work stays peripheral until stronger explicit evidence arrives"])):kr(t)==="low"?Ee("semantic_uncertainty",vn(n,r,{kind:"interrupt",reason:"low_signal",resolution:r},["low-confidence semantic interpretation keeps non-blocking work peripheral until the signal is clearer"])):Nd(t)==="weak"?Ee("semantic_uncertainty",vn(n,r,{kind:"interrupt",reason:"low_signal",resolution:r},["inferred semantic evidence stays peripheral until stronger source-backed context arrives"])):Ge("semantic_uncertainty",Tt(t)!==null?["semantic evidence is strong enough to keep ordinary interrupt rules in play"]:[])},bv=e=>{let{candidateScore:t,currentScore:n,criterion:r,peripheralResolution:i}=e;return n===null||t<=n||t>=n+r.promotionMargin?Ee("small_score_gap",Rr(r)):Ee("small_score_gap",vn(r,i,{kind:"interrupt",reason:"small_score_gap",resolution:i},["small score gaps resolve to the periphery instead of stealing focus immediately"]))},vv=2,Tr=6,kv=e=>{let{candidate:t,criterion:n,sourceTrustAdjustment:r}=e,i=Iv(r),o=Ky(t),a=Math.max(-Tr,Math.min(Tr,i+o));if(a===0)return Ge("source_trust");let c={activationThreshold:Math.max(0,n.activationThreshold-a),promotionMargin:Math.max(0,n.promotionMargin-a)},u=[...i>0?["durable source trust lowers the interrupt bar for this source"]:i<0?["low-trust source signals need a clearer margin before interrupting"]:[],...o>0?["explicit semantic evidence lowers the interrupt bar slightly"]:o<0?["inferred semantic evidence needs a clearer margin before interrupting"]:[]];return sp("source_trust",c,u)};function Iv(e){return e===0?0:Math.max(-Tr,Math.min(Tr,Math.trunc(e/vv)))}var Ev=[uv,iv,sv,yv,lv],wv=[hv,mv,kv,pv,Sv,gv,bv],ip=class{judgmentConfig;userProfile;memoryProfile;constructor(e={}){this.judgmentConfig=e.judgmentConfig,this.userProfile=e.userProfile,this.memoryProfile=e.memoryProfile}evaluateGates(e){return this.explainGates(e).verdict}explainGates(e){let t=this.buildPolicyGateInput(e),n=[];for(let i of Ev){let o=i(t);if(n.push(o),o.kind==="verdict")return{verdict:o.verdict,evaluations:n}}return{verdict:{autoApprove:!1,mayInterrupt:!0,requiresOperatorResponse:!1,minimumLane:"next",minimumLaneIsSticky:!1,rationale:["urgent non-blocking work may compete for interruptive attention"]},evaluations:n}}evaluateInterruptCriterion(e,t,n,r,i,o={}){return this.explainInterruptCriterion(e,t,n,r,i,o).verdict}explainInterruptCriterion(e,t,n,r,i,o={}){let a=this.readInterruptCriterion(o.ambiguityDefaults),c=this.readPeripheralResolution(e,t),u=this.readSourceTrustAdjustment(e),d=[],m=[];for(let f of wv){let g=f(this.buildPolicyCriterionInput(e,t,n,r,i,a,u,c));if(m.push(g),g.kind==="adjust"){a=g.criterion,d.push(...g.rationale);continue}if(g.kind==="verdict")return{verdict:{...g.verdict,rationale:[...d,...g.verdict.rationale]},evaluations:m}}return{verdict:{criterion:a,peripheralResolution:null,ambiguity:null,rationale:d},evaluations:m}}readInterruptCriterion(e){return{activationThreshold:e?.nonBlockingActivationThreshold??this.judgmentConfig?.ambiguityDefaults?.nonBlockingActivationThreshold??V.ambiguity.nonBlockingActivationThreshold,promotionMargin:e?.promotionMargin??this.judgmentConfig?.ambiguityDefaults?.promotionMargin??V.ambiguity.promotionMargin}}readPeripheralResolution(e,t){return Dd(e,t.minimumLane==="ambient"?"ambient":"queue")}readSourceTrustAdjustment(e){let t=e.source?.kind??e.source?.id;return t?this.memoryProfile?.sourceTrust?.[t]?.[e.consequence]?.trustAdjustment??0:0}buildPolicyGateInput(e){return{candidate:e,...this.judgmentConfig!==void 0?{judgmentConfig:this.judgmentConfig}:{},...this.userProfile!==void 0?{userProfile:this.userProfile}:{}}}buildPolicyCriterionInput(e,t,n,r,i,o,a,c){return{candidate:e,policyVerdict:t,evidence:n,candidateScore:r,currentScore:i,criterion:o,sourceTrustAdjustment:a,peripheralResolution:c}}},L=V.attentionValue,op=class{memoryProfile;constructor(e={}){this.memoryProfile=e.memoryProfile}scoreCandidate(e){let t=this.sourceTrustAdjustment(e),n=this.consequenceCalibrationAdjustment(e),r=this.responseAffinityAdjustment(e),i=this.contextCostAdjustment(e),o=this.deferralAffinityAdjustment(e),a={priority:_v(e.priority)*100,consequence:Av(e.consequence)*10,tone:Rv(e.tone),blocking:e.blocking?1e3:0,heuristics:e.attentionScoreOffset??0,sourceTrust:t,consequenceCalibration:n,responseAffinity:r,contextCost:i,deferralAffinity:o},c=e.attentionRationale?[...e.attentionRationale]:[];return t!==0&&c.push("durable source trust adjusts this interaction's utility"),n>0&&c.push("memory suggests this consequence band is often understated and deserves more attention"),n<0&&c.push("memory suggests this consequence band is often overstated and should be tempered"),r>0&&c.push("memory suggests this kind of interaction usually resolves quickly"),i<0&&c.push("memory suggests this interaction usually needs extra context before action"),o>0&&c.push("memory suggests deferred interactions of this kind are usually resumed"),{total:a.priority+a.consequence+a.tone+a.blocking+a.heuristics+a.sourceTrust+a.consequenceCalibration+a.responseAffinity+a.contextCost+a.deferralAffinity,components:a,rationale:c}}scoreAttentionFrame(e,t={}){return{total:xe(e,t),components:{attentionAdjustment:hd(e)}}}sourceTrustAdjustment(e){let t=e.source?.kind??e.source?.id;return t?this.memoryProfile?.sourceTrust?.[t]?.[e.consequence]?.trustAdjustment??0:0}responseAffinityAdjustment(e){let t=Go(e);if(!t)return 0;let n=this.memoryProfile?.toolFamilies?.[t];return!n||n.avgResponseLatencyMs===void 0||n.presentations<L.memorySufficiency.toolFamilyPresentations||n.responses<L.memorySufficiency.toolFamilyResponses?0:n.avgResponseLatencyMs<=L.responseAffinity.fastLatencyMs?L.responseAffinity.fastBoost:n.avgResponseLatencyMs<=L.responseAffinity.mediumLatencyMs?L.responseAffinity.mediumBoost:0}consequenceCalibrationAdjustment(e){let t=this.memoryProfile?.consequenceProfiles?.[e.consequence],n=t?.rejectionRate;if(n===void 0||(t?.reviewedCount??0)<L.memorySufficiency.consequenceReviewedCount)return 0;switch(e.consequence){case"low":return n>=L.consequenceCalibration.highRejectionRate?L.consequenceCalibration.adjustments.low.highRate:n>=L.consequenceCalibration.mediumRejectionRate?L.consequenceCalibration.adjustments.low.mediumRate:0;case"medium":return n>=L.consequenceCalibration.highRejectionRate?L.consequenceCalibration.adjustments.medium.highRate:n>=L.consequenceCalibration.mediumRejectionRate?L.consequenceCalibration.adjustments.medium.mediumRate:0;case"high":return n>=L.consequenceCalibration.highRejectionRate?L.consequenceCalibration.adjustments.high.highRate:n>=L.consequenceCalibration.mediumRejectionRate?L.consequenceCalibration.adjustments.high.mediumRate:0}}contextCostAdjustment(e){let t=Go(e);if(!t)return 0;let n=this.memoryProfile?.toolFamilies?.[t]?.contextExpansionRate;return n===void 0||(this.memoryProfile?.toolFamilies?.[t]?.presentations??0)<L.memorySufficiency.toolFamilyPresentations?0:n>=L.contextCost.highRate?L.contextCost.highPenalty:n>=L.contextCost.mediumRate?L.contextCost.mediumPenalty:0}deferralAffinityAdjustment(e){let t=Go(e);if(!t)return 0;let n=this.memoryProfile?.toolFamilies?.[t]?.returnAfterDeferralRate;return n===void 0||(this.memoryProfile?.toolFamilies?.[t]?.presentations??0)<L.memorySufficiency.toolFamilyPresentations?0:n>=L.deferralAffinity.highRate?L.deferralAffinity.highBoost:n>=L.deferralAffinity.mediumRate?L.deferralAffinity.mediumBoost:0}};function Go(e){return fa(e)}function _v(e){switch(e){case"background":return 0;case"normal":return 1;case"high":return 2}}function Av(e){switch(e){case"low":return 0;case"medium":return 1;case"high":return 2}}function Rv(e){switch(e){case"ambient":return 0;case"focused":return 1;case"critical":return 2}}var Tv=class{policyGates;utilityScore;queuePlanner;ambiguityDefaults;constructor(e=new ip,t=new op,n=new Zd,r={}){this.policyGates=e,this.utilityScore=t,this.queuePlanner=n,this.ambiguityDefaults=r.ambiguityDefaults}coordinate(e,t,n={}){return this.explain(e,t,n).decision}explain(e,t,n={}){let r=this.resolveEvidenceContext(e,n,t.timestamp),i=this.policyGates.explainGates(t),o=i.verdict,a=this.utilityScore.scoreCandidate(t),c=r.currentFrame?xe(r.currentFrame,{now:t.timestamp}):null,u=r.pressureForecast;if(o.autoApprove){let g=[...o.rationale,"bounded approval work is auto-resolved instead of entering the attention surface"];return{decision:{kind:"auto_approve",candidate:t,response:{taskId:t.taskId,interactionId:t.interactionId,response:{kind:"approved"}}},policy:o,policyGateEvaluations:i.evaluations,utility:a,criterion:null,policyCriterionEvaluations:[],pressureForecast:u,attentionBurden:r.attentionBurden,candidateScore:a.total,currentScore:c,currentPriority:null,ambiguity:null,reasons:g,continuityEvaluations:[]}}let d=this.policyGates.explainInterruptCriterion(t,o,r,a.total,c,this.ambiguityDefaults!==void 0?{ambiguityDefaults:this.ambiguityDefaults}:{}),m=d.verdict;if(m.peripheralResolution){let g=[...o.rationale,...m.rationale];return{decision:{kind:m.peripheralResolution,candidate:t},policy:o,policyGateEvaluations:i.evaluations,utility:a,criterion:m,policyCriterionEvaluations:d.evaluations,pressureForecast:u,attentionBurden:r.attentionBurden,candidateScore:a.total,currentScore:c,currentPriority:r.currentFrame?ie(r.currentFrame):null,ambiguity:m.ambiguity,reasons:g,continuityEvaluations:[]}}let f=this.queuePlanner.explain(r.currentFrame,t,{...r,policyVerdict:o,utility:a,pressureForecast:u,candidateScore:a.total,currentScore:c});return{decision:f.decision,policy:o,policyGateEvaluations:i.evaluations,utility:a,criterion:m,policyCriterionEvaluations:d.evaluations,pressureForecast:u,attentionBurden:r.attentionBurden,candidateScore:a.total,currentScore:f.currentScore,currentPriority:f.currentPriority,ambiguity:null,reasons:f.reasons,continuityEvaluations:f.continuityEvaluations??[]}}clear(){return this.queuePlanner.clear()}resolveEvidenceContext(e,t,n){return ga(e,Pr(t),xv(n))}};function xv(e){let t=Date.parse(e);return Number.isNaN(t)?0:t}function Cv(e={}){return{userProfile:e.userProfile,baseMemoryProfile:e.memoryProfile??Pv(),judgmentConfig:e.judgmentConfig,surfaceCapabilities:aa(e.surfaceCapabilities),operatorPresence:e.operatorPresence??"present",responseExpiryMs:e.responseExpiryMs,timeSource:e.timeSource??Date.now}}function Zo(e){return new Tv(new ip({...e.userProfile!==void 0?{userProfile:e.userProfile}:{},...e.judgmentConfig!==void 0?{judgmentConfig:e.judgmentConfig}:{},memoryProfile:e.baseMemoryProfile}),new op({memoryProfile:e.baseMemoryProfile}),new Zd({...e.judgmentConfig?.plannerDefaults!==void 0?{plannerDefaults:e.judgmentConfig.plannerDefaults}:{}}))}function aa(e){let t=e??_r;return{topology:{...t.topology},responses:{...t.responses}}}function Pv(){return{version:Ze,operatorId:"default",updatedAt:Zt(0),sessionCount:0}}function Ov(e){switch(F("event.id",e.id),F("event.taskId",e.taskId),ka("event.timestamp",e.timestamp),e.source!==void 0&&F("event.source.id",e.source.id),e.type){case"task.started":case"task.updated":F("event.title",e.title);break;case"human.input.requested":F("event.interactionId",e.interactionId),F("event.title",e.title),F("event.summary",e.summary);break;case"task.completed":case"task.cancelled":break;default:return jv(e)}}function Nv(e){switch(F("event.id",e.id),F("event.taskId",e.taskId),ka("event.timestamp",e.timestamp),e.source&&F("event.source.id",e.source.id),e.type){case"task.started":F("event.title",e.title);return;case"task.updated":F("event.title",e.title),Dv("event.status",e.status);return;case"task.completed":return;case"task.cancelled":e.reason!==void 0&&F("event.reason",e.reason);return;case"human.input.requested":F("event.interactionId",e.interactionId),F("event.title",e.title),F("event.summary",e.summary),Uv("event.request",e.request),e.riskHint!==void 0&&Fv("event.riskHint",e.riskHint);return;default:return qv(e)}}function Lv(e){switch(F("response.taskId",e.taskId),F("response.interactionId",e.interactionId),e.response.kind){case"acknowledged":case"approved":case"rejected":case"dismissed":return;case"option_selected":if(e.response.optionIds.length===0)throw new fe("response.optionIds must contain at least one option id",{field:"response.optionIds"});return;case"text_submitted":F("response.text",e.response.text);return;case"form_submitted":if(e.response.values===null||typeof e.response.values!="object"||Array.isArray(e.response.values))throw new fe("response.values must be an object",{field:"response.values"});return}}function Mv(e){F("signal.taskId",e.taskId),F("signal.interactionId",e.interactionId),ka("signal.timestamp",e.timestamp),e.source!==void 0&&F("signal.source.id",e.source.id)}function F(e,t){if(typeof t!="string"||t.trim().length===0)throw new fe(`${e} must be a non-empty string`,{field:e})}function ka(e,t){if(F(e,t),Number.isNaN(Date.parse(t)))throw new fe(`${e} must be a valid ISO timestamp`,{field:e})}function Dv(e,t){if(!["running","blocked","waiting","completed","failed"].includes(t))throw new fe(`${e} must be a valid task status`,{field:e})}function Fv(e,t){if(!["low","medium","high"].includes(t))throw new fe(`${e} must be a valid consequence level`,{field:e})}function Uv(e,t){if(!t||typeof t!="object"||!("kind"in t))throw new fe(`${e} must be a valid human input request`,{field:e});switch(t.kind){case"approval":return;case"choice":if(!Array.isArray(t.options)||t.options.length===0)throw new fe(`${e}.options must contain at least one option`,{field:`${e}.options`});return;case"form":if(!Array.isArray(t.fields)||t.fields.length===0)throw new fe(`${e}.fields must contain at least one field`,{field:`${e}.fields`});return;default:throw new fe(`${e} must have a supported request kind`,{field:e})}}function jv(e){throw new fe(`Unhandled ApertureEvent in validation: ${JSON.stringify(e)}`,{field:"event.type",code:"unsupported_event_variant"})}function qv(e){throw new fe(`Unhandled SourceEvent in validation: ${JSON.stringify(e)}`,{field:"event.type",code:"unsupported_event_variant"})}var Hv=Symbol("aperture.internal.readHealth"),ap=class cp{listeners=new Tb;taskViews=new ub;heuristics=new Th;evaluation=new oS;traceRecorder=new db;coordinator;planner=new lS;attentionEvidence;frameLifecycle;profileStore;markdownRootDir;baseMemoryProfile;userProfile;judgmentConfig;surfaceCapabilities;operatorPresence;responseExpiryMs;clock;signals;episodes;operatorEngagement;reloadInFlight=null;constructor(t={}){let n=Cv(t);this.markdownRootDir=t.markdownRootDir,this.profileStore=t.profileStore,this.userProfile=n.userProfile,this.judgmentConfig=n.judgmentConfig,this.surfaceCapabilities=n.surfaceCapabilities,this.operatorPresence=n.operatorPresence,this.responseExpiryMs=n.responseExpiryMs,this.clock=Cr(n.timeSource),this.signals=new fS({clock:this.clock}),this.episodes=new Xy({clock:this.clock}),this.operatorEngagement=new kb(n.timeSource),this.baseMemoryProfile=n.baseMemoryProfile,this.coordinator=Zo(n),this.attentionEvidence=new XS({signals:this.signals,episodes:this.episodes,clock:this.clock,getTaskView:r=>this.getTaskView(r),getAttentionView:()=>this.getAttentionView(),getOperatorPresence:()=>this.getOperatorPresence(),getSurfaceCapabilities:()=>this.getSurfaceCapabilities()}),this.frameLifecycle=new ab({taskViews:this.taskViews,planner:this.planner,episodes:this.episodes,clock:this.clock,responseExpiryMs:this.responseExpiryMs,getAttentionView:()=>this.getAttentionView(),recordSignal:r=>this.recordSignal(r),clearOperatorEngagement:(r,i)=>this.operatorEngagement.clear(r,i),notifyFrame:(r,i)=>this.listeners.emitFrame(r,i),notifyTaskView:(r,i)=>this.listeners.emitTaskView(r,i),notifyAttentionView:()=>this.listeners.emitAttentionView(this.getAttentionView()),emitResponse:r=>this.listeners.emitResponse(r)})}static async fromMarkdown(t){let{profileStore:n,markdownRootDir:r,userProfile:i,memoryProfile:o,judgmentConfig:a}=await ev(t);return new cp({userProfile:i,memoryProfile:o,judgmentConfig:a,profileStore:n,markdownRootDir:r})}async reloadMarkdown(){if(!this.profileStore||!this.markdownRootDir)return!1;if(this.reloadInFlight)return this.reloadInFlight;this.reloadInFlight=this.performMarkdownReload();try{return await this.reloadInFlight}finally{this.reloadInFlight=null}}publishSourceEvent(t){return Nv(t),this.publishPreparedEvent(Db(t))}publish(t,n={}){return Ov(t),this.publishPreparedEvent(Fb(t,n))}publishPreparedEvent(t){let{finalizedEvent:n,originalEvent:r,transitionKind:i}=t,o=vb(i,r,n),a=this.getFrame(n.taskId),c=this.attentionEvidence.assemble(n.taskId,a),u=c.taskSignalSummary,d=c.globalSignalSummary,m=c.attentionView,f=this.evaluation.evaluate(n);switch(f.kind){case"noop":return this.notifyTrace(this.traceRecorder.recordNoop(zo({timestamp:this.nowIso(),event:n,eventTransition:o,evidence:c,taskView:c.currentTaskView,attentionView:m}))),null;case"clear":{let g=this.frameLifecycle.applyClear(n.taskId),S=this.getAttentionView();return this.notifyTrace(this.traceRecorder.recordClear(zo({timestamp:this.nowIso(),event:n,eventTransition:o,evidence:c,taskView:this.getTaskView(n.taskId),attentionView:S}),n.taskId)),g}case"candidate":{let g=this.prepareCandidateForJudgment(f.candidate,u,d),S=this.explainCandidateDecision(n.taskId,g,c),b=this.applyCandidateDecision(n.taskId,S,c,m),O=this.getAttentionView();return this.notifyTrace(this.traceRecorder.recordCandidate(zo({timestamp:this.nowIso(),event:n,eventTransition:o,evidence:c,taskView:this.getTaskView(n.taskId),attentionView:O}),{original:f.candidate,adjusted:g,explanation:S,result:b})),b}}}prepareCandidateForJudgment(t,n,r){return this.episodes.assign(this.heuristics.apply(t,n,r))}explainCandidateDecision(t,n,r){let i=this.attentionEvidence.augmentContinuitySignalSummary(t,n,r);return this.coordinator.explain(r.currentFrame,n,i)}applyCandidateDecision(t,n,r,i){switch(n.decision.kind){case"auto_approve":return this.frameLifecycle.applyAutoResponse(n.decision.candidate,n.decision.response);case"clear":return this.frameLifecycle.applyClear(t);case"ambient":return this.frameLifecycle.materializePeripheralFrame(n.decision.candidate,"ambient",i);case"queue":return this.frameLifecycle.materializePeripheralFrame(n.decision.candidate,"queue",i);case"activate":return this.applyActivationDecision(n,r,i)}}applyActivationDecision(t,n,r){if(t.decision.kind!=="activate")return null;let i=t.decision.candidate;if(this.frameLifecycle.shouldRetireSupersededEpisodeFrames(i,r))return this.frameLifecycle.commitFrame(this.frameLifecycle.applyResponseExpiry(this.planner.plan(i,n.currentFrame)),this.frameLifecycle.findSupersededEpisodeFrames(i,r));let o=i.episodeId?this.frameLifecycle.findPeripheralEpisodeFrame(i.episodeId,r):null;return o&&this.frameLifecycle.shouldPromotePeripheralEpisodeFrame(t)?this.frameLifecycle.promotePeripheralEpisodeFrame(i,o.frame):o?this.frameLifecycle.materializePeripheralFrame(i,ya(i,t.policy,n.surfaceCapabilities),r):this.frameLifecycle.commitFrame(this.frameLifecycle.applyResponseExpiry(this.planner.plan(i,n.currentFrame)))}getFrame(t){return this.taskViews.get(t).now??null}subscribe(t,n){return this.listeners.subscribeFrame(t,n,this.getFrame(t))}subscribeTaskView(t,n){return this.listeners.subscribeTaskView(t,n,this.getTaskView(t))}subscribeAttentionView(t){return this.listeners.subscribeAttentionView(t,this.getAttentionView())}onResponse(t){return this.listeners.onResponse(t)}onSignal(t){return this.listeners.onSignal(t)}onTrace(t){return this.listeners.onTrace(t)}[ra](t){return this.listeners[ra](t)}submit(t){Lv(t),this.frameLifecycle.submit(t)}getTaskView(t){return this.taskViews.get(t)}getAttentionView(){return Ih(this.taskViews.values(),{globalAttentionState:this.getAttentionState(),operatorPresence:this.getOperatorPresence(),focusedInteractionId:this.readOperatorEngagementInteractionId()})}getSignals(t){return this.signals.list(t)}getSignalSummary(t){return this.signals.summarize(t)}getAttentionState(t){return bt(this.signals.summarize(t))}[Hv](){return{attentionState:this.getAttentionState(),operatorPresence:this.getOperatorPresence(),responseExpiryMs:this.responseExpiryMs??null,surfaceCapabilities:this.getSurfaceCapabilities(),listeners:this.listeners.getHealthSnapshot(),stores:{taskViews:this.taskViews.stats(),signals:this.signals.stats(),episodes:this.episodes.stats()}}}getSurfaceCapabilities(){return aa(this.surfaceCapabilities)}getOperatorPresence(){return this.operatorPresence}setOperatorPresence(t){this.operatorPresence=t}engage(t,n,r={}){if(!this.frameLifecycle.findFrameByInteractionId(t,n))return;let i=this.getAttentionView();this.operatorEngagement.engage(t,n,r,()=>{let a=this.getAttentionView();this.operatorEngagement.clear(t,n);let c=this.getAttentionView();dd(a,c)||this.notifyAttentionView()});let o=this.getAttentionView();dd(i,o)||this.notifyAttentionView()}setSurfaceCapabilities(t){this.surfaceCapabilities=aa(t)}snapshotMemoryProfile(t=this.nowIso()){return Bd(this.baseMemoryProfile,this.signals.list(),t)}async checkpointMemory(t=this.nowIso()){let n=await nv({profileStore:this.profileStore,memoryProfile:this.baseMemoryProfile,signals:this.signals.list(),now:t});return n?(this.baseMemoryProfile=n,this.coordinator=Zo({userProfile:this.userProfile,baseMemoryProfile:this.baseMemoryProfile,judgmentConfig:this.judgmentConfig}),n):null}markViewed(t,n,r={}){let i=this.frameLifecycle.findFrame(t,n);this.recordSignal(yr("viewed",t,n,this.nowIso(),i,r))}markTimedOut(t,n,r={}){let i=this.frameLifecycle.findFrame(t,n);this.recordSignal(yr("timed_out",t,n,this.nowIso(),i,r))}markContextExpanded(t,n,r={}){let i=this.frameLifecycle.findFrame(t,n);this.recordSignal(yr("context_expanded",t,n,this.nowIso(),i,r))}markContextSkipped(t,n,r={}){let i=this.frameLifecycle.findFrame(t,n);this.recordSignal(yr("context_skipped",t,n,this.nowIso(),i,r))}recordSignal(t){Mv(t),this.signals.record(t),this.listeners.emitSignal(t)}notifyFrame(t,n){this.listeners.emitFrame(t,n)}notifyTaskView(t,n){this.listeners.emitTaskView(t,n)}notifyAttentionView(){this.listeners.emitAttentionView(this.getAttentionView())}readOperatorEngagementInteractionId(){return this.operatorEngagement.readFocusedInteractionId((t,n)=>this.frameLifecycle.findFrameByInteractionId(t,n)!==null)}notifyTrace(t){this.listeners.emitTrace(t)}nowIso(){return this.clock.nowIso()}async performMarkdownReload(){let{userProfile:t,memoryProfile:n,judgmentConfig:r}=await tv({profileStore:this.profileStore,markdownRootDir:this.markdownRootDir,userProfile:this.userProfile,memoryProfile:this.baseMemoryProfile,judgmentConfig:this.judgmentConfig}),i=Zo({userProfile:t,baseMemoryProfile:n,judgmentConfig:r});return this.userProfile=t,this.baseMemoryProfile=n,this.judgmentConfig=r,this.coordinator=i,!0}};function Ia(e){return e?{id:e.id,taskId:e.taskId,interactionId:e.interactionId,source:e.source,version:e.version,mode:e.mode,tone:e.tone,consequence:e.consequence,title:e.title,summary:e.summary,context:e.context,responseSpec:e.responseSpec,provenance:e.provenance,timing:e.timing,metadata:e.metadata}:null}function oe(e){return{companyId:e,updatedAt:new Date().toISOString(),now:null,next:[],ambient:[],counts:{now:0,next:0,ambient:0,total:0}}}function Ye(){return[]}function G(e){return{companyId:e,updatedAt:new Date().toISOString(),frames:{}}}function he(e,t,n,r){let i=t,o=Ia("now"in t?t.now:i.active??null),a=("next"in t?t.next:i.queued??[]).map(u=>Ia(u)).filter(u=>u!==null),c=t.ambient.map(u=>Ia(u)).filter(u=>u!==null);return{companyId:e,updatedAt:r??new Date().toISOString(),now:o,next:a,ambient:c,counts:{now:o?1:0,next:a.length,ambient:c.length,total:(o?1:0)+a.length+c.length},...n?{lastEvent:n}:{}}}function Yt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function lp(e){let t=Yt(e);return t&&typeof t.taskId=="string"&&typeof t.interactionId=="string"?t:null}function up(e){return Array.isArray(e)?e.map(lp).filter(t=>t!==null):[]}function Jt(e,t){let n=Yt(t);if(!n||n.companyId!==e||typeof n.updatedAt!="string")return null;let r=Yt(n.counts),i=Yt(n.review),o=Yt(i?.unread),a=lp(n.now??n.active??null),c=up(n.next??n.queued??[]),u=up(n.ambient);return{companyId:e,updatedAt:n.updatedAt,now:a,next:c,ambient:u,counts:{now:typeof r?.now=="number"?r.now:typeof r?.active=="number"?r.active:a?1:0,next:typeof r?.next=="number"?r.next:typeof r?.queued=="number"?r.queued:c.length,ambient:typeof r?.ambient=="number"?r.ambient:u.length,total:typeof r?.total=="number"?r.total:(a?1:0)+c.length+u.length},...i?{review:{...typeof i.lastSeenAt=="string"?{lastSeenAt:i.lastSeenAt}:{},unread:{now:typeof o?.now=="number"?o.now:typeof o?.active=="number"?o.active:0,next:typeof o?.next=="number"?o.next:typeof o?.queued=="number"?o.queued:0,ambient:typeof o?.ambient=="number"?o.ambient:0,total:typeof o?.total=="number"?o.total:0}}}:{},...Yt(n.lastEvent)?{lastEvent:{eventType:String(n.lastEvent.eventType),...typeof n.lastEvent.entityId=="string"?{entityId:n.lastEvent.entityId}:{},...typeof n.lastEvent.entityType=="string"?{entityType:n.lastEvent.entityType}:{}}}:{}}}var Nr={topology:{supportsAmbient:!0},responses:{supportsSingleChoice:!0,supportsMultipleChoice:!1,supportsForm:!1,supportsTextResponse:!0}};var $v=100,Ea=100,dp=1800*1e3,Bv=15e3,Mr=class{sessions=new Map;getHealth(){return{trackedCompanies:this.sessions.size,maxCompanySessions:Ea,idleSessionTtlMs:dp,faultedCompanies:[...this.sessions.values()].filter(t=>t.persistence.state==="faulted").length,hostCacheEntries:[...this.sessions.values()].reduce((t,n)=>t+n.hostCache.size,0),cachedReconciliations:[...this.sessions.values()].filter(t=>t.reconciledCandidates!==null).length}}getCoreDiagnostics(t){let n=this.sessions.get(t);if(!n)return null;this.touchSession(n);let r=this.syncSnapshotFromCore(t,n),i=r.now?{taskId:r.now.taskId,interactionId:r.now.interactionId,signalSummary:n.core.getSignalSummary(r.now.taskId),attentionState:n.core.getAttentionState(r.now.taskId)}:null;return{eventCount:n.eventCount,persistence:{...n.persistence},surfaceCapabilities:n.core.getSurfaceCapabilities(),operatorPresence:n.core.getOperatorPresence(),globalSignalSummary:n.core.getSignalSummary(),globalAttentionState:n.core.getAttentionState(),memoryProfile:n.core.snapshotMemoryProfile(r.updatedAt),ledger:Kv(n.ledger),host:{cacheEntries:n.hostCache.size,hostDataRevision:n.hostDataRevision,approvalRecords:n.approvals.records?.length??0,approvalsDirty:n.approvals.dirty,approvalAdapterLastLoadedAt:n.approvals.lastLoadedAt,approvalAdapterLastError:n.approvals.lastError},currentNowTask:i}}hasSession(t){return this.sessions.has(t)}hydrate(t,n){let r=this.sessions.get(t);if(r)return this.touchSession(r),{snapshot:r.snapshot??he(t,r.core.getAttentionView()),review:r.review};let i=this.buildSession(t,n);return this.sessions.set(t,i),this.pruneSessions(),{snapshot:i.snapshot??he(t,i.core.getAttentionView()),review:i.review}}ingest(t,n,r){let i=this.ensureSession(t),o=i.core.publish(n);return i.eventCount+=1,i.snapshot=he(t,i.core.getAttentionView(),r),{frame:o,snapshot:i.snapshot}}submit(t,n,r){let i=this.ensureSession(t);return i.core.submit(n),i.snapshot=he(t,i.core.getAttentionView(),r),i.snapshot}getSnapshot(t){let n=this.sessions.get(t);return n?(this.touchSession(n),this.syncSnapshotFromCore(t,n)):null}getLedger(t){let n=this.sessions.get(t);return n&&this.touchSession(n),[...n?.ledger??[]]}getReview(t){let n=this.sessions.get(t);return n?(this.touchSession(n),n.review):null}setReview(t,n){let r=this.ensureSession(t);return r.review=n,this.invalidateReconciled(t),r.review}getTraces(t){let n=this.sessions.get(t);return n&&this.touchSession(n),[...n?.traces??[]]}getCachedReconciledCandidates(t,n){let r=this.sessions.get(t);r&&this.touchSession(r);let i=r?.reconciledCandidates;return!i||i.key!==n?null:i.expiresAt<=Date.now()?(r&&(r.reconciledCandidates=null,r.hostDataRevision+=1),null):[...i.candidates]}setCachedReconciledCandidates(t,n,r){let i=this.ensureSession(t);return i.reconciledCandidates={key:n,candidates:[...r],expiresAt:Date.now()+Bv},[...r]}getReconciledRevision(t){return this.sessions.get(t)?.hostDataRevision??0}invalidateReconciled(t){let n=this.sessions.get(t);n&&(n.reconciledCandidates=null,n.hostDataRevision+=1)}getCachedHostValue(t,n){let r=this.sessions.get(t);if(!r)return null;this.touchSession(r);let i=r.hostCache.get(n);return i?i.expiresAt<=Date.now()?(r.hostCache.delete(n),null):i.value:null}setCachedHostValue(t,n,r,i){return this.ensureSession(t).hostCache.set(n,{value:r,expiresAt:Date.now()+Math.max(1,i)}),r}invalidateHostCache(t,n={}){let r=this.sessions.get(t);if(!r)return;let{keys:i=[],prefixes:o=[],bumpRevision:a=!0}=n;for(let c of i)r.hostCache.delete(c);if(o.length>0)for(let c of[...r.hostCache.keys()])o.some(u=>c.startsWith(u))&&r.hostCache.delete(c);a&&this.invalidateReconciled(t)}getApprovals(t){return this.sessions.get(t)?.approvals.records??null}setApprovals(t,n){let r=this.ensureSession(t);return r.approvals={records:[...n],dirty:!1,lastLoadedAt:new Date().toISOString(),lastError:void 0},[...n]}approvalsDirty(t){let n=this.sessions.get(t);return n&&this.touchSession(n),n?.approvals.dirty??!0}invalidateApprovals(t){let n=this.sessions.get(t);n&&(n.approvals={records:n.approvals.records,dirty:!0,lastLoadedAt:n.approvals.lastLoadedAt,lastError:n.approvals.lastError})}markApprovalAdapterFailure(t,n){let r=this.ensureSession(t);r.approvals={records:r.approvals.records,dirty:!0,lastLoadedAt:r.approvals.lastLoadedAt,lastError:n}}restore(t,n){let r=this.buildSession(t,n,this.sessions.get(t));return this.sessions.set(t,r),{snapshot:r.snapshot??he(t,r.core.getAttentionView()),review:r.review}}markPersistenceHealthy(t){let n=this.sessions.get(t);n&&(n.persistence={state:"healthy",updatedAt:new Date().toISOString()})}markPersistenceFault(t,n){let r=this.ensureSession(t);r.persistence={state:"faulted",updatedAt:new Date().toISOString(),lastError:n}}appendLedgerEntry(t,n){let r=this.ensureSession(t);return r.ledger=[...r.ledger,n],this.getLedger(t)}applyEvent(t,n){let r=this.ensureSession(t),i=r.ledger,o=r.snapshot,a=r.eventCount;r.ledger=[...r.ledger,n];try{let c=n.sourceEvent?r.core.publishSourceEvent(n.sourceEvent):r.core.publish(n.apertureEvent);return r.eventCount+=1,r.snapshot=he(t,r.core.getAttentionView(),n.source,n.occurredAt),r.reconciledCandidates=null,{frame:c,ledger:this.getLedger(t),snapshot:r.snapshot}}catch(c){throw r.ledger=i,r.snapshot=o,r.eventCount=a,c}}applyResponse(t,n){let r=this.ensureSession(t),i=r.ledger,o=r.snapshot,a=r.eventCount;r.ledger=[...r.ledger,n];try{return r.core.submit(n.apertureResponse),r.snapshot=he(t,r.core.getAttentionView(),n.source,n.occurredAt),r.reconciledCandidates=null,{ledger:this.getLedger(t),snapshot:r.snapshot}}catch(c){throw r.ledger=i,r.snapshot=o,r.eventCount=a,c}}applyOverlayResponse(t,n){let r=this.ensureSession(t);return r.ledger=[...r.ledger,n],r.reconciledCandidates=null,{ledger:this.getLedger(t),snapshot:this.syncSnapshotFromCore(t,r)}}applySignal(t,n){let r=this.ensureSession(t),i=this.syncSnapshotFromCore(t,r);r.ledger=[...r.ledger,n],r.core.recordSignal(n.apertureSignal);let o=this.syncSnapshotFromCore(t,r);return{ledger:this.getLedger(t),snapshot:o,changed:!Lr(i,o)}}replaceLedger(t,n){let r=this.ensureSession(t);return r.ledger=[...n],r.reconciledCandidates=null,this.getLedger(t)}rebuildFromLedger(t,n){let r=this.sessions.get(t)?.review??G(t),i=this.buildSession(t,{ledger:n,review:r},this.sessions.get(t));return this.sessions.set(t,i),i.snapshot??he(t,i.core.getAttentionView())}getCompanyCount(){return this.sessions.size}engage(t,n,r,i={}){let o=this.ensureSession(t),a=this.syncSnapshotFromCore(t,o);o.core.engage(n,r,i);let c=this.syncSnapshotFromCore(t,o);return{snapshot:c,changed:!Lr(a,c)}}markViewed(t,n,r,i={}){let o=this.ensureSession(t),a=this.syncSnapshotFromCore(t,o);o.core.markViewed(n,r,i);let c=this.syncSnapshotFromCore(t,o);return{snapshot:c,changed:!Lr(a,c)}}markContextExpanded(t,n,r,i={}){let o=this.ensureSession(t),a=this.syncSnapshotFromCore(t,o);o.core.markContextExpanded(n,r,i);let c=this.syncSnapshotFromCore(t,o);return{snapshot:c,changed:!Lr(a,c)}}setOperatorPresence(t,n){let r=this.ensureSession(t);return r.core.setOperatorPresence(n),this.touchSession(r),r.core.getOperatorPresence()}ensureSession(t){let n=this.sessions.get(t);return n?(this.touchSession(n),n):(n=this.createSession(t),this.sessions.set(t,n),this.pruneSessions(),n)}buildSession(t,n,r){let i=this.createSession(t);if(i.ledger=[...n.ledger],i.review=n.review??G(t),i.approvals={records:r?.approvals.records?[...r.approvals.records]:null,dirty:r?.approvals.dirty??!0,lastLoadedAt:r?.approvals.lastLoadedAt,lastError:r?.approvals.lastError},i.hostCache=r?new Map(r.hostCache):new Map,i.hostDataRevision=r?.hostDataRevision??0,i.persistence=r?.persistence??wa(),i.traces=r?[...r.traces]:[],n.ledger.length>0){let o,a;for(let c of n.ledger)o=c.source,a=c.occurredAt,c.kind==="event"?(c.sourceEvent?i.core.publishSourceEvent(c.sourceEvent):i.core.publish(c.apertureEvent),i.eventCount+=1):c.kind==="response"?i.core.submit(c.apertureResponse):c.kind==="signal"&&i.core.recordSignal(c.apertureSignal);i.snapshot=he(t,i.core.getAttentionView(),o,a)}else i.snapshot=n.snapshot??he(t,i.core.getAttentionView());return i.persistence=r?.persistence?.state==="faulted"?r.persistence:wa(),i}createSession(t){let n=new ap({surfaceCapabilities:Nr}),r=Date.now(),i={core:n,snapshot:null,ledger:Ye(),review:G(t),eventCount:0,traces:[],reconciledCandidates:null,approvals:{records:null,dirty:!0},hostCache:new Map,hostDataRevision:0,persistence:wa(),lastTouchedAt:r};return n.onTrace(o=>{i.traces=[...i.traces.slice(-($v-1)),o]}),i}touchSession(t){t.lastTouchedAt=Date.now()}pruneSessions(){let t=Date.now();for(let[r,i]of this.sessions.entries())t-i.lastTouchedAt>dp&&this.sessions.delete(r);if(this.sessions.size<=Ea)return;let n=[...this.sessions.entries()].sort((r,i)=>r[1].lastTouchedAt-i[1].lastTouchedAt);for(;this.sessions.size>Ea&&n.length>0;){let[r]=n.shift();this.sessions.delete(r)}}syncSnapshotFromCore(t,n){let r=n.core.getAttentionView(),i=n.snapshot;if(i&&Vv(i,r))return i;let o=he(t,r,i?.lastEvent);return n.snapshot=o,o}};function Lr(e,t){return!e||!t?e===t:e.now?.interactionId===t.now?.interactionId&&Dr(e.next,t.next)&&Dr(e.ambient,t.ambient)}function Vv(e,t){return e.now?.interactionId===t.now?.interactionId&&Dr(e.next,t.next)&&Dr(e.ambient,t.ambient)}function Dr(e,t){return e.length===t.length&&e.every((n,r)=>n.interactionId===t[r]?.interactionId)}function Kv(e){return{entries:e.length,eventEntries:e.filter(t=>t.kind==="event").length,responseEntries:e.filter(t=>t.kind==="response").length,overlayResponseEntries:e.filter(t=>t.kind==="overlay-response").length,signalEntries:e.filter(t=>t.kind==="signal").length,replayStrategy:"full-ledger",compactionRecommended:e.length>2e3}}function wa(){return{state:"healthy",updatedAt:new Date().toISOString()}}function Je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Ce(e){return typeof e=="string"&&e.trim().length>0?e:void 0}function _a(e){return e===null?null:Ce(e)}function Fr(e){if(!Array.isArray(e))return;let t=e.filter(n=>typeof n=="string"&&n.trim().length>0);return t.length>0?t:void 0}function Wv(e){if(!Array.isArray(e))return;let t=e.filter(n=>{if(typeof n!="object"||n===null)return!1;let r=n;return r.kind==="same_issue"||r.kind==="resolves"||r.kind==="supersedes"||r.kind==="repeats"||r.kind==="escalates"});return t.length>0?t:void 0}function _n(e){let t=Je(e.metadata),n=Je(t?.attention),r=Je(t?.semantic),i=Je(t?.episode),o=Je(t?.issueIntelligence),a=Je(t?.decision);return{entityType:Ce(t?.entityType),issueStatus:Ce(t?.issueStatus),issuePriority:Ce(t?.issuePriority),approvalStatus:Ce(t?.approvalStatus),approvalType:Ce(t?.approvalType),agentStatus:Ce(t?.agentStatus),pauseReason:_a(t?.pauseReason),liveReconciled:typeof t?.liveReconciled=="boolean"?t.liveReconciled:void 0,activityPath:Ce(t?.activityPath),attention:n?{rationale:Fr(n.rationale)}:void 0,semantic:r?{confidence:r.confidence==="low"||r.confidence==="medium"||r.confidence==="high"?r.confidence:void 0,relationHints:Wv(r.relationHints)}:void 0,episode:i?{size:typeof i.size=="number"?i.size:void 0,state:Ce(i.state)}:void 0,issueIntelligence:o?{matchedRuleIds:Fr(o.matchedRuleIds),owner:_a(o.owner),ownerKind:o.ownerKind==="agent"||o.ownerKind==="human"?o.ownerKind:o.ownerKind===null?null:void 0,blockingTarget:_a(o.blockingTarget)}:void 0,decision:a?{owner:a.owner==="aperture_core"||a.owner==="paperclip_reconciliation"||a.owner==="approval_overlay"||a.owner==="display_merge"?a.owner:void 0,lane:a.lane==="now"||a.lane==="next"||a.lane==="ambient"?a.lane:void 0,sourcePolicy:Ce(a.sourcePolicy),rationale:Fr(a.rationale),promotedFromLane:a.promotedFromLane==="next"||a.promotedFromLane==="ambient"?a.promotedFromLane:void 0}:void 0}}function xt(e,t){let n=Je(e.metadata)??{},r=Je(n.decision)??{},i=[...Fr(r.rationale)??[],...t.rationale??[]].filter((o,a,c)=>c.indexOf(o)===a);return{...e,metadata:{...n,decision:{...r,...t,...i.length>0?{rationale:i}:{}}}}}function Aa(e){return{taskId:e.taskId,interactionId:e.interactionId,response:e.action==="dismiss"?{kind:"dismissed"}:e.action==="approve"?{kind:"approved"}:e.action==="reject"?{kind:"rejected"}:e.action==="request-revision"?{kind:"rejected",reason:"revision requested"}:{kind:"acknowledged"}}}function Ra(e,t){let n=e.trim();if(!n)throw new Error(`${t} is required.`);return n}function pp(e){try{let t=decodeURIComponent(e);return t.trim().length>0?t:null}catch{return null}}function je(e,t){let n=Ra(e,"task kind"),r=Ra(t,"task id");return`${encodeURIComponent(n)}:${encodeURIComponent(r)}`}function An(e){if(typeof e!="string")return null;let t=e.indexOf(":");if(t<=0||t>=e.length-1)return null;let n=pp(e.slice(0,t)),r=pp(e.slice(t+1));return!n||!r?null:{kind:n,id:r}}function mp(e){return An(e)?.kind??null}function fp(e,t){return An(e)?.kind===t}function ye(e,t){let n=Ra(t,"interaction step");return`${e}:${encodeURIComponent(n)}`}function zv(e){return e instanceof Error?e.message.toLowerCase().includes("private/reserved ranges"):!1}function gp(e){let t=typeof e.paperclipApiBase=="string"?e.paperclipApiBase.trim():"";if(t.length===0)return null;let n=new URL(t);if(n.protocol!=="http:"&&n.protocol!=="https:")throw new Error("paperclipApiBase must be an http(s) URL.");return n.toString()}async function hp(e,t,n,r={}){let{expectJson:i=!0,retries:o=0,headers:a,...c}=r,u=gp(t);if(!u)throw new Error("Paperclip approval API base is not configured.");let d=new URL(n,u).toString(),m=null;for(let f=0;f<=o;f+=1)try{let g=await e.http.fetch(d,{...c,headers:{Accept:"application/json","X-Requested-With":"XMLHttpRequest",...a??{}}});if(!g.ok){let S=await g.text().catch(()=>"");throw new Error(`Request failed (${g.status})${S?`: ${S.trim()}`:""}`)}return i?await g.json():void 0}catch(g){if(m=g instanceof Error?g:new Error(String(g)),f>=o)break;await new Promise(S=>setTimeout(S,250*(f+1)))}throw m??new Error("Request failed.")}async function yp(e,t,n){if(!gp(n))return[];try{return await hp(e,n,`/api/companies/${t}/approvals?status=pending`,{method:"GET",retries:2})}catch(r){if(zv(r))return[];throw r}}async function Sp(e,t,n,r){let i=n==="request-revision"?`/api/approvals/${t}/request-revision`:`/api/approvals/${t}/${n}`;await hp(e,r,i,{method:"POST",expectJson:!1,headers:{"Content-Type":"application/json"},body:JSON.stringify({})})}var Gv=1,Zv=2,vp=3;function Ur(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?e:null}function Yv(e){return!e||typeof e!="object"?!1:typeof e.eventType=="string"}function Jv(e){if(!e||typeof e!="object")return!1;let t=e;return t.kind!=="event"&&t.kind!=="response"&&t.kind!=="overlay-response"&&t.kind!=="signal"||typeof t.id!="string"||typeof t.occurredAt!="string"||!Yv(t.source)?!1:t.kind==="event"?!!t.apertureEvent&&typeof t.apertureEvent=="object":t.kind==="response"?!!t.apertureResponse&&typeof t.apertureResponse=="object":t.kind==="overlay-response"?!!t.apertureResponse&&typeof t.apertureResponse=="object"&&!!t.overlay&&typeof t.overlay=="object":!!t.apertureSignal&&typeof t.apertureSignal=="object"}function Xt(e){return Array.isArray(e)&&e.every(Jv)}function Rn(e,t){if(!e||typeof e!="object")return!1;let n=e;return n.companyId!==t||typeof n.updatedAt!="string"||!n.frames||typeof n.frames!="object"?!1:Object.values(n.frames).every(r=>{if(!r||typeof r!="object")return!1;let i=r;return(i.lastSeenAt===void 0||typeof i.lastSeenAt=="string")&&(i.suppressedAt===void 0||typeof i.suppressedAt=="string")})}function kp(e,t){let n=t.snapshot??oe(e),r=t.review??G(e);return{schemaVersion:vp,payload:{companyId:e,ledger:[...t.ledger],snapshot:n,review:r,meta:jr(t.ledger)}}}function Ip(e,t){let n=Ur(t);if(!n)return null;let r=n.schemaVersion;return r===vp||r===Zv?bp(e,n):r===Gv?Xv(e,n):r===void 0?Qv(e,n):null}function jr(e,t=new Date().toISOString()){let n=e.length;return{persistedAt:t,ledgerEntries:n,eventEntries:e.filter(r=>r.kind==="event").length,responseEntries:e.filter(r=>r.kind==="response").length,overlayResponseEntries:e.filter(r=>r.kind==="overlay-response").length,signalEntries:e.filter(r=>r.kind==="signal").length,replayStrategy:"full-ledger",compactionRecommended:n>2e3}}function bp(e,t){let n=Ur(t.payload);if(!n||n.companyId!==e)return null;let r=Xt(n.ledger)?n.ledger:Ye(),i=Jt(e,n.snapshot),o=Rn(n.review,e)?n.review:G(e);return i?{companyId:e,ledger:r,snapshot:i,review:o,meta:ek(n.meta,r)}:null}function Xv(e,t){let n=Ur(t.payload);if(!n||n.companyId!==e)return null;let r=Xt(n.ledger)?n.ledger:Ye(),i=Jt(e,n.snapshot),o=Rn(n.review,e)?n.review:G(e);return i?{companyId:e,ledger:r,snapshot:i,review:o,meta:jr(r)}:null}function Qv(e,t){if(t.companyId!==e)return null;let n=Xt(t.ledger)?t.ledger:Ye(),r=Jt(e,t.snapshot),i=Rn(t.review,e)?t.review:G(e);return r?{companyId:e,ledger:n,snapshot:r,review:i,meta:jr(n)}:null}function ek(e,t){let n=Ur(e);return n&&typeof n.persistedAt=="string"&&typeof n.ledgerEntries=="number"&&typeof n.eventEntries=="number"&&typeof n.responseEntries=="number"?{persistedAt:n.persistedAt,ledgerEntries:n.ledgerEntries,eventEntries:n.eventEntries,responseEntries:n.responseEntries,overlayResponseEntries:typeof n.overlayResponseEntries=="number"?n.overlayResponseEntries:t.filter(r=>r.kind==="overlay-response").length,signalEntries:typeof n.signalEntries=="number"?n.signalEntries:t.filter(r=>r.kind==="signal").length,replayStrategy:"full-ledger",compactionRecommended:typeof n.compactionRecommended=="boolean"?n.compactionRecommended:t.length>2e3}:jr(t)}var wp="attention-state",_p="attention-snapshot",Ap="attention-ledger",Rp="attention-review",Ep="attention-updates",qr=new Map,Ta=[10,30];function Y(e,t){let n=e[t];if(typeof n=="string"&&n.trim().length>0)return n;throw new Error(`${t} is required`)}function K(e){return Y(e,"companyId")}async function Tn(e,t){let n=await e.state.get({scopeKind:"company",scopeId:t,stateKey:wp});return Ip(t,n)}async function tk(e,t,n){await e.state.set({scopeKind:"company",scopeId:t,stateKey:wp},kp(t,n))}function Pe(e,t){e.streams.open(Ep,t.companyId),e.streams.emit(Ep,t)}async function Tp(e,t){for(let n=0;n<=Ta.length;n+=1)try{await e();return}catch(r){let i=n===Ta.length;if(t(r,n+1,i),i)return;await new Promise(o=>{setTimeout(o,Ta[n])})}}async function Ct(e,t,n){await Tp(async()=>{await e.telemetry.track(t,{surface:"focus",...n??{}})},(r,i,o)=>{e.logger.warn(o?"Failed to emit Focus telemetry after retries":"Retrying Focus telemetry after failure",{eventName:t,attempt:i,error:r instanceof Error?r.message:String(r)})})}async function xa(e,t){await Tp(async()=>{await e.activity.log({companyId:t.companyId,message:t.message,...t.entityType?{entityType:t.entityType}:{},...t.entityId?{entityId:t.entityId}:{},...t.metadata?{metadata:t.metadata}:{}})},(n,r,i)=>{e.logger.warn(i?"Failed to write Focus activity log entry after retries":"Retrying Focus activity log entry after failure",{message:t.message,entityType:t.entityType,entityId:t.entityId,attempt:r,error:n instanceof Error?n.message:String(n)})})}async function qe(e,t,n,r){let i=qr.get(n)??Promise.resolve(),o,a=new Promise(S=>{o=S}),c=i.catch(()=>{}).then(()=>a);qr.set(n,c),await i.catch(()=>{});let u=await Tn(e,n),d=t.getLedger(n),m=t.getSnapshot(n)??oe(n),f=t.getReview(n)??u?.review??G(n),g=u??{companyId:n,ledger:d,snapshot:m,review:f};try{let S=await r();try{return S.review&&t.setReview(n,S.review),await tk(e,n,{ledger:S.ledger,snapshot:S.snapshot,review:S.review??t.getReview(n)??f}),t.markPersistenceHealthy(n),S}catch(b){throw t.restore(n,g),t.markPersistenceFault(n,b instanceof Error?b.message:String(b)),b}}catch(S){throw t.restore(n,g),S}finally{o(),qr.get(n)===c&&qr.delete(n)}}async function Hr(e,t,n){let r=t.getReview(n);if(r)return r;let i=await Tn(e,n);return i?.review?i.review:G(n)}function $r(e,t,n,r=!1){let i=new Date().toISOString(),o={...e,updatedAt:i,lastSeenAt:i,frames:{...e.frames}};for(let a of n){let c=o.frames[a]??{};o.frames[a]={...c,lastSeenAt:i,...r?{suppressedAt:i}:{}}}return o}function nk(e,t){return e?[...e.now?[e.now]:[],...e.next,...e.ambient].some(r=>r.taskId===t):!1}function xp(e){return mp(e)??"unknown"}function rk(e,t){return e?e.now?.taskId===t?"now":e.next.some(n=>n.taskId===t)?"next":e.ambient.some(n=>n.taskId===t)?"ambient":"ui_only":"ui_only"}function Ca(e){let t=e.occurredAt??new Date().toISOString();return{kind:"signal",id:`${e.taskId}:${e.signal.kind}:${t}`,occurredAt:t,source:{eventType:e.sourceEventType,entityId:e.sourceEntityId??e.taskId,entityType:xp(e.taskId)},apertureSignal:{...e.signal,taskId:e.taskId,interactionId:e.interactionId,timestamp:t}}}function xn(e,t){let n=rk(e,t),r=xp(t),i=n==="ui_only"?null:n==="now"?e?.now??null:n==="next"?e?.next.find(a=>a.taskId===t)??null:e?.ambient.find(a=>a.taskId===t)??null,o={entityType:r,lane:n};if(i?.mode&&(o.mode=i.mode),i?.source?.kind&&(o.sourceKind=i.source.kind),i){let a=_n(i);typeof a.liveReconciled=="boolean"&&(o.liveReconciled=a.liveReconciled)}return o}function sk(e){let t=An(e);return t?.kind==="approval"?t.id:null}function Cp(e,t){e.actions.register("set-focus-presence",async n=>{let r=K(n),o=Y(n,"presence")==="absent"?"absent":"present";return{ok:!0,operatorPresence:t.setOperatorPresence(r,o)}}),e.actions.register("mark-attention-viewed",async n=>{let r=K(n),i=Y(n,"taskId"),o=Y(n,"interactionId"),a=typeof n.surface=="string"&&n.surface.trim().length>0?n.surface.trim():"focus",c=t.getSnapshot(r),u=Ca({taskId:i,interactionId:o,sourceEventType:"plugin.local.viewed",signal:{kind:"viewed",surface:a}}),{snapshot:d,changed:m}=await qe(e,t,r,()=>{let{ledger:f,snapshot:g,changed:S}=t.applySignal(r,u);return{ledger:f,snapshot:g,changed:S}});return m&&Pe(e,{companyId:r,reason:"action",eventType:"plugin.local.viewed",updatedAt:d.updatedAt,counts:d.counts}),await Ct(e,"frame_viewed",{...xn(c,i),surface:a}),{ok:!0,snapshot:d,changed:m}}),e.actions.register("engage-focus",async n=>{let r=K(n),i=Y(n,"taskId"),o=Y(n,"interactionId"),a=typeof n.durationMs=="number"&&Number.isFinite(n.durationMs)?Math.max(25,Math.floor(n.durationMs)):void 0,c=typeof n.reason=="string"&&n.reason.trim().length>0?n.reason.trim():"operator_interaction",u=t.getSnapshot(r),d=new Date().toISOString(),m=[Ca({taskId:i,interactionId:o,occurredAt:d,sourceEventType:"plugin.local.engage.viewed",signal:{kind:"viewed",surface:"focus"}}),...c==="show_context"||c==="comment_compose"?[Ca({taskId:i,interactionId:o,occurredAt:d,sourceEventType:"plugin.local.engage.context_expanded",signal:{kind:"context_expanded",surface:"focus",section:c==="show_context"?"now_context":"comment_compose"}})]:[]],{snapshot:f,changed:g}=await qe(e,t,r,()=>{let S=t.engage(r,i,o,{durationMs:a}),b=t.getLedger(r),O=S.snapshot,U=!1;for(let j of m){let Z=t.applySignal(r,j);b=Z.ledger,O=Z.snapshot,U||=Z.changed}return{ledger:b,snapshot:O,changed:S.changed||U}});return g&&Pe(e,{companyId:r,reason:"action",eventType:"plugin.local.engage",updatedAt:f.updatedAt,counts:f.counts}),await Ct(e,"focus_engaged",{...xn(u,i),actionKind:"engage",reason:c,...a?{durationMs:a}:{}}),{ok:!0,snapshot:f,changed:g}}),e.actions.register("acknowledge-frame",async n=>{let r=K(n),i=Y(n,"taskId"),o=Y(n,"interactionId"),a=Aa({taskId:i,interactionId:o,action:"acknowledge"}),c={kind:"response",id:`${i}:acknowledge:${Date.now()}`,occurredAt:new Date().toISOString(),source:{eventType:"plugin.local.acknowledge",entityId:i},apertureResponse:a},u=t.getSnapshot(r),d=await Hr(e,t,r),m=$r(d,r,[i],!0),{snapshot:f}=await qe(e,t,r,()=>{let{ledger:g,snapshot:S}=t.applyResponse(r,c);return{ledger:g,snapshot:S,review:m}});return Pe(e,{companyId:r,reason:"action",eventType:"plugin.local.acknowledge",updatedAt:f.updatedAt,counts:f.counts}),await Ct(e,"frame_acknowledged",{...xn(u,i)}),{ok:!0,snapshot:f}}),e.actions.register("comment-on-issue",async n=>{let r=K(n),i=Y(n,"taskId"),o=Y(n,"issueId"),a=Y(n,"body").trim(),c=An(i);if(!c||c.kind!=="issue")throw new Error("Comments can only be posted on issue-backed frames.");if(c.id!==o)throw new Error("Issue comment target does not match the selected frame.");let u=await e.issues.createComment(o,a,r),d=t.getSnapshot(r),m=await Hr(e,t,r),f=$r(m,r,[i],!1),{snapshot:g}=await qe(e,t,r,()=>(t.invalidateHostCache(r,{keys:[`issue:${o}:detail`,`issue:${o}:comments`],prefixes:["issues:blocked","issues:in_review"]}),t.setReview(r,f),{ledger:t.getLedger(r),snapshot:t.getSnapshot(r)??oe(r),review:f}));return Pe(e,{companyId:r,reason:"action",eventType:"plugin.local.comment",updatedAt:g.updatedAt,counts:g.counts}),await Ct(e,"issue_comment_submitted",{...xn(d,i),actionKind:"comment"}),await xa(e,{companyId:r,message:"Posted an issue comment from Focus.",entityType:"issue",entityId:o,metadata:{source:"focus",taskId:i}}),{ok:!0,comment:u,review:f}}),e.actions.register("record-approval-response",async n=>{let r=K(n),i=Y(n,"taskId"),o=Y(n,"interactionId"),a=Y(n,"decision");if(!fp(i,"approval"))throw new Error("Approval responses can only be recorded for approval-backed frames.");if(!["approve","reject","request-revision"].includes(a))throw new Error("decision must be approve, reject, or request-revision.");let c=Aa({taskId:i,interactionId:o,action:a}),u={kind:"response",id:`${i}:${a}:${Date.now()}`,occurredAt:new Date().toISOString(),source:{eventType:`plugin.local.approval.${a}`,entityId:i},apertureResponse:c},d=sk(i);if(!d)throw new Error("Approval responses require a durable approval id.");let m=await e.config.get();await Sp(e,d,a,m),t.invalidateApprovals(r);let f=await Hr(e,t,r),g=$r(f,r,[i],!0),S=t.getSnapshot(r),b=nk(S,i),{snapshot:O}=await qe(e,t,r,()=>{if(b){let{ledger:q,snapshot:ae}=t.applyResponse(r,u);return{ledger:q,snapshot:ae,review:g}}let U={kind:"overlay-response",id:u.id,occurredAt:u.occurredAt,source:u.source,apertureResponse:u.apertureResponse,overlay:{kind:"approval_overlay",reason:"Approval frame came from the Paperclip approvals display adapter, not the replayed Core snapshot."}},{ledger:j,snapshot:Z}=t.applyOverlayResponse(r,U);return{ledger:j,snapshot:Z,review:g}});return Pe(e,{companyId:r,reason:"action",eventType:`plugin.local.approval.${a}`,updatedAt:O.updatedAt,counts:O.counts}),await Ct(e,"approval_response_recorded",{...xn(S,i),decision:a==="request-revision"?"request_revision":a}),await xa(e,{companyId:r,message:a==="approve"?"Approved a Focus approval.":a==="reject"?"Rejected a Focus approval.":"Requested revision on a Focus approval.",entityType:"approval",entityId:d,metadata:{source:"focus",decision:a,taskId:i}}),{ok:!0,snapshot:O,review:g}}),e.actions.register("mark-attention-seen",async n=>{let r=K(n),i=Array.isArray(n.taskIds)?n.taskIds.filter(u=>typeof u=="string"&&u.trim().length>0):[];if(i.length===0)throw new Error("taskIds must include at least one frame task id.");let o=await Hr(e,t,r),a=$r(o,r,i),{snapshot:c}=await qe(e,t,r,()=>(t.setReview(r,a),{ledger:t.getLedger(r),snapshot:t.getSnapshot(r)??oe(r),review:a}));return Pe(e,{companyId:r,reason:"action",eventType:"plugin.local.seen",updatedAt:c.updatedAt,counts:c.counts}),await Ct(e,"attention_seen_marked",{frameCount:i.length}),{ok:!0,review:a,snapshot:c}})}var J={approvalType:"approval-type",requestedAmount:"requested-amount",budgetReason:"budget-reason",decisionContext:"decision-context",linkedIssues:"linked-issues",needsActionFrom:"needs-action-from",blockedBy:"blocked-by",blocksTarget:"blocks-target",recommendedMove:"recommended-move",issueStatus:"issue-status",issuePriority:"issue-priority",latestComment:"latest-comment",agentStatus:"agent-status",pauseReason:"pause-reason",agentTitle:"agent-title"};function X(e,t,n){return{id:e,label:t,value:n}}function Cn(e){return e.split(/[_\-.]/g).filter(Boolean).map(t=>t.slice(0,1).toUpperCase()+t.slice(1)).join(" ")}function Br(e){return X(J.approvalType,"Type",e)}function Vr(e){return X(J.requestedAmount,"Requested amount",e)}function Kr(e){return X(J.budgetReason,"Reason",e)}function Wr(e){return X(J.decisionContext,"Decision context",e)}function Pp(e){return X(J.linkedIssues,"Linked issues",e)}function Op(e){return X(J.needsActionFrom,"Needs action from",e)}function Np(e){return X(J.blockedBy,"Blocked by",e)}function Lp(e){return X(J.blocksTarget,"Blocks",e)}function Mp(e){return X(J.recommendedMove,"Recommended move",e)}function Dp(e){return X(J.issueStatus,"Status",e)}function Fp(e){return X(J.issuePriority,"Priority",e)}function Up(e){return X(J.latestComment,"Latest comment",e)}function jp(e){return X(J.agentStatus,"Status",e)}function qp(e){return X(J.pauseReason,"Pause reason",e)}function Hp(e){return X(J.agentTitle,"Role",e)}var ik=300*1e3;function Pn(e,t){return e.timing.updatedAt||t}function $p(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function ok(e,t,n){let r=$p(Pn(e,t)),i=$p(n);return r===null||i===null?!1:i-r>ik}function Bp(){return{now:0,next:0,ambient:0,total:0}}function Vp(e,t){return e?.frames[t]}function ak(e,t,n){let r=Vp(n,e.taskId)?.suppressedAt;return r?Pn(e,t).localeCompare(r)<=0:!1}function Pa(e,t,n){let r=Pn(e,t),i=Vp(n,e.taskId)?.lastSeenAt??n?.lastSeenAt;return i?r.localeCompare(i)>0:!0}function ck(e,t){let n=Bp();return e.now&&Pa(e.now,e.updatedAt,t)&&(n.now+=1),n.next=e.next.filter(r=>Pa(r,e.updatedAt,t)).length,n.ambient=e.ambient.filter(r=>Pa(r,e.updatedAt,t)).length,n.total=n.now+n.next+n.ambient,n}function uk(e,t){return{...e,review:{lastSeenAt:t?.lastSeenAt,unread:ck(e,t)}}}function Qt(e,t,n,r,i=new Date().toISOString()){let o=e??{companyId:t,updatedAt:new Date().toISOString(),now:null,next:[],ambient:[],counts:Bp()},a=new Set(n.map(q=>q.frame.taskId)),u=[...[...o.now?[{frame:o.now,lane:"now"}]:[],...o.next.map(q=>({frame:q,lane:"next"})),...o.ambient.map(q=>({frame:q,lane:"ambient"}))].filter(q=>!a.has(q.frame.taskId)),...n].filter(q=>!ak(q.frame,o.updatedAt,r)),d=q=>u.filter(ae=>ae.lane===q).sort((ae,E)=>Pn(E.frame,o.updatedAt).localeCompare(Pn(ae.frame,o.updatedAt))),m=d("now"),f=d("next"),g=d("ambient").filter(q=>!ok(q.frame,o.updatedAt,i)),S=m.shift()??null,b=S?null:f.shift()??null,O=S??b,U=[...m,...f].map(q=>q.frame),j=g.map(q=>q.frame),Z=b?xt(b.frame,{owner:"display_merge",lane:"now",sourcePolicy:"mergeStoredFrames.promoteNextWhenNowEmpty",promotedFromLane:"next",rationale:["No explicit now candidate was available, so the highest next candidate became the active focus."]}):O?.frame??null;return uk({...o,now:Z,next:U,ambient:j,counts:{now:Z?1:0,next:U.length,ambient:j.length,total:(Z?1:0)+U.length+j.length}},r)}function zr(e){return e?"Budget controls are blocking work until a board decision lands.":"A board decision is blocking work in Paperclip."}function On(e){return e?"Budget controls are blocking work until a board decision lands.":"Paperclip is waiting on a human approval before work can continue."}function Kp(e){return e.status==="error"?{whyNow:"This agent is in an error state and may have a failed or stalled run.",factors:["run failed","operator review"]}:e.status==="pending_approval"?{whyNow:"This agent is paused behind a human approval gate.",factors:["pending approval","waiting on human"]}:e.pauseReason==="budget"?{whyNow:"This agent is paused by budget controls.",factors:["budget stop","paused work"]}:{whyNow:"This agent is paused and may represent stale work.",factors:["paused work"]}}function Wp(e){return e.status==="error"?"An agent needs operator attention after entering an error state.":e.status==="pending_approval"?"A human decision is required before this agent can continue.":e.pauseReason==="budget"?"Budget controls are holding this agent in a paused state.":"This agent is paused and may need a quick operator check."}function zp(e){return e.status==="error"?`${e.name} needs attention`:e.status==="pending_approval"?`${e.name} is waiting for approval`:`${e.name} is paused`}function Gp(){return"An agent run failed and may need operator attention."}function Oa(){return"A Paperclip-managed run failed and is now competing for operator attention."}function Zp(){return"Agent waiting for approval"}function Yp(){return"A Paperclip-managed agent cannot continue until a pending approval is resolved."}function Na(){return"The agent is paused behind a Paperclip approval gate."}function lk(e){let t=e.payload??{},n=typeof t.title=="string"?t.title:typeof t.plan=="string"?t.plan:typeof t.name=="string"?t.name:null;return n||`${Cn(e.type)} approval`}function La(e){return e.type==="budget_override_required"}function dk(e){return e?e.filter(t=>t.status==="pending"||t.status==="revision_requested").sort((t,n)=>{let r=La(t)?1:0,i=La(n)?1:0;return r!==i?i-r:(n.updatedAt??n.createdAt).localeCompare(t.updatedAt??t.createdAt)}):[]}function pk(e){let t=je("approval",e.id),n=e.payload??{},r=La(e),i=typeof n.requestedAmount=="string"?n.requestedAmount:void 0,o=typeof n.reason=="string"?n.reason:void 0,a=typeof n.decisionContext=="string"?n.decisionContext:void 0,c=typeof n.summary=="string"?n.summary:zr(r),u=e.updatedAt??e.createdAt,d={whyNow:On(r),factors:r?["budget stop","approval","operator decision"]:["approval","operator decision"]};return xt({id:`approval-bootstrap:${e.id}`,taskId:t,interactionId:ye(t,"approval"),source:{id:"paperclip:approval",kind:"paperclip",label:"Paperclip approval"},version:1,mode:"approval",tone:"focused",consequence:r?"high":"medium",title:lk(e),summary:c,context:{items:[{...Br(Cn(e.type))},...i?[Vr(i)]:[],...o?[Kr(o)]:[],...a?[Wr(a)]:[]]},responseSpec:{kind:"approval",actions:[{id:"approve",label:"Approve",kind:"approve",emphasis:"primary"},{id:"reject",label:"Reject",kind:"reject",emphasis:"danger"},...r?[{id:"request-revision",label:"Request revision",kind:"cancel",emphasis:"secondary"}]:[]]},provenance:d,timing:{createdAt:e.createdAt,updatedAt:u},metadata:{entityType:"approval",approvalStatus:e.status,approvalType:e.type,attention:{rationale:d.factors},semantic:{confidence:"high"}}},{owner:"approval_overlay",lane:"next",sourcePolicy:"pendingApprovals.displayOverlay",rationale:["Pending approval fetched from Paperclip approvals adapter."]})}function Ma(e,t,n,r){let i=dk(n).map(pk),o=e??oe(t);return Qt(o,t,[...i.map(c=>({frame:c,lane:"next"}))],r)}var mk=[{id:"clarification.generic",key:"clarification",pattern:/\b(?:clarification|clarify|question|need(?:s|ed)?\s+(?:info|more|clarification|feedback)|waiting on|feedback needed)\b/i,description:"Signals that the thread is blocked on clarification or more information."},{id:"resolution.direction",key:"resolution",pattern:/final direction|lock these in|use these|not a request for iteration|you can proceed|ready to proceed|unblocked|resolved/i,description:"Signals that the latest guidance appears to resolve or unblock the thread."},{id:"artifact.share_with_board",key:"share_with_board",pattern:/share .* with the board/i,description:"Signals that a review artifact still needs to be shared with the board."},{id:"confirmation.explicit",key:"confirmation",pattern:/please review and confirm|review and confirm|confirm the direction|confirm whether|\bconfirm\b/i,description:"Signals an explicit confirmation step before work can continue."},{id:"board_instruction.explicit",key:"board_instruction",pattern:/(board should either .*?)(?:[.!?]|$)/i,description:"Signals explicit board-facing instructions in the latest operator text."},{id:"dependency.reference",key:"dependency_reference",pattern:/\b[A-Z]+-\d+\b/,description:"Signals a downstream dependency reference in the thread."}];function fk(e){return e.toUpperCase()===e?e:e.slice(0,1).toUpperCase()+e.slice(1).toLowerCase()}function gk(e){return e.toUpperCase()===e?e:e.toLowerCase()}function Zr(e,t=180){let n=e.replace(/\s+/g," ").trim();return n.length<=t?n:`${n.slice(0,t-1).trimEnd()}\u2026`}function hk(e,t){return[t?.body,e.description].filter(n=>!!n).join(`
|
|
10
|
+
`)}function Gr(e){if(!e)return 0;if(e instanceof Date)return e.getTime();let t=Date.parse(e);return Number.isNaN(t)?0:t}function yk(e){return e?typeof e=="string"?e:e.toISOString():null}function Jp(e){return e.toLowerCase().replace(/[^a-z0-9]/g,"")}function Sk(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Yr(e){return je("issue",e)}function bk(e){let t=new Set,n=[];for(let r of mk)r.pattern.test(e)&&(t.add(r.key),n.push(r.id));return{intents:t,matchedRuleIds:n}}function vk(e,t){let n=t?.toUpperCase();return(e.match(/\b[A-Z]+-\d+\b/g)??[]).find(i=>i.toUpperCase()!==n)??null}function kk(e){return e.replace(/\s+/g," ").trim().match(/(board should either .*?)(?:[.!?]|$)/i)?.[1]??null}function Ik(e){return e.has("resolution")||e.has("share_with_board")||e.has("confirmation")||e.has("board_instruction")?"high":e.has("clarification")?"medium":null}function Ek(e,t){let n=[],r=t??void 0;return r&&n.push({kind:"same_issue",target:r}),e.has("resolution")?(n.push(r?{kind:"resolves",target:r}:{kind:"resolves"}),n):e.has("share_with_board")||e.has("confirmation")||e.has("board_instruction")?(n.push(r?{kind:"supersedes",target:r}:{kind:"supersedes"}),n):(e.has("clarification")&&n.push(r?{kind:"repeats",target:r}:{kind:"repeats"}),n)}function Da(e){let{intents:t,matchedRuleIds:n}=bk(e.text);return{text:e.text,blockingTarget:vk(e.text,e.identifier),intents:t,matchedRuleIds:n,explicitBoardInstruction:kk(e.text),semanticConfidence:Ik(t),relationHints:Ek(t,e.issueTarget)}}function wk(e,t){if(!t||t.agentNames.length===0)return null;let n=e.match(/needed from\s+@([a-z0-9_-]+)/i)??e.match(/@([a-z0-9_-]+)/i);if(n?.[1]){let r=Jp(n[1]),i=t.agentNames.find(o=>Jp(o)===r);if(i)return i}return[...t.agentNames].sort((r,i)=>i.length-r.length).find(r=>new RegExp(`\\b${Sk(r)}\\b`,"i").test(e))??null}function Xp(e,t,n){let r=hk(e,t),i=Da({text:r,identifier:e.identifier,issueTarget:Yr(e.id)}),o=wk(r,n),a=r.match(/needed from\s+@([a-z0-9_-]+)/i)??r.match(/@([a-z0-9_-]+)/i),c=o??(a?.[1]?fk(a[1]):/board should|board can/i.test(r)?"Board":/ceo agent|@ceo|\bceo\b/i.test(r)?"CEO":/requires human|waiting on human|human review/i.test(r)?"Human":/operator intervention|operator review/i.test(r)?"Operator":null);return{...i,owner:c,ownerKind:o?"agent":c?"human":null}}function Q(e,t){return e.intents.has(t)}function Nn(e,t){return t==="agent"?e:gk(e)}function _k(e){return e.length===0?null:[...e].sort((t,n)=>Gr(n.updatedAt)-Gr(t.updatedAt))[0]??null}function Qp(e,t,n){let r=_k(e),i=yk(r?.updatedAt),o=t?.updatedAt??null;return{hasDocuments:e.length>0,latestDocumentTitle:r?.title??null,latestDocumentUpdatedAt:i,resolvesArtifactRequest:Q(n,"share_with_board")&&!!r&&(!o||Gr(i)>=Gr(o))}}function em(e,t,n){let r=t.text.replace(/\s+/g," ").trim();return n?.resolvesArtifactRequest?"Monitor the review now that the memo is attached.":Q(t,"resolution")?"Monitor execution and confirm the team resumes work.":Q(t,"share_with_board")?"Share the memo with the board so review can continue.":t.explicitBoardInstruction?Zr(t.explicitBoardInstruction,140):Q(t,"confirmation")?t.blockingTarget?`Confirm the direction so ${t.blockingTarget} can proceed.`:"Review the draft and confirm whether work should proceed.":/leave a comment/i.test(r)?"Leave a comment with enough context for work to resume.":/complete [A-Z]+-\d+/i.test(r)?"Complete the blocking dependency or add enough context to proceed.":e.status==="blocked"?"Unblock the dependency or add the missing context needed to continue.":e.status==="in_review"?"Review the issue and decide whether work can continue.":null}function tm(e,t,n){if(n?.resolvesArtifactRequest)return"The requested memo appears attached, so review should be able to continue.";if(Q(t,"resolution"))return"Latest operator guidance appears to unblock this issue.";if(Q(t,"share_with_board"))return"Board still needs the memo before review can continue.";if(Q(t,"confirmation")&&t.blockingTarget)return`Waiting on confirmation before ${t.blockingTarget} can proceed.`;let r=Q(t,"clarification"),i=t.owner;return e.status==="blocked"&&i?r?`Blocked on ${Nn(i,t.ownerKind)} clarification before work can continue.`:`Blocked on ${Nn(i,t.ownerKind)} action before work can continue.`:e.status==="blocked"?r?"Blocked issue waiting on clarification before work can continue.":"Blocked issue that may need operator intervention to move forward.":e.status==="in_review"?i?`Waiting on ${Nn(i,t.ownerKind)} review before work can continue.`:"Issue is waiting on human review before work can continue.":e.description?Zr(e.description):"This issue has new operator-relevant activity."}function nm(e,t,n){if(n?.resolvesArtifactRequest)return{whyNow:n.latestDocumentTitle?`${n.latestDocumentTitle} was attached after the request, so the missing artifact appears resolved.`:"A review document was attached after the request, so the missing artifact appears resolved.",factors:["document attached","review can proceed"]};if(Q(t,"resolution"))return{whyNow:"The latest comment appears to resolve the blocker; monitor execution rather than intervening.",factors:["comment follow-up"]};if(Q(t,"share_with_board"))return{whyNow:"The board still needs the memo before review can continue.",factors:["waiting on human","issue review"]};if(Q(t,"confirmation")&&t.blockingTarget)return{whyNow:`${t.blockingTarget} is waiting on explicit confirmation before work can continue.`,factors:["waiting on human","issue review"]};let r=t.owner;if(e.status==="blocked"){let i=Q(t,"clarification");return{whyNow:r?i?`This issue is blocked on clarification from ${Nn(r,t.ownerKind)}.`:`This issue is blocked on action from ${Nn(r,t.ownerKind)}.`:i?"This issue is blocked on clarification from a human.":"This issue is blocked and may need operator intervention.",factors:i?["blocked","needs clarification","waiting on human"]:["blocked","operator review"]}}return e.status==="in_review"?{whyNow:"This issue is waiting on human review before work can continue.",factors:["waiting on human","issue review"]}:{whyNow:"A recent issue comment added operator-relevant context.",factors:["comment follow-up"]}}var Fa=6,Ak=15e3,Rk=15e3,Tk=15e3,xk=15e3,Ck=15e3;function Pk(e,t){let n={...e?{confidence:e}:{},...t.length>0?{relationHints:t}:{}};return Object.keys(n).length>0?n:void 0}function He(e){if(e)return typeof e=="string"?e:e.toISOString()}function rm(e){if(!e)return 0;if(e instanceof Date)return e.getTime();let t=Date.parse(e);return Number.isNaN(t)?0:t}function im(){return{kind:"acknowledge",actions:[{id:"acknowledge",label:"Acknowledge",kind:"acknowledge",emphasis:"primary"}]}}function Ok(e){return e.identifier?`${e.identifier} ${e.title}`:e.title}function Nk(e){if(e.length===0)return null;let t=[...e].sort((r,i)=>rm(i.updatedAt)-rm(r.updatedAt))[0],n=He(t.updatedAt)??He(t.createdAt)??new Date(0).toISOString();return{body:Zr(t.body),updatedAt:n}}function Lk(e){return e.priority==="critical"||e.priority==="high"?"high":"medium"}function Mk(e,t,n){return(e.status==="blocked"||e.status==="in_review")&&(Q(n.analysis,"resolution")||n.documentSignal.resolvesArtifactRequest)?t||e.isUnreadForMe||n.documentSignal.hasDocuments?"ambient":null:e.status==="blocked"?e.priority==="critical"?"now":"next":e.status==="in_review"?"next":t||e.isUnreadForMe?"ambient":null}function Dk(e){return e.status==="done"||e.status==="cancelled"}function om(e){return e?.blockedBy.filter(t=>!Dk(t))??[]}function am(e){return om(e)[0]??null}function ja(e){return e.identifier?`${e.identifier} ${e.title}`:e.title}function Fk(e){let t=om(e);if(t.length===0)return null;let[n,...r]=t,i=ja(n);return r.length>0?`${i} +${r.length} more`:i}function Uk(e){if(!e||e.blockedBy.length===0&&e.blocks.length===0)return;let t=n=>({id:n.id,identifier:n.identifier,title:n.title,status:n.status,priority:n.priority});return{blockedBy:e.blockedBy.map(t),blocks:e.blocks.map(t)}}function jk(e,t){let n=am(t.relations);return n?`${ja(n)} is a tracked blocker for this issue.`:tm(e,t.analysis,t.documentSignal)}function qk(e,t){let n=nm(e,t.analysis,t.documentSignal),r=am(t.relations);return r?{...n,whyNow:`${ja(r)} is linked as a blocker in Paperclip.`,factors:[...new Set([...n.factors??[],"blocked by issue relation"])]}:n}function Hk(e,t,n){let r=[t?.updatedAt,He(e.lastExternalCommentAt),n.latestDocumentUpdatedAt].filter(i=>!!i).sort();return r.length>0?r.at(-1):He(e.updatedAt)??He(e.createdAt)??new Date(0).toISOString()}function $k(e,t,n,r,i){let o=Xp(e,t,i),a=Qp(n,t,o),c={analysis:o,documentSignal:a,relations:r},u=Mk(e,t,c);if(!u)return null;let d=Hk(e,t,a),m=qk(e,c),f=Q(o,"resolution")||a.resolvesArtifactRequest?null:o.owner,g=em(e,o,a),S=o.blockingTarget,b=Pk(o.semanticConfidence,o.relationHints),O=je("issue",e.id),U=Fk(r),j=Uk(r);return{lane:u,frame:xt({id:`reconcile:issue:${e.id}:${d}`,taskId:O,interactionId:ye(O,e.status),source:{id:"paperclip:issue",kind:"paperclip",label:"Paperclip issue"},version:1,mode:"status",tone:e.status==="blocked"?"focused":u==="ambient"?"ambient":"focused",consequence:e.status==="blocked"?Lk(e):u==="ambient"?"low":"medium",title:Ok(e),summary:jk(e,c),context:{items:[...f?[Op(f)]:[],...U?[Np(U)]:[],...S?[Lp(S)]:[],...g?[Mp(g)]:[],Dp(e.status.replace(/_/g," ")),Fp(e.priority),...t?[Up(t.body)]:[]]},responseSpec:im(),provenance:m,timing:{createdAt:He(e.createdAt)??d,updatedAt:d},metadata:{entityType:"issue",issueStatus:e.status,issuePriority:e.priority,liveReconciled:!0,activityPath:t?"activity":void 0,attention:{rationale:m.factors??[]},issueIntelligence:{matchedRuleIds:o.matchedRuleIds,owner:o.owner,ownerKind:o.ownerKind,blockingTarget:o.blockingTarget},...j?{issueRelations:j}:{},...b?{semantic:b}:{}}},{owner:"paperclip_reconciliation",lane:u,sourcePolicy:`issue.${e.status}.${e.priority}`,rationale:m.factors??[]})}}function Bk(e){return e.status==="error"?"now":e.status==="pending_approval"||e.status==="paused"&&e.pauseReason==="budget"?"next":e.status==="paused"?"ambient":null}function Vk(e){return Kp(e)}function Kk(e){return Wp(e)}function Wk(e){let t=Bk(e);if(!t)return null;let n=He(e.updatedAt)??He(e.createdAt)??new Date(0).toISOString(),r=Vk(e),i=je("agent",e.id);return{lane:t,frame:xt({id:`reconcile:agent:${e.id}:${n}`,taskId:i,interactionId:ye(i,e.status),source:{id:"paperclip:agent",kind:"paperclip",label:"Paperclip agent"},version:1,mode:"status",tone:e.status==="error"?"critical":e.pauseReason==="budget"||e.status==="pending_approval"?"focused":"ambient",consequence:e.status==="error"||e.pauseReason==="budget"?"high":e.status==="pending_approval"?"medium":"low",title:zp(e),summary:Kk(e),context:{items:[jp(e.status.replace(/_/g," ")),...e.pauseReason?[qp(e.pauseReason)]:[],...e.title?[Hp(e.title)]:[]]},responseSpec:im(),provenance:r,timing:{createdAt:He(e.createdAt)??n,updatedAt:n},metadata:{entityType:"agent",agentStatus:e.status,pauseReason:e.pauseReason,liveReconciled:!0,activityPath:e.status==="error"?"activity":void 0,attention:{rationale:r.factors??[]},semantic:{confidence:"high"}}},{owner:"paperclip_reconciliation",lane:t,sourcePolicy:`agent.${e.status}${e.pauseReason?`.${e.pauseReason}`:""}`,rationale:r.factors??[]})}}async function zk(e,t){try{let n=await e.issues.listComments(t.id,t.companyId);return Nk(n)}catch(n){return e.logger.warn("Failed to load issue comments during Aperture reconciliation",{issueId:t.id,error:n instanceof Error?n.message:String(n)}),null}}async function Ln(e,t,n,r,i,o){if(!i?.fresh){let c=e.getCachedHostValue(t,n);if(c!==null)return c}let a=await o();return e.setCachedHostValue(t,n,a,r)}async function Gk(e,t){try{return await e.issues.documents.list(t.id,t.companyId)}catch(n){return e.logger.warn("Failed to load issue documents during Aperture reconciliation",{issueId:t.id,error:n instanceof Error?n.message:String(n)}),[]}}async function Zk(e,t){let n=t.blockedBy??[],r=t.blocks??[];if(n.length>0||r.length>0)return{blockedBy:n,blocks:r};try{return await e.issues.relations.get(t.id,t.companyId)}catch(i){return e.logger.warn("Failed to load issue relations during Aperture reconciliation",{issueId:t.id,error:i instanceof Error?i.message:String(i)}),null}}async function Ua(e,t,n){if(e.length===0)return[];let r=new Array(e.length),i=0;async function o(){for(;i<e.length;){let c=i;i+=1,r[c]=await n(e[c],c)}}let a=Math.min(t,e.length);return await Promise.all(Array.from({length:a},()=>o())),r}async function sm(e,t,n,r,i){return Ln(t,n,`issues:${r}`,Ak,{fresh:i?.freshHostData},async()=>await e.issues.list({companyId:n,status:r,limit:25}))}async function Yk(e,t,n,r){return Ln(t,n,"agents:all",Ck,{fresh:r?.freshHostData},async()=>await e.agents.list({companyId:n,limit:100}))}async function Jk(e,t,n,r,i){let[o,a]=await Promise.all([sm(e,t,n,"blocked",i),sm(e,t,n,"in_review",i)]),c=[...o,...a],[u,d,m]=await Promise.all([Ua(c,Fa,g=>Ln(t,n,`issue:${g.id}:comments`,Rk,{fresh:i?.freshHostData},()=>zk(e,g))),Ua(c,Fa,g=>Ln(t,n,`issue:${g.id}:documents`,Tk,{fresh:i?.freshHostData},()=>Gk(e,g))),Ua(c,Fa,g=>Ln(t,n,`issue:${g.id}:relations`,xk,{fresh:i?.freshHostData},()=>Zk(e,g)))]),f={agentNames:r.map(g=>g.name).filter(g=>typeof g=="string"&&g.trim().length>0)};return c.map((g,S)=>$k(g,u[S]??null,d[S]??[],m[S]??null,f)).filter(g=>g!==null)}function Xk(e){return e.filter(t=>t.status==="pending_approval"||t.status==="error"||t.status==="paused").map(t=>Wk(t)).filter(t=>t!==null)}async function cm(e,t,n,r,i){let o=await Yk(e,t,n,i),a=r.captureIssueLifecycle===!1?Promise.resolve([]):Jk(e,t,n,o,i),c=Promise.resolve(Xk(o)),[u,d]=await Promise.all([a,c]);return[...u,...d]}function qa(e){let t=[];e.now&&t.push([e.now.taskId,{frame:e.now,lane:"now"}]);for(let n of e.next)t.push([n.taskId,{frame:n,lane:"next"}]);for(let n of e.ambient)t.push([n.taskId,{frame:n,lane:"ambient"}]);return new Map(t)}function um(e,t,n){return t===n?null:t===null&&n!==null?{stage:e,kind:"introduced",fromLane:t,toLane:n}:t!==null&&n===null?{stage:e,kind:"removed",fromLane:t,toLane:n}:{stage:e,kind:"moved",fromLane:t,toLane:n}}function Qk(e,t){return e?"core":t?"reconciled":"display_overlay"}function eI(e,t){if(t==="display_overlay")return _n(e).entityType==="approval"?"approval_overlay":"display_overlay"}function Ha(e){let t=qa(e.snapshot),n=qa(e.reconciledSnapshot),r=qa(e.displaySnapshot),o=[...new Set([...t.keys(),...n.keys(),...r.keys()])].sort().map(c=>{let u=t.get(c),d=n.get(c),m=r.get(c),f=m?.frame??d?.frame??u?.frame;if(!f)throw new Error(`Overlay diagnostics could not resolve representative frame for ${c}.`);let g=_n(f),S=[um("reconciled",u?.lane??null,d?.lane??null),um("display",d?.lane??null,m?.lane??null)].filter(O=>O!==null),b=Qk(u,d);return{taskId:c,title:f.title,entityType:g.entityType,interactionIds:{...u?{core:u.frame.interactionId}:{},...d?{reconciled:d.frame.interactionId}:{},...m?{display:m.frame.interactionId}:{}},lanePath:{core:u?.lane??null,reconciled:d?.lane??null,display:m?.lane??null},canonicalSource:b,overlayKind:eI(f,b),liveReconciled:g.liveReconciled,attentionRationale:g.attention?.rationale??[],matchedRuleIds:g.issueIntelligence?.matchedRuleIds??[],relationHintKinds:g.semantic?.relationHints?.map(O=>O.kind)??[],decision:g.decision,changes:S}}),a={coreFrames:t.size,reconciledFrames:n.size,displayFrames:r.size,introducedByReconciliation:o.filter(c=>c.changes.some(u=>u.stage==="reconciled"&&u.kind==="introduced")).length,removedByReconciliation:o.filter(c=>c.changes.some(u=>u.stage==="reconciled"&&u.kind==="removed")).length,movedByReconciliation:o.filter(c=>c.changes.some(u=>u.stage==="reconciled"&&u.kind==="moved")).length,introducedByDisplayOverlay:o.filter(c=>c.changes.some(u=>u.stage==="display"&&u.kind==="introduced")).length,removedByDisplayOverlay:o.filter(c=>c.changes.some(u=>u.stage==="display"&&u.kind==="removed")).length,movedByDisplayOverlay:o.filter(c=>c.changes.some(u=>u.stage==="display"&&u.kind==="moved")).length,approvalOverlayFrames:o.filter(c=>c.overlayKind==="approval_overlay").length};return{generatedAt:e.displaySnapshot.updatedAt,summary:a,frames:o}}var lm=250,tI=50,dm=1e3,nI=200;function pm(e){return{eventCount:0,persistence:{state:"healthy"},surfaceCapabilities:Nr,operatorPresence:"present",globalSignalSummary:{recentSignals:0,lifetimeSignals:0,counts:{presented:0,viewed:0,responded:0,dismissed:0,deferred:0,contextExpanded:0,contextSkipped:0,timedOut:0,returned:0,attentionShifted:0},deferred:{next:0,suppressed:0,manual:0},responseRate:0,dismissalRate:0,averageResponseLatencyMs:null,averageDismissalLatencyMs:null,lastSignalAt:null},globalAttentionState:"monitoring",memoryProfile:{version:1,operatorId:"unknown",updatedAt:e,sessionCount:0},ledger:{entries:0,eventEntries:0,responseEntries:0,overlayResponseEntries:0,signalEntries:0,replayStrategy:"full-ledger",compactionRecommended:!1},host:{cacheEntries:0,hostDataRevision:0,approvalRecords:0,approvalsDirty:!1},currentNowTask:null}}function Jr(e,t){return e?t?e.localeCompare(t)>=0?e:t:e:t}function $a(e,t,n){if(typeof e!="number"||!Number.isFinite(e))return t;let r=Math.trunc(e);return r<=0?t:Math.min(r,n)}function Ba(e,t){let n=e.length,r=Math.max(1,t);return n<=r?{items:[...e],total:n,hasMoreBefore:!1}:{items:e.slice(-r),total:n,hasMoreBefore:!0}}function rI(e,t,n){let r=n?{...n,frames:Object.fromEntries(Object.entries(n.frames).map(([i,o])=>[i,{...o}]))}:G(e);for(let i of t){if(i.kind!=="response"&&i.kind!=="overlay-response")continue;let o=i.occurredAt,a=i.apertureResponse.taskId,c=i.apertureResponse.response.kind,u=r.frames[a]??{};r.frames[a]={...u,lastSeenAt:Jr(u.lastSeenAt,o),...c==="acknowledged"||c==="dismissed"?{suppressedAt:Jr(u.suppressedAt,o)}:{}},r.lastSeenAt=Jr(r.lastSeenAt,o),r.updatedAt=Jr(r.updatedAt,o)??o}return r}async function Xe(e,t,n){if(t.hasSession(n)){let f=t.getSnapshot(n)??oe(n);return{baseLedger:t.getLedger(n),snapshot:f,reviewState:t.getReview(n)??G(n)}}let r=await Tn(e,n);if(r){let{snapshot:f}=t.hydrate(n,{ledger:r.ledger,snapshot:r.snapshot,review:r.review});return{baseLedger:r.ledger,snapshot:f,reviewState:r.review}}let i=await e.state.get({scopeKind:"company",scopeId:n,stateKey:Ap}),o=await e.state.get({scopeKind:"company",scopeId:n,stateKey:_p}),a=await e.state.get({scopeKind:"company",scopeId:n,stateKey:Rp}),c=Xt(i)?i:Ye(),u=Jt(n,o),d=rI(n,c,Rn(a,n)?a:null),{snapshot:m}=t.hydrate(n,{ledger:c,snapshot:u,review:d});return!Xt(i)&&u&&e.logger.warn("Legacy snapshot found without replay ledger; rebuilt state may be partial until new events arrive.",{companyId:n}),{baseLedger:c,snapshot:m,reviewState:d}}function sI(e,t,n){return JSON.stringify({reconciliationRevision:e.getReconciledRevision(t),captureIssueLifecycle:n.captureIssueLifecycle!==!1,captureRunFailures:n.captureRunFailures!==!1})}async function Va(e,t,n,r,i,o={}){let a=await e.config.get(),c=sI(t,n,a);if(o.preferCache&&!o.freshHostData){let m=t.getCachedReconciledCandidates(n,c);if(m)return Qt(r,n,m,i)}let u=await cm(e,t,n,a,{freshHostData:o.freshHostData}),d=Qt(r,n,u,i);return o.preferCache&&!o.freshHostData&&t.setCachedReconciledCandidates(n,c,u),d}async function fm(e,t,n){let r=t.getApprovals(n);if(!t.approvalsDirty(n)&&r)return r;let i=await e.config.get();try{let o=await yp(e,n,i);return t.setApprovals(n,o)}catch(o){let a=o instanceof Error?o.message:String(o);return t.markApprovalAdapterFailure(n,a),e.logger.warn("Failed to load pending approvals for Focus display",{companyId:n,error:a}),r||t.setApprovals(n,[])}}async function mm(e,t,n,r,i){let o=await Va(e,t,n,r,i,{preferCache:!0}),a=await fm(e,t,n);return{reconciledSnapshot:o,displaySnapshot:Ma(o,n,a,i)}}function gm(e,t){e.data.register("health",async()=>{let n=t.getHealth();return{status:"ok",checkedAt:new Date().toISOString(),trackedCompanies:n.trackedCompanies,maxCompanySessions:n.maxCompanySessions,idleSessionTtlMs:n.idleSessionTtlMs,faultedCompanies:n.faultedCompanies,hostCacheEntries:n.hostCacheEntries,cachedReconciliations:n.cachedReconciliations}}),e.data.register("attention-diagnostics",async n=>{let r=K(n);return await Xe(e,t,r),t.getCoreDiagnostics(r)??pm(new Date().toISOString())}),e.data.register("attention-overlay-diagnostics",async n=>{let r=K(n),{snapshot:i,reviewState:o}=await Xe(e,t,r),{reconciledSnapshot:a,displaySnapshot:c}=await mm(e,t,r,i,o);return Ha({snapshot:i,reconciledSnapshot:a,displaySnapshot:c})}),e.data.register("attention-summary",async n=>{let r=K(n),{snapshot:i,reviewState:o}=await Xe(e,t,r);return await Va(e,t,r,i,o,{freshHostData:!0})??oe(r)}),e.data.register("attention-display",async n=>{let r=K(n),{snapshot:i,reviewState:o}=await Xe(e,t,r),{displaySnapshot:a}=await mm(e,t,r,i,o);return{companyId:r,snapshot:a??oe(r),reviewState:o}}),e.data.register("attention-export",async n=>{let r=K(n),i=$a(n.limit,lm,dm),o=$a(n.traceLimit,tI,nI),a=new Date().toISOString(),{baseLedger:c,snapshot:u,reviewState:d}=await Xe(e,t,r),m=await Va(e,t,r,u,d,{freshHostData:!0}),f=await fm(e,t,r),g=Ma(m,r,f,d),S=Ba(c,i),b=Ba(t.getTraces(r),o);return{companyId:r,exportedAt:a,ledger:S.items,eventEntries:S.items.filter(O=>O.kind==="event"),responseEntries:S.items.filter(O=>O.kind==="response"),overlayResponseEntries:S.items.filter(O=>O.kind==="overlay-response"),signalEntries:S.items.filter(O=>O.kind==="signal"),traces:b.items,window:{entryLimit:i,traceLimit:o,totalLedgerEntries:S.total,returnedLedgerEntries:S.items.length,totalTraces:b.total,returnedTraces:b.items.length,hasMoreBefore:S.hasMoreBefore||b.hasMoreBefore},snapshot:u,reconciledSnapshot:m,displaySnapshot:g,review:d,coreDiagnostics:t.getCoreDiagnostics(r)??pm(a),overlayDiagnostics:Ha({snapshot:u,reconciledSnapshot:m,displaySnapshot:g})}}),e.data.register("attention-traces",async n=>{let r=K(n);return await Xe(e,t,r),t.getTraces(r)}),e.data.register("attention-replay-scenario",async n=>{let r=K(n),i=$a(n.limit,lm,dm),{baseLedger:o,snapshot:a}=await Xe(e,t,r),c=Ba(o,i);return{id:`paperclip-attention-${r}`,title:`Paperclip attention replay for ${r}`,description:"Replay scenario exported from the Paperclip Aperture plugin ledger.",doctrineTags:["paperclip","aperture","replay-export"],window:{entryLimit:i,totalLedgerEntries:c.total,returnedSteps:c.items.length,hasMoreBefore:c.hasMoreBefore},expectations:{finalNowInteractionId:a.now?.interactionId??null,nextInteractionIds:a.next.map(u=>u.interactionId),ambientInteractionIds:a.ambient.map(u=>u.interactionId),resultLaneCounts:{now:a.counts.now,next:a.counts.next,ambient:a.counts.ambient}},steps:c.items.map(u=>u.kind==="event"?{kind:"publish",event:u.apertureEvent,label:`${u.source.eventType} @ ${u.occurredAt}`}:u.kind==="response"?{kind:"submit",response:u.apertureResponse,label:`${u.source.eventType} @ ${u.occurredAt}`}:u.kind==="signal"?{kind:"signal",signal:u.apertureSignal,label:`${u.source.eventType} @ ${u.occurredAt}`}:{kind:"overlay-response",response:u.apertureResponse,overlay:u.overlay,label:`${u.source.eventType} @ ${u.occurredAt}`})}}),e.data.register("attention-review",async n=>{let r=K(n),{reviewState:i}=await Xe(e,t,r);return i})}var iI=["need your input","need your approval","need your review","need your sign off","need your sign-off","should i continue","can you approve","can you review","what should i do"],vm=["no action needed","no approval needed","approval is not needed","approval not needed","sign off not needed","sign-off not needed","no input needed","for awareness only","for your awareness","continuing automatically"],oI=["cannot continue","can't continue","cannot proceed","can't proceed","unable to continue","unable to proceed","blocked on","blocked until","stuck on","requires operator input before continuing","needs operator input before continuing","must be provided before continuing"],aI=["waiting for approval","approval required","awaiting approval","waiting on approval","pending approval","waiting for input","awaiting input","waiting on input","awaiting review","waiting for review"],cI=["production","prod","force push","git push --force","rm -rf","drop table","delete database","delete prod","sudo","chmod 777","kill process","migrate"],uI=["result of running cat -n","result of running sed -n","result of running grep","result of running ls","result of running find","here s the result of running cat -n","here s the result of running sed -n"],lI=["observation","contents of","showing first","showing top","found"],dI=["path","type file","content"],pI=["ran successfully and did not produce any output","command ran successfully and did not produce any output","completed successfully and did not produce any output"],mI=["tool-output","dmesg"],fI=["makefile","spdx-license-identifier","patchlevel","sublevel","extraversion"],gI=/(?:^|\s)\/[a-z0-9._-]+(?:\/[a-z0-9._-]+)+(?:\s|$)/,hI=/\bfound\s+\d+\s+match(?:es)?\b|\bshowing\s+(?:first|top)\s+\d+\b|\bmatch(?:es)?\s+in\s+\d+\s+files?\b/,yI=/\b(import|from|export|class|def|function|const|let|var|return)\b/,SI=/\b\d+\s+(?:import|from|export|class|def|function|const|let|var|return)\b/,bI=/\/[a-z0-9._/-]+\.(?:c|cc|cpp|cxx|h|hpp|ts|tsx|js|jsx|py|rb|go|rs|java|kt|swift)(?:\b|\/)/,vI=/\b[a-z0-9.-]+\.(?:c|cc|cpp|cxx|h|hpp|ts|tsx|js|jsx|py|rb|go|rs|java|kt|swift)\b/,kI=/\b(static|struct|enum|typedef|void|int|char|bool|return)\b/,II=/\b\d+\s+(?:static|struct|enum|typedef|void|int|char|bool|return)\b/,EI=/\b\d+\s+\[\s*\d+\.\d+\]\s+[a-z0-9_.:-]+/,wI=/\b(?:version|patchlevel|sublevel|extraversion)\b/,_I=["form is valid false","form without instance is valid false","form errors","errorlist","decompress result"],AI=["traceback","exception","permission denied","command not found","segmentation fault"],RI=["still","again","back again","came back","continues","continuing","returned","returning","remains","persisting","retrying","recurred"],TI=["did not repeat","didn t repeat","did not return","didn t return","did not recur","didn t recur","not repeated","not returning","not recurring","no repeat"],xI=["resolved","fixed","unblocked","no longer blocked"],hm=["not resolved","did not resolve","didn t resolve","not fixed","did not fix","didn t fix","not recovered","did not recover","didn t recover"],CI=["recovered","completed successfully","succeeded after"],ym=["instead","supersedes","superseded","replaced by","use this plan instead","follow this plan instead"],PI=["worse","worsened","escalating","regression","regressed","spread","broader impact","degraded further","critical now","now failing"],OI=["did not regress","didn t regress","no regression","not worsening","did not worsen","didn t worsen","not escalating","did not escalate","didn t escalate"],NI=["fail","failed","failing","failure","error","broken","blocked","stalled","stall","incident","issue","outage","degraded","regression","retry","rollback"];function jn(e){return e.toLowerCase().replace(/[^a-z0-9/._-]+/g," ").trim()}function Wa(e){return[...new Set(e)]}function km(e){return Ka(e.toolFamily)??Ka(zI(e.metadata))??Ka(GI(e.context))}function LI(e){let t=km(e);if(t)return t;let n=jn(`${e.title} ${e.summary??""}`);return Oe(n,"wants to read")||Oe(n,"wants to inspect")||Dn(n,"read")||Dn(n,"inspect")?"read":Oe(n,"wants to write")||Dn(n,"write")?"write":Oe(n,"wants to edit")||Dn(n,"edit")?"edit":Oe(n,"shell command")||Oe(n,"wants to run")?"bash":Oe(n,"search the web")?"web":Oe(n,"search files")||Oe(n,"search file contents")?"search":null}function MI(e){return D(e,vm)?!1:D(e,iI)}function DI(e){return D(e,vm)?null:D(e,oI)?"blocking":D(e,aI)?"waiting":null}function Im(e){let t=[],n=D(e,RI)&&!D(e,TI),r=D(e,xI)&&!D(e,hm),i=D(e,CI)&&!D(e,hm),o=D(e,PI)&&!D(e,OI),a=D(e,NI)||D(e,ym)||o;return n&&a&&t.push({kind:"same_issue"},{kind:"repeats"}),(r||i&&a)&&t.push({kind:"same_issue"},{kind:"resolves"}),D(e,ym)&&t.push({kind:"same_issue"},{kind:"supersedes"}),o&&t.push({kind:"same_issue"},{kind:"escalates"}),YI(t)}function Mn(e,t,n){return ZI(e)||n==="read"||n==="search"?t:qI(e,cI)?"high":(n==="write"||n==="edit"||n==="bash")&&t==="low"?"medium":t}function FI(e,t){return t!=="edit"&&t!=="read"?!1:D(e,uI)||_m(e)||wm(e)}function UI(e,t){return t==="search"?Sm(e):t==="read"?Sm(e)?!0:!_m(e)&&!wm(e)||VI(e)?!1:KI(e)||WI(e):!1}function jI(e,t){return t!=="bash"?!1:D(e,_I)&&!D(e,AI)}function D(e,t){return t.some(n=>Em(e,n))}function qI(e,t){return t.some(n=>HI(e,n))}function Em(e,t){let n=jn(t);return n?n.includes(" ")?Oe(e,n):Dn(e,n):!1}function HI(e,t){return Em(e,t)}function wm(e){return za(e)?D(e,lI)||$I(e)||BI(e):!1}function _m(e){return D(e,dI)&&za(e)}function Sm(e){return hI.test(e)||za(e)&&/\bmatch(?:es)?\b/.test(e)}function za(e){return gI.test(e)}function $I(e){return yI.test(e)}function BI(e){return SI.test(e)}function VI(e){return bI.test(e)||vI.test(e)||kI.test(e)||II.test(e)}function KI(e){return EI.test(e)||D(e,mI)}function WI(e){return wI.test(e)||D(e,fI)}function zI(e){let t=e?.toolFamily;return typeof t=="string"?t:null}function GI(e){if(!e?.items)return null;for(let t of e.items){let n=t.id.toLowerCase(),r=t.label.toLowerCase();if(n==="toolfamily"||n==="tool_family"||n==="tool"||r==="tool family")return t.value??null}return null}function Ka(e){if(!e)return null;let t=e.trim().toLowerCase();return t.length>0?t:null}function Oe(e,t){let n=jn(t);return n?new RegExp(`(?:^|[^a-z0-9_])${Am(n)}(?:$|[^a-z0-9_])`).test(e):!1}function Dn(e,t){return new RegExp(`(?:^|[^a-z0-9_])${Am(t)}(?:$|[^a-z0-9_])`).test(e)}function Am(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function ZI(e){return D(e,pI)}function YI(e){let t=new Set,n=[];for(let r of e){let i=`${r.kind}:${r.target??""}`;t.has(i)||(t.add(i),n.push(r))}return n}function JI(e){switch(e){case"approval":return"approval_request";case"choice":return"question_request";case"form":return"form_request"}}function XI(e){switch(e){case"approval":return"permission_request";case"choice":case"form":return"question_request"}}function QI(e,t){switch(e){case"approval":return t==="high"?"A high-risk action needs explicit operator approval.":"Approval is required before work can continue.";case"choice":return"A decision is required before work can continue.";case"form":return"Additional input is required before work can continue."}}function Fn(e,t){if(t?.wasCancelled)return"Work was cancelled and may need review.";switch(e){case"failed":return"Work has failed and should be reviewed.";case"blocked":return"Work is blocked and may require operator attention.";case"running":case"waiting":case"completed":return t?.impliedAsk?"Status text implies the operator may need to respond.":void 0}}function en(e,t){if(t?.wasCancelled)return["task cancellation is an explicit lifecycle fact"];switch(e){case"failed":return["task status explicitly indicates failure"];case"blocked":return["task status explicitly indicates blocked work"];case"running":case"waiting":case"completed":return t?.impliedAsk?["status wording suggests an implied operator request"]:["task update carries a non-blocking lifecycle status"]}}function bm(e){switch(e){case"task_started":return["task start is an explicit lifecycle fact"];case"completion":return["task completion is an explicit lifecycle fact"]}}function Ga(e){let t=eE(e);return rE(t,e.semanticHints)}function eE(e){switch(e.type){case"task.started":return{intentFrame:"task_started",activityClass:"session_status",consequence:"low",factors:["task.started"],relationHints:[],confidence:"high",reasons:bm("task_started"),provenance:se(["intentFrame","activityClass","consequence","confidence"])};case"task.updated":return tE(e);case"human.input.requested":return nE(e);case"task.completed":return{intentFrame:"completion",activityClass:"tool_completion",consequence:"low",factors:["task.completed"],relationHints:[],confidence:"high",reasons:bm("completion"),provenance:se(["intentFrame","activityClass","consequence","confidence"])};case"task.cancelled":return{intentFrame:"cancellation",activityClass:"status_update",consequence:"low",...e.reason?{whyNow:Fn("completed",{wasCancelled:!0})??"Work was cancelled and may need review."}:{},factors:["task.cancelled"],relationHints:[],confidence:"high",reasons:en("completed",{wasCancelled:!0}),provenance:{...se(["intentFrame","activityClass","consequence","confidence"]),...e.reason?se(["whyNow"]):{}}};default:return aE(e)}}function tE(e){let t=jn(`${e.title} ${e.summary??""}`),n=MI(t),r=DI(t),i=Im(t),o=Cm(e.title,e.summary,e.toolFamily,e.context),{toolFamily:a,source:c}=xm(o,!0),u=i.length>0?se(["relationHints"]):{},d=e.status==="failed"&&FI(t,a),m=e.status==="failed"&&UI(t,a),f=e.status==="failed"&&jI(t,a);switch(e.status){case"failed":return d?{intentFrame:"status_update",activityClass:"status_update",...a?{toolFamily:a}:{},consequence:Mn(t,m?"low":"high",a),factors:["task.updated","failed","observational_failure"],relationHints:i,confidence:"high",reasons:["task status indicates failure but the update reads like observational output"],provenance:{...se(["intentFrame","activityClass","consequence","confidence"]),...Un(c),...u}}:{intentFrame:"failure",activityClass:"tool_failure",...a?{toolFamily:a}:{},consequence:Mn(t,m?"low":f?"medium":"high",a),whyNow:Fn("failed")??"Work has failed and should be reviewed.",factors:["task.updated","failed"],relationHints:i,confidence:n?"medium":"high",reasons:f?[...en("failed",{impliedAsk:n}),"failure content looks like expected diagnostic output from repro work"]:en("failed",{impliedAsk:n}),provenance:{...se(["intentFrame","activityClass","consequence","whyNow","confidence"]),...Un(c),...u}};case"blocked":return{intentFrame:"blocked_work",activityClass:"status_update",...a?{toolFamily:a}:{},consequence:Mn(t,"medium",a),whyNow:Fn("blocked")??"Work is blocked and may require operator attention.",factors:["task.updated","blocked"],relationHints:i,confidence:n?"medium":"high",reasons:en("blocked",{impliedAsk:n}),provenance:{...se(["intentFrame","activityClass","consequence","whyNow","confidence"]),...Un(c),...u}};case"running":case"waiting":case"completed":return{intentFrame:r==="blocking"?"blocked_work":"status_update",activityClass:"status_update",...a?{toolFamily:a}:{},consequence:Mn(t,"low",a),...(()=>{let g=r==="blocking"?Fn("blocked"):n?Fn(e.status,{impliedAsk:n}):void 0;return g!==void 0?{whyNow:g}:{}})(),factors:["task.updated",e.status,...r==="blocking"?["semantic blocking signal"]:[]],relationHints:i,confidence:r==="blocking"?"medium":n?"low":"high",reasons:r==="blocking"?[...en("blocked"),"status wording indicates work cannot continue yet"]:en(e.status,{impliedAsk:n}),provenance:{...se(["intentFrame","activityClass","consequence","confidence"]),...Un(c),...r==="blocking"||n?se(["whyNow"]):{},...u}};default:return cE(e.status)}}function nE(e){let t=Cm(e.title,e.summary,e.toolFamily,e.context),{toolFamily:n,source:r}=xm(t,e.request.kind==="approval"),i=jn(`${e.title} ${e.summary}`),o=Im(i),a=e.riskHint??oE(e.request.kind,n),c=Mn(i,a,n),u=o.length>0?se(["relationHints"]):{};return{intentFrame:JI(e.request.kind),activityClass:XI(e.request.kind),...n?{toolFamily:n}:{},consequence:c,whyNow:QI(e.request.kind,c),factors:["human.input.requested",e.request.kind],relationHints:o,confidence:e.riskHint?"high":e.request.kind==="approval"&&n?"medium":"low",reasons:[e.riskHint?"source provided an explicit risk hint":"request kind establishes an explicit operator decision point",...r==="explicit"?["tool family was supplied by the source or context"]:r==="inferred"?["tool family was inferred from approval wording"]:[]],provenance:{...se(["intentFrame","activityClass","whyNow"]),...Un(r),...e.riskHint?Rm(["consequence","confidence"]):se(["consequence","confidence"]),...u}}}function se(e){return Tm(e,"inferred")}function Rm(e){return Tm(e,"source")}function Tm(e,t){return Object.fromEntries(e.map(n=>[n,t]))}function Un(e){switch(e){case"explicit":return Rm(["toolFamily"]);case"inferred":return se(["toolFamily"]);case"none":return{};default:return lE(e)}}function xm(e,t){let n=km(e);if(n)return{toolFamily:n,source:"explicit"};if(!t)return{source:"none"};let r=LI(e);return r?{toolFamily:r,source:"inferred"}:{source:"none"}}function rE(e,t){return t?{...e,...iE(t),factors:Wa([...e.factors??[],...t.factors??[]]),relationHints:[...t.relationHints??e.relationHints],reasons:Wa([...e.reasons??[],...t.reasons??[]]),provenance:{...e.provenance??{},...sE(t)}}:e}function sE(e){return{...e.intentFrame!==void 0?{intentFrame:"hint"}:{},...e.activityClass!==void 0?{activityClass:"hint"}:{},...e.toolFamily!==void 0?{toolFamily:"hint"}:{},...e.consequence!==void 0?{consequence:"hint"}:{},...e.whyNow!==void 0?{whyNow:"hint"}:{},...e.relationHints!==void 0?{relationHints:"hint"}:{},...e.confidence!==void 0?{confidence:"hint"}:{},...e.abstained!==void 0?{abstained:"hint"}:{}}}function iE(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&n!=="factors"&&n!=="relationHints"&&n!=="reasons"&&(t[n]=r);return t}function oE(e,t){switch(e){case"approval":return t==="read"||t==="search"?"low":"medium";case"choice":case"form":return"medium";default:return uE(e)}}function Cm(e,t,n,r){return{title:e,...t!==void 0?{summary:t}:{},...n!==void 0?{toolFamily:n}:{},...r?.items!==void 0?{context:{items:r.items}}:{}}}function aE(e){throw new Error(`Unhandled source event in semantic interpreter: ${JSON.stringify(e)}`)}function cE(e){throw new Error(`Unhandled task status in semantic interpreter: ${e}`)}function uE(e){throw new Error(`Unhandled human input request kind in semantic interpreter: ${e}`)}function lE(e){throw new Error(`Unhandled tool family provenance source in semantic interpreter: ${e}`)}function dE(e={}){let t=e.base,n=e.semantic,r=t?.whyNow??n?.whyNow??e.fallbackWhyNow,i=Wa([...t?.factors??[],...n?.factors??[],...e.extraFactors??[]]);if(!(t===void 0&&r===void 0&&i.length===0))return{...t??{},...r!==void 0?{whyNow:r}:{},...i.length>0?{factors:i}:{}}}function Pm(e){let t=Ga(e),n=e.type==="human.input.requested"&&e.riskHint!==void 0?{riskHint:e.riskHint}:void 0;return mE(gE(e),t,n)}function pE(e){switch(e){case"high":return"critical";case"medium":case"low":return"focused";default:return SE(e)}}function mE(e,t,n={}){switch(e.type){case"task.started":return{...e,semantic:t};case"task.updated":return{...e,...e.activityClass===void 0&&t.activityClass!==void 0?{activityClass:t.activityClass}:{},semantic:t};case"task.completed":case"task.cancelled":return{...e,semantic:t};case"human.input.requested":return fE(e,t,n);default:return hE(e)}}function fE(e,t,n){let{toolFamily:r,...i}=e,o=e.consequence??t.consequence??n.riskHint??"medium",a=e.tone??pE(o),c=dE({base:e.provenance,semantic:t}),u=e.request.kind==="approval"?e.toolFamily??t.toolFamily:void 0;return{...i,...u!==void 0?{toolFamily:u}:{},...e.activityClass===void 0&&t.activityClass!==void 0?{activityClass:t.activityClass}:{},semantic:t,tone:a,consequence:o,...c!==void 0?{provenance:c}:{}}}function gE(e){switch(e.type){case"task.started":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},title:e.title,...e.summary!==void 0?{summary:e.summary}:{}};case"task.updated":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},title:e.title,...e.summary!==void 0?{summary:e.summary}:{},status:e.status,...e.progress!==void 0?{progress:e.progress}:{},...e.context!==void 0?{context:e.context}:{}};case"task.completed":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.summary!==void 0?{summary:e.summary}:{}};case"task.cancelled":return{id:e.id,type:e.type,taskId:e.taskId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.reason!==void 0?{reason:e.reason}:{}};case"human.input.requested":return{id:e.id,type:e.type,taskId:e.taskId,interactionId:e.interactionId,timestamp:e.timestamp,...e.source!==void 0?{source:e.source}:{},...e.toolFamily!==void 0?{toolFamily:e.toolFamily}:{},...e.activityClass!==void 0?{activityClass:e.activityClass}:{},title:e.title,summary:e.summary,request:e.request,...e.context!==void 0?{context:e.context}:{},...e.provenance!==void 0?{provenance:e.provenance}:{}};default:return yE(e)}}function hE(e){throw new Error(`Unhandled ApertureEvent in semantic normalizer: ${JSON.stringify(e)}`)}function yE(e){throw new Error(`Unhandled SourceEvent in semantic normalizer: ${JSON.stringify(e)}`)}function SE(e){throw new Error(`Unhandled consequence level in semantic normalizer: ${e}`)}function bE(e){return typeof e=="string"&&e.trim().length>0?e:void 0}function vE(e,t){if(!e||typeof e!="object")return;let n=e[t];return Array.isArray(n)&&n.every(r=>typeof r=="string")?n:void 0}function P(e,t){if(!(!e||typeof e!="object"))return bE(e[t])}function Ja(e){return e?Cn(e):void 0}function kE(e){let t=e.entityType??"event",n=e.entityId??e.eventId;return je(t,n)}function IE(e){let t=e.entityType??"event";switch(t){case"approval":return{id:`paperclip:${t}`,kind:"paperclip",label:"Paperclip approval"};case"issue":return{id:`paperclip:${t}`,kind:"paperclip",label:"Paperclip issue"};case"run":return{id:`paperclip:${t}`,kind:"paperclip",label:"Paperclip run"};case"agent":return{id:`paperclip:${t}`,kind:"paperclip",label:"Paperclip agent"};default:return{id:`paperclip:${e.eventType}`,kind:"paperclip",label:"Paperclip"}}}function Za(e){let t=P(e,"status")?.toLowerCase(),n=[P(e,"summary"),P(e,"description"),P(e,"bodySnippet"),P(e,"title"),P(e,"issueTitle")].filter(r=>!!r).join(" ").toLowerCase();return t?.includes("block")?"blocked":t?.includes("wait")?"waiting":t?.includes("done")||t?.includes("complete")||t?.includes("closed")?"completed":t?.includes("fail")?"failed":n.includes("blocked")||n.includes("clarification")?"blocked":n.includes("waiting")?"waiting":"running"}function EE(e){let t=P(e,"status")?.toLowerCase();return t?t.includes("approval")||t.includes("block")?"blocked":t.includes("wait")||t.includes("pause")?"waiting":t.includes("fail")||t.includes("error")?"failed":t.includes("done")||t.includes("complete")?"completed":"running":"running"}function wE(e){let t=P(e.payload,"title")??P(e.payload,"plan")??P(e.payload,"name");if(t)return t;let n=Ja(P(e.payload,"type"));return n?`${n} approval`:"Approval requested"}function Om(e){return P(e.payload,"type")}function _E(e){return Om(e)==="budget_override_required"}function Ya(e,t){let n=P(e.payload,"identifier"),r=P(e.payload,"issueTitle")??P(e.payload,"title");return n&&r?`${n} ${r}`:n?`${n} ${t}`:r||t}function AE(e){if(!(!e||e.length===0))return{relationHints:e.map(t=>({kind:"same_issue",target:Yr(t)}))}}function RE(e){return[P(e,"bodySnippet"),P(e,"summary"),P(e,"description"),P(e,"title"),P(e,"issueTitle")].filter(t=>!!t).join(`
|
|
11
|
+
`)}function Xr(e){if(e.entityType!=="issue"||!e.entityId)return;let t=Da({text:RE(e.payload),identifier:P(e.payload,"identifier"),issueTarget:Yr(e.entityId)});return{...t.semanticConfidence?{confidence:t.semanticConfidence}:{},...t.relationHints.length>0?{relationHints:t.relationHints}:{}}}function TE(e,t){return{whyNow:On(e),factors:e?["budget stop","approval","operator decision"]:["approval","operator decision"],...AE(t)??{}}}function xE(){return{whyNow:Na(),factors:["pending approval"]}}function CE(){return{intentFrame:"failure",whyNow:Oa(),factors:["run failed","operator review"]}}function Qe(e){return Ga(e)}function Xa(e){let t=e.eventType,n=kE(e),r=IE(e);switch(t){case"approval.created":{let i=Om(e),o=_E(e),a=P(e.payload,"requestedAmount"),c=P(e.payload,"reason"),u=P(e.payload,"decisionContext"),d=vE(e.payload,"issueIds"),m=wE(e),f=P(e.payload,"summary")??zr(o),g=Qe({id:`${e.eventId}:approval`,type:"human.input.requested",taskId:n,interactionId:ye(n,"approval"),timestamp:e.occurredAt,source:r,toolFamily:"paperclip",activityClass:"permission_request",title:m,summary:f,request:{kind:"approval"},riskHint:o?"high":"medium",semanticHints:TE(o,d)});return{id:`${e.eventId}:approval`,type:"human.input.requested",taskId:n,interactionId:ye(n,"approval"),timestamp:e.occurredAt,source:r,toolFamily:"paperclip",activityClass:"permission_request",title:m,summary:f,consequence:o?"high":"medium",tone:"focused",request:{kind:"approval"},semantic:g,context:{items:[...Ja(i)?[Br(Ja(i))]:[],...a?[Vr(a)]:[],...c?[Kr(c)]:[],...u?[Wr(u)]:[],...d?.length?[Pp(String(d.length))]:[]]},provenance:{whyNow:On(o),factors:o?["budget stop","approval","operator decision"]:["approval","operator decision"]}}}case"approval.decided":case"approval.approved":case"approval.rejected":case"approval.revision_requested":return{id:`${e.eventId}:resolved`,type:"task.completed",taskId:n,timestamp:e.occurredAt,source:r,summary:P(e.payload,"status")??(t==="approval.approved"?"Approval approved":t==="approval.rejected"?"Approval rejected":t==="approval.revision_requested"?"Revision requested":"Approval resolved")};case"issue.created":{let i=Ya(e,"Issue created"),o=P(e.payload,"description")??"A new issue entered Paperclip.",a=Za(e.payload);return a==="running"?{id:`${e.eventId}:issue-created`,type:"task.started",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,semantic:Qe({id:`${e.eventId}:issue-created`,type:"task.started",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,semanticHints:Xr(e)})}:{id:`${e.eventId}:issue-created-status`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,activityClass:"status_update",status:a,semantic:Qe({id:`${e.eventId}:issue-created-status`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,activityClass:"status_update",status:a,semanticHints:Xr(e)})}}case"issue.updated":{let i=Ya(e,"Issue updated"),o=P(e.payload,"summary")??P(e.payload,"description"),a=Za(e.payload);return{id:`${e.eventId}:issue-updated`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,activityClass:"status_update",status:a,semantic:Qe({id:`${e.eventId}:issue-updated`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:i,...o!==void 0?{summary:o}:{},activityClass:"status_update",status:a,semanticHints:Xr(e)})}}case"issue.comment.created":case"issue.comment_added":{let i=Ya(e,"Issue comment"),o=P(e.payload,"bodySnippet")??"A comment added new context in Paperclip.",a=Za(e.payload);return{id:`${e.eventId}:issue-comment`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,activityClass:"follow_up",status:a,progress:void 0,semantic:Qe({id:`${e.eventId}:issue-comment`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:i,summary:o,activityClass:"follow_up",status:a,semanticHints:Xr(e)})}}case"agent.run.started":return{id:`${e.eventId}:run-started`,type:"task.started",taskId:n,timestamp:e.occurredAt,source:r,title:P(e.payload,"title")??"Agent run started",summary:P(e.payload,"summary")??"A Paperclip agent began a new run."};case"agent.run.failed":{let i=P(e.payload,"title")??"Agent run failed",o=P(e.payload,"summary")??Gp();return{id:`${e.eventId}:run-failed`,type:"human.input.requested",taskId:n,interactionId:ye(n,"run-failed"),timestamp:e.occurredAt,source:r,toolFamily:"paperclip",activityClass:"tool_failure",title:i,summary:o,consequence:"high",tone:"critical",request:{kind:"approval"},semantic:Qe({id:`${e.eventId}:run-failed`,type:"human.input.requested",taskId:n,interactionId:ye(n,"run-failed"),timestamp:e.occurredAt,source:r,toolFamily:"paperclip",activityClass:"tool_failure",title:i,summary:o,request:{kind:"approval"},riskHint:"high",semanticHints:CE()}),provenance:{whyNow:Oa(),factors:["run failed","operator review"]}}}case"agent.run.finished":return{id:`${e.eventId}:run-finished`,type:"task.completed",taskId:n,timestamp:e.occurredAt,source:r,summary:P(e.payload,"summary")??"Agent run finished"};case"agent.run.cancelled":return{id:`${e.eventId}:run-cancelled`,type:"task.cancelled",taskId:n,timestamp:e.occurredAt,source:r,reason:P(e.payload,"summary")??"Agent run cancelled"};case"agent.status_changed":{let i=P(e.payload,"status")?.toLowerCase();if(i==="pending_approval"){let u=Zp(),d=Yp();return{id:`${e.eventId}:status-pending-approval`,type:"human.input.requested",taskId:n,interactionId:ye(n,"pending-approval"),timestamp:e.occurredAt,source:r,toolFamily:"paperclip",activityClass:"permission_request",title:u,summary:d,consequence:"medium",tone:"focused",request:{kind:"approval"},semantic:Qe({id:`${e.eventId}:status-pending-approval`,type:"human.input.requested",taskId:n,interactionId:ye(n,"pending-approval"),timestamp:e.occurredAt,source:r,toolFamily:"paperclip",activityClass:"permission_request",title:u,summary:d,request:{kind:"approval"},riskHint:"medium",semanticHints:xE()}),provenance:{whyNow:Na(),factors:["pending approval"]}}}let o=EE(e.payload),a="Agent status changed",c=i?`Agent status is now ${i}.`:"Agent status changed.";return{id:`${e.eventId}:status-updated`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:a,summary:c,activityClass:"session_status",status:o,semantic:Qe({id:`${e.eventId}:status-updated`,type:"task.updated",taskId:n,timestamp:e.occurredAt,source:r,title:a,summary:c,activityClass:"session_status",status:o})}}default:return null}}function PE(e){let t={...e.semantic?.confidence?{confidence:e.semantic.confidence}:{},...e.semantic?.relationHints?.length?{relationHints:e.semantic.relationHints}:{},...e.semantic?.whyNow?{whyNow:e.semantic.whyNow}:{},...e.semantic?.factors?.length?{factors:e.semantic.factors}:{},...e.semantic?.intentFrame?{intentFrame:e.semantic.intentFrame}:{}};return Object.keys(t).length>0?t:void 0}function Nm(e){let t=Xa(e);if(!t)return null;let n={id:t.id,taskId:t.taskId,timestamp:t.timestamp,source:t.source,semanticHints:PE(t)};switch(t.type){case"task.started":return{...n,type:"task.started",title:t.title,...t.summary?{summary:t.summary}:{}};case"task.updated":return{...n,type:"task.updated",title:t.title,...t.summary?{summary:t.summary}:{},...t.toolFamily?{toolFamily:t.toolFamily}:{},...t.activityClass?{activityClass:t.activityClass}:{},status:t.status,...typeof t.progress=="number"?{progress:t.progress}:{},...t.context?{context:t.context}:{}};case"human.input.requested":return{...n,type:"human.input.requested",interactionId:t.interactionId,...t.toolFamily?{toolFamily:t.toolFamily}:{},...t.activityClass?{activityClass:t.activityClass}:{},title:t.title,summary:t.summary,request:t.request,...t.context?{context:t.context}:{},...t.provenance?{provenance:t.provenance}:{},...t.consequence?{riskHint:t.consequence}:{}};case"task.completed":return{...n,type:"task.completed",...t.summary?{summary:t.summary}:{}};case"task.cancelled":return{...n,type:"task.cancelled",...t.reason?{reason:t.reason}:{}};default:return null}}var OE=["activity.logged","approval.created","approval.decided","approval.approved","approval.rejected","approval.revision_requested","issue.created","issue.updated","issue.comment.created","issue.comment_added","agent.run.started","agent.run.failed","agent.run.finished","agent.run.cancelled","agent.status_changed"],NE=new Set(["issue.document_created","issue.document_updated","issue.document_deleted"]),LE=1e4;function ME(e,t){return!((t==="issue.created"||t==="issue.updated"||t==="issue.comment.created"||t==="issue.comment_added")&&e.captureIssueLifecycle===!1||t==="agent.run.failed"&&e.captureRunFailures===!1)}async function DE(e,t,n){if(n.entityType!=="issue"||!n.entityId)return n;let r=n.payload&&typeof n.payload=="object"?n.payload:{};try{let i=`issue:${n.entityId}:detail`,o=t.getCachedHostValue(n.companyId,i)??await e.issues.get(n.entityId,n.companyId);return o?(t.setCachedHostValue(n.companyId,i,o,LE),{...n,payload:{...r,title:typeof r.title=="string"?r.title:o.title,issueTitle:typeof r.issueTitle=="string"?r.issueTitle:o.title,identifier:typeof r.identifier=="string"?r.identifier:o.identifier,description:typeof r.description=="string"?r.description:o.description,status:typeof r.status=="string"?r.status:o.status}}):n}catch(i){return e.logger.warn("Failed to enrich issue payload for Aperture",{issueId:n.entityId,eventType:n.eventType,error:i instanceof Error?i.message:String(i)}),n}}async function FE(e,t,n){let r=await e.config.get();if(!ME(r,n.eventType))return;if(n.eventType==="activity.logged"){let d=n.payload&&typeof n.payload=="object"?n.payload:{},m=typeof d.action=="string"?d.action:void 0,f=typeof d.entityType=="string"?d.entityType:n.entityType;f==="issue"&&m&&NE.has(m)&&(t.invalidateHostCache(n.companyId,{keys:n.entityId?[`issue:${n.entityId}:documents`,`issue:${n.entityId}:relations`]:[],prefixes:["issues:blocked","issues:in_review"]}),Pe(e,{companyId:n.companyId,reason:"event",eventType:`activity.${m}`,updatedAt:n.occurredAt,counts:t.getSnapshot(n.companyId)?.counts??{now:0,next:0,ambient:0,total:0}}),e.logger.info("Triggered Focus refresh from activity log event",{companyId:n.companyId,action:m,entityId:n.entityId,entityType:f}));return}n.entityType==="issue"&&n.entityId?t.invalidateHostCache(n.companyId,{keys:[`issue:${n.entityId}:detail`,`issue:${n.entityId}:comments`,`issue:${n.entityId}:relations`],prefixes:["issues:blocked","issues:in_review"]}):n.entityType==="agent"&&t.invalidateHostCache(n.companyId,{keys:["agents:all"]});let i=await DE(e,t,n),o=Nm(i),a=o?Pm(o):Xa(i);if(!a)return;i.entityType==="approval"&&t.invalidateApprovals(i.companyId);let c={kind:"event",id:`${i.eventId}:event`,occurredAt:i.occurredAt,source:{eventType:i.eventType,entityId:i.entityId,entityType:i.entityType},...o?{sourceEvent:o}:{},apertureEvent:a},{snapshot:u}=await qe(e,t,i.companyId,()=>{let{ledger:d,snapshot:m}=t.applyEvent(i.companyId,c);return{ledger:d,snapshot:m}});Pe(e,{companyId:i.companyId,reason:"event",eventType:i.eventType,updatedAt:u.updatedAt,counts:u.counts}),e.logger.info("Captured Paperclip event for Aperture",{companyId:i.companyId,eventType:i.eventType,entityId:i.entityId,mappedType:a.type})}function Lm(e,t){for(let n of OE)e.events.on(n,async r=>{await FE(e,t,r)})}var Mm=es({async setup(e){let t=new Mr;gm(e,t),Cp(e,t),Lm(e,t)},async onHealth(){return{status:"ok",message:"Paperclip Aperture worker is running"}}}),n0=Mm;ms(Mm,import.meta.url);export{n0 as default};
|