@orion-agents/orion-code 0.1.9 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (757) hide show
  1. package/CHANGELOG.md +85 -0
  2. package/README.md +142 -323
  3. package/README.zh-CN.md +118 -578
  4. package/dist/cli.js +65 -84
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/context-commands.d.ts.map +1 -1
  7. package/dist/commands/context-commands.js +14 -7
  8. package/dist/commands/context-commands.js.map +1 -1
  9. package/dist/commands/context-tool-command-handlers.d.ts +4 -5
  10. package/dist/commands/context-tool-command-handlers.d.ts.map +1 -1
  11. package/dist/commands/context-tool-command-handlers.js +132 -208
  12. package/dist/commands/context-tool-command-handlers.js.map +1 -1
  13. package/dist/commands/core-command-handlers.d.ts +3 -6
  14. package/dist/commands/core-command-handlers.d.ts.map +1 -1
  15. package/dist/commands/core-command-handlers.js +66 -664
  16. package/dist/commands/core-command-handlers.js.map +1 -1
  17. package/dist/commands/diagnostic-command-handlers.d.ts +1 -2
  18. package/dist/commands/diagnostic-command-handlers.d.ts.map +1 -1
  19. package/dist/commands/diagnostic-command-handlers.js +3 -17
  20. package/dist/commands/diagnostic-command-handlers.js.map +1 -1
  21. package/dist/commands/diagnostic-commands.d.ts.map +1 -1
  22. package/dist/commands/diagnostic-commands.js +0 -45
  23. package/dist/commands/diagnostic-commands.js.map +1 -1
  24. package/dist/commands/index.d.ts +1 -1
  25. package/dist/commands/index.d.ts.map +1 -1
  26. package/dist/commands/index.js +2 -7
  27. package/dist/commands/index.js.map +1 -1
  28. package/dist/commands/model-command-handlers.d.ts +1 -1
  29. package/dist/commands/model-command-handlers.js +2 -2
  30. package/dist/commands/model-command-handlers.js.map +1 -1
  31. package/dist/commands/model-commands.d.ts.map +1 -1
  32. package/dist/commands/model-commands.js +0 -11
  33. package/dist/commands/model-commands.js.map +1 -1
  34. package/dist/commands/registry.d.ts.map +1 -1
  35. package/dist/commands/registry.js +1 -139
  36. package/dist/commands/registry.js.map +1 -1
  37. package/dist/commands/session-command-handlers.d.ts +1 -1
  38. package/dist/commands/session-command-handlers.d.ts.map +1 -1
  39. package/dist/commands/session-command-handlers.js +52 -214
  40. package/dist/commands/session-command-handlers.js.map +1 -1
  41. package/dist/commands/session-commands.d.ts.map +1 -1
  42. package/dist/commands/session-commands.js +0 -48
  43. package/dist/commands/session-commands.js.map +1 -1
  44. package/dist/commands/target-command.d.ts +9 -15
  45. package/dist/commands/target-command.d.ts.map +1 -1
  46. package/dist/commands/target-command.js +16 -130
  47. package/dist/commands/target-command.js.map +1 -1
  48. package/dist/commands/tool-commands.d.ts.map +1 -1
  49. package/dist/commands/tool-commands.js +0 -10
  50. package/dist/commands/tool-commands.js.map +1 -1
  51. package/dist/commands/types.d.ts +10 -14
  52. package/dist/commands/types.d.ts.map +1 -1
  53. package/dist/commands/types.js +1 -1
  54. package/dist/commands/types.js.map +1 -1
  55. package/dist/commands/workflow-command-handlers.d.ts.map +1 -1
  56. package/dist/commands/workflow-command-handlers.js +1 -3
  57. package/dist/commands/workflow-command-handlers.js.map +1 -1
  58. package/dist/commands/workflow-commands.d.ts.map +1 -1
  59. package/dist/commands/workflow-commands.js +2 -24
  60. package/dist/commands/workflow-commands.js.map +1 -1
  61. package/dist/framework/agent-mode.d.ts +2 -3
  62. package/dist/framework/agent-mode.d.ts.map +1 -1
  63. package/dist/framework/agent-mode.js +8 -31
  64. package/dist/framework/agent-mode.js.map +1 -1
  65. package/dist/framework/index.d.ts +3 -3
  66. package/dist/framework/index.d.ts.map +1 -1
  67. package/dist/framework/index.js +6 -9
  68. package/dist/framework/index.js.map +1 -1
  69. package/dist/framework/loop-budget-contract.d.ts +20 -0
  70. package/dist/framework/loop-budget-contract.d.ts.map +1 -0
  71. package/dist/framework/loop-budget-contract.js +13 -0
  72. package/dist/framework/loop-budget-contract.js.map +1 -0
  73. package/dist/framework/prompt.d.ts.map +1 -1
  74. package/dist/framework/prompt.js +5 -4
  75. package/dist/framework/prompt.js.map +1 -1
  76. package/dist/framework/query.d.ts +45 -22
  77. package/dist/framework/query.d.ts.map +1 -1
  78. package/dist/framework/query.js +64 -52
  79. package/dist/framework/query.js.map +1 -1
  80. package/dist/framework/store.d.ts +4 -2
  81. package/dist/framework/store.d.ts.map +1 -1
  82. package/dist/framework/store.js +1 -0
  83. package/dist/framework/store.js.map +1 -1
  84. package/dist/framework/tool-call-orchestrator.d.ts +80 -0
  85. package/dist/framework/tool-call-orchestrator.d.ts.map +1 -0
  86. package/dist/framework/tool-call-orchestrator.js +192 -0
  87. package/dist/framework/tool-call-orchestrator.js.map +1 -0
  88. package/dist/framework/tool-state.d.ts +12 -11
  89. package/dist/framework/tool-state.d.ts.map +1 -1
  90. package/dist/framework/tool-state.js +36 -28
  91. package/dist/framework/tool-state.js.map +1 -1
  92. package/dist/framework/tool.d.ts +0 -9
  93. package/dist/framework/tool.d.ts.map +1 -1
  94. package/dist/framework/tool.js.map +1 -1
  95. package/dist/index.d.ts +70 -26
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +64 -65
  98. package/dist/index.js.map +1 -1
  99. package/dist/print-ui/launch.d.ts.map +1 -1
  100. package/dist/print-ui/launch.js +9 -2
  101. package/dist/print-ui/launch.js.map +1 -1
  102. package/dist/product/paths.d.ts +7 -0
  103. package/dist/product/paths.d.ts.map +1 -1
  104. package/dist/product/paths.js +19 -0
  105. package/dist/product/paths.js.map +1 -1
  106. package/dist/runtime/agent-loop.d.ts +80 -0
  107. package/dist/runtime/agent-loop.d.ts.map +1 -0
  108. package/dist/runtime/agent-loop.js +419 -0
  109. package/dist/runtime/agent-loop.js.map +1 -0
  110. package/dist/runtime/agent-runtime-controller.d.ts +10 -57
  111. package/dist/runtime/agent-runtime-controller.d.ts.map +1 -1
  112. package/dist/runtime/agent-runtime-controller.js +270 -1216
  113. package/dist/runtime/agent-runtime-controller.js.map +1 -1
  114. package/dist/runtime/agent-runtime-protocol.d.ts +4 -5
  115. package/dist/runtime/agent-runtime-protocol.d.ts.map +1 -1
  116. package/dist/runtime/agent-runtime-protocol.js.map +1 -1
  117. package/dist/runtime/agent-runtime-runner.d.ts +36 -0
  118. package/dist/runtime/agent-runtime-runner.d.ts.map +1 -0
  119. package/dist/runtime/agent-runtime-runner.js +3 -0
  120. package/dist/runtime/agent-runtime-runner.js.map +1 -0
  121. package/dist/runtime/batch-read-service.d.ts +29 -0
  122. package/dist/runtime/batch-read-service.d.ts.map +1 -0
  123. package/dist/runtime/batch-read-service.js +212 -0
  124. package/dist/runtime/batch-read-service.js.map +1 -0
  125. package/dist/runtime/builtin-tool-provider.d.ts +30 -0
  126. package/dist/runtime/builtin-tool-provider.d.ts.map +1 -0
  127. package/dist/runtime/builtin-tool-provider.js +233 -0
  128. package/dist/runtime/builtin-tool-provider.js.map +1 -0
  129. package/dist/runtime/capabilities/compiler.d.ts +11 -0
  130. package/dist/runtime/capabilities/compiler.d.ts.map +1 -0
  131. package/dist/runtime/capabilities/compiler.js +719 -0
  132. package/dist/runtime/capabilities/compiler.js.map +1 -0
  133. package/dist/runtime/capabilities/index.d.ts +3 -0
  134. package/dist/runtime/capabilities/index.d.ts.map +1 -0
  135. package/dist/runtime/capabilities/index.js +9 -0
  136. package/dist/runtime/capabilities/index.js.map +1 -0
  137. package/dist/runtime/capabilities/types.d.ts +175 -0
  138. package/dist/runtime/capabilities/types.d.ts.map +1 -0
  139. package/dist/runtime/capabilities/types.js +3 -0
  140. package/dist/runtime/capabilities/types.js.map +1 -0
  141. package/dist/runtime/capability-receipt-journal.d.ts +29 -0
  142. package/dist/runtime/capability-receipt-journal.d.ts.map +1 -0
  143. package/dist/runtime/capability-receipt-journal.js +264 -0
  144. package/dist/runtime/capability-receipt-journal.js.map +1 -0
  145. package/dist/runtime/capability-step-factory.d.ts +73 -0
  146. package/dist/runtime/capability-step-factory.d.ts.map +1 -0
  147. package/dist/runtime/capability-step-factory.js +302 -0
  148. package/dist/runtime/capability-step-factory.js.map +1 -0
  149. package/dist/runtime/compact-transaction.d.ts +225 -0
  150. package/dist/runtime/compact-transaction.d.ts.map +1 -0
  151. package/dist/runtime/compact-transaction.js +622 -0
  152. package/dist/runtime/compact-transaction.js.map +1 -0
  153. package/dist/runtime/composer/buffer.d.ts +3 -4
  154. package/dist/runtime/composer/buffer.d.ts.map +1 -1
  155. package/dist/runtime/composer/buffer.js +3 -4
  156. package/dist/runtime/composer/buffer.js.map +1 -1
  157. package/dist/runtime/composer/grapheme.d.ts +2 -4
  158. package/dist/runtime/composer/grapheme.d.ts.map +1 -1
  159. package/dist/runtime/composer/grapheme.js +2 -4
  160. package/dist/runtime/composer/grapheme.js.map +1 -1
  161. package/dist/runtime/composer/layout.d.ts +1 -3
  162. package/dist/runtime/composer/layout.d.ts.map +1 -1
  163. package/dist/runtime/composer/layout.js +1 -3
  164. package/dist/runtime/composer/layout.js.map +1 -1
  165. package/dist/runtime/core-tools/descriptors.d.ts +17 -0
  166. package/dist/runtime/core-tools/descriptors.d.ts.map +1 -0
  167. package/dist/runtime/core-tools/descriptors.js +185 -0
  168. package/dist/runtime/core-tools/descriptors.js.map +1 -0
  169. package/dist/runtime/first-party-core-provider.d.ts +55 -0
  170. package/dist/runtime/first-party-core-provider.d.ts.map +1 -0
  171. package/dist/runtime/first-party-core-provider.js +197 -0
  172. package/dist/runtime/first-party-core-provider.js.map +1 -0
  173. package/dist/runtime/first-party-long-tail-provider.d.ts +57 -0
  174. package/dist/runtime/first-party-long-tail-provider.d.ts.map +1 -0
  175. package/dist/runtime/first-party-long-tail-provider.js +238 -0
  176. package/dist/runtime/first-party-long-tail-provider.js.map +1 -0
  177. package/dist/runtime/first-party-tool-services.d.ts +43 -0
  178. package/dist/runtime/first-party-tool-services.d.ts.map +1 -0
  179. package/dist/runtime/first-party-tool-services.js +200 -0
  180. package/dist/runtime/first-party-tool-services.js.map +1 -0
  181. package/dist/runtime/first-party-tool-universe.d.ts +14 -0
  182. package/dist/runtime/first-party-tool-universe.d.ts.map +1 -0
  183. package/dist/runtime/first-party-tool-universe.js +20 -0
  184. package/dist/runtime/first-party-tool-universe.js.map +1 -0
  185. package/dist/runtime/goal-lifecycle-v2.d.ts +63 -0
  186. package/dist/runtime/goal-lifecycle-v2.d.ts.map +1 -0
  187. package/dist/runtime/goal-lifecycle-v2.js +253 -0
  188. package/dist/runtime/goal-lifecycle-v2.js.map +1 -0
  189. package/dist/runtime/goal-runtime-coordinator.d.ts +111 -0
  190. package/dist/runtime/goal-runtime-coordinator.d.ts.map +1 -0
  191. package/dist/runtime/goal-runtime-coordinator.js +511 -0
  192. package/dist/runtime/goal-runtime-coordinator.js.map +1 -0
  193. package/dist/runtime/harness-confluence.d.ts +165 -0
  194. package/dist/runtime/harness-confluence.d.ts.map +1 -0
  195. package/dist/runtime/harness-confluence.js +807 -0
  196. package/dist/runtime/harness-confluence.js.map +1 -0
  197. package/dist/runtime/harness-eval.d.ts +96 -0
  198. package/dist/runtime/harness-eval.d.ts.map +1 -0
  199. package/dist/runtime/harness-eval.js +181 -0
  200. package/dist/runtime/harness-eval.js.map +1 -0
  201. package/dist/runtime/harness-metrics.d.ts +202 -0
  202. package/dist/runtime/harness-metrics.d.ts.map +1 -0
  203. package/dist/runtime/harness-metrics.js +415 -0
  204. package/dist/runtime/harness-metrics.js.map +1 -0
  205. package/dist/runtime/legacy-session-importer.d.ts +99 -0
  206. package/dist/runtime/legacy-session-importer.d.ts.map +1 -0
  207. package/dist/runtime/legacy-session-importer.js +455 -0
  208. package/dist/runtime/legacy-session-importer.js.map +1 -0
  209. package/dist/runtime/legacy-thread-materializer.d.ts +72 -0
  210. package/dist/runtime/legacy-thread-materializer.d.ts.map +1 -0
  211. package/dist/runtime/legacy-thread-materializer.js +553 -0
  212. package/dist/runtime/legacy-thread-materializer.js.map +1 -0
  213. package/dist/runtime/long-tail-tools/descriptors.d.ts +23 -0
  214. package/dist/runtime/long-tail-tools/descriptors.d.ts.map +1 -0
  215. package/dist/runtime/long-tail-tools/descriptors.js +423 -0
  216. package/dist/runtime/long-tail-tools/descriptors.js.map +1 -0
  217. package/dist/runtime/loop-budget.d.ts +1 -1
  218. package/dist/runtime/loop-budget.d.ts.map +1 -1
  219. package/dist/runtime/loop-budget.js +2 -2
  220. package/dist/runtime/loop-budget.js.map +1 -1
  221. package/dist/runtime/mcp/first-party-mcp-adapter.d.ts +75 -0
  222. package/dist/runtime/mcp/first-party-mcp-adapter.d.ts.map +1 -0
  223. package/dist/runtime/mcp/first-party-mcp-adapter.js +484 -0
  224. package/dist/runtime/mcp/first-party-mcp-adapter.js.map +1 -0
  225. package/dist/runtime/mcp/first-party-mcp-config.d.ts +13 -0
  226. package/dist/runtime/mcp/first-party-mcp-config.d.ts.map +1 -0
  227. package/dist/runtime/mcp/first-party-mcp-config.js +139 -0
  228. package/dist/runtime/mcp/first-party-mcp-config.js.map +1 -0
  229. package/dist/runtime/mcp/index.d.ts +5 -0
  230. package/dist/runtime/mcp/index.d.ts.map +1 -0
  231. package/dist/{skills → runtime/mcp}/index.js +3 -9
  232. package/dist/runtime/mcp/index.js.map +1 -0
  233. package/dist/runtime/mcp/lazy-mcp-runtime.d.ts +95 -0
  234. package/dist/runtime/mcp/lazy-mcp-runtime.d.ts.map +1 -0
  235. package/dist/runtime/mcp/lazy-mcp-runtime.js +854 -0
  236. package/dist/runtime/mcp/lazy-mcp-runtime.js.map +1 -0
  237. package/dist/runtime/mcp/types.d.ts +128 -0
  238. package/dist/runtime/mcp/types.d.ts.map +1 -0
  239. package/dist/runtime/mcp/types.js +5 -0
  240. package/dist/runtime/mcp/types.js.map +1 -0
  241. package/dist/runtime/orion-runtime-v1.d.ts +322 -0
  242. package/dist/runtime/orion-runtime-v1.d.ts.map +1 -0
  243. package/dist/runtime/orion-runtime-v1.js +959 -0
  244. package/dist/runtime/orion-runtime-v1.js.map +1 -0
  245. package/dist/runtime/orion-session-runner.d.ts +38 -0
  246. package/dist/runtime/orion-session-runner.d.ts.map +1 -0
  247. package/dist/runtime/orion-session-runner.js +168 -0
  248. package/dist/runtime/orion-session-runner.js.map +1 -0
  249. package/dist/runtime/product-orion-runtime.d.ts +35 -0
  250. package/dist/runtime/product-orion-runtime.d.ts.map +1 -0
  251. package/dist/runtime/product-orion-runtime.js +1047 -0
  252. package/dist/runtime/product-orion-runtime.js.map +1 -0
  253. package/dist/runtime/prompts/index.d.ts +3 -0
  254. package/dist/runtime/prompts/index.d.ts.map +1 -0
  255. package/dist/{ink-ui/types.js → runtime/prompts/index.js} +3 -2
  256. package/dist/runtime/prompts/index.js.map +1 -0
  257. package/dist/runtime/prompts/prompt-registry.d.ts +22 -0
  258. package/dist/runtime/prompts/prompt-registry.d.ts.map +1 -0
  259. package/dist/runtime/prompts/prompt-registry.js +356 -0
  260. package/dist/runtime/prompts/prompt-registry.js.map +1 -0
  261. package/dist/runtime/prompts/types.d.ts +111 -0
  262. package/dist/runtime/prompts/types.d.ts.map +1 -0
  263. package/dist/runtime/prompts/types.js +5 -0
  264. package/dist/runtime/prompts/types.js.map +1 -0
  265. package/dist/runtime/protocol/canonical.d.ts +3 -0
  266. package/dist/runtime/protocol/canonical.d.ts.map +1 -0
  267. package/dist/runtime/protocol/canonical.js +21 -0
  268. package/dist/runtime/protocol/canonical.js.map +1 -0
  269. package/dist/runtime/protocol/index.d.ts +4 -0
  270. package/dist/runtime/protocol/index.d.ts.map +1 -0
  271. package/dist/runtime/protocol/index.js +16 -0
  272. package/dist/runtime/protocol/index.js.map +1 -0
  273. package/dist/runtime/protocol/runtime-protocol-v1.d.ts +671 -0
  274. package/dist/runtime/protocol/runtime-protocol-v1.d.ts.map +1 -0
  275. package/dist/runtime/protocol/runtime-protocol-v1.js +557 -0
  276. package/dist/runtime/protocol/runtime-protocol-v1.js.map +1 -0
  277. package/dist/runtime/release-receipts.d.ts +110 -0
  278. package/dist/runtime/release-receipts.d.ts.map +1 -0
  279. package/dist/runtime/release-receipts.js +305 -0
  280. package/dist/runtime/release-receipts.js.map +1 -0
  281. package/dist/runtime/resource-scope.d.ts +123 -0
  282. package/dist/runtime/resource-scope.d.ts.map +1 -0
  283. package/dist/runtime/resource-scope.js +363 -0
  284. package/dist/runtime/resource-scope.js.map +1 -0
  285. package/dist/runtime/runtime-event-buffer.d.ts +78 -0
  286. package/dist/runtime/runtime-event-buffer.d.ts.map +1 -0
  287. package/dist/runtime/runtime-event-buffer.js +237 -0
  288. package/dist/runtime/runtime-event-buffer.js.map +1 -0
  289. package/dist/runtime/runtime-services.d.ts +87 -0
  290. package/dist/runtime/runtime-services.d.ts.map +1 -0
  291. package/dist/runtime/runtime-services.js +180 -0
  292. package/dist/runtime/runtime-services.js.map +1 -0
  293. package/dist/runtime/session-history-recovery.d.ts +19 -0
  294. package/dist/runtime/session-history-recovery.d.ts.map +1 -0
  295. package/dist/runtime/session-history-recovery.js +45 -0
  296. package/dist/runtime/session-history-recovery.js.map +1 -0
  297. package/dist/runtime/skills/bounded-lru-cache.d.ts +34 -0
  298. package/dist/runtime/skills/bounded-lru-cache.d.ts.map +1 -0
  299. package/dist/runtime/skills/bounded-lru-cache.js +100 -0
  300. package/dist/runtime/skills/bounded-lru-cache.js.map +1 -0
  301. package/dist/runtime/skills/filesystem-skill-provider.d.ts +96 -0
  302. package/dist/runtime/skills/filesystem-skill-provider.d.ts.map +1 -0
  303. package/dist/runtime/skills/filesystem-skill-provider.js +829 -0
  304. package/dist/runtime/skills/filesystem-skill-provider.js.map +1 -0
  305. package/dist/runtime/skills/index.d.ts +5 -0
  306. package/dist/runtime/skills/index.d.ts.map +1 -0
  307. package/dist/{ink-ui/controllers/chat-controller.js → runtime/skills/index.js} +5 -2
  308. package/dist/runtime/skills/index.js.map +1 -0
  309. package/dist/runtime/skills/lazy-skill-runtime.d.ts +77 -0
  310. package/dist/runtime/skills/lazy-skill-runtime.d.ts.map +1 -0
  311. package/dist/runtime/skills/lazy-skill-runtime.js +673 -0
  312. package/dist/runtime/skills/lazy-skill-runtime.js.map +1 -0
  313. package/dist/runtime/skills/types.d.ts +137 -0
  314. package/dist/runtime/skills/types.d.ts.map +1 -0
  315. package/dist/runtime/skills/types.js +13 -0
  316. package/dist/runtime/skills/types.js.map +1 -0
  317. package/dist/runtime/step-snapshot.d.ts +183 -0
  318. package/dist/runtime/step-snapshot.d.ts.map +1 -0
  319. package/dist/runtime/step-snapshot.js +286 -0
  320. package/dist/runtime/step-snapshot.js.map +1 -0
  321. package/dist/runtime/subagent-thread-runtime.d.ts +239 -0
  322. package/dist/runtime/subagent-thread-runtime.d.ts.map +1 -0
  323. package/dist/runtime/subagent-thread-runtime.js +876 -0
  324. package/dist/runtime/subagent-thread-runtime.js.map +1 -0
  325. package/dist/runtime/subagents/index.d.ts +4 -1
  326. package/dist/runtime/subagents/index.d.ts.map +1 -1
  327. package/dist/runtime/subagents/index.js +10 -2
  328. package/dist/runtime/subagents/index.js.map +1 -1
  329. package/dist/runtime/subagents/parent-step-fork.d.ts +36 -0
  330. package/dist/runtime/subagents/parent-step-fork.d.ts.map +1 -0
  331. package/dist/runtime/subagents/parent-step-fork.js +83 -0
  332. package/dist/runtime/subagents/parent-step-fork.js.map +1 -0
  333. package/dist/runtime/subagents/production.d.ts +65 -46
  334. package/dist/runtime/subagents/production.d.ts.map +1 -1
  335. package/dist/runtime/subagents/production.js +494 -170
  336. package/dist/runtime/subagents/production.js.map +1 -1
  337. package/dist/runtime/subagents/receipt-journal.d.ts +20 -0
  338. package/dist/runtime/subagents/receipt-journal.d.ts.map +1 -0
  339. package/dist/runtime/subagents/receipt-journal.js +74 -0
  340. package/dist/runtime/subagents/receipt-journal.js.map +1 -0
  341. package/dist/runtime/subagents/runtime-contract.d.ts +29 -0
  342. package/dist/runtime/subagents/runtime-contract.d.ts.map +1 -0
  343. package/dist/runtime/subagents/runtime-contract.js +3 -0
  344. package/dist/runtime/subagents/runtime-contract.js.map +1 -0
  345. package/dist/runtime/subagents/runtime-integration.d.ts +41 -56
  346. package/dist/runtime/subagents/runtime-integration.d.ts.map +1 -1
  347. package/dist/runtime/subagents/runtime-integration.js +34 -198
  348. package/dist/runtime/subagents/runtime-integration.js.map +1 -1
  349. package/dist/runtime/subagents/supervisor.d.ts +19 -7
  350. package/dist/runtime/subagents/supervisor.d.ts.map +1 -1
  351. package/dist/runtime/subagents/supervisor.js +83 -40
  352. package/dist/runtime/subagents/supervisor.js.map +1 -1
  353. package/dist/runtime/subagents/types.d.ts +1 -1
  354. package/dist/runtime/subagents/types.js +1 -1
  355. package/dist/runtime/task-context-service.d.ts +91 -0
  356. package/dist/runtime/task-context-service.d.ts.map +1 -0
  357. package/dist/runtime/task-context-service.js +122 -0
  358. package/dist/runtime/task-context-service.js.map +1 -0
  359. package/dist/runtime/thread-admission.d.ts +130 -0
  360. package/dist/runtime/thread-admission.d.ts.map +1 -0
  361. package/dist/runtime/thread-admission.js +276 -0
  362. package/dist/runtime/thread-admission.js.map +1 -0
  363. package/dist/runtime/thread-compact-persistence.d.ts +50 -0
  364. package/dist/runtime/thread-compact-persistence.d.ts.map +1 -0
  365. package/dist/runtime/thread-compact-persistence.js +176 -0
  366. package/dist/runtime/thread-compact-persistence.js.map +1 -0
  367. package/dist/runtime/thread-event-store.d.ts +98 -0
  368. package/dist/runtime/thread-event-store.d.ts.map +1 -0
  369. package/dist/runtime/thread-event-store.js +737 -0
  370. package/dist/runtime/thread-event-store.js.map +1 -0
  371. package/dist/runtime/thread-projection.d.ts +91 -0
  372. package/dist/runtime/thread-projection.d.ts.map +1 -0
  373. package/dist/runtime/thread-projection.js +407 -0
  374. package/dist/runtime/thread-projection.js.map +1 -0
  375. package/dist/runtime/thread-runtime.d.ts +165 -0
  376. package/dist/runtime/thread-runtime.d.ts.map +1 -0
  377. package/dist/runtime/thread-runtime.js +704 -0
  378. package/dist/runtime/thread-runtime.js.map +1 -0
  379. package/dist/runtime/thread-session-view.d.ts +45 -0
  380. package/dist/runtime/thread-session-view.d.ts.map +1 -0
  381. package/dist/runtime/thread-session-view.js +264 -0
  382. package/dist/runtime/thread-session-view.js.map +1 -0
  383. package/dist/runtime/thread-tool-journal.d.ts +11 -0
  384. package/dist/runtime/thread-tool-journal.d.ts.map +1 -0
  385. package/dist/runtime/thread-tool-journal.js +131 -0
  386. package/dist/runtime/thread-tool-journal.js.map +1 -0
  387. package/dist/runtime/thread-ui-adapter.d.ts +87 -0
  388. package/dist/runtime/thread-ui-adapter.d.ts.map +1 -0
  389. package/dist/runtime/thread-ui-adapter.js +580 -0
  390. package/dist/runtime/thread-ui-adapter.js.map +1 -0
  391. package/dist/runtime/tool-gateway.d.ts +159 -0
  392. package/dist/runtime/tool-gateway.d.ts.map +1 -0
  393. package/dist/runtime/tool-gateway.js +311 -0
  394. package/dist/runtime/tool-gateway.js.map +1 -0
  395. package/dist/runtime/turn-commit.d.ts +103 -0
  396. package/dist/runtime/turn-commit.d.ts.map +1 -0
  397. package/dist/runtime/turn-commit.js +321 -0
  398. package/dist/runtime/turn-commit.js.map +1 -0
  399. package/dist/runtime/ui-events.d.ts +15 -5
  400. package/dist/runtime/ui-events.d.ts.map +1 -1
  401. package/dist/runtime/ui-events.js +0 -1
  402. package/dist/runtime/ui-events.js.map +1 -1
  403. package/dist/runtime/ui-view-model.d.ts +2 -1
  404. package/dist/runtime/ui-view-model.d.ts.map +1 -1
  405. package/dist/runtime/ui-view-model.js +6 -5
  406. package/dist/runtime/ui-view-model.js.map +1 -1
  407. package/dist/services/config-dir.d.ts +1 -1
  408. package/dist/services/config-dir.d.ts.map +1 -1
  409. package/dist/services/config-dir.js +2 -1
  410. package/dist/services/config-dir.js.map +1 -1
  411. package/dist/services/config.d.ts +2 -16
  412. package/dist/services/config.d.ts.map +1 -1
  413. package/dist/services/config.js +2 -29
  414. package/dist/services/config.js.map +1 -1
  415. package/dist/services/doctor.d.ts +0 -2
  416. package/dist/services/doctor.d.ts.map +1 -1
  417. package/dist/services/doctor.js +39 -64
  418. package/dist/services/doctor.js.map +1 -1
  419. package/dist/services/file-lock.d.ts.map +1 -1
  420. package/dist/services/file-lock.js +42 -17
  421. package/dist/services/file-lock.js.map +1 -1
  422. package/dist/services/global-config.d.ts +2 -2
  423. package/dist/services/global-config.d.ts.map +1 -1
  424. package/dist/services/session-storage.d.ts +8 -0
  425. package/dist/services/session-storage.d.ts.map +1 -1
  426. package/dist/services/session-storage.js +76 -12
  427. package/dist/services/session-storage.js.map +1 -1
  428. package/dist/skills/builtin/code-review/SKILL.md +51 -0
  429. package/dist/skills/builtin/security-check/SKILL.md +54 -0
  430. package/dist/skills/builtin/test-gen/SKILL.md +49 -0
  431. package/dist/terminal-ui/launch.d.ts +3 -1
  432. package/dist/terminal-ui/launch.d.ts.map +1 -1
  433. package/dist/terminal-ui/launch.js +21 -3
  434. package/dist/terminal-ui/launch.js.map +1 -1
  435. package/dist/tools/core/common.d.ts +34 -0
  436. package/dist/tools/core/common.d.ts.map +1 -0
  437. package/dist/tools/core/common.js +164 -0
  438. package/dist/tools/core/common.js.map +1 -0
  439. package/dist/tools/core/edit-file.d.ts +10 -0
  440. package/dist/tools/core/edit-file.d.ts.map +1 -0
  441. package/dist/tools/core/edit-file.js +301 -0
  442. package/dist/tools/core/edit-file.js.map +1 -0
  443. package/dist/tools/core/exec-command.d.ts +2 -0
  444. package/dist/tools/core/exec-command.d.ts.map +1 -0
  445. package/dist/tools/core/exec-command.js +347 -0
  446. package/dist/tools/core/exec-command.js.map +1 -0
  447. package/dist/tools/core/glob.d.ts +2 -0
  448. package/dist/tools/core/glob.d.ts.map +1 -0
  449. package/dist/tools/core/glob.js +133 -0
  450. package/dist/tools/core/glob.js.map +1 -0
  451. package/dist/tools/core/grep.d.ts +12 -0
  452. package/dist/tools/core/grep.d.ts.map +1 -0
  453. package/dist/tools/core/grep.js +223 -0
  454. package/dist/tools/core/grep.js.map +1 -0
  455. package/dist/tools/core/index.d.ts +15 -0
  456. package/dist/tools/core/index.d.ts.map +1 -0
  457. package/dist/tools/core/index.js +31 -0
  458. package/dist/tools/core/index.js.map +1 -0
  459. package/dist/tools/core/list-files.d.ts +2 -0
  460. package/dist/tools/core/list-files.d.ts.map +1 -0
  461. package/dist/tools/core/list-files.js +87 -0
  462. package/dist/tools/core/list-files.js.map +1 -0
  463. package/dist/tools/core/read-file.d.ts +2 -0
  464. package/dist/tools/core/read-file.d.ts.map +1 -0
  465. package/dist/tools/core/read-file.js +129 -0
  466. package/dist/tools/core/read-file.js.map +1 -0
  467. package/dist/tools/core/write-file.d.ts +2 -0
  468. package/dist/tools/core/write-file.d.ts.map +1 -0
  469. package/dist/tools/core/write-file.js +65 -0
  470. package/dist/tools/core/write-file.js.map +1 -0
  471. package/dist/tools/todo.d.ts +3 -4
  472. package/dist/tools/todo.d.ts.map +1 -1
  473. package/dist/tools/todo.js +80 -79
  474. package/dist/tools/todo.js.map +1 -1
  475. package/dist/tools/web.js +1 -1
  476. package/dist/tools/web.js.map +1 -1
  477. package/dist/tui-ui/chrome-view-model.d.ts.map +1 -1
  478. package/dist/tui-ui/chrome-view-model.js +22 -8
  479. package/dist/tui-ui/chrome-view-model.js.map +1 -1
  480. package/dist/tui-ui/launch.d.ts.map +1 -1
  481. package/dist/tui-ui/launch.js +13 -0
  482. package/dist/tui-ui/launch.js.map +1 -1
  483. package/dist/tui-ui/layout.js +1 -1
  484. package/dist/tui-ui/layout.js.map +1 -1
  485. package/dist/tui-ui/state.d.ts.map +1 -1
  486. package/dist/tui-ui/state.js +2 -0
  487. package/dist/tui-ui/state.js.map +1 -1
  488. package/docs/migration/v0.1.9-to-v0.2.0.md +98 -0
  489. package/docs/orion.example.json +79 -0
  490. package/docs/plan/v0.2.0-dsh-harness-redesign-plan.md +1234 -0
  491. package/docs/plan/v0.2.0-release-checklist.md +91 -0
  492. package/docs/readme.md +8 -8
  493. package/npm-shrinkwrap.json +45 -450
  494. package/package.json +17 -13
  495. package/dist/agents/coder.d.ts +0 -12
  496. package/dist/agents/coder.d.ts.map +0 -1
  497. package/dist/agents/coder.js +0 -48
  498. package/dist/agents/coder.js.map +0 -1
  499. package/dist/agents/coordinator.d.ts +0 -86
  500. package/dist/agents/coordinator.d.ts.map +0 -1
  501. package/dist/agents/coordinator.js +0 -291
  502. package/dist/agents/coordinator.js.map +0 -1
  503. package/dist/agents/fork.d.ts +0 -73
  504. package/dist/agents/fork.d.ts.map +0 -1
  505. package/dist/agents/fork.js +0 -163
  506. package/dist/agents/fork.js.map +0 -1
  507. package/dist/agents/leader.d.ts +0 -12
  508. package/dist/agents/leader.d.ts.map +0 -1
  509. package/dist/agents/leader.js +0 -49
  510. package/dist/agents/leader.js.map +0 -1
  511. package/dist/agents/router.d.ts +0 -59
  512. package/dist/agents/router.d.ts.map +0 -1
  513. package/dist/agents/router.js +0 -193
  514. package/dist/agents/router.js.map +0 -1
  515. package/dist/agents/worker-pool.d.ts +0 -72
  516. package/dist/agents/worker-pool.d.ts.map +0 -1
  517. package/dist/agents/worker-pool.js +0 -229
  518. package/dist/agents/worker-pool.js.map +0 -1
  519. package/dist/commands/legacy-commands.d.ts +0 -4
  520. package/dist/commands/legacy-commands.d.ts.map +0 -1
  521. package/dist/commands/legacy-commands.js +0 -44
  522. package/dist/commands/legacy-commands.js.map +0 -1
  523. package/dist/core/agent.d.ts +0 -84
  524. package/dist/core/agent.d.ts.map +0 -1
  525. package/dist/core/agent.js +0 -58
  526. package/dist/core/agent.js.map +0 -1
  527. package/dist/core/brain.d.ts +0 -50
  528. package/dist/core/brain.d.ts.map +0 -1
  529. package/dist/core/brain.js +0 -95
  530. package/dist/core/brain.js.map +0 -1
  531. package/dist/framework/tool-scheduler.d.ts +0 -191
  532. package/dist/framework/tool-scheduler.d.ts.map +0 -1
  533. package/dist/framework/tool-scheduler.js +0 -573
  534. package/dist/framework/tool-scheduler.js.map +0 -1
  535. package/dist/harness/harness.d.ts +0 -58
  536. package/dist/harness/harness.d.ts.map +0 -1
  537. package/dist/harness/harness.js +0 -195
  538. package/dist/harness/harness.js.map +0 -1
  539. package/dist/harness/safety.d.ts +0 -101
  540. package/dist/harness/safety.d.ts.map +0 -1
  541. package/dist/harness/safety.js +0 -322
  542. package/dist/harness/safety.js.map +0 -1
  543. package/dist/init.d.ts +0 -108
  544. package/dist/init.d.ts.map +0 -1
  545. package/dist/init.js +0 -393
  546. package/dist/init.js.map +0 -1
  547. package/dist/ink-ui/App.d.ts +0 -9
  548. package/dist/ink-ui/App.d.ts.map +0 -1
  549. package/dist/ink-ui/App.js +0 -12
  550. package/dist/ink-ui/App.js.map +0 -1
  551. package/dist/ink-ui/components/Markdown.d.ts +0 -10
  552. package/dist/ink-ui/components/Markdown.d.ts.map +0 -1
  553. package/dist/ink-ui/components/Markdown.js +0 -210
  554. package/dist/ink-ui/components/Markdown.js.map +0 -1
  555. package/dist/ink-ui/components/NativeCursor.d.ts +0 -12
  556. package/dist/ink-ui/components/NativeCursor.d.ts.map +0 -1
  557. package/dist/ink-ui/components/NativeCursor.js +0 -35
  558. package/dist/ink-ui/components/NativeCursor.js.map +0 -1
  559. package/dist/ink-ui/components/PixelHorseBanner.d.ts +0 -8
  560. package/dist/ink-ui/components/PixelHorseBanner.d.ts.map +0 -1
  561. package/dist/ink-ui/components/PixelHorseBanner.js +0 -97
  562. package/dist/ink-ui/components/PixelHorseBanner.js.map +0 -1
  563. package/dist/ink-ui/components/PromptInput.d.ts +0 -13
  564. package/dist/ink-ui/components/PromptInput.d.ts.map +0 -1
  565. package/dist/ink-ui/components/PromptInput.js +0 -30
  566. package/dist/ink-ui/components/PromptInput.js.map +0 -1
  567. package/dist/ink-ui/components/RunningHorseIndicator.d.ts +0 -13
  568. package/dist/ink-ui/components/RunningHorseIndicator.d.ts.map +0 -1
  569. package/dist/ink-ui/components/RunningHorseIndicator.js +0 -53
  570. package/dist/ink-ui/components/RunningHorseIndicator.js.map +0 -1
  571. package/dist/ink-ui/components/SelectList.d.ts +0 -16
  572. package/dist/ink-ui/components/SelectList.d.ts.map +0 -1
  573. package/dist/ink-ui/components/SelectList.js +0 -60
  574. package/dist/ink-ui/components/SelectList.js.map +0 -1
  575. package/dist/ink-ui/components/StatusLine.d.ts +0 -11
  576. package/dist/ink-ui/components/StatusLine.d.ts.map +0 -1
  577. package/dist/ink-ui/components/StatusLine.js +0 -70
  578. package/dist/ink-ui/components/StatusLine.js.map +0 -1
  579. package/dist/ink-ui/components/ToolActivity.d.ts +0 -19
  580. package/dist/ink-ui/components/ToolActivity.d.ts.map +0 -1
  581. package/dist/ink-ui/components/ToolActivity.js +0 -134
  582. package/dist/ink-ui/components/ToolActivity.js.map +0 -1
  583. package/dist/ink-ui/components/Transcript.d.ts +0 -14
  584. package/dist/ink-ui/components/Transcript.d.ts.map +0 -1
  585. package/dist/ink-ui/components/Transcript.js +0 -66
  586. package/dist/ink-ui/components/Transcript.js.map +0 -1
  587. package/dist/ink-ui/controllers/chat-controller.d.ts +0 -2
  588. package/dist/ink-ui/controllers/chat-controller.d.ts.map +0 -1
  589. package/dist/ink-ui/controllers/chat-controller.js.map +0 -1
  590. package/dist/ink-ui/hooks/use-raw-input-bridge.d.ts +0 -6
  591. package/dist/ink-ui/hooks/use-raw-input-bridge.d.ts.map +0 -1
  592. package/dist/ink-ui/hooks/use-raw-input-bridge.js +0 -27
  593. package/dist/ink-ui/hooks/use-raw-input-bridge.js.map +0 -1
  594. package/dist/ink-ui/hooks/use-terminal-size.d.ts +0 -7
  595. package/dist/ink-ui/hooks/use-terminal-size.d.ts.map +0 -1
  596. package/dist/ink-ui/hooks/use-terminal-size.js +0 -34
  597. package/dist/ink-ui/hooks/use-terminal-size.js.map +0 -1
  598. package/dist/ink-ui/launch.d.ts +0 -9
  599. package/dist/ink-ui/launch.d.ts.map +0 -1
  600. package/dist/ink-ui/launch.js +0 -101
  601. package/dist/ink-ui/launch.js.map +0 -1
  602. package/dist/ink-ui/runtime/grapheme.d.ts +0 -10
  603. package/dist/ink-ui/runtime/grapheme.d.ts.map +0 -1
  604. package/dist/ink-ui/runtime/grapheme.js +0 -17
  605. package/dist/ink-ui/runtime/grapheme.js.map +0 -1
  606. package/dist/ink-ui/runtime/input-buffer.d.ts +0 -10
  607. package/dist/ink-ui/runtime/input-buffer.d.ts.map +0 -1
  608. package/dist/ink-ui/runtime/input-buffer.js +0 -18
  609. package/dist/ink-ui/runtime/input-buffer.js.map +0 -1
  610. package/dist/ink-ui/runtime/layout-budget.d.ts +0 -13
  611. package/dist/ink-ui/runtime/layout-budget.d.ts.map +0 -1
  612. package/dist/ink-ui/runtime/layout-budget.js +0 -25
  613. package/dist/ink-ui/runtime/layout-budget.js.map +0 -1
  614. package/dist/ink-ui/runtime/native-cursor.d.ts +0 -62
  615. package/dist/ink-ui/runtime/native-cursor.d.ts.map +0 -1
  616. package/dist/ink-ui/runtime/native-cursor.js +0 -398
  617. package/dist/ink-ui/runtime/native-cursor.js.map +0 -1
  618. package/dist/ink-ui/runtime/prompt-layout.d.ts +0 -10
  619. package/dist/ink-ui/runtime/prompt-layout.d.ts.map +0 -1
  620. package/dist/ink-ui/runtime/prompt-layout.js +0 -21
  621. package/dist/ink-ui/runtime/prompt-layout.js.map +0 -1
  622. package/dist/ink-ui/runtime/raw-input.d.ts +0 -4
  623. package/dist/ink-ui/runtime/raw-input.d.ts.map +0 -1
  624. package/dist/ink-ui/runtime/raw-input.js +0 -15
  625. package/dist/ink-ui/runtime/raw-input.js.map +0 -1
  626. package/dist/ink-ui/runtime/transcript-state.d.ts +0 -37
  627. package/dist/ink-ui/runtime/transcript-state.d.ts.map +0 -1
  628. package/dist/ink-ui/runtime/transcript-state.js +0 -91
  629. package/dist/ink-ui/runtime/transcript-state.js.map +0 -1
  630. package/dist/ink-ui/screens/ReplScreen.d.ts +0 -27
  631. package/dist/ink-ui/screens/ReplScreen.d.ts.map +0 -1
  632. package/dist/ink-ui/screens/ReplScreen.js +0 -781
  633. package/dist/ink-ui/screens/ReplScreen.js.map +0 -1
  634. package/dist/ink-ui/types.d.ts +0 -2
  635. package/dist/ink-ui/types.d.ts.map +0 -1
  636. package/dist/ink-ui/types.js.map +0 -1
  637. package/dist/runtime/chat-checkpoint.d.ts +0 -17
  638. package/dist/runtime/chat-checkpoint.d.ts.map +0 -1
  639. package/dist/runtime/chat-checkpoint.js +0 -105
  640. package/dist/runtime/chat-checkpoint.js.map +0 -1
  641. package/dist/runtime/chat-command-scope.d.ts +0 -5
  642. package/dist/runtime/chat-command-scope.d.ts.map +0 -1
  643. package/dist/runtime/chat-command-scope.js +0 -22
  644. package/dist/runtime/chat-command-scope.js.map +0 -1
  645. package/dist/runtime/chat-compact.d.ts +0 -26
  646. package/dist/runtime/chat-compact.d.ts.map +0 -1
  647. package/dist/runtime/chat-compact.js +0 -132
  648. package/dist/runtime/chat-compact.js.map +0 -1
  649. package/dist/runtime/chat-controller.d.ts +0 -62
  650. package/dist/runtime/chat-controller.d.ts.map +0 -1
  651. package/dist/runtime/chat-controller.js +0 -1620
  652. package/dist/runtime/chat-controller.js.map +0 -1
  653. package/dist/runtime/chat-effort.d.ts +0 -5
  654. package/dist/runtime/chat-effort.d.ts.map +0 -1
  655. package/dist/runtime/chat-effort.js +0 -47
  656. package/dist/runtime/chat-effort.js.map +0 -1
  657. package/dist/runtime/chat-presentation.d.ts +0 -63
  658. package/dist/runtime/chat-presentation.d.ts.map +0 -1
  659. package/dist/runtime/chat-presentation.js +0 -561
  660. package/dist/runtime/chat-presentation.js.map +0 -1
  661. package/dist/runtime/chat-trace.d.ts +0 -52
  662. package/dist/runtime/chat-trace.d.ts.map +0 -1
  663. package/dist/runtime/chat-trace.js +0 -234
  664. package/dist/runtime/chat-trace.js.map +0 -1
  665. package/dist/runtime/chat-workspace.d.ts +0 -22
  666. package/dist/runtime/chat-workspace.d.ts.map +0 -1
  667. package/dist/runtime/chat-workspace.js +0 -154
  668. package/dist/runtime/chat-workspace.js.map +0 -1
  669. package/dist/runtime/goals/accounting.d.ts +0 -45
  670. package/dist/runtime/goals/accounting.d.ts.map +0 -1
  671. package/dist/runtime/goals/accounting.js +0 -114
  672. package/dist/runtime/goals/accounting.js.map +0 -1
  673. package/dist/runtime/goals/coordinator.d.ts +0 -92
  674. package/dist/runtime/goals/coordinator.d.ts.map +0 -1
  675. package/dist/runtime/goals/coordinator.js +0 -1471
  676. package/dist/runtime/goals/coordinator.js.map +0 -1
  677. package/dist/runtime/goals/lifecycle.d.ts +0 -13
  678. package/dist/runtime/goals/lifecycle.d.ts.map +0 -1
  679. package/dist/runtime/goals/lifecycle.js +0 -46
  680. package/dist/runtime/goals/lifecycle.js.map +0 -1
  681. package/dist/runtime/goals/prompt.d.ts +0 -16
  682. package/dist/runtime/goals/prompt.d.ts.map +0 -1
  683. package/dist/runtime/goals/prompt.js +0 -88
  684. package/dist/runtime/goals/prompt.js.map +0 -1
  685. package/dist/runtime/goals/stop-policy.d.ts +0 -9
  686. package/dist/runtime/goals/stop-policy.d.ts.map +0 -1
  687. package/dist/runtime/goals/stop-policy.js +0 -83
  688. package/dist/runtime/goals/stop-policy.js.map +0 -1
  689. package/dist/runtime/goals/tools.d.ts +0 -61
  690. package/dist/runtime/goals/tools.d.ts.map +0 -1
  691. package/dist/runtime/goals/tools.js +0 -568
  692. package/dist/runtime/goals/tools.js.map +0 -1
  693. package/dist/sdk/index.d.ts +0 -10
  694. package/dist/sdk/index.d.ts.map +0 -1
  695. package/dist/sdk/index.js +0 -23
  696. package/dist/sdk/index.js.map +0 -1
  697. package/dist/sdk/init.d.ts +0 -24
  698. package/dist/sdk/init.d.ts.map +0 -1
  699. package/dist/sdk/init.js +0 -48
  700. package/dist/sdk/init.js.map +0 -1
  701. package/dist/sdk/query.d.ts +0 -19
  702. package/dist/sdk/query.d.ts.map +0 -1
  703. package/dist/sdk/query.js +0 -42
  704. package/dist/sdk/query.js.map +0 -1
  705. package/dist/sdk/sessions.d.ts +0 -19
  706. package/dist/sdk/sessions.d.ts.map +0 -1
  707. package/dist/sdk/sessions.js +0 -57
  708. package/dist/sdk/sessions.js.map +0 -1
  709. package/dist/sdk/types.d.ts +0 -47
  710. package/dist/sdk/types.d.ts.map +0 -1
  711. package/dist/sdk/types.js +0 -8
  712. package/dist/sdk/types.js.map +0 -1
  713. package/dist/services/agent-runner.d.ts +0 -71
  714. package/dist/services/agent-runner.d.ts.map +0 -1
  715. package/dist/services/agent-runner.js +0 -185
  716. package/dist/services/agent-runner.js.map +0 -1
  717. package/dist/services/task-manager.d.ts +0 -161
  718. package/dist/services/task-manager.d.ts.map +0 -1
  719. package/dist/services/task-manager.js +0 -315
  720. package/dist/services/task-manager.js.map +0 -1
  721. package/dist/skills/discovery.d.ts +0 -22
  722. package/dist/skills/discovery.d.ts.map +0 -1
  723. package/dist/skills/discovery.js +0 -75
  724. package/dist/skills/discovery.js.map +0 -1
  725. package/dist/skills/index.d.ts +0 -11
  726. package/dist/skills/index.d.ts.map +0 -1
  727. package/dist/skills/index.js.map +0 -1
  728. package/dist/skills/loader.d.ts +0 -53
  729. package/dist/skills/loader.d.ts.map +0 -1
  730. package/dist/skills/loader.js +0 -421
  731. package/dist/skills/loader.js.map +0 -1
  732. package/dist/skills/registry.d.ts +0 -41
  733. package/dist/skills/registry.d.ts.map +0 -1
  734. package/dist/skills/registry.js +0 -157
  735. package/dist/skills/registry.js.map +0 -1
  736. package/dist/skills/runtime.d.ts +0 -46
  737. package/dist/skills/runtime.d.ts.map +0 -1
  738. package/dist/skills/runtime.js +0 -363
  739. package/dist/skills/runtime.js.map +0 -1
  740. package/dist/skills/types.d.ts +0 -112
  741. package/dist/skills/types.d.ts.map +0 -1
  742. package/dist/skills/types.js +0 -24
  743. package/dist/skills/types.js.map +0 -1
  744. package/dist/tools/index.d.ts +0 -52
  745. package/dist/tools/index.d.ts.map +0 -1
  746. package/dist/tools/index.js +0 -2268
  747. package/dist/tools/index.js.map +0 -1
  748. package/dist/tools/mcp.d.ts +0 -99
  749. package/dist/tools/mcp.d.ts.map +0 -1
  750. package/dist/tools/mcp.js +0 -695
  751. package/dist/tools/mcp.js.map +0 -1
  752. package/dist/tools/plan.d.ts +0 -17
  753. package/dist/tools/plan.d.ts.map +0 -1
  754. package/dist/tools/plan.js +0 -84
  755. package/dist/tools/plan.js.map +0 -1
  756. package/docs/migration/v0.1.8-to-v0.1.9.md +0 -60
  757. package/docs/plan/v0.1.9-release-checklist.md +0 -64
