@kodax-ai/kodax 0.7.97-beta.2 → 0.7.97-beta.3

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.
Files changed (161) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/README.md +55 -2
  3. package/README_CN.md +37 -1
  4. package/dist/artifacts/dist/contract.js +1 -1
  5. package/dist/artifacts/dist/contract.js.map +1 -1
  6. package/dist/artifacts/dist/document-render.d.ts +1 -1
  7. package/dist/artifacts/dist/document-render.js +41 -10
  8. package/dist/artifacts/dist/document-render.js.map +1 -1
  9. package/dist/artifacts/dist/kodax.js +1 -1
  10. package/dist/artifacts/dist/kodax.js.map +1 -1
  11. package/dist/artifacts/dist/libreoffice.d.ts +6 -1
  12. package/dist/artifacts/dist/libreoffice.js +37 -13
  13. package/dist/artifacts/dist/libreoffice.js.map +1 -1
  14. package/dist/artifacts/dist/runtime.js +13 -6
  15. package/dist/artifacts/dist/runtime.js.map +1 -1
  16. package/dist/artifacts/skills/artifact-review/SKILL.md +5 -1
  17. package/dist/chunks/agent-NWQPMZ7B.js +2 -0
  18. package/dist/chunks/agent-adapter-V3IPADCX.js +2 -0
  19. package/dist/chunks/argument-completer-VNKHT4X4.js +2 -0
  20. package/dist/chunks/{bedrock-native-Z5VNWF5U.js → bedrock-native-OEPOBW6W.js} +1 -1
  21. package/dist/chunks/{chunk-NSR4RW2F.js → chunk-3I2MIS4D.js} +1 -1
  22. package/dist/chunks/{chunk-RYBUYHDL.js → chunk-3Y5PBEOD.js} +1 -1
  23. package/dist/chunks/chunk-4FVCMKG2.js +20 -0
  24. package/dist/chunks/{chunk-F6GJXQNA.js → chunk-4GYXZTOD.js} +7 -7
  25. package/dist/chunks/{chunk-EISRVOBJ.js → chunk-4Z7ZHL6V.js} +2 -2
  26. package/dist/chunks/{chunk-W2CWO4PQ.js → chunk-576AAIQM.js} +1 -1
  27. package/dist/chunks/chunk-5E2P4RYS.js +4 -0
  28. package/dist/chunks/{chunk-X5M7TLJV.js → chunk-5LFQ5FVY.js} +1 -1
  29. package/dist/chunks/{chunk-WMMESRP3.js → chunk-6RDMSU4B.js} +1 -1
  30. package/dist/chunks/{chunk-3CP7AUWY.js → chunk-7BA4TSKC.js} +1 -1
  31. package/dist/chunks/{chunk-I325ER7D.js → chunk-AUU3N4V4.js} +1 -1
  32. package/dist/chunks/{chunk-DCE7XQUG.js → chunk-AYDLX2UK.js} +1 -1
  33. package/dist/chunks/{chunk-D36OIMV7.js → chunk-BP3NAYKY.js} +64 -64
  34. package/dist/chunks/{chunk-6TITQQAI.js → chunk-BSCSKJNC.js} +230 -229
  35. package/dist/chunks/{chunk-2HH5AS7E.js → chunk-DAQGOWKD.js} +88 -462
  36. package/dist/chunks/{chunk-UF3GZ5PO.js → chunk-EZF6ZRCO.js} +1 -1
  37. package/dist/chunks/chunk-F2TFWNVZ.js +2 -0
  38. package/dist/chunks/{chunk-53CJDQS2.js → chunk-FVXZ5L33.js} +1 -1
  39. package/dist/chunks/{chunk-MCDZNQWD.js → chunk-G32BMSHH.js} +75 -71
  40. package/dist/chunks/chunk-HJLYZ5AX.js +361 -0
  41. package/dist/chunks/{chunk-P55RJIOG.js → chunk-IOIFCU46.js} +1 -1
  42. package/dist/chunks/{chunk-DV5YPYLW.js → chunk-IR46ZHXU.js} +1 -1
  43. package/dist/chunks/chunk-NJDR5EEF.js +6 -0
  44. package/dist/chunks/{chunk-KDSO7V4O.js → chunk-OC3DQXN6.js} +1 -1
  45. package/dist/chunks/{chunk-J2L2NK6E.js → chunk-OMVAPRQI.js} +90 -57
  46. package/dist/chunks/chunk-OXCB2TRF.js +42 -0
  47. package/dist/chunks/{chunk-C6JGLEYD.js → chunk-P6R6V7EW.js} +1 -1
  48. package/dist/chunks/{chunk-SK3RRGHJ.js → chunk-PFBZ4ZXO.js} +28 -28
  49. package/dist/chunks/{chunk-V2XJSFFE.js → chunk-QDE6THC5.js} +1 -1
  50. package/dist/chunks/{chunk-EPK6EWRI.js → chunk-QRYEP34M.js} +1 -1
  51. package/dist/chunks/chunk-ROWYE472.js +460 -0
  52. package/dist/chunks/{chunk-R42S4BLA.js → chunk-SQGESMNC.js} +1 -1
  53. package/dist/chunks/{chunk-XZSFUGPN.js → chunk-U73VEVMP.js} +1 -1
  54. package/dist/chunks/{chunk-D425EZGC.js → chunk-V2TG7GNW.js} +1 -1
  55. package/dist/chunks/{chunk-QSZCR5GC.js → chunk-VRO2CDBY.js} +97 -97
  56. package/dist/chunks/{chunk-BBZWF2EA.js → chunk-WMQQQY3D.js} +1 -1
  57. package/dist/chunks/{chunk-JAF2YLZO.js → chunk-X3YYJJTF.js} +2 -2
  58. package/dist/chunks/{chunk-UL6YIT4M.js → chunk-XYRI6ER5.js} +1 -1
  59. package/dist/chunks/chunk-YRPB3LID.js +3 -0
  60. package/dist/chunks/{chunk-5MUVRFMU.js → chunk-ZDAU3LZ2.js} +1 -1
  61. package/dist/chunks/{chunk-WWPVEK6B.js → chunk-ZP3YSYWM.js} +10 -10
  62. package/dist/chunks/{client-LTIFNED5.js → client-NJ32JBC3.js} +1 -1
  63. package/dist/chunks/compaction-config-JBQGU3NO.js +2 -0
  64. package/dist/chunks/{construction-bootstrap-OAZKGI5Y.js → construction-bootstrap-CM47ZXG7.js} +1 -1
  65. package/dist/chunks/dist-O6BHIQEP.js +2 -0
  66. package/dist/chunks/{google-native-WLL27OV7.js → google-native-BV5GKT5B.js} +1 -1
  67. package/dist/chunks/host-PI5NL4W4.js +2 -0
  68. package/dist/chunks/{mistral-native-JXPIDDYZ.js → mistral-native-X42JCFZH.js} +1 -1
  69. package/dist/chunks/{model-DZF6URW3.js → model-MT3WJX76.js} +1 -1
  70. package/dist/chunks/{permission-YVVMLQ5I.js → permission-YVDVSE6H.js} +1 -1
  71. package/dist/chunks/{pi-messages-5LLOZH57.js → pi-messages-DVJANXV5.js} +1 -1
  72. package/dist/chunks/readline-helpers-5JS7UGTE.js +2 -0
  73. package/dist/chunks/run-manager-Y6VYEWSJ.js +2 -0
  74. package/dist/chunks/running-session-ANMBA5XV.js +2 -0
  75. package/dist/chunks/skills-XL2XIBWV.js +2 -0
  76. package/dist/chunks/{tool-dispatch-MLM3QTSU.js → tool-dispatch-2FOG65FC.js} +1 -1
  77. package/dist/chunks/{utils-2QNMYRGA.js → utils-XZ22R6VB.js} +1 -1
  78. package/dist/client-history.js +2 -0
  79. package/dist/history-turn.js +3 -0
  80. package/dist/index.d.ts +19 -19
  81. package/dist/index.js +2 -2
  82. package/dist/kodax_bootstrap.js +1 -1
  83. package/dist/kodax_cli.js +1472 -1810
  84. package/dist/kodax_doctor.js +1 -1
  85. package/dist/maintenance-scheduler.js +2 -0
  86. package/dist/manual-topics.json +32 -3
  87. package/dist/native/win32-x64/kodax-windows-sandbox.exe +0 -0
  88. package/dist/native/win32-x64/kodax-windows-text-transaction.node +0 -0
  89. package/dist/native/win32-x64/manifest.json +2 -2
  90. package/dist/one-shot-task.js +1 -1
  91. package/dist/provider-auth-cli.js +1 -1
  92. package/dist/runtime-daemon-schema.json +1 -1
  93. package/dist/sandbox-network-broker.js +93 -441
  94. package/dist/sdk-a2a.d.ts +13 -13
  95. package/dist/sdk-a2a.js +1 -1
  96. package/dist/sdk-agent.d.ts +17 -12
  97. package/dist/sdk-agent.js +1 -1
  98. package/dist/sdk-client.d.ts +6 -6
  99. package/dist/sdk-client.js +1 -1
  100. package/dist/sdk-coding.d.ts +17 -17
  101. package/dist/sdk-coding.js +1 -1
  102. package/dist/sdk-experimental-memory.d.ts +2 -2
  103. package/dist/sdk-experimental-memory.js +1 -1
  104. package/dist/sdk-llm.d.ts +4 -2
  105. package/dist/sdk-llm.js +1 -1
  106. package/dist/sdk-mcp.js +1 -1
  107. package/dist/sdk-media.d.ts +13 -13
  108. package/dist/sdk-media.js +1 -1
  109. package/dist/sdk-repl.d.ts +16 -16
  110. package/dist/sdk-repl.js +1 -1
  111. package/dist/sdk-runtime.d.ts +46 -46
  112. package/dist/sdk-runtime.js +1 -1
  113. package/dist/sdk-sandbox.js +1 -1
  114. package/dist/sdk-session.d.ts +7 -7
  115. package/dist/sdk-session.js +1 -1
  116. package/dist/sdk-skills.js +1 -1
  117. package/dist/semantic-worker.js +87 -435
  118. package/dist/storage-repair-cli.js +1 -1
  119. package/dist/types-chunks/{bash-prefix-extractor.d-CJliu5-D.d.ts → bash-prefix-extractor.d-BghXa_md.d.ts} +9 -3
  120. package/dist/types-chunks/{capsule.d-EMwSALqK.d.ts → capsule.d-BTlvC5qq.d.ts} +4 -4
  121. package/dist/types-chunks/{client-contract-B7q69yMA.d.ts → client-contract-B7ZSFKTv.d.ts} +52 -4
  122. package/dist/types-chunks/{controller.d-C0SAuNKu.d.ts → controller.d-Btu5FDdw.d.ts} +1 -1
  123. package/dist/types-chunks/{controller.d-D-hPLKaA.d.ts → controller.d-D6rEz5LS.d.ts} +3 -3
  124. package/dist/types-chunks/{history-retrieval.d-BwEUR9cb.d.ts → history-retrieval.d-B_AriUJp.d.ts} +1 -1
  125. package/dist/types-chunks/{manifest.d-YE3-AIeO.d.ts → manifest.d-Yyce-hHj.d.ts} +1 -1
  126. package/dist/types-chunks/{public-api.d-BhDU643p.d.ts → public-api.d-BLv3lFmw.d.ts} +9 -4
  127. package/dist/types-chunks/{review-inbox.d-Bgt46S7L.d.ts → review-inbox.d-yREk25Vf.d.ts} +2 -0
  128. package/dist/types-chunks/{review-packet.d-ChOfJaNI.d.ts → review-packet.d-xwXxHmML.d.ts} +1 -1
  129. package/dist/types-chunks/{run-manager.d-ChzguipG.d.ts → run-manager.d-D4sa9JYz.d.ts} +26 -12
  130. package/dist/types-chunks/{runtime-client-info-P_mRDG7j.d.ts → runtime-client-info-oRMrkHmb.d.ts} +2 -2
  131. package/dist/types-chunks/{runtime-event-BW5Pla7a.d.ts → runtime-event-BOyaILWg.d.ts} +3 -1
  132. package/dist/types-chunks/{sdk-runtime-cDe7qmN3.d.ts → sdk-runtime-CYyXmQok.d.ts} +27 -13
  133. package/dist/types-chunks/{sdk-session-D3pcSbnA.d.ts → sdk-session-D6mS5qgO.d.ts} +6 -3
  134. package/dist/types-chunks/{skill-invocation-error.d-gsNNDnnt.d.ts → skill-invocation-error.d-Be3qg4JQ.d.ts} +3 -3
  135. package/dist/types-chunks/{trusted-repl-entry-Bbkd2HlO.d.ts → trusted-repl-entry-YWNc4m-Z.d.ts} +7 -7
  136. package/dist/types-chunks/{types.d-BlXTogOo.d.ts → types.d-BQ-hbni4.d.ts} +1 -1
  137. package/dist/types-chunks/{utils.d-CxHyBvO6.d.ts → utils.d-C0F3Uf2X.d.ts} +6 -6
  138. package/dist/windows-effect-job-programs.json +4 -0
  139. package/docs/ARTIFACT_SDK.md +3 -3
  140. package/docs/CLIENT_CONTRACT.md +4 -2
  141. package/docs/SDK_MIGRATION.md +9 -5
  142. package/docs/SPACE_SDK_SEAMS.md +12 -1
  143. package/package.json +4 -3
  144. package/public_docs/README.md +10 -3
  145. package/public_docs/sdk/embedder-guide.md +1 -1
  146. package/dist/chunks/agent-DS7M57WD.js +0 -2
  147. package/dist/chunks/agent-adapter-TLWGGK3V.js +0 -2
  148. package/dist/chunks/argument-completer-OGCXKTRQ.js +0 -2
  149. package/dist/chunks/chunk-GJXOTOZB.js +0 -465
  150. package/dist/chunks/chunk-KE2NBMAP.js +0 -20
  151. package/dist/chunks/chunk-OGTRDK4Q.js +0 -359
  152. package/dist/chunks/chunk-R2HTPDI7.js +0 -2
  153. package/dist/chunks/chunk-SDPZFH6M.js +0 -4
  154. package/dist/chunks/chunk-XDMNJW6J.js +0 -42
  155. package/dist/chunks/compaction-config-ECMOFP5H.js +0 -2
  156. package/dist/chunks/dist-5J53DGAO.js +0 -2
  157. package/dist/chunks/host-65E5NM5P.js +0 -2
  158. package/dist/chunks/readline-helpers-UZXWBRXQ.js +0 -2
  159. package/dist/chunks/run-manager-ZFACIZM2.js +0 -2
  160. package/dist/chunks/running-session-Q5Y6A2QV.js +0 -2
  161. package/dist/chunks/skills-TJP6BLZJ.js +0 -2
