open-multi-agent-kit 0.98.5 → 1.0.0

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 (385) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/README.md +4 -3
  3. package/dist/bun/cli.d.ts.map +1 -1
  4. package/dist/bun/cli.js +1 -0
  5. package/dist/bun/cli.js.map +1 -1
  6. package/dist/bun/register-bundled-coding-agent.d.ts +10 -0
  7. package/dist/bun/register-bundled-coding-agent.d.ts.map +1 -0
  8. package/dist/bun/register-bundled-coding-agent.js +12 -0
  9. package/dist/bun/register-bundled-coding-agent.js.map +1 -0
  10. package/dist/cli/args.d.ts +1 -1
  11. package/dist/cli/args.d.ts.map +1 -1
  12. package/dist/cli/args.js +1 -1
  13. package/dist/cli/args.js.map +1 -1
  14. package/dist/cli/help.d.ts.map +1 -1
  15. package/dist/cli/help.js +2 -1
  16. package/dist/cli/help.js.map +1 -1
  17. package/dist/cli.d.ts.map +1 -1
  18. package/dist/cli.js +14 -2
  19. package/dist/cli.js.map +1 -1
  20. package/dist/commands/neo-cli.d.ts +9 -0
  21. package/dist/commands/neo-cli.d.ts.map +1 -0
  22. package/dist/commands/neo-cli.js +61 -0
  23. package/dist/commands/neo-cli.js.map +1 -0
  24. package/dist/commands/verified-run-cli.d.ts.map +1 -1
  25. package/dist/commands/verified-run-cli.js +2 -2
  26. package/dist/commands/verified-run-cli.js.map +1 -1
  27. package/dist/core/agent-session.d.ts +29 -2
  28. package/dist/core/agent-session.d.ts.map +1 -1
  29. package/dist/core/agent-session.js +126 -32
  30. package/dist/core/agent-session.js.map +1 -1
  31. package/dist/core/bundled-skills.d.ts +4 -0
  32. package/dist/core/bundled-skills.d.ts.map +1 -0
  33. package/dist/core/bundled-skills.js +32 -0
  34. package/dist/core/bundled-skills.js.map +1 -0
  35. package/dist/core/cli-diagnostics.d.ts +6 -0
  36. package/dist/core/cli-diagnostics.d.ts.map +1 -0
  37. package/dist/core/cli-diagnostics.js +20 -0
  38. package/dist/core/cli-diagnostics.js.map +1 -0
  39. package/dist/core/context-budget-headroom.d.ts +12 -0
  40. package/dist/core/context-budget-headroom.d.ts.map +1 -1
  41. package/dist/core/context-budget-headroom.js +35 -0
  42. package/dist/core/context-budget-headroom.js.map +1 -1
  43. package/dist/core/context-budget-v2-input-validation.d.ts +4 -0
  44. package/dist/core/context-budget-v2-input-validation.d.ts.map +1 -0
  45. package/dist/core/context-budget-v2-input-validation.js +79 -0
  46. package/dist/core/context-budget-v2-input-validation.js.map +1 -0
  47. package/dist/core/context-budget-v2-observability.d.ts +15 -0
  48. package/dist/core/context-budget-v2-observability.d.ts.map +1 -0
  49. package/dist/core/context-budget-v2-observability.js +35 -0
  50. package/dist/core/context-budget-v2-observability.js.map +1 -0
  51. package/dist/core/context-budget-v2-planned-items.d.ts +5 -0
  52. package/dist/core/context-budget-v2-planned-items.d.ts.map +1 -0
  53. package/dist/core/context-budget-v2-planned-items.js +40 -0
  54. package/dist/core/context-budget-v2-planned-items.js.map +1 -0
  55. package/dist/core/context-budget-v2-planner.d.ts.map +1 -1
  56. package/dist/core/context-budget-v2-planner.js +57 -38
  57. package/dist/core/context-budget-v2-planner.js.map +1 -1
  58. package/dist/core/context-budget-v2-selection.d.ts +19 -3
  59. package/dist/core/context-budget-v2-selection.d.ts.map +1 -1
  60. package/dist/core/context-budget-v2-selection.js +35 -57
  61. package/dist/core/context-budget-v2-selection.js.map +1 -1
  62. package/dist/core/context-budget-v2-tiers.d.ts.map +1 -1
  63. package/dist/core/context-budget-v2-tiers.js +9 -42
  64. package/dist/core/context-budget-v2-tiers.js.map +1 -1
  65. package/dist/core/context-budget-v2-types.d.ts +8 -1
  66. package/dist/core/context-budget-v2-types.d.ts.map +1 -1
  67. package/dist/core/context-budget-v2-types.js.map +1 -1
  68. package/dist/core/devin-harness-dispatch.d.ts +12 -0
  69. package/dist/core/devin-harness-dispatch.d.ts.map +1 -0
  70. package/dist/core/devin-harness-dispatch.js +12 -0
  71. package/dist/core/devin-harness-dispatch.js.map +1 -0
  72. package/dist/core/devin-harness.d.ts +53 -0
  73. package/dist/core/devin-harness.d.ts.map +1 -0
  74. package/dist/core/devin-harness.js +112 -0
  75. package/dist/core/devin-harness.js.map +1 -0
  76. package/dist/core/domain-dispatch.d.ts +4 -1
  77. package/dist/core/domain-dispatch.d.ts.map +1 -1
  78. package/dist/core/domain-dispatch.js +5 -0
  79. package/dist/core/domain-dispatch.js.map +1 -1
  80. package/dist/core/domain-loadouts-provider-harness.d.ts +12 -0
  81. package/dist/core/domain-loadouts-provider-harness.d.ts.map +1 -0
  82. package/dist/core/domain-loadouts-provider-harness.js +122 -0
  83. package/dist/core/domain-loadouts-provider-harness.js.map +1 -0
  84. package/dist/core/domain-loadouts.d.ts +2 -33
  85. package/dist/core/domain-loadouts.d.ts.map +1 -1
  86. package/dist/core/domain-loadouts.js +3 -56
  87. package/dist/core/domain-loadouts.js.map +1 -1
  88. package/dist/core/domain-profile.d.ts +40 -0
  89. package/dist/core/domain-profile.d.ts.map +1 -0
  90. package/dist/core/domain-profile.js +7 -0
  91. package/dist/core/domain-profile.js.map +1 -0
  92. package/dist/core/extensions/bundled-virtual-modules.d.ts +15 -0
  93. package/dist/core/extensions/bundled-virtual-modules.d.ts.map +1 -0
  94. package/dist/core/extensions/bundled-virtual-modules.js +63 -0
  95. package/dist/core/extensions/bundled-virtual-modules.js.map +1 -0
  96. package/dist/core/extensions/loader.d.ts.map +1 -1
  97. package/dist/core/extensions/loader.js +2 -42
  98. package/dist/core/extensions/loader.js.map +1 -1
  99. package/dist/core/extensions/runner.d.ts +1 -0
  100. package/dist/core/extensions/runner.d.ts.map +1 -1
  101. package/dist/core/extensions/runner.js +6 -0
  102. package/dist/core/extensions/runner.js.map +1 -1
  103. package/dist/core/extensions/types.d.ts +10 -0
  104. package/dist/core/extensions/types.d.ts.map +1 -1
  105. package/dist/core/extensions/types.js.map +1 -1
  106. package/dist/core/grok-harness-dispatch.d.ts +6 -20
  107. package/dist/core/grok-harness-dispatch.d.ts.map +1 -1
  108. package/dist/core/grok-harness-dispatch.js +6 -55
  109. package/dist/core/grok-harness-dispatch.js.map +1 -1
  110. package/dist/core/grok-harness.d.ts +7 -9
  111. package/dist/core/grok-harness.d.ts.map +1 -1
  112. package/dist/core/grok-harness.js +9 -23
  113. package/dist/core/grok-harness.js.map +1 -1
  114. package/dist/core/harness-skills.d.ts +20 -0
  115. package/dist/core/harness-skills.d.ts.map +1 -0
  116. package/dist/core/harness-skills.js +36 -0
  117. package/dist/core/harness-skills.js.map +1 -0
  118. package/dist/core/index.d.ts +2 -1
  119. package/dist/core/index.d.ts.map +1 -1
  120. package/dist/core/index.js +2 -1
  121. package/dist/core/index.js.map +1 -1
  122. package/dist/core/loadout-runtime-state.d.ts +25 -0
  123. package/dist/core/loadout-runtime-state.d.ts.map +1 -0
  124. package/dist/core/loadout-runtime-state.js +39 -0
  125. package/dist/core/loadout-runtime-state.js.map +1 -0
  126. package/dist/core/loadout-runtime.d.ts +4 -20
  127. package/dist/core/loadout-runtime.d.ts.map +1 -1
  128. package/dist/core/loadout-runtime.js +6 -13
  129. package/dist/core/loadout-runtime.js.map +1 -1
  130. package/dist/core/mcp/client.d.ts +27 -6
  131. package/dist/core/mcp/client.d.ts.map +1 -1
  132. package/dist/core/mcp/client.js +80 -20
  133. package/dist/core/mcp/client.js.map +1 -1
  134. package/dist/core/mcp/manager.d.ts +10 -1
  135. package/dist/core/mcp/manager.d.ts.map +1 -1
  136. package/dist/core/mcp/manager.js +68 -9
  137. package/dist/core/mcp/manager.js.map +1 -1
  138. package/dist/core/mcp/protocol.d.ts +9 -3
  139. package/dist/core/mcp/protocol.d.ts.map +1 -1
  140. package/dist/core/mcp/protocol.js +61 -15
  141. package/dist/core/mcp/protocol.js.map +1 -1
  142. package/dist/core/mcp/stdio-transport.d.ts +12 -1
  143. package/dist/core/mcp/stdio-transport.d.ts.map +1 -1
  144. package/dist/core/mcp/stdio-transport.js +30 -2
  145. package/dist/core/mcp/stdio-transport.js.map +1 -1
  146. package/dist/core/mcp-descriptor-injection.d.ts +26 -0
  147. package/dist/core/mcp-descriptor-injection.d.ts.map +1 -0
  148. package/dist/core/mcp-descriptor-injection.js +25 -0
  149. package/dist/core/mcp-descriptor-injection.js.map +1 -0
  150. package/dist/core/mcp-public-presets.d.ts +1 -3
  151. package/dist/core/mcp-public-presets.d.ts.map +1 -1
  152. package/dist/core/mcp-public-presets.js +3 -15
  153. package/dist/core/mcp-public-presets.js.map +1 -1
  154. package/dist/core/model-registry.d.ts.map +1 -1
  155. package/dist/core/model-registry.js +24 -3
  156. package/dist/core/model-registry.js.map +1 -1
  157. package/dist/core/model-resolver.d.ts +1 -41
  158. package/dist/core/model-resolver.d.ts.map +1 -1
  159. package/dist/core/model-resolver.js +2 -49
  160. package/dist/core/model-resolver.js.map +1 -1
  161. package/dist/core/neo/catalog.d.ts +20 -0
  162. package/dist/core/neo/catalog.d.ts.map +1 -0
  163. package/dist/core/neo/catalog.js +50 -0
  164. package/dist/core/neo/catalog.js.map +1 -0
  165. package/dist/core/neo/setup.d.ts +3 -0
  166. package/dist/core/neo/setup.d.ts.map +1 -0
  167. package/dist/core/neo/setup.js +47 -0
  168. package/dist/core/neo/setup.js.map +1 -0
  169. package/dist/core/provider-default-models.d.ts +43 -0
  170. package/dist/core/provider-default-models.d.ts.map +1 -0
  171. package/dist/core/provider-default-models.js +51 -0
  172. package/dist/core/provider-default-models.js.map +1 -0
  173. package/dist/core/provider-display-names.d.ts.map +1 -1
  174. package/dist/core/provider-display-names.js +2 -0
  175. package/dist/core/provider-display-names.js.map +1 -1
  176. package/dist/core/provider-error-classification.d.ts +57 -0
  177. package/dist/core/provider-error-classification.d.ts.map +1 -0
  178. package/dist/core/provider-error-classification.js +103 -0
  179. package/dist/core/provider-error-classification.js.map +1 -0
  180. package/dist/core/provider-harness-dispatch.d.ts +63 -0
  181. package/dist/core/provider-harness-dispatch.d.ts.map +1 -0
  182. package/dist/core/provider-harness-dispatch.js +60 -0
  183. package/dist/core/provider-harness-dispatch.js.map +1 -0
  184. package/dist/core/provider-resilience.d.ts +10 -0
  185. package/dist/core/provider-resilience.d.ts.map +1 -1
  186. package/dist/core/provider-resilience.js +36 -3
  187. package/dist/core/provider-resilience.js.map +1 -1
  188. package/dist/core/provider-usage-commandcode.d.ts +9 -0
  189. package/dist/core/provider-usage-commandcode.d.ts.map +1 -0
  190. package/dist/core/provider-usage-commandcode.js +198 -0
  191. package/dist/core/provider-usage-commandcode.js.map +1 -0
  192. package/dist/core/provider-usage-devin.d.ts +18 -0
  193. package/dist/core/provider-usage-devin.d.ts.map +1 -0
  194. package/dist/core/provider-usage-devin.js +71 -0
  195. package/dist/core/provider-usage-devin.js.map +1 -0
  196. package/dist/core/provider-usage-text.d.ts +5 -0
  197. package/dist/core/provider-usage-text.d.ts.map +1 -0
  198. package/dist/core/provider-usage-text.js +15 -0
  199. package/dist/core/provider-usage-text.js.map +1 -0
  200. package/dist/core/provider-usage-types.d.ts +2 -1
  201. package/dist/core/provider-usage-types.d.ts.map +1 -1
  202. package/dist/core/provider-usage-types.js.map +1 -1
  203. package/dist/core/provider-usage.d.ts +1 -2
  204. package/dist/core/provider-usage.d.ts.map +1 -1
  205. package/dist/core/provider-usage.js +18 -7
  206. package/dist/core/provider-usage.js.map +1 -1
  207. package/dist/core/resource-admission.d.ts +36 -0
  208. package/dist/core/resource-admission.d.ts.map +1 -1
  209. package/dist/core/resource-admission.js +59 -0
  210. package/dist/core/resource-admission.js.map +1 -1
  211. package/dist/core/resource-loader.d.ts.map +1 -1
  212. package/dist/core/resource-loader.js +2 -2
  213. package/dist/core/resource-loader.js.map +1 -1
  214. package/dist/core/run-execution-api.d.ts +1 -1
  215. package/dist/core/run-execution-api.d.ts.map +1 -1
  216. package/dist/core/run-execution-api.js.map +1 -1
  217. package/dist/core/run-usage-ledger.d.ts +47 -0
  218. package/dist/core/run-usage-ledger.d.ts.map +1 -0
  219. package/dist/core/run-usage-ledger.js +162 -0
  220. package/dist/core/run-usage-ledger.js.map +1 -0
  221. package/dist/core/run-usage-operation.d.ts +8 -0
  222. package/dist/core/run-usage-operation.d.ts.map +1 -0
  223. package/dist/core/run-usage-operation.js +12 -0
  224. package/dist/core/run-usage-operation.js.map +1 -0
  225. package/dist/core/sdk.d.ts.map +1 -1
  226. package/dist/core/sdk.js +20 -16
  227. package/dist/core/sdk.js.map +1 -1
  228. package/dist/core/session-failure-cause.d.ts.map +1 -1
  229. package/dist/core/session-failure-cause.js +14 -5
  230. package/dist/core/session-failure-cause.js.map +1 -1
  231. package/dist/core/session-prompt-lifecycle.d.ts +6 -0
  232. package/dist/core/session-prompt-lifecycle.d.ts.map +1 -1
  233. package/dist/core/session-prompt-lifecycle.js +47 -2
  234. package/dist/core/session-prompt-lifecycle.js.map +1 -1
  235. package/dist/core/session-termination.d.ts.map +1 -1
  236. package/dist/core/session-termination.js +4 -2
  237. package/dist/core/session-termination.js.map +1 -1
  238. package/dist/core/subagent-lane-authority.d.ts +28 -0
  239. package/dist/core/subagent-lane-authority.d.ts.map +1 -0
  240. package/dist/core/subagent-lane-authority.js +119 -0
  241. package/dist/core/subagent-lane-authority.js.map +1 -0
  242. package/dist/core/subagent-lane-contract.d.ts +114 -0
  243. package/dist/core/subagent-lane-contract.d.ts.map +1 -0
  244. package/dist/core/subagent-lane-contract.js +18 -0
  245. package/dist/core/subagent-lane-contract.js.map +1 -0
  246. package/dist/core/subagent-lane-launcher.d.ts +3 -6
  247. package/dist/core/subagent-lane-launcher.d.ts.map +1 -1
  248. package/dist/core/subagent-lane-launcher.js +53 -12
  249. package/dist/core/subagent-lane-launcher.js.map +1 -1
  250. package/dist/core/subagent-orchestration.d.ts +4 -17
  251. package/dist/core/subagent-orchestration.d.ts.map +1 -1
  252. package/dist/core/subagent-orchestration.js.map +1 -1
  253. package/dist/core/verified-run/broker.d.ts.map +1 -1
  254. package/dist/core/verified-run/broker.js +4 -1
  255. package/dist/core/verified-run/broker.js.map +1 -1
  256. package/dist/core/verified-run/dag-phase.d.ts +1 -1
  257. package/dist/core/verified-run/dag-phase.d.ts.map +1 -1
  258. package/dist/core/verified-run/dag-phase.js +46 -8
  259. package/dist/core/verified-run/dag-phase.js.map +1 -1
  260. package/dist/core/verified-run/dag-projection.d.ts.map +1 -1
  261. package/dist/core/verified-run/dag-projection.js +25 -12
  262. package/dist/core/verified-run/dag-projection.js.map +1 -1
  263. package/dist/core/verified-run/dag-types.d.ts +11 -0
  264. package/dist/core/verified-run/dag-types.d.ts.map +1 -1
  265. package/dist/core/verified-run/dag-types.js.map +1 -1
  266. package/dist/core/verified-run/event-parser.d.ts.map +1 -1
  267. package/dist/core/verified-run/event-parser.js +1 -0
  268. package/dist/core/verified-run/event-parser.js.map +1 -1
  269. package/dist/core/verified-run/owned-execution.d.ts +1 -0
  270. package/dist/core/verified-run/owned-execution.d.ts.map +1 -1
  271. package/dist/core/verified-run/owned-execution.js +7 -1
  272. package/dist/core/verified-run/owned-execution.js.map +1 -1
  273. package/dist/core/verified-run/process-projection.d.ts +13 -0
  274. package/dist/core/verified-run/process-projection.d.ts.map +1 -0
  275. package/dist/core/verified-run/process-projection.js +82 -0
  276. package/dist/core/verified-run/process-projection.js.map +1 -0
  277. package/dist/core/verified-run/projection.d.ts.map +1 -1
  278. package/dist/core/verified-run/projection.js +11 -55
  279. package/dist/core/verified-run/projection.js.map +1 -1
  280. package/dist/core/verified-run/run-types.d.ts +1 -0
  281. package/dist/core/verified-run/run-types.d.ts.map +1 -1
  282. package/dist/core/verified-run/run-types.js.map +1 -1
  283. package/dist/core/verified-run/task-execution.d.ts +9 -0
  284. package/dist/core/verified-run/task-execution.d.ts.map +1 -0
  285. package/dist/core/verified-run/task-execution.js +29 -0
  286. package/dist/core/verified-run/task-execution.js.map +1 -0
  287. package/dist/core/verified-run/writer-projection.d.ts.map +1 -1
  288. package/dist/core/verified-run/writer-projection.js +6 -5
  289. package/dist/core/verified-run/writer-projection.js.map +1 -1
  290. package/dist/core/workload-permit-pool.d.ts +1 -1
  291. package/dist/core/workload-permit-pool.d.ts.map +1 -1
  292. package/dist/core/workload-permit-pool.js +3 -0
  293. package/dist/core/workload-permit-pool.js.map +1 -1
  294. package/dist/guardrails/strict-evidence-approval-adapter.d.ts +34 -0
  295. package/dist/guardrails/strict-evidence-approval-adapter.d.ts.map +1 -0
  296. package/dist/guardrails/strict-evidence-approval-adapter.js +70 -0
  297. package/dist/guardrails/strict-evidence-approval-adapter.js.map +1 -0
  298. package/dist/index.d.ts +3 -0
  299. package/dist/index.d.ts.map +1 -1
  300. package/dist/index.js +1 -0
  301. package/dist/index.js.map +1 -1
  302. package/dist/main.d.ts.map +1 -1
  303. package/dist/main.js +11 -18
  304. package/dist/main.js.map +1 -1
  305. package/dist/modes/acp/acp-agent.d.ts +24 -0
  306. package/dist/modes/acp/acp-agent.d.ts.map +1 -0
  307. package/dist/modes/acp/acp-agent.js +133 -0
  308. package/dist/modes/acp/acp-agent.js.map +1 -0
  309. package/dist/modes/acp/acp-mode.d.ts +4 -0
  310. package/dist/modes/acp/acp-mode.d.ts.map +1 -0
  311. package/dist/modes/acp/acp-mode.js +34 -0
  312. package/dist/modes/acp/acp-mode.js.map +1 -0
  313. package/dist/modes/acp/acp-session.d.ts +4 -0
  314. package/dist/modes/acp/acp-session.d.ts.map +1 -0
  315. package/dist/modes/acp/acp-session.js +76 -0
  316. package/dist/modes/acp/acp-session.js.map +1 -0
  317. package/dist/modes/acp/acp-transport.d.ts +5 -0
  318. package/dist/modes/acp/acp-transport.d.ts.map +1 -0
  319. package/dist/modes/acp/acp-transport.js +90 -0
  320. package/dist/modes/acp/acp-transport.js.map +1 -0
  321. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  322. package/dist/modes/interactive/interactive-mode.js +3 -5
  323. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  324. package/dist/modes/interactive/resource-description.d.ts +3 -0
  325. package/dist/modes/interactive/resource-description.d.ts.map +1 -0
  326. package/dist/modes/interactive/resource-description.js +15 -0
  327. package/dist/modes/interactive/resource-description.js.map +1 -0
  328. package/docs/audit-revalidation-2026-09-17.md +77 -0
  329. package/docs/devin-harness.md +150 -0
  330. package/docs/docs.json +4 -0
  331. package/docs/ecraf-normalization.md +83 -0
  332. package/docs/environment-variables.md +2 -1
  333. package/docs/index.md +1 -0
  334. package/docs/loadout-domains/README.md +2 -1
  335. package/docs/loadout-domains/devin-harness.md +72 -0
  336. package/docs/metrics.md +57 -16
  337. package/docs/model-catalog-refresh.md +51 -1
  338. package/docs/models.md +1 -1
  339. package/docs/neo.md +134 -0
  340. package/docs/providers.md +143 -1
  341. package/docs/release-audit-0.98.5.md +17 -0
  342. package/docs/release-audit-0.99.0.md +68 -0
  343. package/docs/run-protocol.md +4 -3
  344. package/docs/run-usage-ledger.md +56 -0
  345. package/docs/runtime-algorithms.md +48 -1
  346. package/docs/sdk.md +9 -5
  347. package/docs/settings.md +1 -1
  348. package/docs/skills.md +1 -1
  349. package/docs/startup-resource-labels-testing.md +47 -0
  350. package/docs/tb21-audit.md +18 -4
  351. package/docs/usage.md +7 -1
  352. package/docs/verified-run-remaining-design.md +881 -0
  353. package/docs/verified-run-testing.md +91 -0
  354. package/docs/verified-run.md +30 -9
  355. package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
  356. package/examples/extensions/custom-provider-anthropic/package.json +1 -1
  357. package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
  358. package/examples/extensions/gondolin/package-lock.json +2 -2
  359. package/examples/extensions/gondolin/package.json +1 -1
  360. package/examples/extensions/sandbox/package-lock.json +2 -2
  361. package/examples/extensions/sandbox/package.json +1 -1
  362. package/examples/extensions/subagent/adaptive-agent-runtime.ts +14 -1
  363. package/examples/extensions/subagent/graph-result.ts +48 -0
  364. package/examples/extensions/subagent/index.ts +246 -111
  365. package/examples/extensions/subagent/managed-process-tree.ts +42 -0
  366. package/examples/extensions/subagent/managed-process.test.ts +24 -0
  367. package/examples/extensions/subagent/managed-process.ts +93 -112
  368. package/examples/extensions/subagent/subagent-runtime-types.ts +17 -1
  369. package/examples/extensions/subagent/subagent-stream.ts +161 -0
  370. package/examples/extensions/terminal-browser/README.md +54 -0
  371. package/examples/extensions/terminal-browser/bridge-protocol.ts +29 -0
  372. package/examples/extensions/terminal-browser/bridge.ts +219 -0
  373. package/examples/extensions/terminal-browser/browser-surface.ts +288 -0
  374. package/examples/extensions/terminal-browser/index.ts +215 -0
  375. package/examples/extensions/terminal-browser/placeholders.ts +49 -0
  376. package/examples/extensions/with-deps/package-lock.json +2 -2
  377. package/examples/extensions/with-deps/package.json +1 -1
  378. package/npm-shrinkwrap.json +18 -18
  379. package/package.json +8 -7
  380. package/resources/neo/skills/omk-browser/SKILL.md +32 -0
  381. package/resources/neo/skills/omk-code-review/SKILL.md +24 -0
  382. package/resources/neo/skills/omk-computeruse/SKILL.md +34 -0
  383. package/resources/neo/skills/omk-mcp-setup/SKILL.md +48 -0
  384. package/resources/neo/skills/omk-research/SKILL.md +24 -0
  385. package/resources/neo/skills/omk-site/SKILL.md +28 -0