package/CHANGELOG.md CHANGED
@@ -22,6 +22,91 @@ which is **not** a pass.
22
22
 
23
23
  ## [Unreleased]
24
24
 
25
+ ## [0.2.2] — 2026-08-27
26
+
27
+ > **Status: published.** The `v0.2.2` tag and npm `latest` package identify this release tree.
28
+
29
+ ### Fixed
30
+
31
+ - Isolate Session discovery from malformed historical model context so one interrupted V2 Thread
32
+ cannot block `/session`, `/resume --last`, or a healthy explicit resume for the whole project.
33
+ - Recover incomplete imported tool-call groups as explicit cancelled tool results before provider
34
+ requests, retain the original transcript facts, and surface typed recovery provenance to users.
35
+ - Keep compact Goal token usage visible ahead of long objective text on narrow TUI status rows while
36
+ preserving Goal escape controls and the purple mode override.
37
+
38
+ ## [0.2.1] — CANDIDATE
39
+
40
+ > **Status: candidate.** This source version is not a Git tag, GitHub Release, or npm publication
41
+ > until each external receipt is created and read back.
42
+
43
+ ### Fixed
44
+
45
+ - Project session discovery now projects message count, durable history size, and last activity
46
+ from the authoritative v2 Thread instead of treating an empty legacy JSONL sidecar as the session.
47
+ - `/resume` and `/resume --last` restore the latest TurnCommit model history and replay the selected
48
+ Thread into the UI exactly once without starting an extra model turn or duplicating user input.
49
+ - Runtime restart treats legacy Harness and Goal sidecars as first-migration seeds only; once a
50
+ TurnCommit exists, its TaskContext and Goal state remain the sole durable authority.
51
+ - TUI submission uses the durable Thread user item as its only transcript echo, including queued
52
+ revisions, so one user input renders as one entry.
53
+ - TUI context pressure now flows from the product Agent Loop into a live, width-prioritized `CTX`
54
+ percentage instead of disappearing until the turn completes.
55
+ - Goal V2 TurnCommits now restore the purple Goal mode chrome, clear it on completion, and display
56
+ only compact cumulative usage such as `tokens:581.6K` instead of an internal unlimited sentinel.
57
+ - Cross-process file locking no longer lets healthy contenders starve the active owner through the
58
+ recovery sentinel; stale recovery remains serialized and fail-closed.
59
+
60
+ ## [0.2.0] — CANDIDATE
61
+
62
+ > **Status: candidate.** Implementation evidence does not imply a Git tag, GitHub Release, npm
63
+ > publication, or dist-tag promotion. Those receipts remain pending until performed and read back.
64
+
65
+ ### Added
66
+
67
+ - Add the versioned `Thread → Turn → Step → Item` runtime protocol, append-only Thread event store,
68
+ deterministic projection/replay, bounded renderer buffering, and typed admission for start, steer,
69
+ follow-up, interrupt, overload, and maintenance.
70
+ - Add immutable Step Snapshots and Capability Receipts binding model, prompt, Authority, Policy,
71
+ selected Skills/MCP, visible schemas, exact executors, and durable per-request lineage.
72
+ - Add a single ToolGateway execution boundary for core, long-tail, nested batch, MCP, Skill, and
73
+ subagent invocations through Capability → Policy → Approval → Sandbox → Execute.
74
+ - Add descriptor-first lazy Skill and MCP runtimes with scope layering, bounded caches, digest
75
+ invalidation, single-flight loading, exact server leases, idle teardown, and crash isolation.
76
+ - Add Prompt Registry budgets, stable prefix receipts, first-party contributor slots, redaction,
77
+ and deterministic omission reasons.
78
+ - Add transactional Compact maintenance, atomic TurnCommit, Goal Runtime V2, durable PlanReceipt,
79
+ modern child Thread runtime, and a side-by-side legacy Session materializer with atomic index
80
+ cutover.
81
+ - Add machine-readable Harness benchmark/eval, architecture confluence, exact tarball, Node 20/22/24
82
+ runtime matrix, gate evidence, and aggregate ReleaseReceipt contracts.
83
+
84
+ ### Changed
85
+
86
+ - Replace the legacy Brain/Agent/Harness/query runtime graph with one statically composed product
87
+ Runtime and one Agent Loop implementation for root and child turns.
88
+ - Reduce the ordinary coding schema from the frozen v0.1.9 baseline of 33 tools / 20,596 bytes to
89
+ 7 exact core schemas / 3,947 bytes; long-tail capabilities are selected or deferred by task.
90
+ - Make `/plan <task>` commit a PlanReceipt and exit automatically; implementation starts in a new
91
+ logical turn after BUILD/AUTO is restored.
92
+ - Let productive Goals continue without a fixed turn-count cap; evidence audit, resource budget,
93
+ no-progress, blocker, provider, persistence, interrupt, and completion decisions remain explicit.
94
+ - Keep BUILD/PLAN/AUTO as workflow modes independent from Authority and tool permission policy.
95
+
96
+ ### Removed
97
+
98
+ - Remove the Ink renderer, legacy Agent/Brain/Harness/SDK public surface, global `TOOLS` and eager MCP
99
+ singleton, compatibility command roots, and direct model→tool execution bypasses from the package.
100
+ - Remove `/target`, `/mode`, model-facing `enter_plan_mode`/`exit_plan_mode`, and legacy Goal mutations
101
+ `/goal exit|edit|replace|confirm|budget` plus `clear --yes`.
102
+
103
+ ### Security
104
+
105
+ - Freeze exact schema/executor/Authority/Policy bindings per model request and fail closed on digest
106
+ or catalog drift.
107
+ - Preserve project-boundary, symlink, sandbox, destructive-command, cancellation, durable receipt,
108
+ and indeterminate-side-effect enforcement across all modes and nested execution.
109
+
25
110
  ## [0.1.9] — CANDIDATE
