@intentic/sandbox-contract 1.248.0 → 1.250.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 (879) 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 +6 -0
  93. package/dist/contracts/skills.contract.d.ts.map +1 -1
  94. package/dist/contracts/skills.contract.js +13 -4
  95. package/dist/contracts/skills.contract.js.map +1 -1
  96. package/dist/contracts/system.contract.d.ts +49 -73
  97. package/dist/contracts/system.contract.d.ts.map +1 -1
  98. package/dist/contracts/system.contract.js +12 -2
  99. package/dist/contracts/system.contract.js.map +1 -1
  100. package/dist/contracts/usage.contract.d.ts.map +1 -1
  101. package/dist/contracts/usage.contract.js.map +1 -1
  102. package/dist/contracts/vpn.contract.d.ts.map +1 -1
  103. package/dist/contracts/vpn.contract.js +1 -1
  104. package/dist/contracts/vpn.contract.js.map +1 -1
  105. package/dist/contracts/webext.contract.d.ts.map +1 -1
  106. package/dist/contracts/webext.contract.js.map +1 -1
  107. package/dist/contracts/workflows.contract.d.ts +7 -6
  108. package/dist/contracts/workflows.contract.d.ts.map +1 -1
  109. package/dist/contracts/workflows.contract.js +12 -3
  110. package/dist/contracts/workflows.contract.js.map +1 -1
  111. package/dist/contracts/workspace.contract.d.ts.map +1 -1
  112. package/dist/contracts/workspace.contract.js.map +1 -1
  113. package/dist/events/agent-events.d.ts +1237 -0
  114. package/dist/events/agent-events.d.ts.map +1 -0
  115. package/dist/events/agent-events.js +226 -0
  116. package/dist/events/agent-events.js.map +1 -0
  117. package/dist/events/cards.d.ts +404 -0
  118. package/dist/events/cards.d.ts.map +1 -0
  119. package/dist/events/cards.js +179 -0
  120. package/dist/events/cards.js.map +1 -0
  121. package/dist/events/resume.d.ts +23 -0
  122. package/dist/events/resume.d.ts.map +1 -0
  123. package/dist/events/resume.js +31 -0
  124. package/dist/events/resume.js.map +1 -0
  125. package/dist/events/system-events.d.ts +615 -0
  126. package/dist/events/system-events.d.ts.map +1 -0
  127. package/dist/events/system-events.js +64 -0
  128. package/dist/events/system-events.js.map +1 -0
  129. package/dist/events/transcript.d.ts +1755 -0
  130. package/dist/events/transcript.d.ts.map +1 -0
  131. package/dist/events/transcript.js +205 -0
  132. package/dist/events/transcript.js.map +1 -0
  133. package/dist/ids/conversation-ids.d.ts +8 -0
  134. package/dist/ids/conversation-ids.d.ts.map +1 -0
  135. package/dist/{conversation-ids.js → ids/conversation-ids.js} +13 -0
  136. package/dist/ids/conversation-ids.js.map +1 -0
  137. package/dist/ids/hostnames.d.ts.map +1 -0
  138. package/dist/ids/hostnames.js.map +1 -0
  139. package/dist/ids/session-names.d.ts.map +1 -0
  140. package/dist/ids/session-names.js.map +1 -0
  141. package/dist/ids/share-paths.d.ts.map +1 -0
  142. package/dist/ids/share-paths.js.map +1 -0
  143. package/dist/{tunnel-ids.d.ts → ids/tunnel-ids.d.ts} +1 -0
  144. package/dist/ids/tunnel-ids.d.ts.map +1 -0
  145. package/dist/{tunnel-ids.js → ids/tunnel-ids.js} +1 -0
  146. package/dist/ids/tunnel-ids.js.map +1 -0
  147. package/dist/index.d.ts +429 -450
  148. package/dist/index.d.ts.map +1 -1
  149. package/dist/index.js +54 -46
  150. package/dist/index.js.map +1 -1
  151. package/dist/{agent-catalog.d.ts → models/agent-catalog.d.ts} +2 -2
  152. package/dist/models/agent-catalog.d.ts.map +1 -0
  153. package/dist/models/agent-catalog.js.map +1 -0
  154. package/dist/models/agent-runtimes.d.ts.map +1 -0
  155. package/dist/models/agent-runtimes.js.map +1 -0
  156. package/dist/{fast-tier.d.ts → models/fast-tier.d.ts} +1 -1
  157. package/dist/models/fast-tier.d.ts.map +1 -0
  158. package/dist/models/fast-tier.js.map +1 -0
  159. package/dist/models/model-order.d.ts.map +1 -0
  160. package/dist/{model-order.js → models/model-order.js} +2 -0
  161. package/dist/models/model-order.js.map +1 -0
  162. package/dist/{model-pins.d.ts → models/model-pins.d.ts} +1 -1
  163. package/dist/models/model-pins.d.ts.map +1 -0
  164. package/dist/models/model-pins.js.map +1 -0
  165. package/dist/{model-roles.d.ts → models/model-roles.d.ts} +0 -33
  166. package/dist/models/model-roles.d.ts.map +1 -0
  167. package/dist/{model-roles.js → models/model-roles.js} +0 -35
  168. package/dist/models/model-roles.js.map +1 -0
  169. package/dist/{plan-pools.d.ts → models/plan-pools.d.ts} +1 -1
  170. package/dist/models/plan-pools.d.ts.map +1 -0
  171. package/dist/models/plan-pools.js.map +1 -0
  172. package/dist/models/prompt-complexity.d.ts.map +1 -0
  173. package/dist/models/prompt-complexity.js.map +1 -0
  174. package/dist/models/provider-specs.d.ts.map +1 -0
  175. package/dist/models/provider-specs.js.map +1 -0
  176. package/dist/policy/approvals-execution.d.ts.map +1 -0
  177. package/dist/policy/approvals-execution.js.map +1 -0
  178. package/dist/{batch-runs.d.ts → policy/batch-runs.d.ts} +5 -1
  179. package/dist/policy/batch-runs.d.ts.map +1 -0
  180. package/dist/{batch-runs.js → policy/batch-runs.js} +10 -7
  181. package/dist/policy/batch-runs.js.map +1 -0
  182. package/dist/policy/capability-env.d.ts.map +1 -0
  183. package/dist/policy/capability-env.js.map +1 -0
  184. package/dist/policy/capability-secrets.d.ts.map +1 -0
  185. package/dist/policy/capability-secrets.js.map +1 -0
  186. package/dist/{card-status.d.ts → policy/card-status.d.ts} +2 -2
  187. package/dist/policy/card-status.d.ts.map +1 -0
  188. package/dist/{card-status.js → policy/card-status.js} +1 -5
  189. package/dist/policy/card-status.js.map +1 -0
  190. package/dist/{command-classes.d.ts → policy/command-classes.d.ts} +6 -2
  191. package/dist/policy/command-classes.d.ts.map +1 -0
  192. package/dist/{command-classes.js → policy/command-classes.js} +48 -11
  193. package/dist/policy/command-classes.js.map +1 -0
  194. package/dist/{command-run.d.ts → policy/command-run.d.ts} +1 -1
  195. package/dist/policy/command-run.d.ts.map +1 -0
  196. package/dist/policy/command-run.js.map +1 -0
  197. package/dist/policy/control-scopes.d.ts +16 -0
  198. package/dist/policy/control-scopes.d.ts.map +1 -0
  199. package/dist/policy/control-scopes.js +26 -0
  200. package/dist/policy/control-scopes.js.map +1 -0
  201. package/dist/policy/credential-material.d.ts.map +1 -0
  202. package/dist/policy/credential-material.js.map +1 -0
  203. package/dist/policy/needs-action.d.ts.map +1 -0
  204. package/dist/policy/needs-action.js.map +1 -0
  205. package/dist/policy/output-fields.d.ts.map +1 -0
  206. package/dist/policy/output-fields.js.map +1 -0
  207. package/dist/policy/overlay-lint.d.ts.map +1 -0
  208. package/dist/policy/overlay-lint.js.map +1 -0
  209. package/dist/policy/owner-ticket.d.ts.map +1 -0
  210. package/dist/{owner-ticket.js → policy/owner-ticket.js} +1 -1
  211. package/dist/policy/owner-ticket.js.map +1 -0
  212. package/dist/{safety-policy.d.ts → policy/safety-policy.d.ts} +6 -5
  213. package/dist/policy/safety-policy.d.ts.map +1 -0
  214. package/dist/{safety-policy.js → policy/safety-policy.js} +12 -12
  215. package/dist/policy/safety-policy.js.map +1 -0
  216. package/dist/policy/search-globs.d.ts.map +1 -0
  217. package/dist/policy/search-globs.js.map +1 -0
  218. package/dist/protocol/container-requirements.d.ts +20 -0
  219. package/dist/protocol/container-requirements.d.ts.map +1 -0
  220. package/dist/protocol/container-requirements.js +23 -0
  221. package/dist/protocol/container-requirements.js.map +1 -0
  222. package/dist/{host-protocol.d.ts → protocol/host-protocol.d.ts} +1 -0
  223. package/dist/protocol/host-protocol.d.ts.map +1 -0
  224. package/dist/{host-protocol.js → protocol/host-protocol.js} +1 -0
  225. package/dist/protocol/host-protocol.js.map +1 -0
  226. package/dist/protocol/ingress-contract.d.ts.map +1 -0
  227. package/dist/{ingress-contract.js → protocol/ingress-contract.js} +1 -1
  228. package/dist/protocol/ingress-contract.js.map +1 -0
  229. package/dist/protocol/ingress-protocol.d.ts.map +1 -0
  230. package/dist/protocol/ingress-protocol.js.map +1 -0
  231. package/dist/protocol/listener-protocol.d.ts.map +1 -0
  232. package/dist/{listener-protocol.js → protocol/listener-protocol.js} +1 -1
  233. package/dist/protocol/listener-protocol.js.map +1 -0
  234. package/dist/{peer-dial.d.ts → protocol/peer-dial.d.ts} +4 -1
  235. package/dist/protocol/peer-dial.d.ts.map +1 -0
  236. package/dist/{peer-dial.js → protocol/peer-dial.js} +51 -10
  237. package/dist/protocol/peer-dial.js.map +1 -0
  238. package/dist/protocol/peer-mcp-server.d.ts.map +1 -0
  239. package/dist/protocol/peer-mcp-server.js.map +1 -0
  240. package/dist/protocol/request-id.d.ts.map +1 -0
  241. package/dist/protocol/request-id.js.map +1 -0
  242. package/dist/protocol/routes.d.ts.map +1 -0
  243. package/dist/protocol/routes.js.map +1 -0
  244. package/dist/{runner-protocol.d.ts → protocol/runner-protocol.d.ts} +1 -0
  245. package/dist/protocol/runner-protocol.d.ts.map +1 -0
  246. package/dist/{runner-protocol.js → protocol/runner-protocol.js} +2 -1
  247. package/dist/protocol/runner-protocol.js.map +1 -0
  248. package/dist/protocol/sse.d.ts.map +1 -0
  249. package/dist/protocol/sse.js.map +1 -0
  250. package/dist/{terminal-protocol.d.ts → protocol/terminal-protocol.d.ts} +1 -3
  251. package/dist/protocol/terminal-protocol.d.ts.map +1 -0
  252. package/dist/protocol/terminal-protocol.js.map +1 -0
  253. package/dist/protocol/webext-links.d.ts.map +1 -0
  254. package/dist/protocol/webext-links.js.map +1 -0
  255. package/dist/{webext-protocol.d.ts → protocol/webext-protocol.d.ts} +1 -0
  256. package/dist/protocol/webext-protocol.d.ts.map +1 -0
  257. package/dist/{webext-protocol.js → protocol/webext-protocol.js} +1 -0
  258. package/dist/protocol/webext-protocol.js.map +1 -0
  259. package/dist/schemas/activity.d.ts +2 -0
  260. package/dist/schemas/activity.d.ts.map +1 -1
  261. package/dist/schemas/activity.js +4 -0
  262. package/dist/schemas/activity.js.map +1 -1
  263. package/dist/schemas/agent.d.ts +16 -4
  264. package/dist/schemas/agent.d.ts.map +1 -1
  265. package/dist/schemas/agent.js +21 -4
  266. package/dist/schemas/agent.js.map +1 -1
  267. package/dist/schemas/agents.d.ts +17 -4
  268. package/dist/schemas/agents.d.ts.map +1 -1
  269. package/dist/schemas/agents.js +15 -4
  270. package/dist/schemas/agents.js.map +1 -1
  271. package/dist/schemas/approvals.d.ts.map +1 -1
  272. package/dist/schemas/approvals.js.map +1 -1
  273. package/dist/schemas/automations.d.ts +54 -28
  274. package/dist/schemas/automations.d.ts.map +1 -1
  275. package/dist/schemas/automations.js +26 -8
  276. package/dist/schemas/automations.js.map +1 -1
  277. package/dist/schemas/capabilities.d.ts +0 -8
  278. package/dist/schemas/capabilities.d.ts.map +1 -1
  279. package/dist/schemas/capabilities.js +0 -4
  280. package/dist/schemas/capabilities.js.map +1 -1
  281. package/dist/schemas/ci.d.ts +10 -0
  282. package/dist/schemas/ci.d.ts.map +1 -1
  283. package/dist/schemas/ci.js +9 -1
  284. package/dist/schemas/ci.js.map +1 -1
  285. package/dist/schemas/codebase-health.d.ts.map +1 -1
  286. package/dist/schemas/codebase-health.js.map +1 -1
  287. package/dist/schemas/devices.d.ts +92 -0
  288. package/dist/schemas/devices.d.ts.map +1 -1
  289. package/dist/schemas/devices.js +12 -1
  290. package/dist/schemas/devices.js.map +1 -1
  291. package/dist/schemas/engines.d.ts.map +1 -1
  292. package/dist/schemas/engines.js.map +1 -1
  293. package/dist/schemas/environment.d.ts.map +1 -1
  294. package/dist/schemas/environment.js.map +1 -1
  295. package/dist/schemas/exit.d.ts.map +1 -1
  296. package/dist/schemas/exit.js.map +1 -1
  297. package/dist/schemas/extension-updates.d.ts.map +1 -1
  298. package/dist/schemas/extension-updates.js.map +1 -1
  299. package/dist/schemas/git-history.d.ts.map +1 -1
  300. package/dist/schemas/git-history.js.map +1 -1
  301. package/dist/schemas/git.d.ts +80 -16
  302. package/dist/schemas/git.d.ts.map +1 -1
  303. package/dist/schemas/git.js +37 -25
  304. package/dist/schemas/git.js.map +1 -1
  305. package/dist/schemas/history.d.ts.map +1 -1
  306. package/dist/schemas/history.js.map +1 -1
  307. package/dist/schemas/hosts.d.ts.map +1 -1
  308. package/dist/schemas/hosts.js.map +1 -1
  309. package/dist/schemas/inventory.d.ts.map +1 -1
  310. package/dist/schemas/inventory.js.map +1 -1
  311. package/dist/schemas/issues.d.ts +0 -1
  312. package/dist/schemas/issues.d.ts.map +1 -1
  313. package/dist/schemas/issues.js +0 -1
  314. package/dist/schemas/issues.js.map +1 -1
  315. package/dist/schemas/logs.d.ts.map +1 -1
  316. package/dist/schemas/logs.js.map +1 -1
  317. package/dist/schemas/loops.d.ts.map +1 -1
  318. package/dist/schemas/loops.js +1 -1
  319. package/dist/schemas/loops.js.map +1 -1
  320. package/dist/schemas/maintenance.d.ts.map +1 -1
  321. package/dist/schemas/maintenance.js.map +1 -1
  322. package/dist/schemas/marketplace.d.ts +0 -4
  323. package/dist/schemas/marketplace.d.ts.map +1 -1
  324. package/dist/schemas/panels.d.ts.map +1 -1
  325. package/dist/schemas/panels.js.map +1 -1
  326. package/dist/schemas/personas.d.ts +2 -1
  327. package/dist/schemas/personas.d.ts.map +1 -1
  328. package/dist/schemas/personas.js +6 -2
  329. package/dist/schemas/personas.js.map +1 -1
  330. package/dist/schemas/plan-limits.d.ts +2 -4
  331. package/dist/schemas/plan-limits.d.ts.map +1 -1
  332. package/dist/schemas/plan-limits.js +5 -8
  333. package/dist/schemas/plan-limits.js.map +1 -1
  334. package/dist/schemas/ports.d.ts.map +1 -1
  335. package/dist/schemas/ports.js.map +1 -1
  336. package/dist/schemas/provider-oauth.d.ts.map +1 -1
  337. package/dist/schemas/provider-oauth.js.map +1 -1
  338. package/dist/schemas/provider-subscriptions.d.ts +1 -1
  339. package/dist/schemas/provider-subscriptions.d.ts.map +1 -1
  340. package/dist/schemas/provider-subscriptions.js +1 -1
  341. package/dist/schemas/provider-subscriptions.js.map +1 -1
  342. package/dist/schemas/public.d.ts.map +1 -1
  343. package/dist/schemas/public.js.map +1 -1
  344. package/dist/schemas/push.d.ts.map +1 -1
  345. package/dist/schemas/push.js.map +1 -1
  346. package/dist/schemas/secrets.d.ts.map +1 -1
  347. package/dist/schemas/secrets.js.map +1 -1
  348. package/dist/schemas/settings.d.ts +11 -9
  349. package/dist/schemas/settings.d.ts.map +1 -1
  350. package/dist/schemas/settings.js +22 -7
  351. package/dist/schemas/settings.js.map +1 -1
  352. package/dist/schemas/share.d.ts.map +1 -1
  353. package/dist/schemas/share.js.map +1 -1
  354. package/dist/schemas/shared.d.ts +4 -0
  355. package/dist/schemas/shared.d.ts.map +1 -1
  356. package/dist/schemas/shared.js +3 -0
  357. package/dist/schemas/shared.js.map +1 -1
  358. package/dist/schemas/system.d.ts +6 -0
  359. package/dist/schemas/system.d.ts.map +1 -1
  360. package/dist/schemas/system.js +10 -0
  361. package/dist/schemas/system.js.map +1 -1
  362. package/dist/schemas/terminal.d.ts.map +1 -1
  363. package/dist/schemas/terminal.js.map +1 -1
  364. package/dist/schemas/usage.d.ts.map +1 -1
  365. package/dist/schemas/usage.js.map +1 -1
  366. package/dist/schemas/vpn.d.ts.map +1 -1
  367. package/dist/schemas/vpn.js.map +1 -1
  368. package/dist/schemas/webext.d.ts.map +1 -1
  369. package/dist/schemas/webext.js.map +1 -1
  370. package/dist/schemas/workflows.d.ts +66 -9
  371. package/dist/schemas/workflows.d.ts.map +1 -1
  372. package/dist/schemas/workflows.js +6 -5
  373. package/dist/schemas/workflows.js.map +1 -1
  374. package/dist/schemas/workspace-repos.d.ts.map +1 -1
  375. package/dist/schemas/workspace-repos.js.map +1 -1
  376. package/dist/schemas/workspace-search.d.ts.map +1 -1
  377. package/dist/schemas/workspace-search.js.map +1 -1
  378. package/dist/schemas/workspace-setup.d.ts.map +1 -1
  379. package/dist/schemas/workspace-setup.js.map +1 -1
  380. package/dist/schemas/workspace-tree.d.ts.map +1 -1
  381. package/dist/schemas/workspace-tree.js.map +1 -1
  382. package/dist/state/arrival.d.ts.map +1 -0
  383. package/dist/{arrival.js → state/arrival.js} +1 -1
  384. package/dist/state/arrival.js.map +1 -0
  385. package/dist/state/contract-lock.d.ts.map +1 -0
  386. package/dist/{contract-lock.js → state/contract-lock.js} +1 -1
  387. package/dist/state/contract-lock.js.map +1 -0
  388. package/dist/{definition.d.ts → state/definition.d.ts} +21 -17
  389. package/dist/state/definition.d.ts.map +1 -0
  390. package/dist/{definition.js → state/definition.js} +4 -4
  391. package/dist/state/definition.js.map +1 -0
  392. package/dist/state/history-state.d.ts.map +1 -0
  393. package/dist/{history-state.js → state/history-state.js} +1 -0
  394. package/dist/state/history-state.js.map +1 -0
  395. package/dist/state/runtime-state.d.ts.map +1 -0
  396. package/dist/state/runtime-state.js.map +1 -0
  397. package/dist/state/starter.d.ts.map +1 -0
  398. package/dist/state/starter.js.map +1 -0
  399. package/dist/state/state-portability.d.ts.map +1 -0
  400. package/dist/state/state-portability.js.map +1 -0
  401. package/dist/state/versions.d.ts.map +1 -0
  402. package/dist/state/versions.js.map +1 -0
  403. package/dist/{workspace-state.d.ts → state/workspace-state.d.ts} +8 -0
  404. package/dist/state/workspace-state.d.ts.map +1 -0
  405. package/dist/{workspace-state.js → state/workspace-state.js} +25 -0
  406. package/dist/state/workspace-state.js.map +1 -0
  407. package/dist/{documents.d.ts → text/documents.d.ts} +1 -1
  408. package/dist/text/documents.d.ts.map +1 -0
  409. package/dist/{documents.js → text/documents.js} +1 -1
  410. package/dist/text/documents.js.map +1 -0
  411. package/dist/text/embed.d.ts.map +1 -0
  412. package/dist/text/embed.js.map +1 -0
  413. package/dist/text/mentions.d.ts.map +1 -0
  414. package/dist/text/mentions.js.map +1 -0
  415. package/dist/text/model-answer.d.ts +3 -0
  416. package/dist/text/model-answer.d.ts.map +1 -0
  417. package/dist/text/model-answer.js +3 -0
  418. package/dist/text/model-answer.js.map +1 -0
  419. package/dist/text/path-refs.d.ts.map +1 -0
  420. package/dist/text/path-refs.js.map +1 -0
  421. package/dist/{shell-regions.d.ts → text/shell-regions.d.ts} +1 -1
  422. package/dist/text/shell-regions.d.ts.map +1 -0
  423. package/dist/text/shell-regions.js.map +1 -0
  424. package/dist/text/title.d.ts.map +1 -0
  425. package/dist/text/title.js.map +1 -0
  426. package/dist/{transcript-fold.d.ts → text/transcript-fold.d.ts} +2 -1
  427. package/dist/text/transcript-fold.d.ts.map +1 -0
  428. package/dist/{transcript-fold.js → text/transcript-fold.js} +2 -16
  429. package/dist/text/transcript-fold.js.map +1 -0
  430. package/dist/text/whisper.d.ts +3 -0
  431. package/dist/text/whisper.d.ts.map +1 -0
  432. package/dist/text/whisper.js +11 -0
  433. package/dist/text/whisper.js.map +1 -0
  434. package/dist/{workflow-faults.d.ts → text/workflow-faults.d.ts} +1 -1
  435. package/dist/text/workflow-faults.d.ts.map +1 -0
  436. package/dist/{workflow-faults.js → text/workflow-faults.js} +1 -1
  437. package/dist/text/workflow-faults.js.map +1 -0
  438. package/package.json +70 -70
  439. package/src/chores/chores.test.ts +4 -10
  440. package/src/chores/chores.ts +148 -392
  441. package/src/chores/digest.ts +8 -28
  442. package/src/chores/extension-update.ts +3 -8
  443. package/src/chores/fix-deps.ts +4 -18
  444. package/src/chores/index.ts +2 -2
  445. package/src/chores/probes.test.ts +7 -43
  446. package/src/chores/probes.ts +62 -167
  447. package/src/chores/prompt.ts +10 -34
  448. package/src/chores/stack.test.ts +6 -45
  449. package/src/chores/stack.ts +27 -118
  450. package/src/chores/verdict.test.ts +101 -80
  451. package/src/chores/verdict.ts +54 -99
  452. package/src/contracts/accounts.contract.ts +4 -19
  453. package/src/contracts/agent.contract.ts +7 -22
  454. package/src/contracts/agents.contract.ts +25 -71
  455. package/src/contracts/automations.contract.ts +14 -30
  456. package/src/contracts/capabilities.contract.ts +8 -35
  457. package/src/contracts/chores.contract.ts +4 -15
  458. package/src/contracts/endpoints.contract.ts +5 -22
  459. package/src/contracts/exit.contract.ts +7 -30
  460. package/src/contracts/extensions.contract.ts +8 -30
  461. package/src/contracts/git.contract.ts +25 -49
  462. package/src/contracts/host.contract.ts +9 -44
  463. package/src/contracts/intentic.contract.ts +1 -1
  464. package/src/contracts/logs.contract.ts +3 -13
  465. package/src/contracts/loops.contract.ts +9 -40
  466. package/src/contracts/personas.contract.ts +10 -35
  467. package/src/contracts/providers.contract.ts +4 -17
  468. package/src/contracts/runner.contract.ts +12 -39
  469. package/src/contracts/safety.contract.ts +5 -14
  470. package/src/contracts/secrets.contract.ts +4 -22
  471. package/src/contracts/sessions.contract.ts +1 -1
  472. package/src/contracts/settings.contract.ts +4 -10
  473. package/src/contracts/share.contract.ts +3 -9
  474. package/src/contracts/skills.contract.ts +21 -19
  475. package/src/contracts/system.contract.ts +26 -52
  476. package/src/contracts/usage.contract.ts +7 -21
  477. package/src/contracts/vpn.contract.ts +9 -16
  478. package/src/contracts/webext.contract.ts +9 -25
  479. package/src/contracts/workflows.contract.ts +34 -58
  480. package/src/contracts/workspace.contract.ts +19 -50
  481. package/src/events/agent-events.ts +345 -0
  482. package/src/events/cards.ts +286 -0
  483. package/src/{events.test.ts → events/resume.test.ts} +4 -19
  484. package/src/events/resume.ts +60 -0
  485. package/src/events/system-events.ts +139 -0
  486. package/src/events/transcript.ts +320 -0
  487. package/src/{conversation-ids.test.ts → ids/conversation-ids.test.ts} +25 -13
  488. package/src/ids/conversation-ids.ts +178 -0
  489. package/src/ids/hostnames.ts +129 -0
  490. package/src/ids/session-names.ts +29 -0
  491. package/src/ids/share-paths.ts +43 -0
  492. package/src/{tunnel-ids.test.ts → ids/tunnel-ids.test.ts} +1 -14
  493. package/src/ids/tunnel-ids.ts +29 -0
  494. package/src/index.ts +71 -87
  495. package/src/{agent-catalog.test.ts → models/agent-catalog.test.ts} +19 -93
  496. package/src/models/agent-catalog.ts +174 -0
  497. package/src/models/agent-runtimes.ts +201 -0
  498. package/src/models/capability-ledger.test.ts +84 -0
  499. package/src/{fast-tier.test.ts → models/fast-tier.test.ts} +7 -18
  500. package/src/models/fast-tier.ts +36 -0
  501. package/src/{model-order.test.ts → models/model-order.test.ts} +54 -40
  502. package/src/models/model-order.ts +171 -0
  503. package/src/{model-pins.test.ts → models/model-pins.test.ts} +12 -46
  504. package/src/models/model-pins.ts +57 -0
  505. package/src/models/model-roles.test.ts +38 -0
  506. package/src/models/model-roles.ts +180 -0
  507. package/src/{plan-pools.test.ts → models/plan-pools.test.ts} +6 -11
  508. package/src/models/plan-pools.ts +65 -0
  509. package/src/{prompt-complexity.test.ts → models/prompt-complexity.test.ts} +8 -60
  510. package/src/models/prompt-complexity.ts +215 -0
  511. package/src/{provider-specs.test.ts → models/provider-specs.test.ts} +18 -47
  512. package/src/models/provider-specs.ts +272 -0
  513. package/src/policy/approvals-execution.ts +58 -0
  514. package/src/{batch-runs.test.ts → policy/batch-runs.test.ts} +4 -20
  515. package/src/policy/batch-runs.ts +137 -0
  516. package/src/policy/capability-secrets.ts +5 -0
  517. package/src/{card-status.ts → policy/card-status.ts} +11 -26
  518. package/src/{command-classes.test.ts → policy/command-classes.test.ts} +11 -118
  519. package/src/policy/command-classes.ts +395 -0
  520. package/src/policy/command-run.ts +65 -0
  521. package/src/policy/control-scopes.ts +38 -0
  522. package/src/{credential-material.test.ts → policy/credential-material.test.ts} +4 -26
  523. package/src/policy/credential-material.ts +91 -0
  524. package/src/policy/needs-action.ts +5 -0
  525. package/src/policy/output-fields.ts +86 -0
  526. package/src/policy/overlay-lint.ts +100 -0
  527. package/src/{owner-ticket.test.ts → policy/owner-ticket.test.ts} +1 -1
  528. package/src/{owner-ticket.ts → policy/owner-ticket.ts} +9 -31
  529. package/src/policy/safety-policy.test.ts +84 -0
  530. package/src/policy/safety-policy.ts +142 -0
  531. package/src/policy/search-globs.ts +60 -0
  532. package/src/protocol/container-requirements.test.ts +72 -0
  533. package/src/protocol/container-requirements.ts +58 -0
  534. package/src/protocol/host-protocol.ts +29 -0
  535. package/src/protocol/ingress-contract.ts +103 -0
  536. package/src/{ingress-protocol.test.ts → protocol/ingress-protocol.test.ts} +25 -90
  537. package/src/protocol/ingress-protocol.ts +441 -0
  538. package/src/protocol/listener-protocol.ts +75 -0
  539. package/src/{peer-dial.test.ts → protocol/peer-dial.test.ts} +52 -1
  540. package/src/protocol/peer-dial.ts +207 -0
  541. package/src/{peer-mcp-server.ts → protocol/peer-mcp-server.ts} +16 -41
  542. package/src/protocol/request-id.ts +5 -0
  543. package/src/{routes.test.ts → protocol/routes.test.ts} +14 -22
  544. package/src/protocol/routes.ts +159 -0
  545. package/src/protocol/runner-protocol.ts +197 -0
  546. package/src/protocol/terminal-protocol.ts +13 -0
  547. package/src/protocol/webext-links.ts +50 -0
  548. package/src/protocol/webext-protocol.ts +24 -0
  549. package/src/schemas/activity.ts +22 -30
  550. package/src/schemas/agent.ts +130 -238
  551. package/src/schemas/agents.ts +165 -483
  552. package/src/schemas/approvals.ts +23 -71
  553. package/src/schemas/automations.ts +142 -250
  554. package/src/schemas/capabilities.ts +127 -414
  555. package/src/schemas/ci.ts +56 -108
  556. package/src/schemas/codebase-health.ts +7 -11
  557. package/src/schemas/devices.ts +103 -321
  558. package/src/schemas/engines.ts +16 -44
  559. package/src/schemas/environment.ts +41 -91
  560. package/src/schemas/exit.ts +24 -81
  561. package/src/schemas/extension-updates.ts +42 -87
  562. package/src/schemas/git-history.ts +30 -84
  563. package/src/schemas/git.ts +141 -256
  564. package/src/schemas/history.ts +14 -40
  565. package/src/schemas/hosts.ts +9 -15
  566. package/src/schemas/inventory.ts +8 -10
  567. package/src/schemas/issues.ts +66 -134
  568. package/src/schemas/logs.ts +15 -34
  569. package/src/schemas/loops.ts +46 -163
  570. package/src/schemas/maintenance.ts +47 -172
  571. package/src/schemas/panels.ts +20 -45
  572. package/src/schemas/personas.ts +50 -200
  573. package/src/schemas/plan-limits.ts +58 -197
  574. package/src/schemas/ports.ts +14 -32
  575. package/src/schemas/provider-oauth.ts +23 -76
  576. package/src/schemas/provider-subscriptions.ts +4 -13
  577. package/src/schemas/public.ts +4 -15
  578. package/src/schemas/push.ts +8 -36
  579. package/src/schemas/secrets.ts +20 -64
  580. package/src/schemas/settings.ts +182 -602
  581. package/src/schemas/share.ts +14 -32
  582. package/src/schemas/shared.ts +14 -13
  583. package/src/schemas/system.ts +46 -78
  584. package/src/schemas/terminal.ts +41 -120
  585. package/src/schemas/usage.ts +44 -233
  586. package/src/schemas/version-seam.test.ts +9 -26
  587. package/src/schemas/vpn.ts +27 -64
  588. package/src/schemas/webext.ts +22 -53
  589. package/src/schemas/workflows.ts +57 -183
  590. package/src/schemas/workspace-repos.ts +12 -24
  591. package/src/schemas/workspace-search.ts +17 -35
  592. package/src/schemas/workspace-setup.ts +4 -11
  593. package/src/schemas/workspace-tree.ts +32 -91
  594. package/src/state/arrival.ts +109 -0
  595. package/src/state/contract-lock.test.ts +17 -0
  596. package/src/state/contract-lock.ts +49 -0
  597. package/src/state/definition.ts +143 -0
  598. package/src/state/history-state.ts +103 -0
  599. package/src/{runtime-state.test.ts → state/runtime-state.test.ts} +3 -10
  600. package/src/state/runtime-state.ts +63 -0
  601. package/src/state/starter.ts +5 -0
  602. package/src/state/state-portability.ts +27 -0
  603. package/src/state/versions.ts +26 -0
  604. package/src/{workspace-state.test.ts → state/workspace-state.test.ts} +65 -172
  605. package/src/state/workspace-state.ts +669 -0
  606. package/src/{documents.test.ts → text/documents.test.ts} +1 -1
  607. package/src/text/documents.ts +42 -0
  608. package/src/text/embed.ts +132 -0
  609. package/src/text/mentions.ts +21 -0
  610. package/src/text/model-answer.ts +9 -0
  611. package/src/text/path-refs.ts +39 -0
  612. package/src/text/shell-regions.ts +224 -0
  613. package/src/{title.test.ts → text/title.test.ts} +13 -32
  614. package/src/text/title.ts +202 -0
  615. package/src/{transcript-fold.test.ts → text/transcript-fold.test.ts} +5 -83
  616. package/src/{transcript-fold.ts → text/transcript-fold.ts} +65 -170
  617. package/src/text/whisper.test.ts +19 -0
  618. package/src/text/whisper.ts +17 -0
  619. package/src/{workflow-faults.test.ts → text/workflow-faults.test.ts} +6 -24
  620. package/src/{workflow-faults.ts → text/workflow-faults.ts} +20 -60
  621. package/dist/agent-catalog.d.ts.map +0 -1
  622. package/dist/agent-catalog.js.map +0 -1
  623. package/dist/agent-runtimes.d.ts.map +0 -1
  624. package/dist/agent-runtimes.js.map +0 -1
  625. package/dist/approvals-execution.d.ts.map +0 -1
  626. package/dist/approvals-execution.js.map +0 -1
  627. package/dist/arrival.d.ts.map +0 -1
  628. package/dist/arrival.js.map +0 -1
  629. package/dist/batch-runs.d.ts.map +0 -1
  630. package/dist/batch-runs.js.map +0 -1
  631. package/dist/capability-env.d.ts.map +0 -1
  632. package/dist/capability-env.js.map +0 -1
  633. package/dist/capability-secrets.d.ts.map +0 -1
  634. package/dist/capability-secrets.js.map +0 -1
  635. package/dist/card-status.d.ts.map +0 -1
  636. package/dist/card-status.js.map +0 -1
  637. package/dist/command-classes.d.ts.map +0 -1
  638. package/dist/command-classes.js.map +0 -1
  639. package/dist/command-run.d.ts.map +0 -1
  640. package/dist/command-run.js.map +0 -1
  641. package/dist/contract-lock.d.ts.map +0 -1
  642. package/dist/contract-lock.js.map +0 -1
  643. package/dist/conversation-ids.d.ts +0 -4
  644. package/dist/conversation-ids.d.ts.map +0 -1
  645. package/dist/conversation-ids.js.map +0 -1
  646. package/dist/credential-material.d.ts.map +0 -1
  647. package/dist/credential-material.js.map +0 -1
  648. package/dist/definition.d.ts.map +0 -1
  649. package/dist/definition.js.map +0 -1
  650. package/dist/documents.d.ts.map +0 -1
  651. package/dist/documents.js.map +0 -1
  652. package/dist/embed.d.ts.map +0 -1
  653. package/dist/embed.js.map +0 -1
  654. package/dist/events.d.ts +0 -4336
  655. package/dist/events.d.ts.map +0 -1
  656. package/dist/events.js +0 -725
  657. package/dist/events.js.map +0 -1
  658. package/dist/fast-tier.d.ts.map +0 -1
  659. package/dist/fast-tier.js.map +0 -1
  660. package/dist/history-state.d.ts.map +0 -1
  661. package/dist/history-state.js.map +0 -1
  662. package/dist/host-protocol.d.ts.map +0 -1
  663. package/dist/host-protocol.js.map +0 -1
  664. package/dist/hostnames.d.ts.map +0 -1
  665. package/dist/hostnames.js.map +0 -1
  666. package/dist/ingress-contract.d.ts.map +0 -1
  667. package/dist/ingress-contract.js.map +0 -1
  668. package/dist/ingress-protocol.d.ts.map +0 -1
  669. package/dist/ingress-protocol.js.map +0 -1
  670. package/dist/listener-protocol.d.ts.map +0 -1
  671. package/dist/listener-protocol.js.map +0 -1
  672. package/dist/mentions.d.ts.map +0 -1
  673. package/dist/mentions.js.map +0 -1
  674. package/dist/model-order.d.ts.map +0 -1
  675. package/dist/model-order.js.map +0 -1
  676. package/dist/model-pins.d.ts.map +0 -1
  677. package/dist/model-pins.js.map +0 -1
  678. package/dist/model-roles.d.ts.map +0 -1
  679. package/dist/model-roles.js.map +0 -1
  680. package/dist/needs-action.d.ts.map +0 -1
  681. package/dist/needs-action.js.map +0 -1
  682. package/dist/output-fields.d.ts.map +0 -1
  683. package/dist/output-fields.js.map +0 -1
  684. package/dist/overlay-lint.d.ts.map +0 -1
  685. package/dist/overlay-lint.js.map +0 -1
  686. package/dist/owner-ticket.d.ts.map +0 -1
  687. package/dist/owner-ticket.js.map +0 -1
  688. package/dist/path-refs.d.ts.map +0 -1
  689. package/dist/path-refs.js.map +0 -1
  690. package/dist/peer-dial.d.ts.map +0 -1
  691. package/dist/peer-dial.js.map +0 -1
  692. package/dist/peer-mcp-server.d.ts.map +0 -1
  693. package/dist/peer-mcp-server.js.map +0 -1
  694. package/dist/plan-pools.d.ts.map +0 -1
  695. package/dist/plan-pools.js.map +0 -1
  696. package/dist/prompt-complexity.d.ts.map +0 -1
  697. package/dist/prompt-complexity.js.map +0 -1
  698. package/dist/provider-specs.d.ts.map +0 -1
  699. package/dist/provider-specs.js.map +0 -1
  700. package/dist/request-id.d.ts.map +0 -1
  701. package/dist/request-id.js.map +0 -1
  702. package/dist/routes.d.ts.map +0 -1
  703. package/dist/routes.js.map +0 -1
  704. package/dist/runner-protocol.d.ts.map +0 -1
  705. package/dist/runner-protocol.js.map +0 -1
  706. package/dist/runtime-state.d.ts.map +0 -1
  707. package/dist/runtime-state.js.map +0 -1
  708. package/dist/safety-policy.d.ts.map +0 -1
  709. package/dist/safety-policy.js.map +0 -1
  710. package/dist/search-globs.d.ts.map +0 -1
  711. package/dist/search-globs.js.map +0 -1
  712. package/dist/session-names.d.ts.map +0 -1
  713. package/dist/session-names.js.map +0 -1
  714. package/dist/share-paths.d.ts.map +0 -1
  715. package/dist/share-paths.js.map +0 -1
  716. package/dist/shell-regions.d.ts.map +0 -1
  717. package/dist/shell-regions.js.map +0 -1
  718. package/dist/sse.d.ts.map +0 -1
  719. package/dist/sse.js.map +0 -1
  720. package/dist/starter.d.ts.map +0 -1
  721. package/dist/starter.js.map +0 -1
  722. package/dist/state-portability.d.ts.map +0 -1
  723. package/dist/state-portability.js.map +0 -1
  724. package/dist/terminal-protocol.d.ts.map +0 -1
  725. package/dist/terminal-protocol.js.map +0 -1
  726. package/dist/title.d.ts.map +0 -1
  727. package/dist/title.js.map +0 -1
  728. package/dist/transcript-fold.d.ts.map +0 -1
  729. package/dist/transcript-fold.js.map +0 -1
  730. package/dist/tunnel-ids.d.ts.map +0 -1
  731. package/dist/tunnel-ids.js.map +0 -1
  732. package/dist/versions.d.ts.map +0 -1
  733. package/dist/versions.js.map +0 -1
  734. package/dist/webext-links.d.ts.map +0 -1
  735. package/dist/webext-links.js.map +0 -1
  736. package/dist/webext-protocol.d.ts.map +0 -1
  737. package/dist/webext-protocol.js.map +0 -1
  738. package/dist/workflow-faults.d.ts.map +0 -1
  739. package/dist/workflow-faults.js.map +0 -1
  740. package/dist/workspace-state.d.ts.map +0 -1
  741. package/dist/workspace-state.js.map +0 -1
  742. package/src/agent-catalog.ts +0 -316
  743. package/src/agent-runtimes.ts +0 -419
  744. package/src/approvals-execution.ts +0 -96
  745. package/src/arrival.ts +0 -160
  746. package/src/batch-runs.ts +0 -188
  747. package/src/capability-ledger.test.ts +0 -140
  748. package/src/capability-secrets.ts +0 -20
  749. package/src/command-classes.ts +0 -617
  750. package/src/command-run.ts +0 -78
  751. package/src/contract-lock.test.ts +0 -23
  752. package/src/contract-lock.ts +0 -66
  753. package/src/conversation-ids.ts +0 -207
  754. package/src/credential-material.ts +0 -181
  755. package/src/definition.ts +0 -207
  756. package/src/documents.ts +0 -67
  757. package/src/embed.ts +0 -164
  758. package/src/events.ts +0 -1870
  759. package/src/fast-tier.ts +0 -72
  760. package/src/history-state.ts +0 -174
  761. package/src/host-protocol.ts +0 -36
  762. package/src/hostnames.ts +0 -180
  763. package/src/ingress-contract.ts +0 -157
  764. package/src/ingress-protocol.ts +0 -625
  765. package/src/listener-protocol.ts +0 -96
  766. package/src/mentions.ts +0 -25
  767. package/src/model-order.ts +0 -262
  768. package/src/model-pins.ts +0 -132
  769. package/src/model-roles.test.ts +0 -52
  770. package/src/model-roles.ts +0 -320
  771. package/src/needs-action.ts +0 -14
  772. package/src/output-fields.ts +0 -111
  773. package/src/overlay-lint.ts +0 -116
  774. package/src/path-refs.ts +0 -59
  775. package/src/peer-dial.ts +0 -163
  776. package/src/plan-pools.ts +0 -92
  777. package/src/prompt-complexity.ts +0 -334
  778. package/src/provider-specs.ts +0 -432
  779. package/src/request-id.ts +0 -41
  780. package/src/routes.ts +0 -219
  781. package/src/runner-protocol.ts +0 -239
  782. package/src/runtime-state.ts +0 -140
  783. package/src/safety-policy.test.ts +0 -88
  784. package/src/safety-policy.ts +0 -258
  785. package/src/search-globs.ts +0 -76
  786. package/src/session-names.ts +0 -44
  787. package/src/share-paths.ts +0 -68
  788. package/src/shell-regions.ts +0 -289
  789. package/src/starter.ts +0 -13
  790. package/src/state-portability.ts +0 -56
  791. package/src/terminal-protocol.ts +0 -16
  792. package/src/title.ts +0 -267
  793. package/src/tunnel-ids.ts +0 -57
  794. package/src/versions.ts +0 -48
  795. package/src/webext-links.ts +0 -90
  796. package/src/webext-protocol.ts +0 -27
  797. package/src/workspace-state.ts +0 -1090
  798. /package/dist/{hostnames.d.ts → ids/hostnames.d.ts} +0 -0
  799. /package/dist/{hostnames.js → ids/hostnames.js} +0 -0
  800. /package/dist/{session-names.d.ts → ids/session-names.d.ts} +0 -0
  801. /package/dist/{session-names.js → ids/session-names.js} +0 -0
  802. /package/dist/{share-paths.d.ts → ids/share-paths.d.ts} +0 -0
  803. /package/dist/{share-paths.js → ids/share-paths.js} +0 -0
  804. /package/dist/{agent-catalog.js → models/agent-catalog.js} +0 -0
  805. /package/dist/{agent-runtimes.d.ts → models/agent-runtimes.d.ts} +0 -0
  806. /package/dist/{agent-runtimes.js → models/agent-runtimes.js} +0 -0
  807. /package/dist/{fast-tier.js → models/fast-tier.js} +0 -0
  808. /package/dist/{model-order.d.ts → models/model-order.d.ts} +0 -0
  809. /package/dist/{model-pins.js → models/model-pins.js} +0 -0
  810. /package/dist/{plan-pools.js → models/plan-pools.js} +0 -0
  811. /package/dist/{prompt-complexity.d.ts → models/prompt-complexity.d.ts} +0 -0
  812. /package/dist/{prompt-complexity.js → models/prompt-complexity.js} +0 -0
  813. /package/dist/{provider-specs.d.ts → models/provider-specs.d.ts} +0 -0
  814. /package/dist/{provider-specs.js → models/provider-specs.js} +0 -0
  815. /package/dist/{approvals-execution.d.ts → policy/approvals-execution.d.ts} +0 -0
  816. /package/dist/{approvals-execution.js → policy/approvals-execution.js} +0 -0
  817. /package/dist/{capability-env.d.ts → policy/capability-env.d.ts} +0 -0
  818. /package/dist/{capability-env.js → policy/capability-env.js} +0 -0
  819. /package/dist/{capability-secrets.d.ts → policy/capability-secrets.d.ts} +0 -0
  820. /package/dist/{capability-secrets.js → policy/capability-secrets.js} +0 -0
  821. /package/dist/{command-run.js → policy/command-run.js} +0 -0
  822. /package/dist/{credential-material.d.ts → policy/credential-material.d.ts} +0 -0
  823. /package/dist/{credential-material.js → policy/credential-material.js} +0 -0
  824. /package/dist/{needs-action.d.ts → policy/needs-action.d.ts} +0 -0
  825. /package/dist/{needs-action.js → policy/needs-action.js} +0 -0
  826. /package/dist/{output-fields.d.ts → policy/output-fields.d.ts} +0 -0
  827. /package/dist/{output-fields.js → policy/output-fields.js} +0 -0
  828. /package/dist/{overlay-lint.d.ts → policy/overlay-lint.d.ts} +0 -0
  829. /package/dist/{overlay-lint.js → policy/overlay-lint.js} +0 -0
  830. /package/dist/{owner-ticket.d.ts → policy/owner-ticket.d.ts} +0 -0
  831. /package/dist/{search-globs.d.ts → policy/search-globs.d.ts} +0 -0
  832. /package/dist/{search-globs.js → policy/search-globs.js} +0 -0
  833. /package/dist/{ingress-contract.d.ts → protocol/ingress-contract.d.ts} +0 -0
  834. /package/dist/{ingress-protocol.d.ts → protocol/ingress-protocol.d.ts} +0 -0
  835. /package/dist/{ingress-protocol.js → protocol/ingress-protocol.js} +0 -0
  836. /package/dist/{listener-protocol.d.ts → protocol/listener-protocol.d.ts} +0 -0
  837. /package/dist/{peer-mcp-server.d.ts → protocol/peer-mcp-server.d.ts} +0 -0
  838. /package/dist/{peer-mcp-server.js → protocol/peer-mcp-server.js} +0 -0
  839. /package/dist/{request-id.d.ts → protocol/request-id.d.ts} +0 -0
  840. /package/dist/{request-id.js → protocol/request-id.js} +0 -0
  841. /package/dist/{routes.d.ts → protocol/routes.d.ts} +0 -0
  842. /package/dist/{routes.js → protocol/routes.js} +0 -0
  843. /package/dist/{sse.d.ts → protocol/sse.d.ts} +0 -0
  844. /package/dist/{sse.js → protocol/sse.js} +0 -0
  845. /package/dist/{terminal-protocol.js → protocol/terminal-protocol.js} +0 -0
  846. /package/dist/{webext-links.d.ts → protocol/webext-links.d.ts} +0 -0
  847. /package/dist/{webext-links.js → protocol/webext-links.js} +0 -0
  848. /package/dist/{arrival.d.ts → state/arrival.d.ts} +0 -0
  849. /package/dist/{contract-lock.d.ts → state/contract-lock.d.ts} +0 -0
  850. /package/dist/{history-state.d.ts → state/history-state.d.ts} +0 -0
  851. /package/dist/{runtime-state.d.ts → state/runtime-state.d.ts} +0 -0
  852. /package/dist/{runtime-state.js → state/runtime-state.js} +0 -0
  853. /package/dist/{starter.d.ts → state/starter.d.ts} +0 -0
  854. /package/dist/{starter.js → state/starter.js} +0 -0
  855. /package/dist/{state-portability.d.ts → state/state-portability.d.ts} +0 -0
  856. /package/dist/{state-portability.js → state/state-portability.js} +0 -0
  857. /package/dist/{versions.d.ts → state/versions.d.ts} +0 -0
  858. /package/dist/{versions.js → state/versions.js} +0 -0
  859. /package/dist/{embed.d.ts → text/embed.d.ts} +0 -0
  860. /package/dist/{embed.js → text/embed.js} +0 -0
  861. /package/dist/{mentions.d.ts → text/mentions.d.ts} +0 -0
  862. /package/dist/{mentions.js → text/mentions.js} +0 -0
  863. /package/dist/{path-refs.d.ts → text/path-refs.d.ts} +0 -0
  864. /package/dist/{path-refs.js → text/path-refs.js} +0 -0
  865. /package/dist/{shell-regions.js → text/shell-regions.js} +0 -0
  866. /package/dist/{title.d.ts → text/title.d.ts} +0 -0
  867. /package/dist/{title.js → text/title.js} +0 -0
  868. /package/src/{hostnames.test.ts → ids/hostnames.test.ts} +0 -0
  869. /package/src/{share-paths.test.ts → ids/share-paths.test.ts} +0 -0
  870. /package/src/{capability-env.ts → policy/capability-env.ts} +0 -0
  871. /package/src/{overlay-lint.test.ts → policy/overlay-lint.test.ts} +0 -0
  872. /package/src/{search-globs.test.ts → policy/search-globs.test.ts} +0 -0
  873. /package/src/{ingress-contract.test.ts → protocol/ingress-contract.test.ts} +0 -0
  874. /package/src/{peer-mcp-server.test.ts → protocol/peer-mcp-server.test.ts} +0 -0
  875. /package/src/{sse.ts → protocol/sse.ts} +0 -0
  876. /package/src/{versions.test.ts → state/versions.test.ts} +0 -0
  877. /package/src/{embed.test.ts → text/embed.test.ts} +0 -0
  878. /package/src/{mentions.test.ts → text/mentions.test.ts} +0 -0
  879. /package/src/{path-refs.test.ts → text/path-refs.test.ts} +0 -0
