@intentic/sandbox-contract 1.247.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 (883) 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 +13 -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 +39 -4
  69. package/dist/contracts/personas.contract.d.ts.map +1 -1
  70. package/dist/contracts/personas.contract.js +10 -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 +6 -80
  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 +10 -10
  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 +464 -447
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +54 -47
  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} +2 -4
  160. package/dist/models/model-pins.d.ts.map +1 -0
  161. package/dist/models/model-pins.js +22 -0
  162. package/dist/models/model-pins.js.map +1 -0
  163. package/dist/{model-roles.d.ts → models/model-roles.d.ts} +25 -30
  164. package/dist/models/model-roles.d.ts.map +1 -0
  165. package/dist/{model-roles.js → models/model-roles.js} +30 -27
  166. package/dist/models/model-roles.js.map +1 -0
  167. package/dist/{plan-pools.d.ts → models/plan-pools.d.ts} +1 -1
  168. package/dist/models/plan-pools.d.ts.map +1 -0
  169. package/dist/models/plan-pools.js.map +1 -0
  170. package/dist/models/prompt-complexity.d.ts.map +1 -0
  171. package/dist/models/prompt-complexity.js.map +1 -0
  172. package/dist/models/provider-specs.d.ts.map +1 -0
  173. package/dist/models/provider-specs.js.map +1 -0
  174. package/dist/policy/approvals-execution.d.ts.map +1 -0
  175. package/dist/policy/approvals-execution.js.map +1 -0
  176. package/dist/{batch-runs.d.ts → policy/batch-runs.d.ts} +5 -1
  177. package/dist/policy/batch-runs.d.ts.map +1 -0
  178. package/dist/{batch-runs.js → policy/batch-runs.js} +10 -7
  179. package/dist/policy/batch-runs.js.map +1 -0
  180. package/dist/policy/capability-env.d.ts.map +1 -0
  181. package/dist/policy/capability-env.js.map +1 -0
  182. package/dist/policy/capability-secrets.d.ts.map +1 -0
  183. package/dist/policy/capability-secrets.js.map +1 -0
  184. package/dist/{card-status.d.ts → policy/card-status.d.ts} +2 -2
  185. package/dist/policy/card-status.d.ts.map +1 -0
  186. package/dist/{card-status.js → policy/card-status.js} +1 -5
  187. package/dist/policy/card-status.js.map +1 -0
  188. package/dist/{command-classes.d.ts → policy/command-classes.d.ts} +6 -2
  189. package/dist/policy/command-classes.d.ts.map +1 -0
  190. package/dist/{command-classes.js → policy/command-classes.js} +48 -11
  191. package/dist/policy/command-classes.js.map +1 -0
  192. package/dist/{command-run.d.ts → policy/command-run.d.ts} +1 -1
  193. package/dist/policy/command-run.d.ts.map +1 -0
  194. package/dist/policy/command-run.js.map +1 -0
  195. package/dist/policy/control-scopes.d.ts +16 -0
  196. package/dist/policy/control-scopes.d.ts.map +1 -0
  197. package/dist/policy/control-scopes.js +26 -0
  198. package/dist/policy/control-scopes.js.map +1 -0
  199. package/dist/policy/credential-material.d.ts.map +1 -0
  200. package/dist/policy/credential-material.js.map +1 -0
  201. package/dist/policy/needs-action.d.ts.map +1 -0
  202. package/dist/policy/needs-action.js.map +1 -0
  203. package/dist/policy/output-fields.d.ts.map +1 -0
  204. package/dist/policy/output-fields.js.map +1 -0
  205. package/dist/policy/overlay-lint.d.ts.map +1 -0
  206. package/dist/policy/overlay-lint.js.map +1 -0
  207. package/dist/policy/owner-ticket.d.ts.map +1 -0
  208. package/dist/{owner-ticket.js → policy/owner-ticket.js} +1 -1
  209. package/dist/policy/owner-ticket.js.map +1 -0
  210. package/dist/{safety-policy.d.ts → policy/safety-policy.d.ts} +6 -5
  211. package/dist/policy/safety-policy.d.ts.map +1 -0
  212. package/dist/{safety-policy.js → policy/safety-policy.js} +12 -12
  213. package/dist/policy/safety-policy.js.map +1 -0
  214. package/dist/policy/search-globs.d.ts.map +1 -0
  215. package/dist/policy/search-globs.js.map +1 -0
  216. package/dist/protocol/container-requirements.d.ts +20 -0
  217. package/dist/protocol/container-requirements.d.ts.map +1 -0
  218. package/dist/protocol/container-requirements.js +23 -0
  219. package/dist/protocol/container-requirements.js.map +1 -0
  220. package/dist/{host-protocol.d.ts → protocol/host-protocol.d.ts} +1 -0
  221. package/dist/protocol/host-protocol.d.ts.map +1 -0
  222. package/dist/{host-protocol.js → protocol/host-protocol.js} +1 -0
  223. package/dist/protocol/host-protocol.js.map +1 -0
  224. package/dist/protocol/ingress-contract.d.ts.map +1 -0
  225. package/dist/{ingress-contract.js → protocol/ingress-contract.js} +1 -1
  226. package/dist/protocol/ingress-contract.js.map +1 -0
  227. package/dist/protocol/ingress-protocol.d.ts.map +1 -0
  228. package/dist/protocol/ingress-protocol.js.map +1 -0
  229. package/dist/protocol/listener-protocol.d.ts.map +1 -0
  230. package/dist/{listener-protocol.js → protocol/listener-protocol.js} +1 -1
  231. package/dist/protocol/listener-protocol.js.map +1 -0
  232. package/dist/{peer-dial.d.ts → protocol/peer-dial.d.ts} +4 -1
  233. package/dist/protocol/peer-dial.d.ts.map +1 -0
  234. package/dist/{peer-dial.js → protocol/peer-dial.js} +51 -10
  235. package/dist/protocol/peer-dial.js.map +1 -0
  236. package/dist/protocol/peer-mcp-server.d.ts.map +1 -0
  237. package/dist/protocol/peer-mcp-server.js.map +1 -0
  238. package/dist/protocol/request-id.d.ts.map +1 -0
  239. package/dist/protocol/request-id.js.map +1 -0
  240. package/dist/protocol/routes.d.ts.map +1 -0
  241. package/dist/protocol/routes.js.map +1 -0
  242. package/dist/{runner-protocol.d.ts → protocol/runner-protocol.d.ts} +1 -0
  243. package/dist/protocol/runner-protocol.d.ts.map +1 -0
  244. package/dist/{runner-protocol.js → protocol/runner-protocol.js} +2 -1
  245. package/dist/protocol/runner-protocol.js.map +1 -0
  246. package/dist/protocol/sse.d.ts.map +1 -0
  247. package/dist/protocol/sse.js.map +1 -0
  248. package/dist/{terminal-protocol.d.ts → protocol/terminal-protocol.d.ts} +1 -3
  249. package/dist/protocol/terminal-protocol.d.ts.map +1 -0
  250. package/dist/protocol/terminal-protocol.js.map +1 -0
  251. package/dist/protocol/webext-links.d.ts.map +1 -0
  252. package/dist/protocol/webext-links.js.map +1 -0
  253. package/dist/{webext-protocol.d.ts → protocol/webext-protocol.d.ts} +1 -0
  254. package/dist/protocol/webext-protocol.d.ts.map +1 -0
  255. package/dist/{webext-protocol.js → protocol/webext-protocol.js} +1 -0
  256. package/dist/protocol/webext-protocol.js.map +1 -0
  257. package/dist/schemas/activity.d.ts +2 -0
  258. package/dist/schemas/activity.d.ts.map +1 -1
  259. package/dist/schemas/activity.js +4 -0
  260. package/dist/schemas/activity.js.map +1 -1
  261. package/dist/schemas/agent.d.ts +17 -4
  262. package/dist/schemas/agent.d.ts.map +1 -1
  263. package/dist/schemas/agent.js +21 -4
  264. package/dist/schemas/agent.js.map +1 -1
  265. package/dist/schemas/agents.d.ts +17 -4
  266. package/dist/schemas/agents.d.ts.map +1 -1
  267. package/dist/schemas/agents.js +15 -4
  268. package/dist/schemas/agents.js.map +1 -1
  269. package/dist/schemas/approvals.d.ts.map +1 -1
  270. package/dist/schemas/approvals.js.map +1 -1
  271. package/dist/schemas/automations.d.ts +54 -28
  272. package/dist/schemas/automations.d.ts.map +1 -1
  273. package/dist/schemas/automations.js +26 -8
  274. package/dist/schemas/automations.js.map +1 -1
  275. package/dist/schemas/capabilities.d.ts +0 -8
  276. package/dist/schemas/capabilities.d.ts.map +1 -1
  277. package/dist/schemas/capabilities.js +0 -4
  278. package/dist/schemas/capabilities.js.map +1 -1
  279. package/dist/schemas/ci.d.ts +10 -0
  280. package/dist/schemas/ci.d.ts.map +1 -1
  281. package/dist/schemas/ci.js +9 -1
  282. package/dist/schemas/ci.js.map +1 -1
  283. package/dist/schemas/codebase-health.d.ts.map +1 -1
  284. package/dist/schemas/codebase-health.js.map +1 -1
  285. package/dist/schemas/devices.d.ts +90 -0
  286. package/dist/schemas/devices.d.ts.map +1 -1
  287. package/dist/schemas/devices.js +10 -1
  288. package/dist/schemas/devices.js.map +1 -1
  289. package/dist/schemas/engines.d.ts.map +1 -1
  290. package/dist/schemas/engines.js.map +1 -1
  291. package/dist/schemas/environment.d.ts.map +1 -1
  292. package/dist/schemas/environment.js.map +1 -1
  293. package/dist/schemas/exit.d.ts.map +1 -1
  294. package/dist/schemas/exit.js.map +1 -1
  295. package/dist/schemas/extension-updates.d.ts.map +1 -1
  296. package/dist/schemas/extension-updates.js.map +1 -1
  297. package/dist/schemas/git-history.d.ts.map +1 -1
  298. package/dist/schemas/git-history.js.map +1 -1
  299. package/dist/schemas/git.d.ts +80 -16
  300. package/dist/schemas/git.d.ts.map +1 -1
  301. package/dist/schemas/git.js +37 -25
  302. package/dist/schemas/git.js.map +1 -1
  303. package/dist/schemas/history.d.ts.map +1 -1
  304. package/dist/schemas/history.js.map +1 -1
  305. package/dist/schemas/hosts.d.ts.map +1 -1
  306. package/dist/schemas/hosts.js.map +1 -1
  307. package/dist/schemas/inventory.d.ts.map +1 -1
  308. package/dist/schemas/inventory.js.map +1 -1
  309. package/dist/schemas/issues.d.ts +0 -1
  310. package/dist/schemas/issues.d.ts.map +1 -1
  311. package/dist/schemas/issues.js +0 -1
  312. package/dist/schemas/issues.js.map +1 -1
  313. package/dist/schemas/logs.d.ts.map +1 -1
  314. package/dist/schemas/logs.js.map +1 -1
  315. package/dist/schemas/loops.d.ts.map +1 -1
  316. package/dist/schemas/loops.js +1 -1
  317. package/dist/schemas/loops.js.map +1 -1
  318. package/dist/schemas/maintenance.d.ts.map +1 -1
  319. package/dist/schemas/maintenance.js.map +1 -1
  320. package/dist/schemas/marketplace.d.ts +0 -4
  321. package/dist/schemas/marketplace.d.ts.map +1 -1
  322. package/dist/schemas/panels.d.ts.map +1 -1
  323. package/dist/schemas/panels.js.map +1 -1
  324. package/dist/schemas/personas.d.ts +49 -4
  325. package/dist/schemas/personas.d.ts.map +1 -1
  326. package/dist/schemas/personas.js +32 -5
  327. package/dist/schemas/personas.js.map +1 -1
  328. package/dist/schemas/plan-limits.d.ts +2 -4
  329. package/dist/schemas/plan-limits.d.ts.map +1 -1
  330. package/dist/schemas/plan-limits.js +5 -8
  331. package/dist/schemas/plan-limits.js.map +1 -1
  332. package/dist/schemas/ports.d.ts.map +1 -1
  333. package/dist/schemas/ports.js.map +1 -1
  334. package/dist/schemas/provider-oauth.d.ts.map +1 -1
  335. package/dist/schemas/provider-oauth.js.map +1 -1
  336. package/dist/schemas/provider-subscriptions.d.ts +1 -1
  337. package/dist/schemas/provider-subscriptions.d.ts.map +1 -1
  338. package/dist/schemas/provider-subscriptions.js +1 -1
  339. package/dist/schemas/provider-subscriptions.js.map +1 -1
  340. package/dist/schemas/public.d.ts.map +1 -1
  341. package/dist/schemas/public.js.map +1 -1
  342. package/dist/schemas/push.d.ts.map +1 -1
  343. package/dist/schemas/push.js.map +1 -1
  344. package/dist/schemas/secrets.d.ts.map +1 -1
  345. package/dist/schemas/secrets.js.map +1 -1
  346. package/dist/schemas/settings.d.ts +7 -5
  347. package/dist/schemas/settings.d.ts.map +1 -1
  348. package/dist/schemas/settings.js +18 -8
  349. package/dist/schemas/settings.js.map +1 -1
  350. package/dist/schemas/share.d.ts.map +1 -1
  351. package/dist/schemas/share.js.map +1 -1
  352. package/dist/schemas/shared.d.ts +4 -0
  353. package/dist/schemas/shared.d.ts.map +1 -1
  354. package/dist/schemas/shared.js +3 -0
  355. package/dist/schemas/shared.js.map +1 -1
  356. package/dist/schemas/system.d.ts +6 -0
  357. package/dist/schemas/system.d.ts.map +1 -1
  358. package/dist/schemas/system.js +10 -0
  359. package/dist/schemas/system.js.map +1 -1
  360. package/dist/schemas/terminal.d.ts.map +1 -1
  361. package/dist/schemas/terminal.js.map +1 -1
  362. package/dist/schemas/usage.d.ts.map +1 -1
  363. package/dist/schemas/usage.js.map +1 -1
  364. package/dist/schemas/vpn.d.ts.map +1 -1
  365. package/dist/schemas/vpn.js.map +1 -1
  366. package/dist/schemas/webext.d.ts.map +1 -1
  367. package/dist/schemas/webext.js.map +1 -1
  368. package/dist/schemas/workflows.d.ts +66 -9
  369. package/dist/schemas/workflows.d.ts.map +1 -1
  370. package/dist/schemas/workflows.js +6 -5
  371. package/dist/schemas/workflows.js.map +1 -1
  372. package/dist/schemas/workspace-repos.d.ts.map +1 -1
  373. package/dist/schemas/workspace-repos.js.map +1 -1
  374. package/dist/schemas/workspace-search.d.ts.map +1 -1
  375. package/dist/schemas/workspace-search.js.map +1 -1
  376. package/dist/schemas/workspace-setup.d.ts.map +1 -1
  377. package/dist/schemas/workspace-setup.js.map +1 -1
  378. package/dist/schemas/workspace-tree.d.ts.map +1 -1
  379. package/dist/schemas/workspace-tree.js.map +1 -1
  380. package/dist/state/arrival.d.ts.map +1 -0
  381. package/dist/{arrival.js → state/arrival.js} +1 -1
  382. package/dist/state/arrival.js.map +1 -0
  383. package/dist/state/contract-lock.d.ts.map +1 -0
  384. package/dist/{contract-lock.js → state/contract-lock.js} +1 -1
  385. package/dist/state/contract-lock.js.map +1 -0
  386. package/dist/{definition.d.ts → state/definition.d.ts} +21 -17
  387. package/dist/state/definition.d.ts.map +1 -0
  388. package/dist/{definition.js → state/definition.js} +4 -4
  389. package/dist/state/definition.js.map +1 -0
  390. package/dist/state/history-state.d.ts.map +1 -0
  391. package/dist/{history-state.js → state/history-state.js} +1 -0
  392. package/dist/state/history-state.js.map +1 -0
  393. package/dist/state/runtime-state.d.ts.map +1 -0
  394. package/dist/state/runtime-state.js.map +1 -0
  395. package/dist/state/starter.d.ts.map +1 -0
  396. package/dist/state/starter.js.map +1 -0
  397. package/dist/state/state-portability.d.ts.map +1 -0
  398. package/dist/state/state-portability.js.map +1 -0
  399. package/dist/state/versions.d.ts.map +1 -0
  400. package/dist/state/versions.js.map +1 -0
  401. package/dist/{workspace-state.d.ts → state/workspace-state.d.ts} +8 -5
  402. package/dist/state/workspace-state.d.ts.map +1 -0
  403. package/dist/{workspace-state.js → state/workspace-state.js} +25 -1
  404. package/dist/state/workspace-state.js.map +1 -0
  405. package/dist/{documents.d.ts → text/documents.d.ts} +1 -1
  406. package/dist/text/documents.d.ts.map +1 -0
  407. package/dist/{documents.js → text/documents.js} +1 -1
  408. package/dist/text/documents.js.map +1 -0
  409. package/dist/text/embed.d.ts.map +1 -0
  410. package/dist/text/embed.js.map +1 -0
  411. package/dist/text/mentions.d.ts.map +1 -0
  412. package/dist/text/mentions.js.map +1 -0
  413. package/dist/text/model-answer.d.ts +3 -0
  414. package/dist/text/model-answer.d.ts.map +1 -0
  415. package/dist/text/model-answer.js +3 -0
  416. package/dist/text/model-answer.js.map +1 -0
  417. package/dist/text/path-refs.d.ts.map +1 -0
  418. package/dist/text/path-refs.js.map +1 -0
  419. package/dist/{shell-regions.d.ts → text/shell-regions.d.ts} +1 -1
  420. package/dist/text/shell-regions.d.ts.map +1 -0
  421. package/dist/text/shell-regions.js.map +1 -0
  422. package/dist/text/title.d.ts.map +1 -0
  423. package/dist/text/title.js.map +1 -0
  424. package/dist/{transcript-fold.d.ts → text/transcript-fold.d.ts} +2 -1
  425. package/dist/text/transcript-fold.d.ts.map +1 -0
  426. package/dist/{transcript-fold.js → text/transcript-fold.js} +2 -16
  427. package/dist/text/transcript-fold.js.map +1 -0
  428. package/dist/text/whisper.d.ts +3 -0
  429. package/dist/text/whisper.d.ts.map +1 -0
  430. package/dist/text/whisper.js +11 -0
  431. package/dist/text/whisper.js.map +1 -0
  432. package/dist/{workflow-faults.d.ts → text/workflow-faults.d.ts} +1 -1
  433. package/dist/text/workflow-faults.d.ts.map +1 -0
  434. package/dist/{workflow-faults.js → text/workflow-faults.js} +1 -1
  435. package/dist/text/workflow-faults.js.map +1 -0
  436. package/package.json +70 -70
  437. package/src/chores/chores.test.ts +4 -10
  438. package/src/chores/chores.ts +148 -392
  439. package/src/chores/digest.ts +8 -28
  440. package/src/chores/extension-update.ts +3 -8
  441. package/src/chores/fix-deps.ts +4 -18
  442. package/src/chores/index.ts +2 -2
  443. package/src/chores/probes.test.ts +7 -43
  444. package/src/chores/probes.ts +62 -167
  445. package/src/chores/prompt.ts +10 -34
  446. package/src/chores/stack.test.ts +6 -45
  447. package/src/chores/stack.ts +27 -118
  448. package/src/chores/verdict.test.ts +101 -80
  449. package/src/chores/verdict.ts +54 -99
  450. package/src/contracts/accounts.contract.ts +4 -19
  451. package/src/contracts/agent.contract.ts +7 -22
  452. package/src/contracts/agents.contract.ts +25 -71
  453. package/src/contracts/automations.contract.ts +14 -30
  454. package/src/contracts/capabilities.contract.ts +8 -35
  455. package/src/contracts/chores.contract.ts +4 -15
  456. package/src/contracts/endpoints.contract.ts +5 -22
  457. package/src/contracts/exit.contract.ts +7 -30
  458. package/src/contracts/extensions.contract.ts +8 -30
  459. package/src/contracts/git.contract.ts +25 -49
  460. package/src/contracts/host.contract.ts +9 -44
  461. package/src/contracts/intentic.contract.ts +1 -1
  462. package/src/contracts/logs.contract.ts +3 -13
  463. package/src/contracts/loops.contract.ts +9 -40
  464. package/src/contracts/personas.contract.ts +22 -30
  465. package/src/contracts/providers.contract.ts +4 -17
  466. package/src/contracts/runner.contract.ts +12 -39
  467. package/src/contracts/safety.contract.ts +5 -14
  468. package/src/contracts/secrets.contract.ts +4 -22
  469. package/src/contracts/sessions.contract.ts +1 -1
  470. package/src/contracts/settings.contract.ts +4 -10
  471. package/src/contracts/share.contract.ts +3 -9
  472. package/src/contracts/skills.contract.ts +4 -15
  473. package/src/contracts/system.contract.ts +26 -52
  474. package/src/contracts/usage.contract.ts +7 -21
  475. package/src/contracts/vpn.contract.ts +9 -16
  476. package/src/contracts/webext.contract.ts +9 -25
  477. package/src/contracts/workflows.contract.ts +34 -58
  478. package/src/contracts/workspace.contract.ts +19 -50
  479. package/src/events/agent-events.ts +345 -0
  480. package/src/events/cards.ts +286 -0
  481. package/src/{events.test.ts → events/resume.test.ts} +4 -19
  482. package/src/events/resume.ts +60 -0
  483. package/src/events/system-events.ts +139 -0
  484. package/src/events/transcript.ts +320 -0
  485. package/src/{conversation-ids.test.ts → ids/conversation-ids.test.ts} +25 -13
  486. package/src/ids/conversation-ids.ts +178 -0
  487. package/src/ids/hostnames.ts +129 -0
  488. package/src/ids/session-names.ts +29 -0
  489. package/src/ids/share-paths.ts +43 -0
  490. package/src/{tunnel-ids.test.ts → ids/tunnel-ids.test.ts} +1 -14
  491. package/src/ids/tunnel-ids.ts +29 -0
  492. package/src/index.ts +71 -88
  493. package/src/{agent-catalog.test.ts → models/agent-catalog.test.ts} +19 -93
  494. package/src/models/agent-catalog.ts +174 -0
  495. package/src/models/agent-runtimes.ts +201 -0
  496. package/src/models/capability-ledger.test.ts +84 -0
  497. package/src/{fast-tier.test.ts → models/fast-tier.test.ts} +7 -18
  498. package/src/models/fast-tier.ts +36 -0
  499. package/src/{model-order.test.ts → models/model-order.test.ts} +19 -40
  500. package/src/models/model-order.ts +163 -0
  501. package/src/models/model-pins.test.ts +87 -0
  502. package/src/models/model-pins.ts +57 -0
  503. package/src/models/model-roles.test.ts +38 -0
  504. package/src/models/model-roles.ts +180 -0
  505. package/src/{plan-pools.test.ts → models/plan-pools.test.ts} +6 -11
  506. package/src/models/plan-pools.ts +65 -0
  507. package/src/{prompt-complexity.test.ts → models/prompt-complexity.test.ts} +8 -60
  508. package/src/models/prompt-complexity.ts +215 -0
  509. package/src/{provider-specs.test.ts → models/provider-specs.test.ts} +18 -47
  510. package/src/models/provider-specs.ts +272 -0
  511. package/src/policy/approvals-execution.ts +58 -0
  512. package/src/{batch-runs.test.ts → policy/batch-runs.test.ts} +4 -20
  513. package/src/policy/batch-runs.ts +137 -0
  514. package/src/policy/capability-secrets.ts +5 -0
  515. package/src/{card-status.ts → policy/card-status.ts} +11 -26
  516. package/src/{command-classes.test.ts → policy/command-classes.test.ts} +11 -118
  517. package/src/policy/command-classes.ts +395 -0
  518. package/src/policy/command-run.ts +65 -0
  519. package/src/policy/control-scopes.ts +38 -0
  520. package/src/{credential-material.test.ts → policy/credential-material.test.ts} +4 -26
  521. package/src/policy/credential-material.ts +91 -0
  522. package/src/policy/needs-action.ts +5 -0
  523. package/src/policy/output-fields.ts +86 -0
  524. package/src/policy/overlay-lint.ts +100 -0
  525. package/src/{owner-ticket.test.ts → policy/owner-ticket.test.ts} +1 -1
  526. package/src/{owner-ticket.ts → policy/owner-ticket.ts} +9 -31
  527. package/src/policy/safety-policy.test.ts +84 -0
  528. package/src/policy/safety-policy.ts +142 -0
  529. package/src/policy/search-globs.ts +60 -0
  530. package/src/protocol/container-requirements.test.ts +72 -0
  531. package/src/protocol/container-requirements.ts +58 -0
  532. package/src/protocol/host-protocol.ts +29 -0
  533. package/src/protocol/ingress-contract.ts +103 -0
  534. package/src/{ingress-protocol.test.ts → protocol/ingress-protocol.test.ts} +25 -90
  535. package/src/protocol/ingress-protocol.ts +441 -0
  536. package/src/protocol/listener-protocol.ts +75 -0
  537. package/src/{peer-dial.test.ts → protocol/peer-dial.test.ts} +52 -1
  538. package/src/protocol/peer-dial.ts +207 -0
  539. package/src/{peer-mcp-server.ts → protocol/peer-mcp-server.ts} +16 -41
  540. package/src/protocol/request-id.ts +5 -0
  541. package/src/{routes.test.ts → protocol/routes.test.ts} +14 -22
  542. package/src/protocol/routes.ts +159 -0
  543. package/src/protocol/runner-protocol.ts +197 -0
  544. package/src/protocol/terminal-protocol.ts +13 -0
  545. package/src/protocol/webext-links.ts +50 -0
  546. package/src/protocol/webext-protocol.ts +24 -0
  547. package/src/schemas/activity.ts +22 -30
  548. package/src/schemas/agent.ts +130 -238
  549. package/src/schemas/agents.ts +165 -483
  550. package/src/schemas/approvals.ts +23 -71
  551. package/src/schemas/automations.ts +145 -249
  552. package/src/schemas/capabilities.ts +127 -414
  553. package/src/schemas/ci.ts +56 -108
  554. package/src/schemas/codebase-health.ts +7 -11
  555. package/src/schemas/devices.ts +98 -321
  556. package/src/schemas/engines.ts +16 -44
  557. package/src/schemas/environment.ts +41 -91
  558. package/src/schemas/exit.ts +24 -81
  559. package/src/schemas/extension-updates.ts +42 -87
  560. package/src/schemas/git-history.ts +30 -84
  561. package/src/schemas/git.ts +141 -256
  562. package/src/schemas/history.ts +14 -40
  563. package/src/schemas/hosts.ts +9 -15
  564. package/src/schemas/inventory.ts +8 -10
  565. package/src/schemas/issues.ts +66 -134
  566. package/src/schemas/logs.ts +15 -34
  567. package/src/schemas/loops.ts +46 -163
  568. package/src/schemas/maintenance.ts +47 -172
  569. package/src/schemas/panels.ts +20 -45
  570. package/src/schemas/personas.ts +85 -168
  571. package/src/schemas/plan-limits.ts +58 -197
  572. package/src/schemas/ports.ts +14 -32
  573. package/src/schemas/provider-oauth.ts +23 -76
  574. package/src/schemas/provider-subscriptions.ts +4 -13
  575. package/src/schemas/public.ts +4 -15
  576. package/src/schemas/push.ts +8 -36
  577. package/src/schemas/secrets.ts +20 -64
  578. package/src/schemas/settings.ts +177 -597
  579. package/src/schemas/share.ts +14 -32
  580. package/src/schemas/shared.ts +14 -13
  581. package/src/schemas/system.ts +46 -78
  582. package/src/schemas/terminal.ts +41 -120
  583. package/src/schemas/usage.ts +44 -233
  584. package/src/schemas/version-seam.test.ts +9 -26
  585. package/src/schemas/vpn.ts +27 -64
  586. package/src/schemas/webext.ts +22 -53
  587. package/src/schemas/workflows.ts +57 -183
  588. package/src/schemas/workspace-repos.ts +12 -24
  589. package/src/schemas/workspace-search.ts +17 -35
  590. package/src/schemas/workspace-setup.ts +4 -11
  591. package/src/schemas/workspace-tree.ts +32 -91
  592. package/src/state/arrival.ts +109 -0
  593. package/src/state/contract-lock.test.ts +17 -0
  594. package/src/state/contract-lock.ts +49 -0
  595. package/src/state/definition.ts +143 -0
  596. package/src/state/history-state.ts +103 -0
  597. package/src/{runtime-state.test.ts → state/runtime-state.test.ts} +3 -10
  598. package/src/state/runtime-state.ts +62 -0
  599. package/src/state/starter.ts +5 -0
  600. package/src/state/state-portability.ts +27 -0
  601. package/src/state/versions.ts +26 -0
  602. package/src/{workspace-state.test.ts → state/workspace-state.test.ts} +65 -173
  603. package/src/state/workspace-state.ts +669 -0
  604. package/src/{documents.test.ts → text/documents.test.ts} +1 -1
  605. package/src/text/documents.ts +42 -0
  606. package/src/text/embed.ts +132 -0
  607. package/src/text/mentions.ts +21 -0
  608. package/src/text/model-answer.ts +9 -0
  609. package/src/text/path-refs.ts +39 -0
  610. package/src/text/shell-regions.ts +224 -0
  611. package/src/{title.test.ts → text/title.test.ts} +13 -32
  612. package/src/text/title.ts +202 -0
  613. package/src/{transcript-fold.test.ts → text/transcript-fold.test.ts} +5 -83
  614. package/src/{transcript-fold.ts → text/transcript-fold.ts} +65 -170
  615. package/src/text/whisper.test.ts +19 -0
  616. package/src/text/whisper.ts +17 -0
  617. package/src/{workflow-faults.test.ts → text/workflow-faults.test.ts} +6 -24
  618. package/src/{workflow-faults.ts → text/workflow-faults.ts} +20 -60
  619. package/dist/agent-catalog.d.ts.map +0 -1
  620. package/dist/agent-catalog.js.map +0 -1
  621. package/dist/agent-runtimes.d.ts.map +0 -1
  622. package/dist/agent-runtimes.js.map +0 -1
  623. package/dist/approvals-execution.d.ts.map +0 -1
  624. package/dist/approvals-execution.js.map +0 -1
  625. package/dist/arrival.d.ts.map +0 -1
  626. package/dist/arrival.js.map +0 -1
  627. package/dist/batch-runs.d.ts.map +0 -1
  628. package/dist/batch-runs.js.map +0 -1
  629. package/dist/capability-env.d.ts.map +0 -1
  630. package/dist/capability-env.js.map +0 -1
  631. package/dist/capability-secrets.d.ts.map +0 -1
  632. package/dist/capability-secrets.js.map +0 -1
  633. package/dist/card-status.d.ts.map +0 -1
  634. package/dist/card-status.js.map +0 -1
  635. package/dist/command-classes.d.ts.map +0 -1
  636. package/dist/command-classes.js.map +0 -1
  637. package/dist/command-run.d.ts.map +0 -1
  638. package/dist/command-run.js.map +0 -1
  639. package/dist/contract-lock.d.ts.map +0 -1
  640. package/dist/contract-lock.js.map +0 -1
  641. package/dist/conversation-ids.d.ts +0 -4
  642. package/dist/conversation-ids.d.ts.map +0 -1
  643. package/dist/conversation-ids.js.map +0 -1
  644. package/dist/credential-material.d.ts.map +0 -1
  645. package/dist/credential-material.js.map +0 -1
  646. package/dist/definition.d.ts.map +0 -1
  647. package/dist/definition.js.map +0 -1
  648. package/dist/documents.d.ts.map +0 -1
  649. package/dist/documents.js.map +0 -1
  650. package/dist/embed.d.ts.map +0 -1
  651. package/dist/embed.js.map +0 -1
  652. package/dist/events.d.ts +0 -4336
  653. package/dist/events.d.ts.map +0 -1
  654. package/dist/events.js +0 -725
  655. package/dist/events.js.map +0 -1
  656. package/dist/fast-tier.d.ts.map +0 -1
  657. package/dist/fast-tier.js.map +0 -1
  658. package/dist/history-state.d.ts.map +0 -1
  659. package/dist/history-state.js.map +0 -1
  660. package/dist/host-protocol.d.ts.map +0 -1
  661. package/dist/host-protocol.js.map +0 -1
  662. package/dist/hostnames.d.ts.map +0 -1
  663. package/dist/hostnames.js.map +0 -1
  664. package/dist/ingress-contract.d.ts.map +0 -1
  665. package/dist/ingress-contract.js.map +0 -1
  666. package/dist/ingress-protocol.d.ts.map +0 -1
  667. package/dist/ingress-protocol.js.map +0 -1
  668. package/dist/listener-protocol.d.ts.map +0 -1
  669. package/dist/listener-protocol.js.map +0 -1
  670. package/dist/mentions.d.ts.map +0 -1
  671. package/dist/mentions.js.map +0 -1
  672. package/dist/model-order.d.ts.map +0 -1
  673. package/dist/model-order.js.map +0 -1
  674. package/dist/model-pins.d.ts.map +0 -1
  675. package/dist/model-pins.js +0 -45
  676. package/dist/model-pins.js.map +0 -1
  677. package/dist/model-roles.d.ts.map +0 -1
  678. package/dist/model-roles.js.map +0 -1
  679. package/dist/needs-action.d.ts.map +0 -1
  680. package/dist/needs-action.js.map +0 -1
  681. package/dist/output-fields.d.ts.map +0 -1
  682. package/dist/output-fields.js.map +0 -1
  683. package/dist/overlay-lint.d.ts.map +0 -1
  684. package/dist/overlay-lint.js.map +0 -1
  685. package/dist/owner-ticket.d.ts.map +0 -1
  686. package/dist/owner-ticket.js.map +0 -1
  687. package/dist/path-refs.d.ts.map +0 -1
  688. package/dist/path-refs.js.map +0 -1
  689. package/dist/peer-dial.d.ts.map +0 -1
  690. package/dist/peer-dial.js.map +0 -1
  691. package/dist/peer-mcp-server.d.ts.map +0 -1
  692. package/dist/peer-mcp-server.js.map +0 -1
  693. package/dist/plan-pools.d.ts.map +0 -1
  694. package/dist/plan-pools.js.map +0 -1
  695. package/dist/prompt-complexity.d.ts.map +0 -1
  696. package/dist/prompt-complexity.js.map +0 -1
  697. package/dist/provider-specs.d.ts.map +0 -1
  698. package/dist/provider-specs.js.map +0 -1
  699. package/dist/request-id.d.ts.map +0 -1
  700. package/dist/request-id.js.map +0 -1
  701. package/dist/routes.d.ts.map +0 -1
  702. package/dist/routes.js.map +0 -1
  703. package/dist/runner-protocol.d.ts.map +0 -1
  704. package/dist/runner-protocol.js.map +0 -1
  705. package/dist/runtime-state.d.ts.map +0 -1
  706. package/dist/runtime-state.js.map +0 -1
  707. package/dist/safety-policy.d.ts.map +0 -1
  708. package/dist/safety-policy.js.map +0 -1
  709. package/dist/schemas/context.d.ts +0 -30
  710. package/dist/schemas/context.d.ts.map +0 -1
  711. package/dist/schemas/context.js +0 -34
  712. package/dist/schemas/context.js.map +0 -1
  713. package/dist/search-globs.d.ts.map +0 -1
  714. package/dist/search-globs.js.map +0 -1
  715. package/dist/session-names.d.ts.map +0 -1
  716. package/dist/session-names.js.map +0 -1
  717. package/dist/share-paths.d.ts.map +0 -1
  718. package/dist/share-paths.js.map +0 -1
  719. package/dist/shell-regions.d.ts.map +0 -1
  720. package/dist/shell-regions.js.map +0 -1
  721. package/dist/sse.d.ts.map +0 -1
  722. package/dist/sse.js.map +0 -1
  723. package/dist/starter.d.ts.map +0 -1
  724. package/dist/starter.js.map +0 -1
  725. package/dist/state-portability.d.ts.map +0 -1
  726. package/dist/state-portability.js.map +0 -1
  727. package/dist/terminal-protocol.d.ts.map +0 -1
  728. package/dist/terminal-protocol.js.map +0 -1
  729. package/dist/title.d.ts.map +0 -1
  730. package/dist/title.js.map +0 -1
  731. package/dist/transcript-fold.d.ts.map +0 -1
  732. package/dist/transcript-fold.js.map +0 -1
  733. package/dist/tunnel-ids.d.ts.map +0 -1
  734. package/dist/tunnel-ids.js.map +0 -1
  735. package/dist/versions.d.ts.map +0 -1
  736. package/dist/versions.js.map +0 -1
  737. package/dist/webext-links.d.ts.map +0 -1
  738. package/dist/webext-links.js.map +0 -1
  739. package/dist/webext-protocol.d.ts.map +0 -1
  740. package/dist/webext-protocol.js.map +0 -1
  741. package/dist/workflow-faults.d.ts.map +0 -1
  742. package/dist/workflow-faults.js.map +0 -1
  743. package/dist/workspace-state.d.ts.map +0 -1
  744. package/dist/workspace-state.js.map +0 -1
  745. package/src/agent-catalog.ts +0 -316
  746. package/src/agent-runtimes.ts +0 -419
  747. package/src/approvals-execution.ts +0 -96
  748. package/src/arrival.ts +0 -160
  749. package/src/batch-runs.ts +0 -188
  750. package/src/capability-ledger.test.ts +0 -140
  751. package/src/capability-secrets.ts +0 -20
  752. package/src/command-classes.ts +0 -617
  753. package/src/command-run.ts +0 -78
  754. package/src/contract-lock.test.ts +0 -23
  755. package/src/contract-lock.ts +0 -66
  756. package/src/conversation-ids.ts +0 -207
  757. package/src/credential-material.ts +0 -181
  758. package/src/definition.ts +0 -207
  759. package/src/documents.ts +0 -67
  760. package/src/embed.ts +0 -164
  761. package/src/events.ts +0 -1870
  762. package/src/fast-tier.ts +0 -72
  763. package/src/history-state.ts +0 -174
  764. package/src/host-protocol.ts +0 -36
  765. package/src/hostnames.ts +0 -180
  766. package/src/ingress-contract.ts +0 -157
  767. package/src/ingress-protocol.ts +0 -625
  768. package/src/listener-protocol.ts +0 -96
  769. package/src/mentions.ts +0 -25
  770. package/src/model-order.ts +0 -262
  771. package/src/model-pins.test.ts +0 -202
  772. package/src/model-pins.ts +0 -183
  773. package/src/model-roles.ts +0 -224
  774. package/src/needs-action.ts +0 -14
  775. package/src/output-fields.ts +0 -111
  776. package/src/overlay-lint.ts +0 -116
  777. package/src/path-refs.ts +0 -59
  778. package/src/peer-dial.ts +0 -163
  779. package/src/plan-pools.ts +0 -92
  780. package/src/prompt-complexity.ts +0 -334
  781. package/src/provider-specs.ts +0 -432
  782. package/src/request-id.ts +0 -41
  783. package/src/routes.ts +0 -219
  784. package/src/runner-protocol.ts +0 -239
  785. package/src/runtime-state.ts +0 -140
  786. package/src/safety-policy.test.ts +0 -88
  787. package/src/safety-policy.ts +0 -258
  788. package/src/schemas/context.ts +0 -87
  789. package/src/search-globs.ts +0 -76
  790. package/src/session-names.ts +0 -44
  791. package/src/share-paths.ts +0 -68
  792. package/src/shell-regions.ts +0 -289
  793. package/src/starter.ts +0 -13
  794. package/src/state-portability.ts +0 -56
  795. package/src/terminal-protocol.ts +0 -16
  796. package/src/title.ts +0 -267
  797. package/src/tunnel-ids.ts +0 -57
  798. package/src/versions.ts +0 -48
  799. package/src/webext-links.ts +0 -90
  800. package/src/webext-protocol.ts +0 -27
  801. package/src/workspace-state.ts +0 -1096
  802. /package/dist/{hostnames.d.ts → ids/hostnames.d.ts} +0 -0
  803. /package/dist/{hostnames.js → ids/hostnames.js} +0 -0
  804. /package/dist/{session-names.d.ts → ids/session-names.d.ts} +0 -0
  805. /package/dist/{session-names.js → ids/session-names.js} +0 -0
  806. /package/dist/{share-paths.d.ts → ids/share-paths.d.ts} +0 -0
  807. /package/dist/{share-paths.js → ids/share-paths.js} +0 -0
  808. /package/dist/{agent-catalog.js → models/agent-catalog.js} +0 -0
  809. /package/dist/{agent-runtimes.d.ts → models/agent-runtimes.d.ts} +0 -0
  810. /package/dist/{agent-runtimes.js → models/agent-runtimes.js} +0 -0
  811. /package/dist/{fast-tier.js → models/fast-tier.js} +0 -0
  812. /package/dist/{model-order.d.ts → models/model-order.d.ts} +0 -0
  813. /package/dist/{model-order.js → models/model-order.js} +0 -0
  814. /package/dist/{plan-pools.js → models/plan-pools.js} +0 -0
  815. /package/dist/{prompt-complexity.d.ts → models/prompt-complexity.d.ts} +0 -0
  816. /package/dist/{prompt-complexity.js → models/prompt-complexity.js} +0 -0
  817. /package/dist/{provider-specs.d.ts → models/provider-specs.d.ts} +0 -0
  818. /package/dist/{provider-specs.js → models/provider-specs.js} +0 -0
  819. /package/dist/{approvals-execution.d.ts → policy/approvals-execution.d.ts} +0 -0
  820. /package/dist/{approvals-execution.js → policy/approvals-execution.js} +0 -0
  821. /package/dist/{capability-env.d.ts → policy/capability-env.d.ts} +0 -0
  822. /package/dist/{capability-env.js → policy/capability-env.js} +0 -0
  823. /package/dist/{capability-secrets.d.ts → policy/capability-secrets.d.ts} +0 -0
  824. /package/dist/{capability-secrets.js → policy/capability-secrets.js} +0 -0
  825. /package/dist/{command-run.js → policy/command-run.js} +0 -0
  826. /package/dist/{credential-material.d.ts → policy/credential-material.d.ts} +0 -0
  827. /package/dist/{credential-material.js → policy/credential-material.js} +0 -0
  828. /package/dist/{needs-action.d.ts → policy/needs-action.d.ts} +0 -0
  829. /package/dist/{needs-action.js → policy/needs-action.js} +0 -0
  830. /package/dist/{output-fields.d.ts → policy/output-fields.d.ts} +0 -0
  831. /package/dist/{output-fields.js → policy/output-fields.js} +0 -0
  832. /package/dist/{overlay-lint.d.ts → policy/overlay-lint.d.ts} +0 -0
  833. /package/dist/{overlay-lint.js → policy/overlay-lint.js} +0 -0
  834. /package/dist/{owner-ticket.d.ts → policy/owner-ticket.d.ts} +0 -0
  835. /package/dist/{search-globs.d.ts → policy/search-globs.d.ts} +0 -0
  836. /package/dist/{search-globs.js → policy/search-globs.js} +0 -0
  837. /package/dist/{ingress-contract.d.ts → protocol/ingress-contract.d.ts} +0 -0
  838. /package/dist/{ingress-protocol.d.ts → protocol/ingress-protocol.d.ts} +0 -0
  839. /package/dist/{ingress-protocol.js → protocol/ingress-protocol.js} +0 -0
  840. /package/dist/{listener-protocol.d.ts → protocol/listener-protocol.d.ts} +0 -0
  841. /package/dist/{peer-mcp-server.d.ts → protocol/peer-mcp-server.d.ts} +0 -0
  842. /package/dist/{peer-mcp-server.js → protocol/peer-mcp-server.js} +0 -0
  843. /package/dist/{request-id.d.ts → protocol/request-id.d.ts} +0 -0
  844. /package/dist/{request-id.js → protocol/request-id.js} +0 -0
  845. /package/dist/{routes.d.ts → protocol/routes.d.ts} +0 -0
  846. /package/dist/{routes.js → protocol/routes.js} +0 -0
  847. /package/dist/{sse.d.ts → protocol/sse.d.ts} +0 -0
  848. /package/dist/{sse.js → protocol/sse.js} +0 -0
  849. /package/dist/{terminal-protocol.js → protocol/terminal-protocol.js} +0 -0
  850. /package/dist/{webext-links.d.ts → protocol/webext-links.d.ts} +0 -0
  851. /package/dist/{webext-links.js → protocol/webext-links.js} +0 -0
  852. /package/dist/{arrival.d.ts → state/arrival.d.ts} +0 -0
  853. /package/dist/{contract-lock.d.ts → state/contract-lock.d.ts} +0 -0
  854. /package/dist/{history-state.d.ts → state/history-state.d.ts} +0 -0
  855. /package/dist/{runtime-state.d.ts → state/runtime-state.d.ts} +0 -0
  856. /package/dist/{runtime-state.js → state/runtime-state.js} +0 -0
  857. /package/dist/{starter.d.ts → state/starter.d.ts} +0 -0
  858. /package/dist/{starter.js → state/starter.js} +0 -0
  859. /package/dist/{state-portability.d.ts → state/state-portability.d.ts} +0 -0
  860. /package/dist/{state-portability.js → state/state-portability.js} +0 -0
  861. /package/dist/{versions.d.ts → state/versions.d.ts} +0 -0
  862. /package/dist/{versions.js → state/versions.js} +0 -0
  863. /package/dist/{embed.d.ts → text/embed.d.ts} +0 -0
  864. /package/dist/{embed.js → text/embed.js} +0 -0
  865. /package/dist/{mentions.d.ts → text/mentions.d.ts} +0 -0
  866. /package/dist/{mentions.js → text/mentions.js} +0 -0
  867. /package/dist/{path-refs.d.ts → text/path-refs.d.ts} +0 -0
  868. /package/dist/{path-refs.js → text/path-refs.js} +0 -0
  869. /package/dist/{shell-regions.js → text/shell-regions.js} +0 -0
  870. /package/dist/{title.d.ts → text/title.d.ts} +0 -0
  871. /package/dist/{title.js → text/title.js} +0 -0
  872. /package/src/{hostnames.test.ts → ids/hostnames.test.ts} +0 -0
  873. /package/src/{share-paths.test.ts → ids/share-paths.test.ts} +0 -0
  874. /package/src/{capability-env.ts → policy/capability-env.ts} +0 -0
  875. /package/src/{overlay-lint.test.ts → policy/overlay-lint.test.ts} +0 -0
  876. /package/src/{search-globs.test.ts → policy/search-globs.test.ts} +0 -0
  877. /package/src/{ingress-contract.test.ts → protocol/ingress-contract.test.ts} +0 -0
  878. /package/src/{peer-mcp-server.test.ts → protocol/peer-mcp-server.test.ts} +0 -0
  879. /package/src/{sse.ts → protocol/sse.ts} +0 -0
  880. /package/src/{versions.test.ts → state/versions.test.ts} +0 -0
  881. /package/src/{embed.test.ts → text/embed.test.ts} +0 -0
  882. /package/src/{mentions.test.ts → text/mentions.test.ts} +0 -0
  883. /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 {
4
4
  CapabilitiesListSchema,
5
5
  CapabilityCardParamSchema,
@@ -16,18 +16,8 @@ import {
16
16
  import { MarketplaceRequestSchema, MarketplaceSchema } from "../schemas/marketplace.js";
17
17
  import { OkSchema } from "../schemas/shared.js";
18
18
 
19
- /* The sandbox's unified capability manifest. `list` returns each active capability with its live status, the
20
- * non-secret echo of its config, and the NAMES of the credentials it holds. `add` upserts a capability and
21
- * STREAMS its apply (devops scaffolding / service provisioning emit ndjson progress; mcp/integration emit a
22
- * terminal frame), mirroring the /intentic runner. `remove` tears it down (devops refuses, deleting the repos
23
- * is data loss). `status` re-probes a single capability for a lazy UI refresh. `marketplace` resolves a Claude
24
- * Code plugin marketplace repo into installable plugin-capability configs.
25
- *
26
- * `add` IS ALSO THE EDIT, because the write is an upsert: the same id with a changed config changes that
27
- * connection. A caller editing one has never been shown its credentials, so it sends VAULTED
28
- * (capability-secrets.ts) for each it is leaving alone and the daemon resolves those from what is stored before
29
- * anything runs, the only way to change one setting on a tunnel without re-typing its key. A marker with
30
- * nothing behind it is refused rather than written. */
19
+ // The sandbox's unified capability manifest, spanning `list`/`add`/`remove`/`status`/`marketplace`. A VAULTED marker
20
+ // with nothing stored behind it is refused rather than silently written.
31
21
  export const capabilitiesContract = {
32
22
  list: oc
33
23
  .route({
@@ -48,11 +38,7 @@ export const capabilitiesContract = {
48
38
  })
49
39
  .input(CapabilitySchema)
50
40
  .output(eventIterator(IntenticLineSchema)),
51
- /* TRY THE SETTINGS BEFORE SAVING THEM. Nothing is written and nothing is applied: the daemon dials the
52
- * service the way the connection would and hands back what it said. It exists because the alternative is
53
- * the form's only feedback being the card afterwards reading "not connected", which names none of the six
54
- * answers that could have been wrong. A credential the caller is keeping arrives as VAULTED here too, so
55
- * an edit can be tested without re-typing a key. */
41
+ // A credential the caller is keeping arrives as VAULTED here too, so an edit can be tested without retyping a key.
56
42
  probe: oc
57
43
  .route({
58
44
  method: "POST",
@@ -73,10 +59,6 @@ export const capabilitiesContract = {
73
59
  })
74
60
  .input(CapabilityIdParamSchema)
75
61
  .output(OkSchema),
76
- /* Give a connection a different name, carrying what the old one keyed: a browser profile with its logins,
77
- * a connected machine's enrollment, an extension's checkout. The name is the agent's handle for the thing,
78
- * so this is a migration, add + remove would lose exactly the state that makes the connection worth
79
- * keeping. A kind whose name is part of what it IS (the scaffolders, the one-per-sandbox cards) refuses. */
80
62
  rename: oc
81
63
  .route({
82
64
  method: "POST",
@@ -87,7 +69,7 @@ export const capabilitiesContract = {
87
69
  })
88
70
  .input(CapabilityRenameSchema)
89
71
  .output(OkSchema),
90
- // Replace just the secret in a capability's config (the /secrets page's edit) and re-run its apply.
72
+ // Called by the /secrets page's edit action.
91
73
  setSecret: oc
92
74
  .route({
93
75
  method: "POST",
@@ -106,11 +88,7 @@ export const capabilitiesContract = {
106
88
  })
107
89
  .input(CapabilityIdParamSchema)
108
90
  .output(CapabilityStatusSchema),
109
- /* One capability's stored config, secrets included, how an extension BACKEND dials the service behind a
110
- * connected capability (ext-deployments reads its Komodo's key pair through this). Never a browser's: the
111
- * handler refuses any caller with a member identity, so only the daemon's header grants reach it, and an
112
- * extension's grant reaches it only when its manifest declares the route in `permissions.daemon`, which
113
- * is the install dialog saying, in one line, "this extension can read connected credentials". */
91
+ // Gated by `permissions.daemon` in the manifest (ext-deployments reads its Komodo key pair this way).
114
92
  connection: oc
115
93
  .route({
116
94
  method: "GET",
@@ -130,8 +108,6 @@ export const capabilitiesContract = {
130
108
  })
131
109
  .input(MarketplaceRequestSchema)
132
110
  .output(MarketplaceSchema),
133
- // "Not needed": stop offering this card until the workspace evidence behind it changes. Nothing is torn
134
- // down and nothing is remembered about the card itself, only the evidence it was declined against.
135
111
  dismiss: oc
136
112
  .route({
137
113
  method: "DELETE",
@@ -142,8 +118,7 @@ export const capabilitiesContract = {
142
118
  })
143
119
  .input(CapabilityCardParamSchema)
144
120
  .output(OkSchema),
145
- // Start an agent-kind capability's interactive login (its declared loginCommand) in a visible terminal
146
- // session the user types into, device-code sign-in flows. Returns the session the panel attaches to.
121
+ // Runs the capability's declared `loginCommand` in the terminal session the panel attaches to.
147
122
  login: oc
148
123
  .route({
149
124
  method: "POST",
@@ -154,9 +129,7 @@ export const capabilitiesContract = {
154
129
  })
155
130
  .input(CapabilityIdParamSchema)
156
131
  .output(CapabilityLoginSchema),
157
- // Mint one TOTP code from the capability's stored seed (a field its card marks `totp`). The one capability
158
- // read the agent token is admitted to (see auth/grants): a code expires within its period and never reveals
159
- // the seed, so the in-sandbox `otp` command can answer a 2FA prompt without the agent holding the factor.
132
+ // The seed comes from the config field the card marks `totp`.
160
133
  otp: oc
161
134
  .route({
162
135
  method: "GET",
@@ -2,18 +2,10 @@ import { oc } from "@orpc/contract";
2
2
  import { ChoreLedgerWriteSchema, ChoreProbeRequestSchema, ChoresReportSchema } from "../schemas/maintenance.js";
3
3
  import { OkSchema } from "../schemas/shared.js";
4
4
 
5
- /* Maintenance evidence: what every repo under /work currently measures, and what has already been done about it.
6
- * Three routes, because there are exactly three things the surface does, read the evidence, ask for a
7
- * measurement to be retaken, and record what a turn concluded.
8
- *
9
- * There is no `GET /chores/{id}` and no "run this chore" route on purpose. A chore RUN is an ordinary isolated
10
- * fleet agent (`POST /agent` with a derived conversation id), the same as an acceptance run or a documentation
11
- * generation, so the worktree, the live status, the cost, the transcript and the /agents/<id> page already
12
- * exist, and adding a bespoke launcher here would be a second way to start a turn that has to be kept in step
13
- * with the first. */
5
+ // Maintenance evidence across `list`/`probe`/`record`. No route runs a chore: a chore run is an ordinary isolated fleet
6
+ // agent (`POST /agent`), reusing its worktree, status, cost and transcript rather than duplicating a launcher here.
14
7
  export const choresContract = {
15
- // Every repo's standing evidence in one read: cached probe results (with their age and state), the cheap
16
- // resident signals, the ledger, and the daemon's node version. The rail badge polls this; so does the panel.
8
+ // Polled by both the rail badge and the panel.
17
9
  list: oc
18
10
  .route({
19
11
  method: "GET",
@@ -23,8 +15,6 @@ export const choresContract = {
23
15
  "Every repo's standing evidence in one read: what the last measurement found and how old it is, the cheap signals that are always current, and what has already been decided about each.",
24
16
  })
25
17
  .output(ChoresReportSchema),
26
- // Re-run one repo's probe now, ignoring its TTL, the panel's per-probe refresh. An ack: the runner works in
27
- // the background and the result arrives on the next `list`, because a jscpd sweep outlives any sane request.
28
18
  probe: oc
29
19
  .route({
30
20
  method: "POST",
@@ -35,8 +25,7 @@ export const choresContract = {
35
25
  })
36
26
  .input(ChoreProbeRequestSchema)
37
27
  .output(OkSchema),
38
- // Record what a chore turn concluded, or snooze one. Upsert by repo+chore: a chore has one current verdict,
39
- // and a growing history of "we looked at this and it was fine" is not something any reader wants paged.
28
+ // Also how a snooze is recorded, upserted the same way as a verdict.
40
29
  record: oc
41
30
  .route({
42
31
  method: "POST",
@@ -3,19 +3,11 @@ import { z } from "zod";
3
3
  import { CapabilityIdParamSchema } from "../schemas/capabilities.js";
4
4
  import { ModelsSchema } from "../schemas/provider-oauth.js";
5
5
 
6
- // An `endpoint` capability's picker catalog, the models the configured server itself publishes, read from its
7
- // own /v1/models. Every other provider's catalog is one fixed route because there is one of each; endpoints are
8
- // user-created and unbounded, so the id rides in the path. There is no seed floor and no static list: what a
9
- // model API serves is knowable only by asking it, and an empty answer is the honest report that we could not.
6
+ // Endpoints are user-created and unbounded (unlike every other provider, which has one fixed catalog route), so the id
7
+ // rides in the path.
10
8
 
11
- /* The free trial's remaining allowance, on the endpoints contract because the trial IS an endpoint, the one
12
- * the daemon provisions rather than the user (agent-catalog.ts TRIAL_ENDPOINT_ID). It is a separate read from
13
- * the catalog above because it answers a different question and changes on a different clock: the model list is
14
- * a property of the upstream, while this is a property of the ACCOUNT and moves with every message sent.
15
- *
16
- * `available` false is the ordinary answer, not an error: most sandboxes run against a platform that serves no
17
- * trial, and the picker simply has no trial row to badge.
18
- */
9
+ // The trial is an endpoint the daemon provisions rather than the user (TRIAL_ENDPOINT_ID); a separate read since
10
+ // this is a property of the account, moving with every message, not of the upstream model list.
19
11
  const TrialHealthSchema = z.enum(["unknown", "healthy", "degraded", "unavailable"]);
20
12
  export type TrialHealth = z.infer<typeof TrialHealthSchema>;
21
13
 
@@ -30,16 +22,7 @@ export const TrialStatusSchema = z.object({
30
22
  resetsAt: z.string().optional(),
31
23
  // Earliest known time a quarantined upstream key can be tried again.
32
24
  retryAt: z.string().optional(),
33
- /* THE REAL MODEL BEHIND THE TRIAL'S ONE PUBLISHED ID, on this account's most recent message.
34
- *
35
- * The trial routes per message across a ladder of models (the platform's trial-ladder.ts), so the id the
36
- * user selected names the trial rather than what answered them. Telling them which model ran is what keeps
37
- * that from being a black box: an answer that reads as weak has a visible cause, and a bug report can name
38
- * the model instead of guessing at one.
39
- *
40
- * It arrives on the STATUS poll rather than in the turn's own stream because the translator sits between the
41
- * platform and this daemon and does not forward response headers. The client refreshes this when a trial
42
- * turn ends, so in practice it is the model that served the turn just finished. Absent until one has been. */
25
+ // The real model that served the last trial message; the published id only names the trial ladder.
43
26
  servedModel: z.string().optional(),
44
27
  });
45
28
  export type TrialStatusResponse = z.infer<typeof TrialStatusSchema>;
@@ -1,24 +1,13 @@
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 { ExitCountriesSchema, ExitIdParamSchema, ExitListSchema, ExitObservationSchema, ExitUseInputSchema } from "../schemas/exit.js";
4
4
  import { OkSchema } from "../schemas/shared.js";
5
5
 
6
- // The live GEO EXIT surface. An exit is ADDED as an `exit` capability (which provider, a resting country,
7
- // whether it comes up on boot); it is STARTED, MOVED and ROTATED here. Same split as the vpn contract and for
8
- // the same reason: switching country is a runtime operation performed many times over one stored pool, by the
9
- // operator from the capability card and by the agent through `exit` on its PATH, which calls these very routes.
10
- //
11
- // The difference from vpn is what "success" means. A dial succeeds when the tunnel is up; a country switch
12
- // succeeds only when the egress ADDRESS has moved, which is why `use` and `rotate` end by fetching an
13
- // ExitObservation through the exit's own proxy and fail when it does not agree with what was asked for.
14
- //
15
- // Nothing here changes the sandbox's default route, ever. Each exit publishes a SOCKS proxy and callers opt
16
- // in; the daemon's own traffic, the model endpoint and the tunnel that makes this sandbox reachable stay on
17
- // the plain uplink no matter what is up.
6
+ // An exit is added as an `exit` capability; started, moved and rotated here, since switching country is a
7
+ // runtime operation done both by the operator and by the agent's `exit` command on PATH. Each exit publishes an opt-in
8
+ // SOCKS proxy; the sandbox's default route, model endpoint and reachability tunnel never move.
18
9
  export const exitContract = {
19
- // Every configured exit with its live state, where it was asked to come out and where it actually does.
20
- // Drives the capability card, the browser account picker and `geo list` (the CLI is `geo`: `exit` is a shell
21
- // builtin, so a binary of that name is unreachable from a command line).
10
+ // Drives the capability card, the account picker and `geo list` (the CLI is `geo`; `exit` is a shell builtin).
22
11
  list: oc
23
12
  .route({
24
13
  method: "GET",
@@ -28,9 +17,7 @@ export const exitContract = {
28
17
  "Every configured exit with its live state, the country it was asked to appear in, and the country it actually appears in. Those last two disagreeing is the whole reason this reports both.",
29
18
  })
30
19
  .output(ExitListSchema),
31
- // What this exit can reach, ranked by how much capacity is actually there. Live from the provider when it
32
- // answers (Tor's directory, VPN Gate's CSV, the pasted confs), from the baked fallback when it does not,
33
- // and `live` says which. This is what auto-fills the country picker instead of a user hunting hostnames.
20
+ // "Provider" is Tor's directory, VPN Gate's CSV, or pasted confs; this is what auto-fills the country picker.
34
21
  countries: oc
35
22
  .route({
36
23
  method: "GET",
@@ -41,9 +28,6 @@ export const exitContract = {
41
28
  })
42
29
  .input(ExitIdParamSchema)
43
30
  .output(ExitCountriesSchema),
44
- // Bring the exit up at its stored country. Streams, because a first start pulls a catalog, brings up a
45
- // tunnel and then verifies the address, which is tens of seconds on the free providers and can fail at
46
- // each step with something the user has to read. Idempotent: starting an up exit reports it and stops.
47
31
  start: oc
48
32
  .route({
49
33
  method: "POST",
@@ -54,9 +38,6 @@ export const exitContract = {
54
38
  })
55
39
  .input(ExitIdParamSchema)
56
40
  .output(eventIterator(IntenticLineSchema)),
57
- // Move to another country, starting the exit first if it was down. Streams for the same reason as start,
58
- // and THROWS when the observed country does not end up matching: a switch that silently left traffic where
59
- // it was is the one failure mode this whole feature exists to make impossible.
60
41
  use: oc
61
42
  .route({
62
43
  method: "POST",
@@ -67,8 +48,7 @@ export const exitContract = {
67
48
  })
68
49
  .input(ExitUseInputSchema)
69
50
  .output(eventIterator(IntenticLineSchema)),
70
- // A different address in the SAME country. Cheap on tor (a control-port signal), a re-dial to another
71
- // server on the rest. Fails when the address does not actually change, which on a small pool it can't.
51
+ // Cheap on tor (a control-port signal); a re-dial to another server for everything else.
72
52
  rotate: oc
73
53
  .route({
74
54
  method: "POST",
@@ -79,8 +59,6 @@ export const exitContract = {
79
59
  })
80
60
  .input(ExitIdParamSchema)
81
61
  .output(eventIterator(IntenticLineSchema)),
82
- // What the world sees through this exit right now. Cheap, unstreamed, and the honest answer to "am I
83
- // actually in Germany", which is the question every other route here is judged against.
84
62
  check: oc
85
63
  .route({
86
64
  method: "POST",
@@ -91,7 +69,6 @@ export const exitContract = {
91
69
  })
92
70
  .input(ExitIdParamSchema)
93
71
  .output(ExitObservationSchema),
94
- // Take it down. Tolerates an already-down exit: "make it not be up" is the contract, not "it was up".
95
72
  stop: oc
96
73
  .route({
97
74
  method: "POST",
@@ -19,10 +19,8 @@ import {
19
19
  import { ExtensionReadinessSchema } from "../schemas/maintenance.js";
20
20
  import { OkSchema } from "../schemas/shared.js";
21
21
 
22
- // Installed extensions resolved to their approved manifests, what the web extension host boots from. The
23
- // bundle itself is a plain Hono route (GET /extensions/{id}/bundle): raw ESM bytes are not an oRPC payload.
24
- // `settings`/`setSettings` carry the extension's own contributes.settings values; keys the manifest never
25
- // declared are refused, the same honesty rule the host applies to runtime view/command registrations.
22
+ // Installed extensions resolved to their approved manifests. The bundle itself is a plain Hono route, `GET
23
+ // /extensions/{id}/bundle`, not part of this oRPC contract: raw ESM bytes aren't a JSON payload.
26
24
  export const extensionsContract = {
27
25
  list: oc
28
26
  .route({
@@ -33,9 +31,7 @@ export const extensionsContract = {
33
31
  "Every extension installed here, resolved to the manifest the owner approved, which is what the app boots its extension host from. The code itself is served separately, because raw script bytes are not a JSON answer.",
34
32
  })
35
33
  .output(ExtensionsListSchema),
36
- // Author a new extension in place: writes a running one into .intentic/config/workspace-extensions/<name>/. The only
37
- // creating route here, and it exists because that directory is otherwise reachable exclusively through an
38
- // agent's file tools, which is a fine way to CHANGE an extension and a poor way to meet the idea of one.
34
+ // Writes into `.intentic/config/workspace-extensions/<name>/`.
39
35
  create: oc
40
36
  .route({
41
37
  method: "POST",
@@ -65,9 +61,7 @@ export const extensionsContract = {
65
61
  })
66
62
  .input(ExtensionSettingsInputSchema)
67
63
  .output(OkSchema),
68
- // The owner's on/off switch. Disabling stops the extension's declared processes here and now; its agent
69
- // plugin dir and PATH entry are rebuilt per turn, and an `environment` fragment only at the next image
70
- // rebuild, the Extensions tab states which of those an extension actually has.
64
+ // The Extensions tab states which of these apply to a given extension.
71
65
  setEnabled: oc
72
66
  .route({
73
67
  method: "POST",
@@ -78,10 +72,7 @@ export const extensionsContract = {
78
72
  })
79
73
  .input(ExtensionEnabledInputSchema)
80
74
  .output(OkSchema),
81
- // The host reporting which declared routes it just let through. Written by the browser because that is where
82
- // the permission gate runs (apiImpl.ts), the daemon sees an extension's traffic as ordinary authenticated
83
- // requests and cannot tell which extension, or which declared entry, any of it belongs to. Every extension's
84
- // accumulated counts ride together so the bookkeeping is one request rather than a burst of them.
75
+ // The permission gate that produces these counts runs in the browser (apiImpl.ts).
85
76
  recordUsage: oc
86
77
  .route({
87
78
  method: "POST",
@@ -92,9 +83,6 @@ export const extensionsContract = {
92
83
  })
93
84
  .input(ExtensionUsageBatchSchema)
94
85
  .output(OkSchema),
95
- /* Whether this extension is fit for somebody else to run, the checks answerable from its files alone. Read
96
- * on demand rather than carried on the list: it reads the bundle off disk per extension, and it is looked at
97
- * when an author is about to publish, not every time the tab renders. */
98
86
  readiness: oc
99
87
  .route({
100
88
  method: "GET",
@@ -105,14 +93,8 @@ export const extensionsContract = {
105
93
  })
106
94
  .input(CapabilityIdParamSchema)
107
95
  .output(ExtensionReadinessSchema),
108
- /* The update lifecycle for a GIT-INSTALLED extension. The list carries what the periodic registry check
109
- * found (update/advisory/health per row); these are the verbs around it. `checkUpdates` runs the comparison
110
- * now (the tab's "check now"). `updatePreview` stages the offered sha and answers with the version story +
111
- * the mechanical powers diff, the read BEFORE the click, costing one throwaway clone like a registry
112
- * browse. `applyUpdate` is the transaction: re-clone, validate, quiesce, swap (keeping the outgoing
113
- * checkout one back), restart, health-watch, on the EXISTING capability config, so a private-source token
114
- * survives what a bare re-add would lose. `revert` swaps the kept-previous checkout back. Update and revert
115
- * change the code that runs, so like install they are owner-only. */
96
+ // The extensions list itself carries what the periodic registry check found (update/advisory/health per row); these
97
+ // routes are the verbs around it.
116
98
  checkUpdates: oc
117
99
  .route({
118
100
  method: "POST",
@@ -151,8 +133,6 @@ export const extensionsContract = {
151
133
  })
152
134
  .input(CapabilityIdParamSchema)
153
135
  .output(ExtensionUpdateAppliedSchema),
154
- // The owner's standing answer per extension (notify / agent / auto, and the advisory opt-out), see
155
- // ExtensionUpdatePolicySchema for what each rung means.
156
136
  setUpdatePolicy: oc
157
137
  .route({
158
138
  method: "POST",
@@ -163,9 +143,7 @@ export const extensionsContract = {
163
143
  })
164
144
  .input(ExtensionUpdatePolicyInputSchema)
165
145
  .output(OkSchema),
166
- // Declared background processes (contributes.processes): supervised children of the daemon (respawned
167
- // with backoff, PORT-assigned, one log file each — the terminals list carries their `svc-ext-<id>-<name>`
168
- // log-view rows), with an optional tunneled preview route.
146
+ // Declared via `contributes.processes`; the terminals list shows each one's log as `svc-ext-<id>-<name>`.
169
147
  processStatus: oc
170
148
  .route({
171
149
  method: "GET",
@@ -12,9 +12,9 @@ import {
12
12
  GitFileSchema,
13
13
  GitFilesSchema,
14
14
  GitFileWriteSchema,
15
+ GitIndexMoveSchema,
15
16
  GitOperationStateSchema,
16
17
  GitRemoteStateSchema,
17
- GitStageSchema,
18
18
  GitStatusSchema,
19
19
  PushRunSchema,
20
20
  PushSchema,
@@ -48,10 +48,9 @@ import {
48
48
  import { FileDiffSchema } from "../schemas/history.js";
49
49
  import { OkSchema, RepoParamSchema } from "../schemas/shared.js";
50
50
 
51
- // Per-repo git ops over the workspace repos: "root" (the /work repo) plus every discovered repo under /work
52
- // ({repo} is the repo's root-relative dir, URL-encoded). An unknown {repo} is a handler-thrown
53
- // NOT_FOUND; a path that escapes the repo is a BAD_REQUEST. `changes` is the workspace-wide review set the
54
- // Changes panel renders; commit/discard take optional `paths` for per-file actions.
51
+ // Per-repo git ops over the workspace repos; `root` is /work, others are discovered under it, and {repo} is the
52
+ // root-relative dir, URL-encoded. Unknown {repo} throws NOT_FOUND, an escaping path throws BAD_REQUEST. `changes` is
53
+ // the workspace-wide review set; commit/discard take optional `paths`.
55
54
  export const gitContract = {
56
55
  changes: oc
57
56
  .route({
@@ -62,9 +61,7 @@ export const gitContract = {
62
61
  "The workspace's whole review set in one answer: every repo that has something uncommitted, and within it every changed file with its status and line counts. This is what the Changes panel draws, and it is the call to make when you want to know whether a workspace is clean without walking the repos yourself.",
63
62
  })
64
63
  .output(GitChangesSchema),
65
- // The git-history graph over one repo's real commits: the repo list (for the tree affordance + switcher),
66
- // one repo's commit log, and lazy per-commit detail (changed files, then a file's before/after AT the
67
- // commit). Read-only, commit/discard on the working tree stay the write path (above).
64
+ // Read-only: repo list, commit log, lazy per-commit diff; commit/discard on the tree are a separate write path.
68
65
  repos: oc
69
66
  .route({
70
67
  method: "GET",
@@ -74,8 +71,7 @@ export const gitContract = {
74
71
  "The repos the daemon found under the workspace root, each with the id every other call in this group expects as its `{repo}` segment. The workspace root itself is always present as `root`.",
75
72
  })
76
73
  .output(GitReposSchema),
77
- // The same repos with the host + project their remote names, how a caller recognises a workspace repo in a
78
- // list of `owner/name` strings that came from somewhere else. Kept off `repos` (a `git remote -v` per repo).
74
+ // Same repos with the remote's host and `owner/name`; kept off `repos` since it costs a lookup per repo.
79
75
  remoteRepos: oc
80
76
  .route({
81
77
  method: "GET",
@@ -115,13 +111,8 @@ export const gitContract = {
115
111
  })
116
112
  .input(GitCommitFileDiffQuerySchema)
117
113
  .output(FileDiffSchema),
118
- // Write actions from the graph's commit context menu (VSCode "Git Graph" parity). Non-destructive refs
119
- // (branch/tag) return Ok and let git's errors propagate; the sequence + HEAD-moving ops return a
120
- // GitActionResult so a conflict/clean-apply failure is a value, not a 500. Read routes above.
121
- /* The halted-operation pair. `operation` is a READ every git surface can use to explain a worktree it cannot
122
- * otherwise act on; `abort` is the single way out, and it is git's own `--abort` rather than anything
123
- * clever. Neither is reachable from the daemon's own verbs, those abort themselves, so this exists purely
124
- * for what a terminal left behind. */
114
+ // Non-destructive writes return Ok; HEAD-moving ops return a GitActionResult, a conflict is a value not 500.
115
+ // `abort` is git's own `--abort`, the only way out of what `operation` reports; daemon verbs self-abort.
125
116
  operation: oc
126
117
  .route({
127
118
  method: "GET",
@@ -142,10 +133,7 @@ export const gitContract = {
142
133
  })
143
134
  .input(RepoParamSchema)
144
135
  .output(GitActionResultSchema),
145
- /* Walk the current branch back to where it was before its last action, off the branch's own reflog. The
146
- * complement to the Checkpoints timeline, not a duplicate of it: a checkpoint restores the working tree,
147
- * this moves the ref. The read carries `previousSha`, which the write sends back as a concurrency token,
148
- * an undo prepared against a stale view is refused rather than landing somewhere unlooked-at. */
136
+ // Moves the branch ref via reflog; requires `previousSha` from the matching read as a concurrency token.
149
137
  undoable: oc
150
138
  .route({
151
139
  method: "GET",
@@ -166,9 +154,7 @@ export const gitContract = {
166
154
  })
167
155
  .input(GitUndoSchema)
168
156
  .output(GitActionResultSchema),
169
- /* The stash. Read as a list plus a per-entry diff, mirroring the commit log and commit-diff pair above,
170
- * because a stash entry is a commit and the graph renders it as one. The writes are git's own four verbs;
171
- * only `drop` is unrecoverable, and the route checkpoints before it. */
157
+ // A stash entry is a commit, read like the log/diff pair; only `drop` is unrecoverable and checkpoints first.
172
158
  stashes: oc
173
159
  .route({
174
160
  method: "GET",
@@ -237,7 +223,6 @@ export const gitContract = {
237
223
  })
238
224
  .input(GitTagCreateSchema)
239
225
  .output(OkSchema),
240
- // The other two things one does with a tag, so the graph's tag pills are not a create-only affordance.
241
226
  deleteTag: oc
242
227
  .route({
243
228
  method: "POST",
@@ -353,7 +338,7 @@ export const gitContract = {
353
338
  path: "/git/{repo}/commit",
354
339
  summary: "Commit the pending changes",
355
340
  description:
356
- "Records a commit with your message. Give it a list of paths to commit only those, or leave it out to commit everything pending. The answer carries the commit it created.",
341
+ "Records a commit with your message. It commits whatever is staged; add `stage` to stage something first — an empty object for everything pending, or a scope such as one side or one conversation's landed files. The answer carries the commit it created.",
357
342
  })
358
343
  .input(CommitSchema)
359
344
  .output(CommitResultSchema),
@@ -363,33 +348,32 @@ export const gitContract = {
363
348
  path: "/git/{repo}/discard",
364
349
  summary: "Throw away pending changes",
365
350
  description:
366
- "Restores files to their committed state and deletes untracked ones. Give it paths to discard only those. The daemon checkpoints the workspace first, so this is recoverable from the timeline.",
351
+ "Restores files to their committed state and deletes untracked ones. Name paths or a scope to narrow it; with neither it throws away every uncommitted change in the repository. The daemon checkpoints the workspace first, so this is recoverable from the timeline.",
367
352
  })
368
353
  .input(DiscardSchema)
369
354
  .output(OkSchema),
370
- // Index moves. Per-path, worktree untouched, so they need no checkpoint and can't fail destructively,
371
- // git's own error (an unmatched pathspec) propagates.
355
+ // Take a scope, not a path list, so it covers files the caller never enumerated; the worktree is untouched.
372
356
  stage: oc
373
357
  .route({
374
358
  method: "POST",
375
359
  path: "/git/{repo}/stage",
376
- summary: "Mark paths for the next commit",
377
- description: "Adds paths to the index. Nothing on disk changes, so this is always safe and always reversible with the unstage call.",
360
+ summary: "Mark changes for the next commit",
361
+ description:
362
+ "Adds changes to the index: exactly the paths you name, everything a scope describes, or the whole repository when you name neither. Nothing on disk changes, so this is always safe and always reversible with the unstage call.",
378
363
  })
379
- .input(GitStageSchema)
364
+ .input(GitIndexMoveSchema)
380
365
  .output(OkSchema),
381
366
  unstage: oc
382
367
  .route({
383
368
  method: "POST",
384
369
  path: "/git/{repo}/unstage",
385
- summary: "Take paths back out of the next commit",
386
- description: "Removes paths from the index and leaves the file itself untouched. The exact reverse of staging.",
370
+ summary: "Take changes back out of the next commit",
371
+ description:
372
+ "Removes changes from the index and leaves the files themselves untouched, on the same terms as staging. The exact reverse of it.",
387
373
  })
388
- .input(GitStageSchema)
374
+ .input(GitIndexMoveSchema)
389
375
  .output(OkSchema),
390
- // Local branch management for the switcher. `branches` also carries per-branch ahead/behind, so the list
391
- // is enough to render sync state without a call per branch. Checkout is above (it moves HEAD, so it is
392
- // checkpointed with the other HEAD-movers).
376
+ // `branches` includes per-branch ahead/behind, so the switcher renders sync state without a call per branch.
393
377
  branches: oc
394
378
  .route({
395
379
  method: "GET",
@@ -420,9 +404,7 @@ export const gitContract = {
420
404
  })
421
405
  .input(GitBranchDeleteSchema)
422
406
  .output(OkSchema),
423
- // Remote sync. All three report a GitActionResult rather than throwing: no remote, no credentials and a
424
- // non-fast-forwardable pull are ORDINARY outcomes the panel renders, not 500s. `remote` is the read
425
- // (ahead/behind as of the last fetch, hence the Fetch button) the sync bar polls.
407
+ // Reflects the last fetch, not a live check; writes below report a GitActionResult, not a throw, on failure.
426
408
  remote: oc
427
409
  .route({
428
410
  method: "GET",
@@ -453,11 +435,7 @@ export const gitContract = {
453
435
  })
454
436
  .input(RepoParamSchema)
455
437
  .output(GitActionResultSchema),
456
- /* THE PUSH IS A RUN, the pre-push check's three verbs over again (prepush.contract.ts), for the same reason:
457
- * a push runs the repository's own pre-push hook, which for a workspace with a real gate is the whole suite,
458
- * and a request held open for minutes dies at the first proxy and at the browser's own header deadline. So
459
- * `push` starts it and answers at once, `pushState` is polled for the verdict, and the output is a terminal
460
- * the owner can watch. Addressed by repo, unlike the check: there is one working tree but many remotes. */
438
+ // Starts the push and returns at once; poll `pushState` for the verdict, since it runs the pre-push hook.
461
439
  push: oc
462
440
  .route({
463
441
  method: "POST",
@@ -516,9 +494,7 @@ export const gitContract = {
516
494
  })
517
495
  .input(GitFileWriteSchema)
518
496
  .output(OkSchema),
519
- // Write + commit-that-path-only + push, as one step with one answer. Reports rather than throws for the
520
- // same reason the remote trio above does: no remote, no credentials and "you are on a side branch" are
521
- // ordinary outcomes a screen renders, not 500s.
497
+ // Writes, commits only this path, and pushes in one call; no remote, no credentials, wrong branch are reported.
522
498
  publishFile: oc
523
499
  .route({
524
500
  method: "POST",
@@ -5,55 +5,20 @@ import { HostScopesSchema } from "../schemas/capabilities.js";
5
5
  import { HostFactsSchema } from "../schemas/hosts.js";
6
6
  import { OkSchema } from "../schemas/shared.js";
7
7
 
8
- /* What a connected device can be ASKED, over the socket it opened to this sandbox.
9
- *
10
- * The direction is the unusual part: the machine is the oRPC SERVER and the daemon holds the client, even though
11
- * the machine is the side that dialled. A personal device sits behind NAT with a closing lid, so it can only
12
- * ever be the one that connects, but everything is asked OF it. oRPC's websocket adapter takes any socket-like
13
- * object on either side, so the roles are free to be the opposite of who placed the call.
14
- *
15
- * No `.route()` on these: HTTP method and path are for the daemon's own REST surface, and this contract never
16
- * touches HTTP. The procedure path IS the address.
17
- *
18
- * `mcp` IS THE DELIBERATE HOLE in the typing, and it is worth understanding before someone "fixes" it. The agent
19
- * talks to a machine in MCP, over the daemon's loopback bridge; if this contract described each tool, then the
20
- * daemon would have to know every tool's schema and translate, and a machine could no longer learn a tool
21
- * without a matching daemon release. Keeping one opaque procedure is what buys the machine an independent
22
- * release cycle. The payload is still validated where it is understood: on the machine, against the tool's own
23
- * schema, and by the agent's MCP client on the way back. */
8
+ // What a connected device can be asked, over the socket it opened; the machine is the oRPC server, the daemon the
9
+ // client. No `.route()`: the procedure path is the address, not HTTP. `mcp` stays opaque (`z.unknown()`) so a machine
10
+ // can add tools without a daemon release; validated on the machine and by the agent's MCP client.
24
11
  export const hostContract = {
25
- // What this device is, pulled right after the socket authenticates, and again whenever the sandbox wants
26
- // it fresh. The card shows it, and the agent's skill pack is written against it.
12
+ // Device facts, refreshed on connect and on demand; the agent's skill pack is written against this shape.
27
13
  describe: oc.output(HostFactsSchema),
28
- // The grant, pushed down on every connect and again whenever the owner edits the card. The machine ENFORCES
29
- // it; nothing on the sandbox side checks a scope, so this call is the only thing that moves the boundary.
14
+ // Pushed on connect and on edit; the machine enforces the grant, nothing on the sandbox side checks a scope.
30
15
  setScopes: oc.input(HostScopesSchema).output(OkSchema),
31
- // Liveness, driven by the daemon: it doubles as the keepalive that stops an idle tunnel from reaping the
32
- // connection, and as the probe whose failure means the machine is gone rather than quiet.
16
+ // Daemon-driven liveness; doubles as keepalive against an idle tunnel and the gone-vs-quiet probe.
33
17
  ping: oc.output(OkSchema),
34
- // One MCP JSON-RPC message in, its answer out, forwarded verbatim in both directions. See above.
18
+ // One MCP JSON-RPC message forwarded verbatim in both directions, unmodified.
35
19
  mcp: oc.input(z.unknown()).output(z.unknown()),
36
- /* One operation on one of this machine's sandboxes, narrated as it happens.
37
- *
38
- * TYPED, unlike `mcp`, and the difference is who is on the other end. `mcp`'s reader is a model, which has
39
- * nothing to do with a line as it arrives and everything to gain from the machine learning tools without a
40
- * daemon release. This reader is a PERSON watching a progress log: an update pulls an image and recreates a
41
- * container, which is minutes of silence unless the lines travel while they are produced. A stream is what
42
- * the browser needs, and a stream is the one thing an MCP tool result cannot be.
43
- *
44
- * The scope is still checked here, on the machine, by the same functions the MCP tools call, this adds a
45
- * way of WATCHING an operation, never a way of skipping the switch that permits it. */
20
+ // Streamed for a person watching progress; the scope is checked on the machine, this only adds visibility.
46
21
  runSandboxFlow: oc.input(DeviceSandboxFlowSchema).output(eventIterator(DeviceFlowLineSchema)),
47
- /* Update or restart the agent on this device, narrated the same way — and the one call that expects to be
48
- * cut off, because the work it starts stops the process serving it (see DeviceAgentFlowSchema).
49
- *
50
- * A TYPED PROCEDURE rather than another `run_command` line, and the reason is the failure mode rather than
51
- * the typing: run through `run_command` this is a child of a process about to be SIGTERMed, and a swap
52
- * interrupted between its two renames leaves the device with no agent binary at all. Here the agent spawns
53
- * the work detached from the socket first, so nothing the daemon does to this stream can brick it.
54
- *
55
- * It takes "Run commands" — the same grant `run_command` takes, since this is literally a command its owner
56
- * could type — rather than the sandbox switches, which are about containers. An agent too old to serve this
57
- * procedure is a real answer too: the view falls back to naming the command, as it did before. */
22
+ // Spawns the work detached from the socket, so restarting the agent process cannot brick a swap in progress.
58
23
  runAgentFlow: oc.input(DeviceAgentFlowSchema).output(eventIterator(DeviceFlowLineSchema)),
59
24
  };