@kodax-ai/kodax 0.7.97-alpha.9 → 0.7.97-beta.2

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 (234) hide show
  1. package/CHANGELOG.md +393 -0
  2. package/README.md +170 -29
  3. package/README_CN.md +116 -17
  4. package/config-templates/config.example.jsonc +2 -3
  5. package/dist/artifacts/skills/artifact-review/SKILL.md +44 -7
  6. package/dist/builtin/code-review/SKILL.md +5 -17
  7. package/dist/builtin/git-workflow/SKILL.md +9 -8
  8. package/dist/builtin/skill-creator/SKILL.md +38 -108
  9. package/dist/builtin/skill-creator/references/evaluation.md +50 -0
  10. package/dist/builtin/skill-creator/scripts/analyze-benchmark.d.ts +2 -0
  11. package/dist/builtin/skill-creator/scripts/analyze-benchmark.js +6 -3
  12. package/dist/builtin/skill-creator/scripts/compare-runs.d.ts +2 -0
  13. package/dist/builtin/skill-creator/scripts/compare-runs.js +6 -3
  14. package/dist/builtin/skill-creator/scripts/grade-evals.d.ts +2 -0
  15. package/dist/builtin/skill-creator/scripts/grade-evals.js +6 -3
  16. package/dist/builtin/skill-creator/scripts/run-eval.js +3 -3
  17. package/dist/builtin/skill-creator/scripts/run-loop.js +2 -1
  18. package/dist/builtin/skill-creator/scripts/run-trigger-eval.d.ts +2 -0
  19. package/dist/builtin/skill-creator/scripts/run-trigger-eval.js +3 -1
  20. package/dist/builtin/skill-creator/scripts/utils.d.ts +1 -1
  21. package/dist/builtin/skill-creator/scripts/utils.js +8 -0
  22. package/dist/builtin/tdd/SKILL.md +24 -40
  23. package/dist/builtin/visual-review/SKILL.md +7 -3
  24. package/dist/chunks/agent-DS7M57WD.js +2 -0
  25. package/dist/chunks/agent-adapter-TLWGGK3V.js +2 -0
  26. package/dist/chunks/argument-completer-OGCXKTRQ.js +2 -0
  27. package/dist/chunks/bedrock-native-Z5VNWF5U.js +4 -0
  28. package/dist/chunks/cell-LV7MNPNQ.js +2 -0
  29. package/dist/chunks/chunk-2HH5AS7E.js +1157 -0
  30. package/dist/chunks/chunk-3CP7AUWY.js +2 -0
  31. package/dist/chunks/chunk-45ZP2YHG.js +2 -0
  32. package/dist/chunks/chunk-4Y6U7AH4.js +9 -0
  33. package/dist/chunks/chunk-52EN2777.js +2 -0
  34. package/dist/chunks/{chunk-HXCY52Z2.js → chunk-53CJDQS2.js} +1 -1
  35. package/dist/chunks/{chunk-JNB2FL6P.js → chunk-5MUVRFMU.js} +1 -1
  36. package/dist/chunks/chunk-65652LR4.js +2 -0
  37. package/dist/chunks/chunk-6TITQQAI.js +351 -0
  38. package/dist/chunks/chunk-AGUM5SWX.js +2 -0
  39. package/dist/chunks/chunk-BBZWF2EA.js +2 -0
  40. package/dist/chunks/chunk-C6JGLEYD.js +2 -0
  41. package/dist/chunks/chunk-D36OIMV7.js +142 -0
  42. package/dist/chunks/chunk-D425EZGC.js +2 -0
  43. package/dist/chunks/chunk-D5OW7UD5.js +2 -0
  44. package/dist/chunks/chunk-DCE7XQUG.js +2 -0
  45. package/dist/chunks/chunk-DV5YPYLW.js +10 -0
  46. package/dist/chunks/chunk-EISRVOBJ.js +4 -0
  47. package/dist/chunks/chunk-EPK6EWRI.js +12 -0
  48. package/dist/chunks/chunk-F6GJXQNA.js +29 -0
  49. package/dist/chunks/chunk-GJXOTOZB.js +465 -0
  50. package/dist/chunks/chunk-GZUWQZJD.js +2 -0
  51. package/dist/chunks/chunk-I325ER7D.js +2 -0
  52. package/dist/chunks/chunk-ISLK6R2P.js +2 -0
  53. package/dist/chunks/chunk-J2L2NK6E.js +366 -0
  54. package/dist/chunks/chunk-JAF2YLZO.js +14 -0
  55. package/dist/chunks/chunk-KDLOPBFZ.js +2 -0
  56. package/dist/chunks/chunk-KDSO7V4O.js +5 -0
  57. package/dist/chunks/chunk-KE2NBMAP.js +20 -0
  58. package/dist/chunks/chunk-MCDZNQWD.js +634 -0
  59. package/dist/chunks/chunk-NSR4RW2F.js +3 -0
  60. package/dist/chunks/chunk-OGTRDK4Q.js +359 -0
  61. package/dist/chunks/chunk-P55RJIOG.js +18 -0
  62. package/dist/chunks/chunk-P7OJRV5Z.js +2 -0
  63. package/dist/chunks/chunk-QP47JIWP.js +3 -0
  64. package/dist/chunks/chunk-QSZCR5GC.js +190 -0
  65. package/dist/chunks/chunk-R2HTPDI7.js +2 -0
  66. package/dist/chunks/chunk-R42S4BLA.js +2 -0
  67. package/dist/chunks/chunk-RYBUYHDL.js +5 -0
  68. package/dist/chunks/chunk-SDPZFH6M.js +4 -0
  69. package/dist/chunks/chunk-SK3RRGHJ.js +142 -0
  70. package/dist/chunks/chunk-TQ475LOI.js +2 -0
  71. package/dist/chunks/chunk-UF3GZ5PO.js +2 -0
  72. package/dist/chunks/chunk-UL6YIT4M.js +2 -0
  73. package/dist/chunks/chunk-V2XJSFFE.js +19 -0
  74. package/dist/chunks/chunk-V4WSBIXB.js +2 -0
  75. package/dist/chunks/chunk-V5RCDBKU.js +2 -0
  76. package/dist/chunks/{chunk-FX4R5PB3.js → chunk-W2CWO4PQ.js} +1 -1
  77. package/dist/chunks/chunk-W33QJA3M.js +2 -0
  78. package/dist/chunks/chunk-WMMESRP3.js +9 -0
  79. package/dist/chunks/chunk-WWPVEK6B.js +127 -0
  80. package/dist/chunks/chunk-X5M7TLJV.js +2 -0
  81. package/dist/chunks/chunk-XDMNJW6J.js +42 -0
  82. package/dist/chunks/{chunk-L22BDZGE.js → chunk-XZSFUGPN.js} +1 -1
  83. package/dist/chunks/client-LTIFNED5.js +2 -0
  84. package/dist/chunks/compaction-config-ECMOFP5H.js +2 -0
  85. package/dist/chunks/{construction-bootstrap-XBHM6NON.js → construction-bootstrap-OAZKGI5Y.js} +1 -1
  86. package/dist/chunks/devtools-MVOFT6N7.js +2 -0
  87. package/dist/chunks/devtools-TXYDDL2A.js +2 -0
  88. package/dist/chunks/dist-5J53DGAO.js +2 -0
  89. package/dist/chunks/errors-ER7ZRPWC.js +2 -0
  90. package/dist/chunks/google-native-WLL27OV7.js +2 -0
  91. package/dist/chunks/host-65E5NM5P.js +2 -0
  92. package/dist/chunks/mistral-native-JXPIDDYZ.js +5 -0
  93. package/dist/chunks/model-DZF6URW3.js +2 -0
  94. package/dist/chunks/permission-YVVMLQ5I.js +2 -0
  95. package/dist/chunks/pi-messages-5LLOZH57.js +16 -0
  96. package/dist/chunks/readline-helpers-UZXWBRXQ.js +2 -0
  97. package/dist/chunks/responses-websocket-Y4N5GXD3.js +2 -0
  98. package/dist/chunks/run-manager-ZFACIZM2.js +2 -0
  99. package/dist/chunks/running-session-Q5Y6A2QV.js +2 -0
  100. package/dist/chunks/skills-TJP6BLZJ.js +2 -0
  101. package/dist/chunks/tool-dispatch-MLM3QTSU.js +2 -0
  102. package/dist/chunks/utils-2QNMYRGA.js +2 -0
  103. package/dist/generated-config-templates.json +6 -0
  104. package/dist/index.d.ts +34 -32
  105. package/dist/index.js +6 -6
  106. package/dist/kodax_bootstrap.js +4 -2
  107. package/dist/kodax_cli.js +1755 -2979
  108. package/dist/kodax_doctor.js +3 -0
  109. package/dist/kodax_resume.js +30 -30
  110. package/dist/manual-topics.json +2211 -0
  111. package/dist/native/darwin-arm64/kodax-text-transaction.node +0 -0
  112. package/dist/native/darwin-arm64/manifest.json +1 -1
  113. package/dist/native/win32-x64/kodax-windows-sandbox.exe +0 -0
  114. package/dist/native/win32-x64/kodax-windows-text-transaction.node +0 -0
  115. package/dist/native/win32-x64/manifest.json +2 -2
  116. package/dist/one-shot-task.js +2 -0
  117. package/dist/provider-auth-cli.js +16 -0
  118. package/dist/provider-capabilities.json +560 -40
  119. package/dist/runtime-daemon-schema.json +1 -0
  120. package/dist/sandbox-network-broker.js +260 -795
  121. package/dist/script-cell.js +1 -0
  122. package/dist/script-worker.cjs +2189 -0
  123. package/dist/sdk-a2a.d.ts +23 -22
  124. package/dist/sdk-a2a.js +6 -8
  125. package/dist/sdk-agent.d.ts +125 -98
  126. package/dist/sdk-agent.js +1 -1
  127. package/dist/sdk-client.d.ts +16 -10
  128. package/dist/sdk-client.js +1 -1
  129. package/dist/sdk-coding.d.ts +109 -80
  130. package/dist/sdk-coding.js +1 -1
  131. package/dist/sdk-experimental-memory.d.ts +3 -3
  132. package/dist/sdk-experimental-memory.js +1 -1
  133. package/dist/sdk-llm.d.ts +265 -14
  134. package/dist/sdk-llm.js +1 -1
  135. package/dist/sdk-mcp.d.ts +3 -3
  136. package/dist/sdk-mcp.js +1 -1
  137. package/dist/sdk-media.d.ts +41 -166
  138. package/dist/sdk-media.js +1 -1
  139. package/dist/sdk-repl.d.ts +81 -51
  140. package/dist/sdk-repl.js +2 -2
  141. package/dist/sdk-runtime.d.ts +216 -2989
  142. package/dist/sdk-runtime.js +1 -1
  143. package/dist/sdk-sandbox.js +1 -1
  144. package/dist/sdk-session.d.ts +15 -14
  145. package/dist/sdk-session.js +1 -1
  146. package/dist/sdk-skills.d.ts +2 -2
  147. package/dist/sdk-skills.js +1 -1
  148. package/dist/semantic-worker.js +121 -75
  149. package/dist/static-text.json +371 -0
  150. package/dist/storage-repair-cli.js +3 -0
  151. package/dist/types-chunks/auth-file.d-ovsHEqD4.d.ts +178 -0
  152. package/dist/types-chunks/{bash-prefix-extractor.d-DFH463j2.d.ts → bash-prefix-extractor.d-CJliu5-D.d.ts} +326 -168
  153. package/dist/types-chunks/{capability-learning.d-B4pxKwP4.d.ts → capability-learning.d-BXDEOON2.d.ts} +4 -4
  154. package/dist/types-chunks/{capability.d-DOF3r0fJ.d.ts → capability.d-DapzKxy3.d.ts} +1 -1
  155. package/dist/types-chunks/{capsule.d-CwpmHGFB.d.ts → capsule.d-EMwSALqK.d.ts} +5 -5
  156. package/dist/types-chunks/{client-contract-CRm9ZpL2.d.ts → client-contract-B7q69yMA.d.ts} +265 -67
  157. package/dist/types-chunks/{controller.d-B4GyqWri.d.ts → controller.d-C0SAuNKu.d.ts} +1 -1
  158. package/dist/types-chunks/{controller.d-P3H97ddz.d.ts → controller.d-D-hPLKaA.d.ts} +71 -11
  159. package/dist/types-chunks/{cost-tracker.d-BeaenODW.d.ts → cost-tracker.d-D1CTx-IO.d.ts} +37 -7
  160. package/dist/types-chunks/{base.d-ZBOdjDUT.d.ts → errors.d-D73qdYbS.d.ts} +91 -74
  161. package/dist/types-chunks/{history-retrieval.d-BzKWDjzG.d.ts → history-retrieval.d-BwEUR9cb.d.ts} +2 -2
  162. package/dist/types-chunks/{manager.d-C8OlTe2J.d.ts → manager.d-BMH8Q6TV.d.ts} +1 -1
  163. package/dist/types-chunks/{manifest.d-COreAnXG.d.ts → manifest.d-YE3-AIeO.d.ts} +1 -1
  164. package/dist/types-chunks/{provider-credential-context.d-BH2OaB1b.d.ts → provider-credential-context.d-Dw-sWcnu.d.ts} +11 -2
  165. package/dist/types-chunks/{provider-request-observation.d-C_bEqr4m.d.ts → provider-request-observation.d-CNe9vse3.d.ts} +4 -2
  166. package/dist/types-chunks/{public-api.d-BLmqDi73.d.ts → public-api.d-BhDU643p.d.ts} +13 -10
  167. package/dist/types-chunks/queue-BxQhqhFM.d.ts +166 -0
  168. package/dist/types-chunks/{resolver.d-DLY01RHx.d.ts → resolver.d-DrkpD8wY.d.ts} +142 -103
  169. package/dist/types-chunks/{review-inbox.d-BTLDdpG2.d.ts → review-inbox.d-Bgt46S7L.d.ts} +16 -3
  170. package/dist/types-chunks/{review-packet.d-Crra1Q7t.d.ts → review-packet.d-ChOfJaNI.d.ts} +7 -7
  171. package/dist/types-chunks/{run-manager.d-DmS1edk4.d.ts → run-manager.d-ChzguipG.d.ts} +48 -12
  172. package/dist/types-chunks/{runtime-client-info-BBBxdU8V.d.ts → runtime-client-info-P_mRDG7j.d.ts} +93 -7
  173. package/dist/types-chunks/runtime-event-BW5Pla7a.d.ts +48 -0
  174. package/dist/types-chunks/sdk-runtime-cDe7qmN3.d.ts +2244 -0
  175. package/dist/types-chunks/{sdk-session-DipY_CCd.d.ts → sdk-session-D3pcSbnA.d.ts} +13 -4
  176. package/dist/types-chunks/{sdk-skills-DokfOoJF.d.ts → sdk-skills-C-UA1A6I.d.ts} +3 -1
  177. package/dist/types-chunks/{side-query.d-DTrhVd_r.d.ts → side-query.d-UFKdWSw7.d.ts} +4 -4
  178. package/dist/types-chunks/{types.d-Jxj49rqO.d.ts → skill-invocation-error.d-gsNNDnnt.d.ts} +24 -14
  179. package/dist/types-chunks/task-results.d-XMdWq0eA.d.ts +15 -0
  180. package/dist/types-chunks/{trusted-repl-entry-B1cb7lAn.d.ts → trusted-repl-entry-Bbkd2HlO.d.ts} +10 -10
  181. package/dist/types-chunks/{types.d-BjOq57-z.d.ts → types.d-Bi8iUd6x.d.ts} +248 -4
  182. package/dist/types-chunks/{types.d-NyCB6ztO.d.ts → types.d-BlXTogOo.d.ts} +24 -13
  183. package/dist/types-chunks/types.d-BvEGNdN-.d.ts +131 -0
  184. package/dist/types-chunks/{types.d-Cb8RdrjU.d.ts → types.d-D8qQjMeo.d.ts} +5 -1
  185. package/dist/types-chunks/{utils.d-Bt6USYa5.d.ts → utils.d-CxHyBvO6.d.ts} +11 -7
  186. package/dist/windows-native-scripts.json +5 -0
  187. package/docs/ARTIFACT_SDK.md +8 -0
  188. package/docs/CLIENT_CONTRACT.md +195 -9
  189. package/docs/SDK_MIGRATION.md +887 -2
  190. package/docs/SPACE_SDK_SEAMS.md +255 -2
  191. package/package.json +33 -6
  192. package/public_docs/README.md +27 -2
  193. package/public_docs/configuration/config-files.md +6 -0
  194. package/public_docs/configuration/custom-providers.md +62 -0
  195. package/public_docs/configuration/providers.md +238 -3
  196. package/public_docs/configuration/sandbox.md +30 -0
  197. package/public_docs/getting-started/quickstart.md +10 -1
  198. package/public_docs/sdk/embedder-guide.md +476 -206
  199. package/dist/chunks/agent-C7MMIRIH.js +0 -2
  200. package/dist/chunks/argument-completer-WIQAV5GP.js +0 -2
  201. package/dist/chunks/chunk-2AM3FRQ7.js +0 -137
  202. package/dist/chunks/chunk-2TBKGO2Q.js +0 -497
  203. package/dist/chunks/chunk-35P7QL2Q.js +0 -2
  204. package/dist/chunks/chunk-5DQTOU2E.js +0 -69
  205. package/dist/chunks/chunk-7NH5BGE4.js +0 -350
  206. package/dist/chunks/chunk-AWYO4MH3.js +0 -635
  207. package/dist/chunks/chunk-CIPS75XZ.js +0 -260
  208. package/dist/chunks/chunk-CRQWSDHV.js +0 -429
  209. package/dist/chunks/chunk-HD5BDOPC.js +0 -2
  210. package/dist/chunks/chunk-JXZMES45.js +0 -12
  211. package/dist/chunks/chunk-KJSZTP5N.js +0 -2
  212. package/dist/chunks/chunk-KYHMB6XR.js +0 -431
  213. package/dist/chunks/chunk-ONUPGMER.js +0 -2
  214. package/dist/chunks/chunk-P42PHZWC.js +0 -351
  215. package/dist/chunks/chunk-SHG3EIH5.js +0 -19
  216. package/dist/chunks/chunk-UH6VOCVP.js +0 -2
  217. package/dist/chunks/chunk-V26LAWJY.js +0 -2
  218. package/dist/chunks/chunk-WOHHMGEF.js +0 -394
  219. package/dist/chunks/chunk-WONYJBAA.js +0 -2
  220. package/dist/chunks/chunk-XJWNIFC2.js +0 -298
  221. package/dist/chunks/chunk-XMWTEVFZ.js +0 -1481
  222. package/dist/chunks/chunk-YJTIPSNW.js +0 -22
  223. package/dist/chunks/chunk-YVBBU6K5.js +0 -5
  224. package/dist/chunks/client-XFASU74S.js +0 -2
  225. package/dist/chunks/compaction-config-JZNGDKWW.js +0 -2
  226. package/dist/chunks/devtools-CD6KSIHE.js +0 -2
  227. package/dist/chunks/devtools-XR5F2C6T.js +0 -2
  228. package/dist/chunks/dist-M4HLQAX7.js +0 -2
  229. package/dist/chunks/dist-ZLR4OTDD.js +0 -2
  230. package/dist/chunks/host-EHVJWNGS.js +0 -2
  231. package/dist/chunks/readline-helpers-KIDMSK76.js +0 -2
  232. package/dist/chunks/run-manager-HNGIYMG7.js +0 -2
  233. package/dist/chunks/tool-dispatch-ON33NJR5.js +0 -2
  234. package/dist/chunks/utils-RHR6YHB2.js +0 -2
