@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
@@ -0,0 +1,673 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LazySkillRuntime = exports.StaleSkillLoadError = exports.SkillInvocationDeniedError = exports.StaleSkillCatalogError = exports.LazySkillRuntimeError = void 0;
4
+ const buffer_1 = require("buffer");
5
+ const canonical_1 = require("../protocol/canonical");
6
+ const bounded_lru_cache_1 = require("./bounded-lru-cache");
7
+ const types_1 = require("./types");
8
+ const MAX_CATALOG_DESCRIPTION_CHARS = 240;
9
+ const DEFAULT_DEFINITION_CACHE = Object.freeze({
10
+ maxEntries: 32,
11
+ maxBytes: 2 * 1024 * 1024,
12
+ ttlMs: 5 * 60 * 1000,
13
+ });
14
+ const DEFAULT_RESOURCE_CACHE = Object.freeze({
15
+ maxEntries: 64,
16
+ maxBytes: 8 * 1024 * 1024,
17
+ ttlMs: 5 * 60 * 1000,
18
+ });
19
+ class LazySkillRuntimeError extends Error {
20
+ constructor(message) {
21
+ super(message);
22
+ this.code = 'ORION_LAZY_SKILL_RUNTIME_ERROR';
23
+ this.name = 'LazySkillRuntimeError';
24
+ }
25
+ }
26
+ exports.LazySkillRuntimeError = LazySkillRuntimeError;
27
+ class StaleSkillCatalogError extends LazySkillRuntimeError {
28
+ constructor(providerId) {
29
+ super(`Skill catalog is stale for provider ${providerId}; observe the provider again.`);
30
+ this.code = 'ORION_STALE_SKILL_CATALOG';
31
+ this.name = 'StaleSkillCatalogError';
32
+ }
33
+ }
34
+ exports.StaleSkillCatalogError = StaleSkillCatalogError;
35
+ class SkillInvocationDeniedError extends LazySkillRuntimeError {
36
+ constructor(skillId, actor) {
37
+ super(`Skill ${skillId} is not invocable by ${actor}.`);
38
+ this.code = 'ORION_SKILL_INVOCATION_DENIED';
39
+ this.name = 'SkillInvocationDeniedError';
40
+ }
41
+ }
42
+ exports.SkillInvocationDeniedError = SkillInvocationDeniedError;
43
+ class StaleSkillLoadError extends LazySkillRuntimeError {
44
+ constructor(providerId, skillId) {
45
+ super(`Skill ${skillId} changed while loading from provider ${providerId}.`);
46
+ this.code = 'ORION_STALE_SKILL_LOAD';
47
+ this.name = 'StaleSkillLoadError';
48
+ }
49
+ }
50
+ exports.StaleSkillLoadError = StaleSkillLoadError;
51
+ /**
52
+ * Descriptor-first runtime for Skills.
53
+ *
54
+ * Observation exposes only bounded descriptors. Definition and resource IO are
55
+ * explicit, authority-scoped operations with digest-bound caches and receipts.
56
+ */
57
+ class LazySkillRuntime {
58
+ constructor(options) {
59
+ this.version = types_1.LAZY_SKILL_RUNTIME_VERSION;
60
+ this.providerStates = new Map();
61
+ this.definitionFlights = new Map();
62
+ this.resourceFlights = new Map();
63
+ this.lifecycleController = new AbortController();
64
+ this.subscriptions = [];
65
+ this.disposed = false;
66
+ const providerMap = new Map();
67
+ for (const provider of options.providers) {
68
+ const providerId = validateIdentifier(provider.id, 'Skill provider id');
69
+ if (providerMap.has(providerId)) {
70
+ throw new LazySkillRuntimeError(`Duplicate Skill provider id: ${providerId}`);
71
+ }
72
+ providerMap.set(providerId, provider);
73
+ this.providerStates.set(providerId, {
74
+ generation: 0,
75
+ observed: false,
76
+ complete: false,
77
+ descriptorDigests: new Map(),
78
+ });
79
+ }
80
+ this.providers = providerMap;
81
+ const now = options.now ?? Date.now;
82
+ this.definitionCache = new bounded_lru_cache_1.BoundedLruCache({
83
+ ...DEFAULT_DEFINITION_CACHE,
84
+ ...options.definitionCache,
85
+ sizeOf: definition => buffer_1.Buffer.byteLength(JSON.stringify(definition), 'utf8'),
86
+ now,
87
+ });
88
+ this.resourceCache = new bounded_lru_cache_1.BoundedLruCache({
89
+ ...DEFAULT_RESOURCE_CACHE,
90
+ ...options.resourceCache,
91
+ sizeOf: resource => resourceBytes(resource),
92
+ now,
93
+ });
94
+ if (options.signal) {
95
+ const abortFromParent = () => {
96
+ if (!this.lifecycleController.signal.aborted) {
97
+ this.lifecycleController.abort(options.signal?.reason);
98
+ }
99
+ };
100
+ options.signal.addEventListener('abort', abortFromParent, { once: true });
101
+ this.detachParentSignal = () => options.signal?.removeEventListener('abort', abortFromParent);
102
+ if (options.signal.aborted)
103
+ abortFromParent();
104
+ }
105
+ for (const provider of this.providers.values()) {
106
+ if (!provider.subscribe)
107
+ continue;
108
+ const subscription = provider.subscribe(invalidation => this.handleInvalidation(provider.id, invalidation), this.lifecycleController.signal);
109
+ this.subscriptions.push(subscription);
110
+ }
111
+ }
112
+ /** Observe provider descriptors and compose the deterministic scope overlay. */
113
+ async observe(scope, signal) {
114
+ this.assertActive();
115
+ const normalizedScope = normalizeScope(scope);
116
+ const providerIds = normalizedScope.providerIds
117
+ ? new Set(normalizedScope.providerIds)
118
+ : undefined;
119
+ const selectedProviders = [...this.providers.values()]
120
+ .filter(provider => !providerIds || providerIds.has(provider.id))
121
+ .sort((left, right) => left.id.localeCompare(right.id));
122
+ const linked = linkSignals(this.lifecycleController.signal, signal);
123
+ try {
124
+ throwIfAborted(linked.signal);
125
+ const observations = await Promise.all(selectedProviders.map(async (provider) => {
126
+ const observation = await provider.list(normalizedScope, linked.signal);
127
+ return normalizeObservation(provider.id, observation, normalizedScope.sourceScopeOrder);
128
+ }));
129
+ throwIfAborted(linked.signal);
130
+ for (const observation of observations)
131
+ this.reconcileObservation(observation);
132
+ return composeCatalog(normalizedScope, observations);
133
+ }
134
+ finally {
135
+ linked.dispose();
136
+ }
137
+ }
138
+ /** Load one selected definition and issue an authority-intersection receipt. */
139
+ async getDefinition(request) {
140
+ this.assertActive();
141
+ const descriptor = request.catalog.descriptors.find(item => item.id === request.skillId);
142
+ if (!descriptor) {
143
+ throw new LazySkillRuntimeError(`Skill ${request.skillId} is not present in catalog ${request.catalog.digest}.`);
144
+ }
145
+ this.assertCatalogCurrent(request.catalog, descriptor.providerId);
146
+ if ((request.actor === 'model' && !descriptor.modelInvocable) ||
147
+ (request.actor === 'user' && !descriptor.userInvocable)) {
148
+ throw new SkillInvocationDeniedError(descriptor.id, request.actor);
149
+ }
150
+ const receipt = createAuthorityReceipt(request, descriptor);
151
+ const definition = await this.loadDefinition(descriptor, request.catalog, request.signal);
152
+ return deepFreeze({ definition, receipt });
153
+ }
154
+ /** Read one manifest-declared resource after its definition has been selected. */
155
+ async getResource(request) {
156
+ this.assertActive();
157
+ const definition = request.selection.definition;
158
+ assertSelectionIdentity(request.selection);
159
+ const path = normalizeResourcePath(request.path);
160
+ const resourceDescriptor = definition.resourceManifest.find(resource => resource.path === path);
161
+ if (!resourceDescriptor) {
162
+ throw new LazySkillRuntimeError(`Resource ${path} is not declared by Skill ${definition.id}.`);
163
+ }
164
+ const provider = this.providers.get(definition.providerId);
165
+ if (!provider) {
166
+ throw new LazySkillRuntimeError(`Unknown Skill provider: ${definition.providerId}`);
167
+ }
168
+ const state = this.requireObservedState(definition.providerId);
169
+ if (state.descriptorDigests.get(definition.id) !== definition.digest) {
170
+ throw new StaleSkillLoadError(definition.providerId, definition.id);
171
+ }
172
+ const key = resourceCacheKey(definition, resourceDescriptor);
173
+ if (state.complete) {
174
+ const cached = this.resourceCache.get(key);
175
+ if (cached)
176
+ return cloneResource(cached);
177
+ }
178
+ let flight = this.resourceFlights.get(key);
179
+ if (!flight) {
180
+ flight = this.startResourceLoad(provider, definition, resourceDescriptor, state);
181
+ this.resourceFlights.set(key, flight);
182
+ void flight.then(() => this.resourceFlights.delete(key), () => this.resourceFlights.delete(key));
183
+ }
184
+ const resource = await waitForPromise(flight, request.signal);
185
+ return cloneResource(resource);
186
+ }
187
+ /** Watchers call this indirectly; tests and explicit refresh paths may call it directly. */
188
+ invalidateProvider(providerId, reason = 'provider_invalidated') {
189
+ if (!this.providers.has(providerId)) {
190
+ throw new LazySkillRuntimeError(`Unknown Skill provider: ${providerId}`);
191
+ }
192
+ const previous = this.providerStates.get(providerId);
193
+ this.providerStates.set(providerId, {
194
+ generation: (previous?.generation ?? 0) + 1,
195
+ observed: false,
196
+ complete: false,
197
+ descriptorDigests: new Map(),
198
+ });
199
+ this.deleteProviderCacheEntries(providerId);
200
+ void reason;
201
+ }
202
+ stats() {
203
+ return Object.freeze({
204
+ definitionCache: this.definitionCache.stats(),
205
+ resourceCache: this.resourceCache.stats(),
206
+ definitionLoadsInFlight: this.definitionFlights.size,
207
+ resourceLoadsInFlight: this.resourceFlights.size,
208
+ providerGenerations: Object.freeze(Object.fromEntries([...this.providerStates.entries()]
209
+ .sort(([left], [right]) => left.localeCompare(right))
210
+ .map(([providerId, state]) => [providerId, state.generation]))),
211
+ });
212
+ }
213
+ async dispose() {
214
+ if (this.disposed)
215
+ return;
216
+ this.disposed = true;
217
+ this.detachParentSignal?.();
218
+ if (!this.lifecycleController.signal.aborted) {
219
+ this.lifecycleController.abort(new Error('Lazy Skill runtime disposed.'));
220
+ }
221
+ const subscriptions = this.subscriptions.splice(0).reverse();
222
+ await Promise.allSettled(subscriptions.map(subscription => subscription.dispose()));
223
+ this.definitionCache.clear();
224
+ this.resourceCache.clear();
225
+ this.providerStates.clear();
226
+ }
227
+ async loadDefinition(descriptor, catalog, signal) {
228
+ const provider = this.providers.get(descriptor.providerId);
229
+ if (!provider)
230
+ throw new LazySkillRuntimeError(`Unknown Skill provider: ${descriptor.providerId}`);
231
+ const state = this.requireObservedState(descriptor.providerId);
232
+ const key = definitionCacheKey(descriptor);
233
+ if (state.complete) {
234
+ const cached = this.definitionCache.get(key);
235
+ if (cached)
236
+ return cached;
237
+ }
238
+ let flight = this.definitionFlights.get(key);
239
+ if (!flight) {
240
+ flight = this.startDefinitionLoad(provider, descriptor, catalog, state);
241
+ this.definitionFlights.set(key, flight);
242
+ void flight.then(() => this.definitionFlights.delete(key), () => this.definitionFlights.delete(key));
243
+ }
244
+ return waitForPromise(flight, signal);
245
+ }
246
+ async startDefinitionLoad(provider, descriptor, catalog, state) {
247
+ const loaded = await provider.get(descriptor.id, this.lifecycleController.signal);
248
+ if (!loaded) {
249
+ throw new LazySkillRuntimeError(`Skill ${descriptor.id} was not found by ${provider.id}.`);
250
+ }
251
+ const definition = normalizeDefinition(descriptor, loaded);
252
+ const current = this.providerStates.get(provider.id);
253
+ if (!current || current.generation !== state.generation || !current.observed) {
254
+ throw new StaleSkillLoadError(provider.id, descriptor.id);
255
+ }
256
+ this.assertCatalogCurrent(catalog, provider.id);
257
+ if (current.complete)
258
+ this.definitionCache.set(definitionCacheKey(descriptor), definition);
259
+ return definition;
260
+ }
261
+ async startResourceLoad(provider, definition, resourceDescriptor, state) {
262
+ const loaded = await provider.getResource(definition.id, resourceDescriptor.path, this.lifecycleController.signal);
263
+ const resource = normalizeResource(definition, resourceDescriptor, loaded);
264
+ const current = this.providerStates.get(provider.id);
265
+ if (!current || current.generation !== state.generation || !current.observed) {
266
+ throw new StaleSkillLoadError(provider.id, definition.id);
267
+ }
268
+ if (current.complete)
269
+ this.resourceCache.set(resourceCacheKey(definition, resourceDescriptor), resource);
270
+ return resource;
271
+ }
272
+ reconcileObservation(observation) {
273
+ const previous = this.providerStates.get(observation.providerId);
274
+ const stableMatch = observation.complete &&
275
+ previous?.observed === true &&
276
+ previous.complete &&
277
+ previous.digest === observation.digest;
278
+ if (stableMatch)
279
+ return;
280
+ this.deleteProviderCacheEntries(observation.providerId);
281
+ this.providerStates.set(observation.providerId, {
282
+ generation: (previous?.generation ?? 0) + 1,
283
+ observed: true,
284
+ complete: observation.complete,
285
+ digest: observation.digest,
286
+ descriptorDigests: new Map(observation.descriptors.map(descriptor => [descriptor.id, descriptor.digest])),
287
+ });
288
+ }
289
+ assertCatalogCurrent(catalog, providerId) {
290
+ const observation = catalog.observations.find(item => item.providerId === providerId);
291
+ const state = this.providerStates.get(providerId);
292
+ if (!observation || !state?.observed || state.digest !== observation.digest) {
293
+ throw new StaleSkillCatalogError(providerId);
294
+ }
295
+ }
296
+ requireObservedState(providerId) {
297
+ const state = this.providerStates.get(providerId);
298
+ if (!state?.observed)
299
+ throw new StaleSkillCatalogError(providerId);
300
+ return state;
301
+ }
302
+ handleInvalidation(providerId, invalidation) {
303
+ if (invalidation.providerId !== providerId) {
304
+ throw new LazySkillRuntimeError(`Provider ${providerId} emitted invalidation for ${invalidation.providerId}.`);
305
+ }
306
+ this.invalidateProvider(providerId, invalidation.reason);
307
+ }
308
+ deleteProviderCacheEntries(providerId) {
309
+ const prefix = `${providerId}\u0000`;
310
+ this.definitionCache.deleteWhere(key => key.startsWith(prefix));
311
+ this.resourceCache.deleteWhere(key => key.startsWith(prefix));
312
+ }
313
+ assertActive() {
314
+ if (this.disposed || this.lifecycleController.signal.aborted) {
315
+ throw new LazySkillRuntimeError('Lazy Skill runtime is disposed.');
316
+ }
317
+ }
318
+ }
319
+ exports.LazySkillRuntime = LazySkillRuntime;
320
+ function composeCatalog(scope, observations) {
321
+ const byName = new Map();
322
+ const descriptorIds = new Set();
323
+ for (const observation of observations) {
324
+ for (const descriptor of observation.descriptors) {
325
+ const scopeRank = scope.sourceScopeOrder.indexOf(descriptor.sourceScope);
326
+ if (scopeRank < 0)
327
+ continue;
328
+ const nameKey = descriptor.name.toLowerCase();
329
+ const candidates = byName.get(nameKey) ?? [];
330
+ candidates.push({ descriptor, scopeRank });
331
+ byName.set(nameKey, candidates);
332
+ }
333
+ }
334
+ const descriptors = [];
335
+ const shadowDiagnostics = [];
336
+ for (const candidates of byName.values()) {
337
+ candidates.sort(compareCandidates);
338
+ const selected = candidates[0].descriptor;
339
+ if (descriptorIds.has(selected.id)) {
340
+ throw new LazySkillRuntimeError(`Duplicate selected Skill id: ${selected.id}`);
341
+ }
342
+ descriptorIds.add(selected.id);
343
+ descriptors.push(selected);
344
+ for (const shadowed of candidates.slice(1)) {
345
+ shadowDiagnostics.push(deepFreeze({
346
+ name: selected.name,
347
+ selected: descriptorIdentity(selected),
348
+ shadowed: descriptorIdentity(shadowed.descriptor),
349
+ reason: selected.sourceScope === shadowed.descriptor.sourceScope
350
+ ? 'same source scope; deterministic provider/id tie-break'
351
+ : `${selected.sourceScope} source scope outranks ${shadowed.descriptor.sourceScope}`,
352
+ }));
353
+ }
354
+ }
355
+ descriptors.sort((left, right) => left.name.localeCompare(right.name) || left.id.localeCompare(right.id));
356
+ shadowDiagnostics.sort((left, right) => left.name.localeCompare(right.name) ||
357
+ left.shadowed.providerId.localeCompare(right.shadowed.providerId) ||
358
+ left.shadowed.id.localeCompare(right.shadowed.id));
359
+ const observationReceipts = observations
360
+ .map(observation => deepFreeze({
361
+ providerId: observation.providerId,
362
+ digest: observation.digest,
363
+ complete: observation.complete,
364
+ descriptorCount: observation.descriptors.length,
365
+ }))
366
+ .sort((left, right) => left.providerId.localeCompare(right.providerId));
367
+ const digest = (0, canonical_1.digestRuntimeValue)({
368
+ version: types_1.LAZY_SKILL_RUNTIME_VERSION,
369
+ sourceScopeOrder: scope.sourceScopeOrder,
370
+ descriptors,
371
+ observations: observationReceipts,
372
+ shadowDiagnostics,
373
+ });
374
+ return deepFreeze({
375
+ version: types_1.LAZY_SKILL_RUNTIME_VERSION,
376
+ scopeId: scope.id,
377
+ sourceScopeOrder: scope.sourceScopeOrder,
378
+ descriptors,
379
+ observations: observationReceipts,
380
+ shadowDiagnostics,
381
+ digest,
382
+ });
383
+ }
384
+ function compareCandidates(left, right) {
385
+ return (left.scopeRank - right.scopeRank ||
386
+ left.descriptor.providerId.localeCompare(right.descriptor.providerId) ||
387
+ left.descriptor.id.localeCompare(right.descriptor.id));
388
+ }
389
+ function descriptorIdentity(descriptor) {
390
+ return Object.freeze({
391
+ id: descriptor.id,
392
+ providerId: descriptor.providerId,
393
+ sourceScope: descriptor.sourceScope,
394
+ });
395
+ }
396
+ function normalizeScope(scope) {
397
+ const id = validateIdentifier(scope.id, 'Skill scope id');
398
+ const sourceScopeOrder = [...(scope.sourceScopeOrder ?? types_1.DEFAULT_SKILL_SOURCE_SCOPE_ORDER)];
399
+ if (sourceScopeOrder.length === 0 || new Set(sourceScopeOrder).size !== sourceScopeOrder.length) {
400
+ throw new LazySkillRuntimeError('Skill source scope order must be non-empty and unique.');
401
+ }
402
+ const providerIds = scope.providerIds
403
+ ? Object.freeze([
404
+ ...new Set(scope.providerIds.map(providerId => validateIdentifier(providerId, 'Provider id'))),
405
+ ].sort())
406
+ : undefined;
407
+ return {
408
+ id,
409
+ sourceScopeOrder: Object.freeze(sourceScopeOrder),
410
+ providerIds,
411
+ };
412
+ }
413
+ function normalizeObservation(providerId, observation, sourceScopeOrder) {
414
+ if (observation.version !== types_1.LAZY_SKILL_RUNTIME_VERSION) {
415
+ throw new LazySkillRuntimeError(`Provider ${providerId} returned unsupported observation version.`);
416
+ }
417
+ if (observation.providerId !== providerId) {
418
+ throw new LazySkillRuntimeError(`Provider ${providerId} returned observation for ${observation.providerId}.`);
419
+ }
420
+ const digest = validateDigest(observation.digest, `Provider ${providerId} observation digest`);
421
+ const allowedScopes = new Set(sourceScopeOrder);
422
+ const descriptors = observation.descriptors
423
+ .map(descriptor => normalizeDescriptor(providerId, descriptor))
424
+ .filter(descriptor => allowedScopes.has(descriptor.sourceScope));
425
+ return deepFreeze({
426
+ version: types_1.LAZY_SKILL_RUNTIME_VERSION,
427
+ providerId,
428
+ digest,
429
+ complete: observation.complete === true,
430
+ descriptors,
431
+ });
432
+ }
433
+ function normalizeDescriptor(providerId, descriptor) {
434
+ if (descriptor.providerId !== providerId) {
435
+ throw new LazySkillRuntimeError(`Skill ${descriptor.id} belongs to ${descriptor.providerId}, not provider ${providerId}.`);
436
+ }
437
+ if (!types_1.DEFAULT_SKILL_SOURCE_SCOPE_ORDER.includes(descriptor.sourceScope)) {
438
+ throw new LazySkillRuntimeError(`Skill ${descriptor.id} has invalid source scope.`);
439
+ }
440
+ return deepFreeze({
441
+ id: validateIdentifier(descriptor.id, 'Skill id'),
442
+ name: validateIdentifier(descriptor.name, 'Skill name'),
443
+ description: descriptor.description.trim().slice(0, MAX_CATALOG_DESCRIPTION_CHARS),
444
+ providerId,
445
+ sourceScope: descriptor.sourceScope,
446
+ modelInvocable: descriptor.modelInvocable === true,
447
+ userInvocable: descriptor.userInvocable === true,
448
+ requestedCapabilities: normalizeCapabilities(descriptor.requestedCapabilities),
449
+ digest: validateDigest(descriptor.digest, `Skill ${descriptor.id} digest`),
450
+ });
451
+ }
452
+ function normalizeDefinition(descriptor, definition) {
453
+ if (definition.id !== descriptor.id ||
454
+ definition.providerId !== descriptor.providerId ||
455
+ definition.digest !== descriptor.digest) {
456
+ throw new LazySkillRuntimeError(`Skill definition identity or digest drifted: ${descriptor.id}`);
457
+ }
458
+ if (typeof definition.body !== 'string') {
459
+ throw new LazySkillRuntimeError(`Skill ${descriptor.id} definition body must be text.`);
460
+ }
461
+ const resourcePaths = new Set();
462
+ const resourceManifest = definition.resourceManifest
463
+ .map(resource => normalizeResourceDescriptor(descriptor.id, resource))
464
+ .sort((left, right) => left.path.localeCompare(right.path));
465
+ for (const resource of resourceManifest) {
466
+ if (resourcePaths.has(resource.path)) {
467
+ throw new LazySkillRuntimeError(`Skill ${descriptor.id} declares resource ${resource.path} more than once.`);
468
+ }
469
+ resourcePaths.add(resource.path);
470
+ }
471
+ return deepFreeze({
472
+ ...descriptor,
473
+ body: definition.body,
474
+ resourceManifest,
475
+ });
476
+ }
477
+ function normalizeResourceDescriptor(skillId, descriptor) {
478
+ if (!Number.isSafeInteger(descriptor.bytes) || descriptor.bytes < 0) {
479
+ throw new LazySkillRuntimeError(`Skill ${skillId} resource bytes must be non-negative.`);
480
+ }
481
+ return deepFreeze({
482
+ path: normalizeResourcePath(descriptor.path),
483
+ digest: validateDigest(descriptor.digest, `Skill ${skillId} resource digest`),
484
+ bytes: descriptor.bytes,
485
+ ...(descriptor.mediaType?.trim() ? { mediaType: descriptor.mediaType.trim() } : {}),
486
+ });
487
+ }
488
+ function normalizeResource(definition, descriptor, resource) {
489
+ if (resource.skillId !== definition.id ||
490
+ normalizeResourcePath(resource.path) !== descriptor.path ||
491
+ resource.digest !== descriptor.digest) {
492
+ throw new LazySkillRuntimeError(`Skill resource identity or digest drifted: ${definition.id}/${descriptor.path}`);
493
+ }
494
+ const content = typeof resource.content === 'string'
495
+ ? resource.content
496
+ : new Uint8Array(resource.content.buffer, resource.content.byteOffset, resource.content.byteLength).slice();
497
+ const actualBytes = typeof content === 'string' ? buffer_1.Buffer.byteLength(content, 'utf8') : content.byteLength;
498
+ if (actualBytes !== descriptor.bytes) {
499
+ throw new LazySkillRuntimeError(`Skill resource byte count drifted: ${definition.id}/${descriptor.path}`);
500
+ }
501
+ if (descriptor.mediaType && resource.mediaType && descriptor.mediaType !== resource.mediaType) {
502
+ throw new LazySkillRuntimeError(`Skill resource media type drifted: ${definition.id}/${descriptor.path}`);
503
+ }
504
+ return Object.freeze({
505
+ skillId: definition.id,
506
+ path: descriptor.path,
507
+ digest: descriptor.digest,
508
+ content,
509
+ ...(descriptor.mediaType || resource.mediaType
510
+ ? { mediaType: descriptor.mediaType || resource.mediaType }
511
+ : {}),
512
+ });
513
+ }
514
+ function createAuthorityReceipt(request, descriptor) {
515
+ const authorityId = validateIdentifier(request.authority.authorityId, 'Skill authority id');
516
+ const authorityDigest = validateDigest(request.authority.digest, 'Skill authority digest');
517
+ const reason = request.reason.trim();
518
+ if (!reason)
519
+ throw new LazySkillRuntimeError('Skill load reason must not be empty.');
520
+ const requestedCapabilities = normalizeCapabilities(descriptor.requestedCapabilities);
521
+ const allowed = new Set(normalizeCapabilities(request.authority.allowedCapabilities));
522
+ const grantedCapabilities = requestedCapabilities.filter(capability => allowed.has(capability));
523
+ const omittedCapabilityReasons = Object.fromEntries(requestedCapabilities
524
+ .filter(capability => !allowed.has(capability))
525
+ .map(capability => [
526
+ capability,
527
+ request.authority.deniedCapabilityReasons?.[capability]?.trim() ||
528
+ 'not_granted_by_current_authority',
529
+ ]));
530
+ const base = {
531
+ version: types_1.LAZY_SKILL_RUNTIME_VERSION,
532
+ skillId: descriptor.id,
533
+ skillName: descriptor.name,
534
+ providerId: descriptor.providerId,
535
+ sourceScope: descriptor.sourceScope,
536
+ descriptorDigest: descriptor.digest,
537
+ catalogDigest: request.catalog.digest,
538
+ actor: request.actor,
539
+ reason,
540
+ requestedCapabilities,
541
+ grantedCapabilities,
542
+ omittedCapabilityReasons,
543
+ authorityId,
544
+ authorityDigest,
545
+ };
546
+ return deepFreeze({ ...base, digest: (0, canonical_1.digestRuntimeValue)(base) });
547
+ }
548
+ function assertSelectionIdentity(selection) {
549
+ const { definition, receipt } = selection;
550
+ if (receipt.skillId !== definition.id ||
551
+ receipt.skillName !== definition.name ||
552
+ receipt.providerId !== definition.providerId ||
553
+ receipt.sourceScope !== definition.sourceScope ||
554
+ receipt.descriptorDigest !== definition.digest) {
555
+ throw new LazySkillRuntimeError(`Skill selection receipt does not bind ${definition.id}.`);
556
+ }
557
+ const { digest, ...receiptBase } = receipt;
558
+ if ((0, canonical_1.digestRuntimeValue)(receiptBase) !== digest) {
559
+ throw new LazySkillRuntimeError(`Skill selection receipt digest drifted: ${definition.id}.`);
560
+ }
561
+ }
562
+ function normalizeCapabilities(capabilities) {
563
+ return Object.freeze([...new Set(capabilities.map(capability => capability.trim()).filter(Boolean))].sort());
564
+ }
565
+ function normalizeResourcePath(path) {
566
+ const normalized = path.trim().replace(/\\/g, '/').replace(/^\.\//, '');
567
+ if (!normalized ||
568
+ normalized.startsWith('/') ||
569
+ /^[a-z]:\//i.test(normalized) ||
570
+ normalized.split('/').some(segment => segment === '..' || segment === '' || segment === '.')) {
571
+ throw new LazySkillRuntimeError(`Skill resource path must be a contained relative path: ${path}`);
572
+ }
573
+ return normalized;
574
+ }
575
+ function validateIdentifier(value, label) {
576
+ const normalized = value.trim();
577
+ if (!normalized || normalized.includes('\u0000')) {
578
+ throw new LazySkillRuntimeError(`${label} must be non-empty and contain no null bytes.`);
579
+ }
580
+ return normalized;
581
+ }
582
+ function validateDigest(value, label) {
583
+ const normalized = value.trim();
584
+ if (!normalized)
585
+ throw new LazySkillRuntimeError(`${label} must not be empty.`);
586
+ return normalized;
587
+ }
588
+ function definitionCacheKey(descriptor) {
589
+ return `${descriptor.providerId}\u0000definition\u0000${descriptor.id}\u0000${descriptor.digest}`;
590
+ }
591
+ function resourceCacheKey(definition, resource) {
592
+ return (`${definition.providerId}\u0000resource\u0000${definition.id}\u0000${definition.digest}` +
593
+ `\u0000${resource.path}\u0000${resource.digest}`);
594
+ }
595
+ function resourceBytes(resource) {
596
+ const contentBytes = typeof resource.content === 'string'
597
+ ? buffer_1.Buffer.byteLength(resource.content, 'utf8')
598
+ : resource.content.byteLength;
599
+ return contentBytes + buffer_1.Buffer.byteLength(resource.path + resource.digest, 'utf8');
600
+ }
601
+ function cloneResource(resource) {
602
+ return Object.freeze({
603
+ ...resource,
604
+ content: typeof resource.content === 'string'
605
+ ? resource.content
606
+ : new Uint8Array(resource.content).slice(),
607
+ });
608
+ }
609
+ function throwIfAborted(signal) {
610
+ if (!signal.aborted)
611
+ return;
612
+ const reason = signal.reason;
613
+ throw reason instanceof Error ? reason : new Error(String(reason || 'Operation aborted.'));
614
+ }
615
+ function linkSignals(primary, secondary) {
616
+ if (!secondary)
617
+ return { signal: primary, dispose: () => undefined };
618
+ const controller = new AbortController();
619
+ const abort = (signal) => {
620
+ if (!controller.signal.aborted)
621
+ controller.abort(signal.reason);
622
+ };
623
+ const onPrimary = () => abort(primary);
624
+ const onSecondary = () => abort(secondary);
625
+ primary.addEventListener('abort', onPrimary, { once: true });
626
+ secondary.addEventListener('abort', onSecondary, { once: true });
627
+ if (primary.aborted)
628
+ abort(primary);
629
+ if (secondary.aborted)
630
+ abort(secondary);
631
+ return {
632
+ signal: controller.signal,
633
+ dispose: () => {
634
+ primary.removeEventListener('abort', onPrimary);
635
+ secondary.removeEventListener('abort', onSecondary);
636
+ },
637
+ };
638
+ }
639
+ function waitForPromise(promise, signal) {
640
+ if (!signal)
641
+ return promise;
642
+ throwIfAborted(signal);
643
+ return new Promise((resolve, reject) => {
644
+ const onAbort = () => {
645
+ cleanup();
646
+ try {
647
+ throwIfAborted(signal);
648
+ }
649
+ catch (error) {
650
+ reject(error);
651
+ }
652
+ };
653
+ const cleanup = () => signal.removeEventListener('abort', onAbort);
654
+ signal.addEventListener('abort', onAbort, { once: true });
655
+ void promise.then(value => {
656
+ cleanup();
657
+ resolve(value);
658
+ }, error => {
659
+ cleanup();
660
+ reject(error);
661
+ });
662
+ });
663
+ }
664
+ function deepFreeze(value) {
665
+ if (value === null || typeof value !== 'object' || Object.isFrozen(value))
666
+ return value;
667
+ if (ArrayBuffer.isView(value))
668
+ return value;
669
+ for (const nested of Object.values(value))
670
+ deepFreeze(nested);
671
+ return Object.freeze(value);
672
+ }
673
+ //# sourceMappingURL=lazy-skill-runtime.js.map