@@ -1,53 +1,46 @@
1
- // extensions: installed extension-kind capabilities resolved to their manifests
2
- // extension updates: what the registry check found, and what the owner decided to do about such findings
1
+ // Extensions: installed extension-kind capabilities resolved to their manifests; extension updates: what the registry
2
+ // check found and what the owner decided to do about it.
3
3
  import { z } from "zod";
4
4
  import { ExtensionManifestSchema } from "@intentic/extension-manifest";
5
- // What the web extension host boots from: each row is an extension capability whose checkout still parses,
6
- // the approved manifest (contribution declarations), and the checked-out commit (the code identity; the bundle
7
- // route's ETag). A rotted checkout is skipped here; its capability row still shows status.
8
- // The routing handle: a git-installed extension uses its capability entry id; an image-baked one has no
9
- // capability entry and is addressed by the manifest-derived publisher.name, hence the dot in the pattern.
5
+ // Each extension is addressed by its capability entry id (git-installed) or its manifest's `publisher.name`
6
+ // (image-baked, no entry), hence the dot allowed here. A rotted checkout is skipped; its capability row still shows
7
+ // status.
10
8
  const extensionId = z
11
9
  .string()
12
10
  .min(1)
13
11
  .max(121)
14
12
  .regex(/^[a-zA-Z0-9][a-zA-Z0-9_.-]*$/);
