@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,6 +1,7 @@
1
1
  import { eventIterator, oc } from "@orpc/contract";
2
2
  import { z } from "zod";
3
- import { SessionTranscriptSchema, SystemEventSchema } from "../events.js";
3
+ import { SessionTranscriptSchema } from "../events/transcript.js";
4
+ import { SystemEventSchema } from "../events/system-events.js";
4
5
  import {
5
6
  DeviceAgentFlowInputSchema,
6
7
  DeviceCommandInputSchema,
@@ -10,7 +11,7 @@ import {
10
11
  } from "../schemas/devices.js";
11
12
  import { PresenceReportSchema } from "../schemas/logs.js";
12
13
  import { OkSchema } from "../schemas/shared.js";
13
- import { DaemonSessionSchema, InfoSchema, ManifestProblemsSchema } from "../schemas/system.js";
14
+ import { DaemonSessionSchema, InfoSchema, ManifestProblemsSchema, ManifestRepairSchema } from "../schemas/system.js";
14
15
  import {
15
16
  BrowserNameParamSchema,
16
17
  BrowsersListSchema,
@@ -23,11 +24,9 @@ import {
23
24
  } from "../schemas/terminal.js";
24
25
  import { UsageSummarySchema } from "../schemas/usage.js";
25
26
 
26
- // Sandbox status + identity, the long-lived liveness stream, and the connect-token-relayed host tunnel.
27
- // `events` interleaves heartbeat frames (browser holds it open to detect the sandbox dying instantly) with
28
- // workspaceChanged batches (live file tree/viewer refresh) and presence roster snapshots until the request
29
- // aborts. `clientId` is the tab's per-connection presence key; absent (an older web client) means the
30
- // connection simply never joins the roster.
27
+ // Sandbox status/identity, the long-lived liveness stream, and the connect-token-relayed host tunnel. `events`
28
+ // interleaves heartbeats, workspaceChanged batches and presence snapshots until the request aborts. `clientId` is this
29
+ // tab's presence key; omitting it means never joining the roster.
31
30
  export const systemContract = {
32
31
  info: oc
33
32
  .route({
@@ -38,9 +37,7 @@ export const systemContract = {
38
37
  "The sandbox's own identity and state: which workspace it holds, which image it runs, what it is called, and the list of calls it actually implements. Start here, because a browser is routinely newer than the sandbox it is talking to and this is how it finds out what is there.",
39
38
  })
40
39
  .output(InfoSchema),
41
- // What the daemon could not read in its own `.intentic/` manifests, a file it fell back on, a key it did
42
- // not recognise, an entry it skipped. Its own route rather than a field on /info because it is invalidated
43
- // by a different thing: a manifest changing on disk, which the workspace-state table already broadcasts.
40
+ // Own route, not a field on /info: it goes stale on a manifest changing on disk, not on identity changing.
44
41
  manifestProblems: oc
45
42
  .route({
46
43
  method: "GET",
@@ -50,8 +47,18 @@ export const systemContract = {
50
47
  "Anything the daemon tripped over in its own configuration on disk: a file it had to fall back from, a key it did not recognise, an entry it skipped. Separate from the identity call because it goes stale for a different reason, namely a file changing.",
51
48
  })
52
49
  .output(ManifestProblemsSchema),
53
- // Exchange the request's verified bearer (a Google ID token, or a still-valid session, which makes this
54
- // route sliding renewal) for a daemon-minted session, the credential every steady-state call presents.
50
+ // Removes or renames only a key, never a value; writes queue through the owning store, not racing a live save.
51
+ repairManifest: oc
52
+ .route({
53
+ method: "POST",
54
+ path: "/system/manifest-problems/repair",
55
+ summary: "Take a stray setting out of a file",
56
+ description:
57
+ "Removes a key the sandbox does not recognise from one of its settings files, or renames it to the one it was probably meant to be, keeping the value. Only the files a person hand-edits can be named, and only a key — never a value — so this can only ever remove something already being ignored. Renaming onto a key the file already has is refused instead of overwriting it.",
58
+ })
59
+ .input(ManifestRepairSchema)
60
+ .output(OkSchema),
61
+ // Trades a verified bearer or unexpired session for a fresh daemon session; calling it again renews it.
55
62
  session: oc
56
63
  .route({
57
64
  method: "POST",
@@ -91,10 +98,7 @@ export const systemContract = {
91
98
  description: "Token and cost totals per account, added up from the record of every finished turn.",
92
99
  })
93
100
  .output(UsageSummarySchema),
94
- // The web-owned tmux sessions behind the terminal tabs. `terminals` enumerates them (the panel rebuilds a tab
95
- // per name on load/reload); `killTerminal` destroys one when its tab's close button is clicked. The live I/O
96
- // is the separate /system/terminal WebSocket, these are just the control plane. Bearer-authed like the rest
97
- // (browser fetch sends the header), unlike the header-less WS route which app.ts exempts.
101
+ // Control plane only; live I/O is /system/terminal WebSocket, exempt from the Bearer auth these routes take.
98
102
  terminals: oc
99
103
  .route({
100
104
  method: "GET",
@@ -113,9 +117,7 @@ export const systemContract = {
113
117
  })
114
118
  .input(TerminalNameParamSchema)
115
119
  .output(OkSchema),
116
- // One session's pane history as selectable text, the answer to "scroll back and copy that" in a surface
117
- // whose live view is a tmux client on the alternate screen, where the scrollback is on the far side of the
118
- // socket and the page has nothing to select. See TerminalScrollbackSchema.
120
+ // Scrollback as selectable text; the live view is a tmux alternate screen, with nothing in the page to select.
119
121
  terminalScrollback: oc
120
122
  .route({
121
123
  method: "GET",
@@ -126,11 +128,7 @@ export const systemContract = {
126
128
  })
127
129
  .input(TerminalScrollbackQuerySchema)
128
130
  .output(TerminalScrollbackSchema),
129
- // The agent's live Chromiums and the pages each has open, the Browsers view's roster, polled while it is on
130
- // screen and by the rail so its tile can appear the moment a turn starts browsing. The frames are the
131
- // separate /system/browser-view WebSocket; this is the control plane, exactly as `terminals` is for tmux.
132
- // `closeBrowser` shuts one Chromium down: the agent's next browser tool call then fails as if it had crashed,
133
- // which is the honest account of the owner pulling the plug.
131
+ // Control plane like `terminals`; frames stream separately. `closeBrowser` fails the next call as crashed.
134
132
  browsers: oc
135
133
  .route({
136
134
  method: "GET",
@@ -150,13 +148,7 @@ export const systemContract = {
150
148
  })
151
149
  .input(BrowserNameParamSchema)
152
150
  .output(OkSchema),
153
- // The agents this sandbox's agents started. SDK subagents and delegated Codex/Grok runs alike (see
154
- // SubagentSessionSchema). Same two-route shape as the browsers above, and same division of labour: the list
155
- // is polled by the Subagents area while it is on screen and loosely by the rail, so its tile can appear the
156
- // moment a turn delegates. There is no third WebSocket here, because a subagent has no byte stream to watch,
157
- // what you watch it through is its TRANSCRIPT, which `subagentTranscript` serves in the one shape every
158
- // other transcript route already answers in: live from the parent turn's frame log while it runs, off the
159
- // provider's own store once it has finished.
151
+ // SDK subagents and delegated runs alike; watched via transcript, not a socket, live then from stored history.
160
152
  subagents: oc
161
153
  .route({
162
154
  method: "GET",
@@ -176,13 +168,7 @@ export const systemContract = {
176
168
  })
177
169
  .input(SubagentIdParamSchema)
178
170
  .output(SessionTranscriptSchema),
179
- /* Start, stop, restart, update, rebuild, roll back or remove a sandbox on one of the user's own devices,
180
- * the Devices view's buttons, relayed to the machine over the socket it holds open to us.
181
- *
182
- * Streamed because the slowest of these takes minutes, and it is the same stream whatever the op: one door
183
- * for one decision, so the view has one shape to render rather than one per duration. The daemon adds no
184
- * judgement, the machine enforces its own switches and its refusal arrives as the terminal `error` line,
185
- * in its own words, naming the control to flip. */
171
+ // One stream for every op; the daemon adds no judgment, a refusal is the machine's own `error` line.
186
172
  manageDeviceSandbox: oc
187
173
  .route({
188
174
  method: "POST",
@@ -193,12 +179,7 @@ export const systemContract = {
193
179
  })
194
180
  .input(DeviceSandboxFlowInputSchema)
195
181
  .output(eventIterator(DeviceFlowLineSchema)),
196
- /* Run one of this product's own CLI actions on a connected device, from a button rather than through an
197
- * agent. A closed set of names, and the daemon builds the command line from the name (see the schema): the
198
- * browser never sends one, because the socket underneath also carries `run_command`.
199
- *
200
- * Not a stream, unlike the sandbox ops beside it: these are seconds-long CLI calls whose whole answer is the
201
- * sentence they print at the end, and a stream for that is a shape with nothing to put in it. */
182
+ // Closed set of actions; the daemon builds the command line, not the caller. One sentence is the whole answer.
202
183
  runDeviceCommand: oc
203
184
  .route({
204
185
  method: "POST",
@@ -209,14 +190,7 @@ export const systemContract = {
209
190
  })
210
191
  .input(DeviceCommandInputSchema)
211
192
  .output(DeviceCommandResultSchema),
212
- /* Update or restart the agent on one of the user's own devices — the remedy the Devices view used to print
213
- * as a command to go and type, on the view built to replace that terminal.
214
- *
215
- * Streamed like the sandbox ops, and for a reason of its own: this is the one call whose transport the work
216
- * destroys. Both ops stop the resident process holding the socket, so the stream ends WITHOUT a terminal
217
- * frame in the ordinary, successful case, and callers must read that as "it started" rather than as a
218
- * failure (DeviceAgentFlowSchema has the whole argument). The confirmation is the device's agent version
219
- * moving on the next read of the fleet. */
193
+ // The stream usually ends without a frame; a bare stop means success, the device's version confirms it later.
220
194
  runDeviceAgentFlow: oc
221
195
  .route({
222
196
  method: "POST",
@@ -3,18 +3,13 @@ import { z } from "zod";
3
3
  import { LimitResetClaimSchema, LimitResetStatusSchema } from "../schemas/plan-limits.js";
4
4
  import { DayWindowQuerySchema, UsageRollupSchema } from "../schemas/usage.js";
5
5
 
6
- // The one control over the headroom readings a person has: measure again, now, every connection. `force`
7
- // ignores the freshness the daemon otherwise honours (a reading from the last minute is what the provider
8
- // would answer again), because the person pressing it has just changed something about an account and is
9
- // asking whether what they can see survived it.
6
+ // `force` ignores the daemon's freshness window and measures now instead of reusing a recent reading.
10
7
  export const RefreshPlanLimitsSchema = z.object({
11
8
  force: z.boolean().default(false).describe("Measure again even if a reading was taken a moment ago."),
12
9
  });
13
10
 
14
- // The durable spend ledger (see UsageTurnSchema). Read-only over the wire, rows are appended daemon-side at
15
- // turn end, so the ledger stays a trustworthy record of what was actually spent, the same principle as the
16
- // activity log. `rollup` serves every cost/usage panel: it groups by day × provider × account × model, and the
17
- // browser re-projects from there (spend per day, cost by model, cache hit rate) without another round trip.
11
+ // Durable spend ledger, read-only over the wire; rows are appended daemon-side at turn end.
12
+ // `rollup` groups by day, provider, account and model, so every cost panel re-projects from this one answer.
18
13
  export const usageContract = {
19
14
  rollup: oc
20
15
  .route({
@@ -26,9 +21,7 @@ export const usageContract = {
26
21
  })
27
22
  .input(DayWindowQuerySchema)
28
23
  .output(UsageRollupSchema),
29
- // Not the ledger's business, but the same tab: the plan-limit readings behind every ring, re-measured on
30
- // request for every provider at once. The readings themselves arrive on /events as they land, and on the
31
- // account lists afterwards; this answers once the sweep is done or its deadline passes.
24
+ // Re-measures every account's plan limits on request; readings also arrive via /events and account lists otherwise.
32
25
  refreshPlanLimits: oc
33
26
  .route({
34
27
  method: "POST",
@@ -39,16 +32,9 @@ export const usageContract = {
39
32
  })
40
33
  .input(RefreshPlanLimitsSchema)
41
34
  .output(z.object({ ok: z.literal(true) })),
42
- /* THE WAY PAST A SPENT SESSION WINDOW THAT ISN'T WAITING (LimitResetStatusSchema has what it costs).
43
- *
44
- * ASKED, NOT POLLED, and that is the whole reason it is a route of its own rather than another field on the
45
- * account list. The provider only evaluates it when told the account is at the wall, so asking is a claim
46
- * about the account's state; asking on every headroom sweep, for every connection, would be that claim made
47
- * continuously and falsely. It is asked at the one moment it is true — a refused turn, with its strip on
48
- * screen — and the answer is worth nothing a moment later, so nothing caches it.
49
- *
50
- * Answers `available: false` rather than failing for an account with no such mechanism, so a caller can ask
51
- * about any account it holds without first knowing which provider grants one. */
35
+ // Asked, not polled: the provider only evaluates this when told the account is at the wall, and the answer isn't
36
+ // cached.
37
+ // Answers `available: false` rather than failing when the account has no such mechanism.
52
38
  limitReset: oc
53
39
  .route({
54
40
  method: "GET",
@@ -1,18 +1,14 @@
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 { OkSchema } from "../schemas/shared.js";
4
4
  import { ForticlientImportInputSchema, ForticlientImportSchema, VpnConnectInputSchema, VpnIdParamSchema, VpnListSchema } from "../schemas/vpn.js";
5
5
 
6
- // The live VPN surface. A VPN is ADDED as a `vpn` capability (credentials, autoConnect, capabilities.contract);
7
- // it is DIALLED here. The split is deliberate: connecting is a runtime operation that both the operator (the
8
- // VPN capability card) and the agent (`vpn` on its PATH, which calls these very routes) perform many times
9
- // over one stored connection, so it cannot be a capability re-add, and its result is richer than a
10
- // CapabilityStatus, which is why `list` returns VpnLinks instead of {state, detail}.
11
- //
12
- // Every route reads tunnel state back from the OS rather than from daemon memory, so the agent dropping a
13
- // tunnel from a shell and the UI dropping it are the same event, and a daemon restart observes the truth.
6
+ // A VPN is added as a `vpn` capability; connecting and dropping it happen through the routes here, called by both the
7
+ // operator UI and the agent's `vpn` CLI.
8
+ // Every route reads tunnel state from the OS, not daemon memory, so a shell-dropped tunnel and a UI-dropped one are the
9
+ // same event across a restart.
14
10
  export const vpnContract = {
15
- // Every configured VPN with its live link state, the VPN card, the rail indicator, and `vpn list`.
11
+ // Every configured VPN with its live link state; feeds the VPN card, rail indicator, and `vpn list`.
16
12
  list: oc
17
13
  .route({
18
14
  method: "GET",
@@ -22,9 +18,7 @@ export const vpnContract = {
22
18
  "Every stored VPN with its live link state, read back from the operating system rather than from memory, so a tunnel dropped from a shell and one dropped from a screen look the same here.",
23
19
  })
24
20
  .output(VpnListSchema),
25
- // Dial a stored VPN. Streams the client's progress (auth, then routing) because a dial takes seconds and
26
- // can fail with something the user must read, a wrong password, an untrusted gateway certificate, or a
27
- // required 2FA code. Idempotent: connecting an already-up tunnel reports it and stops.
21
+ // Dials a stored VPN, streaming auth and routing progress; idempotent, an already-up tunnel is just reported.
28
22
  connect: oc
29
23
  .route({
30
24
  method: "POST",
@@ -35,7 +29,7 @@ export const vpnContract = {
35
29
  })
36
30
  .input(VpnConnectInputSchema)
37
31
  .output(eventIterator(IntenticLineSchema)),
38
- // Drop a tunnel. Tolerates an already-down one, "make it not be up" is the contract, not "it was up".
32
+ // Drops a tunnel; tolerates one already down, since the contract is "not up," not "it was up."
39
33
  disconnect: oc
40
34
  .route({
41
35
  method: "POST",
@@ -45,8 +39,7 @@ export const vpnContract = {
45
39
  })
46
40
  .input(VpnIdParamSchema)
47
41
  .output(OkSchema),
48
- // Parse an exported FortiClient configuration into addable connections, so a user with that file fills the
49
- // add form by picking a connection instead of re-keying host/port/protocol per tunnel.
42
+ // Parses an exported FortiClient config into addable connections a user can pick instead of retyping.
50
43
  importForticlient: oc
51
44
  .route({
52
45
  method: "POST",
@@ -4,34 +4,18 @@ import { WebExtScopesSchema } from "../schemas/capabilities.js";
4
4
  import { OkSchema } from "../schemas/shared.js";
5
5
  import { WebExtFactsSchema } from "../schemas/webext.js";
6
6
 
7
- /* What a connected BROWSER can be asked, over the socket its extension opened to this sandbox.
8
- *
9
- * The inversion is the host contract's (contracts/host.contract.ts): the extension dialled out, and the
10
- * extension is the oRPC SERVER. A browser cannot be dialled — it is behind the same NAT as the laptop it runs
11
- * on, and it is not even a process that is always there — so it can only be the side that connects, while
12
- * everything is asked OF it.
13
- *
14
- * `mcp` IS THE SAME DELIBERATE HOLE IN THE TYPING, for the same reason: if this contract described each tool,
15
- * a browser could not learn one without a matching daemon release, and the daemon would have to hold every
16
- * tool's schema to translate. Keeping one opaque procedure buys the extension the Chrome Web Store's release
17
- * cycle, which is measured in review days and is not this daemon's to wait on. The payload is still validated
18
- * where it is understood: in the extension, against the tool's own schema.
19
- *
20
- * There is no `runSandboxFlow` twin here. A browser runs nothing that takes minutes and narrates itself; every
21
- * one of its operations is a click or a read that either happened or did not. */
7
+ // What a connected browser can be asked, over the socket its extension opened; the extension is the oRPC server here,
8
+ // inverted from host.contract.ts, since a browser cannot be dialled.
9
+ // `mcp` stays one opaque procedure so a browser can gain a tool without a matching daemon release; the payload is
10
+ // validated in the extension against the tool's own schema.
11
+ // No `runSandboxFlow` twin: every browser operation is a click or read that either happened or did not.
22
12
  export const webextContract = {
23
- // What this browser is, and what it is currently allowed to touch: pulled right after the socket
24
- // authenticates and again whenever the card is read, because the grant list changes IN THE BROWSER (the
25
- // person clicks Allow on a site) rather than here, so a cached copy would be a card that lies.
13
+ // Refetched on connect and each card read, never cached: the grant list changes in the browser, not here.
26
14
  describe: oc.output(WebExtFactsSchema),
27
- /* The switches the owner ticked on the capability card. The extension ENFORCES them; nothing on this side
28
- * checks one. Note what is NOT in here: which sites the agent may touch. Those are Chrome's own optional
29
- * host permissions, granted by the person in the browser and revocable there, so the strongest boundary in
30
- * this feature is one the sandbox cannot even describe, let alone widen. */
15
+ // Enforced by the extension, not checked here; site access is a separate, browser-granted permission.
31
16
  setScopes: oc.input(WebExtScopesSchema).output(OkSchema),
32
- // Liveness, driven by the daemon: doubles as the keepalive for the tunnel and as the probe whose failure
33
- // means the browser is closed rather than quiet.
17
+ // Doubles as the tunnel keepalive; failure means the browser closed, not that it's merely quiet.
34
18
  ping: oc.output(OkSchema),
35
- // One MCP JSON-RPC message in, its answer out, forwarded verbatim in both directions. See above.
19
+ // One MCP JSON-RPC message forwarded verbatim in both directions; kept opaque, not typed per tool.
36
20
  mcp: oc.input(z.unknown()).output(z.unknown()),
37
21
  };
@@ -1,5 +1,5 @@
1
1
  import { oc } from "@orpc/contract";
2
- import { OkSchema } from "../schemas/shared.js";
2
+ import { DoorTokenSchema, OkSchema } from "../schemas/shared.js";
3
3
  import {
4
4
  WorkflowIdParamSchema,
5
5
  WorkflowRunIdParamSchema,
@@ -7,25 +7,16 @@ import {
7
7
  WorkflowRunsListSchema,
8
8
  WorkflowRunStartSchema,
9
9
  WorkflowSaveSchema,
10
- WorkflowSchema,
11
10
  WorkflowsListSchema,
11
+ WorkflowSavedSchema,
12
12
  } from "../schemas/workflows.js";
13
13
 
14
- /* The workflow routes, "run these sessions, in this order, each handing its result to the next".
15
- *
16
- * SPLIT LIKE AUTOMATIONS, NOT LIKE LOOPS, and the split says what a workflow is. A loop has no editor because
17
- * it is started against a conversation and then it is history; a workflow is a DESIGN, a thing the user
18
- * authors once, keeps, edits, and runs repeatedly, so it gets the manifest treatment: create/update, delete,
19
- * list. What it does not get is an `enabled` toggle, because nothing fires it on its own: a workflow runs when
20
- * somebody (or an automation's prompt) says run it.
21
- *
22
- * `run` acks with the run as recorded and executes detached, the contract every turn-starting route here
23
- * keeps. The first step alone can take minutes and the run may take hours; the run view is where it is watched,
24
- * and the fleet board shows its steps as the ordinary agents they are.
25
- */
14
+ // Workflow routes: run these sessions in order, each handing its result to the next. Manifest treatment (create/update,
15
+ // delete, list), like automations not loops, since a workflow is authored once and run repeatedly.
16
+ // No `enabled` toggle: nothing fires a workflow on its own, only an explicit run.
17
+ // `run` acks with the run as recorded and executes detached, the same contract every turn-starting route here keeps.
26
18
  export const workflowsContract = {
27
- // Every saved workflow with its run history, newest run first. One route rather than two because the list
28
- // page shows both and a workflow with no runs is the interesting case, not an error.
19
+ // Every saved workflow with its run history, newest first; a never-run workflow isn't an error case.
29
20
  list: oc
30
21
  .route({
31
22
  method: "GET",
@@ -35,11 +26,9 @@ export const workflowsContract = {
35
26
  "Every workflow somebody has designed, each with its own run history, newest first. One answer rather than two, because a workflow that has never been run is the interesting case rather than a mistake.",
36
27
  })
37
28
  .output(WorkflowsListSchema),
38
- /* Create or replace a workflow, with the operation made explicit so an accidental id collision cannot turn
39
- * a create into replacement. Refuses a graph that cannot run, a cycle, a `needs` naming a step
40
- * that is not there, a step with no way to know it is finished, with the same sentences the designer shows
41
- * while you type (see workflowFaults). Validation lives in the contract precisely so those two can never
42
- * disagree about what is legal. */
29
+ // Create or replace, with the operation explicit so an id collision can't turn a create into an overwrite.
30
+ // Refuses a graph that can't run (a cycle, an unmet `needs`, a step with no completion signal), in the same words
31
+ // the design-time validator (workflowFaults) uses.
43
32
  save: oc
44
33
  .route({
45
34
  method: "POST",
@@ -49,9 +38,19 @@ export const workflowsContract = {
49
38
  "Writes a workflow design. Say which of the two you mean, so an id that happens to collide cannot silently overwrite somebody's work. A design that could never run is refused, in the same words the editor shows while you type: a loop in the steps, a step waiting on one that is not there, a step with no way of knowing it is finished.",
50
39
  })
51
40
  .input(WorkflowSaveSchema)
52
- .output(WorkflowSchema),
53
- // Deleting a workflow does NOT stop a run of it that is in flight, and does not delete its history: the run
54
- // snapshotted its definition when it started, so it stays readable and stays stoppable.
41
+ .output(WorkflowSavedSchema),
42
+ // Mints a new gate credential; every pipeline holding the old URL stops working the moment this answers.
43
+ rotateGateToken: oc
44
+ .route({
45
+ method: "POST",
46
+ path: "/workflows/{id}/gate/rotate",
47
+ summary: "Rotate a release gate's token",
48
+ description:
49
+ "Mints a new credential for the workflow's release gate and retires the old one at once. Every pipeline wired to the gate has to be handed the new URL. Refused for a workflow that declares no gate.",
50
+ })
51
+ .input(WorkflowIdParamSchema)
52
+ .output(DoorTokenSchema),
53
+ // Deleting a workflow doesn't stop or erase an in-flight run: a run snapshots its definition at start.
55
54
  remove: oc
56
55
  .route({
57
56
  method: "DELETE",
@@ -62,11 +61,9 @@ export const workflowsContract = {
62
61
  })
63
62
  .input(WorkflowIdParamSchema)
64
63
  .output(OkSchema),
65
- /* Start a run, optionally pointed at a request, the sentence the user typed in the composer, which every
66
- * step is handed on top of its own prompt. Every step is recorded `pending` up front, so the graph is
67
- * complete from the first frame and a missing node never has to mean two things. Several runs of one
68
- * workflow may be in flight at once, they derive different conversation ids, so nothing is shared and
69
- * nothing can collide, which is what makes "run this design again on a different question" free. */
64
+ // Starts a run, optionally with a request appended to every step's own prompt; each step is recorded `pending` up
65
+ // front so the graph is complete from the first frame.
66
+ // Multiple runs of one workflow can be in flight at once; each derives its own conversation ids, so none collide.
70
67
  run: oc
71
68
  .route({
72
69
  method: "POST",
@@ -77,8 +74,7 @@ export const workflowsContract = {
77
74
  })
78
75
  .input(WorkflowRunStartSchema)
79
76
  .output(WorkflowRunSchema),
80
- // Every run across every workflow, newest first, the history the run view opens onto, and the only place a
81
- // deleted workflow's runs are still reachable.
77
+ // Every run across every workflow, newest first; the only place a deleted workflow's runs are still reachable.
82
78
  runs: oc
83
79
  .route({
84
80
  method: "GET",
@@ -88,19 +84,9 @@ export const workflowsContract = {
88
84
  "All runs across all workflows, newest first. This is also the only place the runs of a deleted workflow are still reachable.",
89
85
  })
90
86
  .output(WorkflowRunsListSchema),
91
- /* Stop a run: nothing that has not started will start, and the steps in flight are CUT OFF where they
92
- * are, their turns aborted exactly as /agent/stop aborts one, so whatever they had written stays on
93
- * their branches and the step settles as stopped.
94
- *
95
- * Not the graceful "finish the iteration you are on" a LOOP's stop performs, and the difference is the
96
- * unit: a loop's iteration is a round somebody is watching, a workflow step's is an entire agent turn.
97
- * Waiting for one meant a stopped run kept working, kept spending and kept asking questions for minutes
98
- * after the press, which is indistinguishable from a button that does nothing.
99
- *
100
- * IT ALWAYS ENDS THE RUN, including one no scheduler is behind, a record left `running` by a daemon that
101
- * was replaced mid-flight. That case used to be refused, which made the stuck run permanent: a Stop that
102
- * could not work, a step count that would never move, and no way off the board.
103
- */
87
+ // Cuts off in-flight steps where they stand, aborting their turns like /agent/stop; not the graceful
88
+ // finish-the-iteration stop a loop performs, since a step is a whole agent turn.
89
+ // Always ends the run, including one left `running` by a daemon that was replaced mid-flight.
104
90
  stopRun: oc
105
91
  .route({
106
92
  method: "POST",
@@ -111,18 +97,9 @@ export const workflowsContract = {
111
97
  })
112
98
  .input(WorkflowRunIdParamSchema)
113
99
  .output(OkSchema),
114
- /* Take an ENDED run off the board, the run's half of `agents.archive`, and the same bargain: nothing is
115
- * lost, the checkouts are reclaimed, and `unarchiveRun` puts it all back. It needs an exit of its own
116
- * because nothing about a run transitions once it is over, so a failed one would sit in Attention until
117
- * fifty more had rolled it off the ledger. Refused while the run is going.
118
- *
119
- * IT ARCHIVES THE STEPS WITH THE RUN, which is what makes it an archive rather than a dismissal. A step
120
- * has no card of its own, the run's row stands for it, so merely dropping the record released the run's
121
- * conversations onto the board as loose cards at the exact moment the user said they were done with the
122
- * job. Every step that ran is archived, on the same terms as pointing `agents.archive` at those ids: that
123
- * route archives what the user named without re-litigating whether each one was ready to go, and a run the
124
- * user has archived is exactly that gesture made once for the whole graph.
125
- */
100
+ // Ends a run's board presence, the run's half of `agents.archive`: nothing is lost, checkouts are reclaimed, and
101
+ // `unarchiveRun` reverses it. Refused while the run is going.
102
+ // Archives every step that ran along with it, since a step has no card of its own; the run's row stands for it.
126
103
  archiveRun: oc
127
104
  .route({
128
105
  method: "POST",
@@ -133,8 +110,7 @@ export const workflowsContract = {
133
110
  })
134
111
  .input(WorkflowRunIdParamSchema)
135
112
  .output(OkSchema),
136
- // Put an archived run and its sessions back on the board, the inverse of the above and the run's half of
137
- // `agents.unarchive`.
113
+ // Inverse of archiveRun: puts an archived run and its sessions back on the board.
138
114
  unarchiveRun: oc
139
115
  .route({
140
116
  method: "POST",