@pqpo/pragma 0.1.0-next.22 → 0.1.0-next.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -8798,7 +8798,7 @@ ${r}`;let s=r.slice(4,i).split(`
|
|
|
8798
8798
|
${s.join(`
|
|
8799
8799
|
`)}
|
|
8800
8800
|
---
|
|
8801
|
-
${r.slice(i+5)}`}o(NZo,"ensureFrontmatter");var prn={id:"qodercli-local",kind:"qodercli-local",displayName:"Qoder CLI Local",capabilities:{targets:["agent"],executionLocations:["local"]}},oxe="Implemented in the adapter; an executed Runtime probe evidence bundle is not recorded yet.";function Wai(t={}){let e=t.mcpToolRegistryPool??jb(),n={...prn,...t.descriptor,kind:t.descriptor?.kind??prn.kind,capabilities:{...prn.capabilities,...t.descriptor?.capabilities}},r=t.listModels??hai(t),i=o(()=>$r.native($r.degraded(oxe)),"implemented"),s=fD({readiness:$r.degraded(oxe),pool:e,resourcePrefix:"qodercli"}),a=$r.session({id:"qodercli.skills",readiness:$r.degraded(oxe),async prepare(d){let u=d.persistence.spec?.sessionDir??d.paths.runtimeSessionDir("qodercli");return await jai(d.agent,u)}}),c=$r.session({id:"qodercli.permissions",readiness:$r.degraded(oxe),prepare(){return{mode:t.permissionMode??"default"}}}),l=gv({availability:i(),authentication:i(),modelDiscovery:i(),modelSelection:i(),thinking:i(),freshSession:i(),resume:i(),systemPrompt:i(),startupMessages:i(),textStreaming:i(),reasoningStreaming:i(),nativeToolLifecycle:i(),mcp:s,permissions:c,userInteraction:i(),skills:a,attachmentImage:i(),attachmentFile:i(),attachmentDirectory:i(),usage:i(),contextWindow:i(),compaction:$r.native($r.degraded(oxe,{compactionModes:["manual","events"]})),cancellation:i(),steering:i(),close:i(),cleanup:i()});return Cv({descriptor:n,features:l,canUse:t.canUse??(()=>Nni(t)),listModels:r,outputRetryLimit:t.outputRetryLimit,resolvePersistence(d){return{mode:"checkpoint",sessionDir:d.paths.runtimeSessionDir("qodercli"),checkpointOn:["session.created","runtimeSessionId.changed","turn.completed","context.compacted","session.destroyed"],metadata:{format:"qodercli-managed-config"}}},async createSession(d){let u=performance.now();qai(d.request.modelSelection?.model.providerId);let p=d.persistence.spec?.sessionDir??d.paths.runtimeSessionDir("qodercli"),m=zai(d.logger,"prepare_managed_config",u,async()=>await Aai({sessionDir:p,externalCommandsCacheDir:d.paths.pragma.qoderCliExternalCommandsCacheRoot(),env:d.processEnvironment,logger:d.logger})),[h]=await Promise.all([m]),g=d.features.mcp,b=d.features.skills,y=d.persistence.restoredRuntimeSessionId??d.request.runtimeSession?.id??"";if(y!==""&&!await zai(d.logger,"restore_session_lookup",u,async()=>await Gai(Hai(h.configDir,"projects"),y)))throw new Error(`Qoder CLI runtime session file was not found: ${y}.`);return d.logger.info("runtime.qodercli_session_ready","Qoder Session preparation completed",{elapsedMs:mrn(u),systemPromptCharacters:d.agentContext.systemPrompt.length,toolCount:g.registry.tools.length,mcpOpenedConnections:g.lease.stats.openedConnections,mcpReusedConnections:g.lease.stats.reusedConnections,mcpCoalescedConnections:g.lease.stats.coalescedConnections}),{agent:d.agent,auth:_Xe(t),executablePath:tG(t),env:{...d.processEnvironment},configDir:h.configDir,externalCommandsCacheDir:h.externalCommandsCacheDir,mcpServerUrl:g.registration.url,plugin:b,logger:d.logger,humanInteractionHandler:d.request.humanInteractionHandler,permissionMode:d.features.permissions.mode,defaultModelName:d.request.modelSelection?.model.modelId??t.defaultModelName,defaultThinkingLevel:d.request.modelSelection?.thinkingLevel??t.defaultThinkingLevel,contextWindowOverride:t.contextWindowTokens,compactModelName:t.compactModelName,systemPrompt:d.agentContext.systemPrompt,toolRuntimeState:g.toolRuntimeState,tokenCounter:t.tokenCounter??gc,messages:[],toolNames:new Map,pendingStartupMessages:y===""?d.agentContext.startupMessages:[],sessionId:y}},readSession(d){return{runtimeSessionId:d.sessionId,messages:d.messages}},listMessages:xai,consumeStartupMessages:Iai,async startTurn(d,u){return qai(u.modelSelection?.model.providerId),await wai(d,u)},mapEvent:Sai,readContextWindow:Cai,compactContext:Tai,cancelTurn:SXe,steerTurn:kai,async closeSession(d){await Rai(d)}},{sessionRestoreHandler:t.sessionRestoreHandler,sessionSyncCallback:t.sessionSyncCallback,createProcessEnvironment:o(()=>({...t.env??process.env}),"createProcessEnvironment")})}o(Wai,"createQoderCliRuntime");async function zai(t,e,n,r){let i=performance.now(),s=await r();return t.info("runtime.qodercli_prepare_phase",`Qoder preparation phase completed: ${e}`,{phase:e,durationMs:mrn(i),elapsedMs:mrn(n)}),s}o(zai,"timedQoderPhase");function mrn(t){return Math.round((performance.now()-t)*100)/100}o(mrn,"qoderElapsedMs");async function Gai(t,e){let n=await DZo(t,{withFileTypes:!0}).catch(()=>[]);for(let r of n){let i=Hai(t,r.name);if(r.isDirectory()){if(await Gai(i,e))return!0}else if(r.isFile()&&r.name===`${e}.jsonl`)return!0}return!1}o(Gai,"nativeSessionFileExists");function qai(t){if(t!==void 0&&t!=="qoder")throw new Error("Qoder CLI runtime only supports provider qoder.")}o(qai,"assertProvider");$S();Mn();Mn();_me();import{join as frn}from"node:path";Mn();pSt();q7();uSt();gSt();ame();J1();function Qai(t){let e,n=o(()=>e??=Xae({pragmaHome:t.pragmaHome}),"getFeed"),r={append:o(async b=>await(await n()).append(b),"append"),read:o(async b=>await(await n()).read(b),"read"),inspect:o(async()=>await(await n()).inspect(),"inspect"),maintain:o(async b=>await(await n()).maintain(b),"maintain"),forgetCorrelation:o(async b=>await(await n()).forgetCorrelation(b),"forgetCorrelation"),subscribeChanges:o(b=>{let y=!1,_;return n().then(A=>{y||(_=A.subscribeChanges?.(b))},A=>{i.warn("canonical.subscription_degraded","Canonical delivery wake needs recovery",{moduleId:"pragma.mission-delivery",errorCode:"MISSION_DELIVERY_RECEIVE_FAILED",error:A})}),()=>{y=!0,_?.()}},"subscribeChanges"),close:o(async()=>{e!==void 0&&(await(await e).close(),e=void 0)},"close")},i=au(t.loggerProvider,{component:"local-host.memory"}),s=F0({...t,canonicalEventFeed:r}),a=new hr(t),c,l=o(()=>c??=(async()=>{let b=await hSt({...t,logger:i,executionStore:s,canonical:r}),y=tq({root:a.secretStoreRoot(),dataRoot:a.dataRoot(),keychain:eq()}),_=lSt({...t,data:b,secrets:y,onDiagnostic:o(A=>{A!==void 0&&i.warn("memory.attention_degraded","Memory Attention is degraded.",{subsystem:"memory.attention",code:A})},"onDiagnostic")});return{data:b,contexts:_}})(),"get"),d=o(()=>i.warn("memory.delivery_degraded","Memory is unavailable; execution can continue.",{subsystem:"memory",code:"memory_delivery_unavailable"}),"degraded"),u=o(async()=>{try{if(c!==void 0){let{data:b,contexts:y}=await c;try{await y.stop()}finally{try{await b.scheduler.stop()}finally{b.episodic.close(),b.semantic.close(),b.knowledge.close(),b.skill.close()}}}}catch{d()}finally{c=void 0}},"stopIdleMemory"),p,m=!1,h,g=dSt({onError:d,ports:{bindings:o(async b=>{let{data:y,contexts:_}=await l();return(await y.policies.getGlobal()).policy.enabled!=="enabled"?[]:[{namespace:"memory",store:_.createContextStore(b)}]},"bindings"),register:o(async b=>await(await l()).data.registerExecutionContext(b),"register"),setConversationState:o(async b=>await(await l()).data.setConversationState(b),"setConversationState"),stopMission:o(async b=>{c!==void 0&&await(await c).contexts.stopMission(b)},"stopMission"),flushDelivery:o(async()=>{c!==void 0&&await(await c).data.flushDelivery()},"flushDelivery"),pause:o(async()=>{p=t.onPause?.(),p?.catch(d),await u(),await s.drainCanonicalEvents()},"pause"),beforeClose:t.beforeFeedClose,close:o(async()=>{await u();let b=[];try{await s.close()}catch(y){d(),b.push(y)}try{await r.close()}catch(y){d(),b.push(y)}if(b.length>0)throw h=new AggregateError(b,"Mission Memory resource close failed."),h;h=void 0,m=!0},"close")}});return{canonical:r,hasCanonicalSource:o(()=>e!==void 0,"hasCanonicalSource"),executionStore:s,...g,dispose:o(async()=>{if(m)return;let b=Date.now()+5e3;do{if(await g.close(),h!==void 0)throw h;if(m)return;await new Promise(y=>setTimeout(y,10))}while(Date.now()<b);throw new Error("MISSION_MEMORY_SHUTDOWN_PENDING")},"dispose"),pause:o(async()=>{await g.pause();let b=p;await b,p===b&&(p=void 0)},"pause")}}o(Qai,"createLocalHostRunMemory");Xi();$S();RSt();MSt();TSt();OK();ESt();ISt();$wt();Gz();Ut();Mn();D0();Xi();kLe();Gz();oLe();SSt();ome();import{randomUUID as LZo}from"node:crypto";import{readFile as BZo}from"node:fs/promises";import{join as FZo}from"node:path";var $Zo=f.object({schemaVersion:f.literal("pragma.desktop-project-identity-migrations/v1"),projectId:f.string().min(1),migrations:f.array(f.object({kind:f.enum(["Expert","ExpertTeam","Flow","Automation","Capability","ContextStore","RuntimeProfile"]),sourceId:f.string().min(1),targetId:f.string().min(1)}).strict())}).strict();function Vai(t){let e=new hr(t),n=sLe({storesPath:e.contextStoresRoot()}),r=o(async(i,s)=>{let a=await t.compiler.reader.getRevision(i.id,i.revision);if(a===void 0)throw new Error(`Project Revision not found: ${i.id}@${i.revision}.`);if(t.compiler.reader.withOpenRevision!==void 0)return await t.compiler.reader.withOpenRevision(a,s);let c=await t.compiler.reader.openRevision(a);try{return await s(c)}finally{await c.dispose()}},"withProject");return{createExecutionContextResources:o(async({mission:i,executionStore:s,expertSessionStore:a,purpose:c,assertExecutionOwnership:l})=>{if(c==="stop")return{runtimes:t.runtimes,appOptions:{pragmaHome:t.pragmaHome,executionStore:s,expertSessionStore:a,runtimes:t.runtimes,usageSink:t.usageSink,loggerProvider:t.loggerProvider},setToolPermissionMode:o(()=>{throw new Error("Cannot change tool permissions in a stop-only Mission context.")},"setToolPermissionMode")};let d=LZo(),u,p=await t.missions.readBranchHistory(i.id),m=p===void 0?[]:[{namespace:"branch-history",storeName:"Inherited Mission history",store:new wa(wSt(p)),required:!0,mutationApproval:"none"}],h=o(async()=>{await l?.();let g=await t.missions.get(i.id),b=await Promise.all(g.contextMounts.map(async y=>{if(y.kind!=="context-store")throw en({code:"DEPENDENCY_UNAVAILABLE",category:"dependency",message:"This Node Host has no Mission Knowledge draft adapter configured.",details:{reason:"mission_knowledge_draft_adapter_unavailable",mountKind:y.kind}});let _=await n.resolve(y.storeId);return{namespace:avt(y.storeId),storeName:_.name,store:new ZTe(_.store),required:!0,mutationApproval:"none"}}));return[{namespace:uBn,store:new VDe({pragmaHome:t.pragmaHome,resolveVisibleExecutionIds:o(async()=>[...await(u??=nK(t.missions,i.id))],"resolveVisibleExecutionIds")}),required:!1},...m,...await pq({pragmaHome:t.pragmaHome,missionId:i.id}),...await t.memory.bindings({missionId:i.id,bindingId:d,goal:i.goal,projectId:i.project.id}),...b]},"resolveHostContextBindings");return{runtimes:t.runtimes,appOptions:{pragmaHome:t.pragmaHome,executionStore:s,expertSessionStore:a,runtimes:t.runtimes,usageSink:t.usageSink,loggerProvider:t.loggerProvider,hostContextBindings:await h(),resolveHostContextBindings:h},setToolPermissionMode:o(g=>{if(g!==i.toolPermissionMode)throw en({code:"COMMAND_REJECTED",category:"conflict",message:"Changing tool permissions requires a Node Runtime permission adapter."})},"setToolPermissionMode")}},"createExecutionContextResources"),createCompileService:o(()=>({...t.compiler.service,createRequestScope:o((i,s)=>({...t.compiler.service.createRequestScope(i,s),request:i}),"createRequestScope")}),"createCompileService"),readProjectResources:o(async i=>i.id==="built_in"?CS.flatMap(eOe):await r(i,async s=>s.listResources()),"readProjectResources"),readIdentityMigrations:o(async i=>{if(i.id==="built_in")return[];let s;try{s=JSON.parse(await BZo(FZo(e.projectsRoot(),i.id,"identity-migrations.json"),"utf8"))}catch(c){if(typeof c=="object"&&c!==null&&"code"in c&&c.code==="ENOENT")return[];throw c}let a=$Zo.parse(s);if(a.projectId!==i.id)throw new Error("Project identity migration index belongs to another Project.");return a.migrations},"readIdentityMigrations"),withContextMountLocks:o(async(i,s)=>{let a=[...new Set(i)].toSorted(),c=o(async l=>{let d=a[l];return d===void 0?await s():await n.withRevisionLock(d,async()=>await c(l+1))},"lock");return await c(0)},"withContextMountLocks"),assertContextMountAvailable:o(async i=>{if(i.kind==="context-store"){await n.resolve(i.storeId);return}throw en({code:"DEPENDENCY_UNAVAILABLE",category:"dependency",message:"This Node Host has no Mission Knowledge draft adapter configured.",details:{reason:"mission_knowledge_draft_adapter_unavailable",mountKind:i.kind}})},"assertContextMountAvailable"),releaseMissionClaim:o(async()=>{throw en({code:"COMMAND_REJECTED",category:"conflict",message:"This Node Host has no Mission Knowledge revision adapter configured."})},"releaseMissionClaim")}}o(Vai,"createLocalHostNodeExecutionResourcePorts");H7();CSt();CDe();var UZo=["run","human-interaction","idempotency","mission.query","mission.watch","mission.resume","mission.send","mission.steer","mission.respond","mission.interrupt","mission.queue.list","mission.queue.remove","mission.queue.resume","mission.queue.steer","workspace.resolve","board.shared.read"];function jZo(){return{schemaVersion:"pragma.integration-capability/v1",protocol:"pragma.integration/v2",readableVersions:["pragma.integration/v1","pragma.integration/v2"],migratableFromVersions:[],features:[...UZo]}}o(jZo,"createLocalHostIntegrationCapability");function zZo(t){if(qZo(t.runtimes))return t.runtimes;if(t.defaultRuntimeId===void 0)throw new Error("A default Runtime id is required when composing adapters.");return Hwt({runtimes:t.runtimes,defaultRuntimeId:t.defaultRuntimeId,runtimeAliases:t.runtimeAliases})}o(zZo,"resolveNodeRuntime");function qZo(t){return!Array.isArray(t)&&typeof t=="object"&&t!==null}o(qZo,"isRuntimeResolver");function Kai(t){let e=zZo(t),n=t.integrationCapability??(async()=>jZo()),r=HEt(),i=r.createLogger({component:"local-host.mission-controller"}),s=lq({pragmaHome:t.pragmaHome,runtimes:e,loggerProvider:r}),a=xEt({pragmaHome:t.pragmaHome,runtimes:e,loggerProvider:r,compiler:s}),c=zwt({pragmaHome:t.pragmaHome,projectId:t.projectId,runtimes:e,loggerProvider:r,compiler:s,reader:s.reader}),l=Owt({missionsPath:frn(t.pragmaHome,"data","missions")}),d=o(async V=>{try{return await l.get(V)}catch(le){if(le instanceof br&&le.code==="mission_not_found")return;throw le}},"readMissionEnvelope"),u,p=Uwt({logger:i,missionsPath:frn(t.pragmaHome,"data","missions"),missionPath:l.storagePath,readMission:d,recoverSemanticWrite:o(async({missionId:V,guard:le})=>{if(u===void 0)throw new Error("Mission repository replay is not initialized.");await p.controller.recoverSemanticWrite({missionId:V,guard:le,replay:u})},"recoverSemanticWrite"),onPollingError:o(({missionId:V,error:le,consecutiveFailures:me})=>i.warn("mission.controller_inbox_poll_failed","Mission Inbox polling failed; the durable command remains recoverable.",{missionId:V,consecutiveFailures:me,error:le}),"onPollingError"),onLeaseLost:o(V=>i.warn("mission.controller_lease_lost","Mission controller lease was lost; pending durable work can be reacquired.",{missionId:V}),"onLeaseLost")}),{controller:m,query:h,watch:g,ownerScope:b}=p,y=vSt(l,{controller:m,ownerScope:b,setSemanticWriteReplay:o(V=>{u=V},"setSemanticWriteReplay")}),_=xSt({store:y,controller:m,readDefaultProject:o(async()=>{let V=await s.reader.getHead(t.projectId??"studio");return V===void 0?void 0:{id:V.projectId,revision:V.revision}},"readDefaultProject")}),A,v=!1,E=new Set,S=new Set,w=Qai({pragmaHome:t.pragmaHome,loggerProvider:r,beforeFeedClose:o(async()=>{if(await Promise.all(E),await I.drainCanonicalEvents(),A!==void 0){let V=await A;V.pause(),await V.takeCustody(),await V.close()}w.hasCanonicalSource()&&await M.drain(),await M.close()},"beforeFeedClose")}),I=w.executionStore,C=Zw({pragmaHome:t.pragmaHome,executions:I}),T=h2e({controller:m,executions:I,sessions:C,repositorySessionId:o(async V=>{try{return(await l.get(V)).execution?.sessionId}catch(le){if(le instanceof br&&le.code==="mission_not_found")return;throw le}},"repositorySessionId")}),N=Vpe({sessions:C,resolveSessionId:T,steeringFeatures:o(async(V,le)=>{let me=le.contexts[le.rootContextId];if(me===void 0)return{supportsSteer:!1};let K=await e.resolve({binding:me.runtime,modelSelection:me.modelSelection}).catch(()=>{});return{supportsSteer:K?.adapter.descriptor.capabilities?.supportsSteer===!0,steeringRecovery:K?.adapter.features.steering.steeringRecovery}},"steeringFeatures"),resolvePromptMetadata:o(async V=>({hasAttachments:HZo((await I.getInvocation(V.executionId,V.executionId))?.input)}),"resolvePromptMetadata")}),M=Qwt({path:frn(t.pragmaHome,"data","usage","observations.json"),feed:w.canonical,deliveryPath:new hr(t).localHostUsageDelivery(),onError:o(V=>i.warn("usage.delivery_degraded","Usage delivery needs recovery",{moduleId:"pragma.local-host-usage",errorCode:"USAGE_DELIVERY_RETRY_PENDING",error:V}),"onError")}),L=o(async V=>await a({ref:V.ref,workspace:V.workspace,purpose:V.purpose})??await c.resolve(V),"resolveExecutor"),B=new dh,O=m2e({controller:m,ownerScope:b}),q=o(()=>A??=kSt({path:new hr(t).missionDelivery(),feed:w.canonical,logger:i,usage:o(async(V,le)=>await M.reconcile([le]),"usage"),terminal:PSt({ownerScope:b,ownerLifetime:"request",withAdmission:o((V,le)=>B.admit(V,le),"withAdmission"),missions:y,executions:I,projector:O,memory:o(async(V,le)=>await w.reconcile(V.id,le),"memory")})}).catch(V=>{throw A=void 0,V}),"getMissionDelivery"),z=o(async V=>await d(V)!==void 0,"hasEnvelope"),W=o(V=>{if(v||S.has(V))return;S.add(V);let le=(async()=>{let me=await d(V);if(me?.execution===void 0)return;let K=await q();await K.register(me,me.execution.id,me.execution.inputMessageId);let Q=b.currentGuard(V),X=Q??await b.acquireForRecovery(V);try{await K.settleMission(V)}finally{Q===void 0&&!v&&await b.release(V,X)}})().catch(me=>{ps.safeParse(me).data?.code!=="MISSION_LEASE_HELD"&&i.warn("mission.delivery_degraded","Mission receipt recovery needs attention",{missionId:V,moduleId:"pragma.mission-delivery",errorCode:"MISSION_DELIVERY_UNAVAILABLE",error:me})});E.add(le),le.finally(()=>{E.delete(le),S.delete(V)})},"wakeReceiptRecovery"),G=mvt({lifecycle:p,prepareShutdown:o(async()=>{v=!0,await Promise.all(E)},"prepareShutdown"),closeResources:o(()=>w.dispose(),"closeResources"),client:t.client,logger:i,resolveExecutor:L,beforeStart:o(async V=>{await _.ensureFreshMission(V)},"beforeStart"),assertMission:o(async V=>{let le=await z(V),me=await m.readSnapshot({missionId:V});if(!le&&!me.events.some(K=>K.type==="mission.created"))throw en({code:"MISSION_NOT_FOUND",category:"not_found",message:`Mission not found: ${V}.`,details:{missionId:V}})},"assertMission"),onOwnerStartError:o(({missionId:V,error:le})=>i.warn("mission.controller_owner_start_failed","Mission command is durable, but its owner could not be started yet.",{missionId:V,error:le}),"onOwnerStartError"),execution:{pragmaHome:t.pragmaHome,missions:y,executionStore:I,expertSessionStore:C,executionOwner:B,ownerScope:b,ownerLifetime:"request",controllerFacts:{controller:m,hasEnvelope:z,resolveSessionId:T,resolveMissionBinding:o(async V=>LS((await m.readSnapshot({missionId:V})).events),"resolveMissionBinding"),executors:L,compiler:s,usageSink:M,createHostContextBindings:o(async({missionId:V,request:le})=>[...await pq({pragmaHome:t.pragmaHome,missionId:V}),...await w.bindings({missionId:V,bindingId:le.requestId,goal:le.prompt??"",...le.project===void 0?{}:{projectId:le.project.projectId}})],"createHostContextBindings"),memory:{linked:o(({missionId:V,executionId:le,projectId:me})=>w.register({missionId:V,executionId:le,...me===void 0?{}:{projectId:me}}),"linked"),recovering:o((V,le)=>w.resume(V,le),"recovering"),admitting:o((V,le)=>w.beginPrompt(V,le),"admitting"),terminal:o((V,le,me)=>w.complete(V,le,me),"terminal"),release:o(()=>w.pause(),"release")}},runtimes:e,loggerProvider:r,resourcePorts:Vai({pragmaHome:t.pragmaHome,runtimes:e,compiler:s,memory:w,usageSink:M,loggerProvider:r,missions:y}),assertExecutorReady:o(async(V,le)=>{le!==void 0&&await s.assertReady(le)},"assertExecutorReady"),invalidateRuntimeReadiness:o(()=>s.readiness.invalidate(),"invalidateRuntimeReadiness"),onExecutionLinked:o(V=>O.link(V),"onExecutionLinked"),onPromptAdmitting:o((V,le)=>w.beginPrompt(V,le),"onPromptAdmitting"),onExecutionContextLinked:o(async({mission:V,executionId:le,requestId:me})=>{try{if(await z(V.id)){let K=await q();await K.register(V,le,me),K.start()}}catch(K){i.warn("mission.delivery_degraded","Mission delivery needs recovery",{missionId:V.id,moduleId:"pragma.mission-delivery",errorCode:"MISSION_DELIVERY_UNAVAILABLE",error:K})}await w.register({missionId:V.id,executionId:le,projectId:V.project.id})},"onExecutionContextLinked"),commitExecutionTerminal:o(V=>O.terminal(V),"commitExecutionTerminal"),onExecutionCheckpointed:o(async({mission:V,executionId:le})=>{await w.complete(V.id,le,!0),await w.pause()},"onExecutionCheckpointed"),onExecutionTerminal:o(async V=>{await w.complete(V.mission.id,V.executionId),await w.pause()},"onExecutionTerminal")}}),ie=t2e({pragmaHome:t.pragmaHome,repository:l,controller:m,query:h,watch:g});return FSt({integrationCapability:n,catalog:{listProjects:o(async()=>await c.listProjects(),"listProjects"),getProjectRevision:o(async(V,le)=>await c.getProjectRevision(V,le),"getProjectRevision"),listExecutors:o(async()=>await[...await IEt({runtimes:e}),...await c.listExecutors()],"listExecutors")},missions:{...ie.missions,get:o(async V=>{let le=await ie.missions.get(V);return W(V),le},"get"),query:o(async V=>{let le=await ie.missions.query(V);return W(V.missionId),le},"query")},workspace:t.workspace,board:ie.board,queue:{list:o(async V=>await N.list(V),"list")},watch:ie.watch,missionApplication:G,runtime:{resolver:e}})}o(Kai,"createLocalHostNodeApplication");function HZo(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let e=t.attachments;return Array.isArray(e)&&e.length>0}o(HZo,"hasPromptAttachments");var bR="0.1.0-next.22";function Yai(t={}){return t.localHost??JZo()}o(Yai,"createCliLocalHost");function JZo(){let t=process.env.PRAGMA_HOME?.trim()||YZo(KZo(),".pragma"),e=qwt({pragmaHome:t}).getSync(),n=o(s=>r2e(process.env,s,e.policy),"getRuntimeEnvironment"),r=Ule(),i=[V4n({env:n("pragma.runtime.codex"),tokenCounter:r,sandboxMode:"workspace-write",approvalPolicy:"on-request"}),Sen({env:n("pragma.runtime.opencode"),permissionMode:"request-approval",tokenCounter:r}),Kqn({env:n("pragma.runtime.claude-code"),permissionMode:"default",tokenCounter:r}),Wai({env:n("pragma.runtime.qodercli"),permissionMode:"default",tokenCounter:r}),mqn({env:n("pragma.runtime.antigravity"),permissionMode:"request-approval",tokenCounter:r}),BZt({env:n("pragma.runtime.pi"),tokenCounter:r})];return Kai({pragmaHome:t,runtimes:i,defaultRuntimeId:"codex-local",runtimeAliases:{codex:"codex-local"},projectId:process.env.PRAGMA_PROJECT_ID?.trim()||void 0,client:{surface:"cli",version:bR,instanceId:WZo()},workspace:{stat:o(async s=>await VZo(s),"stat"),access:o(async(s,a)=>await GZo(s,a==="read"?4:2),"access"),realpath:o(async s=>await QZo(s),"realpath")}})}o(JZo,"createProductionLocalHost");function hrn(){return{onInterrupt(t){return process.on("SIGINT",t),()=>process.off("SIGINT",t)}}}o(hrn,"createProcessSignalPort");Xi();function grn(t,e){if(t.format==="text"){t.io.writeStdout(eea(e,t.requestId));return}if(t.format==="json"){t.io.writeStdout(`${JSON.stringify(xXe(t,e))}
|
|
8801
|
+
${r.slice(i+5)}`}o(NZo,"ensureFrontmatter");var prn={id:"qodercli-local",kind:"qodercli-local",displayName:"Qoder CLI Local",capabilities:{targets:["agent"],executionLocations:["local"]}},oxe="Implemented in the adapter; an executed Runtime probe evidence bundle is not recorded yet.";function Wai(t={}){let e=t.mcpToolRegistryPool??jb(),n={...prn,...t.descriptor,kind:t.descriptor?.kind??prn.kind,capabilities:{...prn.capabilities,...t.descriptor?.capabilities}},r=t.listModels??hai(t),i=o(()=>$r.native($r.degraded(oxe)),"implemented"),s=fD({readiness:$r.degraded(oxe),pool:e,resourcePrefix:"qodercli"}),a=$r.session({id:"qodercli.skills",readiness:$r.degraded(oxe),async prepare(d){let u=d.persistence.spec?.sessionDir??d.paths.runtimeSessionDir("qodercli");return await jai(d.agent,u)}}),c=$r.session({id:"qodercli.permissions",readiness:$r.degraded(oxe),prepare(){return{mode:t.permissionMode??"default"}}}),l=gv({availability:i(),authentication:i(),modelDiscovery:i(),modelSelection:i(),thinking:i(),freshSession:i(),resume:i(),systemPrompt:i(),startupMessages:i(),textStreaming:i(),reasoningStreaming:i(),nativeToolLifecycle:i(),mcp:s,permissions:c,userInteraction:i(),skills:a,attachmentImage:i(),attachmentFile:i(),attachmentDirectory:i(),usage:i(),contextWindow:i(),compaction:$r.native($r.degraded(oxe,{compactionModes:["manual","events"]})),cancellation:i(),steering:i(),close:i(),cleanup:i()});return Cv({descriptor:n,features:l,canUse:t.canUse??(()=>Nni(t)),listModels:r,outputRetryLimit:t.outputRetryLimit,resolvePersistence(d){return{mode:"checkpoint",sessionDir:d.paths.runtimeSessionDir("qodercli"),checkpointOn:["session.created","runtimeSessionId.changed","turn.completed","context.compacted","session.destroyed"],metadata:{format:"qodercli-managed-config"}}},async createSession(d){let u=performance.now();qai(d.request.modelSelection?.model.providerId);let p=d.persistence.spec?.sessionDir??d.paths.runtimeSessionDir("qodercli"),m=zai(d.logger,"prepare_managed_config",u,async()=>await Aai({sessionDir:p,externalCommandsCacheDir:d.paths.pragma.qoderCliExternalCommandsCacheRoot(),env:d.processEnvironment,logger:d.logger})),[h]=await Promise.all([m]),g=d.features.mcp,b=d.features.skills,y=d.persistence.restoredRuntimeSessionId??d.request.runtimeSession?.id??"";if(y!==""&&!await zai(d.logger,"restore_session_lookup",u,async()=>await Gai(Hai(h.configDir,"projects"),y)))throw new Error(`Qoder CLI runtime session file was not found: ${y}.`);return d.logger.info("runtime.qodercli_session_ready","Qoder Session preparation completed",{elapsedMs:mrn(u),systemPromptCharacters:d.agentContext.systemPrompt.length,toolCount:g.registry.tools.length,mcpOpenedConnections:g.lease.stats.openedConnections,mcpReusedConnections:g.lease.stats.reusedConnections,mcpCoalescedConnections:g.lease.stats.coalescedConnections}),{agent:d.agent,auth:_Xe(t),executablePath:tG(t),env:{...d.processEnvironment},configDir:h.configDir,externalCommandsCacheDir:h.externalCommandsCacheDir,mcpServerUrl:g.registration.url,plugin:b,logger:d.logger,humanInteractionHandler:d.request.humanInteractionHandler,permissionMode:d.features.permissions.mode,defaultModelName:d.request.modelSelection?.model.modelId??t.defaultModelName,defaultThinkingLevel:d.request.modelSelection?.thinkingLevel??t.defaultThinkingLevel,contextWindowOverride:t.contextWindowTokens,compactModelName:t.compactModelName,systemPrompt:d.agentContext.systemPrompt,toolRuntimeState:g.toolRuntimeState,tokenCounter:t.tokenCounter??gc,messages:[],toolNames:new Map,pendingStartupMessages:y===""?d.agentContext.startupMessages:[],sessionId:y}},readSession(d){return{runtimeSessionId:d.sessionId,messages:d.messages}},listMessages:xai,consumeStartupMessages:Iai,async startTurn(d,u){return qai(u.modelSelection?.model.providerId),await wai(d,u)},mapEvent:Sai,readContextWindow:Cai,compactContext:Tai,cancelTurn:SXe,steerTurn:kai,async closeSession(d){await Rai(d)}},{sessionRestoreHandler:t.sessionRestoreHandler,sessionSyncCallback:t.sessionSyncCallback,createProcessEnvironment:o(()=>({...t.env??process.env}),"createProcessEnvironment")})}o(Wai,"createQoderCliRuntime");async function zai(t,e,n,r){let i=performance.now(),s=await r();return t.info("runtime.qodercli_prepare_phase",`Qoder preparation phase completed: ${e}`,{phase:e,durationMs:mrn(i),elapsedMs:mrn(n)}),s}o(zai,"timedQoderPhase");function mrn(t){return Math.round((performance.now()-t)*100)/100}o(mrn,"qoderElapsedMs");async function Gai(t,e){let n=await DZo(t,{withFileTypes:!0}).catch(()=>[]);for(let r of n){let i=Hai(t,r.name);if(r.isDirectory()){if(await Gai(i,e))return!0}else if(r.isFile()&&r.name===`${e}.jsonl`)return!0}return!1}o(Gai,"nativeSessionFileExists");function qai(t){if(t!==void 0&&t!=="qoder")throw new Error("Qoder CLI runtime only supports provider qoder.")}o(qai,"assertProvider");$S();Mn();Mn();_me();import{join as frn}from"node:path";Mn();pSt();q7();uSt();gSt();ame();J1();function Qai(t){let e,n=o(()=>e??=Xae({pragmaHome:t.pragmaHome}),"getFeed"),r={append:o(async b=>await(await n()).append(b),"append"),read:o(async b=>await(await n()).read(b),"read"),inspect:o(async()=>await(await n()).inspect(),"inspect"),maintain:o(async b=>await(await n()).maintain(b),"maintain"),forgetCorrelation:o(async b=>await(await n()).forgetCorrelation(b),"forgetCorrelation"),subscribeChanges:o(b=>{let y=!1,_;return n().then(A=>{y||(_=A.subscribeChanges?.(b))},A=>{i.warn("canonical.subscription_degraded","Canonical delivery wake needs recovery",{moduleId:"pragma.mission-delivery",errorCode:"MISSION_DELIVERY_RECEIVE_FAILED",error:A})}),()=>{y=!0,_?.()}},"subscribeChanges"),close:o(async()=>{e!==void 0&&(await(await e).close(),e=void 0)},"close")},i=au(t.loggerProvider,{component:"local-host.memory"}),s=F0({...t,canonicalEventFeed:r}),a=new hr(t),c,l=o(()=>c??=(async()=>{let b=await hSt({...t,logger:i,executionStore:s,canonical:r}),y=tq({root:a.secretStoreRoot(),dataRoot:a.dataRoot(),keychain:eq()}),_=lSt({...t,data:b,secrets:y,onDiagnostic:o(A=>{A!==void 0&&i.warn("memory.attention_degraded","Memory Attention is degraded.",{subsystem:"memory.attention",code:A})},"onDiagnostic")});return{data:b,contexts:_}})(),"get"),d=o(()=>i.warn("memory.delivery_degraded","Memory is unavailable; execution can continue.",{subsystem:"memory",code:"memory_delivery_unavailable"}),"degraded"),u=o(async()=>{try{if(c!==void 0){let{data:b,contexts:y}=await c;try{await y.stop()}finally{try{await b.scheduler.stop()}finally{b.episodic.close(),b.semantic.close(),b.knowledge.close(),b.skill.close()}}}}catch{d()}finally{c=void 0}},"stopIdleMemory"),p,m=!1,h,g=dSt({onError:d,ports:{bindings:o(async b=>{let{data:y,contexts:_}=await l();return(await y.policies.getGlobal()).policy.enabled!=="enabled"?[]:[{namespace:"memory",store:_.createContextStore(b)}]},"bindings"),register:o(async b=>await(await l()).data.registerExecutionContext(b),"register"),setConversationState:o(async b=>await(await l()).data.setConversationState(b),"setConversationState"),stopMission:o(async b=>{c!==void 0&&await(await c).contexts.stopMission(b)},"stopMission"),flushDelivery:o(async()=>{c!==void 0&&await(await c).data.flushDelivery()},"flushDelivery"),pause:o(async()=>{p=t.onPause?.(),p?.catch(d),await u(),await s.drainCanonicalEvents()},"pause"),beforeClose:t.beforeFeedClose,close:o(async()=>{await u();let b=[];try{await s.close()}catch(y){d(),b.push(y)}try{await r.close()}catch(y){d(),b.push(y)}if(b.length>0)throw h=new AggregateError(b,"Mission Memory resource close failed."),h;h=void 0,m=!0},"close")}});return{canonical:r,hasCanonicalSource:o(()=>e!==void 0,"hasCanonicalSource"),executionStore:s,...g,dispose:o(async()=>{if(m)return;let b=Date.now()+5e3;do{if(await g.close(),h!==void 0)throw h;if(m)return;await new Promise(y=>setTimeout(y,10))}while(Date.now()<b);throw new Error("MISSION_MEMORY_SHUTDOWN_PENDING")},"dispose"),pause:o(async()=>{await g.pause();let b=p;await b,p===b&&(p=void 0)},"pause")}}o(Qai,"createLocalHostRunMemory");Xi();$S();RSt();MSt();TSt();OK();ESt();ISt();$wt();Gz();Ut();Mn();D0();Xi();kLe();Gz();oLe();SSt();ome();import{randomUUID as LZo}from"node:crypto";import{readFile as BZo}from"node:fs/promises";import{join as FZo}from"node:path";var $Zo=f.object({schemaVersion:f.literal("pragma.desktop-project-identity-migrations/v1"),projectId:f.string().min(1),migrations:f.array(f.object({kind:f.enum(["Expert","ExpertTeam","Flow","Automation","Capability","ContextStore","RuntimeProfile"]),sourceId:f.string().min(1),targetId:f.string().min(1)}).strict())}).strict();function Vai(t){let e=new hr(t),n=sLe({storesPath:e.contextStoresRoot()}),r=o(async(i,s)=>{let a=await t.compiler.reader.getRevision(i.id,i.revision);if(a===void 0)throw new Error(`Project Revision not found: ${i.id}@${i.revision}.`);if(t.compiler.reader.withOpenRevision!==void 0)return await t.compiler.reader.withOpenRevision(a,s);let c=await t.compiler.reader.openRevision(a);try{return await s(c)}finally{await c.dispose()}},"withProject");return{createExecutionContextResources:o(async({mission:i,executionStore:s,expertSessionStore:a,purpose:c,assertExecutionOwnership:l})=>{if(c==="stop")return{runtimes:t.runtimes,appOptions:{pragmaHome:t.pragmaHome,executionStore:s,expertSessionStore:a,runtimes:t.runtimes,usageSink:t.usageSink,loggerProvider:t.loggerProvider},setToolPermissionMode:o(()=>{throw new Error("Cannot change tool permissions in a stop-only Mission context.")},"setToolPermissionMode")};let d=LZo(),u,p=await t.missions.readBranchHistory(i.id),m=p===void 0?[]:[{namespace:"branch-history",storeName:"Inherited Mission history",store:new wa(wSt(p)),required:!0,mutationApproval:"none"}],h=o(async()=>{await l?.();let g=await t.missions.get(i.id),b=await Promise.all(g.contextMounts.map(async y=>{if(y.kind!=="context-store")throw en({code:"DEPENDENCY_UNAVAILABLE",category:"dependency",message:"This Node Host has no Mission Knowledge draft adapter configured.",details:{reason:"mission_knowledge_draft_adapter_unavailable",mountKind:y.kind}});let _=await n.resolve(y.storeId);return{namespace:avt(y.storeId),storeName:_.name,store:new ZTe(_.store),required:!0,mutationApproval:"none"}}));return[{namespace:uBn,store:new VDe({pragmaHome:t.pragmaHome,resolveVisibleExecutionIds:o(async()=>[...await(u??=nK(t.missions,i.id))],"resolveVisibleExecutionIds")}),required:!1},...m,...await pq({pragmaHome:t.pragmaHome,missionId:i.id}),...await t.memory.bindings({missionId:i.id,bindingId:d,goal:i.goal,projectId:i.project.id}),...b]},"resolveHostContextBindings");return{runtimes:t.runtimes,appOptions:{pragmaHome:t.pragmaHome,executionStore:s,expertSessionStore:a,runtimes:t.runtimes,usageSink:t.usageSink,loggerProvider:t.loggerProvider,hostContextBindings:await h(),resolveHostContextBindings:h},setToolPermissionMode:o(g=>{if(g!==i.toolPermissionMode)throw en({code:"COMMAND_REJECTED",category:"conflict",message:"Changing tool permissions requires a Node Runtime permission adapter."})},"setToolPermissionMode")}},"createExecutionContextResources"),createCompileService:o(()=>({...t.compiler.service,createRequestScope:o((i,s)=>({...t.compiler.service.createRequestScope(i,s),request:i}),"createRequestScope")}),"createCompileService"),readProjectResources:o(async i=>i.id==="built_in"?CS.flatMap(eOe):await r(i,async s=>s.listResources()),"readProjectResources"),readIdentityMigrations:o(async i=>{if(i.id==="built_in")return[];let s;try{s=JSON.parse(await BZo(FZo(e.projectsRoot(),i.id,"identity-migrations.json"),"utf8"))}catch(c){if(typeof c=="object"&&c!==null&&"code"in c&&c.code==="ENOENT")return[];throw c}let a=$Zo.parse(s);if(a.projectId!==i.id)throw new Error("Project identity migration index belongs to another Project.");return a.migrations},"readIdentityMigrations"),withContextMountLocks:o(async(i,s)=>{let a=[...new Set(i)].toSorted(),c=o(async l=>{let d=a[l];return d===void 0?await s():await n.withRevisionLock(d,async()=>await c(l+1))},"lock");return await c(0)},"withContextMountLocks"),assertContextMountAvailable:o(async i=>{if(i.kind==="context-store"){await n.resolve(i.storeId);return}throw en({code:"DEPENDENCY_UNAVAILABLE",category:"dependency",message:"This Node Host has no Mission Knowledge draft adapter configured.",details:{reason:"mission_knowledge_draft_adapter_unavailable",mountKind:i.kind}})},"assertContextMountAvailable"),releaseMissionClaim:o(async()=>{throw en({code:"COMMAND_REJECTED",category:"conflict",message:"This Node Host has no Mission Knowledge revision adapter configured."})},"releaseMissionClaim")}}o(Vai,"createLocalHostNodeExecutionResourcePorts");H7();CSt();CDe();var UZo=["run","human-interaction","idempotency","mission.query","mission.watch","mission.resume","mission.send","mission.steer","mission.respond","mission.interrupt","mission.queue.list","mission.queue.remove","mission.queue.resume","mission.queue.steer","workspace.resolve","board.shared.read"];function jZo(){return{schemaVersion:"pragma.integration-capability/v1",protocol:"pragma.integration/v2",readableVersions:["pragma.integration/v1","pragma.integration/v2"],migratableFromVersions:[],features:[...UZo]}}o(jZo,"createLocalHostIntegrationCapability");function zZo(t){if(qZo(t.runtimes))return t.runtimes;if(t.defaultRuntimeId===void 0)throw new Error("A default Runtime id is required when composing adapters.");return Hwt({runtimes:t.runtimes,defaultRuntimeId:t.defaultRuntimeId,runtimeAliases:t.runtimeAliases})}o(zZo,"resolveNodeRuntime");function qZo(t){return!Array.isArray(t)&&typeof t=="object"&&t!==null}o(qZo,"isRuntimeResolver");function Kai(t){let e=zZo(t),n=t.integrationCapability??(async()=>jZo()),r=HEt(),i=r.createLogger({component:"local-host.mission-controller"}),s=lq({pragmaHome:t.pragmaHome,runtimes:e,loggerProvider:r}),a=xEt({pragmaHome:t.pragmaHome,runtimes:e,loggerProvider:r,compiler:s}),c=zwt({pragmaHome:t.pragmaHome,projectId:t.projectId,runtimes:e,loggerProvider:r,compiler:s,reader:s.reader}),l=Owt({missionsPath:frn(t.pragmaHome,"data","missions")}),d=o(async V=>{try{return await l.get(V)}catch(le){if(le instanceof br&&le.code==="mission_not_found")return;throw le}},"readMissionEnvelope"),u,p=Uwt({logger:i,missionsPath:frn(t.pragmaHome,"data","missions"),missionPath:l.storagePath,readMission:d,recoverSemanticWrite:o(async({missionId:V,guard:le})=>{if(u===void 0)throw new Error("Mission repository replay is not initialized.");await p.controller.recoverSemanticWrite({missionId:V,guard:le,replay:u})},"recoverSemanticWrite"),onPollingError:o(({missionId:V,error:le,consecutiveFailures:me})=>i.warn("mission.controller_inbox_poll_failed","Mission Inbox polling failed; the durable command remains recoverable.",{missionId:V,consecutiveFailures:me,error:le}),"onPollingError"),onLeaseLost:o(V=>i.warn("mission.controller_lease_lost","Mission controller lease was lost; pending durable work can be reacquired.",{missionId:V}),"onLeaseLost")}),{controller:m,query:h,watch:g,ownerScope:b}=p,y=vSt(l,{controller:m,ownerScope:b,setSemanticWriteReplay:o(V=>{u=V},"setSemanticWriteReplay")}),_=xSt({store:y,controller:m,readDefaultProject:o(async()=>{let V=await s.reader.getHead(t.projectId??"studio");return V===void 0?void 0:{id:V.projectId,revision:V.revision}},"readDefaultProject")}),A,v=!1,E=new Set,S=new Set,w=Qai({pragmaHome:t.pragmaHome,loggerProvider:r,beforeFeedClose:o(async()=>{if(await Promise.all(E),await I.drainCanonicalEvents(),A!==void 0){let V=await A;V.pause(),await V.takeCustody(),await V.close()}w.hasCanonicalSource()&&await M.drain(),await M.close()},"beforeFeedClose")}),I=w.executionStore,C=Zw({pragmaHome:t.pragmaHome,executions:I}),T=h2e({controller:m,executions:I,sessions:C,repositorySessionId:o(async V=>{try{return(await l.get(V)).execution?.sessionId}catch(le){if(le instanceof br&&le.code==="mission_not_found")return;throw le}},"repositorySessionId")}),N=Vpe({sessions:C,resolveSessionId:T,steeringFeatures:o(async(V,le)=>{let me=le.contexts[le.rootContextId];if(me===void 0)return{supportsSteer:!1};let K=await e.resolve({binding:me.runtime,modelSelection:me.modelSelection}).catch(()=>{});return{supportsSteer:K?.adapter.descriptor.capabilities?.supportsSteer===!0,steeringRecovery:K?.adapter.features.steering.steeringRecovery}},"steeringFeatures"),resolvePromptMetadata:o(async V=>({hasAttachments:HZo((await I.getInvocation(V.executionId,V.executionId))?.input)}),"resolvePromptMetadata")}),M=Qwt({path:frn(t.pragmaHome,"data","usage","observations.json"),feed:w.canonical,deliveryPath:new hr(t).localHostUsageDelivery(),onError:o(V=>i.warn("usage.delivery_degraded","Usage delivery needs recovery",{moduleId:"pragma.local-host-usage",errorCode:"USAGE_DELIVERY_RETRY_PENDING",error:V}),"onError")}),L=o(async V=>await a({ref:V.ref,workspace:V.workspace,purpose:V.purpose})??await c.resolve(V),"resolveExecutor"),B=new dh,O=m2e({controller:m,ownerScope:b}),q=o(()=>A??=kSt({path:new hr(t).missionDelivery(),feed:w.canonical,logger:i,usage:o(async(V,le)=>await M.reconcile([le]),"usage"),terminal:PSt({ownerScope:b,ownerLifetime:"request",withAdmission:o((V,le)=>B.admit(V,le),"withAdmission"),missions:y,executions:I,projector:O,memory:o(async(V,le)=>await w.reconcile(V.id,le),"memory")})}).catch(V=>{throw A=void 0,V}),"getMissionDelivery"),z=o(async V=>await d(V)!==void 0,"hasEnvelope"),W=o(V=>{if(v||S.has(V))return;S.add(V);let le=(async()=>{let me=await d(V);if(me?.execution===void 0)return;let K=await q();await K.register(me,me.execution.id,me.execution.inputMessageId);let Q=b.currentGuard(V),X=Q??await b.acquireForRecovery(V);try{await K.settleMission(V)}finally{Q===void 0&&!v&&await b.release(V,X)}})().catch(me=>{ps.safeParse(me).data?.code!=="MISSION_LEASE_HELD"&&i.warn("mission.delivery_degraded","Mission receipt recovery needs attention",{missionId:V,moduleId:"pragma.mission-delivery",errorCode:"MISSION_DELIVERY_UNAVAILABLE",error:me})});E.add(le),le.finally(()=>{E.delete(le),S.delete(V)})},"wakeReceiptRecovery"),G=mvt({lifecycle:p,prepareShutdown:o(async()=>{v=!0,await Promise.all(E)},"prepareShutdown"),closeResources:o(()=>w.dispose(),"closeResources"),client:t.client,logger:i,resolveExecutor:L,beforeStart:o(async V=>{await _.ensureFreshMission(V)},"beforeStart"),assertMission:o(async V=>{let le=await z(V),me=await m.readSnapshot({missionId:V});if(!le&&!me.events.some(K=>K.type==="mission.created"))throw en({code:"MISSION_NOT_FOUND",category:"not_found",message:`Mission not found: ${V}.`,details:{missionId:V}})},"assertMission"),onOwnerStartError:o(({missionId:V,error:le})=>i.warn("mission.controller_owner_start_failed","Mission command is durable, but its owner could not be started yet.",{missionId:V,error:le}),"onOwnerStartError"),execution:{pragmaHome:t.pragmaHome,missions:y,executionStore:I,expertSessionStore:C,executionOwner:B,ownerScope:b,ownerLifetime:"request",controllerFacts:{controller:m,hasEnvelope:z,resolveSessionId:T,resolveMissionBinding:o(async V=>LS((await m.readSnapshot({missionId:V})).events),"resolveMissionBinding"),executors:L,compiler:s,usageSink:M,createHostContextBindings:o(async({missionId:V,request:le})=>[...await pq({pragmaHome:t.pragmaHome,missionId:V}),...await w.bindings({missionId:V,bindingId:le.requestId,goal:le.prompt??"",...le.project===void 0?{}:{projectId:le.project.projectId}})],"createHostContextBindings"),memory:{linked:o(({missionId:V,executionId:le,projectId:me})=>w.register({missionId:V,executionId:le,...me===void 0?{}:{projectId:me}}),"linked"),recovering:o((V,le)=>w.resume(V,le),"recovering"),admitting:o((V,le)=>w.beginPrompt(V,le),"admitting"),terminal:o((V,le,me)=>w.complete(V,le,me),"terminal"),release:o(()=>w.pause(),"release")}},runtimes:e,loggerProvider:r,resourcePorts:Vai({pragmaHome:t.pragmaHome,runtimes:e,compiler:s,memory:w,usageSink:M,loggerProvider:r,missions:y}),assertExecutorReady:o(async(V,le)=>{le!==void 0&&await s.assertReady(le)},"assertExecutorReady"),invalidateRuntimeReadiness:o(()=>s.readiness.invalidate(),"invalidateRuntimeReadiness"),onExecutionLinked:o(V=>O.link(V),"onExecutionLinked"),onPromptAdmitting:o((V,le)=>w.beginPrompt(V,le),"onPromptAdmitting"),onExecutionContextLinked:o(async({mission:V,executionId:le,requestId:me})=>{try{if(await z(V.id)){let K=await q();await K.register(V,le,me),K.start()}}catch(K){i.warn("mission.delivery_degraded","Mission delivery needs recovery",{missionId:V.id,moduleId:"pragma.mission-delivery",errorCode:"MISSION_DELIVERY_UNAVAILABLE",error:K})}await w.register({missionId:V.id,executionId:le,projectId:V.project.id})},"onExecutionContextLinked"),commitExecutionTerminal:o(V=>O.terminal(V),"commitExecutionTerminal"),onExecutionCheckpointed:o(async({mission:V,executionId:le})=>{await w.complete(V.id,le,!0),await w.pause()},"onExecutionCheckpointed"),onExecutionTerminal:o(async V=>{await w.complete(V.mission.id,V.executionId),await w.pause()},"onExecutionTerminal")}}),ie=t2e({pragmaHome:t.pragmaHome,repository:l,controller:m,query:h,watch:g});return FSt({integrationCapability:n,catalog:{listProjects:o(async()=>await c.listProjects(),"listProjects"),getProjectRevision:o(async(V,le)=>await c.getProjectRevision(V,le),"getProjectRevision"),listExecutors:o(async()=>await[...await IEt({runtimes:e}),...await c.listExecutors()],"listExecutors")},missions:{...ie.missions,get:o(async V=>{let le=await ie.missions.get(V);return W(V),le},"get"),query:o(async V=>{let le=await ie.missions.query(V);return W(V.missionId),le},"query")},workspace:t.workspace,board:ie.board,queue:{list:o(async V=>await N.list(V),"list")},watch:ie.watch,missionApplication:G,runtime:{resolver:e}})}o(Kai,"createLocalHostNodeApplication");function HZo(t){if(typeof t!="object"||t===null||Array.isArray(t))return!1;let e=t.attachments;return Array.isArray(e)&&e.length>0}o(HZo,"hasPromptAttachments");var bR="0.1.0-next.23";function Yai(t={}){return t.localHost??JZo()}o(Yai,"createCliLocalHost");function JZo(){let t=process.env.PRAGMA_HOME?.trim()||YZo(KZo(),".pragma"),e=qwt({pragmaHome:t}).getSync(),n=o(s=>r2e(process.env,s,e.policy),"getRuntimeEnvironment"),r=Ule(),i=[V4n({env:n("pragma.runtime.codex"),tokenCounter:r,sandboxMode:"workspace-write",approvalPolicy:"on-request"}),Sen({env:n("pragma.runtime.opencode"),permissionMode:"request-approval",tokenCounter:r}),Kqn({env:n("pragma.runtime.claude-code"),permissionMode:"default",tokenCounter:r}),Wai({env:n("pragma.runtime.qodercli"),permissionMode:"default",tokenCounter:r}),mqn({env:n("pragma.runtime.antigravity"),permissionMode:"request-approval",tokenCounter:r}),BZt({env:n("pragma.runtime.pi"),tokenCounter:r})];return Kai({pragmaHome:t,runtimes:i,defaultRuntimeId:"codex-local",runtimeAliases:{codex:"codex-local"},projectId:process.env.PRAGMA_PROJECT_ID?.trim()||void 0,client:{surface:"cli",version:bR,instanceId:WZo()},workspace:{stat:o(async s=>await VZo(s),"stat"),access:o(async(s,a)=>await GZo(s,a==="read"?4:2),"access"),realpath:o(async s=>await QZo(s),"realpath")}})}o(JZo,"createProductionLocalHost");function hrn(){return{onInterrupt(t){return process.on("SIGINT",t),()=>process.off("SIGINT",t)}}}o(hrn,"createProcessSignalPort");Xi();function grn(t,e){if(t.format==="text"){t.io.writeStdout(eea(e,t.requestId));return}if(t.format==="json"){t.io.writeStdout(`${JSON.stringify(xXe(t,e))}
|
|
8802
8802
|
`);return}EG(t).finalize(e)}o(grn,"presentRunOutcome");function yrn(t,e){let n={status:"failed",error:e};if(t.format==="text"){t.io.writeStderr(vrn(e,t.requestId));return}if(t.format==="json"){t.io.writeStdout(`${JSON.stringify(xXe(t,n))}
|
|
8803
8803
|
`);return}EG(t).finalize(n)}o(yrn,"presentRunFailure");function EG(t){let e=0,n=!1,r;return{emit:o(s=>{if(n)return;s.cursor!==void 0&&(r=s.cursor);let a=not.parse({schemaVersion:"pragma.cli-event/v2",requestId:t.requestId,eventId:XZo(s.eventId),sequence:e++,emittedAt:s.emittedAt??new Date().toISOString(),replayable:s.replayable??!1,...s.missionId===void 0?{}:{missionId:s.missionId},...s.executionId===void 0?{}:{executionId:s.executionId},...s.cursor===void 0?{}:{cursor:s.cursor},type:s.type,data:s.data});t.io.writeStdout(`${JSON.stringify(a)}
|
|
8804
8804
|
`),t.io.flushStdout?.()},"write"),finalize(s){if(n)return;let a=tot.parse({status:s.status,exitCode:ZZo(s),missionId:s.missionId,executionId:s.executionId,executor:s.executor,workspace:s.workspace,...(s.lastCursor??r)===void 0?{}:{lastCursor:s.lastCursor??r},...s.observedStatus===void 0?{}:{observedStatus:s.observedStatus},...s.stopReason===void 0?{}:{stopReason:s.stopReason},...s.status==="accepted"||s.status==="succeeded"?{result:s.result}:{},...s.status==="input_required"&&s.interaction===void 0?{}:s.status==="input_required"?{interaction:s.interaction}:{},...s.status==="failed"&&s.error===void 0?{}:s.status==="failed"?{error:s.error}:{},...s.usage===void 0?{}:{usage:s.usage},...s.warnings===void 0?{}:{warnings:s.warnings}});n=!0;let c={schemaVersion:"pragma.cli-event/v2",requestId:t.requestId,eventId:globalThis.crypto.randomUUID(),sequence:e++,emittedAt:new Date().toISOString(),replayable:!1,type:"stream.end",data:a};t.io.writeStdout(`${JSON.stringify(c)}
|