@@ -415,3 +415,94 @@ CLI 223 pure LOC는 경고 구간이므로 다음 확장 시 분할을 검토해
415
415
  미완료: 병렬 eager frontier, verification-conditioned edge, 겹치는 쓰기 범위, 계획 amendment와
416
416
  변경된 계약의 결과 adoption, 실서비스 모델, M2의 미기록 input/process crash window, M4 전체
417
417
  제어·적용 표면입니다. S90 점수·경쟁 우위·성능 개선량은 측정하거나 부여하지 않았습니다.
418
+
419
+ ## 6차: 최대 2개 작업의 eager frontier
420
+
421
+ 5차 변경은 사용자 승인 뒤 `cabbb38389`로 커밋했습니다. 지정 40개 경로만 포함했고,
422
+ 추가 집중 검사 41개와 pre-commit 전체 검사를 통과했습니다. 푸시는 수행하지 않았습니다.
423
+ 이후의 시작 리소스 표시 수정과 frontier는 서로 다른 검토 단위로 유지했습니다.
424
+
425
+ ### 구현과 RED/GREEN
426
+
427
+ - `writer.maxConcurrentTasks`의 1·2 입력은 RED에서 둘 다 거부됐습니다. optional 필드를
428
+ 추가한 뒤 protocol 103개가 통과했습니다. 생략된 값은 덧붙이지 않아 예전 계약 digest와
429
+ 기본 직렬 동작을 보존합니다. 0·3·비정수·명시적 undefined·getter는 거부합니다.
430
+ - AST 검색으로 `activeExecutionIds[0]` 가정 2개를 찾았습니다. process reducer를 분리하고
431
+ task/attempt와 execution ID를 연결해 준비·종료 관측을 정확한 작업에 귀속시켰습니다.
432
+ 성공 checkpoint에는 새 in-flight 필드를 넣지 않아 예전 adoption 형식을 유지합니다.
433
+ - 실제 A/B namespace에 제어용 파일 gate를 둔 테스트는 직렬 실행에서 RED였습니다.
434
+ B가 시작해야 A가 끝나고, A의 후속 C가 끝나야 B가 끝나는 조건이므로 wave barrier도 통과할
435
+ 수 없습니다. eager frontier 적용 뒤 최대 active ID가 2이고 C 시작이 B 종료보다 앞섰습니다.
436
+ - 두 namespace가 준비된 뒤 취소하는 테스트도 RED에서 두 작업을 관측하지 못했습니다.
437
+ GREEN에서는 두 owned 작업을 회수한 후에만 settled로 반환합니다.
438
+ - 치명적 오류의 첫 원인을 보존하고 모든 시작된 promise에 취소를 전달한 뒤 기다립니다.
439
+ 공통 원장 기록 실패를 성공이나 부분 산출물로 덮지 않습니다.
440
+
441
+ ### 새 실패 주입
442
+
443
+ | 보장 | 테스트 |
444
+ | --- | --- |
445
+ | 느린 독립 작업을 기다리지 않는 의존성 해제, 최대 2개 실제 namespace | `verified-run-dag-frontier.test.ts` |
446
+ | 병렬 취소 뒤 모든 owned ID 정산 | `verified-run-dag-frontier.test.ts` |
447
+ | 먼저 끝난 형제가 다른 작업의 실패를 지우지 않음, 실패 branch만 retry | `verified-run-dag-parallel-safety.test.ts` |
448
+ | 두 번째 process-ready의 fsync 실패, 기록 가시성 true/false 모두에서 두 namespace 종료 | `verified-run-dag-parallel-safety.test.ts` |
449
+ | task ID 없는 예전 직렬 원장·adoption 읽기, 무수정 보존 | `verified-run-dag-parallel-safety.test.ts` |
450
+ | 병렬 계약의 모호한 task-less dispatch 차단 | `verified-run-dag-parallel-safety.test.ts` |
451
+ | 두 writer가 실제 실행 중인 supervisor SIGKILL → CLI에서 두 작업만 새 시도로 복구 | `verified-run-dag-parallel-cli.test.ts` |
452
+
453
+ ### 최종 검사
454
+
455
+ 5차의 coding-agent base 19개 파일과 `test/verified-run-dag*.test.ts` 전체에 아래 UI 회귀를
456
+ 추가해 `--maxWorkers=2`로 실행했습니다. UI의 별도 RED/GREEN·tmux 대조는
457
+ `startup-resource-labels-testing.md`에 기록했습니다.
458
+
459
+ ```text
460
+ test/interactive-mode-resource-description.test.ts
461
+ test/interactive-mode-startup-input.test.ts
462
+ test/cli-resource-paths.test.ts
463
+ test/resource-loader.test.ts
464
+ ```
465
+
466
+ V8 coverage는 다음 파일들을 명시적으로 포함해 측정했습니다. 다른 모듈의 전체 coverage가 아닙니다.
467
+
468
+ ```text
469
+ src/core/verified-run/dag-phase.ts
470
+ src/core/verified-run/dag-projection.ts
471
+ src/core/verified-run/process-projection.ts
472
+ src/core/verified-run/task-execution.ts
473
+ src/core/verified-run/owned-execution.ts
474
+ src/core/verified-run/writer-projection.ts
475
+ src/core/verified-run/projection.ts
476
+ src/modes/interactive/resource-description.ts
477
+ ```
478
+
479
+ protocol은 5차와 같은 7개 테스트 파일을 실행하고 `src/run-dag.ts`를 coverage 대상으로 삼았습니다.
480
+ 실제 사용한 공통 flag는 `--coverage --coverage.provider=v8 --coverage.reporter=text
481
+ --coverage.reporter=json-summary`이며 각 대상은 `--coverage.include=경로`로 지정했습니다.
482
+
483
+ | 검사 | 결과 |
484
+ | --- | --- |
485
+ | coding-agent | 33개 파일, 309개 통과, exit 0 |
486
+ | protocol | 7개 파일, 103개 통과, exit 0 |
487
+ | 전체 관련 회귀 합계 | 412개 통과. UI 기존 회귀를 포함하며 신규 테스트 개수를 뜻하지 않음 |
488
+ | 지정 backend 실행/상태 모듈 | lines 96.86%, branches 85.17%, functions 100% |
489
+ | 리소스 표시 formatter | lines 100%, branches 87.5%, functions 100% |
490
+ | protocol DAG 모듈 | lines 100%, branches 94.54%, functions 100% |
491
+ | `tsgo --noEmit`, `npm run check` | exit 0, baseline·의존성 변경 없음 |
492
+ | primary LSP | 마지막 대상 12개 파일 모두 clean, 미확인 0 |
493
+ | lens 전체 error 조회 | blocking error 없음 |
494
+
495
+ 자가 검토: shared writer 성공 플래그가 task별 실패를 덮지 않고, 단일 owner의 동기 원장 경계에서
496
+ 슬롯을 예약합니다. 오래된 callback, 추가 dispatch, 불완전한 회수는 완료 근거가 될 수 없습니다.
497
+ 최종 verifier는 모든 작업이 고정된 뒤 동일 candidate에서 실행합니다. 첫 실패가 나도 나머지
498
+ promise를 버리지 않습니다. 기존 프로세스 상태를 책임별로 분리했고, 새로운 dependency나 별도
499
+ 모델/worker 엔진을 추가하지 않았습니다.
500
+
501
+ frontier 제안 메시지: `feat(runtime): 최대 2개 작업의 eager frontier 연결`.
502
+ UI 제안 메시지: `fix(tui): 외부 하네스 태그를 리소스 설명으로 구분`.
503
+ 이 두 후속 단위는 아직 commit/push하지 않았습니다. 설치된 dist의 빌드·재시작도 별도입니다.
504
+ 임시 TUI·home·capture 산출물은 정리하며 원래의 사용자 설정과 다른 미커밋 변경은 보존합니다.
505
+
506
+ 미검증/미구현: live model 품질, 경쟁 하네스 대비 승률·성능, verification-conditioned edge,
507
+ 계획 amendment와 변경 계약의 adoption, M4 전체 제어/적용, 완전한 OS 자원 한도입니다.
508
+ 이 테스트의 gate 순서를 실제 경쟁 성능 개선률이나 S90 점수로 환산하지 않았습니다.
@@ -2,14 +2,15 @@
2
2
 
