@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,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{b as E}from"./chunk-J2L2NK6E.js";import{a}from"./chunk-V4WSBIXB.js";import{spawnSync as j}from"node:child_process";import{createHash as N}from"node:crypto";import c from"node:fs";import G from"node:os";import o from"node:path";import{fileURLToPath as R}from"node:url";var Q={provision:"1dc640daef701ff7648e4980ae640a28b2776b73a4793e5423304c729cc86016",control:"a3d7af9f9308494634b3b19ce263cc7ec0901b034691c94883567ca44a5e567b",asrtBroker:"b0ef25b6284fc6a7fcc57a6fea215e48e2554b6ba8e07c058f7d544224fe4d18"},D=new Map;function b(t){let e=D.get(t);if(e!==void 0)return e;let n=o.dirname(R(import.meta.url)),r=process.env.KODAX_BUNDLED==="true"?[o.join(o.dirname(process.execPath),"windows-native-scripts.json")]:[o.join(n,"windows-native-scripts.json"),o.join(n,"..","windows-native-scripts.json")],s=JSON.parse(c.readFileSync(r.find(d=>c.existsSync(d))??r[0],"utf8"))[t];if(typeof s!="string"||N("sha256").update(s,"utf8").digest("hex")!==Q[t])throw new Error("Packaged runtime program is missing or does not match the audited program.");return D.set(t,s),s}a(b,"nativeScript");var Et=b,Z=64*1024*1024,tt="v2";function T(){{let t=JSON.parse('{"darwin-arm64":"{\\n \\"version\\": 1,\\n \\"platform\\": \\"darwin\\",\\n \\"arch\\": \\"arm64\\",\\n \\"textTransaction\\": {\\n \\"file\\": \\"kodax-text-transaction.node\\",\\n \\"protocol\\": 5,\\n \\"sha256\\": \\"83c68d7f6ddd3674054a05566e5024ef9521588887e1d63e8dff472abe11059e\\"\\n },\\n \\"legal\\": [\\n {\\n \\"file\\": \\"LICENSE-APACHE.txt\\",\\n \\"sha256\\": \\"6bdadfab6d5d2b0d4e0ccea244f5e412d1597dc84c56db645556ce192b131e98\\"\\n }\\n ]\\n}\\n","darwin-x64":"{\\n \\"version\\": 1,\\n \\"platform\\": \\"darwin\\",\\n \\"arch\\": \\"x64\\",\\n \\"textTransaction\\": {\\n \\"file\\": \\"kodax-text-transaction.node\\",\\n \\"protocol\\": 5,\\n \\"sha256\\": \\"7c8ab6d7b687cc0a2ff3dd453921eb449f12b8481e1815793bbbccfd39911385\\"\\n },\\n \\"legal\\": [\\n {\\n \\"file\\": \\"LICENSE-APACHE.txt\\",\\n \\"sha256\\": \\"6bdadfab6d5d2b0d4e0ccea244f5e412d1597dc84c56db645556ce192b131e98\\"\\n }\\n ]\\n}\\n","linux-arm64":"{\\n \\"version\\": 1,\\n \\"platform\\": \\"linux\\",\\n \\"arch\\": \\"arm64\\",\\n \\"textTransaction\\": {\\n \\"file\\": \\"kodax-text-transaction.node\\",\\n \\"protocol\\": 5,\\n \\"sha256\\": \\"3f788f0fb2bd627c758fcfe5b171cfed20da8102fa31d56e41b3047e855c016e\\"\\n },\\n \\"legal\\": [\\n {\\n \\"file\\": \\"LICENSE-APACHE.txt\\",\\n \\"sha256\\": \\"6bdadfab6d5d2b0d4e0ccea244f5e412d1597dc84c56db645556ce192b131e98\\"\\n }\\n ]\\n}\\n","linux-x64":"{\\n \\"version\\": 1,\\n \\"platform\\": \\"linux\\",\\n \\"arch\\": \\"x64\\",\\n \\"textTransaction\\": {\\n \\"file\\": \\"kodax-text-transaction.node\\",\\n \\"protocol\\": 5,\\n \\"sha256\\": \\"a667ba689ef9b95118236496e60612ee4407dae02a67fdef30e6456ee4592a6a\\"\\n },\\n \\"legal\\": [\\n {\\n \\"file\\": \\"LICENSE-APACHE.txt\\",\\n \\"sha256\\": \\"6bdadfab6d5d2b0d4e0ccea244f5e412d1597dc84c56db645556ce192b131e98\\"\\n }\\n ]\\n}\\n","win32-x64":"{\\n \\"version\\": 1,\\n \\"platform\\": \\"win32\\",\\n \\"arch\\": \\"x64\\",\\n \\"textTransaction\\": {\\n \\"file\\": \\"kodax-windows-text-transaction.node\\",\\n \\"protocol\\": 5,\\n \\"sha256\\": \\"ed6ada1550519c82ee2f1536b628ffb9bc5567ce4b887cd4503b5fc2f9529ed9\\"\\n },\\n \\"legal\\": [\\n {\\n \\"file\\": \\"LICENSE-APACHE.txt\\",\\n \\"sha256\\": \\"f8dd90eb71a7af4048bde3ff1d18b7d7280522e0a429ff71b7270a4189cf3568\\"\\n },\\n {\\n \\"file\\": \\"NOTICE-windows-sandbox.txt\\",\\n \\"sha256\\": \\"78723eb162f0782c5e27928f46c681996edc1907d552eba9d0f7f53e014c20c9\\"\\n }\\n ],\\n \\"shellSandbox\\": {\\n \\"file\\": \\"kodax-windows-sandbox.exe\\",\\n \\"protocol\\": 10,\\n \\"sha256\\": \\"69f4553420ecc2936e7f2fac429e85898ff4373ec265ddfb2863b09f8a913ebb\\"\\n },\\n \\"asrtRunner\\": {\\n \\"file\\": \\"srt-win.exe\\",\\n \\"version\\": \\"0.0.65\\",\\n \\"sha256\\": \\"777736e17d6cf9b4280f155f5cda731fdff0f789fa16e6cb3adc0006073e241a\\"\\n }\\n}\\n"}');if(t===null||typeof t!="object"||Array.isArray(t))throw new Error("embedded native manifest map is invalid");let e=t[`${process.platform}-${process.arch}`];if(typeof e!="string"||e==="")throw new Error(`embedded native manifest is missing for ${process.platform}-${process.arch}`);return e}return process.platform==="win32",`{
2
+ import{b as E}from"./chunk-OMVAPRQI.js";import{a}from"./chunk-V4WSBIXB.js";import{spawnSync as j}from"node:child_process";import{createHash as N}from"node:crypto";import c from"node:fs";import G from"node:os";import o from"node:path";import{fileURLToPath as R}from"node:url";var Q={provision:"1dc640daef701ff7648e4980ae640a28b2776b73a4793e5423304c729cc86016",control:"a3d7af9f9308494634b3b19ce263cc7ec0901b034691c94883567ca44a5e567b",asrtBroker:"b0ef25b6284fc6a7fcc57a6fea215e48e2554b6ba8e07c058f7d544224fe4d18"},D=new Map;function b(t){let e=D.get(t);if(e!==void 0)return e;let n=o.dirname(R(import.meta.url)),r=process.env.KODAX_BUNDLED==="true"?[o.join(o.dirname(process.execPath),"windows-native-scripts.json")]:[o.join(n,"windows-native-scripts.json"),o.join(n,"..","windows-native-scripts.json")],s=JSON.parse(c.readFileSync(r.find(d=>c.existsSync(d))??r[0],"utf8"))[t];if(typeof s!="string"||N("sha256").update(s,"utf8").digest("hex")!==Q[t])throw new Error("Packaged runtime program is missing or does not match the audited program.");return D.set(t,s),s}a(b,"nativeScript");var Et=b,Z=64*1024*1024,tt="v2";function T(){{let t=JSON.parse('{"darwin-arm64":"{\\n \\"version\\": 1,\\n \\"platform\\": \\"darwin\\",\\n \\"arch\\": \\"arm64\\",\\n \\"textTransaction\\": {\\n \\"file\\": \\"kodax-text-transaction.node\\",\\n \\"protocol\\": 5,\\n \\"sha256\\": \\"83c68d7f6ddd3674054a05566e5024ef9521588887e1d63e8dff472abe11059e\\"\\n },\\n \\"legal\\": [\\n {\\n \\"file\\": \\"LICENSE-APACHE.txt\\",\\n \\"sha256\\": \\"6bdadfab6d5d2b0d4e0ccea244f5e412d1597dc84c56db645556ce192b131e98\\"\\n }\\n ]\\n}\\n","darwin-x64":"{\\n \\"version\\": 1,\\n \\"platform\\": \\"darwin\\",\\n \\"arch\\": \\"x64\\",\\n \\"textTransaction\\": {\\n \\"file\\": \\"kodax-text-transaction.node\\",\\n \\"protocol\\": 5,\\n \\"sha256\\": \\"7c8ab6d7b687cc0a2ff3dd453921eb449f12b8481e1815793bbbccfd39911385\\"\\n },\\n \\"legal\\": [\\n {\\n \\"file\\": \\"LICENSE-APACHE.txt\\",\\n \\"sha256\\": \\"6bdadfab6d5d2b0d4e0ccea244f5e412d1597dc84c56db645556ce192b131e98\\"\\n }\\n ]\\n}\\n","linux-arm64":"{\\n \\"version\\": 1,\\n \\"platform\\": \\"linux\\",\\n \\"arch\\": \\"arm64\\",\\n \\"textTransaction\\": {\\n \\"file\\": \\"kodax-text-transaction.node\\",\\n \\"protocol\\": 5,\\n \\"sha256\\": \\"3f788f0fb2bd627c758fcfe5b171cfed20da8102fa31d56e41b3047e855c016e\\"\\n },\\n \\"legal\\": [\\n {\\n \\"file\\": \\"LICENSE-APACHE.txt\\",\\n \\"sha256\\": \\"6bdadfab6d5d2b0d4e0ccea244f5e412d1597dc84c56db645556ce192b131e98\\"\\n }\\n ]\\n}\\n","linux-x64":"{\\n \\"version\\": 1,\\n \\"platform\\": \\"linux\\",\\n \\"arch\\": \\"x64\\",\\n \\"textTransaction\\": {\\n \\"file\\": \\"kodax-text-transaction.node\\",\\n \\"protocol\\": 5,\\n \\"sha256\\": \\"a667ba689ef9b95118236496e60612ee4407dae02a67fdef30e6456ee4592a6a\\"\\n },\\n \\"legal\\": [\\n {\\n \\"file\\": \\"LICENSE-APACHE.txt\\",\\n \\"sha256\\": \\"6bdadfab6d5d2b0d4e0ccea244f5e412d1597dc84c56db645556ce192b131e98\\"\\n }\\n ]\\n}\\n","win32-x64":"{\\n \\"version\\": 1,\\n \\"platform\\": \\"win32\\",\\n \\"arch\\": \\"x64\\",\\n \\"textTransaction\\": {\\n \\"file\\": \\"kodax-windows-text-transaction.node\\",\\n \\"protocol\\": 5,\\n \\"sha256\\": \\"fdfe70320a832265a4ba5ab8f3d931d084e5a591ae3807562d5accfa46a49079\\"\\n },\\n \\"legal\\": [\\n {\\n \\"file\\": \\"LICENSE-APACHE.txt\\",\\n \\"sha256\\": \\"f8dd90eb71a7af4048bde3ff1d18b7d7280522e0a429ff71b7270a4189cf3568\\"\\n },\\n {\\n \\"file\\": \\"NOTICE-windows-sandbox.txt\\",\\n \\"sha256\\": \\"78723eb162f0782c5e27928f46c681996edc1907d552eba9d0f7f53e014c20c9\\"\\n }\\n ],\\n \\"shellSandbox\\": {\\n \\"file\\": \\"kodax-windows-sandbox.exe\\",\\n \\"protocol\\": 10,\\n \\"sha256\\": \\"88718ce6cee55226660ea4f2a956cd2798dac116a20628f12e66005cad17f72b\\"\\n },\\n \\"asrtRunner\\": {\\n \\"file\\": \\"srt-win.exe\\",\\n \\"version\\": \\"0.0.65\\",\\n \\"sha256\\": \\"777736e17d6cf9b4280f155f5cda731fdff0f789fa16e6cb3adc0006073e241a\\"\\n }\\n}\\n"}');if(t===null||typeof t!="object"||Array.isArray(t))throw new Error("embedded native manifest map is invalid");let e=t[`${process.platform}-${process.arch}`];if(typeof e!="string"||e==="")throw new Error(`embedded native manifest is missing for ${process.platform}-${process.arch}`);return e}return process.platform==="win32",`{
3
3
  "version": 1,
4
4
  "platform": "linux",
5
5
  "arch": "x64",
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{a as L,b as ne,o as de,r as X,s as ue,t as le}from"./chunk-XDMNJW6J.js";import{$b as ie,_b as ae,cc as se,dc as ce}from"./chunk-OGTRDK4Q.js";import{h as J,j as oe}from"./chunk-J2L2NK6E.js";import{a as s}from"./chunk-V4WSBIXB.js";import{execFile as Pe}from"node:child_process";import V from"node:path";import{promisify as Re}from"node:util";var be=Re(Pe),xe=1e4,ke=2,fe=new Set(["write","edit","multi_edit","insert_after_anchor"]),me=new Set(["read"]);function Ce(e,t){if(t.includes("*"))return e;if(e.includes("*"))return t;let r=new Set(t);return e.filter(c=>r.has(c))}s(Ce,"intersectWorkflowToolCeilings");var Se=/^\s*(?:let me|i will|i'll|i am going to)\b[\s\S]{0,120}\b(?:start|create|implement|write|build|plan)\b|^\s*(?:我将|让我|接下来)[\s\S]{0,80}(?:开始|创建|编写|实现|制定)/i;async function ot(e,t,r){let c=e.turn.checkpoint;if(!c||typeof c!="object"||Array.isArray(c)||!("workflow"in c))throw new Error("Workflow generation recovery instructions are missing.");let i=c.workflow;if(!i||i.customExecutor||!i.bundle||!i.input||!i.childOptions||!i.changedPathBaseline||!i.mutation)throw new Error("Workflow generation recovery requires its original executor binding.");let h=De({ctx:t,recovery:{execution:e,snapshot:i},runId:i.runId,childOptions:{...i.childOptions,historyStorage:r.session?.storage,guardrails:t.guardrails,planModeBlockCheck:t.planModeBlockCheck,parentOptions:{...r,extensionRuntime:t.extensionRuntime,events:t.parentEvents}}}),b=await h.spawn(i.input),x=await h.wait(b.taskId);if(x.status!=="completed"&&x.status!=="completed_unverified")throw new Error(x.finalText);return{output:x.finalText,structured:X(JSON.parse(JSON.stringify({workflowRunId:i.runId,taskId:b.taskId,actorPath:e.actor.path,turnId:e.turn.turnId,result:x}))),artifacts:x.artifacts}}s(ot,"resumeWorkflowGenerationTurn");function Ie(e){if(e?.timeoutMs!==void 0){if(!Number.isFinite(e.timeoutMs)||e.timeoutMs<=0)throw new Error("workflow wait timeoutMs must be a positive number");return Math.floor(e.timeoutMs)}}s(Ie,"normalizeWaitTimeoutMs");function Z(e){return e?.requiresMutation===!0||(e?.requiredChangedPaths?.length??0)>0}s(Z,"hasVerificationWork");function q(e){return e.replace(/\\/g,"/").replace(/^\.\//,"").trim()}s(q,"normalizeWorkspacePath");function Y(e,t){let r=t.gitRoot?V.resolve(t.gitRoot):void 0,c=V.isAbsolute(e)&&r?V.relative(r,V.resolve(e)):e;return q(c)}s(Y,"normalizeRequiredPath");function Fe(e){let t=(e.readOnly??!1)===!1?{enforcement:"warn",requiresMutation:!0,rejectPreparatoryFinalText:!0}:void 0;if(e.verification!==void 0){let r={...t??{},...e.verification,enforcement:e.verification.enforcement??"hard"},c=e.verification.requiredChangedPaths;return{verification:{...r,...c!==void 0&&c.length>0&&r.requiresMutation===void 0?{requiresMutation:!0}:{}}}}return{verification:t}}s(Fe,"resolveVerificationForInput");function Ee(e,t){if(t===!0&&e.readOnly===!1)throw new Error(`workflow manifest readOnly=true cannot spawn write-capable child "${e.name}"; set the workflow manifest readOnly=false or use child readOnly:true`);let r=e.readOnly??t??!1;return e.readOnly===r?e:{...e,readOnly:r}}s(Ee,"resolveSpawnAgentInput");function ye(e){let t=e.trim();return t.length>0&&Se.test(t)}s(ye,"isPreparatoryOnlyText");function Ae(e,t){let r=e.trim(),c=t?.trim();return c&&(r.length===0||ye(r))?c:e}s(Ae,"selectWorkflowFinalText");async function G(e,t){return await oe({cwd:t}),(await be("git",[...e],{cwd:t,timeout:xe,windowsHide:!0,maxBuffer:4*1024*1024})).stdout.toString()}s(G,"runGit");async function Me(e){let t=e.gitRoot??e.executionCwd??process.cwd(),r=(await G(["rev-parse","--show-toplevel"],t)).trim(),c=await Promise.all([G(["diff","--name-only","--"],r),G(["diff","--cached","--name-only","--"],r),G(["ls-files","--others","--exclude-standard"],r)]);return[...new Set(c.flatMap(i=>i.split(/\r?\n/)).map(q).filter(i=>i.length>0))]}s(Me,"listGitChangedFiles");async function Q(e,t){try{return{paths:(await t(e)).map(q).filter(c=>c.length>0)}}catch(r){return{paths:[],error:r instanceof Error?r.message:String(r)}}}s(Q,"captureChangedPaths");function Oe(){return{toolNameById:new Map,toolPathById:new Map,succeededToolCalls:[],succeededPaths:[],readPathById:new Map,succeededReadPaths:[]}}s(Oe,"createMutationRecorder");function he(e){if(e)for(let t of["path","file_path","target_path"]){let r=e[t];if(typeof r=="string"&&r.trim().length>0)return q(r)}}s(he,"readMutationPath");function Ue(e,t){return{...e??{},onToolUseStart:s((r,c)=>{if(fe.has(r.name)){t.toolNameById.set(r.id,r.name);let i=he(r.input);i!==void 0&&t.toolPathById.set(r.id,i)}if(me.has(r.name)){let i=he(r.input);i!==void 0&&t.readPathById.set(r.id,i)}e?.onToolUseStart?.(r,c)},"onToolUseStart"),onToolResult:s((r,c)=>{let i=t.toolNameById.get(r.id)??r.name;if(fe.has(i)&&!r.content.trimStart().startsWith("[Tool Error]")){t.succeededToolCalls.push(i);let h=t.toolPathById.get(r.id);h!==void 0&&t.succeededPaths.push(h)}if(me.has(i)&&!r.content.trimStart().startsWith("[Tool Error]")){let h=t.readPathById.get(r.id);h!==void 0&&t.succeededReadPaths.push(h)}e?.onToolResult?.(r,c)},"onToolResult")}}s(Ue,"wrapEventsForMutationRecording");function K(e){return[...new Set(e.filter(t=>t.trim().length>0))]}s(K,"uniqueItems");function pe(e){let t=e.verification;if(!t)return;let r=[],c=new Set(e.before.paths.map(q)),i=K(e.after.paths.map(q)),h=i.filter(y=>!c.has(y)),b=K(e.mutationRecorder.succeededToolCalls),x=e.acceptToolMutationEvidence?b:[],N=e.acceptToolMutationEvidence?K(e.mutationRecorder.succeededPaths.map(q)):[],M=h.length>0||x.length>0,S=t.enforcement??"hard",W=(t.requiredChangedPaths??[]).map(y=>Y(y,e.ctx)),_=K(e.mutationRecorder.succeededReadPaths.map(y=>Y(y,e.ctx))),z=(t.requiredReadPaths??[]).map(y=>Y(y,e.ctx));t.requiresMutation===!0&&(e.before.error!==void 0||e.after.error!==void 0?r.push(`workspace mutation verification could not read changed files: ${e.after.error??e.before.error}`):M||r.push(e.acceptToolMutationEvidence||b.length===0?"expected file mutations, but no new workspace changes or successful write tools were observed":"write tools ran in an isolated worktree, but no main workspace changes were present after cleanup")),e.term.limitReached===!0&&!M&&r.push("workflow child reached its iteration limit before satisfying the task");for(let y of W)!i.includes(y)&&!N.includes(y)&&r.push(`required changed path was not present in workspace changes: ${y}`);for(let y of z)_.includes(y)||r.push(`required review evidence was not read: ${y}`);let B=t.minFinalTextChars;return B!==void 0&&!M&&e.term.finalText.trim().length<B&&r.push(`finalText was shorter than the required ${B} characters`),t.rejectPreparatoryFinalText===!0&&!M&&ye(e.term.finalText)&&r.push("finalText looks preparatory instead of terminal"),{ok:r.length===0,enforcement:S,reasons:r,changedPaths:i,mutationToolCalls:b,mutationEvidence:M,..._.length>0?{readPaths:_}:{}}}s(pe,"evaluateVerification");function ee(e,t){if(t.ok)return e;let c=[t.enforcement==="warn"?"[Workflow task completed without verification]":"[Workflow task verification failed]",...t.reasons.map(i=>`- ${i}`)].join(`
2
+ import{a as L,b as ne,p as de,s as X,t as ue,u as le}from"./chunk-OXCB2TRF.js";import{$b as ae,ac as ie,dc as se,ec as ce}from"./chunk-HJLYZ5AX.js";import{h as J,j as oe}from"./chunk-OMVAPRQI.js";import{a as s}from"./chunk-V4WSBIXB.js";import{execFile as Pe}from"node:child_process";import V from"node:path";import{promisify as Re}from"node:util";var be=Re(Pe),xe=1e4,ke=2,fe=new Set(["write","edit","multi_edit","insert_after_anchor"]),me=new Set(["read"]);function Ce(e,t){if(t.includes("*"))return e;if(e.includes("*"))return t;let r=new Set(t);return e.filter(c=>r.has(c))}s(Ce,"intersectWorkflowToolCeilings");var Se=/^\s*(?:let me|i will|i'll|i am going to)\b[\s\S]{0,120}\b(?:start|create|implement|write|build|plan)\b|^\s*(?:我将|让我|接下来)[\s\S]{0,80}(?:开始|创建|编写|实现|制定)/i;async function ot(e,t,r){let c=e.turn.checkpoint;if(!c||typeof c!="object"||Array.isArray(c)||!("workflow"in c))throw new Error("Workflow generation recovery instructions are missing.");let i=c.workflow;if(!i||i.customExecutor||!i.bundle||!i.input||!i.childOptions||!i.changedPathBaseline||!i.mutation)throw new Error("Workflow generation recovery requires its original executor binding.");let h=De({ctx:t,recovery:{execution:e,snapshot:i},runId:i.runId,childOptions:{...i.childOptions,historyStorage:r.session?.storage,guardrails:t.guardrails,planModeBlockCheck:t.planModeBlockCheck,parentOptions:{...r,extensionRuntime:t.extensionRuntime,events:t.parentEvents}}}),b=await h.spawn(i.input),x=await h.wait(b.taskId);if(x.status!=="completed"&&x.status!=="completed_unverified")throw new Error(x.finalText);return{output:x.finalText,structured:X(JSON.parse(JSON.stringify({workflowRunId:i.runId,taskId:b.taskId,actorPath:e.actor.path,turnId:e.turn.turnId,result:x}))),artifacts:x.artifacts}}s(ot,"resumeWorkflowGenerationTurn");function Ie(e){if(e?.timeoutMs!==void 0){if(!Number.isFinite(e.timeoutMs)||e.timeoutMs<=0)throw new Error("workflow wait timeoutMs must be a positive number");return Math.floor(e.timeoutMs)}}s(Ie,"normalizeWaitTimeoutMs");function Z(e){return e?.requiresMutation===!0||(e?.requiredChangedPaths?.length??0)>0}s(Z,"hasVerificationWork");function q(e){return e.replace(/\\/g,"/").replace(/^\.\//,"").trim()}s(q,"normalizeWorkspacePath");function Y(e,t){let r=t.gitRoot?V.resolve(t.gitRoot):void 0,c=V.isAbsolute(e)&&r?V.relative(r,V.resolve(e)):e;return q(c)}s(Y,"normalizeRequiredPath");function Fe(e){let t=(e.readOnly??!1)===!1?{enforcement:"warn",requiresMutation:!0,rejectPreparatoryFinalText:!0}:void 0;if(e.verification!==void 0){let r={...t??{},...e.verification,enforcement:e.verification.enforcement??"hard"},c=e.verification.requiredChangedPaths;return{verification:{...r,...c!==void 0&&c.length>0&&r.requiresMutation===void 0?{requiresMutation:!0}:{}}}}return{verification:t}}s(Fe,"resolveVerificationForInput");function Ee(e,t){if(t===!0&&e.readOnly===!1)throw new Error(`workflow manifest readOnly=true cannot spawn write-capable child "${e.name}"; set the workflow manifest readOnly=false or use child readOnly:true`);let r=e.readOnly??t??!1;return e.readOnly===r?e:{...e,readOnly:r}}s(Ee,"resolveSpawnAgentInput");function ye(e){let t=e.trim();return t.length>0&&Se.test(t)}s(ye,"isPreparatoryOnlyText");function Ae(e,t){let r=e.trim(),c=t?.trim();return c&&(r.length===0||ye(r))?c:e}s(Ae,"selectWorkflowFinalText");async function G(e,t){return await oe({cwd:t}),(await be("git",[...e],{cwd:t,timeout:xe,windowsHide:!0,maxBuffer:4*1024*1024})).stdout.toString()}s(G,"runGit");async function Me(e){let t=e.gitRoot??e.executionCwd??process.cwd(),r=(await G(["rev-parse","--show-toplevel"],t)).trim(),c=await Promise.all([G(["diff","--name-only","--"],r),G(["diff","--cached","--name-only","--"],r),G(["ls-files","--others","--exclude-standard"],r)]);return[...new Set(c.flatMap(i=>i.split(/\r?\n/)).map(q).filter(i=>i.length>0))]}s(Me,"listGitChangedFiles");async function Q(e,t){try{return{paths:(await t(e)).map(q).filter(c=>c.length>0)}}catch(r){return{paths:[],error:r instanceof Error?r.message:String(r)}}}s(Q,"captureChangedPaths");function Oe(){return{toolNameById:new Map,toolPathById:new Map,succeededToolCalls:[],succeededPaths:[],readPathById:new Map,succeededReadPaths:[]}}s(Oe,"createMutationRecorder");function he(e){if(e)for(let t of["path","file_path","target_path"]){let r=e[t];if(typeof r=="string"&&r.trim().length>0)return q(r)}}s(he,"readMutationPath");function Ue(e,t){return{...e??{},onToolUseStart:s((r,c)=>{if(fe.has(r.name)){t.toolNameById.set(r.id,r.name);let i=he(r.input);i!==void 0&&t.toolPathById.set(r.id,i)}if(me.has(r.name)){let i=he(r.input);i!==void 0&&t.readPathById.set(r.id,i)}e?.onToolUseStart?.(r,c)},"onToolUseStart"),onToolResult:s((r,c)=>{let i=t.toolNameById.get(r.id)??r.name;if(fe.has(i)&&!r.content.trimStart().startsWith("[Tool Error]")){t.succeededToolCalls.push(i);let h=t.toolPathById.get(r.id);h!==void 0&&t.succeededPaths.push(h)}if(me.has(i)&&!r.content.trimStart().startsWith("[Tool Error]")){let h=t.readPathById.get(r.id);h!==void 0&&t.succeededReadPaths.push(h)}e?.onToolResult?.(r,c)},"onToolResult")}}s(Ue,"wrapEventsForMutationRecording");function K(e){return[...new Set(e.filter(t=>t.trim().length>0))]}s(K,"uniqueItems");function pe(e){let t=e.verification;if(!t)return;let r=[],c=new Set(e.before.paths.map(q)),i=K(e.after.paths.map(q)),h=i.filter(y=>!c.has(y)),b=K(e.mutationRecorder.succeededToolCalls),x=e.acceptToolMutationEvidence?b:[],N=e.acceptToolMutationEvidence?K(e.mutationRecorder.succeededPaths.map(q)):[],M=h.length>0||x.length>0,S=t.enforcement??"hard",W=(t.requiredChangedPaths??[]).map(y=>Y(y,e.ctx)),_=K(e.mutationRecorder.succeededReadPaths.map(y=>Y(y,e.ctx))),z=(t.requiredReadPaths??[]).map(y=>Y(y,e.ctx));t.requiresMutation===!0&&(e.before.error!==void 0||e.after.error!==void 0?r.push(`workspace mutation verification could not read changed files: ${e.after.error??e.before.error}`):M||r.push(e.acceptToolMutationEvidence||b.length===0?"expected file mutations, but no new workspace changes or successful write tools were observed":"write tools ran in an isolated worktree, but no main workspace changes were present after cleanup")),e.term.limitReached===!0&&!M&&r.push("workflow child reached its iteration limit before satisfying the task");for(let y of W)!i.includes(y)&&!N.includes(y)&&r.push(`required changed path was not present in workspace changes: ${y}`);for(let y of z)_.includes(y)||r.push(`required review evidence was not read: ${y}`);let B=t.minFinalTextChars;return B!==void 0&&!M&&e.term.finalText.trim().length<B&&r.push(`finalText was shorter than the required ${B} characters`),t.rejectPreparatoryFinalText===!0&&!M&&ye(e.term.finalText)&&r.push("finalText looks preparatory instead of terminal"),{ok:r.length===0,enforcement:S,reasons:r,changedPaths:i,mutationToolCalls:b,mutationEvidence:M,..._.length>0?{readPaths:_}:{}}}s(pe,"evaluateVerification");function ee(e,t){if(t.ok)return e;let c=[t.enforcement==="warn"?"[Workflow task completed without verification]":"[Workflow task verification failed]",...t.reasons.map(i=>`- ${i}`)].join(`
3
3
  `);return e.trim().length>0?`${e}
4
4
 
5
5
  ${c}`:c}s(ee,"appendVerificationFailure");function ge(){return{ok:!1,enforcement:"warn",reasons:["workflow child reached its iteration limit before satisfying the task"],mutationEvidence:!1}}s(ge,"limitReachedWarningVerification");function $e(e){return e.entry.bundle.readOnly!==!0&&e.entry.repairAttempts<ke&&e.term.status==="completed"&&e.verification!==void 0&&e.verification.ok!==!0&&e.verification.enforcement!=="warn"}s($e,"shouldRepairVerificationFailure");function qe(e){let t=e.verification.reasons.map(c=>`- ${c}`).join(`
@@ -0,0 +1,6 @@
1
+ // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
+ import{a as I,b as S,c as _,d as k,e as T,f as g,g as h}from"./chunk-YRPB3LID.js";import{n as H}from"./chunk-BSCSKJNC.js";import{ad as R}from"./chunk-DAQGOWKD.js";import{a as d}from"./chunk-V4WSBIXB.js";var P=65536;async function z(e,t,r,o){let s=[],l=[];for(let[u,i]of t.entries.entries()){i.oversized&&l.push({itemId:O(e,t.revision,i.index),byteLength:i.byteLength});let n=i.entry??(i.oversized?await h(r,e,t.revision,i.index,o):void 0);if(!n)continue;let a=n.message.role==="assistant"&&Array.isArray(n.message.content)&&n.message.content.some(f=>f.type==="tool_use")?t.entries[u+1]?.entry?.message??await g(r,e,t.revision,i.index,o):void 0,y=a?.role==="user"&&Array.isArray(a.content)?a.content.filter(f=>f.type==="tool_result"):[];s.push(...E(e,t.revision,i.index,y.length>0?[n.message,{role:"user",content:y,...a?.timestamp!==void 0?{timestamp:a.timestamp}:{}}]:[n.message]).map(f=>N({...f,...f.type==="user"&&Array.isArray(n.message.content)&&n.message.content.some(m=>m.type==="image")?{attachments:n.message.content.flatMap(m=>m.type==="image"?[{kind:"image",path:m.path,...m.mediaType?{mediaType:m.mediaType}:{}}]:[])}:{},...i.boundaryId!==void 0?{historyBoundary:{entryId:i.boundaryId,sourceRevision:t.sourceRevision}}:{}})))}return{items:s,...t.locatedBoundaryId&&s.some(u=>u.historyBoundary?.entryId===t.locatedBoundaryId)?{locatedBoundaryId:t.locatedBoundaryId}:{},...t.newerCursor?{newerCursor:t.newerCursor}:{},revision:t.revision,sourceRevision:t.sourceRevision,status:t.status,issues:t.issues,...t.hasMore&&t.nextCursor!==void 0?{nextCursor:t.nextCursor}:{},oversized:l}}d(z,"projectConversationHistoryPage");async function F(e,t,r,o={},s="history",l){if(o.part==="attachment")throw new Error("Read image attachments through sessions.readItem.");let u=B(e,t,s);if(u===void 0)return null;let i=await h(r,e,u.revision,u.entryIndex,l);if(i===null)return null;let n=u.ordinal===void 0?void 0:E(e,u.revision,u.entryIndex,[i.message])[u.ordinal];if(u.ordinal!==void 0&&n===void 0)return null;let c=s==="history"&&u.ordinal===void 0&&o.part!=="input"?R(i.message):[],a=n?.text??(c.length>0?c.map(C=>C.summary).join(`
3
+
4
+ `):K(i.message,o.part==="input"?"input":"text"));if(n?.tool!==void 0){let v=(Array.isArray(i.message.content)?i.message.content:[]).find(p=>p.type==="tool_use"&&p.id===n.tool?.callId);if(o.part==="input"){if(v?.type!=="tool_use")return null;a=JSON.stringify(v.input)}else{let p=await g(r,e,u.revision,u.entryIndex,l),x=(Array.isArray(p?.content)?p.content:[]).find(b=>b.type==="tool_result"&&b.tool_use_id===n.tool?.callId);if(x?.type!=="tool_result")return null;let w=S(x);if(o.part==="original"&&w)return T(w,t,o.offset);a=I(x.content)}}let y=o.offset??0;if(!Number.isSafeInteger(y)||y<0)throw new Error("Item offset must be a non-negative integer.");if(y>=a.length&&a.length>0)return null;let f=a.slice(y,y+P),m=y+f.length;return{id:t,text:f,offset:y,totalLength:a.length,...m<a.length?{nextOffset:m}:{}}}d(F,"readConversationHistoryEntry");async function J(e,t){try{return await e()}catch(r){if(t.cursor!==void 0||t.around!==void 0||!$(r))throw r;return await new Promise(o=>{setTimeout(o,50).unref?.()}),e()}}d(J,"readHistoryPageWithBoundaryRetry");function $(e){if(typeof e!="object"||e===null||!("code"in e))return!1;let t=e.code;return t==="data_changed"||t==="resync_required"}d($,"isTransientHistoryBoundaryError");function O(e,t,r){return`${e}:history:${t}:${r}`}d(O,"historyEntryItemId");function B(e,t,r){let o=`${e}:${r}:`;if(!t.startsWith(o))return;let[s="",l,u]=t.slice(o.length).split("#");if(u!==void 0||r==="transcript"&&l!==void 0||l!==void 0&&!/^\d+$/u.test(l))return;let i=s.lastIndexOf(":");if(i<=0)return;let n=s.slice(0,i);if(!/^sha256:[0-9a-f]{8,}$/u.test(n))return;let c=/^(\d+)$/u.exec(s.slice(i+1));if(c===null||c[1]===void 0)return;let a=Number(c[1]);if(!(!Number.isSafeInteger(a)||l!==void 0&&!Number.isSafeInteger(Number(l))))return{revision:n,entryIndex:a,...l!==void 0?{ordinal:Number(l)}:{}}}d(B,"parseHistoryEntryItemId");function E(e,t,r,o){let s=H({messages:o,historyScope:"all",structuredTaskResults:!0}),l=k(o),u=[],i=0;for(let n of s){if(n.type==="tool_group"){for(let c of n.tools){let a=l.get(_(c.id,c.assistantOutputId));a&&(u.push({...a,id:A(e,t,r,i)}),i+=1)}continue}u.push({id:A(e,t,r,i),type:n.type,text:n.text,...n.taskResult?{taskResult:n.taskResult}:{},...n.inputId!==void 0?{inputId:n.inputId}:{},...n.outputId!==void 0?{outputId:n.outputId,outputState:"committed",textRevision:0}:{},..."icon"in n?{icon:n.icon}:{},...n.timestamp!==void 0?{timestamp:n.timestamp}:{}}),i+=1}return u}d(E,"projectHistoryEntry");function N(e){let r=e.tool?.inputText;return{...e,...e.text.length>8192?{text:e.text.slice(0,8192),textOffset:0,totalTextLength:e.text.length}:{},...e.tool&&r&&r.length>8192?{tool:{...e.tool,inputText:r.slice(0,8192),totalInputLength:r.length}}:{}}}d(N,"boundHistoryItem");function A(e,t,r,o){return`${e}:history:${t}:${r}#${o}`}d(A,"historyItemId");function K(e,t){let r=Array.isArray(e.content)?e.content:[];if(t==="input")return r.filter(s=>s.type==="tool_use").map(s=>JSON.stringify(s.input)).join(`
5
+ `);let o=[];for(let s of r)s.type==="text"&&typeof s.text=="string"?o.push(s.text):s.type==="tool_result"&&o.push(I(s.content));return o.length===0&&typeof e.content=="string"&&o.push(e.content),o.join(`
6
+ `)}d(K,"entryBody");export{z as a,F as b,J as c,B as d,E as e};
@@ -1,5 +1,5 @@
1
1
  // @kodax-ai/kodax — bundled distribution. See docs/ADR.md ADR-022 + ADR-024.
2
- import{B as k,U as O}from"./chunk-SK3RRGHJ.js";import{B as R}from"./chunk-KE2NBMAP.js";import{a as r}from"./chunk-V4WSBIXB.js";var g={user:0,background:1};function te(t,e){return g[t]<=g[e]}r(te,"priorityWithinMax");function N(t,e){return!(t.agentId!==e.agentId||!te(t.priority,e.maxPriority)||e.mode!==void 0&&t.mode!==e.mode||e.id!==void 0&&t.id!==e.id||e.predicate&&!e.predicate(t))}r(N,"matchesFilter");var E=class{static{r(this,"MessageQueue")}messages=[];nextSeq=1;listeners=new Set;snapshotRef=Object.freeze([]);notify(e){this.snapshotRef=Object.freeze([...this.messages]);for(let i of this.listeners)try{i(e)}catch{}}subscribe=r(e=>(this.listeners.add(e),()=>{this.listeners.delete(e)}),"subscribe");getSnapshot=r(()=>this.snapshotRef,"getSnapshot");enqueue(e){let i=`msg-${this.nextSeq++}`,n={id:i,priority:e.priority,mode:e.mode,delivery:e.delivery,content:e.content,...e.inputId!==void 0?{inputId:e.inputId}:{},agentId:e.agentId,inputArtifacts:e.inputArtifacts,taskResult:e.taskResult,enqueuedAt:Date.now()};return this.messages=[...this.messages,n],this.notify({kind:"enqueued",message:n}),i}dequeue(e){let i=[];for(let s=0;s<this.messages.length;s++){let m=this.messages[s];m&&N(m,e)&&i.push({originalIndex:s,message:m})}i.sort((s,m)=>{let l=g[s.message.priority]-g[m.message.priority];return l!==0?l:s.originalIndex-m.originalIndex});let n=e.limit,o=typeof n=="number"&&i.length>n?i.slice(0,n):i;if(o.length===0)return[];let a=new Set(o.map(s=>s.originalIndex));this.messages=this.messages.filter((s,m)=>!a.has(m));let d=o.map(s=>s.message);return this.notify({kind:"dequeued",messages:d}),d}peek(e){let i=[];for(let a=0;a<this.messages.length;a++){let d=this.messages[a];d&&N(d,e)&&i.push({originalIndex:a,message:d})}i.sort((a,d)=>{let s=g[a.message.priority]-g[d.message.priority];return s!==0?s:a.originalIndex-d.originalIndex});let n=e.limit;return(typeof n=="number"&&i.length>n?i.slice(0,n):i).map(a=>a.message)}size(){return this.messages.length}count(e){return this.peek(e).length}has(e){return this.count(e)>0}clear(){if(this.messages.length===0)return;let e=this.messages;this.messages=[],this.notify({kind:"cleared",messages:e})}},w;function h(){return w||(w=new E),w}r(h,"getMessageQueue");function ie(){w=void 0}r(ie,"_resetMessageQueueForTests");function _(t,e){return t?`actor:${t}:${e}`:e==="/root"?void 0:e}r(_,"actorQueueId");var f=new Map;function re(t){f.set(t,(f.get(t)??0)+1);let e=!1;return()=>{if(e)return;e=!0;let i=f.get(t);i===void 0||i<=1?f.delete(t):f.set(t,i-1)}}r(re,"registerActiveRootQueueRoute");function x(){if(f.size!==0){if(f.size===1)return f.keys().next().value;throw new Error("Cannot infer queued follow-up target: multiple Actor root sessions are active. Pass sessionId or agentId explicitly.")}}r(x,"resolveActiveRootQueueRoute");function oe(){f.clear()}r(oe,"_resetActiveRootQueueRoutesForTests");var $=new Set(["wait_agent"]);function C(t){return t.some(i=>$.has(i))?"background":"user"}r(C,"midTurnDrainPriority");function F(t,e){let i=new Set,n=!1;for(let o of t)o.agentId!==e||o.priority!=="user"||o.mode!=="prompt"||(o.delivery==="host"?n=!0:n||i.add(o.id));return o=>o.delivery==="host"?!1:o.priority!=="user"||o.mode!=="prompt"?!0:i.has(o.id)}r(F,"createRuntimeDeliveryPredicate");function ne(t){let e=C(t.lastTurnToolNames),i=h();return i.dequeue({agentId:t.agentId,maxPriority:e,limit:t.limit,predicate:F(i.getSnapshot(),t.agentId)})}r(ne,"maybeDrainMidTurn");var c=class extends Error{static{r(this,"KodaXMediaError")}code;detail;cause;constructor(e,i,n={}){super(i),this.name="KodaXMediaError",this.code=e,this.detail=n.detail,this.cause=n.cause}},p=class extends c{static{r(this,"ImageResizeError")}constructor(e,i={}){super(i.code??"IMAGE_TOO_LARGE",e,i),this.name="ImageResizeError"}};import U from"node:path";var ae={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},se={".3gp":"video/3gpp",".3gpp":"video/3gpp",".avi":"video/x-msvideo",".flv":"video/x-flv",".mov":"video/quicktime",".mp4":"video/mp4",".mpeg":"video/mpeg",".mpg":"video/mpeg",".webm":"video/webm",".wmv":"video/x-ms-wmv"};function q(t){return ae[U.extname(t).toLowerCase()]}r(q,"inferImageMediaType");function K(t){return se[U.extname(t).toLowerCase()]}r(K,"inferVideoMediaType");function de(t,e={}){let i=e.mediaType??q(t);return{kind:"image",path:t,...i?{mediaType:i}:{},...e.source?{source:e.source}:{},...e.description?{description:e.description}:{}}}r(de,"createImageArtifactFromPath");function me(t,e={}){if(e.mediaType!==void 0&&e.mimeType!==void 0&&e.mediaType!==e.mimeType)throw new c("UNSUPPORTED_MEDIA_TYPE",`File artifact mediaType and mimeType disagree: ${e.mediaType} != ${e.mimeType}.`);return{kind:"file",path:t,...e.mediaType?{mediaType:e.mediaType}:{},...e.mimeType?{mimeType:e.mimeType}:{},...e.name?{name:e.name}:{},...e.source?{source:e.source}:{},...e.description?{description:e.description}:{}}}r(me,"createFileArtifactFromPath");function ue(t,e={}){let i=e.mediaType??K(t);if(!i)throw new c("UNSUPPORTED_MEDIA_TYPE",`Cannot infer video media type from path: ${t}.`);return{kind:"video",path:t,mediaType:i,...e.name?{name:e.name}:{},...e.source?{source:e.source}:{},...e.description?{description:e.description}:{}}}r(ue,"createVideoArtifactFromPath");var L=2e3,z=Math.floor(3.75*1024*1024),ce=[80,60,40];async function v(t,e={}){let i=e.maxDimension??L,n=e.targetBytes??z;if(t.length===0)throw new p("Empty image buffer.",{code:"IMAGE_DECODE_FAILED"});let o;try{let{Jimp:u}=await import("jimp");o=await u.read(t)}catch(u){let I=u instanceof Error?u.message:String(u);throw new p(`Failed to decode image: ${I}`,{code:"IMAGE_DECODE_FAILED",cause:u})}let{width:a,height:d}=o.bitmap,s=Math.max(a,d);if(s>i){let u=i/s;o.resize({w:Math.max(1,Math.round(a*u)),h:Math.max(1,Math.round(d*u))})}let m=o.bitmap.width,l=o.bitmap.height;if(e.preferMediaType!=="image/jpeg"){let u=await o.getBuffer("image/png");if(u.length<=n)return{buffer:Buffer.from(u),mediaType:"image/png",width:m,height:l}}for(let u of ce){let I=await o.getBuffer("image/jpeg",{quality:u});if(I.length<=n)return{buffer:Buffer.from(I),mediaType:"image/jpeg",width:m,height:l}}if(e.preferMediaType==="image/jpeg"){let u=await o.getBuffer("image/png");if(u.length<=n)return{buffer:Buffer.from(u),mediaType:"image/png",width:m,height:l}}throw new p(`Image still exceeds budget (${n} bytes raw) after PNG and JPEG q40 compression. Try a smaller image or take a fresh screenshot of a smaller region.`,{code:"IMAGE_TOO_LARGE"})}r(v,"normalizePastedImage");import{spawn as B}from"node:child_process";import{mkdtemp as fe,readFile as pe,rm as le}from"node:fs/promises";import{tmpdir as ge}from"node:os";import X from"node:path";var G=5e3;async function Y(){switch(process.platform){case"darwin":return ye();case"win32":return Te();case"linux":return Ie();default:throw new c("UNSUPPORTED_PLATFORM",`Clipboard image fallback is not supported on platform "${process.platform}".`)}}r(Y,"readClipboardImage");async function he(t={}){let e=await Y();return e?v(e,t):null}r(he,"readAndNormalizeClipboardImage");async function Q(t){let e=await fe(X.join(ge(),"kodax-clip-")),i=X.join(e,"clip.png");try{return await t(i)}finally{await le(e,{recursive:!0,force:!0}).catch(n=>{})}}r(Q,"runWithTempPng");async function ye(){return Q(async t=>{let e=`set png_data to (the clipboard as \xABclass PNGf\xBB)
2
+ import{B as k,U as O}from"./chunk-PFBZ4ZXO.js";import{B as R}from"./chunk-4FVCMKG2.js";import{a as r}from"./chunk-V4WSBIXB.js";var g={user:0,background:1};function te(t,e){return g[t]<=g[e]}r(te,"priorityWithinMax");function N(t,e){return!(t.agentId!==e.agentId||!te(t.priority,e.maxPriority)||e.mode!==void 0&&t.mode!==e.mode||e.id!==void 0&&t.id!==e.id||e.predicate&&!e.predicate(t))}r(N,"matchesFilter");var E=class{static{r(this,"MessageQueue")}messages=[];nextSeq=1;listeners=new Set;snapshotRef=Object.freeze([]);notify(e){this.snapshotRef=Object.freeze([...this.messages]);for(let i of this.listeners)try{i(e)}catch{}}subscribe=r(e=>(this.listeners.add(e),()=>{this.listeners.delete(e)}),"subscribe");getSnapshot=r(()=>this.snapshotRef,"getSnapshot");enqueue(e){let i=`msg-${this.nextSeq++}`,n={id:i,priority:e.priority,mode:e.mode,delivery:e.delivery,content:e.content,...e.inputId!==void 0?{inputId:e.inputId}:{},agentId:e.agentId,inputArtifacts:e.inputArtifacts,taskResult:e.taskResult,enqueuedAt:Date.now()};return this.messages=[...this.messages,n],this.notify({kind:"enqueued",message:n}),i}dequeue(e){let i=[];for(let s=0;s<this.messages.length;s++){let m=this.messages[s];m&&N(m,e)&&i.push({originalIndex:s,message:m})}i.sort((s,m)=>{let l=g[s.message.priority]-g[m.message.priority];return l!==0?l:s.originalIndex-m.originalIndex});let n=e.limit,o=typeof n=="number"&&i.length>n?i.slice(0,n):i;if(o.length===0)return[];let a=new Set(o.map(s=>s.originalIndex));this.messages=this.messages.filter((s,m)=>!a.has(m));let d=o.map(s=>s.message);return this.notify({kind:"dequeued",messages:d}),d}peek(e){let i=[];for(let a=0;a<this.messages.length;a++){let d=this.messages[a];d&&N(d,e)&&i.push({originalIndex:a,message:d})}i.sort((a,d)=>{let s=g[a.message.priority]-g[d.message.priority];return s!==0?s:a.originalIndex-d.originalIndex});let n=e.limit;return(typeof n=="number"&&i.length>n?i.slice(0,n):i).map(a=>a.message)}size(){return this.messages.length}count(e){return this.peek(e).length}has(e){return this.count(e)>0}clear(){if(this.messages.length===0)return;let e=this.messages;this.messages=[],this.notify({kind:"cleared",messages:e})}},w;function h(){return w||(w=new E),w}r(h,"getMessageQueue");function ie(){w=void 0}r(ie,"_resetMessageQueueForTests");function _(t,e){return t?`actor:${t}:${e}`:e==="/root"?void 0:e}r(_,"actorQueueId");var f=new Map;function re(t){f.set(t,(f.get(t)??0)+1);let e=!1;return()=>{if(e)return;e=!0;let i=f.get(t);i===void 0||i<=1?f.delete(t):f.set(t,i-1)}}r(re,"registerActiveRootQueueRoute");function x(){if(f.size!==0){if(f.size===1)return f.keys().next().value;throw new Error("Cannot infer queued follow-up target: multiple Actor root sessions are active. Pass sessionId or agentId explicitly.")}}r(x,"resolveActiveRootQueueRoute");function oe(){f.clear()}r(oe,"_resetActiveRootQueueRoutesForTests");var $=new Set(["wait_agent"]);function C(t){return t.some(i=>$.has(i))?"background":"user"}r(C,"midTurnDrainPriority");function F(t,e){let i=new Set,n=!1;for(let o of t)o.agentId!==e||o.priority!=="user"||o.mode!=="prompt"||(o.delivery==="host"?n=!0:n||i.add(o.id));return o=>o.delivery==="host"?!1:o.priority!=="user"||o.mode!=="prompt"?!0:i.has(o.id)}r(F,"createRuntimeDeliveryPredicate");function ne(t){let e=C(t.lastTurnToolNames),i=h();return i.dequeue({agentId:t.agentId,maxPriority:e,limit:t.limit,predicate:F(i.getSnapshot(),t.agentId)})}r(ne,"maybeDrainMidTurn");var c=class extends Error{static{r(this,"KodaXMediaError")}code;detail;cause;constructor(e,i,n={}){super(i),this.name="KodaXMediaError",this.code=e,this.detail=n.detail,this.cause=n.cause}},p=class extends c{static{r(this,"ImageResizeError")}constructor(e,i={}){super(i.code??"IMAGE_TOO_LARGE",e,i),this.name="ImageResizeError"}};import U from"node:path";var ae={".gif":"image/gif",".jpeg":"image/jpeg",".jpg":"image/jpeg",".png":"image/png",".webp":"image/webp"},se={".3gp":"video/3gpp",".3gpp":"video/3gpp",".avi":"video/x-msvideo",".flv":"video/x-flv",".mov":"video/quicktime",".mp4":"video/mp4",".mpeg":"video/mpeg",".mpg":"video/mpeg",".webm":"video/webm",".wmv":"video/x-ms-wmv"};function q(t){return ae[U.extname(t).toLowerCase()]}r(q,"inferImageMediaType");function K(t){return se[U.extname(t).toLowerCase()]}r(K,"inferVideoMediaType");function de(t,e={}){let i=e.mediaType??q(t);return{kind:"image",path:t,...i?{mediaType:i}:{},...e.source?{source:e.source}:{},...e.description?{description:e.description}:{}}}r(de,"createImageArtifactFromPath");function me(t,e={}){if(e.mediaType!==void 0&&e.mimeType!==void 0&&e.mediaType!==e.mimeType)throw new c("UNSUPPORTED_MEDIA_TYPE",`File artifact mediaType and mimeType disagree: ${e.mediaType} != ${e.mimeType}.`);return{kind:"file",path:t,...e.mediaType?{mediaType:e.mediaType}:{},...e.mimeType?{mimeType:e.mimeType}:{},...e.name?{name:e.name}:{},...e.source?{source:e.source}:{},...e.description?{description:e.description}:{}}}r(me,"createFileArtifactFromPath");function ue(t,e={}){let i=e.mediaType??K(t);if(!i)throw new c("UNSUPPORTED_MEDIA_TYPE",`Cannot infer video media type from path: ${t}.`);return{kind:"video",path:t,mediaType:i,...e.name?{name:e.name}:{},...e.source?{source:e.source}:{},...e.description?{description:e.description}:{}}}r(ue,"createVideoArtifactFromPath");var L=2e3,z=Math.floor(3.75*1024*1024),ce=[80,60,40];async function v(t,e={}){let i=e.maxDimension??L,n=e.targetBytes??z;if(t.length===0)throw new p("Empty image buffer.",{code:"IMAGE_DECODE_FAILED"});let o;try{let{Jimp:u}=await import("jimp");o=await u.read(t)}catch(u){let I=u instanceof Error?u.message:String(u);throw new p(`Failed to decode image: ${I}`,{code:"IMAGE_DECODE_FAILED",cause:u})}let{width:a,height:d}=o.bitmap,s=Math.max(a,d);if(s>i){let u=i/s;o.resize({w:Math.max(1,Math.round(a*u)),h:Math.max(1,Math.round(d*u))})}let m=o.bitmap.width,l=o.bitmap.height;if(e.preferMediaType!=="image/jpeg"){let u=await o.getBuffer("image/png");if(u.length<=n)return{buffer:Buffer.from(u),mediaType:"image/png",width:m,height:l}}for(let u of ce){let I=await o.getBuffer("image/jpeg",{quality:u});if(I.length<=n)return{buffer:Buffer.from(I),mediaType:"image/jpeg",width:m,height:l}}if(e.preferMediaType==="image/jpeg"){let u=await o.getBuffer("image/png");if(u.length<=n)return{buffer:Buffer.from(u),mediaType:"image/png",width:m,height:l}}throw new p(`Image still exceeds budget (${n} bytes raw) after PNG and JPEG q40 compression. Try a smaller image or take a fresh screenshot of a smaller region.`,{code:"IMAGE_TOO_LARGE"})}r(v,"normalizePastedImage");import{spawn as B}from"node:child_process";import{mkdtemp as fe,readFile as pe,rm as le}from"node:fs/promises";import{tmpdir as ge}from"node:os";import X from"node:path";var G=5e3;async function Y(){switch(process.platform){case"darwin":return ye();case"win32":return Te();case"linux":return Ie();default:throw new c("UNSUPPORTED_PLATFORM",`Clipboard image fallback is not supported on platform "${process.platform}".`)}}r(Y,"readClipboardImage");async function he(t={}){let e=await Y();return e?v(e,t):null}r(he,"readAndNormalizeClipboardImage");async function Q(t){let e=await fe(X.join(ge(),"kodax-clip-")),i=X.join(e,"clip.png");try{return await t(i)}finally{await le(e,{recursive:!0,force:!0}).catch(n=>{})}}r(Q,"runWithTempPng");async function ye(){return Q(async t=>{let e=`set png_data to (the clipboard as \xABclass PNGf\xBB)
3
3
  set fh to open for access POSIX file "${t.replace(/"/g,'\\"')}" with write permission
4
4
  write png_data to fh
5
5
  close access fh`;return await W("osascript",["-e",e])?V(t):null})}r(ye,"readMacClipboard");async function Te(){return Q(async t=>{let e=["Add-Type -AssemblyName System.Drawing | Out-Null","$img = Get-Clipboard -Format Image","if ($null -eq $img) { exit 1 }",`$img.Save('${t.replace(/'/g,"''")}', [System.Drawing.Imaging.ImageFormat]::Png)`].join("; ");return await W("powershell",["-NoProfile","-Command",e])?V(t):null})}r(Te,"readWinClipboard");async function Ie(){return await j("wl-paste",["--type","image/png"])??j("xclip",["-selection","clipboard","-t","image/png","-o"])}r(Ie,"readLinuxClipboard");async function V(t){try{let e=await pe(t);return e.length>0?e:null}catch(e){return null}}r(V,"readNonEmptyFile");function W(t,e){return new Promise(i=>{let n=!1,o=B(t,[...e],{stdio:"ignore",windowsHide:!0}),a=setTimeout(()=>{n||(n=!0,o.kill(),i(!1))},G);o.once("error",()=>{n||(n=!0,clearTimeout(a),i(!1))}),o.once("exit",d=>{n||(n=!0,clearTimeout(a),i(d===0))})})}r(W,"runCommand");function j(t,e){return new Promise(i=>{let n=!1,o=[],a=B(t,[...e],{stdio:["ignore","pipe","ignore"],windowsHide:!0}),d=setTimeout(()=>{n||(n=!0,a.kill(),i(null))},G);a.stdout?.on("data",s=>o.push(s)),a.once("error",()=>{n||(n=!0,clearTimeout(d),i(null))}),a.once("exit",s=>{if(n)return;if(n=!0,clearTimeout(d),s!==0){i(null);return}let m=Buffer.concat(o);i(m.length>0?m:null)})})}r(j,"collectStdoutBytes");import{createHash as we}from"node:crypto";import{mkdir as Ee,readdir as ke,stat as _e,unlink as xe,writeFile as ve}from"node:fs/promises";import{tmpdir as Ae}from"node:os";import A from"node:path";var H="KODAX_PASTE_TMP_DIR",J=1440*60*1e3;function Z(){return process.env[H]??A.join(Ae(),"kodax-paste")}r(Z,"resolvePasteTmpDir");function Pe(t){let e=t?.trim().replace(/[^A-Za-z0-9._-]+/g,"-").replace(/^-+|-+$/g,"");return e&&e.length>0?e:"paste"}r(Pe,"sanitizeFileNamePrefix");async function Me(t,e={}){let i=e.directory??Z();await Ee(i,{recursive:!0});let n={"image/jpeg":".jpg","image/png":".png","image/webp":".webp","image/gif":".gif"}[t.mediaType],o=we("sha256").update(t.buffer).digest("hex").slice(0,16),a=`${Pe(e.fileNamePrefix)}-${o}${n}`,d=A.join(i,a);return await ve(d,t.buffer),{type:"image",path:d,mediaType:t.mediaType}}r(Me,"persistImageAsBlock");async function De(t=Date.now()){let e=Z(),i;try{i=await ke(e)}catch(a){return 0}let n=t-J,o=0;return await Promise.all(i.filter(a=>/-[0-9a-f]{16}\.(?:png|jpg)$/.test(a)).map(async a=>{let d=A.join(e,a);try{(await _e(d)).mtimeMs<n&&(await xe(d),o+=1)}catch(s){}})),o}r(De,"prunePasteTmpDir");var y=["image/png","image/jpeg","image/webp","image/gif"],T=["video/mp4","video/mpeg","video/quicktime","video/x-msvideo","video/x-flv","video/webm","video/x-ms-wmv","video/3gpp"],Se=[],be=new Set(["anthropic","openai"]),Re=new Set(["mimo-coding/mimo-v2.6-pro","mimo-coding/mimo-v2.6-flash","ark-coding/deepseek-v4.1-flash","ark-coding/deepseek-v4.1-flash-economy","ark-coding/glm-5.3-flash","ark-coding/kimi-k3.1-pro","ark-coding/kimi-k3","ark-coding/kimi-k2.8-preview","ark-coding/doubao-seed-2.0-code","ark-coding/doubao-seed-2.0-pro","ark-coding/kimi-k2.6","ark-coding/kimi-k2.7-code","ark-coding/minimax-m3","deepseek/deepseek-flash","kimi-code/k3-256k","qwen-token-plan/qwen3.8-max","qwen-token-plan/qwen3.8-max-preview","qwen-token-plan/qwen3.7-plus","qwen-token-plan/qwen3.6-flash"]),Oe=new Set(["minimax-coding/minimax-m3.1-flash","mimo/mimo-v2.6-pro","mimo/mimo-v2.6-flash","kimi-code/kimi-for-coding","kimi-code/kimi-for-coding-highspeed","kimi-code/k3","kimi/kimi-k3","kimi/kimi-k2.5","kimi/kimi-k2.6","kimi/kimi-k2.7-code","kimi/kimi-k2.7-code-highspeed","minimax-coding/minimax-m3","minimax/minimax-m3","zai-coding/glm-5.3-flash","zhipu-coding/glm-5.3-flash","zhipu/glm-5.3-flash"]);function P(t){return{nativeSupported:!1,sdkSupported:!1,status:"unsupported",mediaTypes:[],maxCount:0,reason:t}}r(P,"unsupported");function Ne(t){return{nativeSupported:!0,sdkSupported:!0,status:"supported",mediaTypes:y,nativeMediaTypes:y,reason:t}}r(Ne,"supportedImage");function $e(t){return{nativeSupported:!0,sdkSupported:!1,status:"provider-native-unwired",mediaTypes:[],nativeMediaTypes:T,maxCount:0,reason:t}}r($e,"nativeVideoUnwired");function Ce(t){return t.trim().toLowerCase()}r(Ce,"normalizeProvider");function Fe(t){return k[t]?.model}r(Fe,"resolveProviderDefaultModel");function ee(t,e){if(!e)return;let i=e.trim().toLowerCase();if(t==="kimi"){if(i==="k2.5")return"kimi-k2.5";if(i==="k2.6")return"kimi-k2.6";if(i==="k2.7-code")return"kimi-k2.7-code";if(i==="k2.7-code-highspeed")return"kimi-k2.7-code-highspeed"}return(t==="minimax-coding"||t==="minimax")&&i==="minimax-m3"?"minimax-m3":i}r(ee,"normalizeModel");function Ue(t){if(!be.has(t))return!1;let e=k[t];return e?R(e.capabilityProfile).multimodalSupport!=="none":!1}r(Ue,"hasOfficialImageSupport");function qe(t,e){let i=ee(t,e);if(!i)return!1;let n=`${t}/${i}`;return Oe.has(n)}r(qe,"hasSourceBackedNativeMedia");function Ke(t,e){let i=ee(t,e);return i?Re.has(`${t}/${i}`):!1}r(Ke,"hasSourceBackedImage");function Le(t){let e=t.trim();return e?O(e)?.multimodalSupport==="image-input":!1}r(Le,"hasCustomProviderImageSupport");function ze(t,e,i,n){if(i||n)return"source-backed";if(e){if(t==="openai")return"openai-official";if(t==="anthropic")return"anthropic-official"}}r(ze,"resolveImageCapabilityRoute");function Xe(t){switch(t){case"openai-official":return"Model route supports KodaX image input. Direct-path image/gif is sent as image/gif, but OpenAI requires non-animated GIF semantics.";case"anthropic-official":return"Model route supports KodaX image input. Direct-path image/gif is sent as image/gif, but Anthropic uses only the first frame of animated GIFs.";case"source-backed":return"Model route supports KodaX image input. Direct-path image/gif is sent as image/gif; animated-GIF interpretation is provider-owned."}}r(Xe,"imageCapabilityReason");function M(t){let e=Ce(t.provider),i=t.model?.trim()||Fe(e),n=Ue(e),o=qe(e,i),a=o||Ke(e,i),d=ze(e,n,a,Le(t.provider)),s=d!==void 0,m=o;return{text:!0,image:s?Ne(Xe(d)):P("No verified KodaX image-input route for this provider/model."),video:m?$e("Model route is native-video capable, but KodaX SDK video sending is not wired yet. Reject or downgrade before send."):P("No verified native video route for this provider/model."),file:P("File artifact contract is stable, but KodaX SDK file sending/extraction is not wired yet. Reject or downgrade before send.")}}r(M,"getModelInputCapabilities");function je(t){return y.includes(t)}r(je,"isKnownImageMediaType");function Be(t){return T.includes(t)}r(Be,"isKnownVideoMediaType");function D(t){return`${t.provider}${t.model?`/${t.model}`:""}`}r(D,"routeLabel");function S(t){return t.reason?`${t.status}: ${t.reason}`:t.status}r(S,"capabilityDetail");function b(t,e){if(t.length===0)return;let i=M(e);for(let n of t){let o=n;if(o.kind==="image"){if(!i.image.nativeSupported||!i.image.sdkSupported)throw new c("MODEL_INPUT_UNSUPPORTED",`Provider/model cannot consume image artifacts: ${D(e)}.`,{detail:S(i.image)});if(typeof o.mediaType=="string"&&!je(o.mediaType))throw new c("UNSUPPORTED_MEDIA_TYPE",`Unsupported image media type: ${o.mediaType}.`);continue}throw o.kind==="video"?typeof o.mediaType!="string"||!Be(o.mediaType)?new c("UNSUPPORTED_MEDIA_TYPE",`Unsupported video media type: ${String(o.mediaType)}.`,{detail:`Supported video media types: ${T.join(", ")}`}):new c("MODEL_INPUT_UNSUPPORTED",`Provider/model cannot consume video artifacts through this SDK runtime: ${D(e)}.`,{detail:S(i.video)}):o.kind==="file"?typeof o.mediaType=="string"&&typeof o.mimeType=="string"&&o.mediaType!==o.mimeType?new c("UNSUPPORTED_MEDIA_TYPE",`File artifact mediaType and mimeType disagree: ${o.mediaType} != ${o.mimeType}.`):new c("MODEL_INPUT_UNSUPPORTED",`Provider/model cannot consume file artifacts through this SDK runtime: ${D(e)}.`,{detail:S(i.file)}):new c("MODEL_INPUT_UNSUPPORTED",`Unsupported input artifact kind: ${String(o.kind)}.`)}}r(b,"validateInputArtifactsForModel");function Ge(t){if(b(t.inputArtifacts??[],t),t.agentId!==void 0&&t.sessionId!==void 0)throw new Error("enqueueWithArtifacts accepts either agentId or sessionId, not both.");if(t.sessionId!==void 0&&t.sessionId.trim().length===0)throw new Error("enqueueWithArtifacts sessionId must not be empty.");let e=t.agentId??(t.sessionId!==void 0?_(t.sessionId,"/root"):x());return h().enqueue({priority:t.priority??"user",mode:"prompt",content:t.content,...t.inputId!==void 0?{inputId:t.inputId}:{},agentId:e,inputArtifacts:t.inputArtifacts})}r(Ge,"enqueueWithArtifacts");export{E as a,h as b,ie as c,_ as d,re as e,x as f,oe as g,$ as h,C as i,F as j,ne as k,c as l,p as m,q as n,K as o,de as p,me as q,ue as r,L as s,z as t,v as u,Y as v,he as w,H as x,J as y,Me as z,De as A,y as B,T as C,Se as D,M as E,b as F,Ge as G};