@intentic/sandbox-contract 1.248.0 → 1.249.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (877) hide show
  1. package/README.md +18 -15
  2. package/dist/chores/chores.d.ts.map +1 -1
  3. package/dist/chores/chores.js.map +1 -1
  4. package/dist/chores/digest.d.ts.map +1 -1
  5. package/dist/chores/digest.js.map +1 -1
  6. package/dist/chores/extension-update.d.ts.map +1 -1
  7. package/dist/chores/extension-update.js.map +1 -1
  8. package/dist/chores/fix-deps.d.ts.map +1 -1
  9. package/dist/chores/fix-deps.js.map +1 -1
  10. package/dist/chores/index.d.ts +2 -2
  11. package/dist/chores/index.d.ts.map +1 -1
  12. package/dist/chores/index.js +1 -1
  13. package/dist/chores/index.js.map +1 -1
  14. package/dist/chores/probes.d.ts.map +1 -1
  15. package/dist/chores/probes.js.map +1 -1
  16. package/dist/chores/prompt.d.ts.map +1 -1
  17. package/dist/chores/prompt.js.map +1 -1
  18. package/dist/chores/stack.d.ts.map +1 -1
  19. package/dist/chores/stack.js.map +1 -1
  20. package/dist/chores/verdict.d.ts +7 -1
  21. package/dist/chores/verdict.d.ts.map +1 -1
  22. package/dist/chores/verdict.js +8 -0
  23. package/dist/chores/verdict.js.map +1 -1
  24. package/dist/contracts/accounts.contract.d.ts.map +1 -1
  25. package/dist/contracts/accounts.contract.js.map +1 -1
  26. package/dist/contracts/activity.contract.d.ts +1 -0
  27. package/dist/contracts/activity.contract.d.ts.map +1 -1
  28. package/dist/contracts/agent.contract.d.ts +12 -205
  29. package/dist/contracts/agent.contract.d.ts.map +1 -1
  30. package/dist/contracts/agent.contract.js +2 -1
  31. package/dist/contracts/agent.contract.js.map +1 -1
  32. package/dist/contracts/agents.contract.d.ts +228 -54
  33. package/dist/contracts/agents.contract.d.ts.map +1 -1
  34. package/dist/contracts/agents.contract.js +11 -2
  35. package/dist/contracts/agents.contract.js.map +1 -1
  36. package/dist/contracts/automations.contract.d.ts +35 -17
  37. package/dist/contracts/automations.contract.d.ts.map +1 -1
  38. package/dist/contracts/automations.contract.js +10 -1
  39. package/dist/contracts/automations.contract.js.map +1 -1
  40. package/dist/contracts/capabilities.contract.d.ts +0 -12
  41. package/dist/contracts/capabilities.contract.d.ts.map +1 -1
  42. package/dist/contracts/capabilities.contract.js +1 -1
  43. package/dist/contracts/capabilities.contract.js.map +1 -1
  44. package/dist/contracts/chores.contract.d.ts.map +1 -1
  45. package/dist/contracts/chores.contract.js.map +1 -1
  46. package/dist/contracts/ci.contract.d.ts +9 -0
  47. package/dist/contracts/ci.contract.d.ts.map +1 -1
  48. package/dist/contracts/endpoints.contract.d.ts.map +1 -1
  49. package/dist/contracts/endpoints.contract.js.map +1 -1
  50. package/dist/contracts/exit.contract.d.ts.map +1 -1
  51. package/dist/contracts/exit.contract.js +1 -1
  52. package/dist/contracts/exit.contract.js.map +1 -1
  53. package/dist/contracts/extensions.contract.d.ts.map +1 -1
  54. package/dist/contracts/extensions.contract.js.map +1 -1
  55. package/dist/contracts/git.contract.d.ts +45 -6
  56. package/dist/contracts/git.contract.d.ts.map +1 -1
  57. package/dist/contracts/git.contract.js +9 -9
  58. package/dist/contracts/git.contract.js.map +1 -1
  59. package/dist/contracts/host.contract.d.ts +2 -0
  60. package/dist/contracts/host.contract.d.ts.map +1 -1
  61. package/dist/contracts/host.contract.js.map +1 -1
  62. package/dist/contracts/intentic.contract.js +1 -1
  63. package/dist/contracts/intentic.contract.js.map +1 -1
  64. package/dist/contracts/logs.contract.d.ts.map +1 -1
  65. package/dist/contracts/logs.contract.js.map +1 -1
  66. package/dist/contracts/loops.contract.d.ts.map +1 -1
  67. package/dist/contracts/loops.contract.js.map +1 -1
  68. package/dist/contracts/personas.contract.d.ts +1 -0
  69. package/dist/contracts/personas.contract.d.ts.map +1 -1
  70. package/dist/contracts/personas.contract.js +1 -1
  71. package/dist/contracts/personas.contract.js.map +1 -1
  72. package/dist/contracts/providers.contract.d.ts.map +1 -1
  73. package/dist/contracts/providers.contract.js.map +1 -1
  74. package/dist/contracts/runner.contract.d.ts +97 -171
  75. package/dist/contracts/runner.contract.d.ts.map +1 -1
  76. package/dist/contracts/runner.contract.js +2 -2
  77. package/dist/contracts/runner.contract.js.map +1 -1
  78. package/dist/contracts/safety.contract.d.ts.map +1 -1
  79. package/dist/contracts/safety.contract.js +1 -1
  80. package/dist/contracts/safety.contract.js.map +1 -1
  81. package/dist/contracts/secrets.contract.d.ts.map +1 -1
  82. package/dist/contracts/secrets.contract.js.map +1 -1
  83. package/dist/contracts/sessions.contract.d.ts +2 -41
  84. package/dist/contracts/sessions.contract.d.ts.map +1 -1
  85. package/dist/contracts/sessions.contract.js +1 -1
  86. package/dist/contracts/sessions.contract.js.map +1 -1
  87. package/dist/contracts/settings.contract.d.ts +8 -18
  88. package/dist/contracts/settings.contract.d.ts.map +1 -1
  89. package/dist/contracts/settings.contract.js.map +1 -1
  90. package/dist/contracts/share.contract.d.ts.map +1 -1
  91. package/dist/contracts/share.contract.js.map +1 -1
  92. package/dist/contracts/skills.contract.d.ts.map +1 -1
  93. package/dist/contracts/skills.contract.js.map +1 -1
  94. package/dist/contracts/system.contract.d.ts +49 -73
  95. package/dist/contracts/system.contract.d.ts.map +1 -1
  96. package/dist/contracts/system.contract.js +12 -2
  97. package/dist/contracts/system.contract.js.map +1 -1
  98. package/dist/contracts/usage.contract.d.ts.map +1 -1
  99. package/dist/contracts/usage.contract.js.map +1 -1
  100. package/dist/contracts/vpn.contract.d.ts.map +1 -1
  101. package/dist/contracts/vpn.contract.js +1 -1
  102. package/dist/contracts/vpn.contract.js.map +1 -1
  103. package/dist/contracts/webext.contract.d.ts.map +1 -1
  104. package/dist/contracts/webext.contract.js.map +1 -1
  105. package/dist/contracts/workflows.contract.d.ts +7 -6
  106. package/dist/contracts/workflows.contract.d.ts.map +1 -1
  107. package/dist/contracts/workflows.contract.js +12 -3
  108. package/dist/contracts/workflows.contract.js.map +1 -1
  109. package/dist/contracts/workspace.contract.d.ts.map +1 -1
  110. package/dist/contracts/workspace.contract.js.map +1 -1
  111. package/dist/events/agent-events.d.ts +1237 -0
  112. package/dist/events/agent-events.d.ts.map +1 -0
  113. package/dist/events/agent-events.js +226 -0
  114. package/dist/events/agent-events.js.map +1 -0
  115. package/dist/events/cards.d.ts +404 -0
  116. package/dist/events/cards.d.ts.map +1 -0
  117. package/dist/events/cards.js +179 -0
  118. package/dist/events/cards.js.map +1 -0
  119. package/dist/events/resume.d.ts +23 -0
  120. package/dist/events/resume.d.ts.map +1 -0
  121. package/dist/events/resume.js +31 -0
  122. package/dist/events/resume.js.map +1 -0
  123. package/dist/events/system-events.d.ts +615 -0
  124. package/dist/events/system-events.d.ts.map +1 -0
  125. package/dist/events/system-events.js +64 -0
  126. package/dist/events/system-events.js.map +1 -0
  127. package/dist/events/transcript.d.ts +1755 -0
  128. package/dist/events/transcript.d.ts.map +1 -0
  129. package/dist/events/transcript.js +205 -0
  130. package/dist/events/transcript.js.map +1 -0
  131. package/dist/ids/conversation-ids.d.ts +8 -0
  132. package/dist/ids/conversation-ids.d.ts.map +1 -0
  133. package/dist/{conversation-ids.js → ids/conversation-ids.js} +13 -0
  134. package/dist/ids/conversation-ids.js.map +1 -0
  135. package/dist/ids/hostnames.d.ts.map +1 -0
  136. package/dist/ids/hostnames.js.map +1 -0
  137. package/dist/ids/session-names.d.ts.map +1 -0
  138. package/dist/ids/session-names.js.map +1 -0
  139. package/dist/ids/share-paths.d.ts.map +1 -0
  140. package/dist/ids/share-paths.js.map +1 -0
  141. package/dist/{tunnel-ids.d.ts → ids/tunnel-ids.d.ts} +1 -0
  142. package/dist/ids/tunnel-ids.d.ts.map +1 -0
  143. package/dist/{tunnel-ids.js → ids/tunnel-ids.js} +1 -0
  144. package/dist/ids/tunnel-ids.js.map +1 -0
  145. package/dist/index.d.ts +423 -450
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +54 -46
  148. package/dist/index.js.map +1 -1
  149. package/dist/{agent-catalog.d.ts → models/agent-catalog.d.ts} +2 -2
  150. package/dist/models/agent-catalog.d.ts.map +1 -0
  151. package/dist/models/agent-catalog.js.map +1 -0
  152. package/dist/models/agent-runtimes.d.ts.map +1 -0
  153. package/dist/models/agent-runtimes.js.map +1 -0
  154. package/dist/{fast-tier.d.ts → models/fast-tier.d.ts} +1 -1
  155. package/dist/models/fast-tier.d.ts.map +1 -0
  156. package/dist/models/fast-tier.js.map +1 -0
  157. package/dist/models/model-order.d.ts.map +1 -0
  158. package/dist/models/model-order.js.map +1 -0
  159. package/dist/{model-pins.d.ts → models/model-pins.d.ts} +1 -1
  160. package/dist/models/model-pins.d.ts.map +1 -0
  161. package/dist/models/model-pins.js.map +1 -0
  162. package/dist/{model-roles.d.ts → models/model-roles.d.ts} +0 -33
  163. package/dist/models/model-roles.d.ts.map +1 -0
  164. package/dist/{model-roles.js → models/model-roles.js} +0 -35
  165. package/dist/models/model-roles.js.map +1 -0
  166. package/dist/{plan-pools.d.ts → models/plan-pools.d.ts} +1 -1
  167. package/dist/models/plan-pools.d.ts.map +1 -0
  168. package/dist/models/plan-pools.js.map +1 -0
  169. package/dist/models/prompt-complexity.d.ts.map +1 -0
  170. package/dist/models/prompt-complexity.js.map +1 -0
  171. package/dist/models/provider-specs.d.ts.map +1 -0
  172. package/dist/models/provider-specs.js.map +1 -0
  173. package/dist/policy/approvals-execution.d.ts.map +1 -0
  174. package/dist/policy/approvals-execution.js.map +1 -0
  175. package/dist/{batch-runs.d.ts → policy/batch-runs.d.ts} +5 -1
  176. package/dist/policy/batch-runs.d.ts.map +1 -0
  177. package/dist/{batch-runs.js → policy/batch-runs.js} +10 -7
  178. package/dist/policy/batch-runs.js.map +1 -0
  179. package/dist/policy/capability-env.d.ts.map +1 -0
  180. package/dist/policy/capability-env.js.map +1 -0
  181. package/dist/policy/capability-secrets.d.ts.map +1 -0
  182. package/dist/policy/capability-secrets.js.map +1 -0
  183. package/dist/{card-status.d.ts → policy/card-status.d.ts} +2 -2
  184. package/dist/policy/card-status.d.ts.map +1 -0
  185. package/dist/{card-status.js → policy/card-status.js} +1 -5
  186. package/dist/policy/card-status.js.map +1 -0
  187. package/dist/{command-classes.d.ts → policy/command-classes.d.ts} +6 -2
  188. package/dist/policy/command-classes.d.ts.map +1 -0
  189. package/dist/{command-classes.js → policy/command-classes.js} +48 -11
  190. package/dist/policy/command-classes.js.map +1 -0
  191. package/dist/{command-run.d.ts → policy/command-run.d.ts} +1 -1
  192. package/dist/policy/command-run.d.ts.map +1 -0
  193. package/dist/policy/command-run.js.map +1 -0
  194. package/dist/policy/control-scopes.d.ts +16 -0
  195. package/dist/policy/control-scopes.d.ts.map +1 -0
  196. package/dist/policy/control-scopes.js +26 -0
  197. package/dist/policy/control-scopes.js.map +1 -0
  198. package/dist/policy/credential-material.d.ts.map +1 -0
  199. package/dist/policy/credential-material.js.map +1 -0
  200. package/dist/policy/needs-action.d.ts.map +1 -0
  201. package/dist/policy/needs-action.js.map +1 -0
  202. package/dist/policy/output-fields.d.ts.map +1 -0
  203. package/dist/policy/output-fields.js.map +1 -0
  204. package/dist/policy/overlay-lint.d.ts.map +1 -0
  205. package/dist/policy/overlay-lint.js.map +1 -0
  206. package/dist/policy/owner-ticket.d.ts.map +1 -0
  207. package/dist/{owner-ticket.js → policy/owner-ticket.js} +1 -1
  208. package/dist/policy/owner-ticket.js.map +1 -0
  209. package/dist/{safety-policy.d.ts → policy/safety-policy.d.ts} +6 -5
  210. package/dist/policy/safety-policy.d.ts.map +1 -0
  211. package/dist/{safety-policy.js → policy/safety-policy.js} +12 -12
  212. package/dist/policy/safety-policy.js.map +1 -0
  213. package/dist/policy/search-globs.d.ts.map +1 -0
  214. package/dist/policy/search-globs.js.map +1 -0
  215. package/dist/protocol/container-requirements.d.ts +20 -0
  216. package/dist/protocol/container-requirements.d.ts.map +1 -0
  217. package/dist/protocol/container-requirements.js +23 -0
  218. package/dist/protocol/container-requirements.js.map +1 -0
  219. package/dist/{host-protocol.d.ts → protocol/host-protocol.d.ts} +1 -0
  220. package/dist/protocol/host-protocol.d.ts.map +1 -0
  221. package/dist/{host-protocol.js → protocol/host-protocol.js} +1 -0
  222. package/dist/protocol/host-protocol.js.map +1 -0
  223. package/dist/protocol/ingress-contract.d.ts.map +1 -0
  224. package/dist/{ingress-contract.js → protocol/ingress-contract.js} +1 -1
  225. package/dist/protocol/ingress-contract.js.map +1 -0
  226. package/dist/protocol/ingress-protocol.d.ts.map +1 -0
  227. package/dist/protocol/ingress-protocol.js.map +1 -0
  228. package/dist/protocol/listener-protocol.d.ts.map +1 -0
  229. package/dist/{listener-protocol.js → protocol/listener-protocol.js} +1 -1
  230. package/dist/protocol/listener-protocol.js.map +1 -0
  231. package/dist/{peer-dial.d.ts → protocol/peer-dial.d.ts} +4 -1
  232. package/dist/protocol/peer-dial.d.ts.map +1 -0
  233. package/dist/{peer-dial.js → protocol/peer-dial.js} +51 -10
  234. package/dist/protocol/peer-dial.js.map +1 -0
  235. package/dist/protocol/peer-mcp-server.d.ts.map +1 -0
  236. package/dist/protocol/peer-mcp-server.js.map +1 -0
  237. package/dist/protocol/request-id.d.ts.map +1 -0
  238. package/dist/protocol/request-id.js.map +1 -0
  239. package/dist/protocol/routes.d.ts.map +1 -0
  240. package/dist/protocol/routes.js.map +1 -0
  241. package/dist/{runner-protocol.d.ts → protocol/runner-protocol.d.ts} +1 -0
  242. package/dist/protocol/runner-protocol.d.ts.map +1 -0
  243. package/dist/{runner-protocol.js → protocol/runner-protocol.js} +2 -1
  244. package/dist/protocol/runner-protocol.js.map +1 -0
  245. package/dist/protocol/sse.d.ts.map +1 -0
  246. package/dist/protocol/sse.js.map +1 -0
  247. package/dist/{terminal-protocol.d.ts → protocol/terminal-protocol.d.ts} +1 -3
  248. package/dist/protocol/terminal-protocol.d.ts.map +1 -0
  249. package/dist/protocol/terminal-protocol.js.map +1 -0
  250. package/dist/protocol/webext-links.d.ts.map +1 -0
  251. package/dist/protocol/webext-links.js.map +1 -0
  252. package/dist/{webext-protocol.d.ts → protocol/webext-protocol.d.ts} +1 -0
  253. package/dist/protocol/webext-protocol.d.ts.map +1 -0
  254. package/dist/{webext-protocol.js → protocol/webext-protocol.js} +1 -0
  255. package/dist/protocol/webext-protocol.js.map +1 -0
  256. package/dist/schemas/activity.d.ts +2 -0
  257. package/dist/schemas/activity.d.ts.map +1 -1
  258. package/dist/schemas/activity.js +4 -0
  259. package/dist/schemas/activity.js.map +1 -1
  260. package/dist/schemas/agent.d.ts +16 -4
  261. package/dist/schemas/agent.d.ts.map +1 -1
  262. package/dist/schemas/agent.js +21 -4
  263. package/dist/schemas/agent.js.map +1 -1
  264. package/dist/schemas/agents.d.ts +17 -4
  265. package/dist/schemas/agents.d.ts.map +1 -1
  266. package/dist/schemas/agents.js +15 -4
  267. package/dist/schemas/agents.js.map +1 -1
  268. package/dist/schemas/approvals.d.ts.map +1 -1
  269. package/dist/schemas/approvals.js.map +1 -1
  270. package/dist/schemas/automations.d.ts +54 -28
  271. package/dist/schemas/automations.d.ts.map +1 -1
  272. package/dist/schemas/automations.js +26 -8
  273. package/dist/schemas/automations.js.map +1 -1
  274. package/dist/schemas/capabilities.d.ts +0 -8
  275. package/dist/schemas/capabilities.d.ts.map +1 -1
  276. package/dist/schemas/capabilities.js +0 -4
  277. package/dist/schemas/capabilities.js.map +1 -1
  278. package/dist/schemas/ci.d.ts +10 -0
  279. package/dist/schemas/ci.d.ts.map +1 -1
  280. package/dist/schemas/ci.js +9 -1
  281. package/dist/schemas/ci.js.map +1 -1
  282. package/dist/schemas/codebase-health.d.ts.map +1 -1
  283. package/dist/schemas/codebase-health.js.map +1 -1
  284. package/dist/schemas/devices.d.ts +90 -0
  285. package/dist/schemas/devices.d.ts.map +1 -1
  286. package/dist/schemas/devices.js +10 -1
  287. package/dist/schemas/devices.js.map +1 -1
  288. package/dist/schemas/engines.d.ts.map +1 -1
  289. package/dist/schemas/engines.js.map +1 -1
  290. package/dist/schemas/environment.d.ts.map +1 -1
  291. package/dist/schemas/environment.js.map +1 -1
  292. package/dist/schemas/exit.d.ts.map +1 -1
  293. package/dist/schemas/exit.js.map +1 -1
  294. package/dist/schemas/extension-updates.d.ts.map +1 -1
  295. package/dist/schemas/extension-updates.js.map +1 -1
  296. package/dist/schemas/git-history.d.ts.map +1 -1
  297. package/dist/schemas/git-history.js.map +1 -1
  298. package/dist/schemas/git.d.ts +80 -16
  299. package/dist/schemas/git.d.ts.map +1 -1
  300. package/dist/schemas/git.js +37 -25
  301. package/dist/schemas/git.js.map +1 -1
  302. package/dist/schemas/history.d.ts.map +1 -1
  303. package/dist/schemas/history.js.map +1 -1
  304. package/dist/schemas/hosts.d.ts.map +1 -1
  305. package/dist/schemas/hosts.js.map +1 -1
  306. package/dist/schemas/inventory.d.ts.map +1 -1
  307. package/dist/schemas/inventory.js.map +1 -1
  308. package/dist/schemas/issues.d.ts +0 -1
  309. package/dist/schemas/issues.d.ts.map +1 -1
  310. package/dist/schemas/issues.js +0 -1
  311. package/dist/schemas/issues.js.map +1 -1
  312. package/dist/schemas/logs.d.ts.map +1 -1
  313. package/dist/schemas/logs.js.map +1 -1
  314. package/dist/schemas/loops.d.ts.map +1 -1
  315. package/dist/schemas/loops.js +1 -1
  316. package/dist/schemas/loops.js.map +1 -1
  317. package/dist/schemas/maintenance.d.ts.map +1 -1
  318. package/dist/schemas/maintenance.js.map +1 -1
  319. package/dist/schemas/marketplace.d.ts +0 -4
  320. package/dist/schemas/marketplace.d.ts.map +1 -1
  321. package/dist/schemas/panels.d.ts.map +1 -1
  322. package/dist/schemas/panels.js.map +1 -1
  323. package/dist/schemas/personas.d.ts +2 -1
  324. package/dist/schemas/personas.d.ts.map +1 -1
  325. package/dist/schemas/personas.js +6 -2
  326. package/dist/schemas/personas.js.map +1 -1
  327. package/dist/schemas/plan-limits.d.ts +2 -4
  328. package/dist/schemas/plan-limits.d.ts.map +1 -1
  329. package/dist/schemas/plan-limits.js +5 -8
  330. package/dist/schemas/plan-limits.js.map +1 -1
  331. package/dist/schemas/ports.d.ts.map +1 -1
  332. package/dist/schemas/ports.js.map +1 -1
  333. package/dist/schemas/provider-oauth.d.ts.map +1 -1
  334. package/dist/schemas/provider-oauth.js.map +1 -1
  335. package/dist/schemas/provider-subscriptions.d.ts +1 -1
  336. package/dist/schemas/provider-subscriptions.d.ts.map +1 -1
  337. package/dist/schemas/provider-subscriptions.js +1 -1
  338. package/dist/schemas/provider-subscriptions.js.map +1 -1
  339. package/dist/schemas/public.d.ts.map +1 -1
  340. package/dist/schemas/public.js.map +1 -1
  341. package/dist/schemas/push.d.ts.map +1 -1
  342. package/dist/schemas/push.js.map +1 -1
  343. package/dist/schemas/secrets.d.ts.map +1 -1
  344. package/dist/schemas/secrets.js.map +1 -1
  345. package/dist/schemas/settings.d.ts +6 -9
  346. package/dist/schemas/settings.d.ts.map +1 -1
  347. package/dist/schemas/settings.js +16 -5
  348. package/dist/schemas/settings.js.map +1 -1
  349. package/dist/schemas/share.d.ts.map +1 -1
  350. package/dist/schemas/share.js.map +1 -1
  351. package/dist/schemas/shared.d.ts +4 -0
  352. package/dist/schemas/shared.d.ts.map +1 -1
  353. package/dist/schemas/shared.js +3 -0
  354. package/dist/schemas/shared.js.map +1 -1
  355. package/dist/schemas/system.d.ts +6 -0
  356. package/dist/schemas/system.d.ts.map +1 -1
  357. package/dist/schemas/system.js +10 -0
  358. package/dist/schemas/system.js.map +1 -1
  359. package/dist/schemas/terminal.d.ts.map +1 -1
  360. package/dist/schemas/terminal.js.map +1 -1
  361. package/dist/schemas/usage.d.ts.map +1 -1
  362. package/dist/schemas/usage.js.map +1 -1
  363. package/dist/schemas/vpn.d.ts.map +1 -1
  364. package/dist/schemas/vpn.js.map +1 -1
  365. package/dist/schemas/webext.d.ts.map +1 -1
  366. package/dist/schemas/webext.js.map +1 -1
  367. package/dist/schemas/workflows.d.ts +66 -9
  368. package/dist/schemas/workflows.d.ts.map +1 -1
  369. package/dist/schemas/workflows.js +6 -5
  370. package/dist/schemas/workflows.js.map +1 -1
  371. package/dist/schemas/workspace-repos.d.ts.map +1 -1
  372. package/dist/schemas/workspace-repos.js.map +1 -1
  373. package/dist/schemas/workspace-search.d.ts.map +1 -1
  374. package/dist/schemas/workspace-search.js.map +1 -1
  375. package/dist/schemas/workspace-setup.d.ts.map +1 -1
  376. package/dist/schemas/workspace-setup.js.map +1 -1
  377. package/dist/schemas/workspace-tree.d.ts.map +1 -1
  378. package/dist/schemas/workspace-tree.js.map +1 -1
  379. package/dist/state/arrival.d.ts.map +1 -0
  380. package/dist/{arrival.js → state/arrival.js} +1 -1
  381. package/dist/state/arrival.js.map +1 -0
  382. package/dist/state/contract-lock.d.ts.map +1 -0
  383. package/dist/{contract-lock.js → state/contract-lock.js} +1 -1
  384. package/dist/state/contract-lock.js.map +1 -0
  385. package/dist/{definition.d.ts → state/definition.d.ts} +21 -17
  386. package/dist/state/definition.d.ts.map +1 -0
  387. package/dist/{definition.js → state/definition.js} +4 -4
  388. package/dist/state/definition.js.map +1 -0
  389. package/dist/state/history-state.d.ts.map +1 -0
  390. package/dist/{history-state.js → state/history-state.js} +1 -0
  391. package/dist/state/history-state.js.map +1 -0
  392. package/dist/state/runtime-state.d.ts.map +1 -0
  393. package/dist/state/runtime-state.js.map +1 -0
  394. package/dist/state/starter.d.ts.map +1 -0
  395. package/dist/state/starter.js.map +1 -0
  396. package/dist/state/state-portability.d.ts.map +1 -0
  397. package/dist/state/state-portability.js.map +1 -0
  398. package/dist/state/versions.d.ts.map +1 -0
  399. package/dist/state/versions.js.map +1 -0
  400. package/dist/{workspace-state.d.ts → state/workspace-state.d.ts} +8 -0
  401. package/dist/state/workspace-state.d.ts.map +1 -0
  402. package/dist/{workspace-state.js → state/workspace-state.js} +25 -0
  403. package/dist/state/workspace-state.js.map +1 -0
  404. package/dist/{documents.d.ts → text/documents.d.ts} +1 -1
  405. package/dist/text/documents.d.ts.map +1 -0
  406. package/dist/{documents.js → text/documents.js} +1 -1
  407. package/dist/text/documents.js.map +1 -0
  408. package/dist/text/embed.d.ts.map +1 -0
  409. package/dist/text/embed.js.map +1 -0
  410. package/dist/text/mentions.d.ts.map +1 -0
  411. package/dist/text/mentions.js.map +1 -0
  412. package/dist/text/model-answer.d.ts +3 -0
  413. package/dist/text/model-answer.d.ts.map +1 -0
  414. package/dist/text/model-answer.js +3 -0
  415. package/dist/text/model-answer.js.map +1 -0
  416. package/dist/text/path-refs.d.ts.map +1 -0
  417. package/dist/text/path-refs.js.map +1 -0
  418. package/dist/{shell-regions.d.ts → text/shell-regions.d.ts} +1 -1
  419. package/dist/text/shell-regions.d.ts.map +1 -0
  420. package/dist/text/shell-regions.js.map +1 -0
  421. package/dist/text/title.d.ts.map +1 -0
  422. package/dist/text/title.js.map +1 -0
  423. package/dist/{transcript-fold.d.ts → text/transcript-fold.d.ts} +2 -1
  424. package/dist/text/transcript-fold.d.ts.map +1 -0
  425. package/dist/{transcript-fold.js → text/transcript-fold.js} +2 -16
  426. package/dist/text/transcript-fold.js.map +1 -0
  427. package/dist/text/whisper.d.ts +3 -0
  428. package/dist/text/whisper.d.ts.map +1 -0
  429. package/dist/text/whisper.js +11 -0
  430. package/dist/text/whisper.js.map +1 -0
  431. package/dist/{workflow-faults.d.ts → text/workflow-faults.d.ts} +1 -1
  432. package/dist/text/workflow-faults.d.ts.map +1 -0
  433. package/dist/{workflow-faults.js → text/workflow-faults.js} +1 -1
  434. package/dist/text/workflow-faults.js.map +1 -0
  435. package/package.json +70 -70
  436. package/src/chores/chores.test.ts +4 -10
  437. package/src/chores/chores.ts +148 -392
  438. package/src/chores/digest.ts +8 -28
  439. package/src/chores/extension-update.ts +3 -8
  440. package/src/chores/fix-deps.ts +4 -18
  441. package/src/chores/index.ts +2 -2
  442. package/src/chores/probes.test.ts +7 -43
  443. package/src/chores/probes.ts +62 -167
  444. package/src/chores/prompt.ts +10 -34
  445. package/src/chores/stack.test.ts +6 -45
  446. package/src/chores/stack.ts +27 -118
  447. package/src/chores/verdict.test.ts +101 -80
  448. package/src/chores/verdict.ts +54 -99
  449. package/src/contracts/accounts.contract.ts +4 -19
  450. package/src/contracts/agent.contract.ts +7 -22
  451. package/src/contracts/agents.contract.ts +25 -71
  452. package/src/contracts/automations.contract.ts +14 -30
  453. package/src/contracts/capabilities.contract.ts +8 -35
  454. package/src/contracts/chores.contract.ts +4 -15
  455. package/src/contracts/endpoints.contract.ts +5 -22
  456. package/src/contracts/exit.contract.ts +7 -30
  457. package/src/contracts/extensions.contract.ts +8 -30
  458. package/src/contracts/git.contract.ts +25 -49
  459. package/src/contracts/host.contract.ts +9 -44
  460. package/src/contracts/intentic.contract.ts +1 -1
  461. package/src/contracts/logs.contract.ts +3 -13
  462. package/src/contracts/loops.contract.ts +9 -40
  463. package/src/contracts/personas.contract.ts +10 -35
  464. package/src/contracts/providers.contract.ts +4 -17
  465. package/src/contracts/runner.contract.ts +12 -39
  466. package/src/contracts/safety.contract.ts +5 -14
  467. package/src/contracts/secrets.contract.ts +4 -22
  468. package/src/contracts/sessions.contract.ts +1 -1
  469. package/src/contracts/settings.contract.ts +4 -10
  470. package/src/contracts/share.contract.ts +3 -9
  471. package/src/contracts/skills.contract.ts +4 -15
  472. package/src/contracts/system.contract.ts +26 -52
  473. package/src/contracts/usage.contract.ts +7 -21
  474. package/src/contracts/vpn.contract.ts +9 -16
  475. package/src/contracts/webext.contract.ts +9 -25
  476. package/src/contracts/workflows.contract.ts +34 -58
  477. package/src/contracts/workspace.contract.ts +19 -50
  478. package/src/events/agent-events.ts +345 -0
  479. package/src/events/cards.ts +286 -0
  480. package/src/{events.test.ts → events/resume.test.ts} +4 -19
  481. package/src/events/resume.ts +60 -0
  482. package/src/events/system-events.ts +139 -0
  483. package/src/events/transcript.ts +320 -0
  484. package/src/{conversation-ids.test.ts → ids/conversation-ids.test.ts} +25 -13
  485. package/src/ids/conversation-ids.ts +178 -0
  486. package/src/ids/hostnames.ts +129 -0
  487. package/src/ids/session-names.ts +29 -0
  488. package/src/ids/share-paths.ts +43 -0
  489. package/src/{tunnel-ids.test.ts → ids/tunnel-ids.test.ts} +1 -14
  490. package/src/ids/tunnel-ids.ts +29 -0
  491. package/src/index.ts +71 -87
  492. package/src/{agent-catalog.test.ts → models/agent-catalog.test.ts} +19 -93
  493. package/src/models/agent-catalog.ts +174 -0
  494. package/src/models/agent-runtimes.ts +201 -0
  495. package/src/models/capability-ledger.test.ts +84 -0
  496. package/src/{fast-tier.test.ts → models/fast-tier.test.ts} +7 -18
  497. package/src/models/fast-tier.ts +36 -0
  498. package/src/{model-order.test.ts → models/model-order.test.ts} +19 -40
  499. package/src/models/model-order.ts +163 -0
  500. package/src/{model-pins.test.ts → models/model-pins.test.ts} +12 -46
  501. package/src/models/model-pins.ts +57 -0
  502. package/src/models/model-roles.test.ts +38 -0
  503. package/src/models/model-roles.ts +180 -0
  504. package/src/{plan-pools.test.ts → models/plan-pools.test.ts} +6 -11
  505. package/src/models/plan-pools.ts +65 -0
  506. package/src/{prompt-complexity.test.ts → models/prompt-complexity.test.ts} +8 -60
  507. package/src/models/prompt-complexity.ts +215 -0
  508. package/src/{provider-specs.test.ts → models/provider-specs.test.ts} +18 -47
  509. package/src/models/provider-specs.ts +272 -0
  510. package/src/policy/approvals-execution.ts +58 -0
  511. package/src/{batch-runs.test.ts → policy/batch-runs.test.ts} +4 -20
  512. package/src/policy/batch-runs.ts +137 -0
  513. package/src/policy/capability-secrets.ts +5 -0
  514. package/src/{card-status.ts → policy/card-status.ts} +11 -26
  515. package/src/{command-classes.test.ts → policy/command-classes.test.ts} +11 -118
  516. package/src/policy/command-classes.ts +395 -0
  517. package/src/policy/command-run.ts +65 -0
  518. package/src/policy/control-scopes.ts +38 -0
  519. package/src/{credential-material.test.ts → policy/credential-material.test.ts} +4 -26
  520. package/src/policy/credential-material.ts +91 -0
  521. package/src/policy/needs-action.ts +5 -0
  522. package/src/policy/output-fields.ts +86 -0
  523. package/src/policy/overlay-lint.ts +100 -0
  524. package/src/{owner-ticket.test.ts → policy/owner-ticket.test.ts} +1 -1
  525. package/src/{owner-ticket.ts → policy/owner-ticket.ts} +9 -31
  526. package/src/policy/safety-policy.test.ts +84 -0
  527. package/src/policy/safety-policy.ts +142 -0
  528. package/src/policy/search-globs.ts +60 -0
  529. package/src/protocol/container-requirements.test.ts +72 -0
  530. package/src/protocol/container-requirements.ts +58 -0
  531. package/src/protocol/host-protocol.ts +29 -0
  532. package/src/protocol/ingress-contract.ts +103 -0
  533. package/src/{ingress-protocol.test.ts → protocol/ingress-protocol.test.ts} +25 -90
  534. package/src/protocol/ingress-protocol.ts +441 -0
  535. package/src/protocol/listener-protocol.ts +75 -0
  536. package/src/{peer-dial.test.ts → protocol/peer-dial.test.ts} +52 -1
  537. package/src/protocol/peer-dial.ts +207 -0
  538. package/src/{peer-mcp-server.ts → protocol/peer-mcp-server.ts} +16 -41
  539. package/src/protocol/request-id.ts +5 -0
  540. package/src/{routes.test.ts → protocol/routes.test.ts} +14 -22
  541. package/src/protocol/routes.ts +159 -0
  542. package/src/protocol/runner-protocol.ts +197 -0
  543. package/src/protocol/terminal-protocol.ts +13 -0
  544. package/src/protocol/webext-links.ts +50 -0
  545. package/src/protocol/webext-protocol.ts +24 -0
  546. package/src/schemas/activity.ts +22 -30
  547. package/src/schemas/agent.ts +130 -238
  548. package/src/schemas/agents.ts +165 -483
  549. package/src/schemas/approvals.ts +23 -71
  550. package/src/schemas/automations.ts +142 -250
  551. package/src/schemas/capabilities.ts +127 -414
  552. package/src/schemas/ci.ts +56 -108
  553. package/src/schemas/codebase-health.ts +7 -11
  554. package/src/schemas/devices.ts +98 -321
  555. package/src/schemas/engines.ts +16 -44
  556. package/src/schemas/environment.ts +41 -91
  557. package/src/schemas/exit.ts +24 -81
  558. package/src/schemas/extension-updates.ts +42 -87
  559. package/src/schemas/git-history.ts +30 -84
  560. package/src/schemas/git.ts +141 -256
  561. package/src/schemas/history.ts +14 -40
  562. package/src/schemas/hosts.ts +9 -15
  563. package/src/schemas/inventory.ts +8 -10
  564. package/src/schemas/issues.ts +66 -134
  565. package/src/schemas/logs.ts +15 -34
  566. package/src/schemas/loops.ts +46 -163
  567. package/src/schemas/maintenance.ts +47 -172
  568. package/src/schemas/panels.ts +20 -45
  569. package/src/schemas/personas.ts +50 -200
  570. package/src/schemas/plan-limits.ts +58 -197
  571. package/src/schemas/ports.ts +14 -32
  572. package/src/schemas/provider-oauth.ts +23 -76
  573. package/src/schemas/provider-subscriptions.ts +4 -13
  574. package/src/schemas/public.ts +4 -15
  575. package/src/schemas/push.ts +8 -36
  576. package/src/schemas/secrets.ts +20 -64
  577. package/src/schemas/settings.ts +175 -600
  578. package/src/schemas/share.ts +14 -32
  579. package/src/schemas/shared.ts +14 -13
  580. package/src/schemas/system.ts +46 -78
  581. package/src/schemas/terminal.ts +41 -120
  582. package/src/schemas/usage.ts +44 -233
  583. package/src/schemas/version-seam.test.ts +9 -26
  584. package/src/schemas/vpn.ts +27 -64
  585. package/src/schemas/webext.ts +22 -53
  586. package/src/schemas/workflows.ts +57 -183
  587. package/src/schemas/workspace-repos.ts +12 -24
  588. package/src/schemas/workspace-search.ts +17 -35
  589. package/src/schemas/workspace-setup.ts +4 -11
  590. package/src/schemas/workspace-tree.ts +32 -91
  591. package/src/state/arrival.ts +109 -0
  592. package/src/state/contract-lock.test.ts +17 -0
  593. package/src/state/contract-lock.ts +49 -0
  594. package/src/state/definition.ts +143 -0
  595. package/src/state/history-state.ts +103 -0
  596. package/src/{runtime-state.test.ts → state/runtime-state.test.ts} +3 -10
  597. package/src/state/runtime-state.ts +62 -0
  598. package/src/state/starter.ts +5 -0
  599. package/src/state/state-portability.ts +27 -0
  600. package/src/state/versions.ts +26 -0
  601. package/src/{workspace-state.test.ts → state/workspace-state.test.ts} +65 -172
  602. package/src/state/workspace-state.ts +669 -0
  603. package/src/{documents.test.ts → text/documents.test.ts} +1 -1
  604. package/src/text/documents.ts +42 -0
  605. package/src/text/embed.ts +132 -0
  606. package/src/text/mentions.ts +21 -0
  607. package/src/text/model-answer.ts +9 -0
  608. package/src/text/path-refs.ts +39 -0
  609. package/src/text/shell-regions.ts +224 -0
  610. package/src/{title.test.ts → text/title.test.ts} +13 -32
  611. package/src/text/title.ts +202 -0
  612. package/src/{transcript-fold.test.ts → text/transcript-fold.test.ts} +5 -83
  613. package/src/{transcript-fold.ts → text/transcript-fold.ts} +65 -170
  614. package/src/text/whisper.test.ts +19 -0
  615. package/src/text/whisper.ts +17 -0
  616. package/src/{workflow-faults.test.ts → text/workflow-faults.test.ts} +6 -24
  617. package/src/{workflow-faults.ts → text/workflow-faults.ts} +20 -60
  618. package/dist/agent-catalog.d.ts.map +0 -1
  619. package/dist/agent-catalog.js.map +0 -1
  620. package/dist/agent-runtimes.d.ts.map +0 -1
  621. package/dist/agent-runtimes.js.map +0 -1
  622. package/dist/approvals-execution.d.ts.map +0 -1
  623. package/dist/approvals-execution.js.map +0 -1
  624. package/dist/arrival.d.ts.map +0 -1
  625. package/dist/arrival.js.map +0 -1
  626. package/dist/batch-runs.d.ts.map +0 -1
  627. package/dist/batch-runs.js.map +0 -1
  628. package/dist/capability-env.d.ts.map +0 -1
  629. package/dist/capability-env.js.map +0 -1
  630. package/dist/capability-secrets.d.ts.map +0 -1
  631. package/dist/capability-secrets.js.map +0 -1
  632. package/dist/card-status.d.ts.map +0 -1
  633. package/dist/card-status.js.map +0 -1
  634. package/dist/command-classes.d.ts.map +0 -1
  635. package/dist/command-classes.js.map +0 -1
  636. package/dist/command-run.d.ts.map +0 -1
  637. package/dist/command-run.js.map +0 -1
  638. package/dist/contract-lock.d.ts.map +0 -1
  639. package/dist/contract-lock.js.map +0 -1
  640. package/dist/conversation-ids.d.ts +0 -4
  641. package/dist/conversation-ids.d.ts.map +0 -1
  642. package/dist/conversation-ids.js.map +0 -1
  643. package/dist/credential-material.d.ts.map +0 -1
  644. package/dist/credential-material.js.map +0 -1
  645. package/dist/definition.d.ts.map +0 -1
  646. package/dist/definition.js.map +0 -1
  647. package/dist/documents.d.ts.map +0 -1
  648. package/dist/documents.js.map +0 -1
  649. package/dist/embed.d.ts.map +0 -1
  650. package/dist/embed.js.map +0 -1
  651. package/dist/events.d.ts +0 -4336
  652. package/dist/events.d.ts.map +0 -1
  653. package/dist/events.js +0 -725
  654. package/dist/events.js.map +0 -1
  655. package/dist/fast-tier.d.ts.map +0 -1
  656. package/dist/fast-tier.js.map +0 -1
  657. package/dist/history-state.d.ts.map +0 -1
  658. package/dist/history-state.js.map +0 -1
  659. package/dist/host-protocol.d.ts.map +0 -1
  660. package/dist/host-protocol.js.map +0 -1
  661. package/dist/hostnames.d.ts.map +0 -1
  662. package/dist/hostnames.js.map +0 -1
  663. package/dist/ingress-contract.d.ts.map +0 -1
  664. package/dist/ingress-contract.js.map +0 -1
  665. package/dist/ingress-protocol.d.ts.map +0 -1
  666. package/dist/ingress-protocol.js.map +0 -1
  667. package/dist/listener-protocol.d.ts.map +0 -1
  668. package/dist/listener-protocol.js.map +0 -1
  669. package/dist/mentions.d.ts.map +0 -1
  670. package/dist/mentions.js.map +0 -1
  671. package/dist/model-order.d.ts.map +0 -1
  672. package/dist/model-order.js.map +0 -1
  673. package/dist/model-pins.d.ts.map +0 -1
  674. package/dist/model-pins.js.map +0 -1
  675. package/dist/model-roles.d.ts.map +0 -1
  676. package/dist/model-roles.js.map +0 -1
  677. package/dist/needs-action.d.ts.map +0 -1
  678. package/dist/needs-action.js.map +0 -1
  679. package/dist/output-fields.d.ts.map +0 -1
  680. package/dist/output-fields.js.map +0 -1
  681. package/dist/overlay-lint.d.ts.map +0 -1
  682. package/dist/overlay-lint.js.map +0 -1
  683. package/dist/owner-ticket.d.ts.map +0 -1
  684. package/dist/owner-ticket.js.map +0 -1
  685. package/dist/path-refs.d.ts.map +0 -1
  686. package/dist/path-refs.js.map +0 -1
  687. package/dist/peer-dial.d.ts.map +0 -1
  688. package/dist/peer-dial.js.map +0 -1
  689. package/dist/peer-mcp-server.d.ts.map +0 -1
  690. package/dist/peer-mcp-server.js.map +0 -1
  691. package/dist/plan-pools.d.ts.map +0 -1
  692. package/dist/plan-pools.js.map +0 -1
  693. package/dist/prompt-complexity.d.ts.map +0 -1
  694. package/dist/prompt-complexity.js.map +0 -1
  695. package/dist/provider-specs.d.ts.map +0 -1
  696. package/dist/provider-specs.js.map +0 -1
  697. package/dist/request-id.d.ts.map +0 -1
  698. package/dist/request-id.js.map +0 -1
  699. package/dist/routes.d.ts.map +0 -1
  700. package/dist/routes.js.map +0 -1
  701. package/dist/runner-protocol.d.ts.map +0 -1
  702. package/dist/runner-protocol.js.map +0 -1
  703. package/dist/runtime-state.d.ts.map +0 -1
  704. package/dist/runtime-state.js.map +0 -1
  705. package/dist/safety-policy.d.ts.map +0 -1
  706. package/dist/safety-policy.js.map +0 -1
  707. package/dist/search-globs.d.ts.map +0 -1
  708. package/dist/search-globs.js.map +0 -1
  709. package/dist/session-names.d.ts.map +0 -1
  710. package/dist/session-names.js.map +0 -1
  711. package/dist/share-paths.d.ts.map +0 -1
  712. package/dist/share-paths.js.map +0 -1
  713. package/dist/shell-regions.d.ts.map +0 -1
  714. package/dist/shell-regions.js.map +0 -1
  715. package/dist/sse.d.ts.map +0 -1
  716. package/dist/sse.js.map +0 -1
  717. package/dist/starter.d.ts.map +0 -1
  718. package/dist/starter.js.map +0 -1
  719. package/dist/state-portability.d.ts.map +0 -1
  720. package/dist/state-portability.js.map +0 -1
  721. package/dist/terminal-protocol.d.ts.map +0 -1
  722. package/dist/terminal-protocol.js.map +0 -1
  723. package/dist/title.d.ts.map +0 -1
  724. package/dist/title.js.map +0 -1
  725. package/dist/transcript-fold.d.ts.map +0 -1
  726. package/dist/transcript-fold.js.map +0 -1
  727. package/dist/tunnel-ids.d.ts.map +0 -1
  728. package/dist/tunnel-ids.js.map +0 -1
  729. package/dist/versions.d.ts.map +0 -1
  730. package/dist/versions.js.map +0 -1
  731. package/dist/webext-links.d.ts.map +0 -1
  732. package/dist/webext-links.js.map +0 -1
  733. package/dist/webext-protocol.d.ts.map +0 -1
  734. package/dist/webext-protocol.js.map +0 -1
  735. package/dist/workflow-faults.d.ts.map +0 -1
  736. package/dist/workflow-faults.js.map +0 -1
  737. package/dist/workspace-state.d.ts.map +0 -1
  738. package/dist/workspace-state.js.map +0 -1
  739. package/src/agent-catalog.ts +0 -316
  740. package/src/agent-runtimes.ts +0 -419
  741. package/src/approvals-execution.ts +0 -96
  742. package/src/arrival.ts +0 -160
  743. package/src/batch-runs.ts +0 -188
  744. package/src/capability-ledger.test.ts +0 -140
  745. package/src/capability-secrets.ts +0 -20
  746. package/src/command-classes.ts +0 -617
  747. package/src/command-run.ts +0 -78
  748. package/src/contract-lock.test.ts +0 -23
  749. package/src/contract-lock.ts +0 -66
  750. package/src/conversation-ids.ts +0 -207
  751. package/src/credential-material.ts +0 -181
  752. package/src/definition.ts +0 -207
  753. package/src/documents.ts +0 -67
  754. package/src/embed.ts +0 -164
  755. package/src/events.ts +0 -1870
  756. package/src/fast-tier.ts +0 -72
  757. package/src/history-state.ts +0 -174
  758. package/src/host-protocol.ts +0 -36
  759. package/src/hostnames.ts +0 -180
  760. package/src/ingress-contract.ts +0 -157
  761. package/src/ingress-protocol.ts +0 -625
  762. package/src/listener-protocol.ts +0 -96
  763. package/src/mentions.ts +0 -25
  764. package/src/model-order.ts +0 -262
  765. package/src/model-pins.ts +0 -132
  766. package/src/model-roles.test.ts +0 -52
  767. package/src/model-roles.ts +0 -320
  768. package/src/needs-action.ts +0 -14
  769. package/src/output-fields.ts +0 -111
  770. package/src/overlay-lint.ts +0 -116
  771. package/src/path-refs.ts +0 -59
  772. package/src/peer-dial.ts +0 -163
  773. package/src/plan-pools.ts +0 -92
  774. package/src/prompt-complexity.ts +0 -334
  775. package/src/provider-specs.ts +0 -432
  776. package/src/request-id.ts +0 -41
  777. package/src/routes.ts +0 -219
  778. package/src/runner-protocol.ts +0 -239
  779. package/src/runtime-state.ts +0 -140
  780. package/src/safety-policy.test.ts +0 -88
  781. package/src/safety-policy.ts +0 -258
  782. package/src/search-globs.ts +0 -76
  783. package/src/session-names.ts +0 -44
  784. package/src/share-paths.ts +0 -68
  785. package/src/shell-regions.ts +0 -289
  786. package/src/starter.ts +0 -13
  787. package/src/state-portability.ts +0 -56
  788. package/src/terminal-protocol.ts +0 -16
  789. package/src/title.ts +0 -267
  790. package/src/tunnel-ids.ts +0 -57
  791. package/src/versions.ts +0 -48
  792. package/src/webext-links.ts +0 -90
  793. package/src/webext-protocol.ts +0 -27
  794. package/src/workspace-state.ts +0 -1090
  795. /package/dist/{hostnames.d.ts → ids/hostnames.d.ts} +0 -0
  796. /package/dist/{hostnames.js → ids/hostnames.js} +0 -0
  797. /package/dist/{session-names.d.ts → ids/session-names.d.ts} +0 -0
  798. /package/dist/{session-names.js → ids/session-names.js} +0 -0
  799. /package/dist/{share-paths.d.ts → ids/share-paths.d.ts} +0 -0
  800. /package/dist/{share-paths.js → ids/share-paths.js} +0 -0
  801. /package/dist/{agent-catalog.js → models/agent-catalog.js} +0 -0
  802. /package/dist/{agent-runtimes.d.ts → models/agent-runtimes.d.ts} +0 -0
  803. /package/dist/{agent-runtimes.js → models/agent-runtimes.js} +0 -0
  804. /package/dist/{fast-tier.js → models/fast-tier.js} +0 -0
  805. /package/dist/{model-order.d.ts → models/model-order.d.ts} +0 -0
  806. /package/dist/{model-order.js → models/model-order.js} +0 -0
  807. /package/dist/{model-pins.js → models/model-pins.js} +0 -0
  808. /package/dist/{plan-pools.js → models/plan-pools.js} +0 -0
  809. /package/dist/{prompt-complexity.d.ts → models/prompt-complexity.d.ts} +0 -0
  810. /package/dist/{prompt-complexity.js → models/prompt-complexity.js} +0 -0
  811. /package/dist/{provider-specs.d.ts → models/provider-specs.d.ts} +0 -0
  812. /package/dist/{provider-specs.js → models/provider-specs.js} +0 -0
  813. /package/dist/{approvals-execution.d.ts → policy/approvals-execution.d.ts} +0 -0
  814. /package/dist/{approvals-execution.js → policy/approvals-execution.js} +0 -0
  815. /package/dist/{capability-env.d.ts → policy/capability-env.d.ts} +0 -0
  816. /package/dist/{capability-env.js → policy/capability-env.js} +0 -0
  817. /package/dist/{capability-secrets.d.ts → policy/capability-secrets.d.ts} +0 -0
  818. /package/dist/{capability-secrets.js → policy/capability-secrets.js} +0 -0
  819. /package/dist/{command-run.js → policy/command-run.js} +0 -0
  820. /package/dist/{credential-material.d.ts → policy/credential-material.d.ts} +0 -0
  821. /package/dist/{credential-material.js → policy/credential-material.js} +0 -0
  822. /package/dist/{needs-action.d.ts → policy/needs-action.d.ts} +0 -0
  823. /package/dist/{needs-action.js → policy/needs-action.js} +0 -0
  824. /package/dist/{output-fields.d.ts → policy/output-fields.d.ts} +0 -0
  825. /package/dist/{output-fields.js → policy/output-fields.js} +0 -0
  826. /package/dist/{overlay-lint.d.ts → policy/overlay-lint.d.ts} +0 -0
  827. /package/dist/{overlay-lint.js → policy/overlay-lint.js} +0 -0
  828. /package/dist/{owner-ticket.d.ts → policy/owner-ticket.d.ts} +0 -0
  829. /package/dist/{search-globs.d.ts → policy/search-globs.d.ts} +0 -0
  830. /package/dist/{search-globs.js → policy/search-globs.js} +0 -0
  831. /package/dist/{ingress-contract.d.ts → protocol/ingress-contract.d.ts} +0 -0
  832. /package/dist/{ingress-protocol.d.ts → protocol/ingress-protocol.d.ts} +0 -0
  833. /package/dist/{ingress-protocol.js → protocol/ingress-protocol.js} +0 -0
  834. /package/dist/{listener-protocol.d.ts → protocol/listener-protocol.d.ts} +0 -0
  835. /package/dist/{peer-mcp-server.d.ts → protocol/peer-mcp-server.d.ts} +0 -0
  836. /package/dist/{peer-mcp-server.js → protocol/peer-mcp-server.js} +0 -0
  837. /package/dist/{request-id.d.ts → protocol/request-id.d.ts} +0 -0
  838. /package/dist/{request-id.js → protocol/request-id.js} +0 -0
  839. /package/dist/{routes.d.ts → protocol/routes.d.ts} +0 -0
  840. /package/dist/{routes.js → protocol/routes.js} +0 -0
  841. /package/dist/{sse.d.ts → protocol/sse.d.ts} +0 -0
  842. /package/dist/{sse.js → protocol/sse.js} +0 -0
  843. /package/dist/{terminal-protocol.js → protocol/terminal-protocol.js} +0 -0
  844. /package/dist/{webext-links.d.ts → protocol/webext-links.d.ts} +0 -0
  845. /package/dist/{webext-links.js → protocol/webext-links.js} +0 -0
  846. /package/dist/{arrival.d.ts → state/arrival.d.ts} +0 -0
  847. /package/dist/{contract-lock.d.ts → state/contract-lock.d.ts} +0 -0
  848. /package/dist/{history-state.d.ts → state/history-state.d.ts} +0 -0
  849. /package/dist/{runtime-state.d.ts → state/runtime-state.d.ts} +0 -0
  850. /package/dist/{runtime-state.js → state/runtime-state.js} +0 -0
  851. /package/dist/{starter.d.ts → state/starter.d.ts} +0 -0
  852. /package/dist/{starter.js → state/starter.js} +0 -0
  853. /package/dist/{state-portability.d.ts → state/state-portability.d.ts} +0 -0
  854. /package/dist/{state-portability.js → state/state-portability.js} +0 -0
  855. /package/dist/{versions.d.ts → state/versions.d.ts} +0 -0
  856. /package/dist/{versions.js → state/versions.js} +0 -0
  857. /package/dist/{embed.d.ts → text/embed.d.ts} +0 -0
  858. /package/dist/{embed.js → text/embed.js} +0 -0
  859. /package/dist/{mentions.d.ts → text/mentions.d.ts} +0 -0
  860. /package/dist/{mentions.js → text/mentions.js} +0 -0
  861. /package/dist/{path-refs.d.ts → text/path-refs.d.ts} +0 -0
  862. /package/dist/{path-refs.js → text/path-refs.js} +0 -0
  863. /package/dist/{shell-regions.js → text/shell-regions.js} +0 -0
  864. /package/dist/{title.d.ts → text/title.d.ts} +0 -0
  865. /package/dist/{title.js → text/title.js} +0 -0
  866. /package/src/{hostnames.test.ts → ids/hostnames.test.ts} +0 -0
  867. /package/src/{share-paths.test.ts → ids/share-paths.test.ts} +0 -0
  868. /package/src/{capability-env.ts → policy/capability-env.ts} +0 -0
  869. /package/src/{overlay-lint.test.ts → policy/overlay-lint.test.ts} +0 -0
  870. /package/src/{search-globs.test.ts → policy/search-globs.test.ts} +0 -0
  871. /package/src/{ingress-contract.test.ts → protocol/ingress-contract.test.ts} +0 -0
  872. /package/src/{peer-mcp-server.test.ts → protocol/peer-mcp-server.test.ts} +0 -0
  873. /package/src/{sse.ts → protocol/sse.ts} +0 -0
  874. /package/src/{versions.test.ts → state/versions.test.ts} +0 -0
  875. /package/src/{embed.test.ts → text/embed.test.ts} +0 -0
  876. /package/src/{mentions.test.ts → text/mentions.test.ts} +0 -0
  877. /package/src/{path-refs.test.ts → text/path-refs.test.ts} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { eventIterator, oc } from "@orpc/contract";