3
3
  세 opt-in profile을 제공합니다. `linux-command-v1`은 승인된 명령 하나를,
4
4
  `linux-scripted-agent-v1`은 실제 `AgentSession`과 내장 Faux adapter로 승인된 단계를,
5
- `linux-command-dag-v1`은 입력 의존성이 있는 명령 작업들을 직렬로 실행합니다. 명령은 격리된 복사본에서 실행하고, 고정한 산출물을 외부 검사로 확인한
5
+ `linux-command-dag-v1`은 입력 의존성이 있는 명령 작업들을 기본 직렬로 실행하며,
6
+ 명시적 설정으로 최대 2개 작업의 동시 실행을 지원합니다. 명령은 격리된 복사본에서 실행하고, 고정한 산출물을 외부 검사로 확인한
6
7
  뒤 회수합니다. 일반 세션과 기존 bash receipt의 동작은 바꾸지 않습니다.
7
8
 
8
9
  **S90 전체 구현이나 M1–M4 완료를 의미하지 않습니다.** M1의 무과금 reference
9
10
  경로와 native EvidenceReceipt v3 연결에 이어, M2의 **고정 candidate 이후 복구**를
10
11
  지원합니다. 불변 입력이 저장된 새 run은 중단된 writer도 명시적으로 재시작할 수 있습니다.