26
111
 
27
112
  > **Status: candidate.** Source, CI, exact tarball, npm `next`, tag, GitHub Release, and stable
package/README.md CHANGED
@@ -1,390 +1,209 @@
1
1
  # Orion Code
2
2
 
3
- > **Goal-driven coding agent for the terminal.**
4
- >
5
- > v0.1.9 — semantic compact, evidence-driven completion, and autonomous progress control
3
+ Goal-driven coding agent for the terminal.
6
4
 
7
- [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
8
- [![Node.js](https://img.shields.io/badge/node-%3E%3D20.0-green.svg)](https://nodejs.org)
9
- [![TypeScript](https://img.shields.io/badge/typescript-5.0-blue.svg)](https://www.typescriptlang.org)
5
+ > v0.2.2 — resilient Thread session recovery, provider-safe interrupted tool
6
+ > history, and width-stable Goal usage visibility on the v0.2 Harness.
10
7
 
11
- ---
8
+ [中文说明](README.zh-CN.md) · [Architecture plan](docs/plan/v0.2.0-dsh-harness-redesign-plan.md) ·
9
+ [Migration guide](docs/migration/v0.1.9-to-v0.2.0.md) ·
10
+ [Release checklist](docs/plan/v0.2.0-release-checklist.md)
12
11
 
13
- **Language**: [English](README.md) | [简体中文](README.zh-CN.md)
12
+ ## What changed in v0.2.0
14
13
 
15
- ---
14
+ Orion now has one product execution spine:
16
15
 
17
- ## Overview
18
-
19
- Orion Code is a terminal-based coding agent. It wraps LLM APIs in a harness of safety checks, tool orchestration, session management, and context awareness.
20
-
21
- | Dimension | Description |
22
- | ----------------- | ------------------------------------------------------ |
23
- | **Agent Harness** | Safety boundaries, task constraints, result validation |
24
- | **Tool Calling** | LLM autonomously invokes tools to complete tasks |
25
- | **Memory System** | Layered memory with semantic search |
26
- | **MCP Protocol** | Connect external MCP servers for tool extension |
27
-
28
- ## Quick Start
29
-
30
- ### Requirements
31
-
32
- - Node.js 20, 22, or 24 LTS
33
- - npm >= 9.0
16
+ ```text
17
+ Thread → Turn → Step → Item
18
+
19
+ ├─ frozen prompt/model/capability snapshot
20
+ └─ Capability → Policy → Approval → Sandbox → Execute → durable receipt
21
+ ```
34
22
 
35
- ### Install & Run
23
+ - **Lean by default.** Ordinary coding starts with seven exact core tools instead of sending every
24
+ built-in schema. Long-tail Git, LSP, web, Skill, MCP, batch, and subagent capabilities are selected
25
+ only when the task needs them.
26
+ - **One trustworthy loop.** Root turns and child agents use the same Agent Loop and ToolGateway;
27
+ schema and dispatch are bound by the same Step Snapshot.
28
+ - **Lazy extensions.** Skill catalogs contain bounded descriptors; definition bodies and resources
29
+ load only after selection. Configured MCP servers stay disconnected until an exact server/tool is
30
+ selected and release their lease when idle.
31
+ - **Durable completion.** History, TaskContext evidence, Goal state, StopDecision, capability
32
+ receipts, and Plan receipts commit together. A productive Goal may continue beyond 20 turns and
33
+ exits automatically only after its completion audit passes.
34
+ - **Crash-safe recovery.** Append-only runtime facts are authoritative. UI projection, Compact,
35
+ legacy-session cutover, and resume are digest-checked and fail closed on partial or conflicting
36
+ state.
37
+ - **Stable interaction.** TUI, terminal, print, Plan, Goal, Compact, and subagents consume the same
38
+ versioned runtime protocol.
39
+
40
+ The design borrows scoped resource lifecycle ideas from DeepSeek Harness and immutable execution
41
+ contracts from Codex while keeping Orion's Goal/Evidence model at the center. Orion is **not** a
42
+ plugin marketplace or arbitrary JavaScript plugin host; Model, Skills, and MCP remain the supported
43
+ user extension boundaries.
44
+
45
+ ## Install
46
+
47
+ Node.js 20, 22, and 24 are supported.
48
+
49
+ Install the published `0.2.2` release:
36
50
 
37
51
  ```bash
38
- # After the registry receipt exists, install this exact prerelease version:
39
- npm install -g @orion-agents/orion-code@0.1.9
40
- # Install the current prerelease channel:
41
- npm install -g @orion-agents/orion-code@next
42
-
43
- # Or run from a checked-out source tree:
44
- npm ci
45
- npm run build
46
- npm start
47
-
48
- # Configure API key
49
- export ORION_CODE_API_KEY=your-api-key
50
- # or create ~/.orion-code/orion.json on first run
51
-
52
- # Start
53
- orion
54
-
55
- # TUI renderer (default)
56
- orion --ui tui
57
-
58
- # Technical terminal renderer for diagnostics and compatibility
59
- orion --ui terminal
60
-
61
- # Deprecated compatibility renderer; scheduled for removal in v0.2.0
62
- orion --ui ink
63
-
64
- # Diagnostics
52
+ npm install -g @orion-agents/orion-code@0.2.2
53
+ orion --version
65
54
  orion doctor
66
-
67
- # Workspace diff
68
- orion diff
69
-
70
- # Commit plan
71
- orion commit-plan
72
-
73
- # Experimental non-interactive print mode
74
- orion -p "review the current git diff"
75
- echo "summarize this project" | orion --print
76
55
  ```
77
56
 
78
- Before upgrading, read the [v0.1.8 → v0.1.9 migration guide](docs/migration/v0.1.8-to-v0.1.9.md).
79
- Release verification is tracked in the [v0.1.9 checklist](docs/plan/v0.1.9-release-checklist.md).
80
-
81
- > **Release status.** `0.1.9` is the current release candidate for the npm `next` channel. Stable
82
- > `latest` remains `0.1.4`; tag, GitHub Release, npm publish, and `latest` promotion are verified as
83
- > separate delivery actions.
84
-
85
- ### TUI startup banner
86
-
87
- The default TUI uses the original Orion Pixel theme and a portable “little star hunter” mascot.
88
- Typed chrome keeps Goal, permission, model, context, queue, and active-work state visible without
89
- polluting code or tool output. It uses only safe terminal character cells: classic mode,
90
- `NO_COLOR`, and narrow terminals automatically fall back to compact text with no image protocol.
57
+ To run from source:
91
58
 
92
59
  ```bash
93
- # Default portable pixel banner
94
- ORION_TUI_IMAGE=off orion
95
-
96
- # Opt into a PNG in compatible terminals
97
- ORION_TUI_IMAGE=auto orion
98
- ORION_TUI_IMAGE=kitty orion
99
- ORION_TUI_IMAGE=iterm2 orion
100
-
101
- # Override the bundled PNG
102
- ORION_TUI_ICON=/absolute/path/to/icon.png orion
60
+ git clone https://github.com/orion-agents/orion-code.git
61
+ cd orion-code
62
+ npm install
63
+ npm run build
64
+ npm run start
103
65
  ```
104
66
 
105
- Apple Terminal does not support either inline image protocol. Capability detection
106
- therefore selects the pixel banner instead of emitting image data. Real macOS
107
- Terminal validation remains part of the release gate.
108
-
109
- ## Key Features
67
+ ## Configure a model
110
68
 
111
- | Feature | Description |
112
- | ---------------------- | ----------------------------------------------------------------------------- |
113
- | **Tool Orchestration** | 29 built-in tools: file I/O, shell, web, memory, git, LSP, Goal, and planning |
114
- | **Multi-Model** | Provider profiles, model switching, and explicit effort capabilities |
115
- | **Context Awareness** | Per-model context windows, token-based auto-compact |
116
- | **MCP Protocol** | stdio MCP servers with heartbeat + reconnect |
117
- | **Memory System** | User / Project / Session memory with semantic search |
118
- | **Session Management** | Persistent sessions with history restore |
119
- | **Persistent Goal** | Typed multi-turn continuation, safe restart/resume, criterion evidence audit |
120
- | **Safety Boundaries** | Bash safety checks, audit logging, permission modes |
121
- | **Skills System** | Builtin + user + project-level skill extensions |
122
- | **Multi-Agent** | Subagent fork/worker-pool with smart routing |
123
- | **CLI Utilities** | `doctor`, `diff`, `commit-plan`, experimental `-p` print mode |
69
+ Orion reads `~/.orion-code/orion.json`. Start from
70
+ [`docs/orion.example.json`](docs/orion.example.json). Provider keys may be literal local values or
71
+ environment references such as `$HUOSHAN_API_KEY`; never commit credentials.
124
72
 
125
- ## Configuration
73
+ Minimal OpenAI-compatible example:
126
74
 
127
75
  ```json
128
76
  {
77
+ "schemaVersion": 1,
129
78
  "providers": [
130
79
  {
131
80
  "id": "my-provider",
132
- "baseUrl": "https://api.example.com/v1",
133
- "apiKey": "$MY_API_KEY",
81
+ "displayName": "My Provider",
82
+ "baseUrl": "https://example.invalid/v1",
83
+ "apiKey": "$MY_PROVIDER_API_KEY",
134
84
  "protocol": "openai-completions"
135
85
  }
136
86
  ],
137
87
  "models": [
138
88
  {
139
89
  "id": "my-model",
90
+ "displayName": "My Model",
140
91
  "provider": "my-provider",
141
92
  "model": "model-name",
142
93
  "contextWindow": 200000,
143
- "maxOutputTokens": 64000,
144
- "reasoningCapability": {
145
- "kind": "effort-level",
146
- "supportedLevels": ["low", "medium", "high"],
147
- "defaultLevel": "medium",
148
- "adapter": "openai-chat-reasoning-effort",
149
- "source": "config"
150
- }
94
+ "maxOutputTokens": 8192
151
95
  }
152
96
  ],
153
97
  "defaultModel": "my-model",
154
- "defaultEffort": "auto",
155
- "toolConfirmation": "deny",
156
- "subagents": { "mode": "auto", "maxParallel": 3 }
98
+ "toolConfirmation": "allow"
157
99
  }
158
100
  ```
159
101
 
160
- Configuration: `~/.orion-code/orion.json` | Priority: `CLI flags > config > env vars > defaults`
102
+ Run `orion doctor` after configuration. Diagnostics never need to print the secret itself.
161
103
 
162
- `reasoningCapability` is an explicit provider contract, not a model-name guess. Only add it
163
- after the configured endpoint is known to accept the selected adapter and levels. A legacy
164
- `"reasoning": true` flag does not enable a wire parameter. With no explicit capability Orion
165
- keeps `/effort` unavailable and sends no reasoning-effort override. Project defaults can be set
166
- with `projects["<absolute path>"].defaultEffort`; session overrides are changed with `/effort`.
104
+ ## Use Orion
167
105
 
168
- The renderer is a runtime choice rather than a persisted setting: `orion` starts
169
- the TUI, while `--ui terminal` selects the technical renderer.
106
+ ```bash
107
+ orion # default product TUI
108
+ orion --ui terminal # technical terminal fallback
109
+ orion -p "explain this repo" # experimental non-interactive mode
110
+ orion -p --output-format json "run the focused tests"
111
+ orion diff
112
+ orion commit
113
+ ```
170
114
 
171
- ### Interactive and scoped tool permissions (`allowedTools`)
115
+ Experimental non-interactive print mode is available through `orion -p`; keep it out of
116
+ interactive workflows that require confirmations or live steering.
172
117
 
173
- When a tool needs confirmation, the TUI, Ink UI, and technical Terminal renderer wait for one
174
- of four explicit decisions: allow once, always allow this tool in the current project, always
175
- allow it on this machine for every project, or deny. Persistent approvals are written before
176
- the waiting tool continues. A write failure denies the call.
118
+ ### BUILD, PLAN, AUTO
177
119
 
178
- Machine-wide rules live at root `allowedTools`; project rules live under
179
- `projects["<absolute path>"].allowedTools`. Both sets are evaluated, and the most restrictive
180
- matching effect wins (`deny` > `ask` > `allow`). Choosing project or machine scope is explicit
181
- durable consent for that tool, so a durable `allow` skips repeated prompts for external tools, file
182
- edits, and shell operations that are not hard-blocked by command safety policy. AUTO skips all
183
- interactive prompts and authorizes every invocation after hard tool-policy and explicit `deny`
184
- checks. PLAN exposes the same registry as BUILD and inherits the independently selected permission
185
- policy, including durable project or machine grants.
120
+ Press `Shift+Tab` to cycle `BUILD PLAN AUTO`. The status bar and input border show the current
121
+ mode. Mode controls workflow behavior; Authority, approval, containment, and sandbox policy remain
122
+ independent.
186
123
 
187
- ```json
188
- {
189
- "allowedTools": ["allow:web_fetch"],
190
- "projects": {
191
- "/Users/me/work/api": {
192
- "allowedTools": [
193
- "exec_command(git status*)",
194
- "exec_command(npm test*)",
195
- "ask:exec_command(git push*)",
196
- "deny:read_file(*.env)"
197
- ]
198
- }
199
- }
200
- }
201
- ```
124
+ - **BUILD** is normal collaborative implementation.
125
+ - **PLAN** explores with the same available tool universe, commits a decision-complete PlanReceipt,
126
+ exits automatically, restores BUILD/AUTO, and starts implementation in a separate logical turn.
127
+ - **AUTO** removes interactive approval prompts within the configured Authority; hard policy and
128
+ sandbox boundaries still fail closed.
202
129
 
203
- - Grammar: `[allow|ask|deny:]tool[(subject glob)]`; `*` matches any run of characters,
204
- `?` a single one, and `*` as the tool name matches every tool.
205
- - The subject is the call's `command` / `file_path` / `path` / `url` / `pattern` / `query`
206
- argument, whichever comes first.
207
- - Conflicts resolve most-restrictive-first (`deny` > `ask` > `allow`), independent of order.
208
- - Interactive persistent choices add an exact tool rule such as `allow:exec_command`; edit
209
- `~/.orion-code/orion.json` to audit or revoke a stored rule. `/permissions show` reports the
210
- active machine-wide and project rule counts.
211
- - `allow` skips an interactive confirmation. It never overrides a tool's own `deny`, an explicit
212
- allowlist `deny`, workspace containment, sandbox restrictions, or hard command safety policy.
213
- - Malformed entries are ignored and listed by `/config` rather than silently applied.
130
+ Start a task-scoped plan with:
214
131
 
215
- ### Shell execution sandbox (`sandbox`)
216
-
217
- `exec_command` can run inside an OS-level sandbox. This is a **security POC**: the
218
- backend is probed at runtime and a configured-but-unusable sandbox **fails closed**
219
- (refuses to run) rather than silently degrading to an unsandboxed execution.
220
-
221
- ```json
222
- {
223
- "sandbox": {
224
- "profile": "none",
225
- "backend": "auto",
226
- "allowNetwork": false,
227
- "writableRoots": [],
228
- "image": "alpine:latest"
229
- }
230
- }
132
+ ```text
133
+ /plan refactor the storage boundary and verify crash recovery
231
134
  ```
232
135
 
233
- - **Ownership** `sandbox` lives in the global config (`~/.orion-code/orion.json`)
234
- and can be overridden per project under `projects["<path>"].sandbox`. Project
235
- keys win individually; absent keys inherit the global value.
236
- - **`profile`** — `none` (default, no isolation, identical to the legacy `sh -c`),
237
- `read-only` (no writes anywhere, no network), or `workspace-write` (writes
238
- confined to the workspace + temp dirs, network still blocked unless
239
- `allowNetwork: true`). An unknown value (e.g. written by a newer Orion) is a
240
- hard failure, never a downgrade to `none`.
241
- - **`backend`** — `auto` (default, picks the first usable backend), `seatbelt`
242
- (macOS `sandbox-exec`), `bubblewrap` (Linux `bwrap`), or `docker`. Each backend
243
- is validated with a real execution probe; `which`-based guessing is never used.
244
- - **`image`** — required only for `docker`; names the container image to run in.
245
- - **`writableRoots`** — extra host roots the `workspace-write` profile may write
246
- to (in addition to the cwd and temp). Non-string / empty entries are dropped.
247
- - **Migration / rollback** — adding the `sandbox` key is backward compatible: the
248
- default `profile: "none"` reproduces the previous behaviour exactly. Removing the
249
- key (or reverting to a pre-sandbox version) is a safe rollback; older Orion
250
- simply ignores the unknown field. No secrets are stored, so no redaction is
251
- required.
252
- - **Known limitations** — `seatbelt` cannot be nested inside another sandbox (e.g.
253
- when Orion itself runs inside an app sandbox); `docker` runs the command in a
254
- separate process tree and only constrains what is bind-mounted (the image rootfs
255
- is made read-only via `--read-only`); none of the backends constrain CPU/memory.
256
-
257
- ## Interactive Commands
258
-
259
- | Command | Description |
260
- | ---------------------- | --------------------------------------------------------------------------- |
261
- | `/help` | Show help |
262
- | `/goal` | Create, inspect, pause, resume, replace, budget, or exit a persistent goal |
263
- | `/plan [task]` | Plan with normal tool access, save it, then restore the previous agent mode |
264
- | `/status` | System status |
265
- | `/model` | View or switch models |
266
- | `/effort` | View or change supported reasoning effort |
267
- | `/permissions` | View or change tool confirmation and edit policy |
268
- | `/config` | Show configuration |
269
- | `/usage` | Token usage and cost |
270
- | `/compact [N] [focus]` | Trigger context compact with optional retained-message threshold and focus |
271
- | `/session` | List, inspect, or rename sessions |
272
- | `/resume` | Resume last session |
273
- | `/memory` | Memory status, reference validation, and semantic reindexing |
274
- | `/skills` | List loaded skills |
275
- | `/mcp` | MCP server status |
276
- | `/doctor` | Run diagnostics |
277
- | `/diff` | Workspace diff |
278
- | `/commit-plan` | Create a read-only commit plan |
279
- | `/clear` | Clear screen |
280
- | `/context clear --yes` | Clear in-memory model context; preserve the saved session |
281
- | `/exit` | Exit |
282
-
283
- Project-level compact guidance can be set in
284
- `projects["<absolute path>"].compactInstructions` in `~/.orion-code/orion.json`. It applies to
285
- manual and automatic compact, is bounded and redacted before model use, and cannot override tool
286
- protocol, safety constraints, acceptance criteria, evidence, failures, or pending work.
287
-
288
- Agent modes are TUI actions: use `Shift+Tab` to cycle `BUILD → PLAN → AUTO`; `/mode` and `/perm`
289
- are not registered commands. The remaining deprecated spellings keep their v0.3.0 compatibility
290
- window: `/target` → `/goal`, `/commit` → `/commit-plan`, `/sessions` → `/session list`,
291
- `/session-rename` → `/session rename`, `/context-clear` and `/clear-history` → `/context clear`,
292
- `/models` → `/model`, `/loop-stats` → `/usage loop`, `/checkpoint` → `/rewind`, `/cost` → `/usage`,
293
- `/agents` → `/subagents`, `/task` → `/goal`, and `/run` or `/chat` → plain text.
294
-
295
- TUI is the public product interface and the default launch path. `terminal-ui`
296
- is maintained as a technical diagnostics/compatibility renderer, not a second
297
- public product. Ink is deprecated, receives no new product features, and is
298
- scheduled for removal in v0.2.0.
299
-
300
- ### Task-scoped Plan mode
301
-
302
- Use `/plan` to arm planning for the next message, `/plan <task>` to start immediately, or press
303
- `Shift+Tab` to cycle `BUILD → PLAN → AUTO → BUILD` while preserving the draft. Orion allows
304
- the complete tool registry in every Agent mode. PLAN never blocks a call solely because of the
305
- mode: writes, commands, and external tools use the current `/permissions` policy and reusable
306
- project/machine grants. Explicit denies, workspace containment, sandboxing, and hard safety rules
307
- remain enforced. When the plan is decision-complete, the model calls `exit_plan_mode` once;
308
- Orion saves it, exits Plan, and starts implementation in a separate logical request. Base modes are
309
- changed only with `Shift+Tab`; the retired `/mode` and `/perm` commands are not compatibility entry
310
- points. Auto runs without permission or clarification prompts, while hard safety policies and
311
- explicit user boundaries remain enforced.
312
-
313
- See [the Plan-mode lifecycle contract](docs/plan/plan-mode-contract.md).
314
- Authorization precedence, AUTO network behavior, and audit provenance are defined in the
315
- [Agent Mode and Tool Permission Contract](docs/architecture/agent-mode-permission-contract.md).
316
-
317
- ### Persistent Goal safety contract
318
-
319
- `/goal <objective>` creates one active Goal for the current session. Automatic
320
- continuations are typed runtime requests: they are not echoed or stored as fake
321
- user messages. After a process restart or `/resume`, an active Goal is restored
322
- in a visible paused state; run `/target resume` to continue deliberately.
323
-
324
- The model may request `complete` or `blocked`, but cannot set either terminal
325
- state directly. Orion records runtime/tool evidence and audits every success
326
- criterion. Missing, failed, unmapped, wrong-kind, expired, or stale evidence keeps the
327
- Goal open. Criteria that require human acceptance can only receive trusted
328
- `user` evidence from `/goal confirm <criterion-id>`; model tools cannot mint
329
- that confirmation. v0.1.2 remains single-session and single-active-Goal; it does not
330
- promise multi-Goal scheduling or unattended background execution.
331
-
332
- After a completion audit passes, Orion automatically clears the session's active Goal binding,
333
- returns the TUI to its current BUILD/PLAN/AUTO base mode, and retains the terminal Goal sidecar as
334
- the durable completion receipt. A trailing lifecycle clause such as `测试一轮,然后退出目标模式`
335
- is separated from the auditable work: Orion verifies `测试一轮`, then performs the same runtime-owned
336
- automatic exit after the audit passes. It is not treated as an impossible success criterion. Use
337
- `/goal exit` to abandon before completion: it aborts the active
338
- turn, rejects pending permission requests, and removes the persisted Goal. Explicit natural-language
339
- requests such as `exit goal mode` or `退出 goal 模式` route through the same deterministic runtime
340
- boundary. Session binding and Goal-sidecar cleanup fail closed as one lifecycle operation; Orion
341
- never reports a successful exit after only one persisted object changed. Rejected completion requests
342
- cannot be retried in the same turn until new runtime evidence exists, and autonomous continuation
343
- turns have stricter model/tool budgets than fresh user turns. Two consecutive blocked autonomous
344
- continuations pause for review instead of spending the full continuation window. The old `/goal clear --yes` and
345
- `/target clear --yes` syntax is intentionally unsupported in v0.1.6.
346
-
347
- ## Migration from OpenHorse
136
+ There is no `exit_plan_mode` tool and no `/mode` command.
348
137
 
349
- ```bash
350
- # Preview only (default)
351
- orion migrate openhorse [--include-env]
138
+ ### Durable Goal mode
352
139
 
353
- # Execute after reviewing the preview
354
- orion migrate openhorse --yes [--include-env]
140
+ ```text
141
+ /goal fix the open issues, run the release gates, and stop only when evidence is complete
142
+ /goal status
143
+ /goal pause
144
+ /goal resume
145
+ /goal clear
355
146
  ```
356
147
 
357
- See the [v0.1.2 release notes](https://github.com/orion-agents/orion-code/blob/main/docs/mvp/v0.1.2.md),
358
- [Goal evidence and recovery guide](https://github.com/orion-agents/orion-code/blob/main/docs/goals/goal-evidence-and-recovery.md),
359
- and [execution plan](https://github.com/orion-agents/orion-code/blob/main/docs/archive/releases/v0.1.x/v0.1.2-execution-plan.md).
148
+ `/goal <objective>` creates the Goal. Progressing Goals continue without a fixed turn-count stop;
149
+ resource budgets, no-progress, blockers, provider failures, persistence failures, and user
150
+ interrupts remain explicit stop decisions. A passed evidence audit commits completion and exits
151
+ Goal automatically.
360
152
 
361
- ## Research-to-Evidence (v0.1.4, experimental)
153
+ `/target`, `/goal exit`, `edit`, `replace`, `confirm`, `budget`, and `clear --yes` were removed in the
154
+ v0.2.0 breaking cut.
362
155
 
363
- > **Status: experimental.** Turns the read-only `research` subagent output into a **traceable, recoverable** research→evidence loop.
156
+ ### Useful commands
364
157
 
365
- Hard guarantees (any violation is a No-Go; never published):
158
+ - `/help`, `/status`, `/doctor`, `/harness explain`
159
+ - `/tools`, `/skills`, `/skill <name>`, `/mcp`
160
+ - `/context`, `/memory`, `/usage`, `/trace`, `/last-tool`
161
+ - `/model`, `/effort`, `/permissions`, `/config`
162
+ - `/compact`, `/resume`, `/session`
163
+ - `/diff`, `/commit-plan`, `/review`, `/research`, `/security`, `/test-gen`
366
164
 
367
- - **Only specialized WebSearch / WebFetch** no generic MCP, no write/exec grant.
368
- - **SSRF / DNS-rebind / redirect / body-size / timeout** re-use the existing guards: a lexical SSRF pre-check at selection, and the full per-hop guard set delegated to the real WebFetch tool.
369
- - A **claim must bind a source** to reach `observed`; a claim with no independent verification stays `partial`/`unmet` and is never counted as verified/complete.
370
- - A **security-gate failure becomes `blocked`/`failed` with a structured reason** — never faked as a hit; provider fallback only swaps the provider, never downgrades a source status or writes a failure as a success.
371
- - Research evidence (web) and execution-verification evidence (file / test / build / file facts) are **kept distinct**; a web summary cannot stand in for execution verification.
372
- - Packet + source metadata are saved **atomically with a CAS token**; project / session / Goal scope isolation; resume only derives state and never replays external side effects; old schema versions fail closed.
165
+ Use `/help` in the installed build as the authoritative command inventory.
373
166
 
374
- Modules: `src/runtime/subagents/{research-types,research-contract,research-citation,web-research-adapter,research-renderer,research-artifact,research-quality}.ts`.
167
+ ## Runtime guarantees
375
168
 
376
- > Real-terminal (PTY) and external-state evidence are marked `not_run` in CI; local tests are not treated as release completion.
169
+ - At most one active turn per Thread; steer, follow-up, interrupt, overload, and maintenance have
170
+ typed admission outcomes.
171
+ - Every started tool Item reaches exactly one durable terminal outcome. Nested batch calls retain
172
+ parent/child invocation lineage and re-enter ToolGateway.
173
+ - A slow renderer may coalesce ephemeral deltas, but durable events are replayable and never silently
174
+ dropped.
175
+ - Compact commits only after source-history, TaskContext, projection, and pointer CAS checks.
176
+ - Legacy v0.1.9 sessions are materialized side by side; the active index switches only after event
177
+ replay and projection digests verify.
178
+ - Public exports expose the product runtime/protocol and Model/Skill/MCP configuration boundaries,
179
+ not internal service locators or a plugin SDK.
377
180
 
378
- ## Development
181
+ ## Develop and verify
379
182
 
380
183
  ```bash
381
- npm install # Install dependencies
382
- npm run build # Build
383
- npm test # Run the full Jest suite
384
- npm run lint # Lint
385
- npm run format # Format
184
+ npm run lint
185
+ npm run build
186
+ npm test -- --runInBand
187
+ npm run test:coverage -- --runInBand
188
+ npm run test:harness-confluence
189
+ npm run bench:harness:baseline
190
+ npm run bench:harness
191
+ npm run bench:harness:compare -- <baseline.json> <candidate.json>
192
+ npm run prepublishOnly
386
193
  ```
387
194
 
195
+ Release qualification additionally builds one exact tarball and installs that unchanged hash on
196
+ Node 20/22/24 for package identity, native SQLite, TUI, terminal, print, Goal, subagent, Skill, MCP,
197
+ Compact, and resume journeys. See the
198
+ [`v0.2.0 release checklist`](docs/plan/v0.2.0-release-checklist.md).
199
+
200
+ ## Security
201
+
202
+ Do not commit `.env`, `~/.orion-code`, local databases, or credentials. File access is contained to
203
+ the project boundary, symlink/non-regular path escapes fail closed, and all side effects pass the
204
+ same Authority/Policy/Approval/Sandbox chain. Report vulnerabilities privately when disclosure
205
+ could put users at risk.
206
+
388
207
  ## License
389
208
 
390
- MIT License — see [LICENSE](LICENSE) for details.
209
+ MIT — see [LICENSE](LICENSE).