2
- import { IntenticLineSchema } from "../events.js";
2
+ import { IntenticLineSchema } from "../events/system-events.js";
3
3
  import { IntenticRunSchema } from "../schemas/intentic.js";
4
4
  import { OkSchema } from "../schemas/shared.js";
5
5
 
@@ -7,10 +7,8 @@ import {
7
7
  LogsListSchema,
8
8
  } from "../schemas/logs.js";
9
9
 
10
- // Daemon-owned debug logs (historyRoot/logs): terminal pipe-pane captures, intentic CLI run logs, daemon.log.
11
- // Reads are read-only by design, the files are written by the daemon/tmux only, so the record stays
12
- // trustworthy. `report` is the one write, and the exception that proves the rule: the browser is the only
13
- // witness to its own crashes, and a record it cannot reach is a record that has nothing to say about them.
10
+ // Daemon-owned debug logs (historyRoot/logs): terminal captures, CLI run logs, daemon.log; read-only, since only the
11
+ // daemon/tmux write them. `report` is the one write, since the browser is the only witness to its own crashes.
14
12
  export const logsContract = {
15
13
  list: oc
16
14
  .route({
@@ -30,15 +28,7 @@ export const logsContract = {
30
28
  })
31
29
  .input(LogReadQuerySchema)
32
30
  .output(LogReadSchema),
33
- /* What the browser saw. The counterpart to every other route here: those serve what the daemon wrote down,
34
- * this accepts what only the browser could have known.
35
- *
36
- * A WRITE from the client, which every other log route deliberately is not, and the trust argument is the
37
- * inverse of theirs: the reads are trustworthy because only the daemon writes them, and this is trustworthy
38
- * only about ITSELF. So it lands in its own file, never daemon.log, and its lines say plainly that a browser
39
- * said them. It floors at viewer rather than the maintainer the logs prefix takes, because a viewer whose
40
- * page just white-screened is exactly who needs to be able to report it, and cannot raise their own role to
41
- * do it. */
31
+ // The one write route; lands in its own file, never daemon.log, floored at viewer role for a crashed page.
42
32
  report: oc
43
33
  .route({
44
34
  method: "POST",
@@ -11,27 +11,11 @@ import {
11
11
  } from "../schemas/loops.js";
12
12
  import { OkSchema } from "../schemas/shared.js";
13
13
 
14
- /* The loop routes, "run this conversation again until the goal is met".
15
- *
16
- * TWO HALVES THAT LOOK LIKE ONE FEATURE AND ARE NOT, which is why they share a file and share nothing else.
17
- *
18
- * A RUNNING LOOP has no editor. It is started against a conversation, it converges or it gives up, and then it
19
- * is history: `start`, `stop`, and a `list` of what has run. No upsert, no enabled toggle, no id of its own,
20
- * the conversation IS the id.
21
- *
22
- * A SAVED LOOP is a manifest entry like a workflow, and gets the manifest treatment: list, save, remove. It is
23
- * the loop's MACHINERY without its goal (LoopDesignSchema says why at length), so it is authored once and
24
- * pointed at a different job every time. It has no `run` route of its own on purpose, running one is `start`
25
- * with the design's fields and the composer's sentence, so there is exactly one way a loop begins and exactly
26
- * one place that can refuse it.
27
- *
28
- * `start` acks immediately with the loop as recorded and runs detached, the same contract POST /agent keeps: the
29
- * first iteration alone can take minutes, and every surface that would render progress is already attached to
30
- * the conversation. What comes back is the record, not an outcome, the outcome arrives on the fleet card.
31
- */
14
+ // Two halves: a running loop (start/stop/list, no editor, the conversation is its id) and a saved loop
15
+ // (list/save/remove, the loop's machinery without a goal). A saved loop has no `run` of its own; running one is `start`
16
+ // with the design's fields. `start` acks at once and runs detached; the record comes back, not the outcome.
32
17
  export const loopsContract = {
33
- // Every loop this workspace has run, newest first, the record is kept after the loop ends, because "why did
34
- // it stop at iteration 4" is the question a loop is read for, and the answer is its iteration history.
18
+ // Kept after the loop ends: the iteration history is the answer to why it stopped when it did.
35
19
  list: oc
36
20
  .route({
37
21
  method: "GET",
@@ -41,12 +25,7 @@ export const loopsContract = {
41
25
  "The loops this workspace has run, newest first, kept after they end. Why it stopped on the fourth round is the question a loop gets read for, and the round-by-round history is the answer.",
42
26
  })
43
27
  .output(LoopsListSchema),
44
- /* Start looping a conversation. Rejects when that conversation is already looping, a second loop on one
45
- * agent would have two pumps racing the same worktree and the same turn mutex, and the loser would spend a
46
- * turn to discover it.
47
- *
48
- * The conversation need not exist yet: a loop against a fresh id opens it, exactly as a first chat turn
49
- * does, which is what lets "run this until it's green" be the FIRST thing said to a new agent. */
28
+ // Rejects an already-looping conversation; a fresh conversation id opens it, like a first turn.
50
29
  start: oc
51
30
  .route({
52
31
  method: "POST",
@@ -57,12 +36,7 @@ export const loopsContract = {
57
36
  })
58
37
  .input(LoopSchema)
59
38
  .output(LoopRecordSchema),
60
- /* Stop the loop, leaving the turn in flight alone.
61
- *
62
- * The split is deliberate and it is the one thing about this route that has to be right: stopping a LOOP
63
- * means "do not start another iteration", not "kill what is running". A user watching iteration 6 do good
64
- * work should be able to say "this is the last one" without throwing that work away. Killing the turn is
65
- * what /agent/stop is for, and pressing both is the ordinary way to abandon a loop outright. */
39
+ // Stops future rounds only; the round in flight keeps going. Use /agent/stop to kill it too.
66
40
  stop: oc
67
41
  .route({
68
42
  method: "POST",
@@ -74,8 +48,7 @@ export const loopsContract = {
74
48
  .input(LoopIdParamSchema)
75
49
  .output(OkSchema),
76
50
 
77
- // Every saved loop. A literal path segment under /loops rather than a surface of its own, because a saved
78
- // loop is not a different feature, it is the same loop with its goal left blank until somebody types one.
51
+ // A saved loop is the same loop with its goal left blank, not a separate feature.
79
52
  designs: oc
80
53
  .route({
81
54
  method: "GET",
@@ -85,10 +58,7 @@ export const loopsContract = {
85
58
  "Loops somebody authored once and can point at a different job each time. A saved loop is the same loop with its goal left blank until you type one, not a different feature.",
86
59
  })
87
60
  .output(LoopDesignsListSchema),
88
- /* Create or replace a saved loop, with the operation explicit so a name collision cannot turn a create into
89
- * a replacement. Refuses a design that could never finish, nothing to produce and nothing to check, with
90
- * the same sentence `start` refuses an ad-hoc loop for, because it is the same mistake made earlier and
91
- * catching it at save time is the whole advantage of saving. */
61
+ // Names create vs replace explicitly, rather than upserting; refuses a design with nothing to produce or check.
92
62
  saveDesign: oc
93
63
  .route({
94
64
  method: "POST",
@@ -99,8 +69,7 @@ export const loopsContract = {
99
69
  })
100
70
  .input(LoopDesignSaveSchema)
101
71
  .output(LoopDesignSchema),
102
- // Deleting a saved loop does NOT stop a loop running from it: a running loop copied the fields it needed
103
- // when it started, so it converges or gives up on its own terms, and its record stays readable.
72
+ // Deleting a design does not stop a loop running from it; it already copied the fields it needed.
104
73
  removeDesign: oc
105
74
  .route({
106
75
  method: "DELETE",
@@ -13,23 +13,9 @@ import {
13
13
  } from "../schemas/personas.js";
14
14
  import { OkSchema } from "../schemas/shared.js";
15
15
 
16
- /* The sandbox's named personas (PersonaSchema): which connected accounts each one speaks for, what a session
17
- * wearing it may do, where it works, and what it is told. The card half is a plain three-verb CRUD with no apply
18
- * step, because a card provisions NOTHING, unlike a capability, saving one connects nothing, installs nothing
19
- * and spends nothing. It records a decision about accounts that already exist.
20
- *
21
- * The file behind it is committed workspace config (personas/personas-store.ts), so these routes are one of
22
- * two equally supported ways to edit them: this, and opening the file in the editor like any other project
23
- * config. Neither is the "real" one, which is why `save` is a whole-card upsert rather than a field patch, so
24
- * a round trip through the UI leaves a diff a reviewer would recognise.
25
- *
26
- * THE KIT ROUTES BELOW EDIT FILES, not the card, and they are here rather than on the skills contract because
27
- * what they write belongs to one persona: its prompt, and the skills only its turns can reach
28
- * (personas/persona-kit.ts). The sandbox's `skills` domain answers "what does the agent know" for every chat;
29
- * this answers "what does this card carry", and the two lists are different questions with different answers.
30
- *
31
- * Per-verb routes rather than one whole-kit PUT: a kit is a directory of files somebody edits one at a time, and
32
- * a save that shipped the whole folder would make an edit to one skill capable of deleting another. */
16
+ // Named personas (PersonaSchema): accounts each speaks for, what it may do, what it is told. Card CRUD provisions
17
+ // nothing, only a decision about existing accounts. The kit routes below edit its files (prompt, skills only its turns
18
+ // reach) per verb, not one whole-kit PUT, so one skill's edit cannot delete another.
33
19
  export const personasContract = {
34
20
  list: oc
35
21
  .route({
@@ -51,14 +37,8 @@ export const personasContract = {
51
37
  })
52
38
  .input(PersonaSchema)
53
39
  .output(OkSchema),
54
- /* Removing a card takes away a persona, never an account: the login it named stays connected and reachable from
55
- * every other surface. What it CAN do is orphan a reference, an automation pinned to this id now names a
56
- * card that no longer exists, and the resolver reads that as "no accounts at all" rather than "all of
57
- * them", so the automation goes quiet instead of posting as somebody unintended. */
58
- /* Removing a card takes away a persona, never an account: the login it named stays connected and reachable from
59
- * every other surface. It DOES take the card's kit with it, a folder no card can reach is a folder no list
60
- * shows, and leaving the owner's prompt and skills orphaned on disk is worse than deleting what they just
61
- * asked to delete. */
40
+ // Never removes the account; an automation pinned to this id resolves as no accounts, and goes quiet.
41
+ // Also deletes the persona's kit folder (prompt + skills), rather than leaving it orphaned on disk.
62
42
  remove: oc
63
43
  .route({
64
44
  method: "DELETE",
@@ -70,22 +50,19 @@ export const personasContract = {
70
50
  .input(PersonaIdParamSchema)
71
51
  .output(OkSchema),
72
52
 
73
- /* WHICH CARD A NEW CHAT BELONGS TO, asked by the composer before the first turn and answered by the
74
- * `persona-router` helper role (the sandbox's agent/persona-router.ts). A READ that spends a small model
75
- * call, which is why it is a POST: it is not idempotent in cost, only in effect. Nothing is applied here; the
76
- * composer applies the answer, or shows it, under the `personaRouting` setting. */
53
+ // Costs a model call, hence POST though a read; the chat that asked applies the answer, this only reports it.
77
54
  route: oc
78
55
  .route({
79
56
  method: "POST",
80
57
  path: "/personas/route",
81
58
  summary: "Which persona a new chat belongs to",
82
59
  description:
83
- "Reads the message a chat is about to open with, and one line per persona, and names the card it belongs to, or none. Costs one small model call on the persona-routing list. Nothing is applied: the composer shows or applies the answer according to the persona routing setting.",
60
+ "Reads the message a chat has just been sent, and one line per persona, and names the card it belongs to, or none, along with the model that answered. Costs one small model call on the persona-routing list, and says so. Nothing is applied here: the chat that asked puts the card on, and only when the persona routing setting is on.",
84
61
  })
85
62
  .input(PersonaRouteAskSchema)
86
63
  .output(PersonaRouteSchema),
87
64
 
88
- // ---- the kit: what this card is told, and the skills only it reaches ----
65
+ // The kit: what this card is told, and the skills only it reaches.
89
66
 
90
67
  kit: oc
91
68
  .route({
@@ -97,8 +74,7 @@ export const personasContract = {
97
74
  })
98
75
  .input(PersonaIdParamSchema)
99
76
  .output(PersonaKitSchema),
100
- // An empty prompt DELETES the file rather than storing a blank one, so "custom with nothing written" is one
101
- // state instead of two, the resolver falls back to the sandbox's prompt for it (personas.ts personaPrompt).
77
+ // An empty prompt deletes the file rather than storing a blank; it then falls back to the sandbox's own prompt.
102
78
  savePrompt: oc
103
79
  .route({
104
80
  method: "POST",
@@ -118,8 +94,7 @@ export const personasContract = {
118
94
  })
119
95
  .input(PersonaSkillNameSchema)
120
96
  .output(PersonaSkillBodySchema),
121
- // Upsert by name, like the sandbox's own skills, and with no enabled list to write, because a kit skill is
122
- // on exactly when its persona is worn. That is what "specific to that persona" has to mean.
97
+ // Upsert by name, no enabled list to write: a kit skill is on exactly when its persona is worn.
123
98
  saveSkill: oc
124
99
  .route({
125
100
  method: "POST",
@@ -2,24 +2,11 @@ import { oc } from "@orpc/contract";
2
2
  import { NativeProviderParamSchema } from "../schemas/agent.js";
3
3
  import { ModelsSchema } from "../schemas/provider-oauth.js";
4
4
 
5
- // EVERY NATIVE PROVIDER'S PICKER CATALOG, ON ONE ROUTE.
6
- //
7
- // There were five of these: /claude/models, /codex/models, /grok/models, /kimi/models, /gemini/models, one per
8
- // provider, each a contract entry, a route factory and a service field wired separately. They differed in
9
- // nothing: same method, same output schema, same "the daemon's catalog for this provider, never empty". Three of
10
- // the five route files were the same fifteen lines with a name swapped, and the daemon paid for that shape twice
11
- // more in the branch chains that had to fan back out over the providers to ask them all the same question.
12
- //
13
- // So the provider is a PARAMETER, not five routes. Adding one is a row in the daemon's catalog registry, the
14
- // same discipline the adapter registry already applies to serving a turn, rather than a vertical slice through
15
- // the contract, the router, the service container and every test double.
16
- //
17
- // Endpoints keep their own route (endpoints.contract.ts) and should: they are user-created and unbounded, their
18
- // id names a capability that may not exist, and a missing one is a NOT_FOUND rather than an empty catalog. That
19
- // is a different question with a different failure, not a sixth provider.
5
+ // The provider is a parameter, not a route per provider; adding one is a row in the catalog registry. Endpoints keep
6
+ // their own route (endpoints.contract.ts): they are user-created and unbounded, and a missing one is NOT_FOUND, not an
7
+ // empty catalog.
20
8
  export const providersContract = {
21
- // One provider's models (+ its default id), never empty, live discovery with a persisted/seed floor behind
22
- // it. Order is the provider's own preference order and is not re-ranked here; see ModelsSchema.
9
+ // Never empty: live discovery with a persisted/seed floor; order is the provider's own, not re-ranked.
23
10
  models: oc
24
11
  .route({
25
12
  method: "GET",
@@ -1,46 +1,24 @@
1
1
  import { eventIterator, oc } from "@orpc/contract";
2
2
  import { z } from "zod";
3
- import { AgentEventSchema } from "../events.js";
4
- import { RunnerFactsSchema, RunnerSyncLineSchema, RunnerSyncSchema, RunnerTurnSchema } from "../runner-protocol.js";
3
+ import { AgentEventSchema } from "../events/agent-events.js";
4
+ import { RunnerFactsSchema, RunnerSyncLineSchema, RunnerSyncSchema, RunnerTurnSchema } from "../protocol/runner-protocol.js";
5
5
  import { EditorContextSchema } from "../schemas/agent.js";
6
6
  import { AgentReplySchema } from "../schemas/plan-limits.js";
7
7
  import { OkSchema } from "../schemas/shared.js";
8
8
 
9
- /* What a RUNNER can be asked, over the socket it opened to its parent sandbox. Phase-1 skeleton: the shape is
10
- * decided (docs/remote-runners-plan.md §5, workspace root), the implementations land with runner mode.
11
- *
12
- * Same inversion as hostContract: the runner dialled, but the runner is the oRPC SERVER and the parent holds
13
- * the client, because a runner sits behind NAT or inside a Fly private network and can only ever be the side
14
- * that connects. No `.route()` on these, the link never touches HTTP; the procedure path IS the address.
15
- *
16
- * TYPED THROUGHOUT, where hostContract keeps its deliberate `mcp` hole, and the difference is who releases
17
- * what. A machine's tools must outlive the daemon's release cycle, so their schemas stay on the machine. A
18
- * runner IS this daemon, the same image the parent runs, released together by construction, so an untyped
19
- * channel would buy independence nobody has while costing the parent's persistence layer its guarantee that
20
- * every frame is exactly what a local turn would have produced. */
9
+ // What a runner can be asked, over the socket it opened; same inversion as hostContract, the runner is the oRPC server,
10
+ // the parent the client. No `.route()`: the procedure path is the address. Typed throughout, unlike hostContract's
11
+ // `mcp` hole, since a runner is the same daemon image as the parent, released together.
21
12
  export const runnerContract = {
22
- // What this runner is, hardware-wise: pulled after the socket authenticates and again whenever the
23
- // placement picker wants it fresh. Parity facts (image, overlay hash) ride the hello instead, they change
24
- // only with a rebuild, which drops the socket anyway.
13
+ // Hardware facts, refreshed on demand; parity facts (image, overlay hash) ride the hello, not this call.
25
14
  describe: oc.output(RunnerFactsSchema),
26
- // Bring the runner's checkout of one conversation's branch up to date (`pull`), or return the result
27
- // after a turn (`push`). Streamed: a first sync clones repositories, and a person may be watching.
15
+ // `pull` updates the checkout, `push` returns a turn's result; streamed since a first sync clones repos.
28
16
  syncWorkspace: oc.input(RunnerSyncSchema).output(eventIterator(RunnerSyncLineSchema)),
29
- // The dispatch: one turn in, the frames a local turn would have produced out. The parent republishes them
30
- // into the same pipeline local frames enter, which is the whole "feels local" mechanism.
17
+ // One turn in, the frames a local turn would produce out; the parent republishes them into the local pipeline.
31
18
  runTurn: oc.input(RunnerTurnSchema).output(eventIterator(AgentEventSchema)),
32
- /* THE USER, REACHING THE TURN THEY ARE WATCHING. A remote turn's question, permission prompt and plan
33
- * approval are minted in the RUNNER's request registry, and the answer arrives at the PARENT (that is
34
- * where the browser is). So it travels back down the same socket and is applied there by the same code a
35
- * local answer takes (agent/turn-interactions.ts).
36
- *
37
- * `applied` rather than a throw: "nothing holds that id any more" is an ordinary race (the card was
38
- * answered in another window, or the turn ended while the user was reading), and the parent turns it
39
- * into the same NOT_FOUND its local path gives. */
19
+ // Returns `applied` rather than throwing: a missing id is an ordinary race, same as local NOT_FOUND.
40
20
  reply: oc.input(AgentReplySchema).output(z.object({ applied: z.boolean() })),
41
- /* Speaking into a running remote turn. The parent sends the user's words, the attachment paths and the
42
- * editor context UNCOMPOSED: the note over those paths has to be built against the runner's own
43
- * workspace root, since that is the machine whose files the agent will open. */
21
+ // Attachments/editor context travel uncomposed: the note must build against the runner's own workspace root.
44
22
  steer: oc
45
23
  .input(
46
24
  z.object({
@@ -51,15 +29,10 @@ export const runnerContract = {
51
29
  }),
52
30
  )
53
31
  .output(z.object({ applied: z.boolean(), invalid: z.string().optional() })),
54
- /* The parent pushing its declared shape onto this runner: a settings-only definition (sandbox.toml text,
55
- * runner-protocol.ts's hello says why settings are all a runner declares). REPLACE semantics, not the
56
- * owner-facing apply's merge-beside: a key the definition omits returns to its default, because the parent
57
- * is a runner's whole authority and "make this runner match" must also unset what the parent unset. The
58
- * answer names the keys now holding non-default values, which is what the parent adopts as the runner's
59
- * new declared shape without waiting for a reconnect. */
32
+ // REPLACE semantics: a key the definition omits returns to its default, unlike the owner apply's merge-beside.
60
33
  applyDefinition: oc.input(z.object({ toml: z.string() })).output(z.object({ settings: z.array(z.string()) })),
61
34
  // Stop the running turn; the parent's stop button reaching through.
62
35
  interrupt: oc.input(RunnerTurnSchema.pick({ conversationId: true })).output(OkSchema),
63
- // Liveness, driven by the parent: keepalive and gone-detection in one, the host hub's heartbeat verbatim.
36
+ // Liveness driven by the parent: keepalive and gone-detection in one.
64
37
  ping: oc.output(OkSchema),
65
38
  };
@@ -1,18 +1,11 @@
1
1
  import { oc } from "@orpc/contract";
2
- import { SafetyLogEntrySchema, SafetyPolicySchema } from "../safety-policy.js";
2
+ import { SafetyLogEntrySchema, SafetyPolicySchema } from "../policy/safety-policy.js";
3
3
  import { OkSchema } from "../schemas/shared.js";
4
4
  import { z } from "zod";
5
5
 
6
- /* The owner's safety policy (.intentic/config/safety.md) and the log of what it decided.
7
- *
8
- * ITS OWN ROUTES RATHER THAN A FIELD ON /settings, and the split is the same one `rule-firings` already draws
9
- * next door: the policy is a DOCUMENT edited at human speed, and the log is a value that changes on its own
10
- * several times a turn. Folding either into the settings object would put a self-changing value inside the
11
- * thing a screen optimistically patches, and would make every judged command a settings write.
12
- *
13
- * The policy is also the only config file here whose reader is a model rather than a parser, so it travels as
14
- * text and is never parsed on the way through: whatever the owner wrote is what the judge reads.
15
- */
6
+ // Owner's safety policy (.intentic/config/safety.md) and the log of what it decided. Own routes, not a /settings field:
7
+ // the policy is a document edited at human speed, the log changes on its own mid-turn. The policy travels as text,
8
+ // never parsed, since its reader is a model, not a parser.
16
9
  export const safetyContract = {
17
10
  policy: oc
18
11
  .route({
@@ -33,9 +26,7 @@ export const safetyContract = {
33
26
  })
34
27
  .input(z.object({ text: z.string().describe("The policy, as you want it written.") }))
35
28
  .output(OkSchema),
36
- // What the policy actually did, newest first. The half of the Safety page that makes the other half
37
- // writable: nobody can author a policy for behaviour they cannot see, and a column of verdicts is what
38
- // teaches an owner which line to add next.
29
+ // Verdicts teach the owner which policy line to add next; answers why you weren't asked about something.
39
30
  log: oc
40
31
  .route({
41
32
  method: "GET",
@@ -13,11 +13,9 @@ import {
13
13
  } from "../schemas/secrets.js";
14
14
  import { OkSchema } from "../schemas/shared.js";
15
15
 
16
- // User-supplied env-var secrets, written to the sandbox's gitignored desired-state/.env (which
17
- // `apply` reloads each run, no restart). `set` upserts one KEY=value, `remove` deletes it; `list` returns the
18
- // keys present. `inventory` aggregates every secret store into one view (keys + status + provenance, never
19
- // values). `reveal` is the single value-returning route, owner-only, POST so the key never sits in a URL.
20
- // set/remove/list/reveal refuse until DevOps has scaffolded the desired-state repo; inventory always answers.
16
+ // User-supplied secrets, in the gitignored desired-state/.env; `apply` reloads them, no restart. `inventory` aggregates
17
+ // every store (never values) and always answers; the rest refuse until desired-state is scaffolded. `reveal` alone
18
+ // returns a value, owner-only, POST so the key avoids the URL.
21
19
  export const secretsContract = {
22
20
  set: oc
23
21
  .route({
@@ -65,23 +63,7 @@ export const secretsContract = {
65
63
  })
66
64
  .input(SecretKeyParamSchema)
67
65
  .output(SecretRevealSchema),
68
- /* THE APPROVAL GATES, four routes with three different audiences, which is why they are worth reading as a
69
- * group.
70
- *
71
- * `gates` is READ BY EVERYONE who needs to explain the sandbox to itself: the Secrets view draws a badge
72
- * from it, and the AGENT is allowed it too (auth/grants.ts), because a model that cannot see which
73
- * credentials are gated cannot tell "not connected" from "needs Bob", and the difference decides whether
74
- * its next move is to ask a person or to go looking for another road. It answers names, subjects and
75
- * approver addresses; there is nothing else in it to leak.
76
- *
77
- * `setGate` and `removeGate` are the OWNER's alone, enforced in-route with authorizeOwner rather than by
78
- * the /secrets role floor, because the floor is maintainer and a maintainer is exactly who a gate is
79
- * sometimes written about. The policy lives off the workspace beside the credential vault for the same
80
- * reason the vault does: `.intentic/config/` is tracked and agent-editable, so a gate stored there would
81
- * be a lock whose key is in the room with the agent.
82
- *
83
- * `request` is the AGENT's door, and the only one of the four that can park a turn: it raises the release
84
- * card and waits, so a gated account can be asked for rather than merely discovered to be absent. */
66
+ // Gate policy lives off the workspace, not in agent-editable `.intentic/config/`, so agents can't hold the key.
85
67
  gates: oc
86
68
  .route({
87
69
  method: "GET",
@@ -1,6 +1,6 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { z } from "zod";
3
- import { SessionTranscriptSchema } from "../events.js";
3
+ import { SessionTranscriptSchema } from "../events/transcript.js";
4
4
  import { SessionIdParamSchema, SessionsListSchema } from "../schemas/sessions.js";
5
5
 
6
6
  // Past conversations in this workspace (the SDK-native session store, keyed on the working dir, which for a
@@ -3,13 +3,9 @@ import { BuiltinPromptSchema, BuiltinPromptTextSchema, RuleFiringsSchema, Sandbo
3
3
  import { OkSchema } from "../schemas/shared.js";
4
4
  import { DayWindowQuerySchema } from "../schemas/usage.js";
5
5
 
6
- // Per-sandbox agent settings (.intentic/config/settings.json). `get` returns the current flags with defaults applied
7
- // when the file is absent; `set` overwrites them. `savings` reports what each token-reduction mechanism was
8
- // worth, the cleaners' realized per-command savings over an inclusive
9
- // UTC day window, the same one the spend ledger takes, so a screen can filter both with one calendar.
10
- // `builtinPrompt` returns one of the two built-in system prompts as text. Intentic's own, or Claude Code's
11
- // read out of the installed CLI, so the settings page can SHOW the prompt behind a mode instead of asking the
12
- // user to trust a description of it, and can fork either into a custom one.
6
+ // Per-sandbox agent settings (.intentic/config/settings.json); `get` fills defaults for an absent file, `set`
7
+ // overwrites whole. `savings` measures each token-reduction mechanism's worth over the same UTC day window the spend
8
+ // ledger takes. `builtinPrompt` returns a built-in prompt's actual text to show or fork.
13
9
  export const settingsContract = {
14
10
  get: oc
15
11
  .route({
@@ -48,9 +44,7 @@ export const settingsContract = {
48
44
  })
49
45
  .input(BuiltinPromptSchema)
50
46
  .output(BuiltinPromptTextSchema),
51
- // When each rule last did something, keyed by rule id. Its own route rather than a field on the settings
52
- // object because a firing is not an edit: folding it in would make every push a settings write, and would
53
- // put a value that changes on its own inside the object the screen optimistically patches.
47
+ // Own route, not a settings field: a firing isn't an edit, so it shouldn't cost a settings write.
54
48
  firings: oc
55
49
  .route({
56
50
  method: "GET",
@@ -2,15 +2,9 @@ import { oc } from "@orpc/contract";
2
2
  import { ShareCreateSchema, SharedConversationSchema, ShareListSchema, ShareRemoveSchema, ShareUpdateSchema } from "../schemas/share.js";
3
3
  import { OkSchema } from "../schemas/shared.js";
4
4
 
5
- /* Conversations published as read-only pages (see schemas/share.ts).
6
- *
7
- * Its own group rather than two more routes on `public`, because the two speak different path spaces and mean
8
- * different things by "publish". The outbox's routes take a path in the workspace and copy the bytes at it; a
9
- * share takes a CONVERSATION ID and renders something that did not exist as a file until it was asked for.
10
- * Folding them together would have `publish` accept two unrelated kinds of input distinguished by a flag.
11
- *
12
- * There is no route to read a share back. The page is the read, it answers on the unauthenticated
13
- * `public-<slot>` hostname like every other published file, which is the point of having made one. */
5
+ // Conversations published as read-only pages. Separate from `public`: a share takes a conversation id and renders it,
6
+ // `public` copies bytes at a workspace path. No route reads a share back, the page itself is the read, on the
7
+ // unauthenticated `public-<slot>` hostname.
14
8
  export const shareContract = {
15
9
  list: oc
16
10
  .route({
@@ -2,19 +2,9 @@ import { oc } from "@orpc/contract";
2
2
  import { SkillBodySchema, SkillDraftSchema, SkillIdSchema, SkillRemoveSchema, SkillsListSchema } from "../schemas/settings.js";
3
3
  import { OkSchema } from "../schemas/shared.js";
4
4
 
5
- /* WHAT THE AGENT KNOWS RIGHT NOW, and which half of it the owner controls.
6
- *
7
- * Its own domain rather than three more routes on `settings`, because only one of the four sources it reads is
8
- * the settings file: the rest are the owner's own skill store, the plugin checkouts a capability cloned, and the
9
- * skills folders inside installed extensions. `list` is the join of all four (skill-inventory.ts).
10
- *
11
- * The ENABLED half still rides the settings object's `skills` array, that array is what the reconciler
12
- * converges and what the boot path already reads, so a switch on this list is an ordinary settings write and
13
- * there is exactly one place that decides which skills exist on disk. `save` and `remove` write the text AND
14
- * that array together, which is why they are here rather than being two calls a screen has to sequence.
15
- *
16
- * `read` is a GET with the id in the query rather than in the path: an id can name an owner
17
- * (`extension:intentic.knowledge:knowledge`), and a path template cannot carry those segments. */
5
+ // What the agent knows and which half the owner controls; `list` joins four sources (settings, owner's own, plugin
6
+ // checkouts, extension folders). The enabled half rides settings' `skills` array; `save`/`remove` write text and that
7
+ // array together. `read` takes the id in the query, since an id can name an owner and won't fit a path template.
18
8
  export const skillsContract = {
19
9
  list: oc
20
10
  .route({
@@ -35,8 +25,7 @@ export const skillsContract = {
35
25
  })
36
26
  .input(SkillIdSchema)
37
27
  .output(SkillBodySchema),
38
- // Upsert by name: saving over an existing skill rewrites it, which is also how one is renamed (the old name
39
- // is a different skill and is deleted on its own). A saved skill is switched ON, you wrote it to use it.
28
+ // Upsert by name; renaming saves under a new name and deletes the old. Saving switches a skill on.
40
29
  save: oc
41
30
  .route({
42
31
  method: "POST",