11
- M3의 정적 DAG·부분 재시도 경로도 제공합니다. 병렬 frontier·계획 변경,
12
- 실서비스 모델 adapter, TUI/RPC, 적용 승인은 아직 없습니다.
12
+ M3의 정적 DAG·부분 재시도와 최대 2개 작업의 eager frontier를 제공합니다.
13
+ 계획 변경, 실서비스 모델 adapter, TUI/RPC, 적용 승인은 아직 없습니다.
13
14
 
14
15
  ## 실행 경로
15
16
 
@@ -123,8 +124,9 @@ port를 주입하는 SDK host는 같은 신뢰 경계를 책임집니다.
123
124
 
124
125
  ## 정적 명령 DAG와 선택적 재시도
125
126
 
126
- `linux-command-dag-v1`은 1–16개 작업을 **한 번에 하나씩** 실행합니다. 계약의 `writer`는
127
- `kind: "command-dag"`와 `tasks`를 가집니다. 각 작업은 `id`, `dependsOn`, `writablePaths`,
127
+ `linux-command-dag-v1`은 1–16개 작업을 실행합니다. 계약의 `writer`는
128
+ `kind: "command-dag"`와 `tasks`를 가지며, `maxConcurrentTasks`는 생략·1 또는 2입니다.
129
+ 기본값은 직렬입니다. 생략된 필드를 parser가 덧붙이지 않아 기존 계약 digest를 보존합니다. 각 작업은 `id`, `dependsOn`, `writablePaths`,
128
130
  `attempts`를 명시합니다. `attempts`는 미리 승인한 명령 1–2개이며 자동 생성되는 수리 명령이
