open-multi-agent-kit 0.98.3 → 0.98.5

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 (468) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +12 -2
  3. package/dist/cli/args.d.ts +1 -0
  4. package/dist/cli/args.d.ts.map +1 -1
  5. package/dist/cli/args.js +14 -0
  6. package/dist/cli/args.js.map +1 -1
  7. package/dist/cli/help.d.ts.map +1 -1
  8. package/dist/cli/help.js +3 -0
  9. package/dist/cli/help.js.map +1 -1
  10. package/dist/cli/mcp-attach.d.ts +3 -3
  11. package/dist/cli/mcp-attach.d.ts.map +1 -1
  12. package/dist/cli/mcp-attach.js +5 -4
  13. package/dist/cli/mcp-attach.js.map +1 -1
  14. package/dist/cli/model-contract.d.ts +5 -0
  15. package/dist/cli/model-contract.d.ts.map +1 -0
  16. package/dist/cli/model-contract.js +45 -0
  17. package/dist/cli/model-contract.js.map +1 -0
  18. package/dist/commands/adaptorch-doctor-cli.d.ts.map +1 -1
  19. package/dist/commands/adaptorch-doctor-cli.js +32 -10
  20. package/dist/commands/adaptorch-doctor-cli.js.map +1 -1
  21. package/dist/commands/init-cli.d.ts +12 -0
  22. package/dist/commands/init-cli.d.ts.map +1 -0
  23. package/dist/commands/init-cli.js +76 -0
  24. package/dist/commands/init-cli.js.map +1 -0
  25. package/dist/commands/provider-sync-cli.d.ts +27 -0
  26. package/dist/commands/provider-sync-cli.d.ts.map +1 -0
  27. package/dist/commands/provider-sync-cli.js +177 -0
  28. package/dist/commands/provider-sync-cli.js.map +1 -0
  29. package/dist/commands/run-command.d.ts +9 -0
  30. package/dist/commands/run-command.d.ts.map +1 -0
  31. package/dist/commands/run-command.js +34 -0
  32. package/dist/commands/run-command.js.map +1 -0
  33. package/dist/commands/verified-run-cli.d.ts +6 -0
  34. package/dist/commands/verified-run-cli.d.ts.map +1 -0
  35. package/dist/commands/verified-run-cli.js +190 -0
  36. package/dist/commands/verified-run-cli.js.map +1 -0
  37. package/dist/core/active-skill-state.d.ts +7 -0
  38. package/dist/core/active-skill-state.d.ts.map +1 -0
  39. package/dist/core/active-skill-state.js +25 -0
  40. package/dist/core/active-skill-state.js.map +1 -0
  41. package/dist/core/agent-session-services.d.ts +10 -1
  42. package/dist/core/agent-session-services.d.ts.map +1 -1
  43. package/dist/core/agent-session-services.js +43 -0
  44. package/dist/core/agent-session-services.js.map +1 -1
  45. package/dist/core/agent-session.d.ts +7 -9
  46. package/dist/core/agent-session.d.ts.map +1 -1
  47. package/dist/core/agent-session.js +91 -126
  48. package/dist/core/agent-session.js.map +1 -1
  49. package/dist/core/codex-chatgpt-web-bridge.d.ts +99 -0
  50. package/dist/core/codex-chatgpt-web-bridge.d.ts.map +1 -0
  51. package/dist/core/codex-chatgpt-web-bridge.js +192 -0
  52. package/dist/core/codex-chatgpt-web-bridge.js.map +1 -0
  53. package/dist/core/codex-chatgpt-web-sync.d.ts +50 -0
  54. package/dist/core/codex-chatgpt-web-sync.d.ts.map +1 -0
  55. package/dist/core/codex-chatgpt-web-sync.js +119 -0
  56. package/dist/core/codex-chatgpt-web-sync.js.map +1 -0
  57. package/dist/core/compaction/compaction-headroom.d.ts +30 -0
  58. package/dist/core/compaction/compaction-headroom.d.ts.map +1 -0
  59. package/dist/core/compaction/compaction-headroom.js +48 -0
  60. package/dist/core/compaction/compaction-headroom.js.map +1 -0
  61. package/dist/core/compaction/compaction.d.ts +2 -29
  62. package/dist/core/compaction/compaction.d.ts.map +1 -1
  63. package/dist/core/compaction/compaction.js +19 -47
  64. package/dist/core/compaction/compaction.js.map +1 -1
  65. package/dist/core/compaction/overflow-retry-guard.d.ts +20 -0
  66. package/dist/core/compaction/overflow-retry-guard.d.ts.map +1 -0
  67. package/dist/core/compaction/overflow-retry-guard.js +38 -0
  68. package/dist/core/compaction/overflow-retry-guard.js.map +1 -0
  69. package/dist/core/context-budget-headroom-types.d.ts.map +1 -1
  70. package/dist/core/context-budget-headroom-types.js +1 -1
  71. package/dist/core/context-budget-headroom-types.js.map +1 -1
  72. package/dist/core/context-budget-token-counter-types.d.ts +27 -0
  73. package/dist/core/context-budget-token-counter-types.d.ts.map +1 -0
  74. package/dist/core/context-budget-token-counter-types.js +2 -0
  75. package/dist/core/context-budget-token-counter-types.js.map +1 -0
  76. package/dist/core/context-budget-token-counter.d.ts +2 -26
  77. package/dist/core/context-budget-token-counter.d.ts.map +1 -1
  78. package/dist/core/context-budget-token-counter.js +2 -0
  79. package/dist/core/context-budget-token-counter.js.map +1 -1
  80. package/dist/core/context-budget-v2-scoring.d.ts.map +1 -1
  81. package/dist/core/context-budget-v2-scoring.js +14 -10
  82. package/dist/core/context-budget-v2-scoring.js.map +1 -1
  83. package/dist/core/domain-router.d.ts.map +1 -1
  84. package/dist/core/domain-router.js +1 -1
  85. package/dist/core/domain-router.js.map +1 -1
  86. package/dist/core/grok-harness-dispatch.d.ts +4 -0
  87. package/dist/core/grok-harness-dispatch.d.ts.map +1 -1
  88. package/dist/core/grok-harness-dispatch.js +20 -3
  89. package/dist/core/grok-harness-dispatch.js.map +1 -1
  90. package/dist/core/grok-harness.d.ts +15 -9
  91. package/dist/core/grok-harness.d.ts.map +1 -1
  92. package/dist/core/grok-harness.js +34 -8
  93. package/dist/core/grok-harness.js.map +1 -1
  94. package/dist/core/mcp/tools.d.ts +2 -2
  95. package/dist/core/mcp/tools.d.ts.map +1 -1
  96. package/dist/core/mcp/tools.js +29 -3
  97. package/dist/core/mcp/tools.js.map +1 -1
  98. package/dist/core/model-registry-schema.d.ts +1081 -0
  99. package/dist/core/model-registry-schema.d.ts.map +1 -0
  100. package/dist/core/model-registry-schema.js +148 -0
  101. package/dist/core/model-registry-schema.js.map +1 -0
  102. package/dist/core/model-registry.d.ts.map +1 -1
  103. package/dist/core/model-registry.js +1 -146
  104. package/dist/core/model-registry.js.map +1 -1
  105. package/dist/core/model-resolver.d.ts +2 -1
  106. package/dist/core/model-resolver.d.ts.map +1 -1
  107. package/dist/core/model-resolver.js +2 -1
  108. package/dist/core/model-resolver.js.map +1 -1
  109. package/dist/core/prompt-preset.d.ts +1 -1
  110. package/dist/core/prompt-preset.d.ts.map +1 -1
  111. package/dist/core/prompt-preset.js +16 -1
  112. package/dist/core/prompt-preset.js.map +1 -1
  113. package/dist/core/prompt-settlement.d.ts +4 -3
  114. package/dist/core/prompt-settlement.d.ts.map +1 -1
  115. package/dist/core/prompt-settlement.js.map +1 -1
  116. package/dist/core/provider-display-names.d.ts.map +1 -1
  117. package/dist/core/provider-display-names.js +1 -0
  118. package/dist/core/provider-display-names.js.map +1 -1
  119. package/dist/core/provider-resilience.d.ts +8 -0
  120. package/dist/core/provider-resilience.d.ts.map +1 -1
  121. package/dist/core/provider-resilience.js +20 -3
  122. package/dist/core/provider-resilience.js.map +1 -1
  123. package/dist/core/provider-usage-types.d.ts +42 -0
  124. package/dist/core/provider-usage-types.d.ts.map +1 -0
  125. package/dist/core/provider-usage-types.js +2 -0
  126. package/dist/core/provider-usage-types.js.map +1 -0
  127. package/dist/core/provider-usage.d.ts +2 -31
  128. package/dist/core/provider-usage.d.ts.map +1 -1
  129. package/dist/core/provider-usage.js +4 -0
  130. package/dist/core/provider-usage.js.map +1 -1
  131. package/dist/core/redaction.d.ts.map +1 -1
  132. package/dist/core/redaction.js +18 -2
  133. package/dist/core/redaction.js.map +1 -1
  134. package/dist/core/run-budget-policy.d.ts +18 -0
  135. package/dist/core/run-budget-policy.d.ts.map +1 -0
  136. package/dist/core/run-budget-policy.js +52 -0
  137. package/dist/core/run-budget-policy.js.map +1 -0
  138. package/dist/core/run-budget.d.ts +33 -0
  139. package/dist/core/run-budget.d.ts.map +1 -0
  140. package/dist/core/run-budget.js +89 -0
  141. package/dist/core/run-budget.js.map +1 -0
  142. package/dist/core/run-execution-api.d.ts +15 -0
  143. package/dist/core/run-execution-api.d.ts.map +1 -0
  144. package/dist/core/run-execution-api.js +7 -0
  145. package/dist/core/run-execution-api.js.map +1 -0
  146. package/dist/core/run-journal.d.ts.map +1 -1
  147. package/dist/core/run-journal.js +30 -208
  148. package/dist/core/run-journal.js.map +1 -1
  149. package/dist/core/sandbox/policy-merge.d.ts +6 -0
  150. package/dist/core/sandbox/policy-merge.d.ts.map +1 -0
  151. package/dist/core/sandbox/policy-merge.js +74 -0
  152. package/dist/core/sandbox/policy-merge.js.map +1 -0
  153. package/dist/core/sandbox/policy-paths.d.ts +4 -0
  154. package/dist/core/sandbox/policy-paths.d.ts.map +1 -0
  155. package/dist/core/sandbox/policy-paths.js +21 -0
  156. package/dist/core/sandbox/policy-paths.js.map +1 -0
  157. package/dist/core/sandbox/policy-types.d.ts +75 -0
  158. package/dist/core/sandbox/policy-types.d.ts.map +1 -0
  159. package/dist/core/sandbox/policy-types.js +2 -0
  160. package/dist/core/sandbox/policy-types.js.map +1 -0
  161. package/dist/core/sandbox/policy.d.ts +3 -77
  162. package/dist/core/sandbox/policy.d.ts.map +1 -1
  163. package/dist/core/sandbox/policy.js +3 -98
  164. package/dist/core/sandbox/policy.js.map +1 -1
  165. package/dist/core/sdk-provider-stream.d.ts +14 -0
  166. package/dist/core/sdk-provider-stream.d.ts.map +1 -0
  167. package/dist/core/sdk-provider-stream.js +38 -0
  168. package/dist/core/sdk-provider-stream.js.map +1 -0
  169. package/dist/core/sdk.d.ts +5 -1
  170. package/dist/core/sdk.d.ts.map +1 -1
  171. package/dist/core/sdk.js +17 -33
  172. package/dist/core/sdk.js.map +1 -1
  173. package/dist/core/session-bash-service.d.ts +2 -2
  174. package/dist/core/session-bash-service.d.ts.map +1 -1
  175. package/dist/core/session-bash-service.js +21 -9
  176. package/dist/core/session-bash-service.js.map +1 -1
  177. package/dist/core/session-failure-cause.d.ts.map +1 -1
  178. package/dist/core/session-failure-cause.js +15 -3
  179. package/dist/core/session-failure-cause.js.map +1 -1
  180. package/dist/core/session-prompt-lifecycle.d.ts +25 -0
  181. package/dist/core/session-prompt-lifecycle.d.ts.map +1 -0
  182. package/dist/core/session-prompt-lifecycle.js +87 -0
  183. package/dist/core/session-prompt-lifecycle.js.map +1 -0
  184. package/dist/core/session-run-budget.d.ts +28 -0
  185. package/dist/core/session-run-budget.d.ts.map +1 -0
  186. package/dist/core/session-run-budget.js +127 -0
  187. package/dist/core/session-run-budget.js.map +1 -0
  188. package/dist/core/session-run-termination.d.ts +18 -0
  189. package/dist/core/session-run-termination.d.ts.map +1 -0
  190. package/dist/core/session-run-termination.js +72 -0
  191. package/dist/core/session-run-termination.js.map +1 -0
  192. package/dist/core/session-termination-types.d.ts +97 -0
  193. package/dist/core/session-termination-types.d.ts.map +1 -0
  194. package/dist/core/session-termination-types.js +26 -0
  195. package/dist/core/session-termination-types.js.map +1 -0
  196. package/dist/core/session-termination.d.ts +3 -97
  197. package/dist/core/session-termination.d.ts.map +1 -1
  198. package/dist/core/session-termination.js +25 -29
  199. package/dist/core/session-termination.js.map +1 -1
  200. package/dist/core/skill-selector.d.ts +40 -0
  201. package/dist/core/skill-selector.d.ts.map +1 -0
  202. package/dist/core/skill-selector.js +102 -0
  203. package/dist/core/skill-selector.js.map +1 -0
  204. package/dist/core/slash-commands.d.ts.map +1 -1
  205. package/dist/core/slash-commands.js +1 -0
  206. package/dist/core/slash-commands.js.map +1 -1
  207. package/dist/core/subagent-lane-launcher.d.ts +3 -2
  208. package/dist/core/subagent-lane-launcher.d.ts.map +1 -1
  209. package/dist/core/subagent-lane-launcher.js +24 -13
  210. package/dist/core/subagent-lane-launcher.js.map +1 -1
  211. package/dist/core/tools/render-utils.d.ts.map +1 -1
  212. package/dist/core/tools/render-utils.js +2 -4
  213. package/dist/core/tools/render-utils.js.map +1 -1
  214. package/dist/core/turn-metrics-record.d.ts +55 -0
  215. package/dist/core/turn-metrics-record.d.ts.map +1 -0
  216. package/dist/core/turn-metrics-record.js +149 -0
  217. package/dist/core/turn-metrics-record.js.map +1 -0
  218. package/dist/core/turn-metrics.d.ts +4 -56
  219. package/dist/core/turn-metrics.d.ts.map +1 -1
  220. package/dist/core/turn-metrics.js +12 -60
  221. package/dist/core/turn-metrics.js.map +1 -1
  222. package/dist/core/verified-run/broker.d.ts +26 -0
  223. package/dist/core/verified-run/broker.d.ts.map +1 -0
  224. package/dist/core/verified-run/broker.js +210 -0
  225. package/dist/core/verified-run/broker.js.map +1 -0
  226. package/dist/core/verified-run/candidate.d.ts +24 -0
  227. package/dist/core/verified-run/candidate.d.ts.map +1 -0
  228. package/dist/core/verified-run/candidate.js +167 -0
  229. package/dist/core/verified-run/candidate.js.map +1 -0
  230. package/dist/core/verified-run/check-receipt.d.ts +18 -0
  231. package/dist/core/verified-run/check-receipt.d.ts.map +1 -0
  232. package/dist/core/verified-run/check-receipt.js +92 -0
  233. package/dist/core/verified-run/check-receipt.js.map +1 -0
  234. package/dist/core/verified-run/coordinator.d.ts +39 -0
  235. package/dist/core/verified-run/coordinator.d.ts.map +1 -0
  236. package/dist/core/verified-run/coordinator.js +190 -0
  237. package/dist/core/verified-run/coordinator.js.map +1 -0
  238. package/dist/core/verified-run/dag-candidates.d.ts +8 -0
  239. package/dist/core/verified-run/dag-candidates.d.ts.map +1 -0
  240. package/dist/core/verified-run/dag-candidates.js +65 -0
  241. package/dist/core/verified-run/dag-candidates.js.map +1 -0
  242. package/dist/core/verified-run/dag-phase.d.ts +7 -0
  243. package/dist/core/verified-run/dag-phase.d.ts.map +1 -0
  244. package/dist/core/verified-run/dag-phase.js +92 -0
  245. package/dist/core/verified-run/dag-phase.js.map +1 -0
  246. package/dist/core/verified-run/dag-projection.d.ts +7 -0
  247. package/dist/core/verified-run/dag-projection.d.ts.map +1 -0
  248. package/dist/core/verified-run/dag-projection.js +90 -0
  249. package/dist/core/verified-run/dag-projection.js.map +1 -0
  250. package/dist/core/verified-run/dag-recovery.d.ts +13 -0
  251. package/dist/core/verified-run/dag-recovery.d.ts.map +1 -0
  252. package/dist/core/verified-run/dag-recovery.js +98 -0
  253. package/dist/core/verified-run/dag-recovery.js.map +1 -0
  254. package/dist/core/verified-run/dag-retry-projection.d.ts +9 -0
  255. package/dist/core/verified-run/dag-retry-projection.d.ts.map +1 -0
  256. package/dist/core/verified-run/dag-retry-projection.js +43 -0
  257. package/dist/core/verified-run/dag-retry-projection.js.map +1 -0
  258. package/dist/core/verified-run/dag-types.d.ts +47 -0
  259. package/dist/core/verified-run/dag-types.d.ts.map +1 -0
  260. package/dist/core/verified-run/dag-types.js +2 -0
  261. package/dist/core/verified-run/dag-types.js.map +1 -0
  262. package/dist/core/verified-run/event-parser.d.ts +3 -0
  263. package/dist/core/verified-run/event-parser.d.ts.map +1 -0
  264. package/dist/core/verified-run/event-parser.js +153 -0
  265. package/dist/core/verified-run/event-parser.js.map +1 -0
  266. package/dist/core/verified-run/events.d.ts +4 -0
  267. package/dist/core/verified-run/events.d.ts.map +1 -0
  268. package/dist/core/verified-run/events.js +3 -0
  269. package/dist/core/verified-run/events.js.map +1 -0
  270. package/dist/core/verified-run/evidence-binding.d.ts +18 -0
  271. package/dist/core/verified-run/evidence-binding.d.ts.map +1 -0
  272. package/dist/core/verified-run/evidence-binding.js +81 -0
  273. package/dist/core/verified-run/evidence-binding.js.map +1 -0
  274. package/dist/core/verified-run/evidence.d.ts +27 -0
  275. package/dist/core/verified-run/evidence.d.ts.map +1 -0
  276. package/dist/core/verified-run/evidence.js +100 -0
  277. package/dist/core/verified-run/evidence.js.map +1 -0
  278. package/dist/core/verified-run/journal.d.ts +32 -0
  279. package/dist/core/verified-run/journal.d.ts.map +1 -0
  280. package/dist/core/verified-run/journal.js +103 -0
  281. package/dist/core/verified-run/journal.js.map +1 -0
  282. package/dist/core/verified-run/namespace-identity.d.ts +11 -0
  283. package/dist/core/verified-run/namespace-identity.d.ts.map +1 -0
  284. package/dist/core/verified-run/namespace-identity.js +77 -0
  285. package/dist/core/verified-run/namespace-identity.js.map +1 -0
  286. package/dist/core/verified-run/owned-execution.d.ts +21 -0
  287. package/dist/core/verified-run/owned-execution.d.ts.map +1 -0
  288. package/dist/core/verified-run/owned-execution.js +43 -0
  289. package/dist/core/verified-run/owned-execution.js.map +1 -0
  290. package/dist/core/verified-run/phase-context.d.ts +9 -0
  291. package/dist/core/verified-run/phase-context.d.ts.map +1 -0
  292. package/dist/core/verified-run/phase-context.js +2 -0
  293. package/dist/core/verified-run/phase-context.js.map +1 -0
  294. package/dist/core/verified-run/process-gate.d.ts +5 -0
  295. package/dist/core/verified-run/process-gate.d.ts.map +1 -0
  296. package/dist/core/verified-run/process-gate.js +31 -0
  297. package/dist/core/verified-run/process-gate.js.map +1 -0
  298. package/dist/core/verified-run/projection.d.ts +4 -0
  299. package/dist/core/verified-run/projection.d.ts.map +1 -0
  300. package/dist/core/verified-run/projection.js +219 -0
  301. package/dist/core/verified-run/projection.js.map +1 -0
  302. package/dist/core/verified-run/recovery-clock.d.ts +19 -0
  303. package/dist/core/verified-run/recovery-clock.d.ts.map +1 -0
  304. package/dist/core/verified-run/recovery-clock.js +69 -0
  305. package/dist/core/verified-run/recovery-clock.js.map +1 -0
  306. package/dist/core/verified-run/recovery-command.d.ts +11 -0
  307. package/dist/core/verified-run/recovery-command.d.ts.map +1 -0
  308. package/dist/core/verified-run/recovery-command.js +73 -0
  309. package/dist/core/verified-run/recovery-command.js.map +1 -0
  310. package/dist/core/verified-run/recovery-projection.d.ts +12 -0
  311. package/dist/core/verified-run/recovery-projection.d.ts.map +1 -0
  312. package/dist/core/verified-run/recovery-projection.js +88 -0
  313. package/dist/core/verified-run/recovery-projection.js.map +1 -0
  314. package/dist/core/verified-run/recovery.d.ts +12 -0
  315. package/dist/core/verified-run/recovery.d.ts.map +1 -0
  316. package/dist/core/verified-run/recovery.js +115 -0
  317. package/dist/core/verified-run/recovery.js.map +1 -0
  318. package/dist/core/verified-run/run-types.d.ts +103 -0
  319. package/dist/core/verified-run/run-types.d.ts.map +1 -0
  320. package/dist/core/verified-run/run-types.js +2 -0
  321. package/dist/core/verified-run/run-types.js.map +1 -0
  322. package/dist/core/verified-run/scripted-writer.d.ts +15 -0
  323. package/dist/core/verified-run/scripted-writer.d.ts.map +1 -0
  324. package/dist/core/verified-run/scripted-writer.js +94 -0
  325. package/dist/core/verified-run/scripted-writer.js.map +1 -0
  326. package/dist/core/verified-run/session-port.d.ts +27 -0
  327. package/dist/core/verified-run/session-port.d.ts.map +1 -0
  328. package/dist/core/verified-run/session-port.js +2 -0
  329. package/dist/core/verified-run/session-port.js.map +1 -0
  330. package/dist/core/verified-run/storage.d.ts +15 -0
  331. package/dist/core/verified-run/storage.d.ts.map +1 -0
  332. package/dist/core/verified-run/storage.js +96 -0
  333. package/dist/core/verified-run/storage.js.map +1 -0
  334. package/dist/core/verified-run/verification-phase.d.ts +5 -0
  335. package/dist/core/verified-run/verification-phase.d.ts.map +1 -0
  336. package/dist/core/verified-run/verification-phase.js +56 -0
  337. package/dist/core/verified-run/verification-phase.js.map +1 -0
  338. package/dist/core/verified-run/work-recovery.d.ts +8 -0
  339. package/dist/core/verified-run/work-recovery.d.ts.map +1 -0
  340. package/dist/core/verified-run/work-recovery.js +44 -0
  341. package/dist/core/verified-run/work-recovery.js.map +1 -0
  342. package/dist/core/verified-run/writer-completion.d.ts +4 -0
  343. package/dist/core/verified-run/writer-completion.d.ts.map +1 -0
  344. package/dist/core/verified-run/writer-completion.js +27 -0
  345. package/dist/core/verified-run/writer-completion.js.map +1 -0
  346. package/dist/core/verified-run/writer-phase.d.ts +8 -0
  347. package/dist/core/verified-run/writer-phase.d.ts.map +1 -0
  348. package/dist/core/verified-run/writer-phase.js +76 -0
  349. package/dist/core/verified-run/writer-phase.js.map +1 -0
  350. package/dist/core/verified-run/writer-projection.d.ts +11 -0
  351. package/dist/core/verified-run/writer-projection.d.ts.map +1 -0
  352. package/dist/core/verified-run/writer-projection.js +70 -0
  353. package/dist/core/verified-run/writer-projection.js.map +1 -0
  354. package/dist/core/verified-run/writer-recovery.d.ts +16 -0
  355. package/dist/core/verified-run/writer-recovery.d.ts.map +1 -0
  356. package/dist/core/verified-run/writer-recovery.js +107 -0
  357. package/dist/core/verified-run/writer-recovery.js.map +1 -0
  358. package/dist/core/workload-permit-pool.d.ts +1 -3
  359. package/dist/core/workload-permit-pool.d.ts.map +1 -1
  360. package/dist/core/workload-permit-pool.js +11 -11
  361. package/dist/core/workload-permit-pool.js.map +1 -1
  362. package/dist/guardrails/evidence-system.d.ts +1 -1
  363. package/dist/guardrails/evidence-system.d.ts.map +1 -1
  364. package/dist/guardrails/evidence-system.js +18 -29
  365. package/dist/guardrails/evidence-system.js.map +1 -1
  366. package/dist/guardrails/merge-gate-result.d.ts +4 -0
  367. package/dist/guardrails/merge-gate-result.d.ts.map +1 -0
  368. package/dist/guardrails/merge-gate-result.js +32 -0
  369. package/dist/guardrails/merge-gate-result.js.map +1 -0
  370. package/dist/index.d.ts +3 -2
  371. package/dist/index.d.ts.map +1 -1
  372. package/dist/index.js +2 -2
  373. package/dist/index.js.map +1 -1
  374. package/dist/main.d.ts.map +1 -1
  375. package/dist/main.js +17 -23
  376. package/dist/main.js.map +1 -1
  377. package/dist/modes/interactive/components/session-failure.d.ts +13 -0
  378. package/dist/modes/interactive/components/session-failure.d.ts.map +1 -0
  379. package/dist/modes/interactive/components/session-failure.js +81 -0
  380. package/dist/modes/interactive/components/session-failure.js.map +1 -0
  381. package/dist/modes/interactive/interactive-login-options.d.ts +27 -0
  382. package/dist/modes/interactive/interactive-login-options.d.ts.map +1 -0
  383. package/dist/modes/interactive/interactive-login-options.js +54 -0
  384. package/dist/modes/interactive/interactive-login-options.js.map +1 -0
  385. package/dist/modes/interactive/interactive-mode.d.ts +8 -4
  386. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  387. package/dist/modes/interactive/interactive-mode.js +183 -171
  388. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  389. package/dist/modes/interactive/interactive-resume-command.d.ts +3 -0
  390. package/dist/modes/interactive/interactive-resume-command.d.ts.map +1 -0
  391. package/dist/modes/interactive/interactive-resume-command.js +24 -0
  392. package/dist/modes/interactive/interactive-resume-command.js.map +1 -0
  393. package/dist/modes/interactive/interactive-tool-result.d.ts +32 -0
  394. package/dist/modes/interactive/interactive-tool-result.d.ts.map +1 -0
  395. package/dist/modes/interactive/interactive-tool-result.js +59 -0
  396. package/dist/modes/interactive/interactive-tool-result.js.map +1 -0
  397. package/dist/modes/interactive/tui-diagnostics.d.ts +36 -0
  398. package/dist/modes/interactive/tui-diagnostics.d.ts.map +1 -0
  399. package/dist/modes/interactive/tui-diagnostics.js +105 -0
  400. package/dist/modes/interactive/tui-diagnostics.js.map +1 -0
  401. package/dist/modes/interactive/tui-runtime-info.d.ts +20 -0
  402. package/dist/modes/interactive/tui-runtime-info.d.ts.map +1 -0
  403. package/dist/modes/interactive/tui-runtime-info.js +76 -0
  404. package/dist/modes/interactive/tui-runtime-info.js.map +1 -0
  405. package/dist/modes/print-mode.d.ts.map +1 -1
  406. package/dist/modes/print-mode.js +22 -0
  407. package/dist/modes/print-mode.js.map +1 -1
  408. package/dist/utils/clipboard-image.d.ts.map +1 -1
  409. package/dist/utils/clipboard-image.js +10 -60
  410. package/dist/utils/clipboard-image.js.map +1 -1
  411. package/dist/utils/terminal-links.d.ts +13 -0
  412. package/dist/utils/terminal-links.d.ts.map +1 -0
  413. package/dist/utils/terminal-links.js +68 -0
  414. package/dist/utils/terminal-links.js.map +1 -0
  415. package/dist/utils/windows-clipboard-image.d.ts +16 -0
  416. package/dist/utils/windows-clipboard-image.d.ts.map +1 -0
  417. package/dist/utils/windows-clipboard-image.js +87 -0
  418. package/dist/utils/windows-clipboard-image.js.map +1 -0
  419. package/docs/adaptorch-onboarding.md +80 -0
  420. package/docs/containerization.md +12 -0
  421. package/docs/context-files.md +97 -0
  422. package/docs/correctness-wall.md +8 -0
  423. package/docs/custom-provider.md +35 -0
  424. package/docs/development.md +28 -3
  425. package/docs/environment-variables.md +2 -0
  426. package/docs/grok-harness.md +4 -0
  427. package/docs/harness-boundaries.md +154 -0
  428. package/docs/harness-improvements.md +90 -0
  429. package/docs/json.md +19 -0
  430. package/docs/keybindings.md +2 -2
  431. package/docs/mcp.md +22 -2
  432. package/docs/metrics.md +66 -16
  433. package/docs/model-catalog-refresh.md +190 -0
  434. package/docs/model-contract.md +168 -0
  435. package/docs/models.md +21 -4
  436. package/docs/provider-resilience.md +5 -3
  437. package/docs/providers.md +68 -1
  438. package/docs/quickstart.md +4 -0
  439. package/docs/release-audit-0.98.4.md +112 -0
  440. package/docs/release-audit-0.98.5.md +84 -0
  441. package/docs/review-bundle-followup.md +195 -0
  442. package/docs/run-protocol.md +33 -1
  443. package/docs/runtime-algorithms.md +45 -0
  444. package/docs/sdk.md +204 -2
  445. package/docs/sessions.md +1 -1
  446. package/docs/settings.md +17 -1
  447. package/docs/skills.md +2 -0
  448. package/docs/tb21-audit.md +131 -0
  449. package/docs/terminal-setup.md +20 -0
  450. package/docs/usage.md +77 -1
  451. package/docs/verified-run-testing.md +417 -0
  452. package/docs/verified-run.md +388 -0
  453. package/docs/windows.md +48 -0
  454. package/examples/README.md +4 -0
  455. package/examples/context/AGENTS.md +64 -0
  456. package/examples/context/CLAUDE.md +17 -0
  457. package/examples/context/INTERNET.md +42 -0
  458. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  459. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  460. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  461. package/examples/extensions/gondolin/package-lock.json +2 -2
  462. package/examples/extensions/gondolin/package.json +1 -1
  463. package/examples/extensions/sandbox/package-lock.json +2 -2
  464. package/examples/extensions/sandbox/package.json +1 -1
  465. package/examples/extensions/with-deps/package-lock.json +2 -2
  466. package/examples/extensions/with-deps/package.json +1 -1
  467. package/npm-shrinkwrap.json +18 -18
  468. package/package.json +6 -6