15
- // The owner's per-extension update posture. `updates` is the ladder: `notify` (badge and wait, the default),
16
- // `agent` (the discovery also prepares an agent diff-read of the new sha), `auto` (apply unattended, but only
17
- // a verified listing whose powers didn't grow, health-watched with auto-revert, anything less falls back to
18
- // notify). `advisories` is separate because its safe direction is the opposite: disabling runs no new code, so
19
- // `auto-disable` is the default and `notify` is the opt-out.
13
+ // Owner's per-extension update posture.
14
+ // updates: notify (default, badge and wait), agent (also prepares an agent diff-read), auto (apply unattended if
15
+ // verified and powers didn't grow, health-watched with auto-revert; otherwise falls back to notify).
16
+ // advisories: auto-disable (default, since disabling runs no new code) or notify.
20
17
  export const ExtensionUpdatePolicySchema = z.object({
21
18
  updates: z.enum(["notify", "agent", "auto"]),
22
19
  advisories: z.enum(["auto-disable", "notify"]),
23
20
  });
24
21
  export type ExtensionUpdatePolicy = z.infer<typeof ExtensionUpdatePolicySchema>;
25
- // A newer sha the registry lists for an installed extension, the "update available" badge's substance. The
26
- // pointer (url/path) rides along because updating follows the ROW as it stands now, not the install as it was.
22
+ // A newer sha the registry lists, the update-available badge's substance. `url`/`path` ride along because updating
23
+ // follows this row as it stands now, not the original install.
27
24
  export const ExtensionUpdateSchema = z.object({
28
25
  ref: z.string().describe("The commit being offered."),
29
26
  version: z.string().optional().describe("What it calls itself."),
30
27
  url: z.string().describe("Where it comes from."),
31
28
  path: z.string().optional().describe("Where inside that repository it lives."),
32
29
  trust: z.enum(["verified", "listed"]).describe("Whether anybody vouched for it, or it is merely listed."),
33
- // The listing says this release fixes a security problem in earlier ones, the badge goes loud, because
34
- // here the OLD version is the dangerous one.
30
+ // The badge renders loud (urgent) when this is set.
35
31
  securityFix: z
36
32
  .boolean()
37
33
  .optional()
38
34
  .describe("This release fixes a security problem in earlier ones, so here the old version is the dangerous one."),
39
35
  registry: z.string().describe("Which registry said so."),
40
36
  at: z.string().describe("When it was published."),
41
- // Why the auto rung refused this one and fell back to notify ("powers grew", "not verified"), the card
42
- // leads with it so the owner knows the click is theirs for a reason.
37
+ // The card leads with this, so the owner knows why the decision is theirs.
43
38
  needsReview: z
44
39
  .string()
45
40
  .optional()
46
41
  .describe(
47
42
  "Why this one was not taken automatically and is asking for a person instead: it wants more than it used to, or nobody has vouched for it.",
48
43
  ),
49
- // The agent-prepared rung's work: the conversation where the owner's agent already read the diff between
50
- // the installed sha and this one. The card links it instead of offering to start it.
51
44
  review: z
52
45
  .object({
53
46
  conversationId: z.string().describe("Where to read what it found."),
@@ -59,8 +52,7 @@ export const ExtensionUpdateSchema = z.object({
59
52
  ),
60
53
  });
61
54
  export type ExtensionUpdate = z.infer<typeof ExtensionUpdateSchema>;
62
- // The registry blocked this installed extension's listing. Delisting protects people browsing; this record is
63
- // for the person already running it, the reason verbatim, and whether the daemon already pulled the switch.
55
+ // This installed extension was delisted; the record is for someone still running it.
64
56
  export const ExtensionAdvisorySchema = z.object({
65
57
  reason: z
66
58
  .string()
@@ -72,9 +64,7 @@ export const ExtensionAdvisorySchema = z.object({
72
64
  autoDisabled: z.boolean().describe("Whether the sandbox has already switched it off."),
73
65
  });
74
66
  export type ExtensionAdvisory = z.infer<typeof ExtensionAdvisorySchema>;
75
- // The post-update watch: validation catches broken, not wrong, so for a minute after a swap the daemon checks
76
- // that what the new version declared actually came up (autoStart processes running, backend activated).
77
- // `fromRef` is the sha the kept-previous checkout holds, what a revert returns to.
67
+ // Checks that the new version's declared autoStart processes and backend actually came up.
78
68
  export const ExtensionHealthSchema = z.object({
79
69
  state: z
80
70
  .enum(["watching", "healthy", "unhealthy"])
@@ -82,25 +72,22 @@ export const ExtensionHealthSchema = z.object({
82
72
  detail: z.string().optional().describe("What is going wrong, when something is."),
83
73
  fromRef: z.string().optional().describe("Which version it was updated from, which is what going back would return to."),
84
74
  at: z.string().describe("When the watching started."),
85
- // The auto rung's failure path already ran: the update was rolled back unattended, and the record stays to
86
- // say so rather than pretending the attempt never happened.
87
75
  autoReverted: z
88
76
  .boolean()
89
77
  .optional()
90
78
  .describe("The update was already rolled back without anybody asking. The record stays rather than pretending the attempt never happened."),
91
79
  });
92
80
  export type ExtensionHealth = z.infer<typeof ExtensionHealthSchema>;
93
- // The mechanical comparison of two manifests' declared reach (extension-manifest's diffPowers), plain
94
- // sentences, so the update dialog renders exactly what approval is being asked to cover.
81
+ // Mechanical comparison of two manifests' declared reach (`diffPowers`), as plain sentences the update dialog can
82
+ // render directly.
95
83
  export const PowersDiffSchema = z.object({
96
84
  added: z.array(z.string()).describe("What the new version asks for that the running one does not. The whole point of the comparison."),
97
85
  removed: z.array(z.string()).describe("What it no longer asks for."),
98
86
  unchanged: z.array(z.string()).describe("What stays the same."),
99
87
  });
100
88
  export type PowersDiff = z.infer<typeof PowersDiffSchema>;
101
- // What an owner reads before clicking Update: the offered sha's manifest folded to the version story, the
102
- // engines verdict, and the powers diff against the installed manifest. `ref` optional on the way in, absent
103
- // means "the update the check recorded", which is the only caller most of the time.
89
+ // What an owner reads before clicking Update: the offered version's story, the engines verdict, and its powers diff
90
+ // against what is installed.
104
91
  export const ExtensionUpdateActionSchema = z.object({
105
92
  id: extensionId.describe("Which extension."),
106
93
  ref: z
@@ -119,8 +106,7 @@ export const ExtensionUpdatePreviewSchema = z.object({
119
106
  "Exactly what the new code asks for that the running one does not. This is what approving an update is approving.",
120
107
  ),
121
108
  });
122
- // `rebuildNeeded` (update only): the new version's environment fragment changed the composed overlay, so the
123
- // card must say a one-time image rebuild is pending rather than let the update read as wholly landed.
109
+ // Environment fragment change that alters the composed overlay; the update is not wholly landed until rebuilt.
124
110
  export const ExtensionUpdateAppliedSchema = z.object({
125
111
  ok: z.literal(true).describe("It went through."),
126
112
  ref: z.string().describe("Which commit is now running."),
@@ -147,43 +133,26 @@ export const ExtensionSummarySchema = z.object({
147
133
  id: extensionId.describe("The extension's id."),
148
134
  manifest: ExtensionManifestSchema.describe("What it declares about itself: what it contributes, what it needs, and what it may reach."),
149
135
  commit: z.string().describe("Exactly which commit is installed."),
150
- /* Where the code comes from, which is also what the web varies per row: `builtin` (image-baked, no git
151
- * checkout, not removable) hides the uninstall affordance, `installed` (a git capability) shows the pinned
152
- * commit, `workspace` (a directory under .intentic/config/workspace-extensions/, created and edited in place,
153
- * typically by an agent) is "uninstalled" by deleting its directory. */
136
+ // builtin: hides the uninstall affordance.
137
+ // installed: shows the pinned commit.
138
+ // workspace: "uninstalled" by deleting its directory.
154
139
  source: z
155
140
  .enum(["builtin", "installed", "workspace"])
156
141
  .describe(
157
142
  "Where the code comes from: baked into the sandbox image and not removable, installed from a repository at a pinned commit, or written in this workspace and edited in place.",
158
143
  ),
159
- // The owner's switch (.intentic/config/extension-enablement.json). A disabled extension is still listed, that's
160
- // what makes it switchable back on, but the daemon wires none of its contributions up and the web host
161
- // doesn't activate it.
144
+ // Persisted at .intentic/config/extension-enablement.json.
162
145
  enabled: z
163
146
  .boolean()
164
147
  .describe(
165
148
  "The owner's switch. A switched-off extension is still listed, which is what makes it switchable back on, but nothing it contributes is wired up.",
166
149
  ),
167
- /* THE SWITCH IS FIXED ON, this extension is the only control surface for an engine the daemon runs
168
- * regardless. The automations scheduler fires turns on a clock whether or not anything draws them, and
169
- * hiding the one page that can see, stop or approve those fires would not stop the spend, it would only
170
- * remove the owner's ability to notice it. So the daemon refuses the flip, and the tab draws the switch as
171
- * fixed with this fact as the reason.
172
- *
173
- * Declared by the CORE about its own engines' surfaces, never by a manifest: a field an extension could set
174
- * on itself would be a pack making itself un-removable, which is a self-granted privilege the approval flow
175
- * exists to prevent. */
176
150
  essential: z
177
151
  .boolean()
178
152
  .optional()
179
153
  .describe(
180
154
  "Its switch is fixed on, because it is the only way to see or stop an engine the sandbox runs regardless. Hiding that page would not stop the spending, only your ability to notice it. Declared by the core about its own surfaces, never by an extension about itself, which would be a pack making itself un-removable.",
181
155
  ),
182
- /* How much of the reach this extension asked for it has actually used, keyed by the DECLARED entry so a row
183
- * joins straight onto `permissions.sandbox`. Absent for an extension that has never been observed calling
184
- * anything, which is a different claim from "uses none of them" and has to stay tellable: a freshly installed
185
- * extension has an empty ledger and an unexercised one does too, and reading either as "these permissions are
186
- * unnecessary" would turn this from evidence into a guess with a number on it. */
187
156
  usage: z
188
157
  .record(
189
158
  z.string(),
@@ -193,11 +162,7 @@ export const ExtensionSummarySchema = z.object({
193
162
  .describe(
194
163
  "How much of the reach it asked for it has actually used, keyed by what it declared. Absent means never observed doing anything, which is a different claim from uses none of them, and the two have to stay tellable apart: reading either as these permissions are unnecessary turns evidence into a guess with a number on it.",
195
164
  ),
196
- /* The BACKEND half's state, present only for an extension whose manifest ships a `server` bundle: what the
197
- * daemon's backend host reports for it (running / an activation error with its message), or what only the
198
- * daemon can know (absent, the code is not in this image; incompatible, its engines exclude this daemon;
199
- * starting/stopped, the host itself is between states). The tab renders it beside the row so a backend
200
- * that failed to activate is a sentence, not a namespace that 404s. */
165
+ // starting/stopped mean the host itself is between states.
201
166
  backend: z
202
167
  .object({
203
168
  state: z
@@ -212,10 +177,12 @@ export const ExtensionSummarySchema = z.object({
212
177
  })
213
178
  .optional()
214
179
  .describe("Present only for an extension that ships a server half."),
215
- /* The update lifecycle, present only where it can exist, a git-installed extension. `update` is the badge,
216
- * `advisory` the alarm, `health` the after-the-click watch, `previous` the way back (the kept one-back
217
- * checkout's sha), `updatePolicy` the owner's standing answer. A builtin updates with the image and a
218
- * workspace one is live-edited, so all five stay absent for them. */
180
+ // Update lifecycle, present only for a git-installed extension (absent for builtin/workspace):
181
+ // update: the badge.
182
+ // advisory: the alarm.
183
+ // health: the after-the-click watch.
184
+ // previous: the way back (kept one-back checkout's sha).
185
+ // updatePolicy: the owner's standing answer.
219
186
  update: ExtensionUpdateSchema.optional().describe(
220
187
  "A newer version waiting. All five of these exist only for one installed from a repository: a built-in updates with the image and one written here is edited live.",
221
188
  ),
@@ -233,9 +200,7 @@ export const ExtensionSummarySchema = z.object({
233
200
  ),
234
201
  });
235
202
  export type ExtensionSummary = z.infer<typeof ExtensionSummarySchema>;
236
- // A workspace-extension directory that failed to enumerate, and why. Its only feedback channel: there is no
237
- // install moment to reject a bad manifest, so the parse failure (or id collision) rides the list instead of
238
- // silently dropping the row, the Extensions tab renders it, and an authoring agent reads it off GET /extensions.
203
+ // Read by both the Extensions tab and an authoring agent off GET /extensions.
239
204
  export const InvalidWorkspaceExtensionSchema = z.object({
240
205
  dir: z.string().describe("Which folder."),
241
206
  error: z.string().describe("Why it could not be read."),
@@ -248,8 +213,6 @@ export const ExtensionsListSchema = z.object({
248
213
  .describe(
249
214
  "Extensions written here that could not be read at all. Listed rather than dropped, because there is no install moment at which to reject a broken one, so this is its only way of saying anything.",
250
215
  ),
251
- // When the registry comparison last ran, absent until the first check completes. Serving it on the list is
252
- // what lets the tab say "checked an hour ago" instead of presenting staleness as certainty.
253
216
  updatesCheckedAt: z
254
217
  .string()
255
218
  .optional()
@@ -257,10 +220,8 @@ export const ExtensionsListSchema = z.object({
257
220
  "When updates were last looked for. Absent until the first check has run. Sent so a screen can say checked an hour ago rather than presenting staleness as certainty.",
258
221
  ),
259
222
  });
260
- // The extension's contributes.settings values, persisted daemon-side (.intentic/config/extension-settings.json) keyed
261
- // by the manifest-derived extension id, the checkout stays pristine, so a re-clone update never loses them.
262
- // Secret-marked values are stripped from `settings`; `secretsSet` lists the secret keys that DO hold a value,
263
- // so the UI renders "•••• (set)" without ever receiving the secret back.
223
+ // Persisted at .intentic/config/extension-settings.json, keyed by extension id so a re-clone never loses them. Secret
224
+ // values are stripped from `settings`; `secretsSet` names which ones are set.
264
225
  export const ExtensionSettingsSchema = z.object({
265
226
  settings: z.record(z.string(), z.union([z.string(), z.number(), z.boolean()])).describe("The values, minus anything marked secret."),
266
227
  secretsSet: z
@@ -274,16 +235,14 @@ export const ExtensionSettingsInputSchema = z.object({
274
235
  .record(z.string(), z.union([z.string(), z.number(), z.boolean()]))
275
236
  .describe("The values to write. A key the extension never declared is refused rather than quietly stored."),
276
237
  });
277
- // Flip one extension on or off. Persisted by publisher.name (like settings), so the choice outlives the
278
- // checkout; the daemon's immediate half of the flip, declared processes, converges in the same handler.
238
+ // Persisted by publisher.name (like settings) so the choice outlives the checkout; declared processes converge in the
239
+ // same handler.
279
240
  export const ExtensionEnabledInputSchema = z.object({
280
241
  id: z.string().describe("Which extension."),
281
242
  enabled: z.boolean().describe("On or off."),
282
243
  });
283
- /* Create a workspace extension: the identity, and deliberately nothing else. What gets written is the daemon's
284
- * decision, not a form the author fills in, the point of the action is that a running extension exists a second
285
- * after it is asked for, and shaping it happens by editing the files it wrote (or by asking an agent to). The two
286
- * slugs are the same shape the manifest schema demands, checked again here because `name` becomes a directory. */
244
+ // Identity only; what gets written is the daemon's decision, not a form filled in — shaping happens by editing the
245
+ // files afterward. Slugs match the manifest schema's shape, re-checked here because `name` becomes a directory.
287
246
  export const WorkspaceExtensionCreateSchema = z.object({
288
247
  publisher: z
289
248
  .string()
@@ -294,23 +253,19 @@ export const WorkspaceExtensionCreateSchema = z.object({
294
253
  .regex(/^[a-z0-9][a-z0-9-]*$/)
295
254
  .describe("What it is called."),
296
255
  });
297
- // Where it landed. `dir` is workspace-root-relative so the caller can name the files it should open next.
256
+ // `dir` is workspace-root-relative, so the caller can name files to open next.
298
257
  export const WorkspaceExtensionCreatedSchema = z.object({
299
258
  id: z.string().describe("The id it was given."),
300
259
  dir: z.string().describe("Where its files are, so you can open them."),
301
260
  });
302
- /* Batches of calls the host observed against extensions' declared routes: extension id → declared entry → how
303
- * many since the last report. Counts rather than events, and declared entries rather than concrete paths,
304
- * because the question the ledger answers is "is this permission earned?": a finer record would be a log of
305
- * what the owner was doing, indexed by extension, which is not a thing this product should be accumulating to
306
- * answer it. Every extension rides one request so the bookkeeping cannot become its own request burst. */
261
+ // Extension id → declared entry → count since last report; counts, not events, and declared entries, not paths, since
262
+ // this answers whether a permission is earned, not logs activity. One request per batch across all extensions.
307
263
  export const ExtensionUsageBatchSchema = z.object({
308
264
  reports: z
309
265
  .record(z.string(), z.record(z.string(), z.number().int().positive()))
310
266
  .describe("Each extension that called something, and the counts against the declared powers it exercised."),
311
267
  });
312
- // One declared background process (contributes.processes), status/start/stop, addressed by the capability
313
- // entry id + the manifest's process name. Undeclared names are NOT_FOUND, the manifest-honesty rule again.
268
+ // One declared background process, addressed by capability entry id + process name; an undeclared name is NOT_FOUND.
314
269
  export const ExtensionProcessParamSchema = z.object({
315
270
  id: z.string().describe("Which extension."),
316
271
  name: z.string().describe("Which of its declared processes."),
@@ -1,15 +1,12 @@
1
- // git history graph (the "Git Graph" view over a repo's real commits)
1
+ // The Git Graph view over a repo's real commits.
2
2
  import { z } from "zod";
3
3
  import { GitChangeSchema } from "./git.js";
4
4
  import { RefNameSchema } from "./internal.js";
5
5
  import { RepoParamSchema } from "./shared.js";
6
- // A hex sha (full or git-abbreviated): the only shape the graph ever sends back, so the per-commit routes
7
- // constrain to it rather than accepting an arbitrary git revision expression.
6
+ // A hex sha, full or abbreviated; commit routes accept only this, never an arbitrary git revision expression.
8
7
  const ShaSchema = z.string().regex(/^[0-9a-f]{4,64}$/);
9
- // One commit in the graph. `parents` (0 = root, 1 = normal, 2+ = merge) drive the lane layout, computed
10
- // client-side. `refs` are the branch/tag decorations at this commit (tags keep their `tag: ` prefix; the bare
11
- // "HEAD" marker is lifted into `head` instead). `at` is author time in ms since epoch; `short` is git's
12
- // abbreviated sha; `body` is the message minus its subject line.
8
+ // One commit in the graph. `parents` drives lane layout, computed client-side; `refs` keeps tags' `tag: ` prefix but
9
+ // lifts a bare HEAD marker into `head` instead.
13
10
  export const GitCommitSchema = z.object({
14
11
  sha: z.string().describe("The commit, in full."),
15
12
  short: z.string().describe("The abbreviated form, for showing."),
@@ -27,15 +24,13 @@ export const GitCommitSchema = z.object({
27
24
  head: z.boolean().describe("Whether this is where the repository currently stands."),
28
25
  });
29
26
  export type GitCommit = z.infer<typeof GitCommitSchema>;
30
- // One repo's log: commits newest-first across ALL refs (branch topology is the point of a graph), plus the
31
- // checked-out branch (absent on a detached HEAD or an unborn repo).
27
+ // One repo's log: commits newest-first across all refs, not just the checked-out branch, since branch topology is the
28
+ // point of a graph.
32
29
  export const GitLogSchema = z.object({
33
30
  repo: z.string().describe("Which repository."),
34
31
  branch: z.string().optional().describe("Which branch these are from."),
35
32
  commits: z.array(GitCommitSchema).describe("The commits, newest first."),
36
- // Whether a further page exists behind this one. The daemon learns it by asking git for one commit more than
37
- // it returns, see commitLog. It is also what stops the oldest row of a page from being drawn as a ROOT
38
- // commit, which is how a truncated history used to claim it began where the page happened to stop.
33
+ // Whether older commits remain behind this page; also stops the last row from being drawn as history's root.
39
34
  hasMore: z
40
35
  .boolean()
41
36
  .describe(
@@ -45,9 +40,7 @@ export const GitLogSchema = z.object({
45
40
  export type GitLog = z.infer<typeof GitLogSchema>;
46
41
  export const GitLogQuerySchema = RepoParamSchema.extend({
47
42
  limit: z.coerce.number().int().positive().max(2000).optional().describe("How many commits to return."),
48
- // How many newer commits to step over, the page cursor. Paged rather than one big read because a large
49
- // repository's log is tens of thousands of rows, and every one of them costs a zod validation, a wire
50
- // payload and a lane computation before anything is drawn.
43
+ // Page cursor: how many newer commits to skip before returning results.
51
44
  skip: z.coerce
52
45
  .number()
53
46
  .int()
@@ -58,18 +51,13 @@ export const GitLogQuerySchema = RepoParamSchema.extend({
58
51
  "How many newer commits to step over, which is how you page further back. Paged rather than read whole, because a large repository's history is tens of thousands of rows.",
59
52
  ),
60
53
  });
61
- // Every real git repo under /work as root-relative dir ids ("root" is implicit, the /work repo itself).
54
+ // Every real git repo under /work, as root-relative dir ids; "root" is the /work repo itself, implicit as an id.
62
55
  export const GitReposSchema = z.object({
63
56
  repos: z.array(z.string()).describe('Every repository\'s id. The workspace itself is always present as "root".'),
64
57
  });
65
58
  export type GitRepos = z.infer<typeof GitReposSchema>;
66
- /* WHERE EACH WORKSPACE REPO LIVES ONLINE, one entry per repo that has a parseable remote, as the host and the
67
- * `owner/name` project it names. Separate from `repos` above rather than folded into it because that route is
68
- * on the file tree's hot path and this costs a `git remote -v` per repo; a caller that wants to recognise a
69
- * workspace repo in somebody else's list (the publisher claim does exactly that) asks for it deliberately.
70
- *
71
- * A repo with no remote, or one naming a local path, is absent rather than present-and-empty: "this repo is
72
- * nowhere online" and "this repo is at X" are different answers and only one of them can be matched against. */
59
+ // One entry per workspace repo with a parseable remote, as host and owner/name. Absent, not present-and-empty, when
60
+ // there's no remote or it points at a local path.
73
61
  export const GitRemoteRepoSchema = z.object({
74
62
  repo: z.string().describe("The workspace repository."),
75
63
  host: z.string().describe("Which forge its remote points at."),
@@ -80,31 +68,15 @@ export const GitRemoteReposSchema = z.object({
80
68
  repos: z.array(GitRemoteRepoSchema).describe("Each repository matched to the project its remote points at."),
81
69
  });
82
70
  export type GitRemoteRepos = z.infer<typeof GitRemoteReposSchema>;
83
- /* PUT ONE FILE ON THE DEFAULT BRANCH AND PUBLISH IT, write, commit that path alone, push, in one call.
84
- *
85
- * One route rather than three because the interesting states are the ones BETWEEN the steps: a file written but
86
- * not committed, or committed but not pushed, is a repo the user now has to clean up by hand, and a browser
87
- * making three requests owns that mess without being able to describe it. Here the caller gets one answer that
88
- * says how far it got.
89
- *
90
- * `message` is the caller's because the commit shows up in the user's own history and a generic subject there
91
- * is litter. */
71
+ // Writes one file to the default branch and publishes it: write, commit that path alone, push, in one call. `message`
72
+ // is the caller's, since it lands in the user's own commit history.
92
73
  export const GitPublishFileSchema = RepoParamSchema.extend({
93
74
  path: z.string().min(1).describe("Which file, relative to the repository."),
94
75
  content: z.string().describe("Its whole new contents."),
95
76
  message: z.string().min(1).describe("The commit message."),
96
77
  });
97
- /* HOW FAR THE PUBLISH GOT, in the terms the screen has to explain it in. `ok` is "the file is on the default
98
- * branch of the remote" and nothing less, the only state that makes a public read of it succeed.
99
- *
100
- * The three steps are reported SEPARATELY because every boundary between them is a state a user can be left
101
- * in and would otherwise have to discover: a file written but not committed, a commit that exists locally but
102
- * was refused by the remote for credentials. Each of those needs a different sentence and a different next
103
- * move, and one `ok: false` cannot carry either. It is also what tells the daemon whether the worktree moved
104
- * at all, which decides whether this counts as a user write on the timeline.
105
- *
106
- * `branch` and `defaultBranch` ride along so a refusal can name both sides of the mismatch rather than saying
107
- * "wrong branch" at someone who cannot see which one they are on. */
78
+ // `ok` is true only once the file is live on the default branch of the remote. `wrote`/`committed`/`pushed` mark each
79
+ // step separately, and `branch`/`defaultBranch` name a wrong-branch mismatch.
108
80
  export const GitPublishFileResultSchema = z.object({
109
81
  ok: z.boolean().describe("Whether the whole thing went through."),
110
82
  wrote: z.boolean().describe("The file was written."),
@@ -121,9 +93,8 @@ export const GitPublishFileResultSchema = z.object({
121
93
  });
122
94
  export type GitPublishFileResult = z.infer<typeof GitPublishFileResultSchema>;
123
95
  export const GitCommitDiffQuerySchema = RepoParamSchema.extend({ sha: ShaSchema.describe("Which commit.") });
124
- // A commit's changed files (vs its first parent; a root commit vs the empty tree), the graph's detail tree
125
- // renders these (line stats included) and reuses the diff UI on click. Just GitChanges: the line stats live on
126
- // GitChange now, so working-tree and commit files share one shape.
96
+ // A commit's changed files, diffed against its first parent (a root commit against the empty tree); reuses `GitChange`
97
+ // so working-tree and commit diffs share one shape.
127
98
  export const GitCommitDiffSchema = z.object({
128
99
  files: z
129
100
  .array(GitChangeSchema)
@@ -136,13 +107,8 @@ export const GitCommitFileDiffQuerySchema = RepoParamSchema.extend({
136
107
  sha: ShaSchema.describe("Which commit."),
137
108
  path: z.string().min(1).describe("Which file in it."),
138
109
  });
139
- // Git write actions from the graph's commit context menu (VSCode "Git Graph" parity). Non-destructive: branch
140
- // and tag just add a ref (HEAD + worktree untouched, no checkpoint). Sequence ops (revert / cherry-pick /
141
- // merge / rebase / drop) add or replay commits and are auto-checkpointed daemon-side; a conflict aborts and
142
- // reports `ok:false` (an expected outcome, not a throw). Checkout and reset move HEAD (reset --hard discards
143
- // the worktree), also auto-checkpointed. A `{repo, sha}` names the target commit for every commit-scoped
144
- // action; a ref name (branch/tag) is validated structurally, git enforces the rest of ref-name legality
145
- // (RefNameSchema is declared above, with the branch schemas that first use it).
110
+ // Git write actions from the graph's context menu. Branch/tag only add a ref (no checkpoint); sequence ops, checkout,
111
+ // and reset are auto-checkpointed, and a conflict returns `ok:false` instead of throwing.
146
112
  export const GitBranchCreateSchema = RepoParamSchema.extend({
147
113
  sha: ShaSchema.describe("Which commit to start it at."),
148
114
  name: RefNameSchema.describe("The new branch's name."),
@@ -152,13 +118,12 @@ export const GitTagCreateSchema = RepoParamSchema.extend({
152
118
  name: RefNameSchema.describe("The tag's name."),
153
119
  });
154
120
  export const GitCheckoutSchema = RepoParamSchema.extend({ ref: RefNameSchema.describe("Where to switch to: a branch, a tag, or a commit.") });
155
- // Deleting a tag locally, and, when a remote is named, on that remote too. The remote half is best-effort: a
156
- // tag that was never pushed must not make deleting the local one report a failure.
121
+ // Deletes a tag locally, and on the named remote too; a tag never pushed there does not fail the local delete.
157
122
  export const GitTagDeleteSchema = RepoParamSchema.extend({
158
123
  name: RefNameSchema.describe("Which tag."),
159
124
  remote: RefNameSchema.optional().describe("Also delete it there. Leave it out to remove it locally only."),
160
125
  });
161
- // Publishing ONE tag, named explicitly so it never drags every other unpushed tag along with it.
126
+ // Pushes only the named tag, never every unpushed tag.
162
127
  export const GitTagPushSchema = RepoParamSchema.extend({
163
128
  name: RefNameSchema.describe("Which tag."),
164
129
  remote: RefNameSchema.describe("Which remote to send it to."),
@@ -182,21 +147,13 @@ export const GitActionResultSchema = z.object({
182
147
  ),
183
148
  });
184
149
  export type GitActionResult = z.infer<typeof GitActionResultSchema>;
185
- /* THE STASH, work set aside without committing it, and the one part of a repository's real state the workspace
186
- * used to be blind to entirely. A `git stash` in a terminal made the agent's (or the user's) work vanish from
187
- * every surface here.
188
- *
189
- * An entry IS a commit: it has a sha, a time, a diff, and parents (HEAD when it was taken, the index, and the
190
- * untracked tree when `-u` was used). What it does not have is a place in any branch's ancestry, so the graph
191
- * hangs it off the commit it was taken on rather than flowing it down a lane.
192
- *
193
- * `ref` (`stash@{0}`) is the handle every verb takes, and it is POSITIONAL, dropping one renumbers the rest, so
194
- * a caller must re-read the list after any mutation rather than holding an index across it. */
150
+ // A stash entry is a commit (sha, time, diff, parents) with no place in any branch's ancestry. `ref` (`stash@{0}`) is
151
+ // positional: dropping one renumbers the rest, so re-read the list after any mutation.
195
152
  export const StashEntrySchema = z.object({
196
153
  ref: z.string().describe("How to address it, which applying and dropping take."),
197
154
  sha: z.string().describe("The commit behind it, because a stash entry is a commit."),
198
155
  short: z.string().describe("The abbreviated form, for showing."),
199
- // git's own `WIP on <branch>: …` scaffolding stripped, leaving what a reader would call the message.
156
+ // Git's `WIP on <branch>: ` prefix is stripped from the raw stash message.
200
157
  subject: z.string().describe("What it was set aside as, with git's own scaffolding stripped off."),
201
158
  branch: z.string().optional().describe("Which branch it was set aside from."),
202
159
  at: z.number().describe("When, in milliseconds."),
@@ -207,31 +164,21 @@ export const StashListSchema = z.object({
207
164
  repo: z.string().describe("Which repository."),
208
165
  stashes: z.array(StashEntrySchema).describe("What is set aside, newest first."),
209
166
  });
210
- // A stash ref as git numbers them. Constrained rather than free text because it reaches a shell argument.
167
+ // A stash ref as git numbers it (`stash@{0}`); constrained because it reaches a shell argument.
211
168
  const StashRefSchema = z.string().regex(/^stash@\{\d{1,4}\}$/);
212
169
  export const StashPushSchema = RepoParamSchema.extend({
213
170
  message: z.string().max(500).optional().describe("What to call it, so you know what it was later."),
214
171
  includeUntracked: z.boolean().optional().describe("Also set aside files git is not yet tracking, which are otherwise left where they are."),
215
172
  });
216
- // `pop` drops the entry on a clean apply; `apply` keeps it. Git's own distinction, and both are things people
217
- // mean: pop is "resume this", apply is "try this here too".
173
+ // `pop` drops the entry after a clean apply; `apply` keeps it, git's own resume-vs-try-again distinction.
218
174
  export const StashApplySchema = RepoParamSchema.extend({
219
175
  ref: StashRefSchema.describe("Which entry."),
220
176
  pop: z.boolean().optional().describe("Remove it from the stash once it has been applied cleanly."),
221
177
  });
222
178
  export const StashRefParamSchema = RepoParamSchema.extend({ ref: StashRefSchema.describe("Which entry.") });
223
179
  export const StashDiffQuerySchema = RepoParamSchema.extend({ ref: StashRefSchema.describe("Which entry.") });
224
- /* THE LAST THING THAT MOVED THIS BRANCH, and whether it can be walked back.
225
- *
226
- * Complements the Checkpoints timeline rather than duplicating it: a checkpoint restores the WORKING TREE, this
227
- * moves the BRANCH. After a bad rebase the files are often already right and only the ref is wrong, and
228
- * restoring a whole worktree snapshot to fix that would drag every unrelated edit since back with it.
229
- *
230
- * `description` is git's own reflog subject, so the button can name what it will undo in git's words rather than
231
- * a guess. `previousSha` is where the branch returns to, and it doubles as the CONCURRENCY TOKEN: the undo is
232
- * refused when the repository has moved since this was read, so an undo prepared against a stale view cannot
233
- * land somewhere the user never looked at. Absent = nothing to undo (a fresh branch, a detached HEAD, or a
234
- * halted operation, which ends by aborting rather than by moving the branch). */
180
+ // The last ref move on this branch, and whether it can be undone; complements Checkpoints, which restores the working
181
+ // tree instead. `previousSha` doubles as a concurrency token: refused if the branch moved since it was read.
235
182
  export const UndoKindSchema = z.enum(["commit", "amend", "merge", "rebase", "cherry-pick", "revert", "reset", "pull", "other"]);
236
183
  export type UndoKind = z.infer<typeof UndoKindSchema>;
237
184
  export const UndoableActionSchema = z.object({
@@ -244,8 +191,7 @@ export const UndoableActionSchema = z.object({
244
191
  .describe(
245
192
  "Where it would go back to. Send this with the undo as proof you looked, so one prepared against a view that has since moved is refused rather than landing somewhere unexamined.",
246
193
  ),
247
- // The action rewrote FILES as well as the ref, so undoing it faithfully needs a hard reset. The UI uses this
248
- // to decide whether it has to warn about losing work.
194
+ // True when undoing needs a hard reset, not just a ref move.
249
195
  changesWorkingTree: z
250
196
  .boolean()
251
197
  .describe("Undoing would rewrite files as well as moving the branch, so anything offering it should warn about losing work."),
@@ -256,7 +202,7 @@ export const GitUndoStateSchema = z.object({
256
202
  action: UndoableActionSchema.optional().describe("What undoing would reverse. Absent means there is nothing to go back from."),
257
203
  });
258
204
  export type GitUndoState = z.infer<typeof GitUndoStateSchema>;
259
- // `previousSha` is the position the caller was shown; `discardChanges` picks a hard reset over a soft one.
205
+ // `previousSha` must match what the caller was shown; `discardChanges` picks a hard reset over a soft one.
260
206
  export const GitUndoSchema = RepoParamSchema.extend({
261
207
  previousSha: ShaSchema.describe(
262
208
  "Where to go back to, from the matching read. It is also proof you looked: one prepared against a stale view is refused.",