@kodax-ai/kodax 0.7.68 → 0.7.69
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/CHANGELOG.md +137 -3
- package/README.md +56 -9
- package/README_CN.md +53 -8
- package/config-templates/config.example.jsonc +26 -0
- package/config-templates/integrations/a2a.example.jsonc +54 -0
- package/config-templates/integrations/extensions.example.jsonc +7 -0
- package/config-templates/integrations/mcp.example.jsonc +16 -0
- package/dist/chunks/agent-DQRXT6M7.js +2 -0
- package/dist/chunks/argument-completer-RSK6CCGP.js +2 -0
- package/dist/chunks/chunk-4WIODYOH.js +329 -0
- package/dist/chunks/chunk-AWMTNUDS.js +37 -0
- package/dist/chunks/chunk-F7C7J6IM.js +7 -0
- package/dist/chunks/{chunk-PEGSHZAA.js → chunk-I4TPQEJN.js} +1 -1
- package/dist/chunks/chunk-M7TCFYTO.js +107 -0
- package/dist/chunks/chunk-NGHQIGVW.js +46 -0
- package/dist/chunks/chunk-NGJURAY5.js +306 -0
- package/dist/chunks/{chunk-KGAI32VS.js → chunk-PA76WUBL.js} +2 -2
- package/dist/chunks/chunk-PQ3XUSY2.js +357 -0
- package/dist/chunks/chunk-UJEMSPM5.js +78 -0
- package/dist/chunks/{chunk-CC4BVVE7.js → chunk-URC6ZI6P.js} +1 -1
- package/dist/chunks/{chunk-CTHUX5ZH.js → chunk-VAZ25MDX.js} +122 -122
- package/dist/chunks/chunk-VYKFM3TB.js +751 -0
- package/dist/chunks/{chunk-TOGESFRN.js → chunk-WW2O2DEP.js} +1 -1
- package/dist/chunks/chunk-Y4WOTWUC.js +2 -0
- package/dist/chunks/chunk-Z4PPLJF2.js +60 -0
- package/dist/chunks/chunk-ZG4DMYBS.js +422 -0
- package/dist/chunks/compaction-config-ABLL6UH3.js +2 -0
- package/dist/chunks/{construction-bootstrap-PYWJHO35.js → construction-bootstrap-GH6RW6ST.js} +1 -1
- package/dist/chunks/dist-DRBKYVHF.js +2 -0
- package/dist/chunks/dist-RWL2RBO4.js +2 -0
- package/dist/chunks/host-7SAB4WEC.js +2 -0
- package/dist/chunks/run-manager-XMDKTONJ.js +2 -0
- package/dist/chunks/utils-QYE5Y73D.js +2 -0
- package/dist/index.d.ts +19 -19
- package/dist/index.js +6 -6
- package/dist/kodax_cli.js +1590 -1316
- package/dist/runtime-worker.js +1355 -1105
- package/dist/sdk-a2a.d.ts +397 -0
- package/dist/sdk-a2a.js +9 -0
- package/dist/sdk-agent.d.ts +61 -30
- package/dist/sdk-agent.js +1 -1
- package/dist/sdk-coding.d.ts +126 -51
- package/dist/sdk-coding.js +1 -1
- package/dist/sdk-experimental-memory.d.ts +1 -1
- package/dist/sdk-experimental-memory.js +1 -1
- package/dist/sdk-llm.d.ts +16 -9
- package/dist/sdk-llm.js +1 -1
- package/dist/sdk-mcp.d.ts +1 -1
- package/dist/sdk-mcp.js +1 -1
- package/dist/sdk-media.d.ts +1 -1
- package/dist/sdk-media.js +1 -1
- package/dist/sdk-repl.d.ts +35 -101
- package/dist/sdk-repl.js +2 -2
- package/dist/sdk-runtime.d.ts +744 -21
- package/dist/sdk-runtime.js +1 -1
- package/dist/sdk-session.d.ts +7 -7
- package/dist/sdk-session.js +1 -1
- package/dist/sdk-skills.js +1 -1
- package/dist/semantic-worker.js +100 -12
- package/dist/types-chunks/{base.d-C8mXDhLL.d.ts → base.d-CYjtB68X.d.ts} +1 -1
- package/dist/types-chunks/{bash-prefix-extractor.d-Dm-T865v.d.ts → bash-prefix-extractor.d-BkIA8Wto.d.ts} +68 -17
- package/dist/types-chunks/{capability-learning.d-BLEmCib0.d.ts → capability-learning.d-WtsyRv3O.d.ts} +1 -1
- package/dist/types-chunks/{capsule.d-CzaamUUv.d.ts → capsule.d-xJvfh4YR.d.ts} +3 -3
- package/dist/types-chunks/{commands.d-DxKjVSNU.d.ts → commands.d-DkPfcQWG.d.ts} +4 -4
- package/dist/types-chunks/{cost-tracker.d-CBLk1fiD.d.ts → cost-tracker.d-BeaenODW.d.ts} +4 -1
- package/dist/types-chunks/{guardrail.d-D7r6zVSR.d.ts → guardrail.d-6ZDbNbHO.d.ts} +1 -1
- package/dist/types-chunks/{guardrail.d-CPDfZyJp.d.ts → guardrail.d-R7AiGfrI.d.ts} +4 -4
- package/dist/types-chunks/integration-config.d-ojG4swOP.d.ts +95 -0
- package/dist/types-chunks/{manager.d-Zum9cGHU.d.ts → manager.d-CoEuPRAo.d.ts} +4 -1
- package/dist/types-chunks/{public-api.d-BcKbBy1E.d.ts → public-api.d-7G4--RZE.d.ts} +3 -3
- package/dist/types-chunks/{resolver.d-DmBnoilY.d.ts → resolver.d-CIVoGc97.d.ts} +2 -2
- package/dist/types-chunks/{run-manager.d-CSj7_kWk.d.ts → run-manager.d-BaXtkryp.d.ts} +1 -1
- package/dist/types-chunks/{sdk-session-C6nDgyh8.d.ts → sdk-session-BQccrODn.d.ts} +6 -4
- package/dist/types-chunks/{types.d-D2frCRaY.d.ts → types.d-BtC4yLYO.d.ts} +35 -8
- package/dist/types-chunks/{types.d-CzscbsG0.d.ts → types.d-C9YHEAmA.d.ts} +38 -7
- package/dist/types-chunks/{types.d-D9FKbAmf.d.ts → types.d-CJR7t6iW.d.ts} +2 -2
- package/dist/types-chunks/{types.d-CO_ZkmOd.d.ts → types.d-TTvpAGWf.d.ts} +5 -0
- package/dist/types-chunks/{utils.d-DOXxnOnI.d.ts → utils.d-BbB5jzi1.d.ts} +15 -7
- package/docs/SDK_EMBEDDER_GUIDE.md +627 -9
- package/package.json +10 -2
- package/dist/chunks/agent-DATNZOBK.js +0 -2
- package/dist/chunks/argument-completer-X7MMM7Y6.js +0 -2
- package/dist/chunks/chunk-5GL55MOH.js +0 -36
- package/dist/chunks/chunk-67XJ4YUA.js +0 -703
- package/dist/chunks/chunk-C4SBXBWH.js +0 -346
- package/dist/chunks/chunk-D6QVXQNI.js +0 -1
- package/dist/chunks/chunk-HFM2D5BP.js +0 -2
- package/dist/chunks/chunk-HLBHSA2B.js +0 -325
- package/dist/chunks/chunk-K2NCKRVY.js +0 -33
- package/dist/chunks/chunk-KIQRCGVR.js +0 -419
- package/dist/chunks/chunk-MP52BDK5.js +0 -15
- package/dist/chunks/chunk-O5OJQFPY.js +0 -307
- package/dist/chunks/chunk-OIELNE6Z.js +0 -56
- package/dist/chunks/chunk-PZTG2C33.js +0 -7
- package/dist/chunks/chunk-QJJKMNZF.js +0 -2
- package/dist/chunks/compaction-config-BXEDHIQP.js +0 -2
- package/dist/chunks/dist-76PJHNSG.js +0 -2
- package/dist/chunks/dist-HTDJRAD6.js +0 -2
- package/dist/chunks/host-UAXIDZ6V.js +0 -2
- package/dist/chunks/paste-C33GZQV5.js +0 -2
- package/dist/chunks/run-manager-UCXB4G22.js +0 -2
- package/dist/chunks/utils-S63V5UCM.js +0 -2
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
// @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
|
|
2
|
-
import{Bb as at,Cb as ut,Db as dt,Eb as mt,Fb as ct,Gb as lt,Hb as yn,Xb as ft,Yb as pt,zb as st}from"./chunk-O5OJQFPY.js";import{j as Vn,k as Qn,m as Yn,n as nt,s as tt,t as rt,x as it,xa as ot}from"./chunk-CTHUX5ZH.js";import{B as Gn,G as Zn,H as et,z as gn}from"./chunk-OIELNE6Z.js";import{e as Hn,v as zn}from"./chunk-KIQRCGVR.js";import{Jb as Ce,Oc as Ue}from"./chunk-C4SBXBWH.js";import{ta as Wn,va as We}from"./chunk-K2NCKRVY.js";import{Fd as Jn,Jd as Bn,ac as pn,ic as Rn}from"./chunk-67XJ4YUA.js";import{V as fn,a as Un,b as Ae}from"./chunk-5GL55MOH.js";import{a as o}from"./chunk-ONUPGMER.js";import{randomUUID as le}from"node:crypto";import*as k from"node:fs";import Cr from"node:os";import D from"node:path";import{createHash as qr}from"node:crypto";import q from"node:fs";import Q from"node:path";function ye(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(ye,"isRecord");function Wr(e){return ye(e)?typeof e.agentId=="string"&&typeof e.displayName=="string"&&typeof e.enabled=="boolean"&&typeof e.executorId=="string"&&(e.protocol==="a2a"||e.protocol==="mcp"||e.protocol==="http")&&typeof e.configurationRevision=="string"&&typeof e.endpointIdentityHash=="string"&&ye(e.capabilities)&&ye(e.effects):!1}o(Wr,"isRegistration");function Ur(e){return ye(e)?typeof e.taskId=="string"&&(e.route==="local"||e.route==="external")&&typeof e.agentId=="string"&&typeof e.objective=="string"&&typeof e.state=="string"&&typeof e.cancellation=="string"&&ye(e.registration)&&typeof e.idempotencyKey=="string"&&typeof e.dispatchAttempt=="number"&&typeof e.createdAt=="string"&&typeof e.updatedAt=="string":!1}o(Ur,"isTask");function Jr(e){return ye(e)?typeof e.taskId=="string"&&Number.isSafeInteger(e.seq)&&typeof e.timestamp=="string"&&typeof e.type=="string":!1}o(Jr,"isEvent");function gt(e){try{return JSON.parse(q.readFileSync(e,"utf8"))}catch(n){let t=n instanceof Error?n.message:String(n);throw new Error(`Failed to parse Runtime agent store file ${e}: ${t}`)}}o(gt,"parseJson");function Br(e,n){if(!q.existsSync(e))return[];let t=gt(e);if(!Array.isArray(t)||!t.every(n))throw new Error(`Runtime agent store file has an invalid array shape: ${e}`);return structuredClone(t)}o(Br,"readList");function Rt(e,n){q.mkdirSync(Q.dirname(e),{recursive:!0});let t=`${e}.${process.pid}.tmp`;q.writeFileSync(t,`${JSON.stringify(n,null,2)}
|
|
3
|
-
`,{encoding:"utf8",mode:384}),q.renameSync(t,e)}o(Rt,"writeJsonAtomic");function hn(e,n){let t=qr("sha256").update(n).digest("hex");return Q.join(e,t)}o(hn,"taskDirectory");function Hr(e){if(!q.existsSync(e))return[];let n=q.readFileSync(e,"utf8").trim();return n?n.split(/\r?\n/).map((t,r)=>{let a;try{a=JSON.parse(t)}catch(m){let c=m instanceof Error?m.message:String(m);throw new Error(`Invalid Runtime agent event at ${e}:${r+1}: ${c}`)}if(!Jr(a))throw new Error(`Invalid Runtime agent event shape at ${e}:${r+1}`);return a}):[]}o(Hr,"readEvents");function yt(e){let n=Q.resolve(e),t=Q.join(n,"registrations.json"),r=Q.join(n,"tasks");return{async loadRegistrations(){return Br(t,Wr)},async saveRegistrations(a){Rt(t,a)},async loadTasks(){if(!q.existsSync(r))return[];let a=[];for(let m of q.readdirSync(r,{withFileTypes:!0})){if(!m.isDirectory())continue;let c=Q.join(r,m.name,"snapshot.json");if(!q.existsSync(c))continue;let s=gt(c);if(!Ur(s))throw new Error(`Invalid Runtime agent task shape: ${c}`);a.push(s)}return a},async saveTask(a){Rt(Q.join(hn(r,a.taskId),"snapshot.json"),a)},async loadEvents(a){return Hr(Q.join(hn(r,a),"events.jsonl"))},async appendEvent(a){let m=Q.join(hn(r,a.taskId),"events.jsonl");q.mkdirSync(Q.dirname(m),{recursive:!0}),q.appendFileSync(m,`${JSON.stringify(a)}
|
|
4
|
-
`,{encoding:"utf8",mode:384})}}}o(yt,"createRuntimeAgentExecutorPlaneStore");function Sn(e){let n=e.transport.request.bind(e.transport);return{identity:e.identity,sessions:{create(t){return n("session.create",t)},load(t){return n("session.load",{sessionId:t})},list(t){return n("session.list",t)},transcript(t){return n("session.transcript",{sessionId:t})},fork(t){return n("session.fork",t)},getSettings(t){return n("session.settings.get",{sessionId:t})},updateSettings(t,r){return n("session.settings.update",{sessionId:t,patch:r})},appendNotice(t){return n("session.notice.append",t)},rewind(t){return n("session.rewind",t)},setActiveEntry(t){return n("session.active_entry.set",t)},compact(t){return n("session.compact",t)},async archive(t){await n("session.archive",{sessionId:t})},async unarchive(t){await n("session.unarchive",{sessionId:t})},async delete(t){await n("session.delete",{sessionId:t})}},runs:{async start(t){Me(t.options,"run.start.options");let r=Oe(await n("run.start",t)),a=wn(r,"runId"),m=wn(r,"sessionId"),c=Gr(r,"turnId");return{runId:a,sessionId:m,...c!==void 0?{turnId:c}:{},result:ht(n,a)}},await(t){return ht(n,t)},get(t){return n("run.get",{runId:t})},list(t){return n("run.list",t)},async abort(t){await n("run.abort",{runId:t})},async setModel(t,r){await n("run.model.set",{runId:t,model:r})},async setProvider(t,r){await n("run.provider.set",{runId:t,provider:r})},async setReasoning(t,r){await n("run.reasoning.set",{runId:t,reasoning:r})}},events:{subscribe(t,r){return zr(e.transport,n,t,r)},replay(t){return n("event.replay",t)}},permissions:{request(t){return n("permission.request",t)},listPending(t){return n("permission.list",t)},respond(t,r,a){return n("permission.respond",{requestId:t,decision:r,...a?.runId!==void 0?{runId:a.runId}:{}})}},workflows:{list(t){return n("workflow.list",t)},get(t){return n("workflow.get",{runId:t}).then(Je)},subscribe(t,r){return Vr(e.transport,n,t,r)},pause(t){return n("workflow.pause",{runId:t})},resume(t){return n("workflow.resume",{runId:t})},stop(t){return n("workflow.stop",{runId:t})}},config:{read(){return n("config.read")},patch(t){return n("config.patch",{patch:t})},reload(){return n("config.reload")}},catalog:{providers(){return n("provider.list")},models(t){return n("model.list",t)},commands(t){return n("command.list",t!==void 0?{projectRoot:t}:void 0)},resolveCommand(t){return n("command.resolve",t)},skills(t){return n("skill.list",t)},describeSkill(t){return n("skill.describe",t)},customProviders(){return n("provider.custom.list")},upsertCustomProvider(t){return n("provider.custom.upsert",{config:t})},deleteCustomProvider(t){return n("provider.custom.remove",{name:t})},extensions(){return n("extension.list")},reloadExtensions(){return n("extension.reload")}},mcp:{listServers(){return n("mcp.server.list")},getServer(t){return n("mcp.server.get",{name:t}).then(Je)},validateServer(t,r){return n("mcp.server.validate",{name:t,config:r})},upsertServer(t,r){return n("mcp.server.upsert",{name:t,config:r})},deleteServer(t){return n("mcp.server.delete",{name:t})},reloadServers(){return n("mcp.server.reload")},listTools(t){return n("mcp.tool.list",t)}},artifacts:{create(t){return n("artifact.create",t)},get(t){return n("artifact.get",{artifactId:t}).then(Je)},delete(t){return n("artifact.delete",{artifactId:t})}},admin:{agentRegistrations:{list(){return n("agentRegistrations.list")},upsert(t){return Me(t,"agentRegistrations.upsert.registration"),n("agentRegistrations.upsert",{registration:t})},remove(t){return n("agentRegistrations.remove",{agentId:t})}}},agents:{enabled:e.capabilities?.externalAgents===!0,listDispatchable(t){return n("agents.listDispatchable",t)},describe(t,r){return n("agents.describe",{agentId:t,query:r}).then(Je)},preflight(t){return n("agents.preflight",t)}},agentTasks:{start(t){return Me(t,"agentTasks.start"),n("agentTasks.start",t)},list(t){return n("agentTasks.list",t)},get(t){return n("agentTasks.get",{taskId:t})},events(t,r){return n("agentTasks.events",{taskId:t,...r!==void 0?{cursor:r}:{}})},wait(t,r){return n("agentTasks.wait",{taskId:t,...r!==void 0?{timeoutMs:r}:{}})},sendInput(t,r){return n("agentTasks.sendInput",{taskId:t,input:r})},cancel(t,r){return n("agentTasks.cancel",{taskId:t,...r!==void 0?{reason:r}:{}})},reconcile(t){return n("agentTasks.reconcile",{taskId:t})}},status:{snapshot(){return n("daemon.status")}},diagnostics:{latestContextBudget(t){return n("context.budget.get",t)},latestToolExposure(t){return n("tool.exposure.preview",t)}},async close(){await e.transport.close?.()}}}o(Sn,"createRuntimeDaemonClient");function zr(e,n,t,r){return St(e,n,"event.subscribe",{filter:t},a=>{r(a)})}o(zr,"subscribeToDaemonEvents");function Vr(e,n,t,r){return St(e,n,"workflow.subscribe",{filter:t},a=>{r(a)})}o(Vr,"subscribeToDaemonWorkflowEvents");function St(e,n,t,r,a){let m=!1,c,s=[],i=e.subscribe(d=>{if(m||d.method!=="event")return;let f=Oe(d.params);if(c===void 0){s.length>=256&&s.shift(),s.push(f);return}f.subscriptionId===c&&a(f.event)});return n(t,r).then(d=>{if(c=wn(Oe(d),"subscriptionId"),m){wt(n,t,c),s.length=0;return}for(let f of s.splice(0))f.subscriptionId===c&&a(f.event)}).catch(()=>{s.length=0,i.close()}),{close(){m=!0,i.close(),c!==void 0&&wt(n,t,c)}}}o(St,"subscribeToDaemonNotification");function ht(e,n){return e("run.await",{runId:n}).then(Qr)}o(ht,"requestRuntimeRunResult");function Qr(e){let n=Oe(e),t=Object.prototype.hasOwnProperty.call(n,"error")?Yr(n.error):void 0,r={...n};return delete r.error,{...r,...t!==void 0?{error:t}:{}}}o(Qr,"deserializeRuntimeRunResult");function Yr(e){if(e==null)return;if(e instanceof Error)return e;if(typeof e=="string")return new Error(e);let n=Oe(e),t=new Error(typeof n.message=="string"&&n.message.length>0?n.message:"Runtime run failed.");return typeof n.name=="string"&&n.name.length>0&&(t.name=n.name),typeof n.stack=="string"&&n.stack.length>0&&(t.stack=n.stack),t}o(Yr,"deserializeRuntimeError");function wt(e,n,t){e(n==="event.subscribe"?"event.unsubscribe":"workflow.unsubscribe",{subscriptionId:t}).catch(()=>{})}o(wt,"unsubscribeRemote");function Je(e){return e??void 0}o(Je,"nullToUndefined");function Oe(e){if(!e||typeof e!="object"||Array.isArray(e))throw new Error("Expected daemon response object.");return e}o(Oe,"requireRecord");function wn(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw new Error(`Expected daemon response string field: ${n}`);return t}o(wn,"requireStringField");function Gr(e,n){let t=e[n];if(t!=null){if(typeof t!="string")throw new Error(`Expected daemon response optional string field: ${n}`);return t}}o(Gr,"optionalStringField");function Me(e,n,t=new WeakSet){if(e==null||typeof e=="string"||typeof e=="boolean")return;if(typeof e=="number"){if(Number.isFinite(e))return;throw new Error(`${n} is not transport-safe: numbers must be finite.`)}if(typeof e=="function"||typeof e=="symbol"||typeof e=="bigint")throw new Error(`${n} is not transport-safe: ${typeof e} values cannot cross a Runtime boundary.`);if(typeof e!="object")return;if(t.has(e))throw new Error(`${n} is not transport-safe: cyclic values cannot cross a Runtime boundary.`);let r=Object.getPrototypeOf(e);if(!Array.isArray(e)&&r!==Object.prototype&&r!==null){let a=r?.constructor?.name??"object";throw new Error(`${n} is not transport-safe: ${a} instances cannot cross a Runtime boundary.`)}if(t.add(e),Array.isArray(e))e.forEach((a,m)=>Me(a,`${n}[${m}]`,t));else for(let[a,m]of Object.entries(e))Me(m,`${n}.${a}`,t);t.delete(e)}o(Me,"assertRuntimeTransportSafe");import to from"node:os";import ro from"node:path";import{randomUUID as It}from"node:crypto";import*as b from"node:fs";import ae from"node:path";function we(e,n="default"){let t=kn(n),r=ae.join(e,".kodax","runtime","daemon",t);return{profile:t,rootDir:r,stateFile:ae.join(r,"daemon.json"),lockFile:ae.join(r,"daemon.lock"),tokenFile:ae.join(r,"daemon.token"),logFile:ae.join(r,"daemon.log"),runsDir:ae.join(r,"runs"),eventsDir:ae.join(r,"events")}}o(we,"resolveRuntimeDaemonPaths");function kn(e){let n=e.trim()||"default";if(!/^[A-Za-z0-9_.-]+$/.test(n))throw new Error(`Invalid runtime daemon profile: ${e}`);return n}o(kn,"normalizeRuntimeDaemonProfile");function Se(e){b.mkdirSync(e.rootDir,{recursive:!0}),b.mkdirSync(e.runsDir,{recursive:!0}),b.mkdirSync(e.eventsDir,{recursive:!0})}o(Se,"ensureRuntimeDaemonDirectories");function vt(){return`dt_${It().replace(/-/g,"")}`}o(vt,"createRuntimeDaemonToken");function Dt(e,n){Se(e),b.writeFileSync(e.tokenFile,`${n}
|
|
5
|
-
`,{encoding:"utf8",mode:384}),process.platform!=="win32"&&b.chmodSync(e.tokenFile,384)}o(Dt,"writeRuntimeDaemonToken");function _e(e){if(!b.existsSync(e.tokenFile))return;let n=b.readFileSync(e.tokenFile,"utf8").trim();return n.length>0?n:void 0}o(_e,"readRuntimeDaemonToken");function Fe(e,n){Se(e);let t=`${e.stateFile}.${process.pid}.${It()}.tmp`;try{b.writeFileSync(t,`${JSON.stringify(n,null,2)}
|
|
6
|
-
`,"utf8"),b.renameSync(t,e.stateFile)}finally{b.rmSync(t,{force:!0})}}o(Fe,"writeRuntimeDaemonState");function ne(e,n,t,r){Se(e);let a={time:new Date().toISOString(),level:n,message:t,...r!==void 0?{data:r}:{}};b.appendFileSync(e.logFile,`${JSON.stringify(a)}
|
|
7
|
-
`,"utf8")}o(ne,"appendRuntimeDaemonLog");function bt(e,n=200){if(!b.existsSync(e.logFile))return[];let t=[],r=b.readFileSync(e.logFile,"utf8").split(/\r?\n/).filter(a=>a.trim().length>0);for(let a of r.slice(-n))try{let m=JSON.parse(a);ni(m)&&t.push(m)}catch(m){t.push({time:new Date().toISOString(),level:"warn",message:`Skipped malformed daemon log line: ${m instanceof Error?m.message:String(m)}`})}return t}o(bt,"readRuntimeDaemonLog");function Et(e){if(b.existsSync(e.stateFile))try{let n=JSON.parse(b.readFileSync(e.stateFile,"utf8"));return ei(n)?n:void 0}catch{return}}o(Et,"readRuntimeDaemonState");function Zr(e,n){Se(e);let t;try{return t=b.openSync(e.lockFile,"wx"),b.writeFileSync(t,`${JSON.stringify(n,null,2)}
|
|
8
|
-
`,"utf8"),{file:e.lockFile,owner:n}}catch(r){if(ai(r)&&r.code==="EEXIST")return;throw r}finally{t!==void 0&&b.closeSync(t)}}o(Zr,"tryAcquireRuntimeDaemonLock");function In(e){let n=he(e.file);return!n||n.runtimeId!==e.owner.runtimeId||n.pid!==e.owner.pid?!1:(b.unlinkSync(e.file),!0)}o(In,"releaseRuntimeDaemonLock");function he(e){if(b.existsSync(e))try{let n=JSON.parse(b.readFileSync(e,"utf8"));return ii(n)?n:void 0}catch{return}}o(he,"readRuntimeDaemonLockOwner");function Pt(e,n,t){let r=Be(t),a=he(e.lockFile);if(r==="healthy")return t.state?{kind:"attach",state:t.state,health:r}:{kind:"unhealthy",health:"unhealthy"};if(r==="unhealthy"&&t.state!==void 0&&si(t.state.status)&&t.pidAlive&&a!==void 0)return{kind:"wait",lockOwner:a,state:t.state,health:"missing"};if(r==="unhealthy"||r==="mismatch")return{kind:"unhealthy",health:r,...t.state!==void 0?{state:t.state}:{},...a!==void 0?{lockOwner:a}:{}};let m=r==="stale"?"stale":"missing";if(m==="stale")kt(e);else if(a!==void 0)if(t.lockOwnerPidAlive===!1)kt(e);else return{kind:"wait",lockOwner:a,...t.state!==void 0?{state:t.state}:{},health:m};if(m==="missing"){let i=he(e.lockFile);if(i!==void 0)return{kind:"wait",lockOwner:i,...t.state!==void 0?{state:t.state}:{},health:m}}let c=Zr(e,n);if(c)return{kind:"claim",lock:c,health:m};let s=he(e.lockFile);return s?{kind:"wait",lockOwner:s,...t.state!==void 0?{state:t.state}:{},health:m}:{kind:"unhealthy",health:"unhealthy",...t.state!==void 0?{state:t.state}:{}}}o(Pt,"claimRuntimeDaemonOwnership");function kt(e){b.rmSync(e.lockFile,{force:!0}),b.rmSync(e.stateFile,{force:!0}),b.rmSync(e.tokenFile,{force:!0})}o(kt,"removeRuntimeDaemonOwnershipFiles");function xt(e){b.rmSync(e.stateFile,{force:!0}),b.rmSync(e.tokenFile,{force:!0})}o(xt,"removeRuntimeDaemonStateFiles");function Be(e){return e.state?e.endpointReachable&&!e.identityMatches?"mismatch":e.pidAlive&&e.endpointReachable&&e.identityMatches?"healthy":!e.pidAlive&&!e.endpointReachable?"stale":"unhealthy":"missing"}o(Be,"classifyRuntimeDaemonHealth");function ei(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.runtimeId=="string"&&typeof n.profile=="string"&&typeof n.pid=="number"&&typeof n.startedAt=="string"&&typeof n.endpoint=="string"&&typeof n.version=="string"&&oi(n.status)&&(n.lastError===void 0||typeof n.lastError=="string")}o(ei,"isRuntimeDaemonState");function ni(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.time=="string"&&ti(n.level)&&typeof n.message=="string"&&(n.data===void 0||ri(n.data))}o(ni,"isRuntimeDaemonLogEntry");function ti(e){return e==="info"||e==="warn"||e==="error"}o(ti,"isRuntimeDaemonLogLevel");function ri(e){return!!e&&typeof e=="object"&&!Array.isArray(e)}o(ri,"isPlainRecord");function ii(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.runtimeId=="string"&&typeof n.pid=="number"&&typeof n.createdAt=="string"}o(ii,"isRuntimeDaemonLockOwner");function oi(e){return e==="starting"||e==="ready"||e==="draining"||e==="stopping"||e==="unhealthy"||e==="crashed"}o(oi,"isRuntimeDaemonStatus");function si(e){return e==="starting"||e==="draining"||e==="stopping"}o(si,"isRuntimeDaemonTransitionStatus");function ai(e){return e instanceof Error&&"code"in e}o(ai,"isNodeFileError");import{createHash as fi,randomUUID as pi}from"node:crypto";import*as Ye from"node:fs/promises";import*as Xe from"node:net";import Ri from"node:os";import Ot from"node:path";import{StringDecoder as bn}from"node:string_decoder";var te="kodax-runtime-daemon",vn=1,He=["initialize","runtime.initialize","ping","runtime.identity","runtime.status","runtime.shutdown","runtime.capabilities","daemon.status","daemon.stop","daemon.logs","session.create","session.load","session.list","session.transcript","session.fork","session.notice.append","session.rewind","session.active_entry.set","session.activeEntry.set","session.compact","session.archive","session.unarchive","session.delete","session.settings.get","session.settings.update","run.start","run.get","run.list","run.await","run.abort","run.model.set","run.provider.set","run.reasoning.set","run.setModel","run.setProvider","run.setReasoning","event.subscribe","event.unsubscribe","event.replay","permission.list","permission.listPending","permission.request","permission.respond","workflow.list","workflow.get","workflow.subscribe","workflow.unsubscribe","workflow.pause","workflow.resume","workflow.stop","config.read","config.patch","config.reload","model.list","provider.list","provider.custom.list","provider.custom.upsert","provider.custom.remove","mcp.server.list","mcp.server.get","mcp.server.validate","mcp.server.upsert","mcp.server.delete","mcp.server.remove","mcp.server.reload","mcp.tool.list","extension.list","extension.reload","command.list","command.resolve","skill.list","skill.describe","skill.read","artifact.create","artifact.get","artifact.delete","agentRegistrations.list","agentRegistrations.upsert","agentRegistrations.remove","agents.listDispatchable","agents.describe","agents.preflight","agentTasks.list","agentTasks.start","agentTasks.get","agentTasks.events","agentTasks.wait","agentTasks.sendInput","agentTasks.cancel","agentTasks.reconcile","context.budget.get","tool.exposure.preview"],ui=new Set(He),di=new Set(["event","runtime.warning"]),mi=new Set(["invalid_frame","invalid_request","invalid_params","not_initialized","method_not_found","unauthorized","permission_denied","conflict","not_found","cancelled","overloaded","internal_error"]);function ze(e,n,t){return{protocol:te,version:1,kind:"request",id:e,method:n,...t!==void 0?{params:t}:{}}}o(ze,"createRuntimeDaemonRequest");function At(e,n){return{protocol:te,version:1,kind:"response",id:e,result:n===void 0?null:n}}o(At,"createRuntimeDaemonSuccessResponse");function re(e,n){return{protocol:te,version:1,kind:"error",...n!==void 0?{id:n}:{},error:e}}o(re,"createRuntimeDaemonErrorResponse");function Ct(e,n){return{protocol:te,version:1,kind:"notification",method:e,...n!==void 0?{params:n}:{}}}o(Ct,"createRuntimeDaemonNotification");function Dn(e){if(!Ve(e))return!1;let n=e;return n.kind==="request"&&typeof n.id=="string"&&n.id.length>0&&typeof n.method=="string"&&ui.has(n.method)}o(Dn,"isRuntimeDaemonRequest");function ke(e){if(!Ve(e))return!1;let n=e;return n.kind==="response"&&typeof n.id=="string"&&n.id.length>0&&Object.prototype.hasOwnProperty.call(n,"result")}o(ke,"isRuntimeDaemonSuccessResponse");function Ie(e){if(!Ve(e))return!1;let n=e;return n.kind==="error"&&(n.id===void 0||typeof n.id=="string")&&li(n.error)}o(Ie,"isRuntimeDaemonErrorResponse");function Ke(e){if(!Ve(e))return!1;let n=e;return n.kind==="notification"&&typeof n.method=="string"&&di.has(n.method)}o(Ke,"isRuntimeDaemonNotification");function ci(e){return Dn(e)||ke(e)||Ie(e)||Ke(e)}o(ci,"isRuntimeDaemonFrame");function Mt(e){let n;try{n=JSON.parse(e)}catch{return Tt("Frame is not valid JSON.")}return ci(n)?n:Tt("Frame does not match the runtime daemon protocol.")}o(Mt,"parseRuntimeDaemonFrame");function Tt(e){return re({code:"invalid_frame",message:e})}o(Tt,"invalidFrame");function Ve(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return n.protocol===te&&n.version===1}o(Ve,"isFrameBase");function li(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;let n=e;return typeof n.code=="string"&&mi.has(n.code)&&typeof n.message=="string"}o(li,"isRuntimeDaemonError");var gi=8*1024*1024,ve=class extends Error{constructor(t,r,a){super(t);this.code=r;this.data=a;this.name="RuntimeDaemonTransportError"}code;data;static{o(this,"RuntimeDaemonTransportError")}};function Pn(e){return e instanceof ve}o(Pn,"isRuntimeDaemonTransportError");function De(e="default",n){let t=kn(e),r=n===void 0?t:`${t}-${yi(Ot.resolve(n))}`;return process.platform==="win32"?{kind:"pipe",path:`\\\\.\\pipe\\kodax-runtime-${r}`}:{kind:"unix",path:Ot.join(Ri.tmpdir(),`kodax-runtime-${process.getuid?.()??"user"}-${r}.sock`)}}o(De,"defaultRuntimeDaemonEndpoint");function yi(e){return fi("sha256").update(e).digest("hex").slice(0,12)}o(yi,"shortPathHash");function _t(e,n={}){let t="",r=0,a=new bn("utf8"),m=n.maxFrameBytes??gi;if(!Number.isSafeInteger(m)||m<=0)throw new Error("Runtime daemon maxFrameBytes must be a positive safe integer.");let c=o(i=>{hi(i,m),i.trim()&&e(Mt(i))},"consumeLine"),s=o(i=>{t+=i,r+=Buffer.byteLength(i,"utf8")},"append");return{push(i){for(typeof i=="string"?(s(a.end()),a=new bn("utf8"),s(i)):s(a.write(i));;){let d=t.indexOf(`
|
|
9
|
-
`);if(d<0)break;let f=t.slice(0,d).replace(/\r$/,""),u=t.slice(0,d+1);t=t.slice(d+1),r-=Buffer.byteLength(u,"utf8"),c(f)}Kt(r,m)},flush(){s(a.end()),a=new bn("utf8");let i=t.trim();t="",r=0,i.length>0&&c(i)}}}o(_t,"createRuntimeDaemonFrameParser");async function Y(e,n={}){let t=Xe.createConnection(e.path);t.setEncoding("utf8"),await wi(t,n.connectTimeoutMs);let r=!1,a=new Set,m=new Map,c=_t(s=>{if(ke(s)){let i=m.get(s.id);if(!i)return;m.delete(s.id),i.resolve(s.result);return}if(Ie(s)){if(!s.id)return;let i=m.get(s.id);if(!i)return;m.delete(s.id),i.reject(new ve(s.error.message,s.error.code,s.error.data));return}if(Ke(s))for(let i of a)try{i(s)}catch{}},{maxFrameBytes:n.maxFrameBytes});return t.on("data",s=>{try{c.push(s)}catch(i){r=!0;let d=Ne(i);Qe(m,d),t.destroy(d)}}),t.on("close",()=>{r=!0,Qe(m,new Error("Runtime daemon transport closed."))}),t.on("error",s=>{r=!0,Qe(m,s)}),{request(s,i){if(r)return Promise.reject(new Error("Runtime daemon transport is closed."));let d=`req_${pi().replace(/-/g,"").slice(0,12)}`,f=ze(d,s,i),u;try{u=JSON.stringify(f)}catch(R){return Promise.reject(new ve(`Runtime daemon request params are not JSON-serializable: ${Ne(R).message}`,"invalid_params"))}let p=new Promise((R,S)=>{m.set(d,{resolve:R,reject:S})});return t.write(`${u}
|
|
10
|
-
`),p},subscribe(s){return a.add(s),{close(){a.delete(s)}}},async close(){r||(r=!0,c.flush(),t.end(),t.destroy(),Qe(m,new Error("Runtime daemon transport closed.")))}}}o(Y,"createRuntimeDaemonSocketClientTransport");async function Ft(e){await ki(e.endpoint);let n=Xe.createServer(),t=new Set,r=new Set,a=!1;return n.on("connection",m=>{if(a){m.destroy();return}t.add(m);let c=!1,s=o(u=>{if(m.destroyed)return;let p;try{p=JSON.stringify(u)}catch(R){let S=re({code:"internal_error",message:`Runtime daemon response is not JSON-serializable: ${Ne(R).message}`},u.kind==="response"||u.kind==="error"?u.id:void 0);p=JSON.stringify(S)}m.write(`${p}
|
|
11
|
-
`)},"send"),i=e.createDispatcher(u=>s(u));r.add(i);let d=_t(u=>{if(Dn(u)){i.handle(u).then(s,p=>{s(re({code:"internal_error",message:Ne(p).message}))});return}if(Ie(u)){s(u);return}s(re({code:"invalid_request",message:"Runtime daemon server expects request frames from clients."}))},{maxFrameBytes:e.maxFrameBytes}),f=o(u=>{if(c)return;c=!0;let p=Ne(u);s(re({code:"invalid_frame",message:p.message,...Pn(p)&&p.data!==void 0?{data:p.data}:{}})),m.end()},"rejectInvalidFrame");m.on("data",u=>{if(!c)try{d.push(u)}catch(p){f(p)}}),m.on("end",()=>{try{d.flush()}catch(u){f(u)}}),m.on("close",()=>{t.delete(m),r.delete(i),i.close()}),m.on("error",()=>{m.destroy()})}),await Si(n,e.endpoint.path),{endpoint:e.endpoint,unref(){n.unref()},async close(){if(!a){a=!0;for(let m of r)m.close();r.clear();for(let m of t)m.destroy();t.clear(),await vi(n)}}}}o(Ft,"createRuntimeDaemonSocketServer");function hi(e,n){Kt(Buffer.byteLength(e,"utf8"),n)}o(hi,"assertFrameSize");function Kt(e,n){if(!(e<=n))throw new ve(`Runtime daemon frame exceeds the ${n}-byte limit.`,"invalid_frame",{actualBytes:e,maxFrameBytes:n})}o(Kt,"assertFrameByteSize");function wi(e,n=2e3){return new Promise((t,r)=>{let a=setTimeout(()=>{m(),e.destroy(),r(new Error("Timed out connecting to runtime daemon."))},n);a.unref?.();let m=o(()=>{clearTimeout(a),e.off("connect",c),e.off("error",s)},"cleanup"),c=o(()=>{m(),t()},"onConnect"),s=o(i=>{m(),r(i)},"onError");e.once("connect",c),e.once("error",s)})}o(wi,"waitForConnect");function Si(e,n){return new Promise((t,r)=>{let a=o(()=>{e.off("listening",m),e.off("error",c)},"cleanup"),m=o(()=>{a(),t()},"onListening"),c=o(s=>{a(),r(s)},"onError");e.once("listening",m),e.once("error",c),e.listen(n)})}o(Si,"waitForListen");async function ki(e){if(e.kind!=="unix")return;let n;try{n=await Ye.stat(e.path)}catch(t){if(En(t)&&t.code==="ENOENT")return;throw t}if(!n.isSocket())throw new Error(`Runtime daemon Unix endpoint exists and is not a socket: ${e.path}`);if(await Ii(e.path))throw new Error(`Runtime daemon Unix endpoint is already accepting connections: ${e.path}`);try{await Ye.unlink(e.path)}catch(t){if(!En(t)||t.code!=="ENOENT")throw t}}o(ki,"prepareUnixSocketEndpoint");function Ii(e){return new Promise((n,t)=>{let r=Xe.createConnection(e),a=setTimeout(()=>{m(),r.destroy(),t(new Error(`Timed out probing runtime daemon Unix endpoint: ${e}`))},250);a.unref?.();let m=o(()=>{clearTimeout(a),r.off("connect",c),r.off("error",s)},"cleanup"),c=o(()=>{m(),r.end(),r.destroy(),n(!0)},"onConnect"),s=o(i=>{if(m(),r.destroy(),En(i)&&(i.code==="ECONNREFUSED"||i.code==="ENOENT")){n(!1);return}t(i)},"onError");r.once("connect",c),r.once("error",s)})}o(Ii,"unixSocketAcceptsConnections");function vi(e){return new Promise((n,t)=>{e.close(r=>{r?t(r):n()})})}o(vi,"closeNetServer");function Qe(e,n){for(let t of e.values())t.reject(n);e.clear()}o(Qe,"rejectPending");function Ne(e){return e instanceof Error?e:new Error(String(e))}o(Ne,"normalizeTransportError");function En(e){return e instanceof Error&&"code"in e}o(En,"isNodeFileError");async function Ge(e,n={}){let t=Et(e);if(!t)return{pidAlive:!1,endpointReachable:!1,identityMatches:!1};let r=(n.isPidAlive??Xt)(t.pid),a=ue(t),m=_e(e),c;try{c=await(n.createTransport?n.createTransport(a):Y(a,{connectTimeoutMs:n.connectTimeoutMs??1e3}));let s=c.request("initialize",{profile:t.profile,...m!==void 0?{token:m}:{}});s.catch(()=>{});let i=await Di(s,n.handshakeTimeoutMs??1e3,"Timed out waiting for runtime daemon handshake.");return{state:t,pidAlive:r,endpointReachable:!0,identityMatches:bi(i,t)}}catch(s){return Pn(s)&&s.code==="unauthorized"?{state:t,pidAlive:r,endpointReachable:!0,identityMatches:!1}:{state:t,pidAlive:r,endpointReachable:!1,identityMatches:!1}}finally{await c?.close?.()}}o(Ge,"observeRuntimeDaemonHealth");async function xn(e,n,t={}){let r=await Ge(e,t),a=r.state?void 0:he(e.lockFile),m=a?{...r,lockOwnerPidAlive:(t.isPidAlive??Xt)(a.pid)}:r;return Pt(e,n,m)}o(xn,"resolveRuntimeDaemonOwnership");function ue(e){return{kind:process.platform==="win32"||e.endpoint.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e.endpoint}}o(ue,"runtimeDaemonEndpointFromState");function Xt(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(n){return Ei(n)&&n.code==="EPERM"}}o(Xt,"isRuntimeDaemonPidAlive");async function Di(e,n,t){let r;try{return await Promise.race([e,new Promise((a,m)=>{r=setTimeout(()=>m(new Error(t)),n),r.unref?.()})])}finally{r!==void 0&&clearTimeout(r)}}o(Di,"withTimeout");function bi(e,n){let t=Nt(e),r=Nt(t?.identity)??t;return r?.runtimeId===n.runtimeId&&r.profile===n.profile}o(bi,"daemonIdentityMatchesState");function Nt(e){if(!(e===null||typeof e!="object"||Array.isArray(e)))return e}o(Nt,"asRecord");function Ei(e){return e instanceof Error&&"code"in e}o(Ei,"isNodeProcessError");import{randomUUID as Li}from"node:crypto";var l={type:"string"},A={type:"boolean"},J={type:"integer"},h={type:"object",additionalProperties:!0},L={type:"array",items:h},je={oneOf:[{type:"null"},h]},j=g({ok:A},["ok"]),K=g({}),en={initialize:{params:g({profile:l,token:l,autoStart:A,endpoint:l,clientInfo:h,capabilities:h},[],!0),result:g({identity:h,capabilities:h},["identity","capabilities"],!0)},"runtime.initialize":{params:g({profile:l,token:l,autoStart:A,endpoint:l,clientInfo:h,capabilities:h},[],!0),result:g({identity:h,capabilities:h},["identity","capabilities"],!0)},ping:{params:K,result:g({ok:A,runtimeId:l},["ok","runtimeId"])},"runtime.identity":{params:K,result:h},"runtime.status":{params:K,result:h},"runtime.shutdown":{params:K,result:j},"runtime.capabilities":{params:K,result:h},"daemon.status":{params:K,result:h},"daemon.stop":{params:K,result:j},"daemon.logs":{params:K,result:h},"session.create":{params:Ci(),result:me()},"session.load":{params:g({sessionId:l},["sessionId"]),result:me()},"session.list":{params:Mi(),result:ie(me())},"session.transcript":{params:g({sessionId:l},["sessionId"]),result:je},"session.fork":{params:Oi(),result:be(me())},"session.notice.append":{params:g({sessionId:l,content:l,source:l},["sessionId","content"]),result:je},"session.rewind":{params:g({sessionId:l,selector:l},["sessionId"]),result:be(me())},"session.active_entry.set":{params:qt(),result:be(me())},"session.activeEntry.set":{params:qt(),result:be(me())},"session.compact":{params:_i(),result:h},"session.archive":{params:g({sessionId:l},["sessionId"]),result:j},"session.unarchive":{params:g({sessionId:l},["sessionId"]),result:j},"session.delete":{params:g({sessionId:l},["sessionId"]),result:j},"session.settings.get":{params:g({sessionId:l},["sessionId"]),result:h},"session.settings.update":{params:g({sessionId:l,patch:h},["sessionId","patch"]),result:h},"run.start":{params:Fi(),result:Ai()},"run.get":{params:de(),result:Wt()},"run.list":{params:Ki(),result:ie(Wt())},"run.await":{params:de(),result:Ni()},"run.abort":{params:de(),result:j},"run.model.set":{params:g({runId:l,model:l},["runId"],!0),result:j},"run.provider.set":{params:g({runId:l,provider:l},["runId","provider"]),result:j},"run.reasoning.set":{params:g({runId:l,reasoning:l},["runId"],!0),result:j},"run.setModel":{params:g({runId:l,model:l},["runId"],!0),result:j},"run.setProvider":{params:g({runId:l,provider:l},["runId","provider"]),result:j},"run.setReasoning":{params:g({runId:l,reasoning:l},["runId"],!0),result:j},"event.subscribe":{params:jt(Gt()),result:$t()},"event.unsubscribe":{params:g({subscriptionId:l},["subscriptionId"]),result:j},"event.replay":{params:Xi(),result:ie(ji())},"permission.list":{params:Ut(),result:ie(Jt())},"permission.listPending":{params:Ut(),result:ie(Jt())},"permission.request":{params:Zt(),result:Bt()},"permission.respond":{params:g({requestId:l,runId:l,decision:Bt()},["requestId","decision"]),result:A},"workflow.list":{params:Ht(),result:L},"workflow.get":{params:de(),result:{oneOf:[h,{type:"null"}]}},"workflow.subscribe":{params:jt(Ht()),result:$t()},"workflow.unsubscribe":{params:g({subscriptionId:l},["subscriptionId"]),result:j},"workflow.pause":{params:de(),result:A},"workflow.resume":{params:de(),result:A},"workflow.stop":{params:de(),result:A},"config.read":{params:K,result:h},"config.patch":{params:g({patch:h},["patch"]),result:h},"config.reload":{params:K,result:g({ok:A,config:h},["ok","config"])},"model.list":{params:g({provider:l},[],!0),result:{oneOf:[h,L]}},"provider.list":{params:K,result:L},"provider.custom.list":{params:K,result:L},"provider.custom.upsert":{params:g({config:h},["config"]),result:h},"provider.custom.remove":{params:g({name:l},["name"]),result:A},"mcp.server.list":{params:K,result:h},"mcp.server.get":{params:g({name:l},["name"]),result:{oneOf:[h,{type:"null"}]}},"mcp.server.validate":{params:g({name:l,config:h},["name","config"]),result:{oneOf:[g({ok:A,config:h},["ok","config"],!0),g({ok:A,error:l},["ok","error"],!0)]}},"mcp.server.upsert":{params:g({name:l,config:h},["name","config"]),result:h},"mcp.server.delete":{params:g({name:l},["name"]),result:A},"mcp.server.remove":{params:g({name:l},["name"]),result:A},"mcp.server.reload":{params:K,result:g({ok:A,servers:L},["ok","servers"])},"mcp.tool.list":{params:g({server:l,forceRefresh:A},[],!0),result:L},"extension.list":{params:K,result:g({active:A,extensions:L,diagnostics:h},["active","extensions"],!0)},"extension.reload":{params:K,result:g({ok:A,active:A},["ok","active"],!0)},"command.list":{params:g({projectRoot:l},[],!0),result:L},"command.resolve":{params:g({name:l,projectRoot:l},["name"],!0),result:je},"skill.list":{params:g({projectRoot:l,userInvocableOnly:A},[],!0),result:L},"skill.describe":{params:g({name:l,projectRoot:l},["name"],!0),result:je},"skill.read":{params:g({name:l,projectRoot:l},["name"],!0),result:je},"artifact.create":{params:g({kind:{enum:["image","file","video"]},path:l,mediaType:l,mimeType:l,name:l,source:{enum:["user-inline","clipboard","drag-drop","file-picker"]},description:l},["kind","path"]),result:zt()},"artifact.get":{params:g({artifactId:l},["artifactId"]),result:be(zt())},"artifact.delete":{params:g({artifactId:l},["artifactId"]),result:A},"agentRegistrations.list":{params:K,result:L},"agentRegistrations.upsert":{params:g({registration:h},["registration"]),result:h},"agentRegistrations.remove":{params:g({agentId:l},["agentId"]),result:A},"agents.listDispatchable":{params:h,result:L},"agents.describe":{params:g({agentId:l,query:h},["agentId","query"]),result:be(h)},"agents.preflight":{params:h,result:h},"agentTasks.list":{params:h,result:L},"agentTasks.start":{params:h,result:h},"agentTasks.get":{params:g({taskId:l},["taskId"]),result:h},"agentTasks.events":{params:g({taskId:l,cursor:J},["taskId"],!0),result:L},"agentTasks.wait":{params:g({taskId:l,timeoutMs:J},["taskId"],!0),result:h},"agentTasks.sendInput":{params:g({taskId:l,input:h},["taskId","input"]),result:h},"agentTasks.cancel":{params:g({taskId:l,reason:l},["taskId"],!0),result:h},"agentTasks.reconcile":{params:g({taskId:l},["taskId"]),result:h},"context.budget.get":{params:Lt(),result:{oneOf:[h,{type:"null"}]}},"tool.exposure.preview":{params:Lt(),result:{oneOf:[h,{type:"null"}]}}},Vt={event:g({subscriptionId:l,event:h},["subscriptionId","event"]),"runtime.warning":h},Qt={protocol:te,version:1,methods:en,notifications:Vt},Pi=JSON.stringify(Qt,null,2);function xi(){return He}o(xi,"listRuntimeDaemonSchemaMethods");function Ee(e,n,t="$"){if(e.oneOf!==void 0)return e.oneOf.filter(c=>Ee(c,n,t).length===0).length===1?[]:[`${t} must match exactly one allowed schema.`];if(e.enum!==void 0&&!e.enum.some(m=>Object.is(m,n)))return[`${t} must be one of: ${e.enum.map(String).join(", ")}.`];let r=e.type===void 0?[]:Array.isArray(e.type)?e.type:[e.type];if(r.length>0&&!r.some(m=>Ti(m,n)))return[`${t} must be ${r.join(" or ")}.`];if(Array.isArray(n)){let m=e.items;return m===void 0?[]:n.flatMap((c,s)=>Ee(m,c,`${t}[${s}]`))}if(!Yt(n))return[];let a=[];for(let m of e.required??[])(!Object.prototype.hasOwnProperty.call(n,m)||n[m]===void 0)&&a.push(`${t}.${m} is required.`);for(let[m,c]of Object.entries(n)){if(c===void 0)continue;let s=e.properties?.[m];if(s!==void 0){a.push(...Ee(s,c,`${t}.${m}`));continue}e.additionalProperties===!1?a.push(`${t}.${m} is not allowed.`):typeof e.additionalProperties=="object"&&a.push(...Ee(e.additionalProperties,c,`${t}.${m}`))}return a}o(Ee,"validateRuntimeDaemonJsonSchema");function Ti(e,n){switch(e){case"array":return Array.isArray(n);case"boolean":return typeof n=="boolean";case"integer":return typeof n=="number"&&Number.isInteger(n);case"null":return n===null;case"number":return typeof n=="number"&&Number.isFinite(n);case"object":return Yt(n);case"string":return typeof n=="string"}}o(Ti,"matchesJsonSchemaType");function Yt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(Yt,"isJsonObject");function g(e,n=[],t=!1){return{type:"object",properties:e,required:n,additionalProperties:t}}o(g,"objectSchema");function de(){return g({runId:l},["runId"])}o(de,"runIdParamsSchema");function jt(e){return g({filter:e})}o(jt,"filterParamsSchema");function Lt(){return g({sessionId:l,runId:l},[],!0)}o(Lt,"diagnosticParamsSchema");function $t(){return g({subscriptionId:l},["subscriptionId"])}o($t,"subscriptionSchema");function Ai(){return g({runId:l,sessionId:l,turnId:l},["runId","sessionId"],!0)}o(Ai,"runStartedSchema");function ie(e){return{type:"array",items:e}}o(ie,"arraySchema");function be(e){return{oneOf:[{type:"null"},e]}}o(be,"nullableSchema");function Ci(){return g({sessionId:l,title:l,projectPath:l,gitRoot:l,surface:l,profileId:l,tag:l})}o(Ci,"createSessionParamsSchema");function me(){return g({id:l,cursor:l,title:l,gitRoot:l,workspaceRoot:l,surface:l,profileId:l,createdAt:l,msgCount:J,tag:l,projectKey:l,archived:A},["id","title"],!0)}o(me,"sessionSchema");function Mi(){return g({projectRoot:l,scope:{enum:["user","managed-task-worker","all"]},includeArchived:A,limit:J,before:l,tag:l,surface:l,cursor:l})}o(Mi,"sessionFilterSchema");function Oi(){return g({sessionId:l,selector:l,newSessionId:l,title:l},["sessionId"])}o(Oi,"forkSessionParamsSchema");function qt(){return g({sessionId:l,entryId:l},["sessionId","entryId"])}o(qt,"activeEntryParamsSchema");function _i(){return g({sessionId:l,provider:l,model:l,customInstructions:l,contextWindow:J},["sessionId"])}o(_i,"compactSessionParamsSchema");function Fi(){return g({sessionId:l,prompt:l,input:{oneOf:[h,ie(h)]},mode:{enum:["coding","managed_task"]},permissionBroker:{enum:["runtime","client"]},options:h},["sessionId"],!0)}o(Fi,"startRunParamsSchema");function Ki(){return g({sessionId:l,phase:{oneOf:[Ze(),ie(Ze())]}})}o(Ki,"runFilterSchema");function Wt(){return g({runId:l,sessionId:l,turnId:l,phase:Ze(),startedAt:l,endedAt:l,provider:l,model:l,reasoning:l,error:l},["runId","sessionId","phase","startedAt","provider"],!0)}o(Wt,"runStatusSchema");function Ni(){return g({runId:l,sessionId:l,phase:Ze(),result:h,error:{oneOf:[l,h]}},["runId","sessionId","phase"],!0)}o(Ni,"runResultSchema");function Ze(){return{enum:["queued","running","waiting_permission","waiting_user_input","completed","failed","cancelled","interrupted"]}}o(Ze,"runPhaseSchema");function Gt(){return g({sessionId:l,runId:l,type:{oneOf:[l,ie(l)]}})}o(Gt,"eventFilterSchema");function Xi(){return g({...Gt().properties??{},sinceSeq:J,limit:J})}o(Xi,"eventReplayFilterSchema");function ji(){return g({id:l,seq:J,time:l,sessionId:l,runId:l,turnId:l,type:l,payload:{}},["id","seq","time","sessionId","runId","type","payload"],!0)}o(ji,"runtimeEventSchema");function Ut(){return g({sessionId:l,runId:l,toolName:l})}o(Ut,"permissionFilterSchema");function Zt(){return g({sessionId:l,runId:l,turnId:l,toolCallId:l,toolName:l,reason:l,risk:{enum:["low","medium","high"]},inputPreview:l,expiresAt:l,timeoutMs:J},["sessionId","runId","toolName"])}o(Zt,"permissionRequestInputSchema");function Jt(){return g({...Zt().properties??{},id:l,createdAt:l},["id","sessionId","runId","toolName","createdAt"],!0)}o(Jt,"permissionRequestSchema");function Bt(){return{oneOf:[g({type:{enum:["allow_once"]}},["type"]),g({type:{enum:["allow_always"]},scope:g({toolName:l,sessionId:l})},["type","scope"]),g({type:{enum:["reject"]},reason:l},["type"])]}}o(Bt,"permissionDecisionSchema");function Ht(){return g({runId:l,activeOnly:A,limit:J})}o(Ht,"workflowFilterSchema");function zt(){return g({id:l,kind:{enum:["image","file","video"]},path:l,sizeBytes:J,mediaType:l,mimeType:l,name:l,source:{enum:["user-inline","clipboard","drag-drop","file-picker"]},description:l,createdAt:l},["id","kind","path","sizeBytes","createdAt"],!0)}o(zt,"artifactSchema");var er=1e3;function Cn(){let e=new Map,n=o(()=>{if(!(e.size<=er))for(let[r,a]of e){if(e.size<=er)break;a.settled&&e.delete(r)}},"pruneSettled"),t=o((r,a)=>{e.get(r)===a&&(a.settled=!0,n())},"markSettled");return{remember(r,a){let m,c=a.finally(()=>{m&&t(r,m)});c.catch(()=>{}),m={promise:c,settled:!1},e.set(r,m),n()},get(r){return e.get(r)?.promise},clear(){e.clear()}}}o(Cn,"createRuntimeDaemonRunResultStore");function nn(e){return e==="initialize"||e==="runtime.initialize"}o(nn,"isInitializeMethod");function dr(e){let n=new Map,t=e.runResults??Cn(),r=!1,a={},m=o(d=>{let f=n.get(d);return f?(n.delete(d),f.close(),!0):!1},"closeSubscription"),c=o((d,f)=>{n.set(d,f)},"rememberSubscription"),s=o((d,f)=>{mr(f)&&a.contextDiagnostics!==!0||e.notify?.(Ct("event",{subscriptionId:d,event:f}))},"notify");return{handle:o(async d=>{try{ur(d.method,"params",d.params===void 0?{}:d.params,"invalid_params");let f;if(!r&&!nn(d.method))throw N("not_initialized","Runtime daemon connection must initialize before runtime methods are accepted.");if(r&&nn(d.method))throw N("conflict","Runtime daemon connection is already initialized.");if(nn(d.method)){f=O(d.params);let R=typeof f?.token=="string"?f.token:void 0;if(e.authToken!==void 0&&R!==e.authToken)throw N("unauthorized","Runtime daemon initialize token is invalid.");let S=typeof f?.profile=="string"?f.profile:void 0;if(S!==void 0&&S!==e.runtime.identity.profile)throw N("conflict",`Runtime daemon profile mismatch: expected ${e.runtime.identity.profile}, got ${S}.`)}let u=await $i(d,e,t,c,m,s,()=>a),p=Gi(d.method,u);return ur(d.method,"result",p,"internal_error"),nn(d.method)&&(r=!0,a=qi(f?.capabilities)),At(d.id,p)}catch(f){return re(Zi(f),d.id)}},"handle"),close(){for(let d of[...n.keys()])m(d)}}}o(dr,"createRuntimeDaemonDispatcher");async function $i(e,n,t,r,a,m,c){let s=n.runtime;switch(e.method){case"initialize":case"runtime.initialize":return{identity:s.identity,capabilities:nr(n.capabilities,s.agents.enabled)};case"ping":return{ok:!0,runtimeId:s.identity.runtimeId};case"runtime.identity":return s.identity;case"daemon.status":case"runtime.status":return n.status?n.status():s.status.snapshot();case"daemon.stop":case"runtime.shutdown":return n.stop?n.stop():s.close().then(()=>({ok:!0}));case"daemon.logs":return n.logs?n.logs():{entries:[]};case"runtime.capabilities":return nr(n.capabilities,s.agents.enabled);case"config.read":return n.config?An(await n.config()):s.config.read();case"config.patch":{let i=Bi(v(e.params),"patch");return s.config.patch(i)}case"config.reload":return s.config.reload();case"provider.list":return n.providerList?n.providerList():s.catalog.providers();case"model.list":return n.providerList?Ui(await n.providerList(),O(e.params)):s.catalog.models(Hi(e.params));case"provider.custom.list":return s.catalog.customProviders();case"provider.custom.upsert":{let i=v(e.params);return s.catalog.upsertCustomProvider(v(i.config))}case"provider.custom.remove":return s.catalog.deleteCustomProvider(C(e.params,"name"));case"mcp.server.list":return s.mcp.listServers();case"mcp.server.get":return s.mcp.getServer(C(e.params,"name"));case"mcp.server.validate":{let i=v(e.params);return s.mcp.validateServer(_(i,"name"),i.config)}case"mcp.server.upsert":{let i=v(e.params);return s.mcp.upsertServer(_(i,"name"),v(i.config))}case"mcp.server.delete":case"mcp.server.remove":return s.mcp.deleteServer(C(e.params,"name"));case"mcp.server.reload":return s.mcp.reloadServers();case"mcp.tool.list":return s.mcp.listTools(zi(e.params));case"extension.list":return s.catalog.extensions();case"extension.reload":return s.catalog.reloadExtensions();case"command.list":{let i=O(e.params),d=typeof i?.projectRoot=="string"?i.projectRoot:void 0;return s.catalog.commands(d)}case"command.resolve":{let i=v(e.params);return s.catalog.resolveCommand({name:_(i,"name"),...typeof i.projectRoot=="string"?{projectRoot:i.projectRoot}:{}})}case"skill.list":return s.catalog.skills(Vi(e.params));case"skill.describe":case"skill.read":{let i=v(e.params);return s.catalog.describeSkill({name:_(i,"name"),...typeof i.projectRoot=="string"?{projectRoot:i.projectRoot}:{}})}case"artifact.create":return s.artifacts.create(Qi(e.params));case"artifact.get":return s.artifacts.get(C(e.params,"artifactId"));case"artifact.delete":return s.artifacts.delete(C(e.params,"artifactId"));case"agentRegistrations.list":return Tn(n,c()),B(s),s.admin.agentRegistrations.list();case"agentRegistrations.upsert":{Tn(n,c()),B(s);let i=v(e.params);return s.admin.agentRegistrations.upsert(v(i.registration))}case"agentRegistrations.remove":return Tn(n,c()),B(s),s.admin.agentRegistrations.remove(C(e.params,"agentId"));case"agents.listDispatchable":return s.agents.listDispatchable(v(e.params));case"agents.describe":{let i=v(e.params);return s.agents.describe(_(i,"agentId"),v(i.query))}case"agents.preflight":return s.agents.preflight(v(e.params));case"agentTasks.list":return B(s),s.agentTasks.list(O(e.params));case"agentTasks.start":return B(s),s.agentTasks.start(v(e.params));case"agentTasks.get":return B(s),s.agentTasks.get(C(e.params,"taskId"));case"agentTasks.events":{B(s);let i=v(e.params);return s.agentTasks.events(_(i,"taskId"),sr(i,"cursor"))}case"agentTasks.wait":{B(s);let i=v(e.params);return s.agentTasks.wait(_(i,"taskId"),sr(i,"timeoutMs"))}case"agentTasks.sendInput":{B(s);let i=v(e.params);return s.agentTasks.sendInput(_(i,"taskId"),v(i.input))}case"agentTasks.cancel":{B(s);let i=v(e.params);return s.agentTasks.cancel(_(i,"taskId"),tn(i,"reason"))}case"agentTasks.reconcile":return B(s),s.agentTasks.reconcile(C(e.params,"taskId"));case"session.create":return s.sessions.create(O(e.params));case"session.load":return s.sessions.load(C(e.params,"sessionId"));case"session.list":return s.sessions.list(O(e.params));case"session.transcript":return s.sessions.transcript(C(e.params,"sessionId"));case"session.fork":return s.sessions.fork(v(e.params));case"session.notice.append":return s.sessions.appendNotice(v(e.params));case"session.rewind":return s.sessions.rewind(v(e.params));case"session.active_entry.set":case"session.activeEntry.set":return s.sessions.setActiveEntry(v(e.params));case"session.compact":return s.sessions.compact(v(e.params));case"session.archive":return await s.sessions.archive(C(e.params,"sessionId")),{ok:!0};case"session.unarchive":return await s.sessions.unarchive(C(e.params,"sessionId")),{ok:!0};case"session.delete":return await s.sessions.delete(C(e.params,"sessionId")),{ok:!0};case"session.settings.get":return s.sessions.getSettings(C(e.params,"sessionId"));case"session.settings.update":{let i=v(e.params);return s.sessions.updateSettings(_(i,"sessionId"),v(i.patch))}case"run.start":{let i=await s.runs.start(v(e.params));return t.remember(i.runId,i.result),{runId:i.runId,sessionId:i.sessionId,...i.turnId!==void 0?{turnId:i.turnId}:{}}}case"run.get":return s.runs.get(C(e.params,"runId"));case"run.list":return s.runs.list(O(e.params));case"run.await":{let i=C(e.params,"runId"),d=t.get(i);return d||s.runs.await(i)}case"run.abort":return await s.runs.abort(C(e.params,"runId")),{ok:!0};case"run.model.set":return ir(s,e.params);case"run.setModel":return ir(s,e.params);case"run.provider.set":{let i=v(e.params);return await s.runs.setProvider(_(i,"runId"),_(i,"provider")),{ok:!0}}case"run.setProvider":{let i=v(e.params);return await s.runs.setProvider(_(i,"runId"),_(i,"provider")),{ok:!0}}case"run.reasoning.set":return or(s,e.params);case"run.setReasoning":return or(s,e.params);case"event.subscribe":{let i=O(e.params)??{},d=O(i.filter),f=ar(),u=s.events.subscribe(d??{},p=>{m(f,p)});return r(f,u),{subscriptionId:f}}case"event.unsubscribe":return{ok:a(C(e.params,"subscriptionId"))};case"event.replay":return Wi(await s.events.replay(O(e.params)),c());case"permission.list":case"permission.listPending":return s.permissions.listPending(O(e.params));case"permission.request":return s.permissions.request(v(e.params));case"permission.respond":{let i=v(e.params),d=tn(i,"runId");return s.permissions.respond(_(i,"requestId"),v(i.decision),d!==void 0?{runId:d}:void 0)}case"workflow.list":return s.workflows.list(O(e.params));case"workflow.get":return s.workflows.get(C(e.params,"runId"));case"workflow.subscribe":{let i=O(e.params)??{},d=O(i.filter),f=ar(),u=s.workflows.subscribe(d??{},p=>{m(f,p)});return r(f,u),{subscriptionId:f}}case"workflow.unsubscribe":return{ok:a(C(e.params,"subscriptionId"))};case"workflow.pause":return s.workflows.pause(C(e.params,"runId"));case"workflow.resume":return s.workflows.resume(C(e.params,"runId"));case"workflow.stop":return s.workflows.stop(C(e.params,"runId"));case"context.budget.get":return tr(c()),rr(s,"context.budget.snapshot",O(e.params));case"tool.exposure.preview":return tr(c()),rr(s,"tool.exposure.planned",O(e.params));default:throw N("method_not_found",`Runtime daemon method is not implemented: ${e.method}`)}}o($i,"dispatchRuntimeDaemonRequest");function qi(e){return ce(e)?{...e.richEvents===!0?{richEvents:!0}:{},...e.permissionPrompts===!0?{permissionPrompts:!0}:{},...e.configAdmin===!0?{configAdmin:!0}:{},...e.commandCatalog===!0?{commandCatalog:!0}:{},...e.skillCatalog===!0?{skillCatalog:!0}:{},...e.artifactUpload===!0?{artifactUpload:!0}:{},...e.contextDiagnostics===!0?{contextDiagnostics:!0}:{}}:{}}o(qi,"parseRuntimeClientCapabilities");function nr(e={},n=!1){return{events:!0,permissions:!0,workflows:!0,configAdmin:!0,commandCatalog:!0,skillCatalog:!0,artifactUpload:!0,contextDiagnostics:!0,hardDispose:!1,externalAgents:n,...e}}o(nr,"runtimeDaemonCapabilities");function B(e){if(!e.agents.enabled)throw N("method_not_found","Runtime external agent executor plane is not enabled.")}o(B,"requireExternalAgentsEnabled");function Tn(e,n){if(e.allowAgentRegistrationAdmin!==!0)throw N("permission_denied","Runtime daemon host denied Agent registration administration.");if(n.configAdmin!==!0)throw N("unauthorized","Runtime daemon client did not negotiate configAdmin capability.")}o(Tn,"requireAgentRegistrationAdmin");function Wi(e,n){return n.contextDiagnostics===!0?e:e.filter(t=>!mr(t))}o(Wi,"filterReplayForClientCapabilities");function tr(e){if(e.contextDiagnostics!==!0)throw N("unauthorized","Runtime daemon client did not negotiate contextDiagnostics capability.")}o(tr,"requireContextDiagnosticsCapability");function mr(e){return ce(e)?e.type==="context.budget.snapshot"||e.type==="tool.exposure.planned"||e.type==="context.compaction.skipped":!1}o(mr,"isContextDiagnosticRuntimeEvent");async function rr(e,n,t){let r=t??{},a={type:n,limit:100,...typeof r.sessionId=="string"?{sessionId:r.sessionId}:{},...typeof r.runId=="string"?{runId:r.runId}:{}};return(await e.events.replay(a)).at(-1)?.payload??null}o(rr,"latestRuntimeDiagnosticPayload");async function ir(e,n){let t=v(n);return await e.runs.setModel(_(t,"runId"),tn(t,"model")),{ok:!0}}o(ir,"setRunModel");async function or(e,n){let t=v(n);return await e.runs.setReasoning(_(t,"runId"),tn(t,"reasoning")),{ok:!0}}o(or,"setRunReasoning");function Ui(e,n){let t=Array.isArray(e)?e:[],r=typeof n?.provider=="string"?n.provider:void 0;if(r!==void 0){let a=t.find(m=>ce(m)&&m.name===r);return ce(a)?{provider:r,models:Array.isArray(a.models)?a.models:[]}:{provider:r,models:[]}}return t.flatMap(a=>!ce(a)||typeof a.name!="string"?[]:[{provider:a.name,models:Array.isArray(a.models)?a.models:[]}])}o(Ui,"listRuntimeModels");function An(e){return Array.isArray(e)?e.map(n=>An(n)):ce(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,Ji(n)?"[redacted]":An(t)])):e}o(An,"redactRuntimeConfig");function Ji(e){let n=e.toLowerCase();return n.includes("apikey")||n.includes("api_key")||n==="key"||n.endsWith("key")||n.includes("token")||n.includes("secret")||n.includes("password")}o(Ji,"isSensitiveConfigKey");function O(e){if(e!==void 0)return v(e)}o(O,"optionalRecord");function Bi(e,n){return v(e[n])}o(Bi,"requireRecordField");function Hi(e){let n=O(e);if(n)return typeof n.provider=="string"?{provider:n.provider}:void 0}o(Hi,"parseModelListFilter");function zi(e){let n=O(e);if(n)return{...typeof n.server=="string"?{server:n.server}:{},...typeof n.forceRefresh=="boolean"?{forceRefresh:n.forceRefresh}:{}}}o(zi,"parseMcpToolListFilter");function Vi(e){let n=O(e);if(n)return{...typeof n.projectRoot=="string"?{projectRoot:n.projectRoot}:{},...typeof n.userInvocableOnly=="boolean"?{userInvocableOnly:n.userInvocableOnly}:{}}}o(Vi,"parseSkillListFilter");function Qi(e){let n=v(e),t=n.kind;if(t!=="image"&&t!=="file"&&t!=="video")throw N("invalid_request","Expected artifact kind: image | file | video");let r=_(n,"path");return{kind:t,path:r,...typeof n.mediaType=="string"?{mediaType:n.mediaType}:{},...typeof n.mimeType=="string"?{mimeType:n.mimeType}:{},...typeof n.name=="string"?{name:n.name}:{},...Yi(n.source)?{source:n.source}:{},...typeof n.description=="string"?{description:n.description}:{}}}o(Qi,"parseArtifactCreateInput");function Yi(e){return e==="user-inline"||e==="clipboard"||e==="drag-drop"||e==="file-picker"}o(Yi,"isRuntimeArtifactSource");function ce(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(ce,"isRecord");function v(e){if(!e||typeof e!="object"||Array.isArray(e))throw N("invalid_request","Expected params to be an object.");return e}o(v,"requireRecord");function C(e,n){return _(v(e),n)}o(C,"requireStringParam");function _(e,n){let t=e[n];if(typeof t!="string"||t.length===0)throw N("invalid_request",`Expected string param: ${n}`);return t}o(_,"requireStringField");function tn(e,n){let t=e[n];if(t!=null){if(typeof t!="string")throw N("invalid_request",`Expected optional string param: ${n}`);return t}}o(tn,"optionalStringField");function sr(e,n){let t=e[n];if(t!=null){if(!Number.isSafeInteger(t)||t<0)throw N("invalid_request",`Expected optional non-negative integer param: ${n}`);return t}}o(sr,"optionalIntegerField");function N(e,n,t){let r=new Error(n);return r.code=e,t!==void 0&&(r.data=t),r}o(N,"daemonError");function ar(){return`sub_${Li().replace(/-/g,"").slice(0,12)}`}o(ar,"createSubscriptionId");function ur(e,n,t,r){let a=Ee(en[e][n],t,n);if(a.length!==0)throw N(r,n==="params"?`Invalid params for ${e}.`:`Runtime daemon produced an invalid result for ${e}.`,{issues:a})}o(ur,"validateDaemonMethodValue");function Gi(e,n){return n===void 0?null:e!=="run.await"||!ce(n)||!(n.error instanceof Error)?n:{...n,error:{name:n.error.name,message:n.error.message,...n.error.stack!==void 0?{stack:n.error.stack}:{}}}}o(Gi,"serializeRuntimeDaemonMethodResult");function Zi(e){if(e instanceof Error){let n=e;return{code:typeof n.code=="string"&&eo(n.code)?n.code:"internal_error",message:e.message,...n.data!==void 0?{data:n.data}:{}}}return{code:"internal_error",message:String(e)}}o(Zi,"normalizeRuntimeDaemonError");function eo(e){return e==="invalid_frame"||e==="invalid_request"||e==="invalid_params"||e==="not_initialized"||e==="method_not_found"||e==="unauthorized"||e==="permission_denied"||e==="conflict"||e==="not_found"||e==="cancelled"||e==="overloaded"||e==="internal_error"}o(eo,"isRuntimeDaemonErrorCode");async function On(e){Se(e.paths);let n=vt();Dt(e.paths,n);let t=Mn(e,"starting");Fe(e.paths,t),ne(e.paths,"info","Runtime daemon starting.",{runtimeId:e.runtime.identity.runtimeId,endpoint:e.endpoint.path});let r=Un(f=>{no(e.paths,f)}),a,m,c=Cn();try{a=await Ft({endpoint:e.endpoint,createDispatcher:o(f=>dr({runtime:e.runtime,authToken:n,allowAgentRegistrationAdmin:!0,notify:f,runResults:c,logs:o(()=>({logFile:e.paths.logFile,entries:bt(e.paths)}),"logs"),stop:o(()=>(ne(e.paths,"info","Runtime daemon stop requested."),m?.(),{ok:!0}),"stop")}),"createDispatcher")})}catch(f){throw ne(e.paths,"error","Runtime daemon failed to start.",{error:cr(f).message}),r(),In(e.lock),Fe(e.paths,{...t,status:"unhealthy",lastError:cr(f).message}),f}let s=Mn(e,"ready");Fe(e.paths,s),ne(e.paths,"info","Runtime daemon ready.",{runtimeId:s.runtimeId,endpoint:s.endpoint});let i=!1,d=o(async()=>{i||(i=!0,Fe(e.paths,Mn(e,"stopping")),ne(e.paths,"info","Runtime daemon stopping."),await a?.close(),c.clear(),await e.runtime.close(),ne(e.paths,"info","Runtime daemon stopped."),r(),In(e.lock)&&xt(e.paths))},"closeHost");return m=o(()=>{setTimeout(()=>{d()},0).unref?.()},"requestStop"),{endpoint:e.endpoint,state:s,unref(){a?.unref()},close:d}}o(On,"startRuntimeDaemonHost");function no(e,n){try{ne(e,n.level==="error"?"error":n.level==="warn"?"warn":"info",`[${n.source}] ${n.message}`,{level:n.level,source:n.source,...n.detail!==void 0?{detail:n.detail}:{}})}catch{}}o(no,"appendRuntimeDiagnostic");function Mn(e,n){return{runtimeId:e.runtime.identity.runtimeId,profile:e.paths.profile,pid:process.pid,startedAt:e.runtime.identity.startedAt,endpoint:e.endpoint.path,version:e.runtime.identity.version,status:n}}o(Mn,"createHostState");function cr(e){return e instanceof Error?e:new Error(String(e))}o(cr,"normalizeHostError");async function lr(e){let n=e.profile??"default",t=io(e.homeDir),r=we(t,n),a=e.endpoint??De(n,t),m=await e.createRuntime(),c={runtimeId:m.identity.runtimeId,pid:process.pid,createdAt:new Date().toISOString()},s=await xn(r,c,e.healthCheck);if(s.kind==="attach"){await m.close();let f=ue(s.state);return fr(r,f,e.connectTimeoutMs)}if(s.kind==="wait")return oo(r,a,m,c,{...e,profile:n});if(s.kind==="unhealthy")throw await m.close(),new Error(`Runtime daemon is ${s.health}; refusing to take ownership.`);let i=await On({runtime:m,paths:r,endpoint:a,lock:s.lock}),d=await Y(a,{connectTimeoutMs:e.connectTimeoutMs});return pr(r,a,d,i)}o(lr,"acquireRuntimeDaemonLease");function io(e){return ro.resolve(e??to.homedir())}o(io,"resolveRuntimeDaemonHomeDir");async function oo(e,n,t,r,a){let m=Date.now()+(a.startupTimeoutMs??5e3);for(;Date.now()<=m;){let c=await xn(e,r,a.healthCheck);if(c.kind==="attach")return await t.close(),fr(e,ue(c.state),a.connectTimeoutMs);if(c.kind==="claim"){let s=await On({runtime:t,paths:e,endpoint:n,lock:c.lock}),i=await Y(n,{connectTimeoutMs:a.connectTimeoutMs});return pr(e,n,i,s)}if(c.kind==="unhealthy")throw await t.close(),new Error(`Runtime daemon is ${c.health}; refusing to take ownership.`);await so(a.pollIntervalMs??100)}throw await t.close(),new Error(`Timed out waiting for runtime daemon profile "${a.profile}" to become ready.`)}o(oo,"waitForDaemonLease");async function fr(e,n,t){let r=await Y(n,{connectTimeoutMs:t});return{transport:r,endpoint:n,paths:e,ownsHost:!1,async close(){await r.close?.()},async shutdown(){try{await r.request("runtime.shutdown")}finally{await r.close?.()}}}}o(fr,"createAttachedLease");function pr(e,n,t,r){r.unref();let a=!1,m=!1;return{transport:t,endpoint:n,paths:e,ownsHost:!0,async close(){a||(a=!0,await t.close?.())},async shutdown(){m||(m=!0,await r.close())}}}o(pr,"createOwnedLease");function so(e){return new Promise(n=>{setTimeout(n,e).unref?.()})}o(so,"delay");import{spawn as ao}from"node:child_process";import{fileURLToPath as uo}from"node:url";import mo from"node:os";import oe from"node:path";async function gr(e){let n=e.profile??"default",t=oe.resolve(e.homeDir??mo.homedir()),r=we(t,n),a=De(r.profile,t);if(e.endpoint&&e.endpoint.path!==a.path)throw new Error("SDK daemon auto-start only supports the profile default endpoint; use attach-only mode for custom endpoints.");let m=await Ge(r,e.healthCheck),c=Be(m);if(c==="healthy"&&m.state)return Rr(r,ue(m.state),!1,e);if(c==="unhealthy"||c==="mismatch")throw new Error(`Runtime daemon is ${c}; refusing to start a competing owner.`);let s=await lo({profile:r.profile,homeDir:t,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs}),i=await co(r,e),d=ue(i.state);return Rr(r,d,i.state.pid===s.pid,e)}o(gr,"acquireRuntimeDaemonProcessLease");async function Rr(e,n,t,r){let a=await Y(n,{connectTimeoutMs:r.connectTimeoutMs});return{transport:a,endpoint:n,paths:e,ownsHost:t,async close(){await a.close?.()},async shutdown(){try{await a.request("runtime.shutdown")}finally{await a.close?.()}}}}o(Rr,"connectProcessLease");async function co(e,n){let t=Date.now()+(n.startupTimeoutMs??6e4);for(;Date.now()<=t;){let r=await Ge(e,n.healthCheck),a=Be(r);if(a==="healthy"&&r.state)return{...r,state:r.state};if(a==="mismatch")throw new Error("Runtime daemon endpoint identity does not match its persisted owner state.");await Ro(n.pollIntervalMs??100)}throw new Error(`Timed out waiting for runtime daemon profile "${e.profile}" to become ready.`)}o(co,"waitForHealthyDaemon");async function lo(e){let n=fo(),t=[...n!==void 0?po(process.execArgv,n.endsWith(".ts")):[],...n!==void 0?[n]:[],"daemon","serve","--profile",e.profile,"--home",e.homeDir];e.defaultProvider!==void 0&&t.push("--provider",e.defaultProvider),e.defaultModel!==void 0&&t.push("--model",e.defaultModel),e.sessionsDir!==void 0&&t.push("--sessions-dir",e.sessionsDir),e.permissionTimeoutMs!==void 0&&t.push("--permission-timeout-ms",String(e.permissionTimeoutMs));let r=ao(process.execPath,t,{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,KODAX_DAEMON_SERVE:"1",KODAX_HOME:oe.join(e.homeDir,".kodax")}});return await new Promise((a,m)=>{r.once("spawn",a),r.once("error",m)}),r.unref(),{pid:r.pid}}o(lo,"spawnRuntimeDaemonServeProcess");function fo(){if(process.env.KODAX_BUNDLED==="true")return;let e=uo(import.meta.url);if(e.endsWith(".ts"))return oe.resolve(oe.dirname(e),"..","kodax_cli.ts");let n=oe.dirname(e),t=oe.basename(n)==="chunks"?oe.dirname(n):n;return oe.join(t,"kodax_cli.js")}o(fo,"resolveDaemonCliEntry");function po(e,n){let t=[];for(let r=0;r<e.length;r+=1){let a=e[r]??"",m=a.toLowerCase();if(["--import","--loader","--experimental-loader","--require","-r"].includes(m)){t.push(a);let c=e[r+1];c!==void 0&&(t.push(c),r+=1)}else(m.startsWith("--import=")||m.startsWith("--loader=")||m.startsWith("--experimental-loader=")||m.startsWith("--require=")||m.startsWith("--max-old-space-size")||m==="--enable-source-maps")&&t.push(a)}return n&&!t.some(r=>r==="tsx"||r.endsWith("/tsx")||r.endsWith("\\tsx"))&&t.unshift("--import","tsx"),t}o(po,"daemonServeExecArgv");function Ro(e){return new Promise(n=>setTimeout(n,e))}o(Ro,"delay");import{Worker as go}from"node:worker_threads";import{existsSync as yo}from"node:fs";import{basename as ho,dirname as _n,join as yr}from"node:path";import{fileURLToPath as hr,pathToFileURL as wr}from"node:url";function Sr(e,n={}){let t=wo(),r=new go(t,{workerData:e,execArgv:t.href.endsWith(".ts")?["--import","tsx"]:[],...n.resourceLimits!==void 0?{resourceLimits:n.resourceLimits}:{}}),a=new Map,m=new Set,c=0,s=!1,i=o(u=>{for(let p of a.values())p.reject(u);a.clear()},"rejectPending"),d=o(u=>{s||(s=!0,i(u),m.clear())},"markClosed");return r.on("message",u=>{if(Ke(u)){for(let S of m)S(u);return}if(!ke(u)&&!Ie(u)||!u.id)return;let p=a.get(u.id);if(!p)return;if(a.delete(u.id),ke(u)){p.resolve(u.result);return}let R=new Error(u.error.message);R.code=u.error.code,u.error.data!==void 0&&(R.data=u.error.data),p.reject(R)}),r.on("error",u=>d(u)),r.on("exit",u=>d(new Error(`Runtime Worker exited with code ${u}.`))),{transport:{request(u,p){if(s)return Promise.reject(new Error("Runtime Worker transport is closed."));let R=`worker_${++c}`;return new Promise((S,E)=>{a.set(R,{resolve:S,reject:E});try{r.postMessage(ze(R,u,p))}catch(P){a.delete(R),E(P instanceof Error?P:new Error(String(P)))}})},subscribe(u){return s?{close(){}}:(m.add(u),{close:o(()=>m.delete(u),"close")})},async close(){s||(d(new Error("Runtime Worker transport closed.")),await r.terminate())}},threadId:r.threadId,async terminate(){s||d(new Error("Runtime Worker terminated.")),await r.terminate()}}}o(Sr,"createRuntimeWorkerTransport");function wo(){if(import.meta.url.endsWith(".ts")){let t=new URL("../../dist/runtime-worker.js",import.meta.url);return yo(hr(t))?t:new URL("./entry.ts",import.meta.url)}if(process.env.KODAX_BUNDLED==="true")return wr(yr(_n(process.execPath),"runtime-worker.js"));let e=_n(hr(import.meta.url)),n=ho(e)==="chunks"?_n(e):e;return wr(yr(n,"runtime-worker.js"))}o(wo,"resolveRuntimeWorkerUrl");var So=["provider","model","effort","planModeEffort","thinking","reasoningMode","agentMode","permissionMode","locale","providerModels","extensions","repoIntelligenceMode","repoIntelligenceTrace","verifierLog","stallLog","fallbackProviders","fastProvider","fastModel","deepProvider","deepModel","maxOutputTokens","disablePromptCache","lsp","lspAutoDownload","acpLogLevel","sessionRetentionDays","repoIntelligence","workflow"],ko=5*6e4,sn=1e4,an=1e3,kr=256*1024*1024,Io=64*1024,vo=10,Mr=16*1024*1024,Do=Mr/2,bo=128*1024,Eo=new Set(["assistant.delta","thinking.delta","tool.progress","run.progress"]),Po=new Set(["tool_call","tool_describe"]),xo=new Set(["image","file","video"]);async function To(e={}){if(e.isolation!==void 0&&e.isolation!=="inline"&&e.isolation!=="worker")throw new Error(`Unsupported KodaX Runtime isolation: ${String(e.isolation)}`);if(e.mode==="daemon"){if(e.isolation!==void 0)throw new Error("Daemon mode selects its isolation internally and does not accept an isolation option.");if(e.worker!==void 0)throw new Error("Runtime Worker options require isolation: 'worker'.");return e.externalAgents!==void 0?Ao(e):Or({profile:e.profile,transport:e.daemonTransport,endpoint:e.daemonEndpoint,autoStart:e.autoStartDaemon??(e.daemonTransport===void 0&&e.daemonEndpoint===void 0),homeDir:e.homeDir,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,daemonStartupTimeoutMs:e.daemonStartupTimeoutMs,daemonConnectTimeoutMs:e.daemonConnectTimeoutMs,daemonToken:e.daemonToken,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:e.requirements})}if(e.mode!==void 0&&e.mode!=="embedded")throw new Error(`Unsupported KodaX runtime mode: ${String(e.mode)}`);if(e.worker!==void 0&&e.isolation!=="worker")throw new Error("Runtime Worker options require isolation: 'worker'.");if(e.isolation==="worker"&&e.externalAgents!==void 0)throw new Error("External agent factories must be installed inside the Runtime Worker host; function injection cannot cross the Worker boundary.");if(e.isolation==="worker")return Co(e);jn({hardDispose:!1,externalAgents:e.externalAgents!==void 0},e.requirements);let n={runtimeId:`rt_${le().replace(/-/g,"").slice(0,12)}`,mode:"embedded",profile:e.profile??"default",startedAt:new Date().toISOString(),version:"0.7.68",isolation:"inline"},t=Yo(e),r=ft(t?{sessionsDir:t}:void 0),a=Rs(e);Xr(a);let m=Qo(e),c=e.externalAgents?await Bn({factories:e.externalAgents.factories,policy:e.externalAgents.policy,credentialBroker:e.externalAgents.credentialBroker,artifactPolicy:e.externalAgents.artifactPolicy,store:yt(D.join(m.runtimeDir,"agents"))}):void 0,s=Vo(m),i=ts(s,e.permissionTimeoutMs??ko),d=Lo(),f=Ko(),u=new Map;for(let P of Fs(m.loadRunStatuses())){let x=ns(P,s,m);u.set(x.runId,es(x))}let p=!1,R=o(()=>{if(p)throw new Error("KodaX runtime is closed")},"ensureOpen"),S=Fo({bus:s,defaultModel:e.defaultModel,defaultProvider:e.defaultProvider,ensureOpen:R,isClosed:o(()=>p,"isClosed"),artifacts:d,permissions:i,persistence:m,runs:u,sessionManager:r,agentPlane:c,defaultAgentContext:e.externalAgents?.defaultContext});return{identity:n,sessions:_o(r,s,m,R,P=>[...u.values()].some(x=>x.sessionId===P&&un(x.phase)),(P,x)=>{for(let X of u.values())X.sessionId===P&&un(X.phase)&&(X.permissionMode=x)}),runs:S,events:s.service,permissions:i.service,workflows:f,config:No(R,a),catalog:Xo(R,a),mcp:jo(R,a),artifacts:d.service,status:Bo({identity:n,permissions:i,runs:u,sessionManager:r,workflows:f}),diagnostics:Ho(s.service),admin:Uo(c),agents:Wo(c),agentTasks:Jo(c),async close(){p||(p=!0,S.closeAll("runtime closed"),i.rejectAll("runtime closed"),await c?.close(),s.close())}}}o(To,"createKodaXRuntime");async function Ao(e){let n=e.externalAgents;if(!n)throw new Error("External agent options are required for the hosted daemon.");if(e.daemonTransport!==void 0)throw new Error("External agent factories cannot be installed through an existing daemon transport.");if(e.autoStartDaemon===!1)throw new Error("External agent factories require an in-process daemon host with autoStartDaemon enabled.");let t=e.daemonEndpoint!==void 0?_r(e.daemonEndpoint):void 0,r=await lr({homeDir:e.homeDir,profile:e.profile,endpoint:t,connectTimeoutMs:e.daemonConnectTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,createRuntime:o(()=>To({mode:"embedded",homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs,clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:e.requirements,externalAgents:n}),"createRuntime")});if(!r.ownsHost)throw await r.close(),new Error("External agent factories cannot be installed into an already-running daemon profile; configure its owner or use a unique profile.");try{let a=await Or({profile:e.profile,transport:r.transport,daemonToken:e.daemonToken??_e(r.paths),clientInfo:e.clientInfo,capabilities:e.capabilities,requirements:{...e.requirements,externalAgents:!0}}),m=!1;return{...a,identity:{...a.identity,isolation:"inline"},async close(){m||(m=!0,await a.close(),r.ownsHost?await r.shutdown():await r.close())}}}catch(a){throw await r.close(),r.ownsHost&&await r.shutdown(),a}}o(Ao,"createInProcessExternalAgentDaemon");async function Co(e){let n=e.worker?.shutdownTimeoutMs??2e3;if(!Number.isFinite(n)||n<=0)throw new Error("Runtime Worker shutdownTimeoutMs must be a positive finite number.");let t=Sr({homeDir:e.homeDir,profile:e.profile,sessionsDir:e.sessionsDir,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,permissionTimeoutMs:e.permissionTimeoutMs},e.worker);try{let r=Te(await t.transport.request("initialize",{profile:e.profile??"default",...e.clientInfo!==void 0?{clientInfo:e.clientInfo}:{},...e.capabilities!==void 0?{capabilities:e.capabilities}:{}})),a=jr(r.identity);jn(r.capabilities,{...e.requirements,hardDispose:!0});let m=Sn({identity:{...a,mode:"embedded",isolation:"worker",workerThreadId:t.threadId},transport:t.transport,capabilities:Te(r.capabilities)}),c=!1;return{...m,async close(){if(!c){c=!0;try{await Mo(t.transport.request("runtime.shutdown"),n)}finally{await t.terminate()}}}}}catch(r){throw await t.terminate(),r}}o(Co,"createWorkerHostedKodaXRuntime");function jn(e,n){if(!n?.hardDispose&&!n?.externalAgents)return;let t=Te(e);if(n.hardDispose&&t.hardDispose!==!0)throw new Error("Runtime does not support the required hardDispose capability.");if(n.externalAgents&&t.externalAgents!==!0)throw new Error("Runtime does not support the required externalAgents capability.")}o(jn,"assertRuntimeCapabilities");async function Mo(e,n){let t;try{await Promise.race([e,new Promise((r,a)=>{t=setTimeout(()=>a(new Error(`Runtime Worker shutdown timed out after ${n}ms.`)),n),t.unref?.()})])}finally{t!==void 0&&clearTimeout(t)}}o(Mo,"settleWithin");async function Or(e={}){Ir("daemonStartupTimeoutMs",e.daemonStartupTimeoutMs),Ir("daemonConnectTimeoutMs",e.daemonConnectTimeoutMs);let n=e.endpoint!==void 0?_r(e.endpoint):void 0,t=e.transport===void 0&&e.autoStart===!0?await gr({homeDir:e.homeDir,profile:e.profile,endpoint:n,defaultProvider:e.defaultProvider,defaultModel:e.defaultModel,sessionsDir:e.sessionsDir,permissionTimeoutMs:e.permissionTimeoutMs,startupTimeoutMs:e.daemonStartupTimeoutMs,connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0,r=n??t?.endpoint??(e.transport===void 0?De(e.profile??"default",D.resolve(e.homeDir??Cr.homedir())):void 0),a=e.transport??t?.transport??(r!==void 0?await Y(r,{connectTimeoutMs:e.daemonConnectTimeoutMs}):void 0);if(!a)throw new Error("connectKodaXRuntime requires a daemon transport, endpoint, or autoStart: true.");let m=Oo(e),c,s={};try{let d=Te(await a.request("initialize",{profile:e.profile??"default",autoStart:e.autoStart===!0,...m!==void 0?{token:m}:{},...e.clientInfo!==void 0?{clientInfo:e.clientInfo}:{},...e.capabilities!==void 0?{capabilities:e.capabilities}:{},...r!==void 0?{endpoint:r.path}:{}}));c=jr(d.identity),s=d.capabilities===void 0?{}:Te(d.capabilities),jn(s,e.requirements);let f=e.profile??"default";if(c.profile!==f)throw new Error(`Runtime daemon profile mismatch: expected ${f}, got ${c.profile}`)}catch(d){throw await a.close?.(),await t?.close(),d}let i=Sn({identity:{...c,mode:"daemon",isolation:"process"},transport:a,capabilities:s});return t?{...i,async close(){await i.close(),await t.close()}}:i}o(Or,"connectKodaXRuntime");function Ir(e,n){if(!(n===void 0||Number.isFinite(n)&&n>0))throw new Error(`${e} must be a positive finite number.`)}o(Ir,"assertPositiveRuntimeTimeout");function Oo(e){if(e.daemonToken!==void 0)return e.daemonToken;if(e.transport!==void 0&&e.autoStart!==!0)return;let n=D.resolve(e.homeDir??Cr.homedir());return _e(we(n,e.profile??"default"))}o(Oo,"resolveConnectDaemonToken");function _r(e){return typeof e!="string"?e:{kind:process.platform==="win32"||e.startsWith("\\\\.\\pipe\\")?"pipe":"unix",path:e}}o(_r,"normalizeRuntimeDaemonEndpoint");function _o(e,n,t,r,a,m){let c=o((s,i,d)=>({id:s,title:i.title,...i.gitRoot?{gitRoot:i.gitRoot}:{},...i.runtimeInfo?.workspaceRoot?{workspaceRoot:i.runtimeInfo.workspaceRoot}:{},...i.runtimeInfo?.surface?{surface:i.runtimeInfo.surface}:{},...i.runtimeInfo?.profileId?{profileId:i.runtimeInfo.profileId}:{},...d?{createdAt:d}:{}}),"toRuntimeSession");return{async create(s={}){r();let i=s.sessionId??await Rn(),d=s.projectPath?D.resolve(s.projectPath):void 0,f=s.gitRoot?D.resolve(s.gitRoot):d,u=is(s,d,f),p={messages:[],title:s.title??"",gitRoot:f??"",...s.tag!==void 0?{tag:s.tag}:{},...u!==void 0?{runtimeInfo:u}:{},scope:"user"};await e.storage.save(i,p);let R=c(i,p,new Date().toISOString());return n.emit("session.created",R,{sessionId:i,runId:i}),R},async load(s){r();let i=await e.loadSession(s);if(!i)throw new Error(`Session not found: ${s}`);let d=c(s,i);return n.emit("session.loaded",d,{sessionId:s,runId:s}),d},async list(s){return r(),(await e.listSessions(s)).map(Fr)},async transcript(s){return r(),e.loadFullTranscript(s)},async fork(s){r();let i=await e.forkSession(s.sessionId,{...s.selector!==void 0?{selector:s.selector}:{},...s.newSessionId!==void 0?{sessionId:s.newSessionId}:{},...s.title!==void 0?{title:s.title}:{}});if(!i){let f=await e.loadSession(s.sessionId);if(!f)return null;let u=s.newSessionId??await Rn(),p={...f,title:s.title??f.title,messages:f.messages.map(Js)};await e.storage.save(u,p);let R=c(u,p);return n.emit("session.created",R,{sessionId:u,runId:u}),R}let d=c(i.sessionId,i.data);return n.emit("session.created",d,{sessionId:i.sessionId,runId:i.sessionId}),d},async getSettings(s){return r(),await Pr(e,s),t.loadSessionSettings(s)},async updateSettings(s,i){r();let d=await Pr(e,s),f=t.loadSessionSettings(s),u=cs(f,i);return Kr(d,u),t.saveSessionSettings(s,u),i.permissionMode!==void 0&&m(s,u.permissionMode),n.emit("session.settings.updated",{sessionId:s,settings:u,patch:i},{sessionId:s,runId:s}),u},async appendNotice(s){r();let i=await e.appendClientNotice(s.sessionId,{content:s.content,...s.source!==void 0?{source:s.source}:{}});return i&&n.emit("session.notice.appended",{sessionId:s.sessionId,entry:i},{sessionId:s.sessionId,runId:s.sessionId}),i},async rewind(s){r(),Xn(s.sessionId,a);let i=await e.rewindSession(s.sessionId,{...s.selector!==void 0?{selector:s.selector}:{}});if(!i)return null;let d=c(s.sessionId,i);return n.emit("session.rewound",{sessionId:s.sessionId,selector:s.selector,session:d},{sessionId:s.sessionId,runId:s.sessionId}),d},async setActiveEntry(s){r(),Xn(s.sessionId,a);let i=await e.setActiveEntry(s.sessionId,s.entryId);if(!i)return null;let d=c(s.sessionId,i);return n.emit("session.active_entry.updated",{sessionId:s.sessionId,entryId:s.entryId,session:d},{sessionId:s.sessionId,runId:s.sessionId}),d},async compact(s){r(),Xn(s.sessionId,a);let i=await e.compactSession(s.sessionId,{...s.provider!==void 0?{provider:s.provider}:{},...s.model!==void 0?{model:s.model}:{},...s.customInstructions!==void 0?{customInstructions:s.customInstructions}:{},...s.contextWindow!==void 0?{contextWindow:s.contextWindow}:{}}),d=await e.loadSession(s.sessionId),f=d?c(s.sessionId,d):void 0;return n.emit("context.compaction.finished",{sessionId:s.sessionId,compacted:i.compacted,tokensBefore:i.tokensBefore,tokensAfter:i.tokensAfter,...i.reason!==void 0?{reason:i.reason}:{}},{sessionId:s.sessionId,runId:s.sessionId}),i.compacted&&n.emit("session.compacted",{sessionId:s.sessionId,result:{compacted:i.compacted,tokensBefore:i.tokensBefore,tokensAfter:i.tokensAfter},...f!==void 0?{session:f}:{}},{sessionId:s.sessionId,runId:s.sessionId}),{...i,...f!==void 0?{session:f}:{}}},async archive(s){if(r(),!await e.archiveSession(s))throw new Error(`Session not found or not archived: ${s}`)},async unarchive(s){if(r(),!await e.unarchiveSession(s))throw new Error(`Session not found or not unarchived: ${s}`)},async delete(s){r();let i=await e.deleteSession(s);Us(s,i)}}}o(_o,"createRuntimeSessionService");function Fo(e){let n=new Map,t=new Map,r=o(u=>{let p=e.runs.get(u);if(!p)throw new Error(`Runtime run not found: ${u}`);return p},"getRecord"),a=o(u=>{n.get(u.sessionId)===u.runId&&n.delete(u.sessionId)},"releaseActiveRun"),m=o((u,p)=>{u.start?.resolve(p),u.start=void 0},"resolveRunStart"),c=o((u,p)=>(e.permissions.rejectForRun(u.runId,"runtime run ended"),m(u,p),a(u),Ks(e.runs),d(u.sessionId),p),"finishRun"),s=o((u,p,R)=>{u.phase==="queued"&&zo(t,u),u.running?.abort(new Error(p)),u.abortController?.abort(new Error(p)),e.permissions.rejectForRun(u.runId,p),$e(e.bus,e.persistence,u,"cancelled");let S={runId:u.runId,sessionId:u.sessionId,phase:u.phase};return m(u,S),a(u),R&&!e.isClosed()&&d(u.sessionId),S},"cancelRun"),i=o(u=>{if(!u.start||e.isClosed()){s(u,"runtime closed",!1);return}u.phase="running",u.queuedAt=void 0,n.set(u.sessionId,u.runId),e.bus.emit("run.started",z(u),{sessionId:u.sessionId,runId:u.runId}),dn(e.bus,e.persistence,u,z(u));let p=rs({bus:e.bus,original:u.start.options.events,permissions:e.permissions,record:u}),R=$o({agentPlane:e.agentPlane,events:p,model:u.model,options:u.start.options,provider:u.provider,record:u,sessionManager:e.sessionManager});if(e.bus.emit("config.effective",{sessionId:u.sessionId,runId:u.runId,provider:u.provider,...u.model!==void 0?{model:u.model}:{},...R.effort!==void 0?{effort:R.effort}:{},...R.thinking!==void 0?{thinking:R.thinking}:{},...R.reasoningMode!==void 0?{reasoningMode:R.reasoningMode}:{},...u.permissionMode!==void 0?{permissionMode:u.permissionMode}:{},...R.context?.executionCwd!==void 0?{executionCwd:R.context.executionCwd}:{}},{sessionId:u.sessionId,runId:u.runId,...u.turnId!==void 0?{turnId:u.turnId}:{}}),u.mode==="managed_task"){let E=new AbortController;u.abortController=E;let P=R.abortSignal;P?.aborted?E.abort(P.reason):P?.addEventListener("abort",()=>{E.abort(P.reason)},{once:!0}),zn({...R,abortSignal:E.signal},u.start.prompt).then(x=>{let X=u.terminalEmitted?u.phase:x.interrupted?"interrupted":x.success?"completed":"failed";return $e(e.bus,e.persistence,u,X),{runId:u.runId,sessionId:u.sessionId,phase:u.phase,result:x}}).catch(x=>{let X=$(x),Z=u.terminalEmitted?u.phase:"failed";return Z==="failed"&&(u.error=X.message),$e(e.bus,e.persistence,u,Z),{runId:u.runId,sessionId:u.sessionId,phase:u.phase,error:X}}).then(x=>c(u,x));return}let S=Hn(R,u.start.prompt);u.running=S,S.result.then(E=>{let P=u.terminalEmitted?u.phase:E.interrupted?"interrupted":E.success?"completed":"failed";return $e(e.bus,e.persistence,u,P),{runId:u.runId,sessionId:u.sessionId,phase:u.phase,result:E}}).catch(E=>{let P=$(E),x=u.terminalEmitted?u.phase:"failed";return x==="failed"&&(u.error=P.message),$e(e.bus,e.persistence,u,x),{runId:u.runId,sessionId:u.sessionId,phase:u.phase,error:P}}).then(E=>c(u,E))},"startRecord"),d=o(u=>{let p=t.get(u);if(!p||p.length===0||n.has(u))return;let R=p.shift();if(p.length===0&&t.delete(u),!R)return;let S=e.runs.get(R);if(!S||S.phase!=="queued"){d(u);return}i(S)},"drainNext"),f=o(u=>{let p=t.get(u.sessionId)??[];p.push(u.runId),t.set(u.sessionId,p),e.bus.emit("run.queued",z(u),{sessionId:u.sessionId,runId:u.runId}),dn(e.bus,e.persistence,u,z(u))},"enqueue");return{async start(u){e.ensureOpen();let p=os(u,e.artifacts),R=await e.sessionManager.loadSession(u.sessionId);if(!R)throw new Error(`Session not found: ${u.sessionId}`);let S=e.persistence.loadSessionSettings(u.sessionId);Kr(R,S);let E=ds(u.options??{},S,p.inputArtifacts),P=E.provider??e.defaultProvider;if(!P)throw new Error("runtime.runs.start requires input.options.provider or runtime defaultProvider");let x=E.modelOverride??E.model??e.defaultModel,X=_s(),Z=new Date().toISOString(),U=o(()=>{},"resolveResult"),fe=new Promise(ge=>{U=ge}),pe=n.has(u.sessionId),Re={runId:X,sessionId:u.sessionId,phase:pe?"queued":"running",startedAt:Z,...pe?{queuedAt:Z}:{},provider:P,...x!==void 0?{model:x}:{},...u.permissionBroker!==void 0?{permissionBroker:u.permissionBroker}:{},...S.permissionMode!==void 0?{permissionMode:S.permissionMode}:{},...E.reasoningMode!==void 0?{reasoning:E.reasoningMode}:{},mode:u.mode??"coding",...u.agentContext??e.defaultAgentContext?{agentContext:u.agentContext??e.defaultAgentContext}:{},result:fe,start:{prompt:p.prompt,inputArtifacts:p.inputArtifacts,options:E,resolve:U},terminalEmitted:!1};return e.runs.set(X,Re),pe?f(Re):i(Re),{runId:X,sessionId:u.sessionId,get turnId(){return Re.turnId},result:fe}},async await(u){e.ensureOpen();let p=e.runs.get(u);if(p)return p.result;let R=e.persistence.loadRunStatus(u);if(R)return Lr(R);throw new Error(`Runtime run not found: ${u}`)},async get(u){e.ensureOpen();let p=e.runs.get(u);if(p)return z(p);let R=e.persistence.loadRunStatus(u);if(R)return R;throw new Error(`Runtime run not found: ${u}`)},async list(u){return e.ensureOpen(),[...e.runs.values()].filter(p=>Ns(p,u)).map(z)},async abort(u){e.ensureOpen();let p=r(u);(p.phase==="queued"||un(p.phase))&&s(p,"runtime run aborted",!0)},async setModel(u,p){e.ensureOpen();let R=r(u);R.model=p,R.running?.setModel(p)},async setProvider(u,p){e.ensureOpen();let R=r(u);R.provider=p,R.running?.setProvider(p)},async setReasoning(u,p){e.ensureOpen();let R=r(u);R.reasoning=p,R.running?.setReasoning(p)},closeAll(u){for(let p of e.runs.values())(p.phase==="queued"||un(p.phase))&&s(p,u,!1);n.clear(),t.clear()}}}o(Fo,"createRuntimeRunService");function Ko(){let e=Jn();return{async list(n){let t=e.list(),r=n?.runId?t.filter(a=>a.runId===n.runId):t;return n?.limit===void 0?r:r.slice(0,n.limit)},async get(n){return e.getWorkflowProcessSnapshot(n)},subscribe(n,t){return{close:e.subscribeWorkflowProcess(a=>{n.runId&&a.snapshot.runId!==n.runId||n.activeOnly===!0&&js(a.snapshot.status)||t(a)})}},async pause(n){return e.pause(n)},async resume(n){return e.resume(n)},async stop(n){return e.stop(n)}}}o(Ko,"createRuntimeWorkflowService");function No(e,n){return{async read(){return e(),xe(W(n))},async patch(t){return e(),fs(t,"runtime.config.patch"),gs(n,ps(t)),xe(W(n))},async reload(){return e(),n!==void 0?(Xr(n),{ok:!0,config:xe(W(n))}):{ok:!0,config:xe(Zn())}}}}o(No,"createRuntimeConfigService");function Xo(e,n){return{async providers(){return e(),gn()},async models(t){return e(),Es(gn(),t)},async commands(t){return e(),Tr(t)},async resolveCommand(t){e();let r=t.name.trim().toLowerCase();return Tr(t.projectRoot).find(a=>a.name.trim().toLowerCase()===r||(a.aliases??[]).some(m=>m.trim().toLowerCase()===r))??null},async skills(t){e();let r=await fn(t?.projectRoot);return(t?.userInvocableOnly===!0?r.listUserInvocable():r.list()).map(Cs)},async describeSkill(t){e();let r=await fn(t.projectRoot);return r.has(t.name)?Ms(await r.loadFull(t.name)):null},async customProviders(){return e(),ys(n)},async upsertCustomProvider(t){return e(),hs(n,t)},async deleteCustomProvider(t){return e(),ws(n,t)},async extensions(){e();let t=Ue();if(!t)return{active:!1,extensions:[]};let r=t.getDiagnostics();return{active:!0,extensions:r.loadedExtensions,diagnostics:r}},async reloadExtensions(){e();let t=Ue();return t?(await t.reloadExtensions({continueOnError:!0}),{ok:!0,active:!0,diagnostics:t.getDiagnostics()}):{ok:!0,active:!1}}}}o(Xo,"createRuntimeCatalogService");function jo(e,n){return{async listServers(){return e(),Nn(n)},async getServer(t){return e(),ks(n,t)},async validateServer(t,r){e();try{return yn(t,r),{ok:!0,config:structuredClone(r)}}catch(a){return{ok:!1,error:a instanceof Error?a.message:String(a)}}},async upsertServer(t,r){return e(),Is(n,t,r)},async deleteServer(t){return e(),vs(n,t)},async reloadServers(){e();let t=pn(Nn(n));try{return{ok:!0,servers:t.listServers()}}finally{await t.dispose()}},async listTools(t){e();let r=Nn(n),a=t?.server!==void 0?[t.server]:Object.keys(r),m=pn(r);try{let c=[];for(let s of a)c.push(await m.listTools(s,{forceRefresh:t?.forceRefresh===!0}));return c}finally{await m.dispose()}}}}o(jo,"createRuntimeMcpService");function Lo(){let e=new Map;return{service:{async create(r){if(!us(r.kind))throw new Error(`Unsupported runtime artifact kind: ${String(r.kind)}`);let a=D.resolve(r.path),m;try{m=await k.promises.stat(a)}catch(i){throw new Error(`Runtime artifact path is not readable: ${a}`,{cause:i})}if(!m.isFile())throw new Error(`Runtime artifact path must be a regular file: ${a}`);if(m.size>kr)throw new Error(`Runtime artifact exceeds the ${kr}-byte limit: ${a}`);let c=`art_${le().replace(/-/g,"").slice(0,12)}`,s={id:c,kind:r.kind,path:a,sizeBytes:m.size,...r.mediaType!==void 0?{mediaType:r.mediaType}:{},...r.mimeType!==void 0?{mimeType:r.mimeType}:{},...r.name!==void 0?{name:r.name}:{},...r.source!==void 0?{source:r.source}:{},...r.description!==void 0?{description:r.description}:{},createdAt:new Date().toISOString()};return e.set(c,s),s},async get(r){return e.get(r)},async delete(r){return e.delete(r)}},resolve:o(r=>{let a=e.get(r);if(!a)throw new Error(`Runtime artifact not found: ${r}`);return a},"resolve")}}o(Lo,"createRuntimeArtifactStore");function $o(e){let{agentPlane:n,events:t,model:r,options:a,provider:m,record:c,sessionManager:s}=e;return{...a,provider:m,...r!==void 0?{modelOverride:r}:{},session:{...a.session??{},id:c.sessionId,storage:s.storage},events:t,...n&&c.agentContext?{context:{...a.context??{},agentExecutorPlane:{plane:n,context:c.agentContext}}}:{}}}o($o,"buildRunOptions");function on(e){if(e.actorId.trim().length===0)throw new Error("Runtime agent context actorId must not be empty.")}o(on,"assertRuntimeAgentContext");function qo(e,n){let t=[],r=new Set(e.skills);for(let m of n.requiredSkills??[])r.has(m)||t.push(`required skill is unavailable: ${m}`);let a=n.requiredCapabilities;if(a)for(let m of["streaming","durableTasks","inputRequired","cancellation","artifacts"])a[m]===!0&&e.capabilities[m]!=="supported"&&t.push(`required capability ${m} is ${e.capabilities[m]}`);return t}o(qo,"localAgentReasons");function Fn(e){return on(e),Ce(e).map(n=>{let t=qo(n,e);return{descriptor:n,dispatchability:{status:t.length===0?"dispatchable":"unavailable",checkedAt:new Date().toISOString(),reasons:t}}}).filter(n=>n.dispatchability.status==="dispatchable")}o(Fn,"runtimeLocalListings");function Wo(e){return{enabled:e!==void 0,async listDispatchable(n){on(n);let t=Ce(n);return e?e.listDispatchable(n,t):Fn(n)},async describe(n,t){on(t);let r=Ce(t);return e?e.describe(n,t,r):Fn(t).find(a=>a.descriptor.agentId===n)},async preflight(n){on(n.query);let t=Ce(n.query);if(e)return e.preflight(n,t);let r=Fn(n.query).find(m=>m.descriptor.agentId===n.agentId),a=r?[]:["agent is not dispatchable"];return r&&n.expectedConfigurationRevision!==void 0&&r.descriptor.configurationRevision!==n.expectedConfigurationRevision&&a.push("configuration revision changed"),{ok:r!==void 0&&a.length===0,...r?{descriptor:r.descriptor}:{},dispatchability:r?.dispatchability??{status:"unavailable",checkedAt:new Date().toISOString(),reasons:a},reasons:a}}}}o(Wo,"createRuntimeAgentService");function G(){return new Error("Runtime external agent executor plane is not enabled.")}o(G,"externalAgentsDisabled");function Uo(e){return{agentRegistrations:e?.registrations??{async list(){return[]},async upsert(){throw G()},async remove(){throw G()}}}}o(Uo,"createRuntimeAdminService");function Jo(e){return e?e.tasks:{async start(){throw G()},async list(){return[]},async get(){throw G()},async events(){throw G()},async wait(){throw G()},async sendInput(){throw G()},async cancel(){throw G()},async reconcile(){throw G()}}}o(Jo,"createRuntimeAgentTaskService");function Bo(e){return{async snapshot(){return{runtimeId:e.identity.runtimeId,mode:e.identity.mode,profile:e.identity.profile,startedAt:e.identity.startedAt,sessions:(await e.sessionManager.listSessions({includeArchived:!0})).map(Fr),runs:[...e.runs.values()].map(z),pendingPermissions:await e.permissions.service.listPending(),workflows:await e.workflows.list({})}}}}o(Bo,"createRuntimeStatusService");function Ho(e){return{latestContextBudget(n){return vr(e,"context.budget.snapshot",n)},latestToolExposure(n){return vr(e,"tool.exposure.planned",n)}}}o(Ho,"createRuntimeDiagnosticsService");async function vr(e,n,t){let r={type:n,limit:100,...t?.sessionId!==void 0?{sessionId:t.sessionId}:{},...t?.runId!==void 0?{runId:t.runId}:{}};return(await e.replay(r)).at(-1)?.payload??null}o(vr,"latestRuntimeDiagnosticPayload");function un(e){return e==="running"||e==="waiting_permission"||e==="waiting_user_input"}o(un,"isActiveRunPhase");function zo(e,n){let t=e.get(n.sessionId);if(!t)return;let r=t.filter(a=>a!==n.runId);r.length===0?e.delete(n.sessionId):e.set(n.sessionId,r)}o(zo,"removeQueuedRun");function Vo(e){let n=!1,t=[],r=new Set,a=o((d,f)=>f?!(f.sessionId!==void 0&&d.sessionId!==f.sessionId||f.runId!==void 0&&d.runId!==f.runId||f.type!==void 0&&!(Array.isArray(f.type)?f.type:[f.type]).includes(d.type)):!0,"matches"),m=o(d=>{t.push(d),t.length>sn&&t.splice(0,t.length-sn)},"remember"),c=o((d,f,u)=>{let p=e.nextEventSeq();return{id:`evt_${p}_${le().replace(/-/g,"").slice(0,8)}`,seq:p,time:new Date().toISOString(),sessionId:u.sessionId,runId:u.runId,...u.turnId!==void 0?{turnId:u.turnId}:{},type:d,payload:f}},"createEvent"),s=o(d=>{for(let f of[...r])if(a(d,f.filter))try{f.listener(d)}catch(u){Ae({source:"runtime.events",level:"error",message:`Runtime event listener failed for ${d.type}`,detail:{eventId:d.id,error:$(u)}})}},"notify");return{service:{subscribe(d,f){if(n)throw new Error("KodaX runtime event bus is closed");let u={filter:d,listener:f};return r.add(u),{close(){r.delete(u)}}},async replay(d){let f=e.replay(d),u=new Map;for(let R of f)u.set(R.id,R);for(let R of t)u.set(R.id,R);let p=[...u.values()].filter(R=>a(R,d)&&(d?.sinceSeq===void 0||R.seq>d.sinceSeq)).sort((R,S)=>R.seq-S.seq||R.time.localeCompare(S.time));return d?.limit===void 0?p:p.slice(-d.limit)}},emit(d,f,u){let p=c(d,f,u);m(p);let R=[p];try{e.appendEvent(p)}catch(S){let E=c("runtime.warning",{message:$(S).message,sourceEventId:p.id},u);m(E),R.push(E)}for(let S of R)s(S);return p},close(){n=!0;try{e.close()}catch(d){Ae({source:"runtime.persistence",level:"error",message:"Failed to flush runtime events while closing",detail:d})}r.clear()}}}o(Vo,"createRuntimeEventBus");function Qo(e){let n=e.homeDir?D.resolve(e.homeDir):e.sessionsDir?D.resolve(e.sessionsDir,".."):process.cwd(),t=D.join(n,".kodax","runtime"),r=D.join(t,"runs"),a=D.join(t,"session-settings"),m=D.join(t,"event-sequence"),c=new Map,s=0,i,d,f,u=!1,p=o(y=>D.join(r,encodeURIComponent(y)),"runDir"),R=o(y=>D.join(p(y),"events.jsonl"),"eventFile"),S=o(y=>D.join(p(y),"status.json"),"statusFile"),E=o(y=>D.join(a,`${encodeURIComponent(y)}.json`),"sessionSettingsFile"),P=[],x=new Set,X=o(()=>{let y=0;if(k.existsSync(m))try{let I=Number.parseInt(k.readFileSync(m,"utf-8").trim(),10);Number.isSafeInteger(I)&&I>0&&(y=I)}catch(I){Ae({source:"runtime.persistence",level:"warn",message:"Failed to read runtime event sequence cursor; recovering from event logs",detail:I})}if(!k.existsSync(r))return y;for(let I of k.readdirSync(r,{withFileTypes:!0})){if(!I.isDirectory())continue;let w=D.join(r,I.name,"events.jsonl");if(!k.existsSync(w))continue;let T=k.statSync(w).size,M=Math.min(T,bo),F=Buffer.allocUnsafe(M),ee=k.openSync(w,"r");try{k.readSync(ee,F,0,M,T-M)}finally{k.closeSync(ee)}let se=F.toString("utf-8").split(/\r?\n/);M<T&&se.shift();for(let qn of se)if(qn.trim())try{let ln=JSON.parse(qn);Dr(ln)&&Number.isSafeInteger(ln.seq)&&(y=Math.max(y,ln.seq))}catch{}}return y},"findMaxPersistedEventSeq"),Z=o(()=>{f===void 0&&(f=X()+1);let y=f;return f+=1,u=!0,y},"allocateEventSeq"),U=o((y,I,w)=>{if(x.has(y))return;x.add(y);let T=Z(),M={id:`evt_persist_warn_${T}_${le().replace(/-/g,"").slice(0,8)}`,seq:T,time:new Date().toISOString(),sessionId:w.sessionId??"runtime",runId:w.runId??w.sessionId??"runtime",type:"runtime.warning",payload:{source:"runtime.persistence",message:I,...w.file!==void 0?{file:w.file}:{}}};P.push(M),P.length>sn&&P.splice(0,P.length-sn)},"pushPersistenceWarning"),fe=o((y,I)=>[...y,...P].filter(w=>Go(w,I)).sort((w,T)=>w.seq-T.seq||w.time.localeCompare(T.time)),"withPersistenceWarnings"),pe=o((y,I)=>{if(!k.existsSync(y))return[];let w=k.readFileSync(y,"utf-8"),T=[],M=w.split(/\r?\n/);for(let F=0;F<M.length;F+=1){let ee=M[F]??"";if(ee.trim())try{let se=JSON.parse(ee);Dr(se)?T.push(se):U(`${y}:${F+1}:shape`,`Skipped malformed runtime event record at ${D.basename(y)}:${F+1}`,{runId:I,file:y})}catch(se){U(`${y}:${F+1}:parse`,`Skipped malformed runtime event record at ${D.basename(y)}:${F+1}: ${$(se).message}`,{runId:I,file:y})}}return T},"readEventsFromFile"),Re=o(y=>{if(k.statSync(y).size<=Mr)return;let I=k.readFileSync(y,"utf-8").trimEnd().split(/\r?\n/),w=[],T=0;for(let M=I.length-1;M>=0;M-=1){let F=I[M]??"";if(!F)continue;let ee=Buffer.byteLength(F,"utf-8")+1;if(w.length>0&&T+ee>Do)break;w.push(F),T+=ee}w.reverse(),k.writeFileSync(y,w.length>0?`${w.join(`
|
|
12
|
-
`)}
|
|
13
|
-
`:"","utf-8")},"trimEventFile"),ge=o(()=>{i!==void 0&&(clearTimeout(i),i=void 0);for(let[y,I]of c){let w=I.join(""),T=Buffer.byteLength(w,"utf-8"),M=p(y),F=R(y);k.mkdirSync(M,{recursive:!0}),k.appendFileSync(F,w,"utf-8"),c.delete(y),s=Math.max(0,s-T),Re(F)}u&&f!==void 0&&(k.mkdirSync(t,{recursive:!0}),k.writeFileSync(m,String(f-1),"utf-8"),u=!1),d=void 0},"flushBufferedEvents"),$n=o(()=>{i===void 0&&(i=setTimeout(()=>{i=void 0;try{ge()}catch(y){d=$(y),Ae({source:"runtime.persistence",level:"error",message:"Failed to flush buffered runtime events",detail:y})}},vo),i.unref?.())},"scheduleEventFlush");return{runtimeDir:t,appendEvent(y){let I=`${JSON.stringify(y)}
|
|
14
|
-
`,w=c.get(y.runId)??[];w.push(I),c.set(y.runId,w),s+=Buffer.byteLength(I,"utf-8");let T=d;d=void 0;try{T!==void 0||!Eo.has(y.type)||s>=Io?ge():$n()}catch(M){throw $n(),M}if(T!==void 0)throw T},close(){ge()},nextEventSeq(){return Z()},replay(y){try{ge()}catch(w){U(`${t}:event-flush`,`Failed to flush buffered runtime events: ${$(w).message}`,{runId:y?.runId})}if(y?.runId)return fe(pe(R(y.runId),y.runId),y);if(!k.existsSync(r))return fe([],y);let I=[];for(let w of k.readdirSync(r,{withFileTypes:!0}))w.isDirectory()&&I.push(...pe(D.join(r,w.name,"events.jsonl"),w.name));return fe(I,y)},saveRunStatus(y){let I=p(y.runId);k.mkdirSync(I,{recursive:!0}),k.writeFileSync(S(y.runId),JSON.stringify(y,null,2),"utf-8")},loadRunStatus(y){let I=S(y);if(k.existsSync(I))try{let w=br(JSON.parse(k.readFileSync(I,"utf-8")));if(w)return w;U(`${I}:shape`,`Skipped malformed runtime status record at ${D.basename(I)}`,{runId:y,file:I});return}catch(w){U(`${I}:parse`,`Skipped malformed runtime status record at ${D.basename(I)}: ${$(w).message}`,{runId:y,file:I});return}},loadRunStatuses(){if(!k.existsSync(r))return[];let y=[];for(let I of k.readdirSync(r,{withFileTypes:!0})){if(!I.isDirectory())continue;let w=D.join(r,I.name,"status.json");if(k.existsSync(w))try{let T=JSON.parse(k.readFileSync(w,"utf-8")),M=br(T);M?y.push(M):U(`${w}:shape`,`Skipped malformed runtime status record at ${D.basename(w)}`,{runId:I.name,file:w})}catch(T){U(`${w}:parse`,`Skipped malformed runtime status record at ${D.basename(w)}: ${$(T).message}`,{runId:I.name,file:w})}}return y},loadSessionSettings(y){let I=E(y);if(!k.existsSync(I))return{};try{let w=JSON.parse(k.readFileSync(I,"utf-8"));return ls(w)}catch(w){return U(`${I}:parse`,`Skipped malformed runtime session settings at ${D.basename(I)}: ${$(w).message}`,{sessionId:y,file:I}),{}}},saveSessionSettings(y,I){k.mkdirSync(a,{recursive:!0});let w=Os(I),T=E(y);if(Object.keys(w).length===0){k.existsSync(T)&&k.unlinkSync(T);return}k.writeFileSync(T,JSON.stringify(w,null,2),"utf-8")}}}o(Qo,"createRuntimePersistence");function Yo(e){if(e.sessionsDir!==void 0)return D.resolve(e.sessionsDir);if(e.homeDir!==void 0)return D.join(D.resolve(e.homeDir),".kodax","sessions")}o(Yo,"resolveRuntimeSessionsDir");function Go(e,n){return n?!(n.sessionId!==void 0&&e.sessionId!==n.sessionId||n.runId!==void 0&&e.runId!==n.runId||n.type!==void 0&&!(Array.isArray(n.type)?n.type:[n.type]).includes(e.type)||n.sinceSeq!==void 0&&e.seq<=n.sinceSeq):!0}o(Go,"eventMatchesReplayFilter");function Dr(e){return V(e)?typeof e.id=="string"&&typeof e.seq=="number"&&typeof e.time=="string"&&typeof e.sessionId=="string"&&typeof e.runId=="string"&&typeof e.type=="string"&&"payload"in e:!1}o(Dr,"isRuntimeEvent");function br(e){if(V(e)&&!(typeof e.runId!="string"||typeof e.sessionId!="string"||!Zo(e.phase)||typeof e.startedAt!="string"||typeof e.provider!="string"))return{runId:e.runId,sessionId:e.sessionId,...typeof e.turnId=="string"?{turnId:e.turnId}:{},phase:e.phase,startedAt:e.startedAt,...typeof e.endedAt=="string"?{endedAt:e.endedAt}:{},provider:e.provider,...typeof e.model=="string"?{model:e.model}:{},...typeof e.reasoning=="string"?{reasoning:e.reasoning}:{},...typeof e.error=="string"?{error:e.error}:{}}}o(br,"parseRuntimeRunStatus");function Zo(e){return e==="queued"||e==="running"||e==="waiting_permission"||e==="waiting_user_input"||e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}o(Zo,"isRuntimeRunPhase");function es(e){return{runId:e.runId,sessionId:e.sessionId,...e.turnId!==void 0?{turnId:e.turnId}:{},phase:e.phase,startedAt:e.startedAt,...e.endedAt!==void 0?{endedAt:e.endedAt}:{},provider:e.provider,...e.model!==void 0?{model:e.model}:{},...e.reasoning!==void 0?{reasoning:e.reasoning}:{},...e.error!==void 0?{error:e.error}:{},mode:"coding",result:Promise.resolve(Lr(e)),terminalEmitted:Ln(e.phase)}}o(es,"recordFromPersistedStatus");function ns(e,n,t){if(Ln(e.phase))return e;let r=e.phase==="queued"?"daemon_restarted":"daemon_crashed",a={...e,phase:"interrupted",endedAt:new Date().toISOString(),error:r};return n.emit("run.interrupted",a,{sessionId:a.sessionId,runId:a.runId,...a.turnId!==void 0?{turnId:a.turnId}:{}}),dn(n,t,void 0,a),a}o(ns,"interruptPersistedNonTerminalRun");function Er(e,n){if(e===void 0)return n;let t=Date.parse(e);return Number.isFinite(t)?Math.max(1,t-Date.now()):1}o(Er,"resolvePermissionTimeoutMs");function ts(e,n){let t=new Map,r=o((i,d=n)=>{let f=o(()=>{},"resolveResponse"),u=new Promise(R=>{f=R});return{request:s(i,[f],Er(i.expiresAt,d)),response:u}},"trackAndWait"),a=o((i,d,f)=>{let u=t.get(i);if(!u||f!==void 0&&u.request.runId!==f)return!1;t.delete(i),u.timer&&clearTimeout(u.timer);for(let p of u.waiters)p(d);return e.emit("permission.resolved",{requestId:i,decision:d},{sessionId:u.request.sessionId,runId:u.request.runId,...u.request.turnId!==void 0?{turnId:u.request.turnId}:{}}),!0},"resolvePending"),m=o((i,d)=>{let f=[...t.values()].filter(u=>i(u.request)).map(u=>u.request.id);for(let u of f)a(u,d)},"resolveMatching");return{service:{request(i){return r({sessionId:i.sessionId,runId:i.runId,...i.turnId!==void 0?{turnId:i.turnId}:{},...i.toolCallId!==void 0?{toolCallId:i.toolCallId}:{},toolName:i.toolName,...i.reason!==void 0?{reason:i.reason}:{},...i.risk!==void 0?{risk:i.risk}:{},...i.inputPreview!==void 0?{inputPreview:i.inputPreview}:{},...i.expiresAt!==void 0?{expiresAt:i.expiresAt}:{}},i.timeoutMs??n).response},async listPending(i){return[...t.values()].map(d=>d.request).filter(d=>Ls(d,i))},async respond(i,d,f){return a(i,d,f?.runId)}},track(i){return s(i,[],Er(i.expiresAt,n))},trackAndWait(i,d=n){return r(i,d)},resolve(i,d){a(i,d)},rejectForRun(i,d){m(f=>f.runId===i,{type:"reject",reason:d})},rejectAll(i){m(()=>!0,{type:"reject",reason:i})}};function s(i,d,f=n){let u={...i,id:`perm_${le().replace(/-/g,"").slice(0,12)}`,createdAt:new Date().toISOString()},p=f>0?setTimeout(()=>{let R=t.get(u.id);if(!R)return;t.delete(u.id);let S={type:"reject",reason:"permission request timed out"};for(let E of R.waiters)E(S);e.emit("permission.resolved",{requestId:u.id,decision:S},{sessionId:u.sessionId,runId:u.runId,...u.turnId!==void 0?{turnId:u.turnId}:{}})},f):void 0;return p?.unref?.(),t.set(u.id,{request:u,waiters:d,...p!==void 0?{timer:p}:{}}),e.emit("permission.requested",u,{sessionId:u.sessionId,runId:u.runId,...u.turnId!==void 0?{turnId:u.turnId}:{}}),u}}o(ts,"createRuntimePermissionRegistry");function rs(e){let{bus:n,original:t,permissions:r,record:a}=e,m=o(i=>({sessionId:i?.sessionId??a.sessionId,runId:a.runId,turnId:i?.turnId??a.turnId}),"scopeFromMeta"),c=o((i,d,f)=>{n.emit(i,d,m(f))},"emit"),s=o(async(i,d,f,u)=>{let p=`input_${le().replace(/-/g,"").slice(0,12)}`,R=a.phase;a.phase==="running"&&(a.phase="waiting_user_input"),c("user_input.requested",{requestId:p,kind:i,options:d},f);try{let S=await u();return c("user_input.resolved",{requestId:p,kind:i,status:S===void 0?"dismissed":"answered"},f),S}catch(S){throw c("user_input.resolved",{requestId:p,kind:i,status:"failed",error:$(S).message},f),S}finally{a.phase==="waiting_user_input"&&(a.phase=R)}},"runWithUserInputPhase");return{...t,onTextDelta(i,d){c("assistant.delta",{text:i,meta:d},d),t?.onTextDelta?.(i,d)},onThinkingDelta(i,d){c("thinking.delta",{text:i,meta:d},d),t?.onThinkingDelta?.(i,d)},onThinkingEnd(i,d){c("thinking.finished",{thinking:i,meta:d},d),t?.onThinkingEnd?.(i,d)},onToolUseStart(i,d){c("tool.started",{tool:i,meta:d},d),t?.onToolUseStart?.(i,d)},onToolProgress(i,d){c("tool.progress",{update:i,meta:d},d),t?.onToolProgress?.(i,d)},onToolInputDelta(i,d,f){c("tool.progress",{toolName:i,partialJson:d,meta:f},f),t?.onToolInputDelta?.(i,d,f)},onToolResult(i,d){c("tool.finished",{result:i,meta:d},d),t?.onToolResult?.(i,d)},onStreamEnd(i){c("run.progress",{kind:"stream_end",meta:i},i),t?.onStreamEnd?.(i)},onChildActivityEnd(i){c("child_activity.finished",{meta:i},i),t?.onChildActivityEnd?.(i)},onSessionStart(i){a.provider=i.provider,n.emit("session.loaded",i,{sessionId:i.sessionId,runId:a.runId,turnId:i.turnId??a.turnId}),t?.onSessionStart?.(i)},onTurnStarted(i){a.turnId=i.turnId,n.emit("turn.started",i,{sessionId:i.sessionId,runId:a.runId,turnId:i.turnId}),t?.onTurnStarted?.(i)},onTurnCompleted(i){n.emit("turn.completed",i,{sessionId:i.sessionId,runId:a.runId,turnId:i.turnId}),t?.onTurnCompleted?.(i)},onTurnFailed(i){n.emit("turn.failed",i,{sessionId:i.sessionId,runId:a.runId,turnId:i.turnId}),t?.onTurnFailed?.(i)},onIterationStart(i,d,f){c("run.progress",{kind:"iteration_start",iter:i,maxIter:d,meta:f},f),t?.onIterationStart?.(i,d,f)},onIterationEnd(i){c("run.progress",{kind:"iteration_end",info:i},i),t?.onIterationEnd?.(i)},onCompactStart(i){c("context.compaction.started",{meta:i},i),t?.onCompactStart?.(i)},onCompact(i,d){c("context.compaction.finished",{estimatedTokens:i,meta:d},d),t?.onCompact?.(i,d)},onCompactStats(i){c("context.compaction.stats",i,i),t?.onCompactStats?.(i)},onCompactedMessages(i,d,f){c("context.compaction.messages",{messageCount:i.length,update:d,meta:f},f),t?.onCompactedMessages?.(i,d,f)},onCompactEnd(i){c("context.compaction.ended",{meta:i},i),t?.onCompactEnd?.(i)},onMidTurnUserMessages(i,d){c("run.progress",{kind:"mid_turn_user_messages",contents:i,meta:d},d),t?.onMidTurnUserMessages?.(i,d)},onRetry(i,d,f,u){c("provider.retry",{reason:i,attempt:d,maxAttempts:f,meta:u},u),t?.onRetry?.(i,d,f,u)},onProviderRateLimit(i,d,f,u){c("provider.retry",{reason:"rate_limit",attempt:i,maxAttempts:d,delayMs:f,meta:u},u),t?.onProviderRateLimit?.(i,d,f,u)},onRetryAfter(i,d){c("provider.retry",{retryAfter:i,meta:d},d),t?.onRetryAfter?.(i,d)},onReasoningEffortRejected(i){c("provider.recovery",{kind:"reasoning_effort_rejected",event:i},i),t?.onReasoningEffortRejected?.(i)},onRepoIntelligenceTrace(i){c("repo_intelligence.trace",i,i),t?.onRepoIntelligenceTrace?.(i)},onContextBudgetSnapshot(i){c("context.budget.snapshot",i,i),t?.onContextBudgetSnapshot?.(i)},onToolExposurePlanned(i){c("tool.exposure.planned",i,i),t?.onToolExposurePlanned?.(i)},onContextCompactionSkipped(i){c("context.compaction.skipped",i,i),t?.onContextCompactionSkipped?.(i)},onSidecarMessage(i){c("sidecar.message",i,i),t?.onSidecarMessage?.(i)},onTodoUpdate(i,d){c("todo.updated",{items:i,meta:d},d),t?.onTodoUpdate?.(i,d)},onTodoDriftWarning(i){c("todo.warning",i,i),t?.onTodoDriftWarning?.(i)},onProviderRecovery(i,d){c("provider.recovery",{event:i,meta:d},d),t?.onProviderRecovery?.(i,d)},onEffectiveConfig(i){c("config.effective",i,i),t?.onEffectiveConfig?.(i)},onWorkflowProcessEvent(i){let d=Xs(i);n.emit(d,i,{sessionId:i.snapshot.hostMetadata?.sessionId??a.sessionId,runId:a.runId,turnId:a.turnId}),t?.onWorkflowProcessEvent?.(i)},onComplete(i){c("run.progress",{kind:"complete",meta:i},i),t?.onComplete?.(i)},onError(i,d){c("runtime.warning",{source:"coding",severity:"error",message:i.message},d),t?.onError?.(i,d)},onManagedTaskStatus(i){c("run.progress",{kind:"managed_task_status",status:i},i),t?.onManagedTaskStatus?.(i)},beforeToolExecute:o(async(i,d,f)=>{let u=t?.beforeToolExecute===void 0?qs(a,i,d):void 0;if(u!==void 0)return u;let p=a.phase;a.phase==="running"&&(a.phase="waiting_permission");let R=r.trackAndWait({sessionId:f?.sessionId??a.sessionId,runId:a.runId,...f?.turnId??a.turnId?{turnId:f?.turnId??a.turnId}:{},...f?.toolId?{toolCallId:f.toolId}:{},toolName:i,inputPreview:Ws(d)});try{if(!t?.beforeToolExecute){let x=await R.response;return Ar(x)}let S=Promise.resolve(t.beforeToolExecute(i,d,f)).then(x=>({source:"hook",decision:x})),E=R.response.then(x=>({source:"runtime",decision:Ar(x)})),P=await Promise.race([S,E]);return P.source==="hook"&&r.resolve(R.request.id,$s(P.decision)),P.decision}catch(S){throw r.resolve(R.request.id,{type:"reject",reason:$(S).message}),S}finally{a.phase==="waiting_permission"&&(a.phase=p==="queued"?"running":p)}},"beforeToolExecute"),...t?.askUser?{askUser:o((i,d)=>s("askUser",i,d,()=>t.askUser(i,d)),"askUser")}:{},...t?.askUserMulti?{askUserMulti:o((i,d)=>s("askUserMulti",i,d,()=>t.askUserMulti(i,d)),"askUserMulti")}:{},...t?.askUserInput?{askUserInput:o((i,d)=>s("askUserInput",i,d,()=>t.askUserInput(i,d)),"askUserInput")}:{}}}o(rs,"wrapKodaXEvents");function is(e,n,t){let r={...t!==void 0?{canonicalRepoRoot:t}:{},...n!==void 0?{workspaceRoot:n,executionCwd:n}:{},...n!==void 0?{workspaceKind:"managed"}:{},...e.surface!==void 0?{surface:e.surface}:{},...e.profileId!==void 0?{profileId:e.profileId}:{}};return Object.keys(r).length>0?r:void 0}o(is,"buildSessionRuntimeInfo");function Fr(e){return{id:e.id,...e.cursor!==void 0?{cursor:e.cursor}:{},title:e.title,msgCount:e.msgCount,...e.runtimeInfo?.gitRoot?{gitRoot:e.runtimeInfo.gitRoot}:{},...e.runtimeInfo?.workspaceRoot?{workspaceRoot:e.runtimeInfo.workspaceRoot}:{},...e.runtimeInfo?.surface?{surface:e.runtimeInfo.surface}:{},...e.runtimeInfo?.profileId?{profileId:e.runtimeInfo.profileId}:{},...e.createdAt!==void 0?{createdAt:e.createdAt}:{},...e.tag!==void 0?{tag:e.tag}:{},...e.projectKey!==void 0?{projectKey:e.projectKey}:{},...e.archived===!0?{archived:!0}:{}}}o(Fr,"toRuntimeSessionSummary");function os(e,n){let t=e.input===void 0?[]:Array.isArray(e.input)?[...e.input]:[e.input],r=t.filter(m=>m.type==="text");if(e.prompt!==void 0&&r.length>0)throw new Error("runtime.runs.start accepts either prompt or text input, not both");if(r.length>1)throw new Error("runtime.runs.start accepts at most one text input item");let a=e.prompt??r[0]?.text;if(a===void 0)throw new Error("runtime.runs.start requires prompt or text input");return{prompt:a,inputArtifacts:t.flatMap(m=>ss(m,n))}}o(os,"normalizeRuntimeRunInput");function ss(e,n){if(e.type==="text")return[];if(e.type==="artifact_ref")return as(n.resolve(e.artifactId),e.description);if(e.type==="image")return[{kind:"image",path:e.path,...e.mediaType!==void 0?{mediaType:e.mediaType}:{},...e.source!==void 0?{source:e.source}:{},...e.description!==void 0?{description:e.description}:{}}];if(e.type==="file")return[{kind:"file",path:e.path,...e.mediaType!==void 0?{mediaType:e.mediaType}:{},...e.mimeType!==void 0?{mimeType:e.mimeType}:{},...e.name!==void 0?{name:e.name}:{},...e.source!==void 0?{source:e.source}:{},...e.description!==void 0?{description:e.description}:{}}];if(e.type==="video")return[{kind:"video",path:e.path,mediaType:e.mediaType,...e.name!==void 0?{name:e.name}:{},...e.source!==void 0?{source:e.source}:{},...e.description!==void 0?{description:e.description}:{}}];let t=e;throw new Error(`Unsupported runtime input type: ${String(t.type)}`)}o(ss,"runtimeInputToArtifacts");function as(e,n){let t=n??e.description;if(e.kind==="image")return[{kind:"image",path:e.path,...e.mediaType!==void 0?{mediaType:e.mediaType}:{},...e.source!==void 0?{source:e.source}:{},...t!==void 0?{description:t}:{}}];if(e.kind==="file")return[{kind:"file",path:e.path,...e.mediaType!==void 0?{mediaType:e.mediaType}:{},...e.mimeType!==void 0?{mimeType:e.mimeType}:{},...e.name!==void 0?{name:e.name}:{},...e.source!==void 0?{source:e.source}:{},...t!==void 0?{description:t}:{}}];if(e.kind==="video")return[{kind:"video",path:e.path,mediaType:e.mediaType??"video/mp4",...e.name!==void 0?{name:e.name}:{},...e.source!==void 0?{source:e.source}:{},...t!==void 0?{description:t}:{}}];throw new Error(`Unsupported runtime artifact kind: ${String(e.kind)}`)}o(as,"runtimeArtifactToInputArtifacts");function us(e){return typeof e=="string"&&xo.has(e)}o(us,"isRuntimeArtifactKind");function ds(e,n,t){let r={...n.executionCwd!==void 0?{executionCwd:n.executionCwd}:{}},a=e.context,m=[...a?.inputArtifacts??[],...t],c={...r,...a??{},...m.length>0?{inputArtifacts:m}:{}},s=e.provider??n.provider,i=e.model??n.model,d=e.effort??n.effort,f=e.thinking??n.thinking,u=e.reasoningMode??n.reasoningMode;return{...e,...s!==void 0?{provider:s}:{},...i!==void 0?{model:i}:{},...d!==void 0?{effort:d}:{},...f!==void 0?{thinking:f}:{},...u!==void 0?{reasoningMode:u}:{},...Object.keys(c).length>0?{context:c}:{}}}o(ds,"buildEffectiveRuntimeOptions");async function Pr(e,n){let t=await e.loadSession(n);if(!t)throw new Error(`Session not found: ${n}`);return t}o(Pr,"loadRequiredSession");function Kr(e,n){if(n.executionCwd===void 0)return;let t=e.runtimeInfo?.workspaceRoot??e.gitRoot;t&&ms(n.executionCwd,t,"executionCwd")}o(Kr,"assertSessionSettingsAllowed");function ms(e,n,t){let r=xr(D.resolve(e)),a=xr(D.resolve(n)),m=D.relative(a,r);if(m!==""&&(m.startsWith("..")||D.isAbsolute(m)))throw new Error(`${t} must stay within the session workspace root`)}o(ms,"assertPathWithinRoot");function xr(e){return process.platform==="win32"?e.toLowerCase():e}o(xr,"normalizePathForContainment");function cs(e,n){let t={...e};return rn(t,"provider",n.provider),rn(t,"model",n.model),rn(t,"permissionMode",n.permissionMode),rn(t,"executionCwd",n.executionCwd,!0),Kn(t,"effort",n.effort),Kn(t,"thinking",n.thinking),Kn(t,"reasoningMode",n.reasoningMode),t}o(cs,"applySessionSettingsPatch");function rn(e,n,t,r=!1){if(t!==void 0){if(t===null){Nr(e,n);return}if(r&&!D.isAbsolute(t))throw new Error(`${String(n)} must be an absolute path`);H(e,n,t)}}o(rn,"applyNullableStringPatch");function Kn(e,n,t){if(t!==void 0){if(t===null){Nr(e,n);return}H(e,n,t)}}o(Kn,"applyNullablePatch");function H(e,n,t){e[n]=t}o(H,"setMutableSetting");function Nr(e,n){delete e[n]}o(Nr,"deleteMutableSetting");function ls(e){if(!V(e))return{};let n={};return Pe(n,"provider",e.provider),Pe(n,"model",e.model),Pe(n,"permissionMode",e.permissionMode),Pe(n,"executionCwd",e.executionCwd),Pe(n,"effort",e.effort),typeof e.thinking=="boolean"&&H(n,"thinking",e.thinking),Pe(n,"reasoningMode",e.reasoningMode),n}o(ls,"parseRuntimeSessionSettings");function Pe(e,n,t){typeof t=="string"&&t.length>0&&H(e,n,t)}o(Pe,"setStringIfPresent");function V(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}o(V,"isRecord");function fs(e,n){if(!V(e))throw new Error(`${n} requires a plain object`)}o(fs,"assertPlainObject");function ps(e){let n=new Set(So);for(let t of Object.keys(e))if(!n.has(t))throw new Error(`runtime.config.patch does not support config key: ${t}`);return e}o(ps,"sanitizeRuntimeConfigPatch");function Rs(e){if(e.homeDir!==void 0)return D.join(D.resolve(e.homeDir),".kodax","config.json")}o(Rs,"resolveRuntimeConfigFile");function W(e){if(e===void 0)return Gn();if(!k.existsSync(e))return{};try{let n=JSON.parse(k.readFileSync(e,"utf8"));return V(n)?n:{}}catch{return{}}}o(W,"readRuntimeConfig");function gs(e,n){if(e===void 0){et(n);return}let r={...W(e),...n};for(let a of Object.keys(n))n[a]===void 0&&delete r[a];qe(e,r)}o(gs,"patchRuntimeConfig");function qe(e,n){k.mkdirSync(D.dirname(e),{recursive:!0}),k.writeFileSync(e,`${JSON.stringify(n,null,2)}
|
|
15
|
-
`,"utf8")}o(qe,"writeRuntimeConfig");function ys(e){return e===void 0?st():Ss(mn(W(e)))}o(ys,"listRuntimeCustomProviders");function hs(e,n){if(e===void 0)return at(n);Wn(n);let t=W(e),r=mn(t),a=bs(r,n,m=>m.name===n.name);return qe(e,{...t,customProviders:a}),We(a),structuredClone(n)}o(hs,"upsertRuntimeCustomProvider");function ws(e,n){if(e===void 0)return ut(n);if(typeof n!="string"||n.length===0)return!1;let t=W(e),r=mn(t),a=r.filter(m=>m.name!==n);return a.length===r.length?!1:(qe(e,{...t,customProviders:a}),We(a),!0)}o(ws,"removeRuntimeCustomProvider");function Xr(e){e!==void 0&&We(mn(W(e)))}o(Xr,"registerRuntimeConfiguredCustomProviders");function mn(e){return Array.isArray(e.customProviders)?structuredClone(e.customProviders):[]}o(mn,"extractRuntimeCustomProviders");function Ss(e){return structuredClone(e)}o(Ss,"cloneCustomProviders");function Nn(e){return e===void 0?dt():Ds(cn(W(e)))}o(Nn,"listRuntimeMcpServers");function ks(e,n){if(e===void 0)return mt(n);let t=cn(W(e))[n];return t===void 0?void 0:structuredClone(t)}o(ks,"getRuntimeMcpServer");function Is(e,n,t){if(e===void 0)return ct(n,t);yn(n,t);let r=W(e),a={...cn(r),[n]:structuredClone(t)};return qe(e,{...r,mcpServers:a}),structuredClone(t)}o(Is,"upsertRuntimeMcpServer");function vs(e,n){if(e===void 0)return lt(n);let t=W(e),r=cn(t);if(!(n in r))return!1;let a={...r};return delete a[n],qe(e,{...t,mcpServers:a}),!0}o(vs,"removeRuntimeMcpServer");function cn(e){return V(e.mcpServers)?structuredClone(e.mcpServers):{}}o(cn,"extractRuntimeMcpServers");function Ds(e){return structuredClone(e)}o(Ds,"cloneMcpServers");function bs(e,n,t){let r=e.findIndex(t);return r<0?[...e,structuredClone(n)]:e.map((a,m)=>m===r?structuredClone(n):structuredClone(a))}o(bs,"upsertConfigEntry");function Es(e,n){let t=Array.isArray(e)?e:[];if(n?.provider!==void 0){let r=t.find(a=>V(a)&&a.name===n.provider);return V(r)?{provider:n.provider,models:Array.isArray(r.models)?r.models:[]}:{provider:n.provider,models:[]}}return t.flatMap(r=>!V(r)||typeof r.name!="string"?[]:[{provider:r.name,models:Array.isArray(r.models)?r.models:[]}])}o(Es,"listRuntimeModels");function Tr(e){let n=Ps(e).map(xs),t=Ue()?.listCommands().filter(r=>r.metadata?.userInvocable!==!1).map(Ts)??[];return[...n,...t].sort((r,a)=>r.name.localeCompare(a.name))}o(Tr,"listRuntimeCommands");function Ps(e){let n=pt;return typeof n.listRegisteredCommands=="function"?n.listRegisteredCommands(e):ot().getAll()}o(Ps,"listReplCommands");function xs(e){return{name:e.name,...e.aliases!==void 0?{aliases:e.aliases}:{},description:e.description,source:e.source,...e.usage!==void 0?{usage:e.usage}:{},...e.argumentHint!==void 0?{argumentHint:e.argumentHint}:{},...e.location!==void 0?{location:e.location}:{},...e.path!==void 0?{path:e.path}:{},...e.userInvocable!==void 0?{userInvocable:e.userInvocable}:{},...e.disableModelInvocation!==void 0?{disableModelInvocation:e.disableModelInvocation}:{},...e.allowedTools!==void 0?{allowedTools:e.allowedTools}:{},...e.context!==void 0?{context:e.context}:{},...e.agent!==void 0?{agent:e.agent}:{},...e.model!==void 0?{model:e.model}:{}}}o(xs,"replCommandToRuntimeCommandInfo");function Ts(e){return{name:e.name,...e.aliases!==void 0?{aliases:e.aliases}:{},description:e.description,source:"extension",...e.usage!==void 0?{usage:e.usage}:{}}}o(Ts,"extensionCommandToRuntimeCommandInfo");function xe(e){return Array.isArray(e)?e.map(n=>xe(n)):V(e)?Object.fromEntries(Object.entries(e).map(([n,t])=>[n,As(n)?"[redacted]":xe(t)])):e}o(xe,"redactRuntimeConfig");function As(e){let n=e.toLowerCase();return n.includes("apikey")||n.includes("api_key")||n==="key"||n.endsWith("key")||n.includes("token")||n.includes("secret")||n.includes("password")}o(As,"isSensitiveConfigKey");function Cs(e){return{name:e.name,description:e.description,userInvocable:e.userInvocable,...e.argumentHint!==void 0?{argumentHint:e.argumentHint}:{},path:e.path,source:e.source,disableModelInvocation:e.disableModelInvocation}}o(Cs,"toRuntimeSkillSummary");function Ms(e){return{name:e.name,description:e.description,userInvocable:e.userInvocable??!0,...e.argumentHint!==void 0?{argumentHint:e.argumentHint}:{},path:e.path,source:e.source,disableModelInvocation:e.disableModelInvocation??!1,content:e.content,skillFilePath:e.skillFilePath,...e.scripts!==void 0?{scripts:e.scripts.map(Le)}:{},...e.references!==void 0?{references:e.references.map(Le)}:{},...e.assets!==void 0?{assets:e.assets.map(Le)}:{},...e.templates!==void 0?{templates:e.templates.map(Le)}:{},...e.resources!==void 0?{resources:e.resources.map(Le)}:{}}}o(Ms,"toRuntimeSkillDescription");function Le(e){return{name:e.name,path:e.path,relativePath:e.relativePath}}o(Le,"toRuntimeSkillFileSummary");function Te(e){if(!V(e))throw new Error("Invalid runtime daemon response: expected object");return e}o(Te,"requireRuntimeRecord");function jr(e){let n=Te(e);if(typeof n.runtimeId!="string"||typeof n.mode!="string"||typeof n.profile!="string"||typeof n.startedAt!="string"||typeof n.version!="string")throw new Error("Invalid runtime daemon response: missing identity fields");return{runtimeId:n.runtimeId,mode:n.mode==="daemon"?"daemon":"embedded",profile:n.profile,startedAt:n.startedAt,version:n.version,...n.isolation==="inline"||n.isolation==="worker"||n.isolation==="process"?{isolation:n.isolation}:{},...typeof n.workerThreadId=="number"?{workerThreadId:n.workerThreadId}:{}}}o(jr,"parseRuntimeIdentity");function Os(e){let n={};return e.provider!==void 0&&H(n,"provider",e.provider),e.model!==void 0&&H(n,"model",e.model),e.effort!==void 0&&H(n,"effort",e.effort),e.thinking!==void 0&&H(n,"thinking",e.thinking),e.reasoningMode!==void 0&&H(n,"reasoningMode",e.reasoningMode),e.permissionMode!==void 0&&H(n,"permissionMode",e.permissionMode),e.executionCwd!==void 0&&H(n,"executionCwd",e.executionCwd),n}o(Os,"serializeSessionSettings");function _s(){return`run_${Date.now().toString(36)}_${le().replace(/-/g,"").slice(0,8)}`}o(_s,"createRunId");function z(e){return{runId:e.runId,sessionId:e.sessionId,...e.turnId!==void 0?{turnId:e.turnId}:{},phase:e.phase,startedAt:e.startedAt,...e.endedAt!==void 0?{endedAt:e.endedAt}:{},provider:e.provider,...e.model!==void 0?{model:e.model}:{},...e.reasoning!==void 0?{reasoning:e.reasoning}:{},...e.error!==void 0?{error:e.error}:{}}}o(z,"statusFromRecord");function Lr(e){return{runId:e.runId,sessionId:e.sessionId,phase:e.phase,...e.error!==void 0?{error:new Error(e.error)}:{}}}o(Lr,"resultFromStatus");function Fs(e){return e.length<=an?e:[...e].sort($r).slice(-an)}o(Fs,"recentRunStatuses");function Ks(e){if(e.size<=an)return;let n=[...e.values()].filter(t=>Ln(t.phase)).sort((t,r)=>$r(z(t),z(r)));for(let t of n){if(e.size<=an)return;e.delete(t.runId)}}o(Ks,"pruneTerminalRuns");function $r(e,n){let t=e.endedAt??e.startedAt,r=n.endedAt??n.startedAt,a=t.localeCompare(r);return a!==0?a:e.runId.localeCompare(n.runId)}o($r,"compareRunStatusRecency");function Ns(e,n){return n?!(n.sessionId!==void 0&&e.sessionId!==n.sessionId||n.phase!==void 0&&!(Array.isArray(n.phase)?n.phase:[n.phase]).includes(e.phase)):!0}o(Ns,"runMatchesFilter");function $e(e,n,t,r){if(t.terminalEmitted)return;t.phase=r,t.endedAt=new Date().toISOString(),t.terminalEmitted=!0;let a=r==="completed"?"run.completed":r==="cancelled"?"run.cancelled":r==="interrupted"?"run.interrupted":"run.failed";e.emit(a,z(t),{sessionId:t.sessionId,runId:t.runId,...t.turnId!==void 0?{turnId:t.turnId}:{}}),dn(e,n,t,z(t))}o($e,"markRunTerminal");function dn(e,n,t,r){try{n.saveRunStatus(r)}catch(a){let m=t?.turnId??r.turnId;e.emit("runtime.warning",{message:`Failed to save runtime run status for ${r.runId}: ${$(a).message}`,runId:r.runId,phase:r.phase},{sessionId:r.sessionId,runId:r.runId,...m!==void 0?{turnId:m}:{}})}}o(dn,"saveRunStatusSafely");function Ln(e){return e==="completed"||e==="failed"||e==="cancelled"||e==="interrupted"}o(Ln,"isTerminalRunPhase");function Xs(e){return e.type==="workflow_started"?"workflow.started":e.type==="workflow_finished"?"workflow.finished":"workflow.updated"}o(Xs,"workflowEventType");function js(e){return e==="completed"||e==="failed"||e==="cancelled"}o(js,"isFinalWorkflowStatus");function Ls(e,n){return n?!(n.sessionId!==void 0&&e.sessionId!==n.sessionId||n.runId!==void 0&&e.runId!==n.runId||n.toolName!==void 0&&e.toolName!==n.toolName):!0}o(Ls,"permissionMatchesFilter");function $s(e){return e===!0?{type:"allow_once"}:{type:"reject",reason:e===!1?"tool execution rejected":e}}o($s,"decisionToPermissionDecision");function qs(e,n,t){if(Po.has(n))return!0;if(e.permissionBroker==="client")return;let r=Yn(e.permissionMode);if(r===void 0)return;let a=e.start?.options.context?.gitRoot??e.start?.options.context?.executionCwd;if(r==="plan"){let m=it(n,t,a);return m===null?!0:`${m} Finish the plan before switching to a writable permission mode.`}if(n==="bash"){let m=typeof t.command=="string"?t.command:"";if(nt(m))return!0;if(a&&rt(m,a))return}if(a&&Vn.has(n)){let m=typeof t.path=="string"?t.path:void 0;if(m&&tt(D.resolve(a,m),a))return}return Qn(r).has(n)?void 0:!0}o(qs,"resolveRuntimePermissionPolicy");function Ar(e){return e?e.type==="allow_once"||e.type==="allow_always"?!0:e.reason??!1:!1}o(Ar,"decisionToToolDecision");function Ws(e){let n=JSON.stringify(e);return n.length<=500?n:`${n.slice(0,497)}...`}o(Ws,"previewInput");function $(e){return e instanceof Error?e:new Error(String(e))}o($,"normalizeError");function Xn(e,n){if(!n(e))return;let t=new Error(`Session has an active run and cannot be mutated: ${e}`);throw Object.defineProperty(t,"code",{configurable:!0,enumerable:!0,value:"conflict"}),t}o(Xn,"assertSessionMutationAllowed");function Us(e,n){if(!("ok"in n))throw new Error(`Session is running and cannot be deleted: ${e}`)}o(Us,"assertDeleteSucceeded");function Js(e){return structuredClone(e)}o(Js,"cloneMessage");export{te as a,vn as b,He as c,en as d,Vt as e,Qt as f,Pi as g,xi as h,To as i,Or as j};
|