@@ -1,2 +1,2 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{la as s}from"./chunk-KE2NBMAP.js";import{A as n,K as u,N as d,O as l,f as i}from"./chunk-V5RCDBKU.js";import{a as t}from"./chunk-V4WSBIXB.js";function a(r){let e=d(r);if(!e)throw new Error("Cloud provider requires an explicit request credential broker.");return e}t(a,"requireCloudCredential");function p(r){return l(r)===!0}t(p,"isCloudConfigured");function C(r){let e=u(r);if(e)return n(["trusted-registration",e],i());let o=d(r);return o?n(o,i()):"unavailable"}t(C,"cloudCredentialScope");var g=class extends s{static{t(this,"KodaXNativeCloudProvider")}cloud;constructor(e,o,c){super(e,o,c.service==="bedrock"?"bedrock-converse":"google-generate-content"),this.cloud=c}getCredentialCloudConnection(){return this.cloud}isConfigured(){return p(this.name)}getGenerationSource(e){return{provider:this.name,api:this.cloud.service==="bedrock"?"bedrock-converse":"google-generate-content",model:this.getWireModelId(e),baseUrl:this.config.baseUrl,credentialScope:C(this.name)}}assertCredential(){a(this.name)}};export{a,p as b,C as c,g as d};
2
+ import{la as s}from"./chunk-4FVCMKG2.js";import{A as n,K as u,N as d,O as l,f as i}from"./chunk-V5RCDBKU.js";import{a as t}from"./chunk-V4WSBIXB.js";function a(r){let e=d(r);if(!e)throw new Error("Cloud provider requires an explicit request credential broker.");return e}t(a,"requireCloudCredential");function p(r){return l(r)===!0}t(p,"isCloudConfigured");function C(r){let e=u(r);if(e)return n(["trusted-registration",e],i());let o=d(r);return o?n(o,i()):"unavailable"}t(C,"cloudCredentialScope");var g=class extends s{static{t(this,"KodaXNativeCloudProvider")}cloud;constructor(e,o,c){super(e,o,c.service==="bedrock"?"bedrock-converse":"google-generate-content"),this.cloud=c}getCredentialCloudConnection(){return this.cloud}isConfigured(){return p(this.name)}getGenerationSource(e){return{provider:this.name,api:this.cloud.service==="bedrock"?"bedrock-converse":"google-generate-content",model:this.getWireModelId(e),baseUrl:this.config.baseUrl,credentialScope:C(this.name)}}assertCredential(){a(this.name)}};export{a,p as b,C as c,g as d};
@@ -0,0 +1,2 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{B as oe,C as T,b as E,c as A,d as ee,l as te,m as ne}from"./chunk-ROWYE472.js";import{c as Y}from"./chunk-ZP3YSYWM.js";import{a as U,i as D,o as Z}from"./chunk-5E2P4RYS.js";import{v as Q}from"./chunk-4Z7ZHL6V.js";import{Zb as O}from"./chunk-DAQGOWKD.js";import{h as X,s as $}from"./chunk-OMVAPRQI.js";import{a as o}from"./chunk-V4WSBIXB.js";import{setTimeout as ve}from"node:timers/promises";import{randomBytes as ye,randomUUID as be}from"node:crypto";function k(t,a){let p=o(()=>{if(t.capabilities?.sessionPromotion?.version!==1)throw Object.assign(new Error("Session promotion requires an upgraded Host."),{code:"daemon_upgrade_required"})},"requirePromotionContract"),c=o(async e=>{let n=structuredClone(e.input);for(let i of["authorization","credential","hostTools","providerCredential","providerCredentialAccess","origin","trustedRunId","workflowHostPolicy","profile","agentProfile","workModePolicy","toolVisibilityPolicy","tools","binding","businessBinding","defaultSkill"])delete n[i];let s=await a?.({...e,input:n},ee(t,"sessionId"in n?n.sessionId:void 0));if(s?.profile?.requiredWorkMode!==void 0&&t.capabilities?.productExecutionModeConstraint?.version!==1)throw Object.assign(new Error("Execution mode constraints require an upgraded Host."),{code:"daemon_upgrade_required"});if((s?.profile!==void 0||s?.tools!==void 0)&&t.capabilities?.productExecutionProfile?.version!==2)throw Object.assign(new Error("Execution profiles require an upgraded Host."),{code:"daemon_upgrade_required"});if((s?.profile?.defaultSkill!==void 0||s?.binding!==void 0||s?.businessBinding!==void 0)&&t.capabilities?.productExecutionBinding?.version!==1)throw Object.assign(new Error("Default Skills require an upgraded Host."),{code:"daemon_upgrade_required"});return{...n,...s===void 0?{}:{authorization:structuredClone(s)}}},"authorize");return{statistics:t.statistics??{read:o(async()=>{throw new Error("Execution facts require a compatible Host.")},"read"),readRequests:o(async()=>{throw new Error("Execution facts require a compatible Host.")},"readRequests"),readTools:o(async()=>{throw new Error("Execution facts require a compatible Host.")},"readTools")},lifecycle:t.lifecycle??{requestExit:o(async()=>{throw new Error("Client exit control requires a compatible daemon Host.")},"requestExit"),readExit:o(async()=>{throw new Error("Client exit control requires a compatible daemon Host.")},"readExit"),listPendingExits:o(async()=>{throw new Error("Client exit control requires a compatible daemon Host.")},"listPendingExits")},commands:{execute:o(async e=>t.invocations.executeCommand(await c({kind:"command",input:e})),"execute"),readPrompt:o(e=>t.invocations.readCommandPrompt(e),"readPrompt")},review:{start:o(async e=>t.invocations.startReview(await c({kind:"review",input:e})),"start")},host:{shutdown:o(async()=>{if(t.daemon===void 0)throw new Error("Host shutdown requires a shared Host connection.");return t.daemon.shutdown()},"shutdown")},sessions:{cancel:o(e=>t.sessions.cancel(e),"cancel"),create:o(e=>t.sessions.create(e),"create"),promote:o(async e=>(p(),t.sessions.promote(e)),"promote"),readPromotion:o(async(e,n)=>(p(),t.sessions.readPromotion(e,n)),"readPromotion"),list:o(e=>t.sessions.list(e),"list"),read:o(e=>t.sessions.load(e),"read"),delete:o(e=>t.sessions.delete(e),"delete"),archive:o(e=>t.sessions.archive(e),"archive"),unarchive:o(e=>t.sessions.unarchive(e),"unarchive"),getAutoModeStats:o(async e=>await t.sessions.getAutoModeStats(e)??void 0,"getAutoModeStats"),getSettings:o(async e=>E(await t.sessions.getSettings(e)),"getSettings"),getSettingsVersioned:o(async e=>{let n=await t.sessions.getSettingsVersioned(e);return{revision:n.revision,value:E(n.value),workModeLocked:n.workModeLocked}},"getSettingsVersioned"),updateSettingsVersioned:o(async(e,n,s)=>{let i=await t.sessions.updateSettingsVersioned(e,n,s);return{revision:i.revision,value:E(i.value),workModeLocked:i.workModeLocked}},"updateSettingsVersioned"),updateSettings:o(async(e,n)=>E(await t.sessions.updateSettings(e,n)),"updateSettings"),observe:o((e,n,s)=>t.sessions.observeView(e,n,s),"observe"),readItem:o((e,n,s)=>t.sessions.readViewItem(e,n,s),"readItem"),readHistory:o((e,n)=>t.sessions.readHistory(e,n),"readHistory"),resolveHistoryTurn:o((e,n)=>t.sessions.resolveHistoryTurn(e,n),"resolveHistoryTurn"),readHistoryEntry:o((e,n,s)=>t.sessions.readHistoryEntry(e,n,s),"readHistoryEntry"),searchHistory:o((e,n)=>t.sessions.searchHistory(e,n),"searchHistory"),readGoal:o(e=>t.sessions.readGoal(e),"readGoal"),createGoal:o((e,n)=>t.sessions.createGoal({sessionId:e,...n}),"createGoal"),pauseGoal:o(e=>t.sessions.pauseGoal(e),"pauseGoal"),resumeGoal:o(e=>t.sessions.resumeGoal(e),"resumeGoal"),clearGoal:o(e=>t.sessions.clearGoal(e),"clearGoal"),appendNotice:o(async(e,n)=>{if(!await t.sessions.appendNotice({sessionId:e,...n}))throw new Error("Host did not save the Session notice.")},"appendNotice"),readLineage:o(e=>t.sessions.readLineage(e),"readLineage"),labelEntry:o((e,n)=>t.sessions.labelEntry({sessionId:e,...n}),"labelEntry"),selectBranch:o((e,n,s)=>t.sessions.setActiveEntry({sessionId:e,entryId:n,...s}).then(i=>{if(i===null)throw Object.assign(new Error("No lineage entry matches the selector."),{code:"conflict"});return i}),"selectBranch"),rewindSession:o((e,n)=>t.sessions.rewind({sessionId:e,...n}).then(s=>{if(s===null)throw Object.assign(new Error("Rewind target no longer resolves."),{code:"conflict"});return s}),"rewindSession"),forkSession:o((e,n)=>t.sessions.fork({sessionId:e,...n??{}}).then(s=>{if(s===null)throw Object.assign(new Error("Fork boundary no longer resolves."),{code:"conflict"});return s}),"forkSession"),recoverSession:o((e,n)=>t.sessions.recover({sessionId:e,...n??{}}),"recoverSession"),compact:o(async(e,n)=>{let s=await c({kind:"compaction",input:{...n,sessionId:e}}),i=await t.sessions.compact({sessionId:s.sessionId,customInstructions:s.customInstructions,...s.authorization?.credential!==void 0?{credential:s.authorization.credential}:{}});return{compacted:i.compacted,messages:i.messages,tokensBefore:i.tokensBefore,tokensAfter:i.tokensAfter,...i.report!==void 0?{report:i.report}:{},...i.reason!==void 0?{reason:i.reason}:{}}},"compact")},learning:{list:o(e=>t.learning.list(e),"list"),get:o(e=>t.learning.get(e),"get"),getSnapshot:o(()=>t.learning.getSnapshot(),"getSnapshot"),events:o(e=>t.learning.events(e),"events"),subscribe:o(e=>t.learning.subscribe(e),"subscribe"),acknowledge:o(e=>t.learning.acknowledge(e),"acknowledge"),snooze:o((e,n)=>t.learning.snooze(e,n),"snooze"),reject:o(e=>t.learning.reject(e),"reject"),disable:o(e=>t.learning.disable(e),"disable"),rollback:o(e=>t.learning.rollback(e),"rollback"),promote:o((e,n)=>t.learning.promote(e,n),"promote"),review:o(e=>t.learning.review(e),"review"),trust:o(e=>t.learning.trust(e),"trust")},memory:{async forProject(e){let n=await t.memory.forProject(e);return{memoryRoot:n.memoryRoot,entrypointPath:n.entrypointPath,listReviews:o(()=>n.listReviews(),"listReviews"),reviewerProviderConfigured:o(()=>n.reviewerProviderConfigured(),"reviewerProviderConfigured"),rebuild:o(()=>n.rebuild(),"rebuild"),ensureOpenTarget:o(s=>n.ensureOpenTarget(s),"ensureOpenTarget"),controller:{listRefs:o(s=>n.controller.listRefs(s),"listRefs"),readRef:o(s=>n.controller.readRef(s),"readRef"),remember:o(s=>n.controller.remember(s),"remember"),forgetRef:o((s,i)=>n.controller.forgetRef(s,i),"forgetRef"),approveProposal:o((s,i,r)=>n.controller.approveProposal(s,i,r),"approveProposal"),rejectProposal:o((s,i,r)=>n.controller.rejectProposal(s,i,r),"rejectProposal"),listInbox:o(async()=>(await n.controller.listInbox()).map(s=>({...s,revision:O(s)})),"listInbox"),showProposal:o(async s=>{let i=await n.controller.showProposal(s);return i===void 0?void 0:{...i,revision:O(i)}},"showProposal")}}}},inputs:{submit:o(async e=>t.runs.acceptInput(await c({kind:"input",input:e})),"submit"),read:o((e,n)=>t.runs.getInput(e,n),"read"),withdraw:o((e,n)=>t.runs.withdrawInput(e,n),"withdraw")},runs:{recover:o(async({sessionId:e,runId:n})=>{if((await t.runs.get(n)).sessionId!==e)throw new Error("Recovery Run belongs to a different Session.");let s=await c({kind:"recovery",input:{sessionId:e,runId:n}}),i=await t.sessions.getSettings(e),r=await t.runs.recover({runId:n,options:{provider:i.provider,model:i.model,reasoningMode:i.reasoningMode},...s.authorization===void 0?{}:{authorization:s.authorization}});return{runId:r.runId,sessionId:r.sessionId}},"recover"),startTool:o(async e=>{let n=await c({kind:"tool",input:e}),s=await t.runs.start({sessionId:n.sessionId,inputId:n.inputId,prompt:n.rawInput,options:{toolInvocation:{name:n.name,input:n.input}},...n.authorization!==void 0?{authorization:n.authorization}:{}});return{runId:s.runId,sessionId:s.sessionId}},"startTool"),read:o(e=>t.runs.get(e),"read"),stop:o(e=>t.runs.abort(e),"stop"),await:o(async e=>{let n=await t.runs.await(e);return{runId:n.runId,sessionId:n.sessionId,phase:n.phase,...n.failureDetail!==void 0?{failureDetail:n.failureDetail}:{},...n.result!==void 0?{result:n.result}:{},...n.error!==void 0?{error:n.error.message}:{},...n.terminal!==void 0?{terminal:n.terminal}:{},...n.stop!==void 0?{stop:n.stop}:{}}},"await")},interactions:{list:o(e=>t.interactions.list(e),"list"),respond:o((e,n)=>t.interactions.respond(e,n),"respond")},permissions:{listGrants:o(async()=>{let e=await t.permissions.listGrants();return{revision:e.revision,grants:e.value.map(n=>({id:n.id,...n.scope.sessionId!==void 0?{sessionId:n.scope.sessionId}:{},...n.label!==void 0?{label:n.label}:{},...n.persistence!==void 0?{persistence:n.persistence}:{}}))}},"listGrants"),revokeGrant:o((e,n)=>t.permissions.revokeGrant(e,n),"revokeGrant")},registrations:{list:o(()=>t.admin.agentRegistrations.list(),"list"),upsert:o((e,n)=>t.admin.agentRegistrations.upsert(e,n),"upsert"),setEnabled:o((e,n,s)=>t.admin.agentRegistrations.setEnabled(e,n,s),"setEnabled"),remove:o((e,n)=>t.admin.agentRegistrations.remove(e,n),"remove")},agents:{reviewLean:o(async e=>t.invocations.startAgentsLean(await c({kind:"agents_lean",input:e})),"reviewLean"),tree:o(e=>t.agents.tree(e),"tree"),detail:o((e,n)=>t.agents.detail(e,n),"detail"),spawn:o(async(e,n)=>{let s=await c({kind:"agent_spawn",input:{sessionId:e,agent:n}});return s.authorization===void 0?t.agents.spawn(e,s.agent):t.agents.spawn(e,s.agent,{authorization:s.authorization})},"spawn"),send:o((e,n,s,i)=>t.agents.send(e,n,s,i),"send"),followup:o(async(e,n,s,i)=>{let r=await c({kind:"agent_followup",input:{sessionId:e,actorPath:n,objective:s,...i?.resumeCheckpoint===void 0?{}:{resumeCheckpoint:i.resumeCheckpoint},...i?.expectedRevision===void 0?{}:{expectedRevision:i.expectedRevision}}});return t.agents.followup(e,n,s,{expectedRevision:r.expectedRevision,...r.resumeCheckpoint===void 0?{}:{resumeCheckpoint:r.resumeCheckpoint},...r.authorization===void 0?{}:{authorization:r.authorization}})},"followup"),interrupt:o((e,n,s)=>t.agents.interrupt(e,n,s),"interrupt"),output:o((e,n,s)=>t.agents.output(e,n,s),"output"),wait:o((e,n,s,i)=>t.agents.wait(e,n,s,i?.signal===void 0?void 0:{signal:i.signal}),"wait")},config:{read:o(async()=>A(await t.config.read()),"read"),readEffective:o(async()=>{let{entries:e,application:n}=await t.config.readEffective(),s=o((r,w)=>({value:w,source:e[r]?.source??"unset",applied:e[r]?.applied===!0||e[r]?.present!==!0}),"project"),i=e.fallbackProviders?.value;return{...n===void 0?{}:{application:n,maxOutputTokens:s("maxOutputTokens",e.maxOutputTokens?.value===void 0?void 0:Number(e.maxOutputTokens.value)),disablePromptCache:s("disablePromptCache",e.disablePromptCache?.value===void 0?void 0:e.disablePromptCache.value===!0||e.disablePromptCache.value==="1"),lsp:s("lsp",e.lsp?.value===void 0?void 0:e.lsp.value===!0||e.lsp.value==="1")},stallLog:s("stallLog",e.stallLog?.value==="1"||e.stallLog?.value===!0),fallbackProviders:s("fallbackProviders",typeof i=="string"?i.split(",").map(r=>r.trim()).filter(Boolean):Array.isArray(i)?i.filter(r=>typeof r=="string"):[])}},"readEffective"),patch:o(async e=>A(await t.config.patch(e)),"patch"),reload:o(async()=>({ok:!0,config:A((await t.config.reload()).config)}),"reload")},mcp:{status:o(()=>t.mcp.status(),"status"),listServers:o(()=>t.mcp.listServers(),"listServers"),getServer:o(e=>t.mcp.getServer(e),"getServer"),validateServer:o((e,n)=>t.mcp.validateServer(e,n),"validateServer"),upsertServer:o((e,n)=>t.mcp.upsertServer(e,n),"upsertServer"),deleteServer:o(e=>t.mcp.deleteServer(e),"deleteServer"),reloadServers:o(()=>t.mcp.reloadServers(),"reloadServers"),listTools:o(e=>t.mcp.listTools(e),"listTools")},workflows:{start:o(async e=>t.workflows.start({...await c({kind:"workflow",input:e}),settingsDefaults:"product"}),"start"),list:o(async e=>{let n=[];for(let s of await t.workflows.list(e??{})){let i=s.updatedAt===void 0?await t.workflows.get(s.runId):s;if(i?.updatedAt===void 0)throw new Error(`Workflow process is unavailable: ${s.runId}`);n.push({runId:s.runId,workflowName:s.workflow,status:s.status,totalSpawned:s.totalSpawned,eventCount:s.eventCount,runDir:s.runDir,...s.endedAt!==void 0?{endedAt:new Date(s.endedAt).toISOString()}:{},startedAt:new Date(s.startedAt).toISOString(),updatedAt:i.updatedAt,...i.displayName!==void 0?{displayName:i.displayName}:{},...s.resultText!==void 0?{resultSummary:s.resultText}:{},...s.error!==void 0?{error:s.error}:{}})}return n},"list"),get:o(e=>t.workflows.get(e),"get"),subscribe:o((e,n,s)=>{let i=t.workflows.subscribe(e,n,s);return{ready:i.ready??Promise.resolve(),close:o(()=>i.close(),"close")}},"subscribe"),pause:o(e=>t.workflows.pause(e),"pause"),resume:o(e=>t.workflows.resume(e),"resume"),stop:o((e,n)=>t.workflows.stop(e,n),"stop")},catalog:{inspectRepoIntelligence:o(async e=>{if(!t.catalog.inspectRepoIntelligence)throw Object.assign(new Error("Repository diagnostics require an upgraded Host."),{code:"daemon_upgrade_required"});return t.catalog.inspectRepoIntelligence(e)},"inspectRepoIntelligence"),prewarmRepoIntelligence:o(async e=>{if(!t.catalog.prewarmRepoIntelligence)throw Object.assign(new Error("Repository prewarm requires an upgraded Host."),{code:"daemon_upgrade_required"});return t.catalog.prewarmRepoIntelligence(e)},"prewarmRepoIntelligence"),extensions:o(async()=>{let e=await t.catalog.extensions(),n=o(({path:r,label:w,loadSource:h})=>({path:r,label:w,loadSource:h}),"loaded"),s=o(({kind:r,id:w,label:h})=>({kind:r,id:w,label:h}),"source"),i=e.diagnostics;return{active:e.active,extensions:e.extensions.map(n),diagnostics:i&&{loadedExtensions:i.loadedExtensions.map(n),capabilityProviders:i.capabilityProviders.map(({id:r,kinds:w,metadata:h})=>({id:r,kinds:w,metadata:h})),commands:i.commands.map(({name:r,aliases:w,description:h})=>({name:r,aliases:w,description:h})),tools:i.tools.map(r=>({name:r.name,source:s(r.source),shadowedSources:r.shadowedSources.map(s)})),hooks:i.hooks.map(r=>({hook:r.hook,order:r.order,source:s(r.source)})),failures:i.failures.map(r=>({stage:r.stage,target:r.target,message:r.message,source:s(r.source)})),defaults:{activeTools:i.defaults.activeTools,modelSelection:{...i.defaults.modelSelection},thinkingLevel:i.defaults.thinkingLevel}}}},"extensions"),providers:o(()=>t.catalog.providers(),"providers"),models:o(async e=>(await t.catalog.providers()).filter(n=>e?.provider===void 0||n.name===e.provider).map(n=>({provider:n.name,models:n.models})),"models"),reasoningEfforts:o(e=>t.catalog.reasoningEfforts(e),"reasoningEfforts"),probeReasoningEfforts:o(async e=>{let n=await c({kind:"provider_probe",input:e});return t.catalog.probeReasoningEfforts({provider:n.provider,model:n.model,efforts:n.efforts,...n.authorization?.credential?{credential:n.authorization.credential}:{}})},"probeReasoningEfforts"),forgetCapabilities:o(e=>t.catalog.forgetCapabilities(e),"forgetCapabilities"),commands:o(async e=>(await t.catalog.commands(e)).map(n=>({name:n.name,...n.aliases!==void 0?{aliases:n.aliases}:{},description:n.description,source:String(n.source),...n.userInvocable!==void 0?{userInvocable:n.userInvocable}:{}})),"commands"),skills:o(async e=>(await t.catalog.skills(e)).map(n=>({name:n.name,description:n.description,userInvocable:n.userInvocable,path:n.path,source:String(n.source)})),"skills")},disconnect:o(()=>t.close(),"disconnect")}}o(k,"toKodaXProductClient");async function se(t={},a){let p={name:"kodax-client",...t.clientInfo,instanceId:t.clientInfo?.instanceId??be(),instanceSecret:t.clientInfo?.instanceSecret??ye(32).toString("hex")},c=await T({...t,clientInfo:p});return Re(c,e=>T({...t,clientInfo:p,daemonStartupSignal:AbortSignal.any([e,...t.daemonStartupSignal?[t.daemonStartupSignal]:[]])}),a)}o(se,"ensureRecoveringKodaXRuntime");function q(t){let a=t&&typeof t=="object"&&"code"in t?t.code:void 0;return typeof a=="string"&&["protocol_closed","transport_error","ECONNREFUSED","ECONNRESET","ENOENT","ETIMEDOUT"].includes(a)}o(q,"transientConnectionFailure");function Re(t,a,p){let c=t,e=!1,n=!1,s=new AbortController,i,r,w=0,h,I=t.connection?.current(),z=new Set,S=new Set,K=new Map,P=new Set,x=new Set,B=o(l=>{I=l;for(let d of z)try{d(l)}catch(f){C("Connection observer failed.",f)}},"report"),C=o((l,d)=>X({source:"runtime.client-recovery",level:"warn",message:l,detail:d}),"diagnose"),M=o(()=>{if(e||n)return Promise.reject(new Error("Runtime client is closing."));if(i)return i;let l=c;h?.close();let d=(async()=>{await l.close();let f=0;for(;;){s.signal.throwIfAborted();try{if(c=await a(s.signal),e||n){await c.close(),s.signal.throwIfAborted();return}K.clear(),r=void 0;let m=w;F();for(let u of S)await u();if(w!==m)throw Object.assign(new Error("Host disconnected during subscription setup."),{code:"protocol_closed"});break}catch(m){if(!q(m))throw m;C("Host connection is unavailable; waiting to reconnect.",m),h?.close(),await c.close(),await ve(Math.min(3e4,1e3*2**Math.min(f++,5)),void 0,{signal:s.signal})}}for(let m of x)m()})();return i=d,d.then(()=>{i===d&&(i=void 0)},f=>{i===d&&(i=void 0),r=f,e||(C("Host reconnection could not complete.",f),I&&B({...I,state:"disconnected",reconnectable:!1,reason:String(f)}));for(let m of x)m()}),d},"reconnect"),F=o(()=>{let l=c;h=c.connection?.subscribe(d=>{l===c&&(B(d),!e&&!n&&d.state==="disconnected"&&d.reconnectable&&q(d)&&(w+=1,M().catch(()=>{})))})},"bindLifecycle"),G=o(async l=>{if(e||n||P.has(l)||c.identity.runtimeId===t.identity.runtimeId)return;let d=K.get(l);if(d)return d;let f=c,m=(async()=>{let u=await f.runs.get(l);e||P.has(l)||u.stop||u.phase!=="recovering"||!u.contextRecovery?.checkpoint||await k(f,p).runs.recover({sessionId:u.sessionId,runId:l})})();return K.set(l,m),m},"recoverRun"),ue=o(async l=>{for(;;){if(i&&await i,s.signal.throwIfAborted(),r)throw r;let d=c;try{await G(l);let f=await d.runs.await(l);if(f.phase!=="recovering")return f;d===c&&!i&&await new Promise((m,u)=>{let y=o(()=>{x.delete(y),s.signal.removeEventListener("abort",R),m()},"wake"),R=o(()=>{y(),u(s.signal.reason)},"abort");x.add(y),s.signal.addEventListener("abort",R,{once:!0})})}catch(f){if(!q(f))throw f;d===c&&await M()}}},"awaitRun"),pe=o(async(l,...d)=>(P.add(l),i&&await i,c.runs.abort(l,...d)),"abort"),fe=o(async l=>(P.add(l.expectedRunId),i&&await i,c.sessions.cancel(l)),"cancel"),me=o(async(l,d,f)=>{let m=!1,u=0,y,R=o(async()=>{if(m||e)return;let g=++u;y?.close();let H=c,W=await H.sessions.observeView(l,_=>{if(!(m||g!==u||H!==c)){d(_);for(let J of _.runs)J.phase==="recovering"&&G(J.runId).catch(V=>{C("Checkpoint continuation requires attention.",V),!m&&g===u&&f?.onStatus?.({state:"interrupted",message:String(V)})})}},{...f,onStatus:o(_=>{!m&&g===u&&H===c&&f?.onStatus?.(_)},"onStatus")});m||e||g!==u?W.close():y=W},"resume"),b=o(async()=>{try{await R()}catch(g){if(q(g))throw g;C("Session observation could not reconnect.",g),f?.onStatus?.({state:"closed",reason:"unavailable",message:String(g)})}},"reopen");return i&&await i,await R(),S.add(b),{close(){m||(m=!0,u+=1,S.delete(b),y?.close())}}},"observeView"),we=o((l,d)=>{let f,m=!1,u=o(()=>{f?.close();let R=c;f=R.events.subscribe(l,b=>{!m&&R===c&&d(b)})},"resume");u();let y=o(async()=>{m||u()},"reopen");return S.add(y),{close(){m||(m=!0,S.delete(y),f?.close())}}},"subscribeEvents"),ge=o(async()=>{e=!0,s.abort(new Error("Runtime client closed.")),h?.close();for(let l of x)l();await i?.catch(()=>{}),await c.close()},"close"),j=new Map,he=new Proxy(t,{get(l,d){if(d==="close")return ge;let f=Reflect.get(c,d);return!f||typeof f!="object"||["identity","capabilities","grantedScopes"].includes(String(d))?f:(j.has(d)||j.set(d,new Proxy({},{get(m,u){if(d==="runs"&&u==="await")return ue;if(d==="runs"&&u==="abort")return pe;if(d==="sessions"&&u==="cancel")return fe;if(d==="sessions"&&u==="observeView")return me;if(d==="events"&&u==="subscribe")return we;if(d==="daemon"&&u==="shutdown"||d==="lifecycle"&&u==="requestExit")return async(...b)=>{n=!0,i&&(s.abort(new Error("Client exited while Host was unavailable; exit could not be acknowledged.")),await i);let g=Reflect.get(c,d);return Reflect.apply(Reflect.get(g,u),g,b)};if(d==="connection"&&u==="current")return()=>I;if(d==="connection"&&u==="subscribe")return b=>(z.add(b),I&&b(I),{close:o(()=>{z.delete(b)},"close")});let y=Reflect.get(c,d),R=Reflect.get(y,u);return typeof R=="function"?(...b)=>{let g=Reflect.get(c,d);return Reflect.apply(Reflect.get(g,u),g,b)}:R}})),j.get(d))}});return F(),he}o(Re,"createRecoveringRuntimeClient");import Ce from"node:path";import{createHash as ae,randomUUID as Ne}from"node:crypto";import L from"node:fs";import ce from"node:path";function de(t,a){return`client_${ae("sha256").update(JSON.stringify([t,a])).digest("hex")}`}o(de,"runtimeClientPrincipal");var Ie=o(t=>ae("sha256").update(t).digest("hex"),"digest"),Se=o((t,a)=>ce.join(t.rootDir,"client-exits",Ie(a)),"directory");function N(t,a){let p=Se(t,a);return L.existsSync(p)?L.readdirSync(p).filter(c=>c.endsWith(".json")).map(c=>{let e=JSON.parse(L.readFileSync(ce.join(p,c),"utf8"));if(e.clientId!==a||e.accepted!==!0||!e.requestId||!e.host?.owner||!e.cleanup||!Array.isArray(e.cleanup.runIds))throw new Error("Invalid persisted client exit receipt.");return e}):[]}o(N,"readExitReceipts");async function le(t,a){let p=a.host.owner,c=Z(t.lockFile),e=te(p.pid,p.processStartIdentity),n=e?a:ie(a);if(a.runtimeId!==p.runtimeId)return v(n,"blocked","owner_identity_mismatch","inspect_failure");if(e)return a.cleanup.state==="failed"||a.host.cleanup==="failed"?v(n,"blocked","cleanup_failed","inspect_failure"):c===void 0||!re(c,p)?v(n,"blocked","daemon_active","retry_verification"):!a.host.requested&&a.cleanup.state==="succeeded"?v(n,"ready","client_cleanup_verified","start_or_connect"):a.host.state==="protected"?v(n,"blocked","host_protected","retry_exit"):a.cleanup.state!=="succeeded"?v(n,a.cleanup.state==="pending"?"pending":"blocked",a.cleanup.state==="pending"?"client_cleanup_pending":"client_cleanup_unknown","retry_exit"):v(n,"pending","daemon_active","retry_verification");let s=await ne({configHome:t.configHome,profile:t.profile,owner:p,timeoutMs:1,pollIntervalMs:1}),i=N(t,a.clientId).find(I=>I.requestId===a.requestId);if(i&&(i.runtimeId!==a.runtimeId||i.host.requested!==a.host.requested||!re(i.host.owner,p)))return v(n,"blocked","owner_identity_mismatch","inspect_failure");let r=i?ie(i):n;if(r.cleanup.state==="failed"||r.host.cleanup==="failed")return v(r,"blocked","cleanup_failed","inspect_failure");if(s.status==="succeeded"||s.status==="replacement_running")return!p.processStartIdentity||p.processContainment==="windows-job"&&!p.supervisorProcessStartIdentity?v(r,"blocked","owner_identity_unverified","inspect_failure"):v({...r,host:{...r.host,state:"succeeded",cleanup:"succeeded",...s.status==="replacement_running"?{replacementRunning:!0}:{}}},"ready","host_shutdown_verified","start_or_connect");if(s.status==="failed")return v({...r,host:{...r.host,state:"failed",cleanup:"failed",message:s.outcome.error}},"blocked","cleanup_failed","inspect_failure");let w=s.status==="unverified"?s.reason:"outcome_missing",h={...r,host:{...r.host,state:a.host.requested?"unknown":"not_requested",message:w}};return w==="outcome_missing"&&await xe(p)?v(h,"ready","host_generation_terminated","start_or_connect"):v({...r,host:{...r.host,state:a.host.requested?"unknown":"not_requested",message:w}},"blocked",w,w==="containment_unavailable"||w==="outcome_missing"?"inspect_failure":"retry_verification")}o(le,"verifyExitReceipt");async function xe(t){if(process.platform!=="win32"||t.kind!=="daemon"||!t.processStartIdentity||t.processContainment!=="windows-job"||!t.supervisorProcessStartIdentity||!Number.isSafeInteger(t.supervisorPid)||t.supervisorPid<=0||D(t)!=="gone"||D({pid:t.supervisorPid,processStartIdentity:t.supervisorProcessStartIdentity})!=="gone")return!1;let a=t.windowsBootIdentity===void 0?void 0:Y();return a!==void 0&&/^windows-boot-\d+$/.test(a)&&/^windows-boot-\d+$/.test(t.windowsBootIdentity)&&a!==t.windowsBootIdentity?!0:t.windowsJobName!==void 0&&await $(t.windowsJobName)===0}o(xe,"canRecoverTerminatedWindowsHost");function v(t,a,p,c){return{...t,recovery:{state:a,reason:p,nextAction:c,checkedAt:new Date().toISOString()}}}o(v,"withRecovery");function ie(t){return t.cleanup.state==="pending"?{...t,cleanup:{...t.cleanup,state:"unknown",issues:[...t.cleanup.issues,"Original Host stopped before client cleanup was confirmed."]}}:t}o(ie,"afterOwnerLoss");function re(t,a){return t.runtimeId===a.runtimeId&&t.pid===a.pid&&t.kind===a.kind&&t.processStartIdentity===a.processStartIdentity&&t.processContainment===a.processContainment&&t.supervisorPid===a.supervisorPid&&t.supervisorProcessStartIdentity===a.supervisorProcessStartIdentity&&t.windowsJobName===a.windowsJobName&&t.windowsBootIdentity===a.windowsBootIdentity}o(re,"sameExitOwner");async function rt(t){let{instanceId:a,instanceSecret:p}=t.clientInfo;if(!a||!/^[A-Za-z0-9_.:-]{4,160}$/.test(a)||!p||p.length<32||p.length>512)throw new Error("Exit recovery requires the original stable client identity and secret.");let c=U(t.homeDir===void 0?Q:Ce.resolve(t.homeDir,".kodax"),t.profile),e=[];for(let n of N(c,de(a,p)))e.push(await le(c,n));return e}o(rt,"readKodaXClientExits");async function at(t={}){return k(await se({...t,requirements:{productClient:1,productHistoryBoundaries:1,productExitControl:1,productExecutionFacts:1,productInputRecovery:1,...t.authorizeExecution?{productExecutionAuthorization:2,productActorAuthorization:1,providerProbeAuthorization:1}:{}}},t.authorizeExecution),t.authorizeExecution)}o(at,"ensureKodaXClient");async function ct(t={}){let a=await oe({homeDir:t.homeDir,profile:t.profile,endpoint:t.endpoint,daemonToken:t.token,autoStart:!1,onStartupProgress:t.onStartupProgress,clientInfo:t.clientInfo,requirements:{productClient:1,productHistoryBoundaries:1,productExitControl:1,productExecutionFacts:1,productInputRecovery:1,...t.authorizeExecution?{productExecutionAuthorization:2,productActorAuthorization:1,providerProbeAuthorization:1}:{}}});return k(a,t.authorizeExecution)}o(ct,"connectKodaXClient");export{k as a,rt as b,at as c,ct as d};
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{E as j,P as W,a as c,ia as G}from"./chunk-EISRVOBJ.js";import{l as x,n as O}from"./chunk-X5M7TLJV.js";import{a as o}from"./chunk-V4WSBIXB.js";import*as Q from"child_process";import*as v from"path";import*as R from"fs";import*as Z from"os";import h from"chalk";import f from"chalk";var ee=100,te=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,U=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,Y=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,K=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function $(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}o($,"readString");function d(e,t,n){n&&e.push({label:t,value:n})}o(d,"pushField");function ne(e){return e.replace(/\s+/g," ").trim()}o(ne,"normalizeWhitespace");function re(e,t){if(e.length<=t)return e;let n=Math.ceil((t-3)/2),r=Math.floor((t-3)/2);return`${e.slice(0,n)}...${e.slice(e.length-r)}`}o(re,"truncateMiddle");function oe(e){let t=e;return t=t.replace(/\b(authorization\s*:\s*bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b((?:authorization|cookie)\s*:\s*)([^'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(api[_-]?key|access[_-]?token|refresh[_-]?token|token|secret|password|passwd|cookie|session)\b(\s*[:=]\s*)(['"]?)([^'"\s]+)(\3)/gi,(n,r,s,i)=>`${r}${s}${i}[REDACTED]${i}`),t=t.replace(/(--(?:api-key|token|secret|password|cookie)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/((?:-u|--user)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t}o(oe,"maskSensitiveSegments");function B(e){return re(oe(ne(e)),ee)}o(B,"summarizeCommand");function se(e){return x(e)?c("intent.read"):U.test(e)?c("intent.delete"):Y.test(e)?c("intent.deps"):O(e)||K.test(e)?c("intent.modify"):c("intent.execute")}o(se,"classifyShellIntent");function ie(e){let t=[];return U.test(e)?t.push(c("risk.destructive")):Y.test(e)?t.push(c("risk.deps")):O(e)||K.test(e)?t.push(c("risk.modify")):x(e)||t.push(c("risk.unknown")),te.test(e)&&t.push(c("risk.network")),t}o(ie,"classifyShellRisks");function ce(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}o(ce,"readSignals");function ue(e){if(e){if(e.some(t=>t.kind==="protected_path"))return c("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return c("scope.outside")}}o(ue,"scopeFromSignals");function ae(e){if(e._outsideProject===!0)return c("scope.outside");if(e._alwaysConfirm===!0)return c("scope.protected")}o(ae,"scopeFromMarkers");function le(e){if(!e)return[];let t=[],n=e.some(s=>s.kind==="dangerous_pattern"&&s.severity==="high"),r=e.some(s=>s.kind==="dangerous_pattern"&&s.severity==="medium");return n?t.push(c("risk.destructive")):r&&t.push(c("risk.modify")),e.some(s=>s.kind==="network")&&t.push(c("risk.network")),e.some(s=>s.kind==="package_install")&&t.push(c("risk.deps")),t}o(le,"risksFromSignals");var de={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function fe(e){return c(de[e])}o(fe,"localizeFieldLabel");function C(e,t){return{title:e,fields:t,details:t.map(n=>`${fe(n.label)}: ${n.value}`)}}o(C,"buildDisplayFromFields");function A(e,t){if(e==="confirm"){let l=$(t._message);if(l)return C(l,[])}if(e==="exit_plan_mode"){let l=$(t.plan),y="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:y,fields:[],details:l.split(`
2
+ import{E as j,P as W,a as c,ia as G}from"./chunk-4Z7ZHL6V.js";import{l as x,n as O}from"./chunk-5LFQ5FVY.js";import{a as o}from"./chunk-V4WSBIXB.js";import*as Q from"child_process";import*as v from"path";import*as R from"fs";import*as Z from"os";import h from"chalk";import f from"chalk";var ee=100,te=/\b(curl|wget|invoke-webrequest|invoke-restmethod|iwr|irm)\b/i,U=/\b(rm|del|erase|remove-item|rmdir|rd|git clean)\b/i,Y=/\b(npm|pnpm|yarn|pip|choco|winget)\s+(install|add|remove|uninstall|update|upgrade|ci)\b/i,K=/\b(set-content|add-content|out-file|new-item|copy-item|move-item|rename-item|cp|mv|copy|move|ren|touch)\b/i;function $(e){return typeof e=="string"&&e.trim().length>0?e.trim():void 0}o($,"readString");function d(e,t,n){n&&e.push({label:t,value:n})}o(d,"pushField");function ne(e){return e.replace(/\s+/g," ").trim()}o(ne,"normalizeWhitespace");function re(e,t){if(e.length<=t)return e;let n=Math.ceil((t-3)/2),r=Math.floor((t-3)/2);return`${e.slice(0,n)}...${e.slice(e.length-r)}`}o(re,"truncateMiddle");function oe(e){let t=e;return t=t.replace(/\b(authorization\s*:\s*bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b((?:authorization|cookie)\s*:\s*)([^'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(bearer\s+)([^\s'"]+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/\b(api[_-]?key|access[_-]?token|refresh[_-]?token|token|secret|password|passwd|cookie|session)\b(\s*[:=]\s*)(['"]?)([^'"\s]+)(\3)/gi,(n,r,s,i)=>`${r}${s}${i}[REDACTED]${i}`),t=t.replace(/(--(?:api-key|token|secret|password|cookie)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t=t.replace(/((?:-u|--user)\s+)(\S+)/gi,(n,r)=>`${r}[REDACTED]`),t}o(oe,"maskSensitiveSegments");function B(e){return re(oe(ne(e)),ee)}o(B,"summarizeCommand");function se(e){return x(e)?c("intent.read"):U.test(e)?c("intent.delete"):Y.test(e)?c("intent.deps"):O(e)||K.test(e)?c("intent.modify"):c("intent.execute")}o(se,"classifyShellIntent");function ie(e){let t=[];return U.test(e)?t.push(c("risk.destructive")):Y.test(e)?t.push(c("risk.deps")):O(e)||K.test(e)?t.push(c("risk.modify")):x(e)||t.push(c("risk.unknown")),te.test(e)&&t.push(c("risk.network")),t}o(ie,"classifyShellRisks");function ce(e){if(Array.isArray(e))return e.filter(t=>typeof t=="object"&&t!==null&&typeof t.kind=="string")}o(ce,"readSignals");function ue(e){if(e){if(e.some(t=>t.kind==="protected_path"))return c("scope.protected");if(e.some(t=>t.kind==="outside_project"||t.kind==="shell_redirect_outside"))return c("scope.outside")}}o(ue,"scopeFromSignals");function ae(e){if(e._outsideProject===!0)return c("scope.outside");if(e._alwaysConfirm===!0)return c("scope.protected")}o(ae,"scopeFromMarkers");function le(e){if(!e)return[];let t=[],n=e.some(s=>s.kind==="dangerous_pattern"&&s.severity==="high"),r=e.some(s=>s.kind==="dangerous_pattern"&&s.severity==="medium");return n?t.push(c("risk.destructive")):r&&t.push(c("risk.modify")),e.some(s=>s.kind==="network")&&t.push(c("risk.network")),e.some(s=>s.kind==="package_install")&&t.push(c("risk.deps")),t}o(le,"risksFromSignals");var de={Reason:"field.reason",Intent:"field.intent",Target:"field.target",Scope:"field.scope",Risk:"field.risk",Summary:"field.summary"};function fe(e){return c(de[e])}o(fe,"localizeFieldLabel");function C(e,t){return{title:e,fields:t,details:t.map(n=>`${fe(n.label)}: ${n.value}`)}}o(C,"buildDisplayFromFields");function A(e,t){if(e==="confirm"){let l=$(t._message);if(l)return C(l,[])}if(e==="exit_plan_mode"){let l=$(t.plan),y="Approve plan? (exits plan mode \u2192 accept-edits)";return l?{title:y,fields:[],details:l.split(`
3
3
  `)}:C(y,[])}let n=[],r=$(t.path),s=$(t.command),i=$(t._reason)??$(t.justification),u=ce(t._classifierSignals),a=ue(u)??ae(t);switch(d(n,"Reason",i),e){case"bash":case"shell_command":{if(s){d(n,"Intent",se(s)),d(n,"Scope",a);let l=le(u),y=l.length>0?l:ie(s);y.length>0&&d(n,"Risk",y.join("; ")),d(n,"Summary",B(s))}else d(n,"Scope",a);return C(e==="bash"?c("tool.bash.title"):c("tool.shell.title"),n)}case"write":return d(n,"Intent",c("intent.write_file")),d(n,"Target",r),d(n,"Scope",a),C(c("tool.write.title"),n);case"edit":return d(n,"Intent",c("intent.edit_file")),d(n,"Target",r),d(n,"Scope",a),C(c("tool.edit.title"),n);default:return d(n,"Intent",c("intent.use_tool",{tool:e})),d(n,"Target",r),d(n,"Scope",a),s&&d(n,"Summary",B(s)),C(c("tool.generic.title",{tool:e}),n)}}o(A,"buildToolConfirmationDisplay");function Pe(e,t){let n=A(e,t);return n.details.length>0?`${n.title}
4
4
  ${n.details.join(`
5
5
  `)}`:n.title}o(Pe,"buildToolConfirmationPrompt");var z="Runtime state: run active until this approval is resolved.";function Fe(e,t){if(!t.confirmed)return{type:"reject",reason:"User rejected the tool call."};if(t.runtimeGrantKind===void 0)return{type:"allow_once"};let n=e.grantSuggestions?.find(r=>r.kind===t.runtimeGrantKind);return n?t.runtimeGrantKind==="session"?{type:"allow_session",suggestionId:n.id}:{type:"allow_always",suggestionId:n.id}:{type:"reject",reason:"Runtime grant suggestion expired."}}o(Fe,"resolveReplRuntimePermissionDecision");function Le(e){let t=e.classifierModelEnv??e.classifierModel;return{...t!==void 0?{classifierModel:t}:{},...e.reviewPolicy!==void 0?{reviewPolicy:e.reviewPolicy}:{}}}o(Le,"toReplRuntimeAutoModeSettings");import*as H from"child_process";var E;function pe(){if(process.platform!=="win32")return null;if(E!==void 0)return E;try{E=H.execFileSync(process.env.ComSpec??"cmd.exe",["/d","/s","/c","chcp"],{encoding:"utf8",stdio:["ignore","pipe","ignore"],windowsHide:!0}).match(/(\d{3,5})/)?.[1]??null}catch{E=null}return E}o(pe,"detectWindowsCodePage");function P(){let e=process.env;return!!(e.COLORTERM==="truecolor"||e.COLORTERM==="24bit"||e.TERM_PROGRAM==="iTerm.app"||e.WT_SESSION||e.TERM==="xterm-kitty"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="gnome-terminal")}o(P,"supportsTrueColor");function me(){if(P())return!0;let e=process.env.TERM||"";return e.includes("256color")||e==="xterm-256color"||e==="screen-256color"||e==="tmux-256color"}o(me,"supports256Colors");function w(){let e=process.env,t=e.LC_ALL||"",n=e.LC_CTYPE||"",r=e.LANG||"";if(t==="C"||t==="POSIX"||n==="C"||n==="POSIX"||r==="C"||r==="POSIX")return!1;let s=`${t}|${n}|${r}`.toLowerCase();return s.includes("utf-8")||s.includes("utf8")?!0:process.platform==="win32"?e.WT_SESSION||e.TERM_PROGRAM==="vscode"?!0:pe()==="65001":!0}o(w,"supportsUnicode");function he(){let e=process.env;return!!(e.TERM_PROGRAM==="iTerm.app"||e.WT_SESSION||e.TERM==="xterm-kitty"||e.TERM_PROGRAM==="vscode"||e.TERM_PROGRAM==="Apple_Terminal"||e.TERM_PROGRAM==="gnome-terminal"||e.COLORTERM)}o(he,"supportsEmoji");function ye(){if(process.stdout?.columns)return process.stdout.columns;let t=process.env.COLUMNS;if(t){let n=Number.parseInt(t,10);if(!Number.isNaN(n)&&n>0)return n}return 80}o(ye,"getTerminalWidth");function ge(){let e=process.env;return!!(e.NO_COLOR||e.TERM==="dumb"||e.CI)}o(ge,"isScreenReader");function we(){return process.stdout?.isTTY??!1}o(we,"isTTY");function We(){return{trueColor:P(),colors256:me(),unicode:w(),emoji:he(),tty:we(),columns:ye(),screenReader:ge()}}o(We,"detectTerminalCapabilities");var ke=[{key:"y",label:"Yes",description:"Confirm the action",value:"yes"},{key:"n",label:"No",description:"Cancel the action",value:"no"}],be=[{key:"y",label:"Yes",description:"Allow this once",value:"yes"},{key:"n",label:"No",description:"Cancel",value:"no"},{key:"a",label:"Always",description:"Always allow this kind of action",value:"always"}];function Te(e,t=!0){return e.map(n=>{let r=f.dim(`[${n.key}]`);return t?`${r} ${f.cyan(n.label)} ${f.dim(`- ${n.description}`)}`:`${r} ${n.label}`}).join(" ")}o(Te,"formatOptions");function N(){return process.stdout.columns??80}o(N,"getTerminalWidth");function $e(){return w()}o($e,"supportsUnicode");function Ce(){let e=$e();return{success:e?"\u2713":"[OK]",error:e?"\u2717":"[X]",warning:e?"\u26A0":"[!]",info:e?"\u2139":"[i]",arrow:e?"\u2192":"->",bullet:e?"\u2022":"*",check:e?"\u2713":"[v]",cross:e?"\u2717":"[x]"}}o(Ce,"getSymbols");async function Se(e,t){let{message:n,default:r,options:s,showDescription:i=!0,signal:u}=t,a=s??ke,l=Te(a,i);console.log(),console.log(f.cyan(`? ${n}`));let y=N();if(l.length>y-4)for(let p of a){let g=f.dim(` [${p.key}]`);console.log(`${g} ${f.cyan(p.label)}`),i&&console.log(f.dim(` ${p.description}`))}else console.log(f.dim(` ${l}`));return u?.aborted?"no":new Promise(p=>{let g=r?` (${r})`:"",_=!1,k=o(m=>{_||(_=!0,u?.removeEventListener("abort",b),p(m))},"finish"),b=o(()=>k("no"),"onAbort"),T=o(m=>{let S=m.trim().toLowerCase()||r||"",D=a.find(M=>M.key===S||M.value===S||M.label.toLowerCase()===S);k(D?D.value:S===""?"no":S)},"onAnswer");u?.addEventListener("abort",b,{once:!0}),u?e.question(f.dim(` Choose${g}: `),{signal:u},T):e.question(f.dim(` Choose${g}: `),T)})}o(Se,"confirmEnhanced");async function He(e,t,n,r){let{isOutsideProject:s=!1,isProtectedPath:i=!1,permissionMode:u="accept-edits",runtimeGrantSuggestions:a,signal:l}=r??{},y=Ce(),p,g,_={...n,...s?{_outsideProject:!0}:{},...i?{_alwaysConfirm:!0}:{}},k=A(t,_),b=k.details.map(m=>` ${f.dim(m)}`);s||i?(p=`${f.yellow(y.warning)} Safety Warning`,b.length>0&&(p+=`