@intentic/sandbox-contract 1.248.0 → 1.249.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (877) hide show
  1. package/README.md +18 -15
  2. package/dist/chores/chores.d.ts.map +1 -1
  3. package/dist/chores/chores.js.map +1 -1
  4. package/dist/chores/digest.d.ts.map +1 -1
  5. package/dist/chores/digest.js.map +1 -1
  6. package/dist/chores/extension-update.d.ts.map +1 -1
  7. package/dist/chores/extension-update.js.map +1 -1
  8. package/dist/chores/fix-deps.d.ts.map +1 -1
  9. package/dist/chores/fix-deps.js.map +1 -1
  10. package/dist/chores/index.d.ts +2 -2
  11. package/dist/chores/index.d.ts.map +1 -1
  12. package/dist/chores/index.js +1 -1
  13. package/dist/chores/index.js.map +1 -1
  14. package/dist/chores/probes.d.ts.map +1 -1
  15. package/dist/chores/probes.js.map +1 -1
  16. package/dist/chores/prompt.d.ts.map +1 -1
  17. package/dist/chores/prompt.js.map +1 -1
  18. package/dist/chores/stack.d.ts.map +1 -1
  19. package/dist/chores/stack.js.map +1 -1
  20. package/dist/chores/verdict.d.ts +7 -1
  21. package/dist/chores/verdict.d.ts.map +1 -1
  22. package/dist/chores/verdict.js +8 -0
  23. package/dist/chores/verdict.js.map +1 -1
  24. package/dist/contracts/accounts.contract.d.ts.map +1 -1
  25. package/dist/contracts/accounts.contract.js.map +1 -1
  26. package/dist/contracts/activity.contract.d.ts +1 -0
  27. package/dist/contracts/activity.contract.d.ts.map +1 -1
  28. package/dist/contracts/agent.contract.d.ts +12 -205
  29. package/dist/contracts/agent.contract.d.ts.map +1 -1
  30. package/dist/contracts/agent.contract.js +2 -1
  31. package/dist/contracts/agent.contract.js.map +1 -1
  32. package/dist/contracts/agents.contract.d.ts +228 -54
  33. package/dist/contracts/agents.contract.d.ts.map +1 -1
  34. package/dist/contracts/agents.contract.js +11 -2
  35. package/dist/contracts/agents.contract.js.map +1 -1
  36. package/dist/contracts/automations.contract.d.ts +35 -17
  37. package/dist/contracts/automations.contract.d.ts.map +1 -1
  38. package/dist/contracts/automations.contract.js +10 -1
  39. package/dist/contracts/automations.contract.js.map +1 -1
  40. package/dist/contracts/capabilities.contract.d.ts +0 -12
  41. package/dist/contracts/capabilities.contract.d.ts.map +1 -1
  42. package/dist/contracts/capabilities.contract.js +1 -1
  43. package/dist/contracts/capabilities.contract.js.map +1 -1
  44. package/dist/contracts/chores.contract.d.ts.map +1 -1
  45. package/dist/contracts/chores.contract.js.map +1 -1
  46. package/dist/contracts/ci.contract.d.ts +9 -0
  47. package/dist/contracts/ci.contract.d.ts.map +1 -1
  48. package/dist/contracts/endpoints.contract.d.ts.map +1 -1
  49. package/dist/contracts/endpoints.contract.js.map +1 -1
  50. package/dist/contracts/exit.contract.d.ts.map +1 -1
  51. package/dist/contracts/exit.contract.js +1 -1
  52. package/dist/contracts/exit.contract.js.map +1 -1
  53. package/dist/contracts/extensions.contract.d.ts.map +1 -1
  54. package/dist/contracts/extensions.contract.js.map +1 -1
  55. package/dist/contracts/git.contract.d.ts +45 -6
  56. package/dist/contracts/git.contract.d.ts.map +1 -1
  57. package/dist/contracts/git.contract.js +9 -9
  58. package/dist/contracts/git.contract.js.map +1 -1
  59. package/dist/contracts/host.contract.d.ts +2 -0
  60. package/dist/contracts/host.contract.d.ts.map +1 -1
  61. package/dist/contracts/host.contract.js.map +1 -1
  62. package/dist/contracts/intentic.contract.js +1 -1
  63. package/dist/contracts/intentic.contract.js.map +1 -1
  64. package/dist/contracts/logs.contract.d.ts.map +1 -1
  65. package/dist/contracts/logs.contract.js.map +1 -1
  66. package/dist/contracts/loops.contract.d.ts.map +1 -1
  67. package/dist/contracts/loops.contract.js.map +1 -1
  68. package/dist/contracts/personas.contract.d.ts +1 -0
  69. package/dist/contracts/personas.contract.d.ts.map +1 -1
  70. package/dist/contracts/personas.contract.js +1 -1
  71. package/dist/contracts/personas.contract.js.map +1 -1
  72. package/dist/contracts/providers.contract.d.ts.map +1 -1
  73. package/dist/contracts/providers.contract.js.map +1 -1
  74. package/dist/contracts/runner.contract.d.ts +97 -171
  75. package/dist/contracts/runner.contract.d.ts.map +1 -1
  76. package/dist/contracts/runner.contract.js +2 -2
  77. package/dist/contracts/runner.contract.js.map +1 -1
  78. package/dist/contracts/safety.contract.d.ts.map +1 -1
  79. package/dist/contracts/safety.contract.js +1 -1
  80. package/dist/contracts/safety.contract.js.map +1 -1
  81. package/dist/contracts/secrets.contract.d.ts.map +1 -1
  82. package/dist/contracts/secrets.contract.js.map +1 -1
  83. package/dist/contracts/sessions.contract.d.ts +2 -41
  84. package/dist/contracts/sessions.contract.d.ts.map +1 -1
  85. package/dist/contracts/sessions.contract.js +1 -1
  86. package/dist/contracts/sessions.contract.js.map +1 -1
  87. package/dist/contracts/settings.contract.d.ts +8 -18
  88. package/dist/contracts/settings.contract.d.ts.map +1 -1
  89. package/dist/contracts/settings.contract.js.map +1 -1
  90. package/dist/contracts/share.contract.d.ts.map +1 -1
  91. package/dist/contracts/share.contract.js.map +1 -1
  92. package/dist/contracts/skills.contract.d.ts.map +1 -1
  93. package/dist/contracts/skills.contract.js.map +1 -1
  94. package/dist/contracts/system.contract.d.ts +49 -73
  95. package/dist/contracts/system.contract.d.ts.map +1 -1
  96. package/dist/contracts/system.contract.js +12 -2
  97. package/dist/contracts/system.contract.js.map +1 -1
  98. package/dist/contracts/usage.contract.d.ts.map +1 -1
  99. package/dist/contracts/usage.contract.js.map +1 -1
  100. package/dist/contracts/vpn.contract.d.ts.map +1 -1
  101. package/dist/contracts/vpn.contract.js +1 -1
  102. package/dist/contracts/vpn.contract.js.map +1 -1
  103. package/dist/contracts/webext.contract.d.ts.map +1 -1
  104. package/dist/contracts/webext.contract.js.map +1 -1
  105. package/dist/contracts/workflows.contract.d.ts +7 -6
  106. package/dist/contracts/workflows.contract.d.ts.map +1 -1
  107. package/dist/contracts/workflows.contract.js +12 -3
  108. package/dist/contracts/workflows.contract.js.map +1 -1
  109. package/dist/contracts/workspace.contract.d.ts.map +1 -1
  110. package/dist/contracts/workspace.contract.js.map +1 -1
  111. package/dist/events/agent-events.d.ts +1237 -0
  112. package/dist/events/agent-events.d.ts.map +1 -0
  113. package/dist/events/agent-events.js +226 -0
  114. package/dist/events/agent-events.js.map +1 -0
  115. package/dist/events/cards.d.ts +404 -0
  116. package/dist/events/cards.d.ts.map +1 -0
  117. package/dist/events/cards.js +179 -0
  118. package/dist/events/cards.js.map +1 -0
  119. package/dist/events/resume.d.ts +23 -0
  120. package/dist/events/resume.d.ts.map +1 -0
  121. package/dist/events/resume.js +31 -0
  122. package/dist/events/resume.js.map +1 -0
  123. package/dist/events/system-events.d.ts +615 -0
  124. package/dist/events/system-events.d.ts.map +1 -0
  125. package/dist/events/system-events.js +64 -0
  126. package/dist/events/system-events.js.map +1 -0
  127. package/dist/events/transcript.d.ts +1755 -0
  128. package/dist/events/transcript.d.ts.map +1 -0
  129. package/dist/events/transcript.js +205 -0
  130. package/dist/events/transcript.js.map +1 -0
  131. package/dist/ids/conversation-ids.d.ts +8 -0
  132. package/dist/ids/conversation-ids.d.ts.map +1 -0
  133. package/dist/{conversation-ids.js → ids/conversation-ids.js} +13 -0
  134. package/dist/ids/conversation-ids.js.map +1 -0
  135. package/dist/ids/hostnames.d.ts.map +1 -0
  136. package/dist/ids/hostnames.js.map +1 -0
  137. package/dist/ids/session-names.d.ts.map +1 -0
  138. package/dist/ids/session-names.js.map +1 -0
  139. package/dist/ids/share-paths.d.ts.map +1 -0
  140. package/dist/ids/share-paths.js.map +1 -0
  141. package/dist/{tunnel-ids.d.ts → ids/tunnel-ids.d.ts} +1 -0
  142. package/dist/ids/tunnel-ids.d.ts.map +1 -0
  143. package/dist/{tunnel-ids.js → ids/tunnel-ids.js} +1 -0
  144. package/dist/ids/tunnel-ids.js.map +1 -0
  145. package/dist/index.d.ts +423 -450
  146. package/dist/index.d.ts.map +1 -1
  147. package/dist/index.js +54 -46
  148. package/dist/index.js.map +1 -1
  149. package/dist/{agent-catalog.d.ts → models/agent-catalog.d.ts} +2 -2
  150. package/dist/models/agent-catalog.d.ts.map +1 -0
  151. package/dist/models/agent-catalog.js.map +1 -0
  152. package/dist/models/agent-runtimes.d.ts.map +1 -0
  153. package/dist/models/agent-runtimes.js.map +1 -0
  154. package/dist/{fast-tier.d.ts → models/fast-tier.d.ts} +1 -1
  155. package/dist/models/fast-tier.d.ts.map +1 -0
  156. package/dist/models/fast-tier.js.map +1 -0
  157. package/dist/models/model-order.d.ts.map +1 -0
  158. package/dist/models/model-order.js.map +1 -0
  159. package/dist/{model-pins.d.ts → models/model-pins.d.ts} +1 -1
  160. package/dist/models/model-pins.d.ts.map +1 -0
  161. package/dist/models/model-pins.js.map +1 -0
  162. package/dist/{model-roles.d.ts → models/model-roles.d.ts} +0 -33
  163. package/dist/models/model-roles.d.ts.map +1 -0
  164. package/dist/{model-roles.js → models/model-roles.js} +0 -35
  165. package/dist/models/model-roles.js.map +1 -0
  166. package/dist/{plan-pools.d.ts → models/plan-pools.d.ts} +1 -1
  167. package/dist/models/plan-pools.d.ts.map +1 -0
  168. package/dist/models/plan-pools.js.map +1 -0
  169. package/dist/models/prompt-complexity.d.ts.map +1 -0
  170. package/dist/models/prompt-complexity.js.map +1 -0
  171. package/dist/models/provider-specs.d.ts.map +1 -0
  172. package/dist/models/provider-specs.js.map +1 -0
  173. package/dist/policy/approvals-execution.d.ts.map +1 -0
  174. package/dist/policy/approvals-execution.js.map +1 -0
  175. package/dist/{batch-runs.d.ts → policy/batch-runs.d.ts} +5 -1
  176. package/dist/policy/batch-runs.d.ts.map +1 -0
  177. package/dist/{batch-runs.js → policy/batch-runs.js} +10 -7
  178. package/dist/policy/batch-runs.js.map +1 -0
  179. package/dist/policy/capability-env.d.ts.map +1 -0
  180. package/dist/policy/capability-env.js.map +1 -0
  181. package/dist/policy/capability-secrets.d.ts.map +1 -0
  182. package/dist/policy/capability-secrets.js.map +1 -0
  183. package/dist/{card-status.d.ts → policy/card-status.d.ts} +2 -2
  184. package/dist/policy/card-status.d.ts.map +1 -0
  185. package/dist/{card-status.js → policy/card-status.js} +1 -5
  186. package/dist/policy/card-status.js.map +1 -0
  187. package/dist/{command-classes.d.ts → policy/command-classes.d.ts} +6 -2
  188. package/dist/policy/command-classes.d.ts.map +1 -0
  189. package/dist/{command-classes.js → policy/command-classes.js} +48 -11
  190. package/dist/policy/command-classes.js.map +1 -0
  191. package/dist/{command-run.d.ts → policy/command-run.d.ts} +1 -1
  192. package/dist/policy/command-run.d.ts.map +1 -0
  193. package/dist/policy/command-run.js.map +1 -0
  194. package/dist/policy/control-scopes.d.ts +16 -0
  195. package/dist/policy/control-scopes.d.ts.map +1 -0
  196. package/dist/policy/control-scopes.js +26 -0
  197. package/dist/policy/control-scopes.js.map +1 -0
  198. package/dist/policy/credential-material.d.ts.map +1 -0
  199. package/dist/policy/credential-material.js.map +1 -0
  200. package/dist/policy/needs-action.d.ts.map +1 -0
  201. package/dist/policy/needs-action.js.map +1 -0
  202. package/dist/policy/output-fields.d.ts.map +1 -0
  203. package/dist/policy/output-fields.js.map +1 -0
  204. package/dist/policy/overlay-lint.d.ts.map +1 -0
  205. package/dist/policy/overlay-lint.js.map +1 -0
  206. package/dist/policy/owner-ticket.d.ts.map +1 -0
  207. package/dist/{owner-ticket.js → policy/owner-ticket.js} +1 -1
  208. package/dist/policy/owner-ticket.js.map +1 -0
  209. package/dist/{safety-policy.d.ts → policy/safety-policy.d.ts} +6 -5
  210. package/dist/policy/safety-policy.d.ts.map +1 -0
  211. package/dist/{safety-policy.js → policy/safety-policy.js} +12 -12
  212. package/dist/policy/safety-policy.js.map +1 -0
  213. package/dist/policy/search-globs.d.ts.map +1 -0
  214. package/dist/policy/search-globs.js.map +1 -0
  215. package/dist/protocol/container-requirements.d.ts +20 -0
  216. package/dist/protocol/container-requirements.d.ts.map +1 -0
  217. package/dist/protocol/container-requirements.js +23 -0
  218. package/dist/protocol/container-requirements.js.map +1 -0
  219. package/dist/{host-protocol.d.ts → protocol/host-protocol.d.ts} +1 -0
  220. package/dist/protocol/host-protocol.d.ts.map +1 -0
  221. package/dist/{host-protocol.js → protocol/host-protocol.js} +1 -0
  222. package/dist/protocol/host-protocol.js.map +1 -0
  223. package/dist/protocol/ingress-contract.d.ts.map +1 -0
  224. package/dist/{ingress-contract.js → protocol/ingress-contract.js} +1 -1
  225. package/dist/protocol/ingress-contract.js.map +1 -0
  226. package/dist/protocol/ingress-protocol.d.ts.map +1 -0
  227. package/dist/protocol/ingress-protocol.js.map +1 -0
  228. package/dist/protocol/listener-protocol.d.ts.map +1 -0
  229. package/dist/{listener-protocol.js → protocol/listener-protocol.js} +1 -1
  230. package/dist/protocol/listener-protocol.js.map +1 -0
  231. package/dist/{peer-dial.d.ts → protocol/peer-dial.d.ts} +4 -1
  232. package/dist/protocol/peer-dial.d.ts.map +1 -0
  233. package/dist/{peer-dial.js → protocol/peer-dial.js} +51 -10
  234. package/dist/protocol/peer-dial.js.map +1 -0
  235. package/dist/protocol/peer-mcp-server.d.ts.map +1 -0
  236. package/dist/protocol/peer-mcp-server.js.map +1 -0
  237. package/dist/protocol/request-id.d.ts.map +1 -0
  238. package/dist/protocol/request-id.js.map +1 -0
  239. package/dist/protocol/routes.d.ts.map +1 -0
  240. package/dist/protocol/routes.js.map +1 -0
  241. package/dist/{runner-protocol.d.ts → protocol/runner-protocol.d.ts} +1 -0
  242. package/dist/protocol/runner-protocol.d.ts.map +1 -0
  243. package/dist/{runner-protocol.js → protocol/runner-protocol.js} +2 -1
  244. package/dist/protocol/runner-protocol.js.map +1 -0
  245. package/dist/protocol/sse.d.ts.map +1 -0
  246. package/dist/protocol/sse.js.map +1 -0
  247. package/dist/{terminal-protocol.d.ts → protocol/terminal-protocol.d.ts} +1 -3
  248. package/dist/protocol/terminal-protocol.d.ts.map +1 -0
  249. package/dist/protocol/terminal-protocol.js.map +1 -0
  250. package/dist/protocol/webext-links.d.ts.map +1 -0
  251. package/dist/protocol/webext-links.js.map +1 -0
  252. package/dist/{webext-protocol.d.ts → protocol/webext-protocol.d.ts} +1 -0
  253. package/dist/protocol/webext-protocol.d.ts.map +1 -0
  254. package/dist/{webext-protocol.js → protocol/webext-protocol.js} +1 -0
  255. package/dist/protocol/webext-protocol.js.map +1 -0
  256. package/dist/schemas/activity.d.ts +2 -0
  257. package/dist/schemas/activity.d.ts.map +1 -1
  258. package/dist/schemas/activity.js +4 -0
  259. package/dist/schemas/activity.js.map +1 -1
  260. package/dist/schemas/agent.d.ts +16 -4
  261. package/dist/schemas/agent.d.ts.map +1 -1
  262. package/dist/schemas/agent.js +21 -4
  263. package/dist/schemas/agent.js.map +1 -1
  264. package/dist/schemas/agents.d.ts +17 -4
  265. package/dist/schemas/agents.d.ts.map +1 -1
  266. package/dist/schemas/agents.js +15 -4
  267. package/dist/schemas/agents.js.map +1 -1
  268. package/dist/schemas/approvals.d.ts.map +1 -1
  269. package/dist/schemas/approvals.js.map +1 -1
  270. package/dist/schemas/automations.d.ts +54 -28
  271. package/dist/schemas/automations.d.ts.map +1 -1
  272. package/dist/schemas/automations.js +26 -8
  273. package/dist/schemas/automations.js.map +1 -1
  274. package/dist/schemas/capabilities.d.ts +0 -8
  275. package/dist/schemas/capabilities.d.ts.map +1 -1
  276. package/dist/schemas/capabilities.js +0 -4
  277. package/dist/schemas/capabilities.js.map +1 -1
  278. package/dist/schemas/ci.d.ts +10 -0
  279. package/dist/schemas/ci.d.ts.map +1 -1
  280. package/dist/schemas/ci.js +9 -1
  281. package/dist/schemas/ci.js.map +1 -1
  282. package/dist/schemas/codebase-health.d.ts.map +1 -1
  283. package/dist/schemas/codebase-health.js.map +1 -1
  284. package/dist/schemas/devices.d.ts +90 -0
  285. package/dist/schemas/devices.d.ts.map +1 -1
  286. package/dist/schemas/devices.js +10 -1
  287. package/dist/schemas/devices.js.map +1 -1
  288. package/dist/schemas/engines.d.ts.map +1 -1
  289. package/dist/schemas/engines.js.map +1 -1
  290. package/dist/schemas/environment.d.ts.map +1 -1
  291. package/dist/schemas/environment.js.map +1 -1
  292. package/dist/schemas/exit.d.ts.map +1 -1
  293. package/dist/schemas/exit.js.map +1 -1
  294. package/dist/schemas/extension-updates.d.ts.map +1 -1
  295. package/dist/schemas/extension-updates.js.map +1 -1
  296. package/dist/schemas/git-history.d.ts.map +1 -1
  297. package/dist/schemas/git-history.js.map +1 -1
  298. package/dist/schemas/git.d.ts +80 -16
  299. package/dist/schemas/git.d.ts.map +1 -1
  300. package/dist/schemas/git.js +37 -25
  301. package/dist/schemas/git.js.map +1 -1
  302. package/dist/schemas/history.d.ts.map +1 -1
  303. package/dist/schemas/history.js.map +1 -1
  304. package/dist/schemas/hosts.d.ts.map +1 -1
  305. package/dist/schemas/hosts.js.map +1 -1
  306. package/dist/schemas/inventory.d.ts.map +1 -1
  307. package/dist/schemas/inventory.js.map +1 -1
  308. package/dist/schemas/issues.d.ts +0 -1
  309. package/dist/schemas/issues.d.ts.map +1 -1
  310. package/dist/schemas/issues.js +0 -1
  311. package/dist/schemas/issues.js.map +1 -1
  312. package/dist/schemas/logs.d.ts.map +1 -1
  313. package/dist/schemas/logs.js.map +1 -1
  314. package/dist/schemas/loops.d.ts.map +1 -1
  315. package/dist/schemas/loops.js +1 -1
  316. package/dist/schemas/loops.js.map +1 -1
  317. package/dist/schemas/maintenance.d.ts.map +1 -1
  318. package/dist/schemas/maintenance.js.map +1 -1
  319. package/dist/schemas/marketplace.d.ts +0 -4
  320. package/dist/schemas/marketplace.d.ts.map +1 -1
  321. package/dist/schemas/panels.d.ts.map +1 -1
  322. package/dist/schemas/panels.js.map +1 -1
  323. package/dist/schemas/personas.d.ts +2 -1
  324. package/dist/schemas/personas.d.ts.map +1 -1
  325. package/dist/schemas/personas.js +6 -2
  326. package/dist/schemas/personas.js.map +1 -1
  327. package/dist/schemas/plan-limits.d.ts +2 -4
  328. package/dist/schemas/plan-limits.d.ts.map +1 -1
  329. package/dist/schemas/plan-limits.js +5 -8
  330. package/dist/schemas/plan-limits.js.map +1 -1
  331. package/dist/schemas/ports.d.ts.map +1 -1
  332. package/dist/schemas/ports.js.map +1 -1
  333. package/dist/schemas/provider-oauth.d.ts.map +1 -1
  334. package/dist/schemas/provider-oauth.js.map +1 -1
  335. package/dist/schemas/provider-subscriptions.d.ts +1 -1
  336. package/dist/schemas/provider-subscriptions.d.ts.map +1 -1
  337. package/dist/schemas/provider-subscriptions.js +1 -1
  338. package/dist/schemas/provider-subscriptions.js.map +1 -1
  339. package/dist/schemas/public.d.ts.map +1 -1
  340. package/dist/schemas/public.js.map +1 -1
  341. package/dist/schemas/push.d.ts.map +1 -1
  342. package/dist/schemas/push.js.map +1 -1
  343. package/dist/schemas/secrets.d.ts.map +1 -1
  344. package/dist/schemas/secrets.js.map +1 -1
  345. package/dist/schemas/settings.d.ts +6 -9
  346. package/dist/schemas/settings.d.ts.map +1 -1
  347. package/dist/schemas/settings.js +16 -5
  348. package/dist/schemas/settings.js.map +1 -1
  349. package/dist/schemas/share.d.ts.map +1 -1
  350. package/dist/schemas/share.js.map +1 -1
  351. package/dist/schemas/shared.d.ts +4 -0
  352. package/dist/schemas/shared.d.ts.map +1 -1
  353. package/dist/schemas/shared.js +3 -0
  354. package/dist/schemas/shared.js.map +1 -1
  355. package/dist/schemas/system.d.ts +6 -0
  356. package/dist/schemas/system.d.ts.map +1 -1
  357. package/dist/schemas/system.js +10 -0
  358. package/dist/schemas/system.js.map +1 -1
  359. package/dist/schemas/terminal.d.ts.map +1 -1
  360. package/dist/schemas/terminal.js.map +1 -1
  361. package/dist/schemas/usage.d.ts.map +1 -1
  362. package/dist/schemas/usage.js.map +1 -1
  363. package/dist/schemas/vpn.d.ts.map +1 -1
  364. package/dist/schemas/vpn.js.map +1 -1
  365. package/dist/schemas/webext.d.ts.map +1 -1
  366. package/dist/schemas/webext.js.map +1 -1
  367. package/dist/schemas/workflows.d.ts +66 -9
  368. package/dist/schemas/workflows.d.ts.map +1 -1
  369. package/dist/schemas/workflows.js +6 -5
  370. package/dist/schemas/workflows.js.map +1 -1
  371. package/dist/schemas/workspace-repos.d.ts.map +1 -1
  372. package/dist/schemas/workspace-repos.js.map +1 -1
  373. package/dist/schemas/workspace-search.d.ts.map +1 -1
  374. package/dist/schemas/workspace-search.js.map +1 -1
  375. package/dist/schemas/workspace-setup.d.ts.map +1 -1
  376. package/dist/schemas/workspace-setup.js.map +1 -1
  377. package/dist/schemas/workspace-tree.d.ts.map +1 -1
  378. package/dist/schemas/workspace-tree.js.map +1 -1
  379. package/dist/state/arrival.d.ts.map +1 -0
  380. package/dist/{arrival.js → state/arrival.js} +1 -1
  381. package/dist/state/arrival.js.map +1 -0
  382. package/dist/state/contract-lock.d.ts.map +1 -0
  383. package/dist/{contract-lock.js → state/contract-lock.js} +1 -1
  384. package/dist/state/contract-lock.js.map +1 -0
  385. package/dist/{definition.d.ts → state/definition.d.ts} +21 -17
  386. package/dist/state/definition.d.ts.map +1 -0
  387. package/dist/{definition.js → state/definition.js} +4 -4
  388. package/dist/state/definition.js.map +1 -0
  389. package/dist/state/history-state.d.ts.map +1 -0
  390. package/dist/{history-state.js → state/history-state.js} +1 -0
  391. package/dist/state/history-state.js.map +1 -0
  392. package/dist/state/runtime-state.d.ts.map +1 -0
  393. package/dist/state/runtime-state.js.map +1 -0
  394. package/dist/state/starter.d.ts.map +1 -0
  395. package/dist/state/starter.js.map +1 -0
  396. package/dist/state/state-portability.d.ts.map +1 -0
  397. package/dist/state/state-portability.js.map +1 -0
  398. package/dist/state/versions.d.ts.map +1 -0
  399. package/dist/state/versions.js.map +1 -0
  400. package/dist/{workspace-state.d.ts → state/workspace-state.d.ts} +8 -0
  401. package/dist/state/workspace-state.d.ts.map +1 -0
  402. package/dist/{workspace-state.js → state/workspace-state.js} +25 -0
  403. package/dist/state/workspace-state.js.map +1 -0
  404. package/dist/{documents.d.ts → text/documents.d.ts} +1 -1
  405. package/dist/text/documents.d.ts.map +1 -0
  406. package/dist/{documents.js → text/documents.js} +1 -1
  407. package/dist/text/documents.js.map +1 -0
  408. package/dist/text/embed.d.ts.map +1 -0
  409. package/dist/text/embed.js.map +1 -0
  410. package/dist/text/mentions.d.ts.map +1 -0
  411. package/dist/text/mentions.js.map +1 -0
  412. package/dist/text/model-answer.d.ts +3 -0
  413. package/dist/text/model-answer.d.ts.map +1 -0
  414. package/dist/text/model-answer.js +3 -0
  415. package/dist/text/model-answer.js.map +1 -0
  416. package/dist/text/path-refs.d.ts.map +1 -0
  417. package/dist/text/path-refs.js.map +1 -0
  418. package/dist/{shell-regions.d.ts → text/shell-regions.d.ts} +1 -1
  419. package/dist/text/shell-regions.d.ts.map +1 -0
  420. package/dist/text/shell-regions.js.map +1 -0
  421. package/dist/text/title.d.ts.map +1 -0
  422. package/dist/text/title.js.map +1 -0
  423. package/dist/{transcript-fold.d.ts → text/transcript-fold.d.ts} +2 -1
  424. package/dist/text/transcript-fold.d.ts.map +1 -0
  425. package/dist/{transcript-fold.js → text/transcript-fold.js} +2 -16
  426. package/dist/text/transcript-fold.js.map +1 -0
  427. package/dist/text/whisper.d.ts +3 -0
  428. package/dist/text/whisper.d.ts.map +1 -0
  429. package/dist/text/whisper.js +11 -0
  430. package/dist/text/whisper.js.map +1 -0
  431. package/dist/{workflow-faults.d.ts → text/workflow-faults.d.ts} +1 -1
  432. package/dist/text/workflow-faults.d.ts.map +1 -0
  433. package/dist/{workflow-faults.js → text/workflow-faults.js} +1 -1
  434. package/dist/text/workflow-faults.js.map +1 -0
  435. package/package.json +70 -70
  436. package/src/chores/chores.test.ts +4 -10
  437. package/src/chores/chores.ts +148 -392
  438. package/src/chores/digest.ts +8 -28
  439. package/src/chores/extension-update.ts +3 -8
  440. package/src/chores/fix-deps.ts +4 -18
  441. package/src/chores/index.ts +2 -2
  442. package/src/chores/probes.test.ts +7 -43
  443. package/src/chores/probes.ts +62 -167
  444. package/src/chores/prompt.ts +10 -34
  445. package/src/chores/stack.test.ts +6 -45
  446. package/src/chores/stack.ts +27 -118
  447. package/src/chores/verdict.test.ts +101 -80
  448. package/src/chores/verdict.ts +54 -99
  449. package/src/contracts/accounts.contract.ts +4 -19
  450. package/src/contracts/agent.contract.ts +7 -22
  451. package/src/contracts/agents.contract.ts +25 -71
  452. package/src/contracts/automations.contract.ts +14 -30
  453. package/src/contracts/capabilities.contract.ts +8 -35
  454. package/src/contracts/chores.contract.ts +4 -15
  455. package/src/contracts/endpoints.contract.ts +5 -22
  456. package/src/contracts/exit.contract.ts +7 -30
  457. package/src/contracts/extensions.contract.ts +8 -30
  458. package/src/contracts/git.contract.ts +25 -49
  459. package/src/contracts/host.contract.ts +9 -44
  460. package/src/contracts/intentic.contract.ts +1 -1
  461. package/src/contracts/logs.contract.ts +3 -13
  462. package/src/contracts/loops.contract.ts +9 -40
  463. package/src/contracts/personas.contract.ts +10 -35
  464. package/src/contracts/providers.contract.ts +4 -17
  465. package/src/contracts/runner.contract.ts +12 -39
  466. package/src/contracts/safety.contract.ts +5 -14
  467. package/src/contracts/secrets.contract.ts +4 -22
  468. package/src/contracts/sessions.contract.ts +1 -1
  469. package/src/contracts/settings.contract.ts +4 -10
  470. package/src/contracts/share.contract.ts +3 -9
  471. package/src/contracts/skills.contract.ts +4 -15
  472. package/src/contracts/system.contract.ts +26 -52
  473. package/src/contracts/usage.contract.ts +7 -21
  474. package/src/contracts/vpn.contract.ts +9 -16
  475. package/src/contracts/webext.contract.ts +9 -25
  476. package/src/contracts/workflows.contract.ts +34 -58
  477. package/src/contracts/workspace.contract.ts +19 -50
  478. package/src/events/agent-events.ts +345 -0
  479. package/src/events/cards.ts +286 -0
  480. package/src/{events.test.ts → events/resume.test.ts} +4 -19
  481. package/src/events/resume.ts +60 -0
  482. package/src/events/system-events.ts +139 -0
  483. package/src/events/transcript.ts +320 -0
  484. package/src/{conversation-ids.test.ts → ids/conversation-ids.test.ts} +25 -13
  485. package/src/ids/conversation-ids.ts +178 -0
  486. package/src/ids/hostnames.ts +129 -0
  487. package/src/ids/session-names.ts +29 -0
  488. package/src/ids/share-paths.ts +43 -0
  489. package/src/{tunnel-ids.test.ts → ids/tunnel-ids.test.ts} +1 -14
  490. package/src/ids/tunnel-ids.ts +29 -0
  491. package/src/index.ts +71 -87
  492. package/src/{agent-catalog.test.ts → models/agent-catalog.test.ts} +19 -93
  493. package/src/models/agent-catalog.ts +174 -0
  494. package/src/models/agent-runtimes.ts +201 -0
  495. package/src/models/capability-ledger.test.ts +84 -0
  496. package/src/{fast-tier.test.ts → models/fast-tier.test.ts} +7 -18
  497. package/src/models/fast-tier.ts +36 -0
  498. package/src/{model-order.test.ts → models/model-order.test.ts} +19 -40
  499. package/src/models/model-order.ts +163 -0
  500. package/src/{model-pins.test.ts → models/model-pins.test.ts} +12 -46
  501. package/src/models/model-pins.ts +57 -0
  502. package/src/models/model-roles.test.ts +38 -0
  503. package/src/models/model-roles.ts +180 -0
  504. package/src/{plan-pools.test.ts → models/plan-pools.test.ts} +6 -11
  505. package/src/models/plan-pools.ts +65 -0
  506. package/src/{prompt-complexity.test.ts → models/prompt-complexity.test.ts} +8 -60
  507. package/src/models/prompt-complexity.ts +215 -0
  508. package/src/{provider-specs.test.ts → models/provider-specs.test.ts} +18 -47
  509. package/src/models/provider-specs.ts +272 -0
  510. package/src/policy/approvals-execution.ts +58 -0
  511. package/src/{batch-runs.test.ts → policy/batch-runs.test.ts} +4 -20
  512. package/src/policy/batch-runs.ts +137 -0
  513. package/src/policy/capability-secrets.ts +5 -0
  514. package/src/{card-status.ts → policy/card-status.ts} +11 -26
  515. package/src/{command-classes.test.ts → policy/command-classes.test.ts} +11 -118
  516. package/src/policy/command-classes.ts +395 -0
  517. package/src/policy/command-run.ts +65 -0
  518. package/src/policy/control-scopes.ts +38 -0
  519. package/src/{credential-material.test.ts → policy/credential-material.test.ts} +4 -26
  520. package/src/policy/credential-material.ts +91 -0
  521. package/src/policy/needs-action.ts +5 -0
  522. package/src/policy/output-fields.ts +86 -0
  523. package/src/policy/overlay-lint.ts +100 -0
  524. package/src/{owner-ticket.test.ts → policy/owner-ticket.test.ts} +1 -1
  525. package/src/{owner-ticket.ts → policy/owner-ticket.ts} +9 -31
  526. package/src/policy/safety-policy.test.ts +84 -0
  527. package/src/policy/safety-policy.ts +142 -0
  528. package/src/policy/search-globs.ts +60 -0
  529. package/src/protocol/container-requirements.test.ts +72 -0
  530. package/src/protocol/container-requirements.ts +58 -0
  531. package/src/protocol/host-protocol.ts +29 -0
  532. package/src/protocol/ingress-contract.ts +103 -0
  533. package/src/{ingress-protocol.test.ts → protocol/ingress-protocol.test.ts} +25 -90
  534. package/src/protocol/ingress-protocol.ts +441 -0
  535. package/src/protocol/listener-protocol.ts +75 -0
  536. package/src/{peer-dial.test.ts → protocol/peer-dial.test.ts} +52 -1
  537. package/src/protocol/peer-dial.ts +207 -0
  538. package/src/{peer-mcp-server.ts → protocol/peer-mcp-server.ts} +16 -41
  539. package/src/protocol/request-id.ts +5 -0
  540. package/src/{routes.test.ts → protocol/routes.test.ts} +14 -22
  541. package/src/protocol/routes.ts +159 -0
  542. package/src/protocol/runner-protocol.ts +197 -0
  543. package/src/protocol/terminal-protocol.ts +13 -0
  544. package/src/protocol/webext-links.ts +50 -0
  545. package/src/protocol/webext-protocol.ts +24 -0
  546. package/src/schemas/activity.ts +22 -30
  547. package/src/schemas/agent.ts +130 -238
  548. package/src/schemas/agents.ts +165 -483
  549. package/src/schemas/approvals.ts +23 -71
  550. package/src/schemas/automations.ts +142 -250
  551. package/src/schemas/capabilities.ts +127 -414
  552. package/src/schemas/ci.ts +56 -108
  553. package/src/schemas/codebase-health.ts +7 -11
  554. package/src/schemas/devices.ts +98 -321
  555. package/src/schemas/engines.ts +16 -44
  556. package/src/schemas/environment.ts +41 -91
  557. package/src/schemas/exit.ts +24 -81
  558. package/src/schemas/extension-updates.ts +42 -87
  559. package/src/schemas/git-history.ts +30 -84
  560. package/src/schemas/git.ts +141 -256
  561. package/src/schemas/history.ts +14 -40
  562. package/src/schemas/hosts.ts +9 -15
  563. package/src/schemas/inventory.ts +8 -10
  564. package/src/schemas/issues.ts +66 -134
  565. package/src/schemas/logs.ts +15 -34
  566. package/src/schemas/loops.ts +46 -163
  567. package/src/schemas/maintenance.ts +47 -172
  568. package/src/schemas/panels.ts +20 -45
  569. package/src/schemas/personas.ts +50 -200
  570. package/src/schemas/plan-limits.ts +58 -197
  571. package/src/schemas/ports.ts +14 -32
  572. package/src/schemas/provider-oauth.ts +23 -76
  573. package/src/schemas/provider-subscriptions.ts +4 -13
  574. package/src/schemas/public.ts +4 -15
  575. package/src/schemas/push.ts +8 -36
  576. package/src/schemas/secrets.ts +20 -64
  577. package/src/schemas/settings.ts +175 -600
  578. package/src/schemas/share.ts +14 -32
  579. package/src/schemas/shared.ts +14 -13
  580. package/src/schemas/system.ts +46 -78
  581. package/src/schemas/terminal.ts +41 -120
  582. package/src/schemas/usage.ts +44 -233
  583. package/src/schemas/version-seam.test.ts +9 -26
  584. package/src/schemas/vpn.ts +27 -64
  585. package/src/schemas/webext.ts +22 -53
  586. package/src/schemas/workflows.ts +57 -183
  587. package/src/schemas/workspace-repos.ts +12 -24
  588. package/src/schemas/workspace-search.ts +17 -35
  589. package/src/schemas/workspace-setup.ts +4 -11
  590. package/src/schemas/workspace-tree.ts +32 -91
  591. package/src/state/arrival.ts +109 -0
  592. package/src/state/contract-lock.test.ts +17 -0
  593. package/src/state/contract-lock.ts +49 -0
  594. package/src/state/definition.ts +143 -0
  595. package/src/state/history-state.ts +103 -0
  596. package/src/{runtime-state.test.ts → state/runtime-state.test.ts} +3 -10
  597. package/src/state/runtime-state.ts +62 -0
  598. package/src/state/starter.ts +5 -0
  599. package/src/state/state-portability.ts +27 -0
  600. package/src/state/versions.ts +26 -0
  601. package/src/{workspace-state.test.ts → state/workspace-state.test.ts} +65 -172
  602. package/src/state/workspace-state.ts +669 -0
  603. package/src/{documents.test.ts → text/documents.test.ts} +1 -1
  604. package/src/text/documents.ts +42 -0
  605. package/src/text/embed.ts +132 -0
  606. package/src/text/mentions.ts +21 -0
  607. package/src/text/model-answer.ts +9 -0
  608. package/src/text/path-refs.ts +39 -0
  609. package/src/text/shell-regions.ts +224 -0
  610. package/src/{title.test.ts → text/title.test.ts} +13 -32
  611. package/src/text/title.ts +202 -0
  612. package/src/{transcript-fold.test.ts → text/transcript-fold.test.ts} +5 -83
  613. package/src/{transcript-fold.ts → text/transcript-fold.ts} +65 -170
  614. package/src/text/whisper.test.ts +19 -0
  615. package/src/text/whisper.ts +17 -0
  616. package/src/{workflow-faults.test.ts → text/workflow-faults.test.ts} +6 -24
  617. package/src/{workflow-faults.ts → text/workflow-faults.ts} +20 -60
  618. package/dist/agent-catalog.d.ts.map +0 -1
  619. package/dist/agent-catalog.js.map +0 -1
  620. package/dist/agent-runtimes.d.ts.map +0 -1
  621. package/dist/agent-runtimes.js.map +0 -1
  622. package/dist/approvals-execution.d.ts.map +0 -1
  623. package/dist/approvals-execution.js.map +0 -1
  624. package/dist/arrival.d.ts.map +0 -1
  625. package/dist/arrival.js.map +0 -1
  626. package/dist/batch-runs.d.ts.map +0 -1
  627. package/dist/batch-runs.js.map +0 -1
  628. package/dist/capability-env.d.ts.map +0 -1
  629. package/dist/capability-env.js.map +0 -1
  630. package/dist/capability-secrets.d.ts.map +0 -1
  631. package/dist/capability-secrets.js.map +0 -1
  632. package/dist/card-status.d.ts.map +0 -1
  633. package/dist/card-status.js.map +0 -1
  634. package/dist/command-classes.d.ts.map +0 -1
  635. package/dist/command-classes.js.map +0 -1
  636. package/dist/command-run.d.ts.map +0 -1
  637. package/dist/command-run.js.map +0 -1
  638. package/dist/contract-lock.d.ts.map +0 -1
  639. package/dist/contract-lock.js.map +0 -1
  640. package/dist/conversation-ids.d.ts +0 -4
  641. package/dist/conversation-ids.d.ts.map +0 -1
  642. package/dist/conversation-ids.js.map +0 -1
  643. package/dist/credential-material.d.ts.map +0 -1
  644. package/dist/credential-material.js.map +0 -1
  645. package/dist/definition.d.ts.map +0 -1
  646. package/dist/definition.js.map +0 -1
  647. package/dist/documents.d.ts.map +0 -1
  648. package/dist/documents.js.map +0 -1
  649. package/dist/embed.d.ts.map +0 -1
  650. package/dist/embed.js.map +0 -1
  651. package/dist/events.d.ts +0 -4336
  652. package/dist/events.d.ts.map +0 -1
  653. package/dist/events.js +0 -725
  654. package/dist/events.js.map +0 -1
  655. package/dist/fast-tier.d.ts.map +0 -1
  656. package/dist/fast-tier.js.map +0 -1
  657. package/dist/history-state.d.ts.map +0 -1
  658. package/dist/history-state.js.map +0 -1
  659. package/dist/host-protocol.d.ts.map +0 -1
  660. package/dist/host-protocol.js.map +0 -1
  661. package/dist/hostnames.d.ts.map +0 -1
  662. package/dist/hostnames.js.map +0 -1
  663. package/dist/ingress-contract.d.ts.map +0 -1
  664. package/dist/ingress-contract.js.map +0 -1
  665. package/dist/ingress-protocol.d.ts.map +0 -1
  666. package/dist/ingress-protocol.js.map +0 -1
  667. package/dist/listener-protocol.d.ts.map +0 -1
  668. package/dist/listener-protocol.js.map +0 -1
  669. package/dist/mentions.d.ts.map +0 -1
  670. package/dist/mentions.js.map +0 -1
  671. package/dist/model-order.d.ts.map +0 -1
  672. package/dist/model-order.js.map +0 -1
  673. package/dist/model-pins.d.ts.map +0 -1
  674. package/dist/model-pins.js.map +0 -1
  675. package/dist/model-roles.d.ts.map +0 -1
  676. package/dist/model-roles.js.map +0 -1
  677. package/dist/needs-action.d.ts.map +0 -1
  678. package/dist/needs-action.js.map +0 -1
  679. package/dist/output-fields.d.ts.map +0 -1
  680. package/dist/output-fields.js.map +0 -1
  681. package/dist/overlay-lint.d.ts.map +0 -1
  682. package/dist/overlay-lint.js.map +0 -1
  683. package/dist/owner-ticket.d.ts.map +0 -1
  684. package/dist/owner-ticket.js.map +0 -1
  685. package/dist/path-refs.d.ts.map +0 -1
  686. package/dist/path-refs.js.map +0 -1
  687. package/dist/peer-dial.d.ts.map +0 -1
  688. package/dist/peer-dial.js.map +0 -1
  689. package/dist/peer-mcp-server.d.ts.map +0 -1
  690. package/dist/peer-mcp-server.js.map +0 -1
  691. package/dist/plan-pools.d.ts.map +0 -1
  692. package/dist/plan-pools.js.map +0 -1
  693. package/dist/prompt-complexity.d.ts.map +0 -1
  694. package/dist/prompt-complexity.js.map +0 -1
  695. package/dist/provider-specs.d.ts.map +0 -1
  696. package/dist/provider-specs.js.map +0 -1
  697. package/dist/request-id.d.ts.map +0 -1
  698. package/dist/request-id.js.map +0 -1
  699. package/dist/routes.d.ts.map +0 -1
  700. package/dist/routes.js.map +0 -1
  701. package/dist/runner-protocol.d.ts.map +0 -1
  702. package/dist/runner-protocol.js.map +0 -1
  703. package/dist/runtime-state.d.ts.map +0 -1
  704. package/dist/runtime-state.js.map +0 -1
  705. package/dist/safety-policy.d.ts.map +0 -1
  706. package/dist/safety-policy.js.map +0 -1
  707. package/dist/search-globs.d.ts.map +0 -1
  708. package/dist/search-globs.js.map +0 -1
  709. package/dist/session-names.d.ts.map +0 -1
  710. package/dist/session-names.js.map +0 -1
  711. package/dist/share-paths.d.ts.map +0 -1
  712. package/dist/share-paths.js.map +0 -1
  713. package/dist/shell-regions.d.ts.map +0 -1
  714. package/dist/shell-regions.js.map +0 -1
  715. package/dist/sse.d.ts.map +0 -1
  716. package/dist/sse.js.map +0 -1
  717. package/dist/starter.d.ts.map +0 -1
  718. package/dist/starter.js.map +0 -1
  719. package/dist/state-portability.d.ts.map +0 -1
  720. package/dist/state-portability.js.map +0 -1
  721. package/dist/terminal-protocol.d.ts.map +0 -1
  722. package/dist/terminal-protocol.js.map +0 -1
  723. package/dist/title.d.ts.map +0 -1
  724. package/dist/title.js.map +0 -1
  725. package/dist/transcript-fold.d.ts.map +0 -1
  726. package/dist/transcript-fold.js.map +0 -1
  727. package/dist/tunnel-ids.d.ts.map +0 -1
  728. package/dist/tunnel-ids.js.map +0 -1
  729. package/dist/versions.d.ts.map +0 -1
  730. package/dist/versions.js.map +0 -1
  731. package/dist/webext-links.d.ts.map +0 -1
  732. package/dist/webext-links.js.map +0 -1
  733. package/dist/webext-protocol.d.ts.map +0 -1
  734. package/dist/webext-protocol.js.map +0 -1
  735. package/dist/workflow-faults.d.ts.map +0 -1
  736. package/dist/workflow-faults.js.map +0 -1
  737. package/dist/workspace-state.d.ts.map +0 -1
  738. package/dist/workspace-state.js.map +0 -1
  739. package/src/agent-catalog.ts +0 -316
  740. package/src/agent-runtimes.ts +0 -419
  741. package/src/approvals-execution.ts +0 -96
  742. package/src/arrival.ts +0 -160
  743. package/src/batch-runs.ts +0 -188
  744. package/src/capability-ledger.test.ts +0 -140
  745. package/src/capability-secrets.ts +0 -20
  746. package/src/command-classes.ts +0 -617
  747. package/src/command-run.ts +0 -78
  748. package/src/contract-lock.test.ts +0 -23
  749. package/src/contract-lock.ts +0 -66
  750. package/src/conversation-ids.ts +0 -207
  751. package/src/credential-material.ts +0 -181
  752. package/src/definition.ts +0 -207
  753. package/src/documents.ts +0 -67
  754. package/src/embed.ts +0 -164
  755. package/src/events.ts +0 -1870
  756. package/src/fast-tier.ts +0 -72
  757. package/src/history-state.ts +0 -174
  758. package/src/host-protocol.ts +0 -36
  759. package/src/hostnames.ts +0 -180
  760. package/src/ingress-contract.ts +0 -157
  761. package/src/ingress-protocol.ts +0 -625
  762. package/src/listener-protocol.ts +0 -96
  763. package/src/mentions.ts +0 -25
  764. package/src/model-order.ts +0 -262
  765. package/src/model-pins.ts +0 -132
  766. package/src/model-roles.test.ts +0 -52
  767. package/src/model-roles.ts +0 -320
  768. package/src/needs-action.ts +0 -14
  769. package/src/output-fields.ts +0 -111
  770. package/src/overlay-lint.ts +0 -116
  771. package/src/path-refs.ts +0 -59
  772. package/src/peer-dial.ts +0 -163
  773. package/src/plan-pools.ts +0 -92
  774. package/src/prompt-complexity.ts +0 -334
  775. package/src/provider-specs.ts +0 -432
  776. package/src/request-id.ts +0 -41
  777. package/src/routes.ts +0 -219
  778. package/src/runner-protocol.ts +0 -239
  779. package/src/runtime-state.ts +0 -140
  780. package/src/safety-policy.test.ts +0 -88
  781. package/src/safety-policy.ts +0 -258
  782. package/src/search-globs.ts +0 -76
  783. package/src/session-names.ts +0 -44
  784. package/src/share-paths.ts +0 -68
  785. package/src/shell-regions.ts +0 -289
  786. package/src/starter.ts +0 -13
  787. package/src/state-portability.ts +0 -56
  788. package/src/terminal-protocol.ts +0 -16
  789. package/src/title.ts +0 -267
  790. package/src/tunnel-ids.ts +0 -57
  791. package/src/versions.ts +0 -48
  792. package/src/webext-links.ts +0 -90
  793. package/src/webext-protocol.ts +0 -27
  794. package/src/workspace-state.ts +0 -1090
  795. /package/dist/{hostnames.d.ts → ids/hostnames.d.ts} +0 -0
  796. /package/dist/{hostnames.js → ids/hostnames.js} +0 -0
  797. /package/dist/{session-names.d.ts → ids/session-names.d.ts} +0 -0
  798. /package/dist/{session-names.js → ids/session-names.js} +0 -0
  799. /package/dist/{share-paths.d.ts → ids/share-paths.d.ts} +0 -0
  800. /package/dist/{share-paths.js → ids/share-paths.js} +0 -0
  801. /package/dist/{agent-catalog.js → models/agent-catalog.js} +0 -0
  802. /package/dist/{agent-runtimes.d.ts → models/agent-runtimes.d.ts} +0 -0
  803. /package/dist/{agent-runtimes.js → models/agent-runtimes.js} +0 -0
  804. /package/dist/{fast-tier.js → models/fast-tier.js} +0 -0
  805. /package/dist/{model-order.d.ts → models/model-order.d.ts} +0 -0
  806. /package/dist/{model-order.js → models/model-order.js} +0 -0
  807. /package/dist/{model-pins.js → models/model-pins.js} +0 -0
  808. /package/dist/{plan-pools.js → models/plan-pools.js} +0 -0
  809. /package/dist/{prompt-complexity.d.ts → models/prompt-complexity.d.ts} +0 -0
  810. /package/dist/{prompt-complexity.js → models/prompt-complexity.js} +0 -0
  811. /package/dist/{provider-specs.d.ts → models/provider-specs.d.ts} +0 -0
  812. /package/dist/{provider-specs.js → models/provider-specs.js} +0 -0
  813. /package/dist/{approvals-execution.d.ts → policy/approvals-execution.d.ts} +0 -0
  814. /package/dist/{approvals-execution.js → policy/approvals-execution.js} +0 -0
  815. /package/dist/{capability-env.d.ts → policy/capability-env.d.ts} +0 -0
  816. /package/dist/{capability-env.js → policy/capability-env.js} +0 -0
  817. /package/dist/{capability-secrets.d.ts → policy/capability-secrets.d.ts} +0 -0
  818. /package/dist/{capability-secrets.js → policy/capability-secrets.js} +0 -0
  819. /package/dist/{command-run.js → policy/command-run.js} +0 -0
  820. /package/dist/{credential-material.d.ts → policy/credential-material.d.ts} +0 -0
  821. /package/dist/{credential-material.js → policy/credential-material.js} +0 -0
  822. /package/dist/{needs-action.d.ts → policy/needs-action.d.ts} +0 -0
  823. /package/dist/{needs-action.js → policy/needs-action.js} +0 -0
  824. /package/dist/{output-fields.d.ts → policy/output-fields.d.ts} +0 -0
  825. /package/dist/{output-fields.js → policy/output-fields.js} +0 -0
  826. /package/dist/{overlay-lint.d.ts → policy/overlay-lint.d.ts} +0 -0
  827. /package/dist/{overlay-lint.js → policy/overlay-lint.js} +0 -0
  828. /package/dist/{owner-ticket.d.ts → policy/owner-ticket.d.ts} +0 -0
  829. /package/dist/{search-globs.d.ts → policy/search-globs.d.ts} +0 -0
  830. /package/dist/{search-globs.js → policy/search-globs.js} +0 -0
  831. /package/dist/{ingress-contract.d.ts → protocol/ingress-contract.d.ts} +0 -0
  832. /package/dist/{ingress-protocol.d.ts → protocol/ingress-protocol.d.ts} +0 -0
  833. /package/dist/{ingress-protocol.js → protocol/ingress-protocol.js} +0 -0
  834. /package/dist/{listener-protocol.d.ts → protocol/listener-protocol.d.ts} +0 -0
  835. /package/dist/{peer-mcp-server.d.ts → protocol/peer-mcp-server.d.ts} +0 -0
  836. /package/dist/{peer-mcp-server.js → protocol/peer-mcp-server.js} +0 -0
  837. /package/dist/{request-id.d.ts → protocol/request-id.d.ts} +0 -0
  838. /package/dist/{request-id.js → protocol/request-id.js} +0 -0
  839. /package/dist/{routes.d.ts → protocol/routes.d.ts} +0 -0
  840. /package/dist/{routes.js → protocol/routes.js} +0 -0
  841. /package/dist/{sse.d.ts → protocol/sse.d.ts} +0 -0
  842. /package/dist/{sse.js → protocol/sse.js} +0 -0
  843. /package/dist/{terminal-protocol.js → protocol/terminal-protocol.js} +0 -0
  844. /package/dist/{webext-links.d.ts → protocol/webext-links.d.ts} +0 -0
  845. /package/dist/{webext-links.js → protocol/webext-links.js} +0 -0
  846. /package/dist/{arrival.d.ts → state/arrival.d.ts} +0 -0
  847. /package/dist/{contract-lock.d.ts → state/contract-lock.d.ts} +0 -0
  848. /package/dist/{history-state.d.ts → state/history-state.d.ts} +0 -0
  849. /package/dist/{runtime-state.d.ts → state/runtime-state.d.ts} +0 -0
  850. /package/dist/{runtime-state.js → state/runtime-state.js} +0 -0
  851. /package/dist/{starter.d.ts → state/starter.d.ts} +0 -0
  852. /package/dist/{starter.js → state/starter.js} +0 -0
  853. /package/dist/{state-portability.d.ts → state/state-portability.d.ts} +0 -0
  854. /package/dist/{state-portability.js → state/state-portability.js} +0 -0
  855. /package/dist/{versions.d.ts → state/versions.d.ts} +0 -0
  856. /package/dist/{versions.js → state/versions.js} +0 -0
  857. /package/dist/{embed.d.ts → text/embed.d.ts} +0 -0
  858. /package/dist/{embed.js → text/embed.js} +0 -0
  859. /package/dist/{mentions.d.ts → text/mentions.d.ts} +0 -0
  860. /package/dist/{mentions.js → text/mentions.js} +0 -0
  861. /package/dist/{path-refs.d.ts → text/path-refs.d.ts} +0 -0
  862. /package/dist/{path-refs.js → text/path-refs.js} +0 -0
  863. /package/dist/{shell-regions.js → text/shell-regions.js} +0 -0
  864. /package/dist/{title.d.ts → text/title.d.ts} +0 -0
  865. /package/dist/{title.js → text/title.js} +0 -0
  866. /package/src/{hostnames.test.ts → ids/hostnames.test.ts} +0 -0
  867. /package/src/{share-paths.test.ts → ids/share-paths.test.ts} +0 -0
  868. /package/src/{capability-env.ts → policy/capability-env.ts} +0 -0
  869. /package/src/{overlay-lint.test.ts → policy/overlay-lint.test.ts} +0 -0
  870. /package/src/{search-globs.test.ts → policy/search-globs.test.ts} +0 -0
  871. /package/src/{ingress-contract.test.ts → protocol/ingress-contract.test.ts} +0 -0
  872. /package/src/{peer-mcp-server.test.ts → protocol/peer-mcp-server.test.ts} +0 -0
  873. /package/src/{sse.ts → protocol/sse.ts} +0 -0
  874. /package/src/{versions.test.ts → state/versions.test.ts} +0 -0
  875. /package/src/{embed.test.ts → text/embed.test.ts} +0 -0
  876. /package/src/{mentions.test.ts → text/mentions.test.ts} +0 -0
  877. /package/src/{path-refs.test.ts → text/path-refs.test.ts} +0 -0