129
131
  아닙니다. 알려진 실패 후의 다음 시도는 명시적 `retry-tasks` 승인으로만 실행합니다.
130
132
 
@@ -187,9 +189,27 @@ candidate가 이미 고정됐다면 `retry-tasks`가 아니라 기존 `resume`
187
189
  깨진 checkpoint·원장·key, 예산 만료·reboot는 기존 fail-closed 경계를 유지합니다.
188
190
  일부 작업 명령의 실패(`paused`)와 run의 terminal 실패(`failed`)는 서로 다릅니다.
189
191
 
190
- 이 단계는 command-only·직렬·artifact 의존성 경로입니다. eager 병렬 frontier,
191
- `after_verification` edge, 실서비스 모델, arbitrary repair, 계획 amendment/adoption은 지원하지 않습니다.
192
- 동일한 계약의 성공 출력 재사용을 일반적인 계획 변경 후 재사용으로 해석하지 마십시오.
192
+ ### 최대 2개 작업의 eager frontier
193
+
194
+ `writer.maxConcurrentTasks: 2`를 계약에 넣고 바뀐 digest를 승인하면, 준비된 작업을 두 개까지
195
+ 시작합니다. `A → C`와 독립적인 B가 있으면 A의 출력 checkpoint가 고정되는 즉시 C를 시작할 수
196
+ 있습니다. B의 완료를 기다리는 wave barrier는 없습니다. 최종 통합 검증은 여전히 모든 작업을
197
+ 회수하고 하나의 candidate를 고정한 뒤에만 실행합니다.
198
+
199
+ - `task_started`가 슬롯을 예약하고 `dispatch.taskId`가 현재 task/attempt와 실행 ID를 연결합니다.
200
+ 병렬 계약의 task ID 없는 dispatch는 거부합니다. 예전 직렬 원장의 생략된 task ID는 실행 중인
201
+ 작업이 하나일 때만 재구성하며, 기존 성공 checkpoint의 형태를 바꾸지 않습니다.
202
+ - `process_ready`와 `exited`는 배열 첫 요소가 아니라 해당 실행 ID로 정산합니다. 먼저 끝난
203
+ 형제의 성공이 다른 작업의 실패를 지우지 않습니다. 실행 중 작업의 `execution` 필드는
204
+ 준비·실행·관측된 종료를 구분하며, `status: "succeeded"`는 출력 checkpoint 수락 뒤에만 부여합니다.
205
+ - 치명적 오류·취소는 같은 실행에서 시작한 모든 작업에 전달하고, 시작된 promise를 모두 기다린
206
+ 뒤 반환합니다. 종료를 확인하지 못한 ID나 내구성 기록에 실패한 상태를 성공으로 정산하지 않습니다.
207
+ - 동시 실행 수는 task 단위입니다. task가 만드는 하위 PID·RAM·disk의 OS 한도는 아닙니다.
208
+ 기존 work/verify/cleanup 기한과 task 시도·generation 상한은 공유하며 늘리지 않습니다.
209
+
210
+ 이 단계는 command-only·artifact 의존성 경로입니다. `after_verification` edge, 실서비스 모델,
211
+ arbitrary repair, 계획 amendment/adoption은 지원하지 않습니다. 동일한 계약의 성공 출력 재사용을
212
+ 일반적인 계획 변경 후 재사용으로 해석하지 마십시오.
193
213
 
