@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
@@ -34,13 +34,11 @@ import {
34
34
  WorkspaceTreeSchema,
35
35
  } from "../schemas/workspace-tree.js";
36
36
 
37
- // The full /work view + extra-repo cloning. The binary preview (/workspace/raw) is intentionally NOT here, it
38
- // stays a plain Hono route serving raw bytes with a Content-Type header (oRPC's request/response shape doesn't
39
- // fit a streamed binary body). External MCP tools moved to the unified capabilities manifest (mcp kind).
37
+ // The full /work view plus extra-repo cloning. /workspace/raw stays a plain Hono route (a streamed binary body doesn't
38
+ // fit oRPC's request/response shape).
39
+ // External MCP tools live in the capabilities manifest (mcp kind), not here.
40
40
  export const workspaceContract = {
41
- // `agent` names whose copy of the workspace to read (WorkspaceScopeSchema); omitted is the shared /work
42
- // tree. Every read route below takes it, so a link into a conversation's own checkout browses as one tree
43
- // rather than as one openable file surrounded by the shared one.
41
+ // `agent` picks whose workspace copy to read (WorkspaceScopeSchema); omitted means the shared /work tree.
44
42
  tree: oc
45
43
  .route({
46
44
  method: "GET",
@@ -51,9 +49,7 @@ export const workspaceContract = {
51
49
  })
52
50
  .input(WorkspaceScopeSchema)
53
51
  .output(WorkspaceTreeSchema),
54
- // Lazy-load one directory's children, the tree returns ignored dirs (node_modules, .git, …) without children,
55
- // and the client fetches them here on expand so a giant node_modules can't blow the tree walk's entry budget.
56
- // Bounded depth is for consumers that need a small subtree as data rather than one explorer row at a time.
52
+ // Lazy-loads a folder's children the tree walk skipped (node_modules, .git…) to bound its entry budget.
57
53
  children: oc
58
54
  .route({
59
55
  method: "GET",
@@ -64,8 +60,7 @@ export const workspaceContract = {
64
60
  })
65
61
  .input(WorkspaceChildrenQuerySchema)
66
62
  .output(WorkspaceChildrenSchema),
67
- // One WINDOW of a file's text (plus the file's total size), never the whole file: the browser reads text
68
- // through here, and an unbounded read on an HTTP route is a way for any open log to stall the daemon.
63
+ // One window of a file's text plus its size, never the whole file: an unbounded read can stall the daemon.
69
64
  file: oc
70
65
  .route({
71
66
  method: "GET",
@@ -76,10 +71,7 @@ export const workspaceContract = {
76
71
  })
77
72
  .input(WorkspaceFileReadQuerySchema)
78
73
  .output(WorkspaceFileSchema),
79
- /* The ticket a media element presents to GET /workspace/media (a plain Hono route, like /workspace/raw,
80
- * it answers a streamed byte RANGE, which oRPC has no shape for). Minting is here rather than beside it so
81
- * it rides the bearer middleware and the contract's route advertisement: a browser can tell whether the
82
- * sandbox in front of it can stream video at all, instead of learning it from a 404 mid-playback. */
74
+ // Mints the ticket GET /workspace/media (a plain Hono byte-range route, no oRPC shape) requires to stream.
83
75
  mediaTicket: oc
84
76
  .route({
85
77
  method: "POST",
@@ -90,9 +82,7 @@ export const workspaceContract = {
90
82
  })
91
83
  .input(WorkspaceMediaTicketQuerySchema)
92
84
  .output(WorkspaceMediaTicketSchema),
93
- // Which file a NAMED reference means, the lookup behind every clickable path in the UI. A path an agent
94
- // wrote in prose is often only a suffix of the real one, so it is matched against the workspace tree rather
95
- // than trusted as root-relative.
85
+ // Matches a prose-written path, often just a suffix, against the tree rather than trusting it as root-relative.
96
86
  resolve: oc
97
87
  .route({
98
88
  method: "GET",
@@ -103,8 +93,7 @@ export const workspaceContract = {
103
93
  })
104
94
  .input(WorkspaceResolveQuerySchema)
105
95
  .output(WorkspaceResolveSchema),
106
- // Ranked groups, match-reason tags, freshness, resumable cursor. `mode` narrows to one verb; default is
107
- // auto-mode fusion. (Implementation detail: the daemon backs this with a resident in-process iq engine.)
96
+ // `mode` narrows the search to one kind; default fuses text, structure, meaning and history in one pass.
108
97
  search: oc
109
98
  .route({
110
99
  method: "GET",
@@ -115,9 +104,7 @@ export const workspaceContract = {
115
104
  })
116
105
  .input(WorkspaceSearchQuerySchema)
117
106
  .output(WorkspaceSearchResultSchema),
118
- // One repository's health in numbers: churn × complexity per file, index totals, and the import graph's
119
- // top modules, the `hotspots` and `map` rankings the CLI prints, shaped for a panel. Repo-scoped, because
120
- // "the codebase" is a repo, not the whole /work drop.
107
+ // Per-file churn × complexity, index totals, top modules; scoped to a repo, not the whole /work drop.
121
108
  health: oc
122
109
  .route({
123
110
  method: "GET",
@@ -128,9 +115,7 @@ export const workspaceContract = {
128
115
  })
129
116
  .input(WorkspaceHealthQuerySchema)
130
117
  .output(WorkspaceHealthSchema),
131
- // Deterministic, no-LLM classification of the dropped workspace into coarse buckets (repositories / documents
132
- // / media / archives / other). Read-only proposal: the browser renders it and applies accepted moves via the
133
- // existing /workspace/move route, this route never touches the tree.
118
+ // Deterministic, no-LLM classification into coarse buckets; read-only, applied only via the move route.
134
119
  classify: oc
135
120
  .route({
136
121
  method: "GET",
@@ -140,9 +125,7 @@ export const workspaceContract = {
140
125
  "Proposes which of the loose things in the workspace are code, documents, media or archives. A read-only suggestion by fixed rules, with no model involved: nothing moves until a caller applies the moves it likes through the move call.",
141
126
  })
142
127
  .output(WorkspaceClassificationSchema),
143
- // Direct file management the browser drives against the /work tree (byte writes go through POST
144
- // /workspace/upload). oRPC's OpenAPI codec reads non-GET input from the JSON body, so delete sends {path}
145
- // in the body too (not the query), same as the POST routes.
128
+ // Delete sends `{path}` in the body, not the query: oRPC's OpenAPI codec reads non-GET input from the body.
146
129
  mkdir: oc
147
130
  .route({
148
131
  method: "POST",
@@ -180,10 +163,7 @@ export const workspaceContract = {
180
163
  })
181
164
  .input(WorkspaceMoveSchema)
182
165
  .output(OkSchema),
183
- // Dependency readiness for every project under /work, and the install that fixes it. An imported project
184
- // arrives without node_modules/.venv (the drop omits them), so "the files landed" is not "this works":
185
- // until setup says ready, its type-checks and tests can only lie. The install runs as a one-shot tmux panel
186
- // like a dev server or add-app, attachable, survives a reload, output kept in the terminal logs.
166
+ // An imported project lacks node_modules/.venv; until this says ready, its type checks and tests can mislead.
187
167
  setup: oc
188
168
  .route({
189
169
  method: "GET",
@@ -220,8 +200,7 @@ export const workspaceContract = {
220
200
  })
221
201
  .input(CloneRepoSchema)
222
202
  .output(CloneResultSchema),
223
- // Force-fetch + guarded fast-forward every repo with a remote (mutates the tree ⇒ POST). The turn hook syncs
224
- // automatically each turn; this is the on-demand refresh (and how you re-sync a dirty/diverged repo after committing).
203
+ // Mutates the tree (fetch + fast-forward), which is why this is POST rather than GET.
225
204
  sync: oc
226
205
  .route({
227
206
  method: "POST",
@@ -231,8 +210,7 @@ export const workspaceContract = {
231
210
  "Fetches every repo that has a remote and fast-forwards the ones that can move safely, reporting what happened to each. This runs by itself at the start of a turn; call it directly to refresh on demand, or to re-sync a repo that had drifted.",
232
211
  })
233
212
  .output(WorkspaceSyncSchema),
234
- // The addable app types the configured source repo offers (its templates.json), drives the apps
235
- // extension's Add-app picker.
213
+ // The source repo's templates.json app types; drives the apps extension's Add-app picker.
236
214
  templates: oc
237
215
  .route({
238
216
  method: "GET",
@@ -241,11 +219,7 @@ export const workspaceContract = {
241
219
  description: "The kinds of app the configured source repo knows how to scaffold, which is what an add-app picker lists.",
242
220
  })
243
221
  .output(TemplatesListSchema),
244
- // Per-monorepo apps, driven by the web app's apps extension (owner-authed; {repo} is validated in the
245
- // handler): add one or more apps into an existing monorepo, list them with per-app preview URL + status,
246
- // and start/stop each app's preview dev server. `addApps` kicks off a one-shot tmux job (session
247
- // panel-<repo>--add_apps) that runs `intentic scaffold add-app`, the attachable terminal is the progress/error
248
- // surface; the extension polls the session's `running` for completion. It returns immediately (an ack).
222
+ // Runs as a one-shot tmux job named `panel-<repo>--add_apps`, executing `intentic scaffold add-app`.
249
223
  addApps: oc
250
224
  .route({
251
225
  method: "POST",
@@ -265,8 +239,7 @@ export const workspaceContract = {
265
239
  })
266
240
  .input(RepoAppsParamSchema)
267
241
  .output(AppsListSchema),
268
- // The monorepo's workspace package dependency graph (pnpm-workspace.yaml globs + per-package package.json
269
- // workspace deps), drives the apps extension's Dependencies view.
242
+ // The monorepo's package dependency graph, from pnpm-workspace.yaml globs and each package.json's deps.
270
243
  packageGraph: oc
271
244
  .route({
272
245
  method: "GET",
@@ -276,9 +249,7 @@ export const workspaceContract = {
276
249
  })
277
250
  .input(RepoAppsParamSchema)
278
251
  .output(WorkspaceGraphSchema),
279
- // Every repo's modules (the dirs owning a named package.json), what the review panels group changed files
280
- // under when the reader has asked for modules instead of paths. Whole-workspace rather than per-repo: a
281
- // review list spans repos, and one request per repo group would be a fan-out the panel pays on every open.
252
+ // Every repo's package dirs in one call, since a review spans repos and per-repo would fan out per open.
282
253
  modules: oc
283
254
  .route({
284
255
  method: "GET",
@@ -306,9 +277,7 @@ export const workspaceContract = {
306
277
  })
307
278
  .input(AppParamSchema)
308
279
  .output(OkSchema),
309
- // Run vitest for the given repo-relative project dirs in a one-shot tmux panel session
310
- // (panel-<repo>--<session>), drives the apps extension's per-app / per-package / library Run-tests actions.
311
- // Mirrors addApps: it returns an ack; the attachable terminal is the result surface.
280
+ // Runs tests for the named dirs in a one-shot tmux panel; mirrors addApps: an ack, terminal as result surface.
312
281
  runTests: oc
313
282
  .route({
314
283
  method: "POST",
@@ -0,0 +1,345 @@
1
+ import { z } from "zod";
2
+ import { PermissionModeSchema } from "../schemas/agent.js";
3
+ import { LandConflictSchema } from "../schemas/agents.js";
4
+ import { RateLimitInfoSchema } from "../schemas/claude-gate.js";
5
+ import { FastModeStateSchema } from "../schemas/fast-mode.js";
6
+ import { AgentReplySchema, UsageWindowSchema } from "../schemas/plan-limits.js";
7
+ import { SubagentKindSchema, SubagentStatusSchema, SubagentVerificationSchema } from "../schemas/terminal.js";
8
+ import { AgentCommandSchema, browserHelpCard, capabilityOfferCard, CapabilityOutcomeSchema, ContextUsageSchema, credentialOfferCard, CredentialReceiptSchema, paymentOfferCard, PaymentReceiptSchema, PermissionCardSchema, PlanCardSchema, QuestionCardSchema, terminalHelpCard, TodoItemSchema, ToolCallContentSchema, ToolCallLocationSchema, ToolCallStatusSchema, ToolKindSchema } from "./cards.js";
9
+ import { TranscriptPatchSchema, TranscriptRowSchema, TurnNoteSchema } from "./transcript.js";
10
+
11
+ // Every frame an agent turn streams, as one `kind`-discriminated union: turn facts (session, standing, cost) and the
12
+ // attach stream a window joins through. One closed vocabulary, kept in one file.
13
+
14
+ // One frame per emission, `kind`-discriminated; the daemon maps SDK message types onto this closed set, dropping any
15
+ // without a UI mapping. `plan`/`question`/`permission` pause until `resolved` names the same requestId.
16
+ export const AgentEventSchema = z.discriminatedUnion("kind", [
17
+ // The session this turn runs on and the account it belongs to. `account` is the daemon's resolved account, not
18
+ // necessarily the one the request named; absent on an env-token or translator-subscription turn.
19
+ z.object({
20
+ kind: z.literal("session"),
21
+ sessionId: z.string(),
22
+ account: z.string().optional().describe("Which stored account this session belongs to, as the daemon resolved it for the turn."),
23
+ }),
24
+ // Where an isolated turn stands: worktree branch and the root repo's base sha, repeated each emission. `unenforced`
25
+ // marks a degraded container rewriting tool paths; `sync` reports a mid-turn rebase.
26
+ z.object({
27
+ kind: z.literal("worktree"),
28
+ branch: z.string(),
29
+ base: z.string(),
30
+ unenforced: z.boolean().optional(),
31
+ sync: z.object({ commits: z.number(), blocked: z.array(z.string()) }).optional(),
32
+ // The runner this turn executes on, when the conversation is placed remotely; absent means this sandbox.
33
+ remote: z.string().optional(),
34
+ }),
35
+ // After a clean isolated turn's delta lands or not: `landed` puts it uncommitted in the main tree, `conflicts`
36
+ // names paths that failed, `held` means nothing happened. `deps` covers undeclared dependencies.
37
+ z.object({
38
+ kind: z.literal("landed"),
39
+ landed: z.boolean(),
40
+ conflicts: z.array(LandConflictSchema).optional(),
41
+ held: z.boolean().optional(),
42
+ deps: z.object({ missing: z.number(), started: z.array(z.string()), deferred: z.boolean() }).optional(),
43
+ }),
44
+ // Notes the daemon prepends to the user's message before the model reads it, verbatim, one per note. Serialized
45
+ // from the same typed notes the wire prompt uses, so disclosure cannot drift from what the model got.
46
+ z.object({ kind: z.literal("preamble"), notes: z.array(TurnNoteSchema) }),
47
+ // The SDK's init handshake; carries the model it actually resolved for the turn.
48
+ z.object({ kind: z.literal("init"), model: z.string() }),
49
+ // The pre-turn snapshot id, emitted once before the provider stream so the client can offer
50
+ // restore-to-before-this-message. Absent on an isolated turn or when the tree was already clean.
51
+ // `index` is the message's position in the transcript, which the rewind route addresses by; absent on a turn with
52
+ // no conversation, where the id still powers a plain restore.
53
+ z.object({ kind: z.literal("checkpoint"), id: z.string(), index: z.number().int().nonnegative().optional() }),
54
+ // A mid-turn user message, framed when the daemon accepted it, so every client and the stored transcript agree on
55
+ // when. `text` is the raw words typed, never the composed prompt; `sentAt` is the daemon's clock.
56
+ z.object({ kind: z.literal("steer"), text: z.string(), sentAt: z.number(), attachments: z.array(z.string()).optional() }),
57
+ z.object({ kind: z.literal("delta"), text: z.string(), parentToolUseId: z.string().optional() }),
58
+ // Closes the prose block `delta` frames were writing; a turn emits several as it narrates, and without this
59
+ // boundary the client cannot tell them apart.
60
+ z.object({ kind: z.literal("text_end"), parentToolUseId: z.string().optional() }),
61
+ z.object({ kind: z.literal("thinking"), text: z.string(), parentToolUseId: z.string().optional() }),
62
+ // A tool call starting, or arriving whole for a backend that only reports completions. `content` carries structured
63
+ // output already known at call time (e.g. an Edit's diff, derived from input).
64
+ z.object({
65
+ kind: z.literal("tool_call"),
66
+ id: z.string(),
67
+ name: z.string(),
68
+ category: ToolKindSchema,
69
+ status: ToolCallStatusSchema,
70
+ target: z.string().optional(),
71
+ locations: z.array(ToolCallLocationSchema).optional(),
72
+ content: z.array(ToolCallContentSchema).optional(),
73
+ parentToolUseId: z.string().optional(),
74
+ }),
75
+ // A later state of a call, correlated by `id`. Status and/or fresh content/locations REPLACE the prior value
76
+ // (snapshot, not append); an absent field is unchanged.
77
+ z.object({
78
+ kind: z.literal("tool_call_update"),
79
+ id: z.string(),
80
+ status: ToolCallStatusSchema.optional(),
81
+ content: z.array(ToolCallContentSchema).optional(),
82
+ locations: z.array(ToolCallLocationSchema).optional(),
83
+ }),
84
+ // The agent started running Bash in its live `agent-<id>` tmux session; one per turn, reused across all of a turn's
85
+ // commands including subagents'.
86
+ z.object({ kind: z.literal("terminal"), session: z.string() }),
87
+ // The agent used a browser tool; one per turn, since one Chromium serves every browser call the turn makes.
88
+ z.object({ kind: z.literal("browser"), session: z.string() }),
89
+ // One frame per spawned child (Agent/Task subagent, or a driven Codex/Grok CLI), then `subagent_update` as it
90
+ // works, mirroring `tool_call`/`tool_call_update`. `id` is the spawning call's id, so both land on one card.
91
+ z.object({
92
+ kind: z.literal("subagent"),
93
+ id: z.string(),
94
+ subagentKind: SubagentKindSchema,
95
+ agentType: z.string().optional(),
96
+ description: z.string().optional(),
97
+ model: z.string().optional(),
98
+ // Which provider serves a spawned child; absent for an SDK subagent, whose provider is its parent's.
99
+ provider: z.string().optional(),
100
+ background: z.boolean().optional(),
101
+ }),
102
+ z.object({
103
+ kind: z.literal("subagent_update"),
104
+ id: z.string(),
105
+ status: SubagentStatusSchema.optional(),
106
+ tokens: z.number().optional(),
107
+ toolUses: z.number().optional(),
108
+ lastTool: z.string().optional(),
109
+ summary: z.string().optional(),
110
+ error: z.string().optional(),
111
+ // Whether anything checked the work this report describes; rides the frame that ends the child.
112
+ verification: SubagentVerificationSchema.optional(),
113
+ }),
114
+ z.object({ kind: z.literal("todos"), items: z.array(TodoItemSchema) }),
115
+ // The provider's own slash commands, replaced whole each time; the composer's `/` popover lists them, invoking one
116
+ // is plain `/name …` prompt text.
117
+ z.object({ kind: z.literal("commands"), items: z.array(AgentCommandSchema) }),
118
+ z.object({
119
+ kind: z.literal("usage"),
120
+ // The account that served this turn, so the client attributes totals to it.
121
+ account: z.string().optional(),
122
+ costUsd: z.number().optional(),
123
+ inputTokens: z.number().optional(),
124
+ outputTokens: z.number().optional(),
125
+ // Provider prompt-cache buckets (read/write); optional per provider, lets the client compute a hit rate.
126
+ cacheReadTokens: z.number().optional(),
127
+ cacheCreationTokens: z.number().optional(),
128
+ durationMs: z.number().optional(),
129
+ numTurns: z.number().optional(),
130
+ }),
131
+ // The provider's live answer to whether this turn may run, pushed mid-turn; drives the rate-limited notice, not the
132
+ // headroom readouts.
133
+ RateLimitInfoSchema.extend({ kind: z.literal("rate_limit_info"), account: z.string().optional() }),
134
+ // The turn's actual speed, emitted only when it changes (once at init, again on mid-turn cooldown). `reason` is
135
+ // forwarded verbatim as the harness's own string, not a fixed enum, so an unfamiliar reason still parses.
136
+ z.object({
137
+ kind: z.literal("fast_mode"),
138
+ state: FastModeStateSchema,
139
+ // Absent when nothing blocks fast mode, including `state: "on"`, and an `off` that was never asked for.
140
+ reason: z.string().optional(),
141
+ }),
142
+ // The complexity judge's verdict for this turn, emitted once at turn start on every judged turn. `model` is set
143
+ // only when a substitution applies; `routed` is what actually happened, never implied by the verdict alone.
144
+ z.object({
145
+ kind: z.literal("tier"),
146
+ tier: z.enum(["fast", "standard"]),
147
+ score: z.number(),
148
+ rules: z.array(z.string()),
149
+ // The cheaper model this turn ran on (`routed`) or would have run on (`held`); absent otherwise.
150
+ model: z.string().optional(),
151
+ routed: z.boolean(),
152
+ // The user pinned this turn to their own pick, so a fast verdict moved nothing.
153
+ held: z.boolean().optional(),
154
+ }),
155
+ // The turn is alive but retrying a transient provider failure in this same turn; a status, not a failure, shown
156
+ // where thinking goes. `attempt`/`maxAttempts`/`nextAttemptAt` are each optional, runtimes report different halves.
157
+ z.object({
158
+ kind: z.literal("provider_retry"),
159
+ attempt: z.number(),
160
+ maxAttempts: z.number().optional(),
161
+ nextAttemptAt: z.number().optional(),
162
+ // The HTTP status behind the retry, when there was one (529 capacity, 429 rate limit, 500 fault).
163
+ status: z.number().optional(),
164
+ }),
165
+ // Every plan-limit pool for the account that served the turn, read once the turn settles. `account` keys headroom
166
+ // by account; absent on an env-token turn. No `measuredAt` on the wire: both readers stamp receipt time.
167
+ z.object({ kind: z.literal("account_usage"), account: z.string().optional(), windows: z.array(UsageWindowSchema) }),
168
+ ContextUsageSchema.extend({ kind: z.literal("context_usage") }),
169
+ z.object({ kind: z.literal("compact"), trigger: z.string(), preTokens: z.number().optional(), postTokens: z.number().optional() }),
170
+ // The four interactive cards; each parks the turn until `POST /agent/reply` resolves its `requestId`.
171
+ PlanCardSchema,
172
+ QuestionCardSchema,
173
+ PermissionCardSchema,
174
+ // The agent's browser needs a person. Not journalled for restore: the Chromium holding the page dies with the
175
+ // container.
176
+ z.object({ kind: z.literal("browser_help"), ...browserHelpCard }),
177
+ // The agent's terminal needs a person. Not journalled for restore: the pane belongs to a process the restart kills.
178
+ z.object({ kind: z.literal("terminal_help"), ...terminalHelpCard }),
179
+ // A missing capability asking for the owner's setup. Raised outside the turn generator; not journalled for restore,
180
+ // since its waiter (the CLI's held connection) dies with the daemon.
181
+ z.object({ kind: z.literal("capability_offer"), ...capabilityOfferCard }),
182
+ // How an accepted ask ended: `connected` (the capability came live, `id` is the agent's handle) or `unfinished`
183
+ // (deadline passed, or the asking command died). A skip needs no outcome; `resolved` already says so.
184
+ CapabilityOutcomeSchema.extend({ kind: z.literal("capability_outcome"), requestId: z.string() }),
185
+ // A USDC payment awaiting the owner's click. Raised outside the turn generator; not journalled for restore, since
186
+ // its waiter (the CLI's held connection) dies with the daemon.
187
+ z.object({ kind: z.literal("payment_offer"), ...paymentOfferCard }),
188
+ // How an approved payment ended: `paid` (endpoint confirmed, `transaction` is the onchain hash if stated) or
189
+ // `failed` (refused or unsettled, nothing left the wallet). A skip needs no receipt.
190
+ PaymentReceiptSchema.extend({ kind: z.literal("payment_receipt"), requestId: z.string() }),
191
+ // A gated credential awaiting a named approver's click, not the owner. The daemon holds the exit parked until
192
+ // release; raised outside the turn generator, not journalled, since its waiter dies with the daemon.
193
+ z.object({ kind: z.literal("credential_offer"), ...credentialOfferCard }),
194
+ // Who released it: `released` names the approver's verified address, `refused` means someone said no. Nothing is
195
+ // pushed for a card nobody answered; `resolved` already says that.
196
+ CredentialReceiptSchema.extend({ kind: z.literal("credential_receipt"), requestId: z.string() }),
197
+ // The named card is released and the turn resumes; emitted the moment its waiter settles, since nothing else on
198
+ // this stream marks a park's end. `reply` is what a rebuilt transcript freezes the card with.
199
+ z.object({ kind: z.literal("resolved"), requestId: z.string(), reply: AgentReplySchema.optional() }),
200
+ // The turn's permission mode whenever it changes: the user's pick at start, then every move the agent makes on its
201
+ // own. The composer's mode selector follows this.
202
+ z.object({ kind: z.literal("mode"), mode: PermissionModeSchema }),
203
+ // `code` is a machine-readable discriminator for errors the UI reacts to (e.g. dropping a dead session id so the
204
+ // next send self-heals); absent on plain failures.
205
+ z.object({
206
+ kind: z.literal("error"),
207
+ message: z.string(),
208
+ code: z
209
+ .enum([
210
+ "session-not-found",
211
+ "rate_limit",
212
+ // Codex ran the turn but warned about it (fallback model metadata); a notice, not a failure.
213
+ "codex-advisory",
214
+ "codex-reauth",
215
+ // The Claude subscription credential is dead; only a reconnect fixes it, unlike no account connected.
216
+ "claude-reauth",
217
+ // The API refused this turn's token mid-flight, usually superseded by a rotation already re-minting.
218
+ "claude-token-refused",
219
+ // The account authenticates and has real usage pools, but the org disabled Claude Code for this seat.
220
+ "claude-not-entitled",
221
+ // The provider failed transiently and in-turn retries did not outlast it; the daemon retries on
222
+ // backoff.
223
+ "provider-outage",
224
+ // The platform-owned free-trial pool failed after its bounded key walk; the failed call is refunded.
225
+ "trial-unavailable",
226
+ // The trial answered, but the selected upstream model/request cannot run through this sandbox.
227
+ "trial-model-unavailable",
228
+ // This account's platform-owned daily trial allowance is spent until its UTC reset.
229
+ "trial-exhausted",
230
+ // The harness read the message as a slash command it doesn't have; the model never saw it.
231
+ "unknown-command",
232
+ "grok-model-invalid",
233
+ "codex-model-invalid",
234
+ // The model is real and listed, but this plan's subscription does not have access to it.
235
+ "model-unavailable",
236
+ // The model cannot hold a turn this size, refused before sending; retrying the same request never
237
+ // helps.
238
+ "context-window-too-small",
239
+ "subscription-required",
240
+ "agent-busy",
241
+ // The sandbox has no memory left to run this turn, refused before anything spawned; transient, no
242
+ // clock.
243
+ "sandbox-memory-low",
244
+ // The runtime hit its own iteration ceiling and stopped; the work may be half done, so the user
245
+ // decides.
246
+ "turn-cap",
247
+ // The harness ended the turn without succeeding, with no modelled reason; the vendor's subtype rides
248
+ // verbatim.
249
+ "harness-incomplete",
250
+ // The installed engine is too old for the model; the provider names the version required, on `engine`.
251
+ "engine-version-floor",
252
+ ])
253
+ .optional(),
254
+ // Which engine, the version refused, and the floor the provider requires; lets the client offer an install.
255
+ engine: z
256
+ .object({
257
+ id: z.string().describe("Which engine (e.g. claude)."),
258
+ running: z.string().optional().describe("The version that was refused, when the provider named it."),
259
+ floor: z.string().describe("The lowest version the provider will accept."),
260
+ })
261
+ .optional(),
262
+ // rate_limit only: epoch seconds when the exhausted window reopens; absent when the reset instant is unknown.
263
+ resetsAt: z.number().optional(),
264
+ // Gated codes only: "scheduled" if this conversation arms the resume, "available" if one exists but isn't.
265
+ autoResume: z.enum(["scheduled", "available"]).optional(),
266
+ // rate_limit only: how re-running the exact held turn would go, and what it would cost.
267
+ held: z
268
+ .object({
269
+ ran: z.boolean(),
270
+ // What each way of continuing costs: `contextTokens` re-reads context, `handoffTokens` pays a session's
271
+ // brief.
272
+ contextTokens: z.number().optional(),
273
+ handoffTokens: z.number().optional(),
274
+ // Set when the owner's policy is already moving this turn to the named account, instead of offering a
275
+ // press.
276
+ moving: z.string().optional(),
277
+ })
278
+ .optional(),
279
+ // provider-outage only: `retryAt` is the next attempt on backoff; `attempt`/`maxAttempts` bound it.
280
+ outage: z.object({ retryAt: z.number(), attempt: z.number(), maxAttempts: z.number() }).optional(),
281
+ }),
282
+ z.object({ kind: z.literal("done") }),
283
+ ]);
284
+ export type AgentEvent = z.infer<typeof AgentEventSchema>;
285
+
286
+ // Frames that are facts about the turn, not transcript; a `worktree` rebase can be both notice and standing.
287
+ export const TURN_FACT_KINDS = [
288
+ "session",
289
+ "worktree",
290
+ "init",
291
+ "terminal",
292
+ "browser",
293
+ "commands",
294
+ "usage",
295
+ "rate_limit_info",
296
+ "fast_mode",
297
+ "tier",
298
+ "provider_retry",
299
+ "account_usage",
300
+ "context_usage",
301
+ "mode",
302
+ "error",
303
+ ] as const;
304
+ export type TurnFact = Extract<AgentEvent, { kind: (typeof TURN_FACT_KINDS)[number] }>;
305
+ export const isTurnFact = (event: AgentEvent): event is TurnFact => (TURN_FACT_KINDS as readonly string[]).includes(event.kind);
306
+ // The same members AgentEventSchema declares, picked out rather than re-declared, so there is one place a fact's shape
307
+ // can drift from the frame's.
308
+ type AgentEventMember = (typeof AgentEventSchema.options)[number];
309
+ const factMembers = AgentEventSchema.options.filter((member) => (TURN_FACT_KINDS as readonly string[]).includes(member.shape.kind.value)) as unknown as [
310
+ AgentEventMember,
311
+ ...AgentEventMember[],
312
+ ];
313
+ export const TurnFactSchema = z.discriminatedUnion("kind", factMembers) as unknown as z.ZodType<TurnFact>;
314
+
315
+ // The /agent/attach stream: a head with rows so far, then patches and facts as they land, then `end`. Facts replay on
316
+ // every attach so a late joiner learns the turn's standing; patches never do.
317
+ export const AttachFrameSchema = z.discriminatedUnion("kind", [
318
+ z.object({
319
+ kind: z.literal("attached").describe("The first frame, identifying the run you have joined and handing you its transcript so far."),
320
+ run: z.string().describe("The run's id."),
321
+ startedAt: z.number().describe("When it started, in milliseconds, so a window joining late can show how long it has been going."),
322
+ seq: z.number().describe("How many frames the run has produced so far. A fact at or below this number is being replayed; a patch is never."),
323
+ rows: z
324
+ .array(TranscriptRowSchema)
325
+ .describe("The turn's rows as they stand: what was asked, and everything the agent has said and done since. Draw these, then apply the patches that follow."),
326
+ }),
327
+ z.object({
328
+ kind: z.literal("patch").describe("One change to the run's rows."),
329
+ seq: z.number().describe("Its position in the run, counting from one."),
330
+ patch: TranscriptPatchSchema,
331
+ }),
332
+ z.object({
333
+ kind: z.literal("fact").describe("One thing about the turn that is not a row: its session, its branch, its cost, a failure."),
334
+ seq: z.number().describe("Its position in the run, counting from one. At or below the head's number, it is being replayed."),
335
+ fact: TurnFactSchema,
336
+ }),
337
+ z.object({
338
+ kind: z
339
+ .literal("end")
340
+ .describe(
341
+ "The run is over and every frame has been delivered. A stream that closes without this was dropped mid-run, so re-attach rather than assuming the turn finished.",
342
+ ),
343
+ }),
344
+ ]);
345
+ export type AttachFrame = z.infer<typeof AttachFrameSchema>;