@@ -1,432 +0,0 @@
1
- import type { ProviderBrand } from "@intentic/constants";
2
- import { type AgentCapabilities, CLAUDE_CODE, CODEX, CURSOR, OPENCODE, OPENCODE_GEMINI } from "./agent-runtimes.js";
3
-
4
- /* EVERY FACT ABOUT A PROVIDER THAT MORE THAN ONE SURFACE NEEDS, one row each, and the reason this file exists
5
- * rather than the nine lists it replaced.
6
- *
7
- * The same six names used to be written out in ten places: the wire vocabulary, the picker's labels, the access
8
- * table, the vendor table, the plan-limit list, the translator's provider enum and its accounts schema, the
9
- * daemon's CLIProxyAPI id map and its requirement strings, and the web's tabs, account seed and readiness
10
- * branches. Six of those were `Record<NativeProvider, …>` and could not silently miss a provider; the rest were
11
- * arrays and if-chains, and those are the ones that DID. Cursor shipped absent from the secrets inventory for a
12
- * release because an enumeration does not know what it is missing, which is the same failure the daemon's
13
- * ProviderModule registry was built to end on its side of the wire. This is that fix for the other side.
14
- *
15
- * WHAT A ROW IS, and the two axes it deliberately keeps apart:
16
- *
17
- * `access` is what a turn COSTS: free, or an already-paid subscription with a quota. It is what the picker
18
- * badges, what orders the locked band, and what quick-model spends against (ACCESS_COST).
19
- * `auth` is what the user CONNECTS: an OAuth account this daemon stores, a subscription the bundled
20
- * translator holds, or a sign-in that mints the vendor's own API key.
21
- *
22
- * They are not the same question and conflating them is how Z.ai would have been described wrongly whichever
23
- * single word was picked: its cost is a prepaid coding plan, and the credential that plan is spent through is an
24
- * API key its sign-in mints. Keeping the axes apart is what lets a surface ask the one it actually needs.
25
- *
26
- * `brand` is typed against the marks in @intentic/constants, so a provider added without a logo does not
27
- * compile. That is deliberate: the fallback glyph is honest for an ACP agent nobody here has heard of, and
28
- * dishonest for a first-class provider whose vendor has a mark everybody recognises.
29
- *
30
- * ADDING A PROVIDER is a row here, its brand path, and (daemon-side) one line in the provider registry.
31
- * Everything else derives — see agent-catalog.ts for the contract's derivations, and provider-specs.test.ts
32
- * for the guard that walks this table rather than a list. */
33
-
34
- // What it COSTS to unlock a provider, and what the user connects to do it, the axis the picker groups on, since
35
- // "can this row actually run" is the first thing a model list has to answer. `free` is not a courtesy tier: the
36
- // Google channel serves its models on an ordinary Google sign-in, at no subscription, which is the single most
37
- // useful thing this catalog can tell a user who has connected nothing yet.
38
- //
39
- // There is deliberately no `key` rung. Every provider here is unlocked by signing in to something the user
40
- // already holds, so a per-call metered credential is not a shape this table can describe — a raw API key against
41
- // somebody's own gateway is an `endpoint` capability (schemas/capabilities.ts), which is not a provider row and
42
- // never appeared on this axis.
43
- export type AccessKind = "free" | "subscription";
44
-
45
- export interface ProviderAccess {
46
- readonly kind: AccessKind;
47
- // What the user connects, named the way its vendor names it, this is the noun every connect prompt uses.
48
- readonly requirement: string;
49
- // What connecting it lets them run, for the connect gate's one-line pitch.
50
- readonly runs: string;
51
- }
52
-
53
- // What a turn on this provider costs at the MARGIN, ordering the two kinds by the only question a helper
54
- // spending the user's allowance on their behalf has to answer: free is free; a subscription is already paid but
55
- // has a quota the user watches. Deliberately not folded into AccessKind's declaration order, a union's order is
56
- // not a runtime fact, and this one is relied on.
57
- export const ACCESS_COST: Record<AccessKind, number> = { free: 0, subscription: 1 };
58
-
59
- /* HOW A CREDENTIAL FOR THIS PROVIDER IS OBTAINED AND HELD. Three mechanisms, and every surface that used to
60
- * branch on a provider's NAME (the web's readiness rules, the connect panel's shape, the daemon's credential
61
- * resolution) branches on this instead, so a fourth provider of an existing mechanism needs no new branch
62
- * anywhere.
63
- *
64
- * "oauth" , the daemon runs the sign-in itself and stores the tokens (one file per account under
65
- * .intentic/secrets/auth/<provider>/). Claude's PKCE paste-back and Cursor's poll-to-completion
66
- * are both this: what makes them one mechanism is who ends up holding the credential.
67
- * "translator" , the bundled CLIProxyAPI holds a SUBSCRIPTION OAuth and re-serves it behind an Anthropic
68
- * endpoint, so the Claude Code loop can run a non-Claude model on it. `cliProxy` is that
69
- * provider's id in the proxy's own vocabulary, which is not always ours.
70
- * "minted" , the daemon runs a sign-in whose token is NOT an inference credential, so it goes on to mint
71
- * the vendor's own API key from it and stores that. The harness is then pointed straight at the
72
- * vendor's Anthropic Messages endpoint with the minted key — no translator hop, because there
73
- * is nothing to translate, the same road an `anthropic`-protocol endpoint capability drives.
74
- *
75
- * NOBODY PASTES A KEY, and the absence is the point rather than an omission. Both of these vendors sell a plan
76
- * and issue keys under it, and the first cut of these two providers therefore shipped as a password field — which
77
- * is a worse product than what the vendors' own CLIs do (their sign-in mints the key) and the only connect flow
78
- * in this app that asked the user to go and find a credential. The minted mechanism is that sign-in. A raw key
79
- * against somebody's own gateway is still supported and always was: it is an `endpoint` capability, not this.
80
- */
81
- export type ProviderAuth =
82
- | { readonly kind: "oauth" }
83
- | { readonly kind: "translator"; readonly cliProxy: string }
84
- | { readonly kind: "minted"; readonly variants: readonly MintedVariant[] };
85
-
86
- /* ONE IDENTITY PROVIDER A MINTED PROVIDER CAN BE SIGNED INTO, and the reason this is a list rather than three
87
- * fields on the auth row: Z.ai is one product sold through two entirely separate estates. An international plan
88
- * signs in at chat.z.ai and its key works against api.z.ai; a mainland GLM Coding Plan signs in at bigmodel.cn
89
- * and its key works against open.bigmodel.cn. Same models, same picker row, same store, and a credential minted
90
- * on one estate is refused by the other's endpoint.
91
- *
92
- * Which is why the bases live HERE and not on the provider: a key knows which variant minted it, and the turn
93
- * has to dial that variant's host. A provider-wide base URL would send a mainland plan's key to a host that has
94
- * never heard of it, and the failure would arrive as an authentication error the user cannot act on. */
95
- export interface MintedVariant {
96
- // The stored account's record of where it came from, and what a `login/start` names. Never shown.
97
- readonly id: string;
98
- // What the connect row's estate control calls it, in the vendor's own words.
99
- readonly label: string;
100
- /* HOW THIS SIGN-IN ENDS, which decides the shape of the connect panel and nothing else.
101
- *
102
- * "device" , the daemon polls the vendor to completion and the account appears: nothing to paste back
103
- * (Cursor's shape). Some of these also carry a one-time code to read off the card, which is
104
- * a fact about the flow at RUNTIME, not about the provider, so it is not on this row.
105
- * "redirect" , the vendor sends the browser to a loopback address only this container could bind, so the
106
- * page dead-ends and the grant is in the address bar. The user brings that URL back
107
- * (Google's shape, picture and all). */
108
- readonly flow: "device" | "redirect";
109
- // What ANTHROPIC_BASE_URL is set to for a turn on an account minted here. WITHOUT a version segment: the
110
- // harness appends `/v1/messages` itself (see the daemon's endpoint-config.ts for why the two ecosystems
111
- // disagree here).
112
- readonly anthropicBase: string;
113
- // Where this estate's model catalog is read from, an OpenAI-compatible root WITH its version segment,
114
- // because that is the surface these vendors publish `GET …/models` on.
115
- readonly catalogBase: string;
116
- }
117
-
118
- export interface ProviderSpec {
119
- // The wire id, and the reserved capability id: an installed `agent` capability may not take one of these.
120
- readonly id: string;
121
- // What the picker, the rail and the account tabs call it.
122
- readonly label: string;
123
- /* WHOSE ALLOWANCE A TURN ON THIS PROVIDER SPENDS, as the subject of a sentence, and not a duplicate of
124
- * `label` or of `access.requirement`. `label` names the RUNTIME the user picks ("Claude Code", "Kimi Code")
125
- * and `requirement` names the thing they CONNECT ("Claude subscription", "Google sign-in"); neither reads as
126
- * English in "… usage limit reached", and neither is what a spent quota belongs to.
127
- *
128
- * The routed providers are why this can't be inferred from the harness: a `gemini` turn drives Claude Opus
129
- * through Google's Antigravity channel on a plain Google sign-in, so the quota that refuses it is Google's
130
- * and Anthropic has no part in it. Saying "Claude usage limit reached" there sends the user to check the
131
- * wrong account, and to a reset that is days out on a pool they never touched. */
132
- readonly vendor: string;
133
- /* WHAT THE ACCOUNT ROWS ARE FILED UNDER: the tab in Sandbox ▸ Agent, the account picker's section, the
134
- * connect gate's chip. "Whose account is this", which is a fourth question and not the three above.
135
- *
136
- * It matches `vendor` for every provider but Grok, and that one exception is why it is a field rather than
137
- * an alias. A quota sentence has to say "xAI usage limit reached", because xAI is who metered it; the tab
138
- * a person clicks to connect the thing says "Grok", because that is what they came here to run and the
139
- * word "xAI" appears nowhere else in the chat. Folding the two would have made one of those wrong, and the
140
- * one that would have been wrong is whichever field the surface happened to reach for. */
141
- readonly accountLabel: string;
142
- // Where the sign-in actually happens, the destination, not the provider's product name: a user about to
143
- // leave the page wants to recognize the site they land on.
144
- readonly destination: string;
145
- readonly brand: ProviderBrand;
146
- readonly access: ProviderAccess;
147
- readonly auth: ProviderAuth;
148
- /* Whether a plan-limit reading for this provider is OBTAINABLE at all, one fact, on the wire, because both
149
- * halves need it and they need the same answer. The daemon reads it to decide what to even ask upstream for
150
- * (usage/translator-usage.ts); the browser reads it to say WHY an account shows no meter, which is the
151
- * difference between "this plan publishes nothing" and "we haven't measured yet", two states that look
152
- * identical as a blank row and mean opposite things.
153
- *
154
- * Four can be read, by two mechanisms that stop at the daemon's readers: Claude's rides its own turn (the
155
- * OAuth usage endpoint, agent.ts), ChatGPT's, Google's and Kimi's are pulled through the translator's
156
- * credential-scoped api-call. Kimi's endpoint is the platform's own `/coding/v1/usages`, which the Kimi Code
157
- * subscription's OAuth token reads directly, the bundled translator does not route it, but it does not have
158
- * to: the api-call substitutes that token server-side like it does for the other two.
159
- *
160
- * Grok is one absence, because xAI's usable billing data needs a subject id CLIProxyAPI keeps out of its
161
- * auth-file listing, and the fallback probe spends a token to answer. The minted providers are the other:
162
- * neither publishes a quota surface their own minted key can read. Adding one is a reader and this flag,
163
- * and nothing else. */
164
- readonly planLimits: boolean;
165
- /* THE TWO RUNTIMES THIS PROVIDER RUNS ON, one per value of the harness axis. Equal records mean the harness
166
- * is not a choice for this provider, and every surface reads that from here rather than keeping its own
167
- * list of the providers that offer the switch (see harnessChoosable, web-side).
168
- *
169
- * Three providers have a genuine fork (codex, grok, and Claude only trivially); three do not, for three
170
- * different and stated reasons — Kimi has no native runtime, Google refuses Claude Code's traffic outright,
171
- * and Cursor has no route but its own SDK. See the records themselves in agent-runtimes.ts. */
172
- readonly runtimes: { readonly native: AgentCapabilities; readonly claudeCode: AgentCapabilities };
173
- }
174
-
175
- /* `as const satisfies` rather than a plain annotation, and the two halves buy different things. `satisfies`
176
- * type-checks every row against the shape above, so a missing field or a misspelled access kind is a compile
177
- * error here rather than an `undefined` two packages away. `as const` keeps the ids and the auth kinds LITERAL,
178
- * which is what lets `NativeProvider` stay a union of six names instead of collapsing to `string`, and
179
- * `Record<NativeProvider, …>` therefore stay the compiler-enforced tables the daemon and the web depend on. */
180
- export const PROVIDER_SPECS = [
181
- {
182
- id: "claude",
183
- label: "Claude Code",
184
- vendor: "Claude",
185
- accountLabel: "Claude",
186
- destination: "Anthropic",
187
- brand: "claude",
188
- access: { kind: "subscription", requirement: "Claude subscription", runs: "Claude Code" },
189
- auth: { kind: "oauth" },
190
- planLimits: true,
191
- // Claude is always its own Claude Code loop: there is no second runtime to switch to, and the harness
192
- // axis is therefore not a choice here either.
193
- runtimes: { native: CLAUDE_CODE, claudeCode: CLAUDE_CODE },
194
- },
195
- {
196
- id: "codex",
197
- label: "Codex",
198
- vendor: "ChatGPT",
199
- accountLabel: "ChatGPT",
200
- destination: "ChatGPT",
201
- brand: "codex",
202
- access: { kind: "subscription", requirement: "ChatGPT subscription", runs: "Codex" },
203
- auth: { kind: "translator", cliProxy: "codex" },
204
- planLimits: true,
205
- runtimes: { native: CODEX, claudeCode: CLAUDE_CODE },
206
- },
207
- {
208
- id: "grok",
209
- label: "Grok",
210
- vendor: "xAI",
211
- accountLabel: "Grok",
212
- destination: "x.ai",
213
- brand: "grok",
214
- access: { kind: "subscription", requirement: "SuperGrok subscription", runs: "Grok" },
215
- // The app says "grok" where CLIProxyAPI says "xai". Grok is also the one provider served BOTH ways: its
216
- // own xAI account runs its native loop, and the translator's subscription runs it under Claude Code.
217
- auth: { kind: "translator", cliProxy: "xai" },
218
- planLimits: false,
219
- runtimes: { native: OPENCODE, claudeCode: CLAUDE_CODE },
220
- },
221
- {
222
- id: "kimi",
223
- label: "Kimi Code",
224
- vendor: "Kimi Code",
225
- accountLabel: "Kimi Code",
226
- destination: "Kimi Code",
227
- brand: "kimi",
228
- access: { kind: "subscription", requirement: "Kimi Code subscription", runs: "Kimi Code" },
229
- auth: { kind: "translator", cliProxy: "kimi" },
230
- planLimits: true,
231
- // Kimi has no native runtime: it only exists under the Claude Code loop, so both harnesses answer it.
232
- runtimes: { native: CLAUDE_CODE, claudeCode: CLAUDE_CODE },
233
- },
234
- {
235
- // Labelled for the ACCOUNT, not the model family: the `gemini` id names one channel. Google's
236
- // Antigravity, and that channel vends Claude and GPT-OSS models alongside Gemini's own (see
237
- // gemini-models.ts). A section headed "Gemini" holding Claude Opus would be a lie; "Google" is what the
238
- // whole list has in common.
239
- id: "gemini",
240
- label: "Google",
241
- vendor: "Google",
242
- accountLabel: "Google",
243
- destination: "Google",
244
- brand: "gemini",
245
- access: { kind: "free", requirement: "Google sign-in", runs: "Gemini, Claude and GPT-OSS under Claude Code" },
246
- // "antigravity" is Google's own agent product, and the name CLIProxyAPI files this credential under.
247
- auth: { kind: "translator", cliProxy: "antigravity" },
248
- planLimits: true,
249
- /* GEMINI IGNORES THE HARNESS, and it is the only routed provider that does. The Claude Code loop
250
- * announces itself in every request it sends and Google refuses on that announcement (see
251
- * OPENCODE_GEMINI), so "Gemini under Claude Code" was never a slower or poorer option, it was one that
252
- * could not complete a single turn, on any of the connected accounts, ever. Naming the same record on
253
- * both harnesses is what makes that structural rather than a rule each surface has to remember. */
254
- runtimes: { native: OPENCODE_GEMINI, claudeCode: OPENCODE_GEMINI },
255
- },
256
- {
257
- // Cursor's own agent runtime, driven through the SDK Anysphere publishes, on the user's Cursor
258
- // subscription. Like Google above, the label names the ACCOUNT rather than a model family: the channel
259
- // vends Anthropic, OpenAI and xAI models alongside Cursor's own Composer, and no model name covers that
260
- // list. The plan that gets billed is Cursor's, whichever vendor's model actually answered.
261
- id: "cursor",
262
- label: "Cursor",
263
- vendor: "Cursor",
264
- accountLabel: "Cursor",
265
- destination: "Cursor",
266
- brand: "cursor",
267
- // A `subscription` like the others, and the requirement names the PLAN rather than the account, because
268
- // a free Cursor account signs in perfectly and still cannot run a turn here: the SDK behind this
269
- // provider is gated to the paid tiers. Saying "Cursor account" would send someone to a sign-in that ends
270
- // in a refusal they had no way to predict.
271
- access: { kind: "subscription", requirement: "Cursor Pro subscription", runs: "Cursor Agent" },
272
- auth: { kind: "oauth" },
273
- planLimits: false,
274
- // Cursor ignores the harness for the mirror of Gemini's reason: there is no route to it but its own SDK.
275
- runtimes: { native: CURSOR, claudeCode: CURSOR },
276
- },
277
- /* THE TWO MINTED PROVIDERS, and the reason they cost no new runtime, no new adapter and no translator hop:
278
- * both publish an ANTHROPIC MESSAGES endpoint of their own. The Claude Code loop is pointed straight at it
279
- * with the key their sign-in minted, which is exactly the road an `anthropic`-protocol endpoint capability
280
- * already drives. So they are the Kimi shape — one record on both harnesses, no adapter, a catalog and a
281
- * readiness rung — and everything that makes them feel first-class (the brand, the badge, the section, the
282
- * account row) is these rows and nothing else. */
283
- {
284
- id: "meta",
285
- label: "Meta",
286
- vendor: "Meta",
287
- accountLabel: "Meta",
288
- destination: "Meta",
289
- brand: "meta",
290
- // A `subscription` like the rest, because that is what the sign-in connects: Muse Code's device login
291
- // mints a plan key, and the plan is what a turn spends. It shipped as `key` for one day, which put it in
292
- // the metered band and told automatic helpers every call here was real money — true of Meta's
293
- // pay-per-token Model API, and not true of the thing this row now connects.
294
- access: { kind: "subscription", requirement: "Muse Code subscription", runs: "Muse Spark under Claude Code" },
295
- auth: {
296
- kind: "minted",
297
- // One estate, so no choice to offer: `login/start` takes no variant for Meta and the connect row
298
- // shows no control. The id still exists because a stored account records which variant minted it.
299
- variants: [
300
- {
301
- id: "meta",
302
- label: "Meta",
303
- // Meta's is the textbook device flow (RFC 8628): a user code to read off the card, and a
304
- // poll that finishes without anything coming back here.
305
- flow: "device",
306
- // No version segment: the harness appends `/v1/messages` itself, and Meta serves the
307
- // Anthropic surface there beside the OpenAI one the catalog is read from.
308
- anthropicBase: "https://api.meta.ai",
309
- catalogBase: "https://api.meta.ai/v1",
310
- },
311
- ],
312
- },
313
- // Nothing published that a minted key can read: no quota surface, so an account row shows no meter and
314
- // says so, rather than showing an empty one that reads as "nothing left".
315
- planLimits: false,
316
- runtimes: { native: CLAUDE_CODE, claudeCode: CLAUDE_CODE },
317
- },
318
- {
319
- id: "zai",
320
- label: "Z.ai",
321
- vendor: "Z.ai",
322
- accountLabel: "Z.ai",
323
- destination: "Z.ai",
324
- brand: "zai",
325
- // A GLM Coding Plan: prepaid, with a quota the user watches, which is what `subscription` means to
326
- // ACCESS_COST and to the picker's ordering. The sign-in mints the plan's own key, so the requirement
327
- // names the plan rather than the credential — nobody has to go and find one.
328
- access: { kind: "subscription", requirement: "Z.ai GLM Coding Plan", runs: "GLM under Claude Code" },
329
- auth: {
330
- kind: "minted",
331
- /* TWO ESTATES, and a key minted on one is refused by the other, which is why they are two variants
332
- * rather than one base URL with a note. The catalog root is the CODING-PLAN one on both
333
- * (`/api/coding/paas/v4`), not the general `/api/paas/v4`: that is a different entitlement, and
334
- * pointing the catalog at it would list models the plan's own Anthropic endpoint then refuses,
335
- * which is the worst shape a picker row can have. */
336
- variants: [
337
- {
338
- id: "zai",
339
- // Cased as the vendor cases it, which is also how the row this control sits under is
340
- // titled: a pill reading "Z.AI" under a row reading "Z.ai" is two spellings of one product
341
- // on one screen.
342
- label: "Z.ai international",
343
- // zcode.z.ai mediates the callback itself, so the daemon polls it and nothing dead-ends in
344
- // the user's browser.
345
- flow: "device",
346
- anthropicBase: "https://api.z.ai/api/anthropic",
347
- catalogBase: "https://api.z.ai/api/coding/paas/v4",
348
- },
349
- {
350
- id: "bigmodel",
351
- label: "BigModel (中国大陆)",
352
- // BigModel refuses that mediated callback and takes a loopback redirect instead, which no
353
- // browser outside this container can reach: the page dead-ends carrying the grant, and the
354
- // user brings the address back. Google's flow exactly, down to the picture.
355
- flow: "redirect",
356
- anthropicBase: "https://open.bigmodel.cn/api/anthropic",
357
- catalogBase: "https://open.bigmodel.cn/api/coding/paas/v4",
358
- },
359
- ],
360
- },
361
- planLimits: false,
362
- runtimes: { native: CLAUDE_CODE, claudeCode: CLAUDE_CODE },
363
- },
364
- ] as const satisfies readonly ProviderSpec[];
365
-
366
- type Spec = (typeof PROVIDER_SPECS)[number];
367
-
368
- /* The agent runtimes the daemon can serve, the vocabulary every surface that picks an agent shares (chat turns,
369
- * automations). The NATIVE providers have dedicated modules (and their ids are reserved); an `endpoint/<id>`
370
- * value names an installed `endpoint`-kind capability, and any other value is an installed `agent`-kind
371
- * capability served over ACP.
372
- *
373
- * DERIVED from the table above, so the wire vocabulary and the product facts cannot disagree: a spec row is a
374
- * provider the contract knows, and there is no way to add one without the other. The type stays a UNION of the
375
- * six names rather than widening to `string`, which is what keeps every `Record<NativeProvider, …>` in the
376
- * daemon and the web a table the compiler completes for you. */
377
- export type NativeProvider = Spec["id"];
378
- export const NATIVE_PROVIDERS: readonly NativeProvider[] = PROVIDER_SPECS.map((spec) => spec.id);
379
-
380
- const BY_ID = new Map<string, ProviderSpec>(PROVIDER_SPECS.map((spec) => [spec.id, spec] as const));
381
-
382
- // The row for a provider id, or nothing when the id names an ACP agent, an endpoint or a typo. The one lookup
383
- // every derived table and every surface goes through.
384
- export const providerSpec = (provider: string): ProviderSpec | undefined => BY_ID.get(provider);
385
-
386
- /* The providers whose model runs UNDER the Claude Code harness through the bundled translator (CLIProxyAPI),
387
- * which holds their SUBSCRIPTION OAuth and re-serves it behind an Anthropic endpoint. `claude` is absent,
388
- * native Anthropic OAuth serves it directly, without the translator.
389
- *
390
- * Narrowed off the auth kind rather than listed again, so this and the `Record<KeyedProvider, …>` tables built
391
- * on it (the translator's accounts schema, its CLIProxyAPI id map) move together with the table. */
392
- export type TranslatorProvider = Extract<Spec, { auth: { kind: "translator" } }>["id"];
393
- export const TRANSLATOR_PROVIDERS: readonly TranslatorProvider[] = PROVIDER_SPECS.filter(
394
- (spec): spec is Extract<Spec, { auth: { kind: "translator" } }> => spec.auth.kind === "translator",
395
- ).map((spec) => spec.id);
396
-
397
- // The providers whose sign-in mints the vendor's own API key, served straight off the vendor's own Anthropic
398
- // Messages endpoint.
399
- export type MintedProvider = Extract<Spec, { auth: { kind: "minted" } }>["id"];
400
- export const MINTED_PROVIDERS: readonly MintedProvider[] = PROVIDER_SPECS.filter(
401
- (spec): spec is Extract<Spec, { auth: { kind: "minted" } }> => spec.auth.kind === "minted",
402
- ).map((spec) => spec.id);
403
-
404
- // This provider's CLIProxyAPI id, where it has one. Not always ours: the app says "grok" where the proxy says
405
- // "xai", and "gemini" where it says "antigravity".
406
- export const cliProxyIdOf = (provider: string): string | undefined => {
407
- const auth = providerSpec(provider)?.auth;
408
- return auth?.kind === "translator" ? auth.cliProxy : undefined;
409
- };
410
-
411
- // Every estate a minted provider can be signed into, in the order the connect row offers them, or nothing when
412
- // the provider is not one of them. The head is the default: what a `login/start` that names no variant gets.
413
- export const mintedVariants = (provider: string): readonly MintedVariant[] | undefined => {
414
- const auth = providerSpec(provider)?.auth;
415
- return auth?.kind === "minted" ? auth.variants : undefined;
416
- };
417
-
418
- /* THE ESTATE ONE ACCOUNT BELONGS TO: its bases and its flow, whole, because a base URL read without its sibling
419
- * is how a catalog and a turn end up pointed at two different hosts.
420
- *
421
- * An ABSENT id takes the default (the head of the list), which is what a connect row that offers no choice
422
- * sends and what a store written before a second variant existed reads back as. An id that names no variant is
423
- * `undefined` and NOT the default: silently falling back would dial a mainland key against api.z.ai and report
424
- * the refusal as an authentication problem, when what happened is that we lost track of where the key came
425
- * from. */
426
- export const mintedVariant = (provider: string, variant?: string): MintedVariant | undefined => {
427
- const variants = mintedVariants(provider);
428
- if (variants === undefined) {
429
- return undefined;
430
- }
431
- return variant === undefined || variant === "" ? variants[0] : variants.find((entry) => entry.id === variant);
432
- };
package/src/request-id.ts DELETED
@@ -1,41 +0,0 @@
1
- /* THE ONE HEADER THAT JOINS A BROWSER CALL TO THE DAEMON LINE THAT SERVED IT.
2
- *
3
- * Both halves of a slow interaction were already measured and could not be put together. The browser times
4
- * `rpc.request`, what the user actually waited for; the daemon times `http.request`, what it served; and on a
5
- * sandbox answering several calls a second the only way to pair them was by timestamp and hope. So "the panel
6
- * stuttered" stayed unattributable even with both numbers in hand, which is the gap the daemon's own perf module
7
- * says it exists to close and could only close on its own side of the wire.
8
- *
9
- * Here rather than as a literal on each side, because a header name that disagrees across the wire fails
10
- * SILENTLY: the browser sends a field nobody reads and the daemon logs nothing, which looks exactly like a quiet
11
- * system. Both sides import this.
12
- *
13
- * The NAME only. The browser mints the value with the app's own `composables/uuid.ts`, which already solves the
14
- * one hard part (`crypto.randomUUID` is a secure-context api and a self-hosted instance on a LAN address does
15
- * not have it), and the daemon only ever reads what it is given. A generator here would be a second answer to a
16
- * question that already has a better one. The value is a correlation token and never a security boundary: the
17
- * daemon records it and decides nothing on it, so a caller repeating one confuses a log and nothing else. */
18
- export const REQUEST_ID_HEADER = "x-intentic-request-id";
19
-
20
- /* WHEN A BROWSER MAY SEND IT, and this is not the additive change it looks like.
21
- *
22
- * A custom request header is the one wire addition that is NOT backward compatible, because the browser does not
23
- * get to decide it: a header outside the CORS safelist forces a preflight, and a daemon whose `allowHeaders`
24
- * predates this name answers a preflight that omits it. The browser then fails the whole request rather than
25
- * dropping the header. Sent unconditionally, this turns "one field the daemon never logs" into EVERY typed call
26
- * to that daemon failing at the transport, `system.events` included, so the stream never opens, the connection
27
- * never reaches `online`, and the app settles on "Busy, catching up" forever against a sandbox that is up and
28
- * healthy and answering `/health` in a millisecond.
29
- *
30
- * That state is not exotic. A browser newer than its daemon is the NORMAL case and a supported one, both in
31
- * production (every user's sandbox runs whatever image they last chose to pull, and COMPATIBILITY.md's second
32
- * promise is that no update is ever forced) and in development (the web app runs from the working tree, the
33
- * daemon is baked into the last `pnpm build:sandbox`). See the web app's useDaemonRoutes.ts, which exists to say
34
- * exactly this.
35
- *
36
- * So the header ships gated on POSITIVE evidence, and this names the evidence: `logs.report` is the route that
37
- * landed in the same commit as the `allowHeaders` entry, so a daemon advertising it on its hello frame is a
38
- * daemon whose CORS accepts the header. Note the polarity is the opposite of `supportsRoute`'s: there, no
39
- * evidence means assume-supported, because hiding a working feature is the greater harm; here, no evidence must
40
- * mean DO NOT SEND, because sending costs the entire connection and the header buys a log field. */
41
- export const REQUEST_ID_EVIDENCE_ROUTE = "logs.report";