194
214
  ## CLI
195
215
 
@@ -381,7 +401,8 @@ input pin 이전 또는 process identity 기록 이전의 crash window는 여전
381
401
  | M2: 불변 입력 기반 writer 재시작 | 실제 SIGKILL→CLI restart 검사 통과. 이전 요청 수·기한·부분 출력 보존 |
382
402
  | M2: 모든 crash window 복구 | 미완료. input/process pin 없는 상태는 자동 복구 차단 |
383
403
  | M3 정적 command DAG·선택 retry | CLI/SDK 연결. 성공 checkpoint 보존, 실제 SIGKILL·세대/시도/예산 경계 검사 |
384
- | M3 병렬 frontier·계획 amendment·변경 후 adoption | 미구현. 직렬·동일 계약 안의 출력 재사용만 제공 |
404
+ | M3 bounded eager frontier | 기본 1개, 명시적으로 최대 2개. 의존성 해제·다중 namespace 취소/기록 실패·실제 2-writer SIGKILL 복구 검사 |
405
+ | M3 verification edge·계획 amendment·변경 후 adoption | 미구현. 동일 계약 안의 출력 재사용만 제공 |
385
406
  | M4 TUI/RPC·MCP·GC·적용 승인/CAS | 미구현. CLI/SDK 조회·개별 artifact 회수 제공 |