package/README.md CHANGED
@@ -36,6 +36,35 @@
36
36
 
37
37
  ---
38
38
 
39
+ ## Current development after alpha.10
40
+
41
+ The unified Host cutover shipped in the `v0.7.97-alpha.12` tag retires
42
+ `runtimeExitSettlement` and `settleKodaXRuntimeExit()`. Version-labelled
43
+ paragraphs below describe their historical releases; use the [current SDK
44
+ migration guide](docs/SDK_MIGRATION.md) for supported interfaces and
45
+ [provider contracts](docs/LLM_INTEGRATION.md) for credential/account-preserving
46
+ upgrades. Existing SDK/config/API_KEY entries remain.
47
+
48
+ Agent / Coding / experimental Script work modes ship with Coding as the
49
+ default. Select them with `--work-mode`, `/work-mode`, or Product Client
50
+ Session `workMode`; this is independent of permissions and model choice.
51
+ SDK/Host paths now share the corresponding settings, question outcomes,
52
+ saved original tool reads, structured task reports and estimated-token
53
+ progress. See the [SDK alignment and migration checklist](docs/SDK_MIGRATION.md#2026-10-29-未发布改动对齐)
54
+ and [English integration guide](public_docs/sdk/embedder-guide.md#post-alpha10-sdk-alignment).
55
+ These source additions shipped in the `v0.7.97-alpha.11` tag; the
56
+ `v0.7.97-alpha.12` tag ships the unified shared-Host cutover, the
57
+ FEATURE_302 provider/OAuth credential parity stack, and the 2026-11-01
58
+ full-chain audit's Windows recovery, credential and permission fixes;
59
+ the `v0.7.97-beta.1` tag completes the Space-facing Host execution and
60
+ Session seams with Main default Skills, Quick Ask Session promotion and
61
+ atomic core-config publication; the `v0.7.97-beta.2` tag hardens Script
62
+ execution reliability with typed program data, native tool-name wire
63
+ fidelity, on-demand output contracts and shared Host recovery/Workflow
64
+ finalization fixes.
65
+ Issue 371's historical first-read latency and Script model-efficiency
66
+ acceptance remain open.
67
+
39
68
  ## Install in 30 seconds
40
69
 
41
70
  ```bash
@@ -294,10 +323,12 @@ name, not an API key value. Put the custom provider's actual API key in the
294
323
  `MY_LLM_API_KEY` environment variable, then close the current terminal and open
295
324
  a new one before running `kodax`.
296
325
 
326
+ For native OpenAI Responses, add `"api": "responses"` to the custom provider. Omitted `api` keeps Chat Completions. Responses uses client-managed history and preserves ordered output; see [configuration and scope](public_docs/configuration/custom-providers.md#native-responses-api).
327
+
297
328
  `userAgentMode` defaults to `"compat"`, which sends `KodaX` instead of the official SDK User-Agent. Switch it to `"sdk"` only when your gateway expects the upstream SDK header.
298
329
  For custom reasoning models, `reasoning: { efforts, default }` is the preferred v0.7.57 shape; use `"reasoning": "none"` for models without thinking capability. SDK hosts should render effort pickers from `reasoningProfile.supportedEfforts` / `defaultEffort` rather than assuming a fixed five-option ladder.
299
330
 
300
- An undeclared OpenAI-compatible reasoning profile means capability is unknown. Omitted effort uses `auto`: the declared default wins, otherwise KodaX tries `max` and lowers only after explicit parameter/value rejection. `none` attempts to disable reasoning, then tries the lowest available thinking effort if disabling is rejected. SDK hosts receive `onReasoningResolved` with the requested effort, sent effort, fallback reasons, and `verified: false`; request acceptance does not prove that the model honored the strength. See [reasoning negotiation](docs/DD.md#23-custom-openai-compatible-reasoning) for cache and replay contracts.
331
+ For the default Chat Completions API, an undeclared OpenAI-compatible reasoning profile means capability is unknown. Omitted effort uses `auto`: the declared default wins, otherwise KodaX tries `max` and lowers only after explicit parameter/value rejection. `none` attempts to disable reasoning, then tries the lowest available thinking effort if disabling is rejected. SDK hosts receive `onReasoningResolved` with the requested effort, sent effort, fallback reasons, and `verified: false`; request acceptance does not prove that the model honored the strength. See [reasoning negotiation](docs/DD.md#23-custom-openai-compatible-reasoning) for cache and replay contracts.
301
332
 
302
333
  #### OpenAI-compatible reasoning providers
303
334
 
@@ -443,12 +474,13 @@ try {
443
474
 
444
475
  `connectKodaXClient` attaches without starting or replacing a Host. The Node
445
476
  connector does not provide browser HTTP/WebSocket transport. The retained
446
- `/runtime` inline/daemon APIs are for explicit low-level Host integration;
477
+ `/runtime` APIs connect trusted integrations to the same shared Host;
447
478
  Worker-hosted embedded Runtime is removed. The following structured-failure
448
479
  reference is scoped to that low-level API, not fields promised by Product Client.
449
480
 
450
481
  Both product entries accept optional `onStartupProgress` with the shared
451
- `ClientStartupProgress` type. Launcher `ready` means the Client is usable;
482
+ `ClientStartupProgress` type, including `initializing` with actual Host phases
483
+ for new Hosts. Phase observation adds no extra probes or waits. Launcher `ready` means the Client is usable;
452
484
  Session loading and UI rendering have separate boundaries. See the
453
485
  [startup progress example](public_docs/sdk/embedder-guide.md#show-local-startup-progress).
454
486
 
@@ -484,8 +516,10 @@ See [Structured Runtime failures](public_docs/sdk/embedder-guide.md#structured-c
484
516
  for the field contract, taxonomy, migration guidance, and security boundary.
485
517
 
486
518
  The product CLI uses the shared Host; `--runtime-mode`, `KODAX_RUNTIME_MODE`
487
- and the `runtimeMode` config key are removed. Explicit low-level inline
488
- embedding retains private ownership, while daemon clients detach independently.
519
+ and the `runtimeMode` config key are removed. The unreleased Host-only SDK
520
+ cutover also retires public embedded construction and inline owner switching.
521
+ Use `/client` for product execution; daemon clients detach independently.
522
+ See [migration and downgrade limits](docs/SDK_MIGRATION.md#统一-host-sdk-收口未发布).
489
523
  Worker-hosted embedded Runtime is no longer an option.
490
524
 
491
525
  ```bash
@@ -794,6 +828,98 @@ starts, upgrades, or waits. See
794
828
  Every v0.7.96 stable and v0.7.97-alpha.1/alpha.2/alpha.3 contract is
795
829
  retained.
796
830
 
831
+ **v0.7.97-beta.2 release:** Script execution reliability hardening — VM
832
+ call paths expose complete collision-safe tool aliases beside original
833
+ names, typed program data carries normalized read windows and trusted
834
+ structured JSON, and duplicate model output is projected only when the
835
+ original receipt stays fully readable. Native tool names are encoded at
836
+ the Anthropic-compatible wire boundary and restore canonical identity,
837
+ arguments, permissions and deltas; an isolated optional sourceContent
838
+ view preserves original content beside display output, and Host tools
839
+ may declare outputSchema served on demand through `mcp_describe` without
840
+ enlarging default menus; missing Node globals gain bounded contextual
841
+ guidance without displacing original QuickJS error JSON or settled
842
+ receipts. Shared Host recovery refreshes promoted observers, preserves
843
+ owner-bound pending input recovery with idempotent withdrawal receipts,
844
+ reclaims proven dead history locks and enforces trusted Agent mode before
845
+ execution; Host-owned repo diagnostics/prewarm and durable Workflow
846
+ finalization with physical task draining and protected project references
847
+ land. Bounded real-model validation records Script model-facing
848
+ reliability as recommend-iterate; no efficiency or general intelligence
849
+ improvement is claimed. Tagging and publication remain separate. See the
850
+ [v0.7.97-beta.2 release notes](docs/release.md#v0797-beta2-release-preparation).
851
+ Every v0.7.96 stable and v0.7.97-alpha.1 through beta.1 contract is
852
+ retained.
853
+
854
+ **v0.7.97-beta.1 release:** Space-facing Host execution and Session seams
855
+ complete — Main-owned capability-gated default Skills and consumption-time
856
+ execution bindings select committed expert/connector state with fresh
857
+ credential/tool leases at actual Product input consumption, and Quick Ask
858
+ promotes Sessions through Host-owned revision checks with durable
859
+ request-ID reconciliation while preserving the original Session and history.
860
+ Plain redirect Run boundaries persist apart from legacy explicit Skill queues
861
+ and survive cold recovery with strict missing-method rejection; Main bindings
862
+ resolve before steer authority and retain the active Run's principal and
863
+ lease boundaries. Every core configuration update publishes atomically under
864
+ the shared lock with old bytes retained on failed writes, damaged provider
865
+ collections rejected before mutation, secret-free errors and bounded Windows
866
+ reader-denied replacement. The complete daemon schema ships as packaged data
867
+ inside the npm inventory while the CLI keeps its size budget; owner-local
868
+ temporary Run results stay awaitable after Host Session cleanup. Windows
869
+ protected paths retain lexical and physical short-name fences, and bare
870
+ `resume` discovery paints immediate `Finding sessions` feedback without
871
+ extra startup work (Issue 371's historical first-read investigation remains
872
+ open). Tagging and publication remain separate. See the
873
+ [v0.7.97-beta.1 release notes](docs/release.md#v0797-beta1-release-preparation).
874
+ Every v0.7.96 stable and v0.7.97-alpha.1 through alpha.12 contract is
875
+ retained.
876
+
877
+ **v0.7.97-alpha.12 release:** Public product execution converges on the
878
+ independent shared Host — embedded/default Runtime construction, inline
879
+ owner switching and function-based in-process external-agent Hosts are
880
+ retired behind an explicit daemon launcher with one-way abandoned-owner
881
+ policy migration, and `runtimeExitSettlement`/`settleKodaXRuntimeExit()`
882
+ retire. FEATURE_302 provider/OAuth credential parity lands the native
883
+ Responses transport, ordered history, native cloud protocols with scoped
884
+ authentication, Mistral Pi, native media classification, shared file
885
+ credentials bound to actual provider connections and hidden API-key setup;
886
+ Claude 5.5 history fragments and per-message effort controls join the LLM
887
+ layer; manual data moves out of the CLI JavaScript budget; and the
888
+ 2026-11-01 full-chain audit's Windows recovery, credential and permission
889
+ hardening ships with lock diagnostics and a Windows streaming-history PTY
890
+ CI gate. Tagging and publication remain separate. See the
891
+ [v0.7.97-alpha.12 release notes](docs/release.md#v0797-alpha12-release-preparation).
892
+ Every v0.7.96 stable and v0.7.97-alpha.1 through alpha.11 contract is
893
+ retained.
894
+
895
+ **v0.7.97-alpha.11 release:** Explicit Agent, Coding and experimental Script
896
+ work modes land through the CLI, `/work-mode` and managed SDK/Session paths —
897
+ Coding stays the default and Script runs supported leaf tools through the
898
+ existing permission and receipt boundaries. Ark, MiMo and MiniMax catalogs
899
+ refresh their reasoning and capacity metadata; non-interactive question
900
+ outcomes are preserved with Host-owned deadlines; Skill `Bash(pattern)` rules
901
+ admit a single parsed command; MCP tool originals stay readable through
902
+ `part: 'original'` across daemon IPC and Host restart; structured task reports
903
+ project into Product live views and recovered history; streaming progress
904
+ shows consistent estimated tokens; Windows stale-process recovery and
905
+ history-browsing cursor resync are corrected and sandbox filesystem
906
+ capabilities are validated at startup. Tagging and publication remain
907
+ separate. See the
908
+ [v0.7.97-alpha.11 release notes](docs/release.md#v0797-alpha11-release-preparation).
909
+ Every v0.7.96 stable and v0.7.97-alpha.1 through alpha.10 contract is
910
+ retained.
911
+
912
+ **v0.7.97-alpha.10 release:** Checkpointed Runs and task trees resume after
913
+ Host restart with fresh scoped authority on top of durable context-capacity
914
+ recovery boundaries; Kimi K3.1 provider routes join the registry with all
915
+ seven effort levels; AskUser questions wait indefinitely by default with
916
+ explicit skip and `unanswered` results. SDK startup callbacks expose internal
917
+ Host phases, and exit recovery separates safe startup from historical unknown
918
+ cleanup acknowledgements. Tagging and publication remain separate. See the
919
+ [v0.7.97-alpha.10 release notes](docs/release.md#v0797-alpha10-release-preparation).
920
+ Every v0.7.96 stable and v0.7.97-alpha.1 through alpha.9 contract is
921
+ retained.
922
+
797
923
  **v0.7.97-alpha.9 release:** Checks Session admission through canonical
798
924
  identity metadata instead of loading complete historical transcripts, so a
799
925
  readable metadata header with an unreadable body (for example a Windows
@@ -1518,7 +1644,7 @@ KodaX has two layers that consumers should understand separately:
1518
1644
  | `packages/repl` | `@kodax-ai/kodax/repl` | Full package | Ink TUI + permission modes + commands (217 exports) | Terminal-UI consumers |
1519
1645
  | `packages/repl` | `@kodax-ai/kodax/session` | **Narrow subset** | Session management only — `listSessions` / `loadFullTranscript` / `appendClientNotice` / `forkSession` / `compactSession` / `watchSessions` / ... (17 exports) | IDE plugins and desktop hosts reading session history |
1520
1646
  | `src` | `@kodax-ai/kodax/client` | Product API | Shared Host connection and `KodaXProductClient` contract | TUI, desktop/IDE and automation applications |
1521
- | `src` | `@kodax-ai/kodax/runtime` | Host API | Explicit inline/daemon runtime facade, sessions/runs/events/permissions/catalog/MCP/artifacts/diagnostics/external agents, daemon protocol schema (10 exports) | Trusted Host integration |
1647
+ | `src` | `@kodax-ai/kodax/runtime` | Host API | Shared-Host runtime facade, sessions/runs/events/permissions/catalog/MCP/artifacts/diagnostics/external agents, daemon protocol schema (10 exports) | Trusted Host integration |
1522
1648
  | `src` | `@kodax-ai/kodax/sandbox` | Host API | Explicit ASRT capability/doctor/setup and host-owned contained command execution; unavailability never means silent ordinary execution | SDK hosts that need standalone process containment |
1523
1649
  | `src` | `@kodax-ai/kodax/a2a` | Integration edge | A2A 1.0 Agent Card discovery, JSON-RPC/SSE F258 executor, safe fetch policy, and authenticated Runtime-backed Agent server | Agent orchestrators and KodaX hosts |
1524
1650
 
@@ -1532,7 +1658,7 @@ KodaX has two layers that consumers should understand separately:
1532
1658
 
1533
1659
  **Inline Workflow Authoring (FEATURE_246, v0.7.58; F270 update in v0.7.72)**: the Worker can author and run a workflow inline via the model-callable `run_workflow` tool when Workflow intent is explicit. It scouts the codebase first, bakes concrete findings into child prompts, and runs the script through the sandbox, static-validation, and postcondition-verification pipeline. F270 retires AMAW and complexity-driven activation; AMA keeps explicit `/workflow`, named/SDK, and natural-language Workflow requests. Workflow child Agents now run on the unified Actor control plane. See [docs/features/v0.7.58.md](docs/features/v0.7.58.md), [docs/features/v0.7.72.md](docs/features/v0.7.72.md), and ADR-044/046/047/048/049/055.
1534
1660
 
1535
- **Historical Workflow Activation Tiers (FEATURE_248 + FEATURE_249, v0.7.59; superseded by F270 in v0.7.72)**: v0.7.59 introduced AMAW and explicit-request AMA behavior. F270 retires AMAW and its complexity-driven directive. SA remains solo; AMA is the single adaptive multi-Agent mode and activates Workflow only from explicit Workflow intent. See [docs/features/v0.7.59.md](docs/features/v0.7.59.md) and [docs/features/v0.7.72.md](docs/features/v0.7.72.md).
1661
+ **Historical Workflow Activation Tiers (FEATURE_248 + FEATURE_249, v0.7.59; superseded by F270 in v0.7.72)**: v0.7.59 introduced AMAW and explicit-request AMA behavior. F270 retires AMAW and its complexity-driven directive. CLI and REPL tasks use AMA; explicit SDK SA selection and the internal solo executor remain compatible. AMA is the single adaptive multi-Agent mode and activates Workflow only from explicit Workflow intent. See [docs/features/v0.7.59.md](docs/features/v0.7.59.md) and [docs/features/v0.7.72.md](docs/features/v0.7.72.md).
1536
1662
 
1537
1663
  **Progressive Disclosure on the Managed Tool Path (FEATURE_250, v0.7.60; current policy corrected in v0.7.74)**: the deferred-tool mechanism applies to the managed AMA path as well as SA. The current deferred set contains exactly 11 tools: six repo-intelligence tools, four web/code discovery tools, and `run_workflow`. Their `input_schema` remains directly callable while `tool_search` provides the full description on demand. The five fixed `mcp_*` facades and the `get_goal` / `create_goal` / `update_goal` lifecycle tools stay resident with their complete contracts. The v0.7.74 goal correction adds only about 109 estimated schema tokens versus the former hints (`get_goal` is actually 12 tokens smaller when resident), removes a discovery round trip, and changes no tool schema, handler, permission, goal state, or compaction-protection behavior. See [docs/features/v0.7.60.md](docs/features/v0.7.60.md) and [docs/features/v0.7.74.md](docs/features/v0.7.74.md#feature_250-v0774-correction-resident-goal-lifecycle-tools).
1538
1664
 
@@ -1544,7 +1670,7 @@ KodaX has two layers that consumers should understand separately:
1544
1670
 
1545
1671
  **Active-Run Interrupt Input (v0.7.74)**: embedded Runtime and the shared daemon advertise `interruptInput:1`. `runtime.runs.submitInput()` queues an immutable, ordered input for the current active Actor Run; all inputs admitted before one safe Runner boundary are delivered FIFO as separate user messages in the next LLM request, without creating continuation Runs. Queued/delivered state is visible in typed Run snapshots/events, delivery is acknowledged against the exact consumed IDs, and terminal cleanup prevents undelivered input from leaking into later Runs.
1546
1672
 
1547
- **External Agent SDK Plane (FEATURE_258, v0.7.67)**: `/agent` exports the protocol-neutral executor, registration, policy, credential-broker, artifact-policy, catalog, and durable task contracts. `/runtime` exposes the installed plane through `admin.agentRegistrations`, `agents`, and `agentTasks`, with the same DTO service methods over embedded and daemon clients. Executor factories are host functions: install them in an inline owner or while creating a new in-process daemon owner; they cannot be injected through an existing daemon connection or across a Runtime Worker boundary. Plane shutdown is terminal: pending waits and all later service calls reject. Restricted Workflow scripts preserve validated `phase` and external `target` routing. See the [complete owner/consumer recipes and safety contract](public_docs/sdk/embedder-guide.md#18-external-agent-executor-plane-feature_258-v0767).
1673
+ **External Agent SDK Plane (FEATURE_258, v0.7.67)**: `/agent` exports the protocol-neutral executor, registration, policy, credential-broker, artifact-policy, catalog, and durable task contracts. `/runtime` exposes the installed plane through `admin.agentRegistrations`, `agents`, and `agentTasks`, through the shared Host DTO services. The unified Host cutover retires public executor-factory injection and in-process owner construction. Configure supported A2A agents in the Host; arbitrary executor functions remain a standalone library integration and have no transparent product Host equivalent. Plane shutdown is terminal: pending waits and all later service calls reject. Restricted Workflow scripts preserve validated `phase` and external `target` routing. See the [complete owner/consumer recipes and safety contract](public_docs/sdk/embedder-guide.md#18-external-agent-executor-plane-feature_258-v0767).
1548
1674
 
1549
1675
  **Cost-Disciplined Workflow SDK (FEATURE_259, v0.7.67)**: SDK callers configure run-scoped `modelTiers` and `workflow.maxConcurrency`, while workflow authors express semantic `fast` / `balanced` / `deep` intent. Terminal workflow events expose resolved tier/source/fallback/usage/duration facts, and each durable `run.json` contains an `efficiencyReport` with token coverage, role/tier starts, packet-read topology, review waves, and quality-gate outcomes. See the [routing and telemetry contract](public_docs/sdk/embedder-guide.md#20-cost-disciplined-workflow-routing-and-telemetry-feature_259-v0767).
1550
1676
 
@@ -1552,7 +1678,7 @@ KodaX has two layers that consumers should understand separately:
1552
1678
 
1553
1679
  **Experimental Memory Agent SDK (FEATURE_260 + FEATURE_292)**: `/experimental-memory` exposes the source-compatible `MemoryAgent`/`MemorySession` lifecycle plus the additive `MemoryManagementAgent` facade when `createMemoryAgent()` receives a `MemoryManagementController`. That facade provides governed `list()`, `remember()`, and `forget()` through the same plane used by the conversation-first product surface. Passive recall is zero-wait; `query()` is read-only and deliberate; recalled content stays low-authority, and safety/scope gates remain deterministic. See the [direct session and boundary guide](public_docs/sdk/embedder-guide.md#21-experimental-governed-memory--experimental-memory-feature_260--feature_275--feature_292-v0768v0785).
1554
1680
 
1555
- **Bidirectional A2A 1.0 (FEATURE_267, v0.7.69)**: `/a2a` discovers allowed Agent Cards and installs a JSON-RPC/SSE executor through the existing F258 plane. Configured outbound Agents are also registered automatically as `external:<name>` in embedded CLI and user-daemon Runtimes, so the main Agent can orchestrate them without host code. One `a2a.json` may hold many outbound registrations and at most one inbound server, which publishes either the Runtime default or one validated `~/.kodax/agents/*.md` Agent behind an authenticated Runtime facade. The built-in listener is loopback-only and will not return a port blocked by Fetch-compatible clients; public deployment uses `handle()` behind host-owned TLS and authorization. A2A 0.3, gRPC, HTTP+JSON, push notifications, and automatic public exposure are not advertised. See the [client/server recipes and security boundaries](public_docs/sdk/embedder-guide.md#22-bidirectional-a2a-10--a2a-feature_267-v0769).
1681
+ **Bidirectional A2A 1.0 (FEATURE_267, v0.7.69)**: `/a2a` discovers allowed Agent Cards and installs a JSON-RPC/SSE executor through the existing F258 plane. Configured outbound Agents are also registered automatically as `external:<name>` in the shared Host, so the main Agent can orchestrate them without host code. One `a2a.json` may hold many outbound registrations and at most one inbound server, which publishes either the Runtime default or one validated `~/.kodax/agents/*.md` Agent behind an authenticated Runtime facade. The built-in listener is loopback-only and will not return a port blocked by Fetch-compatible clients; public deployment uses `handle()` behind host-owned TLS and authorization. A2A 0.3, gRPC, HTTP+JSON, push notifications, and automatic public exposure are not advertised. See the [client/server recipes and security boundaries](public_docs/sdk/embedder-guide.md#22-bidirectional-a2a-10--a2a-feature_267-v0769).
1556
1682
 
1557
1683
  **A2A interoperability and authentication hardening** keeps a discovered
1558
1684
  interface on the trusted Agent Card origin and sends credentials only when one
@@ -1641,11 +1767,11 @@ later re-enable. Private-address access and non-loopback plaintext HTTP are
1641
1767
  independent, persisted, default-deny permissions (`--allow-private` and
1642
1768
  `--allow-insecure-http`); exact loopback HTTP remains available without either.
1643
1769
  OAuth token endpoints retain their stricter HTTPS-or-exact-loopback rule.
1644
- SDK hosts load this same configured plane by wiring
1645
- `createConfiguredA2ARuntimeIntegration({ configHome })` and passing its
1646
- `runtimeOptions` as `externalAgents` — the CLI does this for its embedded
1647
- sessions and the daemon Host it launches, and the `worker.configuredA2A` opt-in
1648
- was removed with the Worker facade in v0.7.97. `a2a serve` loads
1770
+ The shared Host loads this configured plane through its internal
1771
+ `createConfiguredA2ARuntimeIntegration({ configHome })` wiring. SDK clients
1772
+ connect to that Host; public `externalAgents` function injection is retired.
1773
+ The `worker.configuredA2A` opt-in was removed with the Worker facade in v0.7.97.
1774
+ `a2a serve` loads
1649
1775
  its configured MCP/Extension capability surface before listening and pins that
1650
1776
  execution authority; it hot-reloads publication, authentication, and limits.
1651
1777
 
@@ -1783,7 +1909,7 @@ import { SkillRegistry } from '@kodax-ai/kodax/skills'; // zero-dep skil
1783
1909
  import { loadConfig } from '@kodax-ai/kodax/repl'; // REPL config / session helpers
1784
1910
  import { createMcpManager } from '@kodax-ai/kodax/mcp'; // MCP popout manager (v0.7.42)
1785
1911
  import { listSessions } from '@kodax-ai/kodax/session'; // session history helpers
1786
- import { createKodaXRuntime } from '@kodax-ai/kodax/runtime'; // embedded/daemon runtime API
1912
+ import { ensureKodaXRuntime } from '@kodax-ai/kodax/runtime'; // shared Host runtime API
1787
1913
  import { runKodaXSandboxed } from '@kodax-ai/kodax/sandbox'; // standalone ASRT containment
1788
1914
  import { createKodaXA2AServer } from '@kodax-ai/kodax/a2a'; // A2A 1.0 client/server edge
1789
1915
  import { createMemoryAgent } from '@kodax-ai/kodax/experimental-memory'; // opt-in memory SDK
@@ -1791,7 +1917,7 @@ import { createMemoryAgent } from '@kodax-ai/kodax/experimental-memory'; // opt-
1791
1917
 
1792
1918
  All 14 SDK entries (root + 13 subpaths, including `/client`) share internal code via ESM chunk splitting — importing from `/agent` does not pull in `/repl`'s Ink + React surface.
1793
1919
 
1794
- For the product contract and separate low-level inline/daemon ownership,
1920
+ For the product contract and low-level shared Host connections,
1795
1921
  external-agent registration and task control, session cursor pagination, workflow
1796
1922
  model-tier routing, and efficiency telemetry — see the
1797
1923
  [SDK Embedder Integration Guide](public_docs/sdk/embedder-guide.md).
@@ -2115,7 +2241,7 @@ This development tree exposes 17 SDK subpaths plus the root. Shared product
2115
2241
  applications use `@kodax-ai/kodax/client`; independent libraries and trusted Host
2116
2242
  APIs remain available through the other subpaths. See the [Client contract](docs/CLIENT_CONTRACT.md)
2117
2243
  and [SDK migration guide](docs/SDK_MIGRATION.md). This documentation was checked
2118
- against package version `0.7.97-alpha.9`; npm publication is separate from
2244
+ against package version `0.7.97-beta.2`; npm publication is separate from
2119
2245
  the current development-tree contract.
2120
2246
 
2121
2247
  ```bash
@@ -2133,7 +2259,7 @@ import { runInkInteractiveMode } from '@kodax-ai/kodax/repl'; // Ink TUI ent
2133
2259
  import { SkillRegistry } from '@kodax-ai/kodax/skills'; // zero-dep skill loader
2134
2260
  import { createMcpManager } from '@kodax-ai/kodax/mcp'; // MCP popout manager (v0.7.42)
2135
2261
  import { listSessions } from '@kodax-ai/kodax/session'; // session history helpers
2136
- import { createKodaXRuntime } from '@kodax-ai/kodax/runtime'; // embedded/daemon runtime API
2262
+ import { ensureKodaXRuntime } from '@kodax-ai/kodax/runtime'; // shared Host runtime API
2137
2263
  import { runKodaXSandboxed } from '@kodax-ai/kodax/sandbox'; // explicit standalone containment
2138
2264
  import { createKodaXA2AServer } from '@kodax-ai/kodax/a2a'; // A2A 1.0 client/server edge
2139
2265
  import { createMemoryAgent } from '@kodax-ai/kodax/experimental-memory'; // opt-in experimental memory SDK
@@ -2304,17 +2430,17 @@ await runInkInteractiveMode({ provider: 'zhipu-coding', effort: 'auto' });
2304
2430
  |----------|----------------------|-------------------|---------------|
2305
2431
  | anthropic | `ANTHROPIC_API_KEY` | Native | claude-sonnet-4-6 (`claude-opus-4-6` / `claude-haiku-4-5` via `/model`) |
2306
2432
  | openai | `OPENAI_API_KEY` | Native | gpt-5.3-codex (`gpt-5.4` / `gpt-5.3-codex-spark` via `/model`) |
2307
- | kimi | `KIMI_API_KEY` | Native | kimi-k2.7-code (262,144-token context; `kimi-k3` 1M / `kimi-k2.7-code-highspeed` / `kimi-k2.6` / `kimi-k2.5` via `/model`) |
2308
- | kimi-code | `KIMI_CODE_API_KEY` | Native | k3-256k (Moderato+, 256K, direct upstream ID; `k3` 1M / `kimi-for-coding` K2.7 Code / `kimi-for-coding-highspeed` via `/model`) |
2433
+ | kimi | `KIMI_API_KEY` | Native | kimi-k2.7-code (262,144-token context; `kimi-k3.1-pro` / `kimi-k3.1-pro-highspeed` / `kimi-k3` 1M / `kimi-k2.7-code-highspeed` / `kimi-k2.6` / `kimi-k2.5` via `/model`) |
2434
+ | kimi-code | `KIMI_CODE_API_KEY` | Native | k3-256k (Moderato+, 256K, direct upstream ID; `k3.1-pro` / `k3.1-pro-highspeed` / `k3` 1M / `kimi-for-coding` / `kimi-for-coding-highspeed` via `/model`; K3.1 requires thinking) |
2309
2435
  | qwen | `QWEN_API_KEY` | Native | qwen3.5-plus |
2310
2436
  | qwen-token-plan | `QWEN_TOKEN_API_KEY` | Native | qwen3.8-max (Anthropic-compat; legacy `qwen3.8-max-preview` plus `qwen3.7-max` / `qwen3.7-plus` / `qwen3.6-flash` / `glm-5.2` / `deepseek-v4-pro` via `/model`; all 1M context; image input on both Qwen 3.8 IDs / 3.7 Plus / 3.6 Flash) |
2311
2437
  | zhipu | `ZHIPU_API_KEY` | Native | glm-5 (`glm-5.3` / `glm-5.2` 1M ctx, plus `glm-5.1` / `glm-5-turbo` via `/model`; GLM-5.3 is pre-registered while the public API remains marked upcoming) |
2312
2438
  | zhipu-coding | `ZHIPU_CODING_API_KEY` | Native | glm-5.3 (1M ctx, 128K output; `glm-5.2` rollback plus `glm-5-turbo` / `glm-4.7` via `/model`; raw upstream IDs) |
2313
2439
  | zai-coding | `ZAI_CODING_API_KEY` | Native | glm-5.3 (`glm-5.2` rollback; raw upstream IDs; switched from glm-5.2 default on 2026-08-15) |
2314
- | minimax-coding | `MINIMAX_CODING_API_KEY` | Native | MiniMax-M3 (Frontier Coding, native multimodal + 1M ctx; legacy `MiniMax-M2.7` / `MiniMax-M2.7-highspeed` remain selectable via `/model`) |
2315
- | mimo | `MIMO_API_KEY` | Native | mimo-v2.5-pro (Xiaomi MiMo pay-per-token, Anthropic-compat) |
2316
- | mimo-coding | `MIMO_CODING_API_KEY` | Native | mimo-v2.5-pro (Xiaomi Token Plan, Anthropic-compat) |
2317
- | ark-coding | `ARK_CODING_API_KEY` | Native | glm-5.3 (Volcengine Ark Coding Plan — GLM-5.3 (1M ctx, 128K out) · GLM-5.2 (alias: `glm-latest`) · Kimi K2.7 Code / K2.6 · MiniMax M3 / M2.7 · DeepSeek V4 Pro / V4 Flash · Doubao Seed 2.0 Code / Pro / Lite · Doubao Seed Code) |
2440
+ | minimax-coding | `MINIMAX_CODING_API_KEY` | Native | MiniMax-M3.1-Flash (M Plan, 1M ctx, five effort levels; always-on thinking) |
2441
+ | mimo | `MIMO_API_KEY` | Native | mimo-v2.6-pro (Xiaomi MiMo pay-per-token; V2.6 Flash also selectable) |
2442
+ | mimo-coding | `MIMO_CODING_API_KEY` | Native | mimo-v2.6-pro (Xiaomi Token Plan; V2.6 Flash also selectable, image input, thinking on/off) |
2443
+ | ark-coding | `ARK_CODING_API_KEY` | Native | glm-5.3 (Ark Coding Plan; new `deepseek-v4.1-flash` / `deepseek-v4.1-flash-economy`, `glm-5.3-flash`, `kimi-k3.1-pro` / `kimi-k3` / `kimi-k2.8-preview`; all six accept images; previous configured IDs retained) |
2318
2444
  | deepseek | `DEEPSEEK_API_KEY` | Native | deepseek-flash (Anthropic-compat; DeepSeek-V4.1-Flash, 1M ctx, native image input; legacy text-only `deepseek-v4-pro`, via `/model`) |
2319
2445
  | gemini-cli | Provider CLI authentication (no KodaX API-key variable) | Prompt-only / CLI bridge | (via gemini CLI) |
2320
2446
  | codex-cli | Provider CLI authentication (no KodaX API-key variable) | Prompt-only / CLI bridge | (via codex CLI) |
@@ -2341,7 +2467,7 @@ kodax --session list
2341
2467
  kodax --parallel "Read package.json and tsconfig.json"
2342
2468
 
2343
2469
  # Adaptive multi-agent (AMA) mode — V2 Worker single-loop with Actor collaboration
2344
- kodax --agent-mode ama "Analyze code structure, check test coverage, find bugs"
2470
+ kodax "Analyze code structure, check test coverage, find bugs"
2345
2471
  ```
2346
2472
 
2347
2473
  ---
@@ -2430,10 +2556,25 @@ kodax "please use /skill:code-review src/"
2430
2556
 
2431
2557
  Set `disable-model-invocation: true` for a Skill that must only be loaded after an explicit slash invocation. This keeps it out of natural-language model discovery without disabling `/<name>` or `/skill:<name>`.
2432
2558
 
2433
- Built-in skills include:
2434
- - **code-review** - Code review and quality analysis
2435
- - **tdd** - Test-driven development workflow
2436
- - **git-workflow** - Git commit and workflow automation
2559
+ The five core built-in Skills are model-discoverable:
2560
+
2561
+ - **code-review** — Review changes without editing; includes read-only Git inspection.
2562
+ - **tdd** — Regression-first fixes or test-first work; tests-only requests may pass on the first run and do not authorize production edits.
2563
+ - **git-workflow** — Perform requested Git operations; explaining Git alone does not invoke the workflow.
2564
+ - **skill-creator** — Create, change, validate, package or evaluate reusable Skills; packaging does not install into the user's catalog.
2565
+ - **visual-review** — Review actual visual evidence and state unchecked scope honestly.
2566
+
2567
+ Skill shell declarations match the entire command, for example `Bash(git *, npm *)`,
2568
+ and retain Host permission and sandbox checks. The optional `artifact-review`
2569
+ Skill is registered with the [Artifact adapter](docs/ARTIFACT_SDK.md); it documents
2570
+ that adapter's supported formats and parameters. Both visual Skills may use the
2571
+ existing managed preparation flow within the task's authorization; denied or
2572
+ missing capabilities leave the affected scope unverified.
2573
+
2574
+ Skill Creator helpers use the public SDK, with a separately configured Provider,
2575
+ model and cwd. `run-trigger-eval.js` performs single-description semantic screening;
2576
+ actual triggering requires observed `skill` calls with the complete visible catalog.
2577
+ See its [evaluation reference](packages/agent/src/capabilities/skills/builtin/skill-creator/references/evaluation.md).
2437
2578
 
2438
2579
  Skills are stored in `~/.kodax/skills/` and can be extended with custom skills.
2439
2580
  F263 background learning is Memory-first: a single correction does not create
package/README_CN.md CHANGED
@@ -36,6 +36,26 @@
36
36
 
37
37
  ---
38
38
 
39
+ ## alpha.10 之后的当前开发
40
+
41
+ 随 `v0.7.97-alpha.12` 标签发布的统一 Host 收口已退役 `runtimeExitSettlement` 与
42
+ `settleKodaXRuntimeExit()`。下文带版本的发布记录保留历史事实;当前接口以
43
+ [SDK 迁移指南](docs/SDK_MIGRATION.md)为准,凭证与账号保持见
44
+ [接入契约](docs/LLM_INTEGRATION.md)。既有 SDK、配置与 API_KEY 环境入口继续有效。
45
+
46
+ Agent / Coding / 实验性 Script 工作模式已随 `v0.7.97-alpha.11` 标签发布,默认 Coding。
47
+ CLI 使用 `--work-mode`,REPL 使用 `/work-mode`,Product Client 使用 Session
48
+ `workMode`;它与权限、模型选择独立。SDK/Host 的相关设置、问题结算、工具原文读取、
49
+ 结构化任务报告和 token 估算进度已接入对应契约,见
50
+ [SDK 一致性与迁移清单](docs/SDK_MIGRATION.md#2026-10-29-未发布改动对齐)。
51
+ `v0.7.97-alpha.12` 标签发布统一共享 Host 收口、FEATURE_302 供应商/OAuth 凭据
52
+ 对齐栈,以及 2026-11-01 全链路审计的 Windows 恢复、凭据与权限修复;
53
+ `v0.7.97-beta.1` 标签完成 Space 侧 Host 执行与会话接缝——Main 默认 Skills、
54
+ Quick Ask Session promotion 与核心配置原子发布;`v0.7.97-beta.2` 标签加固
55
+ Script 执行可靠性——类型化程序数据、原生工具名 wire 保真、按需输出契约与
56
+ 共享 Host 恢复/Workflow 终结修复。
57
+ Issue 371 的历史首次读取延迟及 Script 模型效率验收仍未关闭。
58
+
39
59
  ## 30 秒上手
40
60
 
41
61
  ```bash
@@ -98,9 +118,9 @@ try {
98
118
 
99
119
  `connectKodaXClient` 只连接已有兼容 Host;`ensureKodaXClient` 通过统一启动器启动或正常更新空闲 Host。Node 连接器不提供浏览器 HTTP/WebSocket transport。
100
120
 
101
- 两个产品入口均支持可选 `onStartupProgress` 和共享 `ClientStartupProgress` 类型。启动 `ready` 表示 Client 接口可用;Session 加载与 UI 渲染仍有独立完成边界。详见[启动进度示例](public_docs/sdk/embedder-guide.md#show-local-startup-progress)。
121
+ 两个产品入口均支持可选 `onStartupProgress` 和共享 `ClientStartupProgress` 类型;新 Host 通过 `initializing/phase` 报告内部初始化步骤,不增加额外探测或等待。启动 `ready` 表示 Client 接口可用;Session 加载与 UI 渲染仍有独立完成边界。详见[启动进度示例](public_docs/sdk/embedder-guide.md#show-local-startup-progress)。
102
122
 
103
- 底层 `/runtime` 仍支持显式 inline embedded 与 daemon,供受信任宿主处理凭据桥、Host Tools、启动和诊断;Worker-hosted embedded、通用 operation receipt/journal 已移除。不能在产品连接失败时退回私有 Runtime。下方结构化 Runtime 错误说明仅属于底层接口,不能假定 Product Client 暴露相同字段。
123
+ 底层 `/runtime` 连接唯一共享 Host,供受信任客户端处理凭据桥、Host Tools、启动和诊断;Worker-hosted embedded、通用 operation receipt/journal 已移除。不能在产品连接失败时退回私有 Runtime。下方结构化 Runtime 错误说明仅属于底层接口,不能假定 Product Client 暴露相同字段。
104
124
 
105
125
  ### 结构化且凭据安全的 Runtime 错误
106
126
 
@@ -314,6 +334,70 @@ SDK 系统代码契约更新,但没有放宽 shell/sandbox 的 fail-closed 边
314
334
  [v0.7.97-alpha.4 发布清单](docs/release.md#v0797-alpha4-release-preparation)。
315
335
  所有 v0.7.96 稳定与 v0.7.97-alpha.1/alpha.2/alpha.3 契约全部保留。
316
336
 
337
+ **v0.7.97-beta.2 发布**:Script 执行可靠性加固——VM 调用路径在原名之外提供
338
+ 无冲突安全别名,类型化程序数据承载规范化读取窗口与可信结构化 JSON,仅在原
339
+ 回执保持完整可读时才投影重复的模型输出。原生工具名在 Anthropic 兼容 wire
340
+ 边界编码并恢复 canonical 身份、参数、权限与增量;独立可选 sourceContent 视图
341
+ 在展示输出之外保留原文,Host 工具可声明 outputSchema 经 `mcp_describe` 按需
342
+ 返回而不扩大默认菜单;缺失 Node 全局仅追加有界上下文指引,不覆盖原始 QuickJS
343
+ 错误 JSON 或已定回执。共享 Host 恢复刷新已提升观察者、以幂等撤回回执保留
344
+ owner 绑定的 pending 输入恢复、回收已证死锁并在执行前核验可信 Agent 模式;
345
+ Host 自有的 repo 诊断/预热与持久 Workflow 终结(物理任务排空、受保护项目
346
+ 引用)一并落地。有界真实模型验证将 Script 面向模型的可靠性记为
347
+ recommend-iterate,不宣称效率或通用智能提升。代码提交、版本标签与实际发布
348
+ 分别判断。
349
+ 详见 [v0.7.97-beta.2 发布清单](docs/release.md#v0797-beta2-release-preparation)。
350
+ 所有 v0.7.96 稳定与 v0.7.97-alpha.1 至 beta.1 契约全部保留。
351
+
352
+ **v0.7.97-beta.1 发布**:Space 侧 Host 执行与会话接缝收尾——Main 持有的
353
+ 能力门禁默认 Skills 与消费时执行绑定在实际 Product 输入消费点选取已提交
354
+ 专家/连接器状态并重新获取凭证/工具 lease;Quick Ask 通过 Host 掌握的修订
355
+ 检查与持久 request-ID 对账完成 Session promotion,保留原 Session 与历史。
356
+ 普通 redirect 的 Run 边界与遗留显式 Skill 队列分离并持久化,冷恢复后仍保持
357
+ 严格缺失方法拒绝;Main 绑定先于 steer 权限解析,保留活动 Run 的 principal
358
+ 与 lease 边界。所有核心配置更新在同一共享锁下原子发布——失败写入保留旧
359
+ 字节、损坏的 provider 集合变更前拒绝、配置错误不含秘密,Windows reader
360
+ 拒绝的替换在同一 staged 文件与写锁内有界重试。完整 daemon schema 作为
361
+ 打包数据进入 npm 清单且 CLI 保持体积预算;owner 本地临时 Run 结果在 Host
362
+ Session 清理后仍可等待。Windows 保护路径保留词法与物理短名围栏;裸
363
+ `resume` 会话发现立即显示 `Finding sessions` 反馈且不增加启动工作
364
+ (Issue 371 的历史首次读取调查仍未关闭)。代码提交、版本标签与实际发布
365
+ 分别判断。
366
+ 详见 [v0.7.97-beta.1 发布清单](docs/release.md#v0797-beta1-release-preparation)。
367
+ 所有 v0.7.96 稳定与 v0.7.97-alpha.1 至 alpha.12 契约全部保留。
368
+
369
+ **v0.7.97-alpha.12 发布**:公开产品执行收口到独立共享 Host——内嵌/默认
370
+ Runtime 构造、内联 owner 切换与函数式进程内外部 Agent Host 退役,由显式
371
+ daemon 启动器接管,并对废弃 owner 策略做单向迁移;`runtimeExitSettlement`
372
+ 与 `settleKodaXRuntimeExit()` 退役。FEATURE_302 供应商/OAuth 凭据对齐落地
373
+ 原生 Responses 传输、有序历史、带作用域认证的原生云协议、Mistral Pi、
374
+ 原生媒体分类、绑定实际供应商连接的共享文件凭据与隐藏 API Key 配置;
375
+ Claude 5.5 历史片段与逐消息 effort 控制进入 LLM 层;manual 数据移出 CLI
376
+ JavaScript 预算;2026-11-01 全链路审计的 Windows 恢复、凭据与权限加固
377
+ 随锁诊断与 Windows 流式历史 PTY CI 门禁一并发布。代码提交、版本标签与
378
+ 实际发布分别判断。
379
+ 详见 [v0.7.97-alpha.12 发布清单](docs/release.md#v0797-alpha12-release-preparation)。
380
+ 所有 v0.7.96 稳定与 v0.7.97-alpha.1 至 alpha.11 契约全部保留。
381
+
382
+ **v0.7.97-alpha.11 发布**:显式 Agent、Coding 与实验性 Script 工作模式通过
383
+ CLI、`/work-mode` 与托管 SDK/Session 路径落地——Coding 保持默认,Script 在既有
384
+ 权限与回执边界内执行受支持的叶子工具。Ark、MiMo、MiniMax 目录刷新推理与容量
385
+ 元数据;非交互问题结算保留结果且截止期限由 Host 掌握;Skill `Bash(pattern)`
386
+ 规则仅放行单条解析命令;MCP 工具原文经 `part: 'original'` 跨 daemon IPC 与
387
+ Host 重启可读;结构化任务报告投影到 Product 视图与恢复历史;流式进度统一以
388
+ token 估算展示;修正 Windows 陈旧进程恢复与历史浏览游标重同步,启动时校验
389
+ 沙箱文件系统能力。代码提交、版本标签与实际发布分别判断。
390
+ 详见 [v0.7.97-alpha.11 发布清单](docs/release.md#v0797-alpha11-release-preparation)。
391
+ 所有 v0.7.96 稳定与 v0.7.97-alpha.1 至 alpha.10 契约全部保留。
392
+
393
+ **v0.7.97-alpha.10 发布**:Host 重启后可恢复检查点 Run 与任务树(全新作用域
394
+ 授权);上下文容量恢复到达持久代边界;Kimi K3.1 供应商路由覆盖全部七档
395
+ effort;AskUser 默认无限等待、支持显式跳过并返回带原因的 `unanswered` 结果。
396
+ SDK 启动回调透传 Host 内部阶段;退出恢复将安全启动与历史清理未知事实分开。
397
+ 代码提交、版本标签与实际发布分别判断。
398
+ 详见 [v0.7.97-alpha.10 发布清单](docs/release.md#v0797-alpha10-release-preparation)。
399
+ 所有 v0.7.96 稳定与 v0.7.97-alpha.1 至 alpha.9 契约全部保留。
400
+
317
401
  **v0.7.97-alpha.9 发布**:Session 准入检查改用规范身份元数据而非加载完整
318
402
  历史 transcript——元数据头可读而正文不可读(例如损坏存储上的 Windows
319
403
  ERROR_CRC 以 EIO 呈现)不再阻塞无关的 Run 列表、daemon 检查或空闲退出检查。
@@ -998,7 +1082,7 @@ import { SkillRegistry } from '@kodax-ai/kodax/skills'; // 零依赖 ski
998
1082
  import { loadConfig } from '@kodax-ai/kodax/repl'; // REPL 配置 / session 工具
999
1083
  import { createMcpManager } from '@kodax-ai/kodax/mcp'; // MCP popout manager(v0.7.42 起)
1000
1084
  import { listSessions } from '@kodax-ai/kodax/session'; // session 历史工具
1001
- import { createKodaXRuntime } from '@kodax-ai/kodax/runtime'; // inline/daemon 宿主 API
1085
+ import { createKodaXRuntime } from '@kodax-ai/kodax/runtime'; // 共享 Host 连接 API
1002
1086
  import { runKodaXSandboxed } from '@kodax-ai/kodax/sandbox'; // 独立 ASRT 受控执行
1003
1087
  import { createKodaXA2AServer } from '@kodax-ai/kodax/a2a'; // A2A 1.0 双向接入
1004
1088
  import { createMemoryAgent } from '@kodax-ai/kodax/experimental-memory'; // opt-in 实验性记忆 SDK
@@ -1038,11 +1122,13 @@ import { createMemoryAgent } from '@kodax-ai/kodax/experimental-memory'; // opt-
1038
1122
  请把自定义 provider 的真实 API Key 设置到 `MY_LLM_API_KEY` 环境变量中,然后关闭
1039
1123
  当前终端、打开新终端,再运行 `kodax`。
1040
1124
 
1125
+ 原生 OpenAI Responses 可在自定义 provider 中设置 `"api": "responses"`;省略时保持 Chat Completions。Responses 使用客户端历史并保留输出块顺序;配置方式、离线验证及当前范围见 [Custom Providers](public_docs/configuration/custom-providers.md#native-responses-api)。
1126
+
1041
1127
  `userAgentMode` 默认 `"compat"`(发送 `KodaX` 而非上游 SDK 的 User-Agent);如果你的网关要求原生 SDK header,再切到 `"sdk"`。
1042
1128
 
1043
1129
  自定义 reasoning 模型优先使用 v0.7.57 的 `reasoning: { efforts, default }`;无 thinking 能力的模型使用 `"reasoning": "none"`。SDK 宿主的 effort 选择器应从 `reasoningProfile.supportedEfforts` / `defaultEffort` 动态生成,不要假定固定五档。
1044
1130
 
1045
- OpenAI-compatible provider 未声明 reasoning profile 表示能力未知。未设置 effort 时使用 `auto`:优先采用已声明默认档,否则从 `max` 开始,仅在明确的参数/档位拒绝后逐档降低。`none` 会尝试关闭;关闭被拒绝后尝试最低可用思考档。SDK 宿主通过 `onReasoningResolved` 收到用户意图、实际发送档位、回退原因和 `verified: false`;请求成功不代表模型已按该强度执行。缓存和推理数据回传规则见[详细设计](docs/DD.md#23-custom-openai-compatible-reasoning)。
1131
+ 默认 Chat Completions 路径下,OpenAI-compatible provider 未声明 reasoning profile 表示能力未知。未设置 effort 时使用 `auto`:优先采用已声明默认档,否则从 `max` 开始,仅在明确的参数/档位拒绝后逐档降低。`none` 会尝试关闭;关闭被拒绝后尝试最低可用思考档。SDK 宿主通过 `onReasoningResolved` 收到用户意图、实际发送档位、回退原因和 `verified: false`;请求成功不代表模型已按该强度执行。缓存和推理数据回传规则见[详细设计](docs/DD.md#23-custom-openai-compatible-reasoning)。
1046
1132
 
1047
1133
  #### OpenAI 兼容推理模型
1048
1134
 
@@ -1147,7 +1233,7 @@ kodax daemon stop --profile default
1147
1233
 
1148
1234
  daemon 可承载多个 Session;不同 Session 可以并发,同一 Session 的交付由 Host 串行协调。`after_turn` 可在当前 Run 的安全点交付,不必等整个长任务结束。客户端关闭观察或断开连接不会停止 Run。停止任务使用 `runs.stop` 或 `sessions.cancel`;关闭空闲 Host 才使用 `host.shutdown`/daemon stop。
1149
1235
 
1150
- 显式独立库嵌入仍可使用 `/runtime` 的 `createKodaXRuntime({mode:'embedded'})`,其 owner 和退出责任属于调用者。这不是 CLI 的可选运行模式,也不是产品客户端的连接失败回退。当前包版本与发布状态见[SDK 迁移指南](docs/SDK_MIGRATION.md)。
1236
+ 未发布的统一 Host 收口已退役公开 embedded 构造与 inline 所有权切换;完整产品能力统一使用 `/client`。独立 llm/agent/coding 库仍可单独使用。旧状态自动迁移与降级限制见 SDK 迁移指南。当前包版本与发布状态见[SDK 迁移指南](docs/SDK_MIGRATION.md)。
1151
1237
 
1152
1238
  普通 CLI 自动拉起的 Host 在最后一个客户端断开、后台工作持续空闲 30 秒后退出;重新连接会取消空闲退出。显式 `kodax daemon start` 会保留当前 Host,即使它原先是临时 Host;承载已配置 A2A 服务的 Host 也会在没有 CLI 客户端时继续常驻。
1153
1239
 
@@ -1191,17 +1277,17 @@ dist/binary/linux-x64/
1191
1277
  |----------|----------|-----------|-----------|
1192
1278
  | anthropic | `ANTHROPIC_API_KEY` | Native | claude-sonnet-4-6(可 `/model` 切换 `claude-opus-4-6` / `claude-haiku-4-5`) |
1193
1279
  | openai | `OPENAI_API_KEY` | Native | gpt-5.3-codex(可 `/model` 切换 `gpt-5.4` / `gpt-5.3-codex-spark`) |
1194
- | kimi | `KIMI_API_KEY` | Native | kimi-k2.7-code(262,144 token;可 `/model` 切换 `kimi-k3`〔1M〕/ `kimi-k2.7-code-highspeed` / `kimi-k2.6` / `kimi-k2.5`) |
1195
- | kimi-code | `KIMI_CODE_API_KEY` | Native | k3-256k(Moderato+,256K,直接请求同名上游模型;可 `/model` 切换 `k3`〔Allegretto+,1M〕/ `kimi-for-coding`〔K2.7 Code〕/ `kimi-for-coding-highspeed`) |
1280
+ | kimi | `KIMI_API_KEY` | Native | kimi-k2.7-code(262,144 token;可 `/model` 切换 `kimi-k3.1-pro` / `kimi-k3.1-pro-highspeed` / `kimi-k3`〔1M〕/ `kimi-k2.7-code-highspeed` / `kimi-k2.6` / `kimi-k2.5`) |
1281
+ | kimi-code | `KIMI_CODE_API_KEY` | Native | k3-256k(Moderato+,256K,直接请求同名上游模型;可 `/model` 切换 `k3.1-pro` / `k3.1-pro-highspeed` / `k3`〔1M〕/ `kimi-for-coding` / `kimi-for-coding-highspeed`;K3.1 必须开启思考) |
1196
1282
  | qwen | `QWEN_API_KEY` | Native | qwen3.5-plus |
1197
1283
  | qwen-token-plan | `QWEN_TOKEN_API_KEY` | Native | qwen3.8-max(Anthropic 协议;可 `/model` 切换兼容项 `qwen3.8-max-preview` 及 `qwen3.7-max` / `qwen3.7-plus` / `qwen3.6-flash` / `glm-5.2` / `deepseek-v4-pro`;均为 1M ctx;两个 Qwen 3.8 ID / 3.7 Plus / 3.6 Flash 支持图片理解) |
1198
1284
  | zhipu | `ZHIPU_API_KEY` | Native | glm-5(可 `/model` 切换 `glm-5.3` / `glm-5.2`,均为 1M ctx,另有 `glm-5.1` / `glm-5-turbo`;GLM-5.3 开放平台 API 仍标注为即将上线) |
1199
1285
  | zhipu-coding | `ZHIPU_CODING_API_KEY` | Native | glm-5.3(1M ctx、128K 最大输出;可回退到 `glm-5.2`,也可切换 `glm-5-turbo` / `glm-4.7`;原样发送上游 ID) |
1200
1286
  | zai-coding | `ZAI_CODING_API_KEY` | Native | glm-5.3(保留 `glm-5.2` 回退;原样发送上游 ID;2026-08-15 起默认从 glm-5.2 切换) |
1201
- | minimax-coding | `MINIMAX_CODING_API_KEY` | Native | MiniMax-M3(Frontier Coding,原生多模态 + 1M ctx;仍可通过 `/model` 显式选择兼容模型 `MiniMax-M2.7` / `MiniMax-M2.7-highspeed`) |
1202
- | mimo | `MIMO_API_KEY` | Native | mimo-v2.5-pro(小米 MiMo 按量计费,Anthropic 协议) |
1203
- | mimo-coding | `MIMO_CODING_API_KEY` | Native | mimo-v2.5-pro(小米 MiMo Token Plan,Anthropic 协议) |
1204
- | ark-coding | `ARK_CODING_API_KEY` | Native | glm-5.3(火山方舟 Coding Plan — GLM-5.3(1M ctx、128K out) · GLM-5.2(别名 `glm-latest`) · Kimi K2.7 Code / K2.6 · MiniMax M3 / M2.7 · DeepSeek V4 Pro / V4 Flash · Doubao Seed 2.0 Code / Pro / Lite · Doubao Seed Code) |
1287
+ | minimax-coding | `MINIMAX_CODING_API_KEY` | Native | MiniMax-M3.1-Flash(M Plan,1M 上下文,原生五档推理,思考始终开启) |
1288
+ | mimo | `MIMO_API_KEY` | Native | mimo-v2.6-pro(小米 MiMo 按量计费,也可选 V2.6 Flash) |
1289
+ | mimo-coding | `MIMO_CODING_API_KEY` | Native | mimo-v2.6-pro(小米 MiMo Token Plan,也可选 V2.6 Flash;支持图片、思考开关) |
1290
+ | ark-coding | `ARK_CODING_API_KEY` | Native | glm-5.3(方舟 Coding Plan;新增 `deepseek-v4.1-flash` / `deepseek-v4.1-flash-economy`、`glm-5.3-flash`、`kimi-k3.1-pro` / `kimi-k3` / `kimi-k2.8-preview`;六款均支持图片;保留历史配置 ID) |
1205
1291
  | deepseek | `DEEPSEEK_API_KEY` | Native | deepseek-flash(Anthropic 协议;DeepSeek-V4.1-Flash,1M ctx,原生图片理解;可 `/model` 切换纯文本兼容名 `deepseek-v4-pro`) |
1206
1292
  | gemini-cli | 由 Provider CLI 完成认证(无 KodaX API-key 环境变量) | Prompt-only / CLI bridge | (通过 gemini CLI) |
1207
1293
  | codex-cli | 由 Provider CLI 完成认证(无 KodaX API-key 环境变量) | Prompt-only / CLI bridge | (通过 codex CLI) |
@@ -1273,6 +1359,19 @@ KodaX 有 50+ 个内置工具,按类别分组如下(实际暴露给 LLM 是
1273
1359
  | `ask_user_question` | 向用户发起单选 / 多选 / 自由文本提问 |
1274
1360
  | `exit_plan_mode` | 仅在当前 REPL/宿主提供审批回调时提交最终方案 |
1275
1361
 
1362
+ ## 内置 Skills
1363
+
1364
+ 五个核心 Skill(git-workflow、tdd、code-review、skill-creator、visual-review)
1365
+ 默认开放自然语言发现;概念解释与无关任务不应触发工作流。TDD 的“仅补测试”
1366
+ 分支允许首次通过,不扩大生产代码改动;Skill Creator 按创建、打包、评测分支
1367
+ 执行,分享包不默认安装到个人目录。`Bash(git *, npm *)` 匹配完整命令,仍保留
1368
+ Host 授权与沙箱。
1369
+
1370
+ 描述语义筛查不等于观察到真实 Skill 调用。独立 SDK 评测需明确 Provider、model、
1371
+ cwd 和预算,见[评测方法](packages/agent/src/capabilities/skills/builtin/skill-creator/references/evaluation.md)。
1372
+ 可选 artifact-review 聚焦已注册 Artifact 工具;与 visual-review 一样,受管准备
1373
+ 被拒绝或能力缺失时,受影响范围保留为未验证。
1374
+
1276
1375
  ## Repo Intelligence(内置 full/light 引擎)
1277
1376
 
1278
1377
  KodaX 内置 repo intelligence(`repo_overview` / `module_context` / `symbol_context` / `process_context` / `impact_estimate` 等),让 coding agent 不靠零散 grep/glob 就能理解大型仓库。
@@ -1318,7 +1417,7 @@ KodaX 有两层结构,SDK 用户需要分开理解:
1318
1417
  | `packages/repl` | `@kodax-ai/kodax/repl` | 完整包 | Ink TUI + 权限模式 + 命令系统 (217 exports) | 终端 UI 消费者 |
1319
1418
  | `packages/repl` | `@kodax-ai/kodax/session` | **窄子集** | 仅会话管理 —— `listSessions` / `loadFullTranscript` / `appendClientNotice` / `forkSession` / `compactSession` / `watchSessions` 等 (17 exports) | 读取 session 历史的 IDE 插件和桌面宿主 |
1320
1419
  | `src` | `@kodax-ai/kodax/client` | 产品 API | 共享 Host 连接与 `KodaXProductClient` 统一契约 | TUI、桌面/IDE 和自动化应用 |
1321
- | `src` | `@kodax-ai/kodax/runtime` | 宿主 API | Explicit inline/daemon facade,含 sessions/runs/events/permissions/catalog/MCP/artifacts/diagnostics/外部 Agent 和 daemon schema (10 exports) | 受信任宿主集成 |
1420
+ | `src` | `@kodax-ai/kodax/runtime` | 宿主 API | Shared-Host facade,含 sessions/runs/events/permissions/catalog/MCP/artifacts/diagnostics/外部 Agent 和 daemon schema (10 exports) | 受信任宿主集成 |
1322
1421
  | `src` | `@kodax-ai/kodax/sandbox` | 宿主 API | 显式 ASRT capability/doctor/setup 与宿主自有受控命令执行;不可用时绝不静默普通执行 | 需要独立进程 containment 的 SDK 宿主 |
1323
1422
  | `src` | `@kodax-ai/kodax/a2a` | 集成边界 | A2A 1.0 Agent Card 发现、JSON-RPC/SSE F258 executor、安全 fetch 与鉴权 Runtime Agent server | Agent 编排器和 KodaX 宿主 |
1324
1423
 
@@ -1413,9 +1512,9 @@ MCP、A2A、Extension 分别使用 `~/.kodax/integrations/` 下的一个用户
1413
1512
  停用条目可随时重新启用。私网地址访问与非 loopback 明文 HTTP 是两项独立、
1414
1513
  持久化且默认拒绝的权限(`--allow-private` 与 `--allow-insecure-http`);精确
1415
1514
  loopback HTTP 无需这两项授权。OAuth token endpoint 仍保持更严格的
1416
- HTTPS 或精确 loopback 规则。SDK 宿主通过 `createConfiguredA2ARuntimeIntegration({ configHome })` 装载同一
1417
- 配置执行平面,并把其 `runtimeOptions` 作为 `externalAgents` 传入——CLI 为其嵌入式
1418
- 会话和它启动的 daemon Host 完成同样的接线;`worker.configuredA2A` 选项已随
1515
+ HTTPS 或精确 loopback 规则。共享 Host 在内部通过 `createConfiguredA2ARuntimeIntegration({ configHome })`
1516
+ 装载配置执行平面;SDK 客户端连接这个 Host,公开 `externalAgents` 函数注入已退役。
1517
+ `worker.configuredA2A` 选项已随
1419
1518
  Worker facade 在 v0.7.97 移除。
1420
1519
  `a2a serve` 会在监听前装载已配置的 MCP/Extension 能力并固定执行权威,同时热加载
1421
1520
  公开信息、鉴权和限额。Agent、Skill、Extension 工具权威、工作区、tool policy
@@ -1441,13 +1540,13 @@ REPL 显示、唤醒或消费。
1441
1540
 
1442
1541
  当前源码中,`kodax -r` 按最近真实对话消息排序并显示对应时间,旧记录缺少可靠消息时间时回退创建时间。SDK 的 `lastMessageAt`、Host 列表与选择器共用规则;标题、设置、Actor 保存和压缩不刷新对话时间。共享 Host 在取得所有权后统一恢复历史进程,连接客户端不重复清扫;加载提示继续使用统一启动进度契约。
1443
1542
 
1444
- **外部 Agent SDK plane(FEATURE_258,v0.7.67)**:`/agent` 导出协议中立的 executor、registration、policy、credential broker、artifact policy、catalog 和 durable task 契约;`/runtime` 通过 `admin.agentRegistrations`、`agents`、`agentTasks` 向 embedded 与 daemon client 提供同一组 DTO API。Executor factory 是宿主函数,只能装入 inline owner,或在创建新的 in-process daemon owner 时装入;不能通过既有 daemon 连接或 Runtime Worker 边界注入。Plane 关闭后是终态:未完成的 wait 和后续所有服务调用都会拒绝;受限 Workflow 脚本会完整校验并传递 `phase` 与外部 `target`。完整所有权、注册、preflight、启动/等待/继续/取消/对账和安全边界见 [SDK Embedder Guide §18](public_docs/sdk/embedder-guide.md#18-external-agent-executor-plane-feature_258-v0767)。
1543
+ **外部 Agent SDK plane(FEATURE_258,v0.7.67)**:`/agent` 导出协议中立的 executor、registration、policy、credential broker、artifact policy、catalog 和 durable task 契约;`/runtime` 通过 `admin.agentRegistrations`、`agents`、`agentTasks` 向共享 Host 客户端提供 DTO API。统一 Host 收口退役公开 executor factory 注入和进程内 owner 构造;支持的 A2A Agent 通过 Host 配置接入。任意 executor 函数仍可用于独立库,但没有透明等价的产品 Host API。Plane 关闭后是终态:未完成的 wait 和后续所有服务调用都会拒绝;受限 Workflow 脚本会完整校验并传递 `phase` 与外部 `target`。完整所有权、注册、preflight、启动/等待/继续/取消/对账和安全边界见 [SDK Embedder Guide §18](public_docs/sdk/embedder-guide.md#18-external-agent-executor-plane-feature_258-v0767)。
1445
1544
 
1446
1545
  **成本受控 Workflow SDK(FEATURE_259,v0.7.67)**:SDK 调用方用 run-scoped `modelTiers` 与 `workflow.maxConcurrency` 配置路由和并发,workflow 作者只表达 `fast` / `balanced` / `deep` 语义意图。terminal workflow event 回显 tier/source/fallback/usage/duration,持久化 `run.json.efficiencyReport` 给出 token coverage、role/tier 启动数、packet-read 拓扑、review wave 和 quality gate 结果。完整配置与遥测读取方式见 [SDK Embedder Guide §20](public_docs/sdk/embedder-guide.md#20-cost-disciplined-workflow-routing-and-telemetry-feature_259-v0767)。
1447
1546
 
1448
1547
  **Inline workflow authoring(FEATURE_246,v0.7.58;F270 于 v0.7.72 更新)**:Worker 在明确表达 Workflow 意图时,可通过 model-callable 的 `run_workflow` 工具在会话内编写并运行工作流。F270 退役 AMAW 与复杂度驱动激活;AMA 保留显式 `/workflow`、named/SDK 和自然语言 Workflow 请求。Workflow 子 Agent 统一运行在 Actor 控制面。详见 [docs/features/v0.7.58.md](docs/features/v0.7.58.md)、[docs/features/v0.7.72.md](docs/features/v0.7.72.md) 与 ADR-044/046/047/048/049/055。
1449
1548
 
1450
- **历史工作流激活分层(FEATURE_248 + FEATURE_249,v0.7.59;F270 于 v0.7.72 取代)**:v0.7.59 引入 AMAW 和 AMA 的显式请求行为。F270 退役 AMAW 及其复杂度驱动指令;SA 保持单独作业,AMA 成为唯一自适应多 Agent 模式,并且只在明确 Workflow 意图下激活 Workflow。详见 [docs/features/v0.7.59.md](docs/features/v0.7.59.md) 与 [docs/features/v0.7.72.md](docs/features/v0.7.72.md)。
1549
+ **历史工作流激活分层(FEATURE_248 + FEATURE_249,v0.7.59;F270 于 v0.7.72 取代)**:v0.7.59 引入 AMAW 和 AMA 的显式请求行为。F270 退役 AMAW 及其复杂度驱动指令;CLI/REPL 使用 AMA;SDK 显式 SA 和内部单 Agent 执行器继续兼容。AMA 是唯一自适应多 Agent 模式,并且只在明确 Workflow 意图下激活 Workflow。详见 [docs/features/v0.7.59.md](docs/features/v0.7.59.md) 与 [docs/features/v0.7.72.md](docs/features/v0.7.72.md)。
1451
1550
 
1452
1551
  **managed 工具路径的渐进披露(FEATURE_250,v0.7.60;当前策略于 v0.7.74 纠偏)**:deferred-tool 机制同时应用于 AMA managed path 与 SA。当前延迟集合精确包含 11 个工具:6 个 repo-intelligence、4 个 web/code discovery,以及 `run_workflow`;其 `input_schema` 仍可直接调用,完整描述按需由 `tool_search` 返回。5 个固定 `mcp_*` facade 与 `get_goal` / `create_goal` / `update_goal` 生命周期工具常驻完整契约。v0.7.74 的 Goal 纠偏相对旧 hint 仅增加约 109 个估算 schema token(其中常驻的 `get_goal` 反而少 12 token),消除一次发现往返,并且不改变工具 schema、handler、权限、Goal 状态或压缩保护。详见 [docs/features/v0.7.60.md](docs/features/v0.7.60.md) 与 [docs/features/v0.7.74.md](docs/features/v0.7.74.md#feature_250-v0774-correction-resident-goal-lifecycle-tools)。
1453
1552
 
@@ -22,14 +22,13 @@
22
22
  // "reasoningMode": "auto",
23
23
  // "thinking": true,
24
24
 
25
- // Agent harness: "ama" enables adaptive multi-agent use; "sa" forces one
26
- // agent. Permission profiles are "plan", "accept-edits", sandbox-first
25
+ // New product tasks use AMA with adaptive multi-agent use.
26
+ // Permission profiles are "plan", "accept-edits", sandbox-first
27
27
  // "auto", or direct-host "full-access". Full Access has no sandbox or
28
28
  // approval prompts; built-in dangerous-command fallbacks do not apply.
29
29
  // Explicit forbidden rules still block; explicit prompt rules cannot prompt.
30
30
  // Exec Policy is separate:
31
31
  // ~/.kodax/exec-policy.jsonc (and explicitly trusted project policy).
32
- // "agentMode": "ama",
33
32
  // "permissionMode": "accept-edits",
34
33
  // User-level Bash allow patterns. Project additions belong in
35
34
  // <project>/.kodax/config.local.json. Broad Bash(*) is rejected.