package/docs/providers.md CHANGED
@@ -32,6 +32,41 @@ Alibaba Model Studio Token Plan is recognized as **QWEN TOKEN PLAN** and reads i
32
32
 
33
33
  With a stored native `xai` OAuth credential, OMK reads `GET https://cli-chat-proxy.grok.com/v1/billing?format=credits` and shows the weekly SuperGrok pool from `config.creditUsagePercent` plus its reset from `config.currentPeriod.end`. `XAI_API_KEY` is a separate API-billing credential and does not authorize this subscription endpoint.
34
34
 
35
+ ### Model Studio DeepSeek V4
36
+
37
+ Model Studio uses `enable_thinking`, including for DeepSeek. OMK's Chat Completions
38
+ adapter recognizes official HTTPS DashScope and `*.maas.aliyuncs.com` hosts, defaults
39
+ to `max_tokens` and the `system` role, and omits unsupported OpenAI store/long-cache
40
+ fields. Legacy `thinkingFormat: "deepseek"` on these hosts is translated to the
41
+ `enable_thinking` format. Native DeepSeek endpoints keep their native format.
42
+
43
+ DeepSeek V4 sends the selected `reasoning_effort` when compatibility settings permit
44
+ it. Without a model-specific mapping, `minimal` maps to the supported `low` value.
45
+ An explicit `supportsReasoningEffort: false` still suppresses that field; remove
46
+ that override or enable it for the model if you intend to send `high`, `xhigh`, or
47
+ `max`. With thinking off, OMK sends `enable_thinking: false` rather than relying on
48
+ the server default. See [custom model configuration](models.md#openai-compatibility).
49
+
50
+ Keep the key paired with its purchased product and region. These are distinct
51
+ billing paths, not interchangeable aliases:
52
+
53
+ | Product | Example OpenAI-compatible base URL |
54
+ | --- | --- |
55
+ | Token Plan, Singapore | `https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1` |
56
+ | Coding Plan, China | `https://coding.dashscope.aliyuncs.com/v1` |
57
+ | Pay-as-you-go | `https://dashscope.aliyuncs.com/compatible-mode/v1` |
58
+
59
+ Protocol detection never changes the URL, credentials, model ID, or subscription.
60
+ For a comparison run, pin the exact Flash snapshot offered by that endpoint in
61
+ both arms; `deepseek-v4-flash-0731` and an unversioned alias are not automatically
62
+ the same experimental condition. Apply a [model contract](model-contract.md), and
63
+ verify the installed adapter and final request before starting a benchmark.
64
+
65
+ Sources: Alibaba's [DeepSeek API](https://www.alibabacloud.com/help/en/model-studio/deepseek-api)
66
+ and [plan endpoint separation](https://www.alibabacloud.com/help/en/model-studio/token-plan-team-quickstart),
67
+ consulted 2026-09-08. The local tests exercise serialization, not account availability,
68
+ provider compliance, billing, or benchmark performance.
69
+
35
70
  ### OpenAI Codex
36
71
 
37
72
  - Requires ChatGPT Plus or Pro subscription
@@ -94,6 +129,7 @@ omk
94
129
  | Fireworks | `FIREWORKS_API_KEY` | `fireworks` |
95
130
  | Together AI | `TOGETHER_API_KEY` | `together` |
96
131
  | Kimi For Coding | `KIMI_API_KEY` | `kimi-coding` |
132
+ | Meta Model API | `META_API_KEY` (or `META_MODEL_API_KEY`, `MODEL_API_KEY`) | `meta` |
97
133
  | MiniMax | `MINIMAX_API_KEY` | `minimax` |
98
134
  | MiniMax (China) | `MINIMAX_CN_API_KEY` | `minimax-cn` |
99
135
  | Xiaomi MiMo | `XIAOMI_API_KEY` | `xiaomi` |
@@ -106,7 +142,38 @@ Reference for environment variables and `auth.json` keys: [`const envMap`](https
106
142
 
107
143
  #### NVIDIA NIM
108
144
 
109
- Set `NVIDIA_API_KEY` and select an NVIDIA model with `/model`. The built-in `nvidia/z-ai/glm-5.2` entry sends `reasoning_effort`, including the `max` level. Other NVIDIA models keep conservative compatibility defaults unless their model metadata explicitly enables reasoning effort.
145
+ Set `NVIDIA_API_KEY` and select a currently listed NVIDIA model with `/model`.
146
+ NIM entries are filtered against its live `/v1/models` list; historical GLM examples
147
+ may no longer be listed. Thinking capabilities stay model-specific. See the
148
+ [latest catalog audit](model-catalog-refresh.md) for source coverage and limits.
149
+
150
+ #### Meta Model API
151
+
152
+ Meta's first-party [Muse Spark](https://dev.meta.ai/docs/overview) endpoint, served over the OpenAI
153
+ Responses API at `https://api.meta.ai/v1`:
154
+
155
+ ```bash
156
+ export META_API_KEY=...
157
+ omk --provider meta --model muse-spark-1.3
158
+ ```
159
+
160
+ Two auth paths:
161
+
162
+ - **Subscription:** `/login` → Use a subscription → Muse Code. Device-code sign-in at
163
+ `auth.meta.com`, then a mint at `https://api.meta.ai/muse-code/key`. Honors `HTTP_PROXY` /
164
+ `HTTPS_PROXY`. The minted key is what inference uses.
165
+ - **Pay-as-you-go:** `META_API_KEY` (then `META_MODEL_API_KEY`, then `MODEL_API_KEY`), or paste a
166
+ Model API key under `/login` → Use an API key → Meta Model API. Extra keys you create on the
167
+ dashboard are billed [per token](https://dev.meta.ai/docs/muse-code/subscriptions), even with an
168
+ active Muse Code subscription.
169
+
170
+ Standard tier: `muse-spark-1.3`, `muse-spark-1.2`, `muse-spark-1.1`. Contributor tier:
171
+ `muse-spark-1.3-contributor`, `muse-spark-1.2-contributor`. All carry a 1M-token context window.
172
+
173
+ Thinking levels run `minimal` → `max`. Muse Spark's own effort ceiling is `xhigh`, which its docs
174
+ call "maximum reasoning depth", so omk's `max` level maps onto `xhigh` rather than sending an enum
175
+ the API would reject. Thinking cannot be switched off: Muse Spark rejects `reasoning_effort: "none"`
176
+ with HTTP 400, so omk never sends it.
110
177
 
111
178
  #### Zyloo
112
179
 
@@ -85,6 +85,10 @@ Additional built-in read-only tools (`grep`, `find`, `ls`) are available through
85
85
 
86
86
  ## Give omk project instructions
87
87
 
88
+ For optional, portable user defaults, preview `omk init --global --dry-run`, then
89
+ run `omk init --global`. Existing instructions and settings are preserved.
90
+ See [User context setup](context-files.md) for migration, loading, and interoperability.
91
+
88
92
  OMK loads context files at startup. Add an `AGENTS.md` file to tell it how to work in a project:
89
93
 
90
94
  ```markdown
@@ -0,0 +1,112 @@
1
+ # Release audit: v0.98.4
2
+
3
+ Date: 2026-09-10. This records pre-publication checks and approved history cleanup,
4
+ not a semantic-correctness/performance claim. The tag workflow and registry versions
5
+ remain the evidence for completed publication.
6
+
7
+ ## Scope and history
8
+
9
+ The candidate retains the public v0.98.3 ancestry and the reviewed local implementation
10
+ commits. Preparation uses only committed implementation files plus explicit release
11
+ metadata. Twelve existing modified files and two untracked test files were snapshotted
12
+ and isolated before preparing the candidate; they are not part of this candidate.
13
+ Credentials, the active model, private agent-home settings and stopped benchmarks are
14
+ not modified. Catalogs are reused from the reviewed commit, not regenerated.
15
+
16
+ The deletion commit alone did not remove the internal research document from history.
17
+ After explicit approval, only the unpublished range of `main` was filtered in a separate
18
+ bare repository. The cleaned branch has no path history or reachable blob for that
19
+ document. The resulting candidate tree is byte-identical to the previously checked tree;
20
+ the public main ancestor, other local refs and existing tags are unchanged. A scoped
21
+ compare-and-swap updated local main without resetting working files. Private recovery
22
+ material remains outside the repository and is not published.
23
+
24
+ The cleaned unpublished history also passed gitleaks with no findings. Publication uses
25
+ only the explicit main and v0.98.4 refs, without force-pushing or sending other local refs.
26
+
27
+ ## Changelog audit
28
+
29
+ The audit compares committed changes since v0.98.3. New entries cover model contracts,
30
+ DeepSeek V4.1 routes and provider thinking, metrics v2, gate/sandbox narrowing, shared-DAG
31
+ repairs and witness policy, CLI/skill/provider changes, clipboard/Markdown links, and WPL
32
+ submission checks. User-visible lower-level changes are also summarized in the CLI
33
+ changelog. Already released lifecycle/advisory changes are not advertised as new.
34
+ Unrelated pending retry/timeout/TB changes are not included. Published changelog sections
35
+ at v0.98.3 and earlier must remain byte-identical after the version bump.
36
+
37
+ ## Package/version contract
38
+
39
+ The seven public packages are `open-multi-agent-kit`, `omk-ai`, `omk-agent-core`, `omk-tui`,
40
+ `omk-protocol`, `omk-adaptorch-wpl`, and `omk-book-to-skill`, all at candidate version
41
+ 0.98.4. Root/example manifests and locks, internal dependency ranges, the book compiler's
42
+ version constant, CLI shrinkwrap and README pointers are synchronized in the same unit.
43
+
44
+ The checks below ran on the isolated 0.98.4 candidate. Tests and pack/build commands
45
+ used no real provider credentials. Catalogs remained byte-identical to the reviewed
46
+ committed snapshot.
47
+
48
+ ## Verification status
49
+
50
+ | Gate | Observed status |
51
+ | --- | --- |
52
+ | Workspace version bump | `npm run version:patch` exited 0; seven public versions are 0.98.4 |
53
+ | Published changelog preservation | Seven histories at v0.98.3 and earlier byte-preserved |
54
+ | Workspace build/typecheck | Build exited 0; six changed runtime files and the version constant confirmed clean by primary LSP |
55
+ | Full offline tests | Second run exited 0: 7,859 passed, 837 skipped, no failed tests or collection failures |
56
+ | `npm run check` | Candidate-index check exited 0; module-size and import-cycle gates passed without broader baselines |
57
+ | Release consistency | `check-release-consistency.mjs --release` exited 0 for version/ancestry/README consistency; history cleanup is checked separately below |
58
+ | npm package inspection | Seven local packs declared 0.98.4 and contained manifests/changelogs; restricted path matches 0; local seven-package install exited 0 |
59
+ | Standalone binary smoke | Linux x64 archive built; clean-environment Node CLI and standalone binary both reported 0.98.4 |
60
+ | Native initcheck | Go vet, race/shuffle tests and debug-symbol validation exited 0 |
61
+ | Candidate secret scan | gitleaks on the candidate source snapshot exited 0, findings 0; not a history-clearance claim |
62
+ | Dependency audit | Production dependencies: 0 vulnerabilities. Including development dependencies: 3 existing moderate Vitest-family advisories; suggested fix is a major upgrade, not applied implicitly |
63
+ | Public Git history | Scoped cleanup verified: forbidden path/blob reachability 0, candidate tree unchanged, public ancestor and other refs/tags preserved; unpublished-history gitleaks exited 0 |
64
+
65
+ Package test counts were WPL 149, agent 868, AI 631, book compiler 22,
66
+ coding-agent 5,425, protocol 34, and TUI 730. AI skipped 786 and coding-agent
67
+ skipped 51 live/environment-gated tests. These counts are verification coverage,
68
+ not measured harness quality.
69
+
70
+ ### Failures found and repaired during preparation
71
+
72
+ The first full run exposed 31 failed tests and five collection failures; those results
73
+ were not counted as a pass. Narrow reruns separated stale fixtures from runtime defects:
74
+
75
+ - Pre-aborted requests already stopped before authentication/provider dispatch. The old
76
+ test expected the provider to run after abort. It now checks zero auth/provider calls,
77
+ preserved cancellation reason and coherent stream termination. Queued steering input
78
+ remains in the transcript without starting another provider after cancellation.
79
+ - The native legacy Flash alias now serves a vision model. Vision-routing tests use an
80
+ explicit text-only fixture instead of asserting a volatile catalog alias is text-only.
81
+ - Four hoisted mocks used a not-yet-initialized namespace import; they now load the real
82
+ source through `vi.importActual`. The provider-doctor wiring check exercises the actual
83
+ source CLI rather than an obsolete import string in `main.ts`.
84
+ - Invalid tokenizer results now fail at their boundary and trigger the existing noted
85
+ fallback. Non-finite estimates fall back to the heuristic; optional-context sorting
86
+ remains antisymmetric/transitive instead of returning NaN.
87
+ - Domain matching normalizes whitespace without changing its deliberate repeated-keyword
88
+ scoring policy. Metamorphic regressions cover spaces, tabs and line breaks.
89
+ - Redaction preserves narrowly recognized non-secret references, placeholders and nearby
90
+ type annotations. Known credential patterns and literal values still mask; adversarial
91
+ suffix/literal cases are tested. The documented global persistence opt-out was incorrect:
92
+ the existing alias affects input only, and forced persistence/report masking remains on.
93
+ No global safety setting was enabled or weakened.
94
+
95
+ The corrective changes were committed separately. After scoped history cleanup their
96
+ IDs are `ec6db009df` (token counts/order), `f88b791a53` (whitespace routing),
97
+ `23e4b75d14` (redaction and its actual contract), and `779447c883` (current-runtime
98
+ test fixtures). Their source content and the recorded test results are unchanged.
99
+ Release metadata is a separate unit.
100
+
101
+ Full tests use the repository's `test.sh` with an isolated HOME, a credential-free
102
+ allowlisted environment and bounded Vitest workers. Toolchain locations may be passed
103
+ without credentials. Live provider tests, paid inference, benchmark execution and TUI
104
+ session restarts are excluded. A Linux smoke does not validate all target platforms.
105
+
106
+ ## Publication procedure
107
+
108
+ Review the final source tree, check the approved history, and tag the
109
+ exact main commit. The existing `build-binaries.yml` CI path owns npm publication and
110
+ GitHub Release creation; local pack/build commands are not publication. CI authentication
111
+ is unchanged and does not claim OIDC/Sigstore provenance. Completion requires the main tag,
112
+ GitHub Release and npm latest for all seven packages to agree.
@@ -0,0 +1,84 @@
1
+ # Release audit: v0.98.5
2
+
3
+ Date: 2026-09-12. This records candidate preparation and verification, not proof of
4
+ semantic correctness, comparative performance or completed publication.
5
+
6
+ ## Scope and changelog audit
7
+
8
+ The candidate retains the public v0.98.4 ancestry and the committed implementation
9
+ range through `b84d0d9b8e`. The audit covers index-preserving Git checks, execution
10
+ ownership/shared budgets, protected verified runs and candidate recovery, input
11
+ checkpoint writer restart, static DAG retry, and TUI diagnostics. Tool timeout
12
+ messages now distinguish requested cancellation from observed termination and use
13
+ a monotonic teardown grace period.
14
+
15
+ Preparation adds release metadata, this audit, and focused verification fixes:
16
+ initial failure-card expansion is applied at construction, execution wrappers
17
+ preserve lazy context-sensitive timeouts, and the commit hook handles changed-file
18
+ status under Husky's errexit mode. Existing dirty provider, retry,
19
+ parallel-frontier, resource-label and TB changes are excluded.
20
+ Their working files are preserved, and their pending changelog entries stay out of
21
+ the candidate. Published v0.98.4 and earlier changelog bodies remain unchanged.
22
+ Model catalogs are reused rather than fetched or regenerated. Credentials, private
23
+ agent-home configuration and the user's running TUI are not changed.
24
+
25
+ ## Version and artifact contract
26
+
27
+ All seven public packages target 0.98.5: `open-multi-agent-kit`, `omk-ai`,
28
+ `omk-agent-core`, `omk-tui`, `omk-protocol`, `omk-adaptorch-wpl` and
29
+ `omk-book-to-skill`. Root/example manifests and locks, internal dependency ranges,
30
+ the book compiler's source version constant, CLI shrinkwrap and README pointers
31
+ are synchronized. External dependency versions and integrity values are unchanged.
32
+
33
+ The release candidate is selected by path/hunk and inspected as a complete staged
34
+ diff. Verification uses an isolated candidate, not the mixed working tree. Temporary
35
+ homes contain no provider credentials; live inference and benchmarks are not run.
36
+
37
+ ## Observed verification
38
+
39
+ - The diagnostics implementation passed type checking and 104 focused tests in its
40
+ staged snapshot. Its canonical installed launcher passed offline 120/80-column
41
+ inspection, save, failure, reload and quit checks without model prompts.
42
+ - Version preparation passed 13-manifest/root-lock parity, source-version tests,
43
+ book metadata tests and the canonical `omk --version` check for 0.98.5.
44
+ - The isolated candidate build and `npm run check` exited 0. Module-size and
45
+ import-cycle baselines were not raised.
46
+ - The final full offline run exited 0: 8,181 passed, 837 environment/live-condition
47
+ skips, no failures. Package passes were WPL 149, agent 870, AI 631, book compiler
48
+ 22, coding-agent 5,653, protocol 126 and TUI 730. Vitest workers were bounded at
49
+ four; the TUI package used its Node test runner.
50
+ - Seven-package npm pack dry runs and release-surface checks passed. They checked
51
+ package version/file metadata without publication or lifecycle scripts.
52
+ - Gitleaks found no leaks in the staged changes or the six implementation commits
53
+ since v0.98.4. Reports were redacted; this is not clearance for private histories
54
+ outside that range.
55
+
56
+ ## Verification repairs
57
+
58
+ The isolated candidate exposed a two-line module-size overrun that the mixed tree
59
+ hid. Passing initial expansion to the failure-card constructor avoids a redundant
60
+ rebuild and keeps the existing size baseline; both initial states are tested.
61
+
62
+ The full suite exposed an execution wrapper spreading a tool's dynamic timeout
63
+ getter into a fixed value. The wrapper now projects tool metadata and forwards
64
+ that getter lazily. Regression checks cover no eager evaluation, timeout changes,
65
+ stale-context rejection and retained execution metadata.
66
+
67
+ The commit hook had only been tested under plain `sh`, while Husky invokes `sh -e`.
68
+ A changed-file `git diff --quiet` status of 1 therefore stopped valid release
69
+ commits. Capturing that status in an OR-list preserves errexit for real failures;
70
+ all six hook fixtures now run under `sh -e`, including changed paths with spaces,
71
+ index preservation and a fatal git-diff error.
72
+
73
+ An initial test launch resolved to the wrong checkout and was cancelled, not counted
74
+ as candidate evidence. Subsequent launches fix both process cwd and npm prefix.
75
+ An isolated HOME also hid the installed Rust toolchain: explicitly supplying its
76
+ location restored the real cargo diagnostic check without changing the test or
77
+ copying credentials. Neither fixture failure was treated as a product pass.
78
+
79
+ A source-file fingerprint is not an executed-build attestation. Linux observations
80
+ do not establish behavior on every target platform. CI must validate the exact tag,
81
+ build the six platform archives, run checks/tests, publish all seven npm packages
82
+ and create the GitHub Release. Existing token-based CI authentication is unchanged;
83
+ OIDC/Sigstore provenance is not claimed. Publication is complete only when the main
84
+ tag, GitHub Release and seven npm `latest` values agree.
@@ -0,0 +1,195 @@
1
+ # 재현 번들 검토 후 적용한 경계 개선
2
+
3
+ 후속 상태는 [0.98.4 릴리스 감사](release-audit-0.98.4.md)를 기준으로 본다.
4
+ 아래는 준비 단계의 역사적 기록이며, 커밋 ID도 비공개 문서의 이력 정리 전 로컬 ID다.
5
+ 현재의 이력 정리·검증 결과와 혼동하지 않는다.
6
+
7
+ 대상 자료: `OMK_Review_Reproduction_Bundle_2026-09-09.zip`.
8
+ ZIP SHA-256: `aa90e09d04b5802ca2e8343f2666887822eca7e3ab474309835117e85bcd63d8`.
9
+ 14개 member의 경로·크기·링크 여부와 제공된 checksum 13개를 확인했다.
10
+ 이 해시는 자료 식별자이며 제삼자 서명이나 안전성 인증은 아니다.
11
+
12
+ 번들 기준은 `dc413cd9bc59be0fcb0267a2442b2d5461b14031`(0.98.3), 현재 작업 시작
13
+ HEAD는 `29624c3962d00cc8355191265e7827d9fdf0f3ad`다. 현재 미커밋 변경도 있으므로
14
+ 리뷰 문구를 현재 구현의 사실로 그대로 승격하지 않았다. 확인된 결함부터 별도 회귀로
15
+ 고정했고, 번들의 계획을 실행 권한으로 취급하지 않았다.
16
+
17
+ ## 2026-09-10 재검증·커밋 상태
18
+
19
+ 이 절이 아래 9월9일 검사 기록보다 최신이다. 설정·선택 모델·벤치마크는 그대로 두고
20
+ 구현을 재검증했다. 공식 문서로 DeepSeek V4.1 Flash의 native DeepSeek,
21
+ OpenCode Go, OpenRouter, Vercel 경로를 확인해 생성기에 반영했다.
22
+ 자세한 ID와 가격·wire 한계는 [카탈로그 기록](model-catalog-refresh.md)에 있다.
23
+
24
+ | 단위 | 재검증 | 구현 커밋 |
25
+ | --- | --- | --- |
26
+ | 기존 모듈 크기6건 해소 | 선언·함수 AST 이동 전후 일치, 직접 회귀195개, LSP16파일 clean | `0ae2b3b29c` |
27
+ | 브라우저 Node 의존성 제거 | 새 bundle 회귀 RED→GREEN, 기존 metadata14개, browser smoke 종료0 | `15059ff28a` |
28
+ | 모델 계약·이미지 투영·종료 | core227개, CLI/SDK43개, Agent/Harness41개 통과 | `e8f27e3d9f` |
29
+ | 모델 목록·thinking | 164개 통과/라이브 등5개 제외, 전체1333모델 중복·상한·가격 불변식 통과 | `267c1f909a` |
30
+ | metrics v2 | 42개 통과 | `bc3b43b5a4` |
31
+ | gate·sandbox 정책 | 56개 통과 | `63fb682fc0` |
32
+ | 공유 DAG·증인 정책 | 24개 통과, 내부 oracle60그래프 | `6e1ccb2e64` |
33
+ | 최신성 상수 명칭 | 정렬 회귀4개 통과, 계산식 불변 | `b9109a91ae` |
34
+ | 기존 서식3건 | 직접 회귀40개 통과 | `bccf660ab0` |
35
+
36
+ 위 표는 겹치는 검사들이 있으므로 합산 테스트 수가 아니다. 각 커밋은 명시한 경로/hunk만
37
+ stage했고, pre-commit 검사를 우회하지 않았다. 훅이 파일 전체를 다시 stage하는 경우
38
+ 이번 단위 밖 hunk를 일시 격리한 뒤 복원했으며, 커밋 tree가 검토한 index와 같은지 확인했다.
39
+ 이전 retry·Codex SSE timeout·TB 선택기/감사 변경은 미커밋 상태로 보존했다.
40
+
41
+ 최종 `npm run build`, `npm run check`, `git diff --check`는 종료0이다.
42
+ 빌드한 카탈로그에서도 네 Flash 경로와 off/low/high/max를 확인했다.
43
+ `lens_diagnostics(mode=all)`의 error 결과는 0이다. 수동 TUI 재시작·실제 추론·과금과
44
+ 전체 라이브 suite는 실행하지 않았다. 검증용 CLI의 버전은 아직 **0.98.1**이다.
45
+
46
+ ### 배포 보류: 이력 통합과 범위 확인 필요
47
+
48
+ GitHub 최신 release와 npm 일곱 package의 latest는 모두 **0.98.3**이다.
49
+ 하지만 해당 tag는 이 로컬 HEAD의 조상이 아니며, 작업 시작 시 로컬/원격 main이
50
+ 26/11커밋으로 갈라져 있었다. 읽기 전용 merge 미리보기에서 문서·changelog·spec
51
+ 7개 경로의 충돌도 확인했다. 기존 release를 덮어쓰거나 force-push하지 않는다.
52
+
53
+ 따라서 `node scripts/check-release-consistency.mjs --release`는 종료1이다.
54
+ 일반 check 통과를 release 승인으로 해석하지 않는다. 기존0.98.3 이력을 통합하고
55
+ 배포에 포함할 로컬 커밋 범위를 확인한 뒤 **0.98.4**로 patch bump해야 한다.
56
+ 병합·origin/main 및 v0.98.4 push·태그 게시 범위 확인을 요청했으며, 현재는 버전 변경,
57
+ 태그 생성, push, GitHub Release, npm publish를 실행하지 않았다.
58
+
59
+ ## 1. 적용한 변경
60
+
61
+ | 지적 | 현재 코드에서 확인한 결과 | 적용 |
62
+ | --- | --- | --- |
63
+ | F01/F02/F03 | 공유 DAG에서 지역 최소 cut을 합치면 전역 최소도 포함 최소도 아님 | bounded antichain 설명, 명시적 optimality, 복잡도 설명 교정 |
64
+ | 4.7의 추가 위험 | 부모 자체 반례가 있어도 child만 수리 대상으로 반환 | local/children 원인을 구분하고 부모 의무도 설명에 보존 |
65
+ | F07 | `exp(-age/h)`의 h를 half-life라고 명명 | e-folding time constant로만 개명. 수치·점수·선택 정책은 그대로 |
66
+ | F09 | 다른 observation ID만으로 독립 증인 수 증가 | 선택형 `explicit-groups` 정책과 결과의 정책 표시 |
67
+ | F10/F11 | 오류를 200자로 자르고 입력을 spread해 원문·추가 필드·toJSON이 저장될 수 있음 | metrics v2 허용 목록, 오류 분류만 저장, 전체 중첩 값·파생 counter 검증 |
68
+ | F12 | 빈·희소 gate 배열 또는 호출자 배열 변경 뒤 `open` | 생성자 거부·배열 snapshot. 빈 결과 결합도 거부 |
69
+ | F20 | 명시적 허용 없이 enforce→audit/off 또는 filesystem root 확대 | 더 약한 mode·더 넓은 root를 채택하지 않음. 명시적 allowBroaden 경로 유지 |
70
+
71
+ 추가로 `TaskContractBuilder.fromJSON()`의 문법 오류가 입력 일부를 메시지에 넣는
72
+ 동작을 재현했다. 잘못된 JSON은 계속 `SyntaxError`로 거부하되 원문을 포함하지 않는다.
73
+ 오류를 삼키거나 잘못된 계약을 허용하는 수정은 아니다.
74
+
75
+ ## 2. Claim Graph: 설명과 진실 판정을 분리
76
+
77
+ 현재 `claim-blocking-cut.ts`의 수정 전 Git blob은 번들의 추출본과 같은
78
+ `1d5d1a1f229b7439ff940fc3d1abbe0c988e3fa4`였다. 검토한 Node 재현 스크립트로
79
+ 다음을 실제 확인했다.
80
+
81
+ ```text
82
+ all(any(a,z), any(b,z)): 기존 [a,b], 최소 [z]
83
+ all(any(a,z), z): 기존 [a,z], 최소 [z]
84
+ ```
85
+
86
+ 새 `explainBlockingCut()`은 비지배 수리 집합을 유지해 공유 노드를 고려한다.
87
+ 완주하면 `optimality: minimum`, 후보 family 128개 또는 탐색 operation 65,536개
88
+ 상한에 걸리면 deterministic greedy와 `optimality: not-proven`, `truncated: true`를
89
+ 반환한다. 상한은 탐색 규모 제한이지 절대 wall-clock 제한이 아니다. fallback은
90
+ cardinality minimum이나 inclusion minimum을 보장하지 않는다.
91
+
92
+ 이 결과는 현재 평가 snapshot의 **수리 의무 모델**에서의 설명이다. 실제 수정 후의
93
+ 정확성, 비용 최적성, 승인·merge 권한이 아니다. `minimalBlockingCut` 배열은 호환용으로
94
+ 유지하고, 최소성이 필요한 소비자는 `blockingCut` metadata를 사용한다.
95
+ 부모 자체 위반·scope 의무는 `localClaimIds`에 나타난다. unresolved effect와 전체
96
+ workspace completeness는 기존 verdict 경계에 남는다.
97
+
98
+ 새 strict witness 정책은 `witnessIndependence: "explicit-groups"`로 선택한다.
99
+ `requiredWitnesses > 1`에서는 nonempty `independenceGroup`만 집계한다. 독립성이
100
+ 불명인 관측이 하나의 named group을 보충하거나, ID만 바꿔 quorum을 채우지 못한다.
101
+ 기본값은 기존 `legacy-observation-id`이며 결과에 사용한 정책이 기록된다.
102
+ 그룹이 정말 독립인지는 실행·영수증 경계에서 인증해야 한다. 이 함수가 임의 문자열을
103
+ 실제 독립 실행의 증명으로 만들어 주는 것은 아니다.
104
+
105
+ 자세한 공개 계약은 [protocol README](../../protocol/README.md)에 있다.
106
+
107
+ ## 3. Metrics v2와 호환성
108
+
109
+ `turn-metrics-record.ts`가 입력/파일 검증과 명시적 projection을 소유한다.
110
+ `turn-metrics.ts`는 sink와 집계만 담당한다. 새 기록은 root/usage/tool/cache의 알려진
111
+ 필드만 구성하고 raw error 대신 `timeout/aborted/permission/not_found/invalid_input/unknown`
112
+ 분류를 저장한다. 오류 분류는 진단 metadata이지 재시도나 권한 결정 신호가 아니다.
113
+
114
+ 기존 v1 기록은 검증해서 집계하며, 원래 파일은 수정하거나 삭제하지 않는다.
115
+ 기존 파일에 이미 들어간 민감값은 별도 검토 대상이다. 식별자 자체도 익명화하지 않는다.
116
+ 잘못된 수치·중첩 값·파생 counter는 malformed로 집계한다. 새 입력이 잘못됐거나
117
+ 한 record가 파일 상한보다 크면 sink는 dropped counter를 올리고 false를 반환한다.
118
+ agent 실행은 metrics 실패 때문에 중단하지 않는다.
119
+
120
+ 전체 파일 읽기·동시 writer·rotation 경쟁까지 해결한 것은 아니다. 원장의 세그먼트화나
121
+ 비동기 writer는 실제 병목과 crash matrix를 확보한 다음 단위다.
122
+ [metrics 계약](metrics.md)을 함께 참조한다.
123
+
124
+ ## 4. 나머지 지적의 현재 처리
125
+
126
+ | 지적 | 상태와 다음 수용 기준 |
127
+ | --- | --- |
128
+ | F04/F05, level/chunk barrier | 보류. 최종 인수 재계획·충돌 잠금·취소·결과 순서를 보존하는 replay와 실제 critical-path 측정이 선행 |
129
+ | F06, 표현 비용과 효용 | 보류. F07 이름만 수정했으며 선택 점수는 바꾸지 않음. 표현별 작은 exhaustive oracle과 문맥 손실 평가 필요 |
130
+ | F08, flat 관측의 존재 의미 | 현재 `evaluateCondition`에서 존재 양화를 확인. v1 의미를 조용히 최종 상태 의미로 바꾸지 않음. snapshot-bound adapter를 별도 설계해야 함 |
131
+ | F09의 원천 인증 | 부분 적용. strict grouping은 구현했지만 receipt/run에서 그룹을 인증·파생하는 adapter는 미구현 |
132
+ | F13/F14, 원장 전체 재검사·동기 대기 | 이번 미재현·미변경. append/lock 시간·fsync 비용을 측정한 뒤 보장 유지 여부로 판단 |
133
+ | F15, lane child cancellation | 이번 미재현·미변경. child 시작/종료·abort·permit 반환 통합 검사를 통과하기 전 기본 활성화하지 않음 |
134
+ | F16/F17, WPL timeout·실패 재발 | 이번 미재현·미변경. 상위 deadline과 실제 underlying 취소, 같은 failure signature 이력의 회귀 필요 |
135
+ | F18, 중복 settlement | 이번 미재현·미변경. delta counter를 바로 교체하지 않고 ID 기반 등록/종료와 모든 생산자 연결 검사 필요 |
136
+ | F19, 제공자 오류 의미 | 이전 작업에서 core model-contract 거부를 configuration으로 분리. 전체 제공자 typed-error 전환이나 정책 변경을 완료한 것은 아님 |
137
+ | F20의 전체 권한 집합 | mode/root 반례를 수정. 모든 도메인·프로파일·OS enforcement 조합의 보편적 안전성 증명은 아님 |
138
+
139
+ 검토 문서의 18개 PR 제안을 모두 구현했다는 뜻이 아니다. 새 오케스트레이터·학습형
140
+ 라우터·기본 다중 agent·새 DB를 추가하지 않았다. 설정·모델·WSL을 바꾸거나 유료 모델,
141
+ 벤치마크, 배포를 실행하지도 않았다.
142
+
143
+ ## 5. 검증 증거
144
+
145
+ - 번들 원본 재현 스크립트: Node 24에서 종료0, 원본의 잘못된 두 결과 확인.
146
+ 번들 Python 참조 알고리즘은 실행하거나 제품 코드로 복사하지 않았다.
147
+ - 기존 범위 baseline 58개 통과 후, gate/sandbox 7개·metrics 17개·claim 4개 요구를
148
+ RED로 재현했다. 독립성 정책 2개, JSON 오류 노출 1개, record 크기 1개도 별도 RED 후 수정했다.
149
+ - claim exhaustive oracle는 독립 Boolean evaluator로 60개 작은 공유 DAG를 비교했다.
150
+ 처음 oracle에서 빠졌던 미참조 required root를 바로잡은 뒤 유효한 RED를 다시 확인했다.
151
+ - bounded fallback, graph/child permutation, 부모 자체 반례, strict/legacy witness 정책,
152
+ v1/v2 metrics, 실제 파일 sink, 실제 gate receipt와 sandbox spawn 경로를 표적 검사했다.
153
+ - 성능·해결률 향상, 전체 저장소 무결성, 운영 사고 부재를 이 검사로 주장하지 않는다.
154
+
155
+ ```bash
156
+ # packages/protocol
157
+ node ../../node_modules/vitest/dist/cli.js --run test/claim-cut-review.test.ts test/claims.test.ts --maxWorkers=1 --no-file-parallelism
158
+ # packages/coding-agent
159
+ node ../../node_modules/vitest/dist/cli.js --run test/turn-metrics-boundary.test.ts test/turn-metrics.test.ts test/review-policy-boundaries.test.ts test/evidence-system.test.ts test/evidence-gate-binding.test.ts test/sandbox-default-policy.test.ts test/context-budget-v2-knapsack-order.test.ts --maxWorkers=1 --no-file-parallelism
160
+ # root
161
+ node_modules/.bin/tsgo --noEmit --pretty false
162
+ npm run check
163
+ ```
164
+
165
+ ### 2026-09-09 검사 상태 (당시 기록)
166
+
167
+ | 검사 | 결과 |
168
+ | --- | --- |
169
+ | Protocol 회귀 | 24개 통과 |
170
+ | Metrics·gate·sandbox·문맥 정렬 회귀 | 102개 통과 |
171
+ | 기존 서식 3건 정리 후 직접 회귀 | 추가 40개 통과. 반복한 11개는 중복 합산하지 않음 |
172
+ | 합계 | 166개, 공급자 없는 표적 검사. 내부 생성 graph 수는 별도 테스트 수로 세지 않음 |
173
+ | 전체 `tsgo --noEmit --pretty false` | 종료0 |
174
+ | 주 LSP | 17파일 요청, 15파일 clean, 2파일 확인 불가, 보고된 오류0. compiler 통과와 구분 |
175
+ | import-cycle·private-home·diff 검사 | 종료0 |
176
+ | `npm run check` | Biome·pinned deps·vendoring·TS imports·dependency tree·import cycles 단계 통과 후 기존 module-size 초과6건에서 종료1 |
177
+ | 문서 링크 검사 | 이전 작업의 미추적 model-contract/model-catalog-refresh 문서 링크5건으로 종료1 |
178
+
179
+ 모듈 크기 차단은 기존 `harness/reverse-skill.ts`, AI `types.ts`, coding-agent의
180
+ `compaction.ts`, `model-registry.ts`, `provider-usage.ts`, `interactive-mode.ts`다.
181
+ 이번 단위가 추가했던 evidence-system 크기 증가와 sandbox 타입 순환은 책임·타입 분리로
182
+ 해소했으며 baseline을 늘리지 않았다. 전체 저장소 gate 통과나 배포 가능 상태를 주장하지 않는다.
183
+
184
+ ## 6. 커밋 체크포인트
185
+
186
+ | 단위 | 파일 범위 | 제안 메시지 |
187
+ | --- | --- | --- |
188
+ | Metrics 개인정보·입력 경계 | `core/turn-metrics*.ts`, 직접 metrics 테스트, metrics 문서 | `fix: metrics 원문 누출 차단과 v2 입력 검증` |
189
+ | 검증·sandbox 구성 | `guardrails/evidence-system.ts`, `merge-gate-result.ts`, `core/sandbox/policy*.ts`, 직접 경계 검사 | `fix: 빈 gate와 sandbox 정책 확대를 거부` |
190
+ | Claim 설명·strict witness | protocol claims/index와 직접 회귀, protocol README | `fix: 공유 DAG repair 설명과 증인 독립성 계약 보정` |
191
+ | 명칭 정정 | `context-budget-v2-scoring.ts`의 상수·지역 변수 이름 | `refactor: 최신성 계수의 time-constant 의미 명시` |
192
+ | 기존 서식 정리 | AI `utils/oauth/meta.ts`의 named import 순서, `test/mcp/tools.test.ts`와 `test/session-termination.test.ts`의 줄바꿈 | `style: 통합 검사를 막던 기존 서식 오류 정리` |
193
+
194
+ 9월9일에는 구현과 직접 테스트·문서를 위 단위로 제안하고 stage/commit하지 않았다.
195
+ 9월10일 승인 후 수행한 실제 커밋·검사와 배포 보류 조건은 이 문서 위쪽 표에 기록한다.
@@ -6,7 +6,7 @@ The OMK Run Protocol defines one versioned contract for task execution and evalu
6
6
  TaskSpec -> ExecutionAttempt -> Observation -> EvaluationResult -> RuntimeDecision
7
7
  ```
8
8
 
9
- `omk-protocol` owns these records and the pure reducers that connect them. Tool execution, persistence, scheduling, routing, and topology remain outside the package.
9
+ `omk-protocol` owns these records and the pure reducers that connect them. Tool execution, persistence, runtime scheduling, routing, and topology selection remain outside the package.
10
10
 
11
11
  ## Implemented scope
12
12
 
@@ -24,6 +24,38 @@ The first v1 slice is available under `packages/protocol` with schema version `o
24
24
 
25
25
  Every top-level record carries `schemaVersion`. Parsers reject unsupported versions, malformed timestamps, duplicate claim IDs, invalid JSON facts, and empty logical conditions.
26
26
 
27
+ ## Isolated command-run profile
28
+
29
+ `RunContract` and `RunStartCommand` add strict, immutable parsers for the opt-in
30
+ `linux-command-v1` and `linux-scripted-agent-v1` profiles. They pin the input digest,
31
+ write scope, commands, stdout assertions and finite phase/snapshot limits. The
32
+ scripted profile also pins 1–16 approved steps and a 1–32 logical request cap for
33
+ an offline AgentSession reference adapter. Unknown authority/provider fields are
34
+ rejected; the host must separately authorize the exact contract digest.
35
+ `RunResumeCommand` / `parseRunResumeCommand()` pin the contract, candidate and exact
36
+ expected revision/generation. The host may acquire at most three generations under
37
+ `MAX_VERIFIED_RUN_GENERATIONS`; a resume command does not authorize replay of a writer.
38
+ The separate `RunWriterRestartCommand` / `parseRunWriterRestartCommand()` binds
39
+ `baseDigest` to a durable input checkpoint for an explicit local writer restart.
40
+ Recovery commands share command IDs and the generation cap; none resets budgets.
41
+
42
+ `linux-command-dag-v1` adds `RunDagWriter` / `RunDagTask` with 1–16 nodes, explicit
43
+ artifact dependencies, disjoint write scopes and 1–2 preapproved command attempts per
44
+ node. `orderRunDag()` provides deterministic FIFO topological order and
45
+ `runDagAncestors()` includes the full transitive input closure. `RunTaskRetryCommand`
46
+ / `parseRunTaskRetryCommand()` pins a task selection to the original input and exact
47
+ run revision/generation. These pure contracts never authorize dispatch or authenticate
48
+ cached output; the Coordinator checks stored material and records adoption before reuse.
49
+
50
+ The coding-agent's `RunCoordinator` owns execution and its separate v2 journal.
51
+ It binds native v3 receipt cores to the candidate through a supervisor attestation,
52
+ then supplies authenticated checks to the existing claim-closure reducer.
53
+ This does not replace the task/attempt/evaluation contracts or add execution to
54
+ this package. See [Verified Run](verified-run.md) for the implemented CLI/SDK
55
+ path, candidate recovery and checkpoint-based local writer restart, plus the
56
+ serial command DAG and selective retry, plus remaining live-model, parallel frontier,
57
+ plan amendment and control-surface work.
58
+
27
59
  ## Durable goal lifecycle
28
60
 
29
61
  A durable goal is working-directory state, not a session-file field or a `TaskSpec`. `/goal <objective>` creates or edits `.omk/goals/current.json`; `/goal` without arguments shows its status and round count.
@@ -1,5 +1,31 @@
1
1
  # Runtime Algorithms and Direction
2
2
 
3
+ ## Working-tree shared run budgets
4
+
5
+ The SDK `prompt(..., { runBudget })` path now shares a monotonic deadline and
6
+ logical request/concurrency limits across the active prompt's main stream,
7
+ retries, continuations, and first-party summaries using that stream. Exhaustion
8
+ is a non-retryable `budget_exhausted` termination; snapshots keep outstanding
9
+ streams until terminal metadata arrives. No request/time budget is imposed by
10
+ default. Preflight is now owned even for unbounded prompts; unresolved streams
11
+ block a later prompt instead of being discarded when their budget scope closes.
12
+ See [Shared run budgets](sdk.md#shared-run-budgets-sdk-opt-in) for units, zero
13
+ semantics, cancellation, and uncovered paths. This is not billing enforcement,
14
+ a persisted budget, or a hard process-termination deadline.
15
+
16
+ ## Working-tree execution ownership (2026-09-10)
17
+
18
+ The live session now retains registered tool-promise ownership after timeout or
19
+ abort, defers prompt settlement/resource-lease release until actual termination,
20
+ and rejects overlapping prompt admission. Shared permits capture request values,
21
+ honor zero capacity, and wake FIFO followers after head cancellation/expiry.
22
+ The internal lane launcher forwards cancellation and respects zero/heavy caps.
23
+ Independent bash calls now own separate cancellation controllers, and one call's
24
+ completion cannot hide another active call. Core teardown waits use a monotonic
25
+ clock, preserving the existing grace interval across wall-clock changes.
26
+ See [Prompt settlement](sdk.md#prompt-settlement) for tests, compatibility, and
27
+ uncovered paths. These changes do not implement a durable verified-run product.
28
+
3
29
  ## v0.98.3 release delta (2026-09-06)
4
30
 
5
31
  The explicit advisory SDK requires normal first-party model completion, honors cancellation,
@@ -128,6 +154,17 @@ Evidence:
128
154
  - `packages/coding-agent/test/context-budget-selection-policy-version.test.ts`
129
155
  - `packages/coding-agent/test/context-budget-cache-disk.test.ts`
130
156
 
157
+ **Working tree:** non-queued native `xai` requests started through `AgentSession.prompt()` now derive a bounded automatic skill grant from live discovered descriptions after ordinary prompt-template expansion. The selector scores task text separately from camelCase-aware path-to-skill-name signals, excludes explicit-only skills, caps automatic matches at three, and adds `headroom` only under lexical or measured context pressure. `AgentSession.prompt()` merges the result with settings/SDK/bang selections only for that request. Queued steering/follow-up messages reuse the active run's system prompt and do not trigger another selection pass.
158
+
159
+ Evidence:
160
+
161
+ - `packages/coding-agent/src/core/active-skill-state.ts`
162
+ - `packages/coding-agent/src/core/skill-selector.ts`
163
+ - `packages/coding-agent/src/core/grok-harness.ts`
164
+ - `packages/coding-agent/src/core/agent-session.ts`
165
+ - `packages/coding-agent/test/grok-active-skills.test.ts`
166
+ - `packages/coding-agent/test/skill-selector.property.test.ts`
167
+
131
168
  **Working tree:** context files now treat their global/local relevance baseline
132
169
  as a floor. Lexical overlap can raise that score but cannot demote standing
133
170
  instructions below the no-query baseline. Skills remain topic-scored because
@@ -272,6 +309,14 @@ Evidence:
272
309
  - `packages/coding-agent/src/core/advisory-judge.ts`
273
310
  - `packages/coding-agent/test/advisory-judge.test.ts`
274
311
 
312
+ **Working tree (2026-09-05):** the first-party `createModelAdvisoryJudge()` adapter rejects non-normal
313
+ or missing completion metadata. Custom judges still supply raw score JSON and own that metadata
314
+ boundary. The chooser checks cancellation around asynchronous work, reports top-score ties as
315
+ caller-rank decisions, and retains submitted/eligible/excluded counts with comparison availability.
316
+ This adds no completion calls or retries, automatic AgentSession/TUI call, or semantic-verdict authority.
317
+ Details: [Advisory selection integrity](advisory-selection.md); governing spec:
318
+ `specs/021-advisory-selection-integrity/spec.md`.
319
+
275
320
  See [Run Protocol and Durable Goals](run-protocol.md),
276
321
  [Sessions](sessions.md), [Provider Resilience](provider-resilience.md), and
277
322
  [Turn Metrics](metrics.md).