386
407
  | S90 전체 G01–G20·성능/정상 회귀 하한 | 미측정. 부분 테스트로 점수를 부여하지 않음 |
387
408
 
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omk-extension-custom-provider-anthropic",
3
- "version": "0.98.5",
3
+ "version": "1.0.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omk-extension-custom-provider-anthropic",
9
- "version": "0.98.5",
9
+ "version": "1.0.0",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sdk": "0.52.0"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-custom-provider-anthropic",
3
3
  "private": true,
4
- "version": "0.98.5",
4
+ "version": "1.0.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-custom-provider-gitlab-duo",
3
3
  "private": true,
4
- "version": "0.98.5",
4
+ "version": "1.0.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omk-extension-gondolin",
3
- "version": "0.98.5",
3
+ "version": "1.0.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omk-extension-gondolin",
9
- "version": "0.98.5",
9
+ "version": "1.0.0",
10
10
  "dependencies": {
11
11
  "@earendil-works/gondolin": "0.12.0"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-gondolin",
3
3
  "private": true,
4
- "version": "0.98.5",
4
+ "version": "1.0.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "omk-extension-sandbox",
3
- "version": "0.98.5",
3
+ "version": "1.0.0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "omk-extension-sandbox",
9
- "version": "0.98.5",
9
+ "version": "1.0.0",
10
10
  "dependencies": {
11
11
  "@anthropic-ai/sandbox-runtime": "0.0.26"
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "omk-extension-sandbox",
3
3
  "private": true,
4
- "version": "0.98.5",
4
+ "version": "1.0.0",
5
5
  "type": "module",
6
6
  "scripts": {
7
7
  "clean": "echo 'nothing to clean'",
@@ -28,6 +28,7 @@ import {
28
28
  remainingExecutionMs,
29
29
  } from "./deadline-budget.ts";
30
30
  import type { DeadlineProfileStore } from "./deadline-profile-store.ts";
31
+ import type { ManagedProcessResult } from "./managed-process.ts";
31
32
  import type {
32
33
  DeadlineAttemptMetadata,
33
34
  DeadlineOutcome,
@@ -99,6 +100,7 @@ export async function runAdaptiveAgent(options: RunAdaptiveAgentOptions): Promis
99
100
  let duplicateResumeBlocked = false;
100
101
  let lastCheckpoint: Awaited<ReturnType<typeof readCheckpoint>> | undefined;
101
102
  let terminalOutcome: DeadlineOutcome = "budget-exhausted";
103
+ let unsettledProcess: ManagedProcessResult | undefined;
102
104
  const checkpointPrefix = options.checkpointPrefix ?? path.join(os.tmpdir(), "omk-subagent-checkpoint-");
103
105
  const workspace = await createCheckpointWorkspace(checkpointPrefix);
104
106
 
@@ -183,7 +185,11 @@ export async function runAdaptiveAgent(options: RunAdaptiveAgentOptions): Promis
183
185
  processReason: attempt.process.reason,
184
186
  cleanup: attempt.process.cleanup,
185
187
  });
186
-
188
+ if (attempt.process.terminationObserved === false) {
189
+ unsettledProcess = attempt.result.process;
190
+ terminalOutcome = "failed";
191
+ break outer;
192
+ }
187
193
  if (outcome === "completed") {
188
194
  completedShardIds.push(shard.id);
189
195
  terminalOutcome = "completed";
@@ -228,6 +234,13 @@ export async function runAdaptiveAgent(options: RunAdaptiveAgentOptions): Promis
228
234
  attempts,
229
235
  ...(lastCheckpoint === undefined ? {} : { checkpoint: lastCheckpoint }),
230
236
  };
237
+ if (unsettledProcess) {
238
+ aggregate.exitCode = 1;
239
+ aggregate.stopReason = "unsettled";
240
+ aggregate.errorMessage = "Subagent termination unconfirmed (unsettled)";
241
+ aggregate.process = unsettledProcess;
242
+ return aggregate;
243
+ }
231
244
  return aggregate;
232
245
  }
233
246
 
@@ -0,0 +1,48 @@
1
+ import { createHash } from "node:crypto";
2
+ import { emptyUsage, type SingleResult } from "./subagent-runtime-types.ts";
3
+ import type { GraphTask } from "./workflow-graph.ts";
4
+
5
+ export function failedResult(result: SingleResult): boolean {
6
+ return (
7
+ result.process?.terminationObserved === false ||
8
+ result.exitCode !== 0 ||
9
+ result.stopReason === "error" ||
10
+ result.stopReason === "aborted"
11
+ );
12
+ }
13
+
14
+ export function laneResult(
15
+ result: SingleResult,
16
+ ): void | { status: "failed" } | { status: "unsettled"; settlement: Promise<void> } {
17
+ if (result.process?.terminationObserved === false)
18
+ return { status: "unsettled", settlement: result.process.settlement };
19
+ if (failedResult(result)) return { status: "failed" };
20
+ }
21
+
22
+ export function blockedResult(task: GraphTask, reason = "blocked-dependency"): SingleResult {
23
+ return {
24
+ nodeId: task.id,
25
+ agent: task.agent,
26
+ agentSource: "unknown",
27
+ task: task.task,
28
+ exitCode: 1,
29
+ messages: [],
30
+ stderr: reason,
31
+ stopReason: reason,
32
+ usage: emptyUsage(),
33
+ };
34
+ }
35
+
36
+ export function dependencyDigests(
37
+ task: GraphTask,
38
+ outputs: ReadonlyMap<string, string>,
39
+ ): Readonly<Record<string, string>> {
40
+ return Object.fromEntries(
41
+ (task.dependsOn ?? []).map((id) => [
42
+ id,
43
+ createHash("sha256")
44
+ .update(outputs.get(id) ?? "")
45
+ .digest("hex"),
46
+ ]),
47
+ );
48
+ }