@intentic/sandbox-contract 1.303.0 → 1.305.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 (333) hide show
  1. package/README.md +5 -3
  2. package/dist/contracts/agent.contract.d.ts +195 -41
  3. package/dist/contracts/agent.contract.d.ts.map +1 -1
  4. package/dist/contracts/agent.contract.js +8 -8
  5. package/dist/contracts/agent.contract.js.map +1 -1
  6. package/dist/contracts/agents.contract.d.ts +217 -3
  7. package/dist/contracts/agents.contract.d.ts.map +1 -1
  8. package/dist/contracts/agents.contract.js +30 -2
  9. package/dist/contracts/agents.contract.js.map +1 -1
  10. package/dist/contracts/capabilities.contract.d.ts +18 -5
  11. package/dist/contracts/capabilities.contract.d.ts.map +1 -1
  12. package/dist/contracts/capabilities.contract.js +3 -3
  13. package/dist/contracts/capabilities.contract.js.map +1 -1
  14. package/dist/contracts/{host.contract.d.ts → device.contract.d.ts} +75 -2
  15. package/dist/contracts/device.contract.d.ts.map +1 -0
  16. package/dist/contracts/device.contract.js +17 -0
  17. package/dist/contracts/device.contract.js.map +1 -0
  18. package/dist/contracts/extensions.contract.d.ts +2 -2
  19. package/dist/contracts/git.contract.d.ts +24 -0
  20. package/dist/contracts/git.contract.d.ts.map +1 -1
  21. package/dist/contracts/panels.contract.d.ts +1 -1
  22. package/dist/contracts/personas.contract.d.ts +0 -9
  23. package/dist/contracts/personas.contract.d.ts.map +1 -1
  24. package/dist/contracts/personas.contract.js +1 -10
  25. package/dist/contracts/personas.contract.js.map +1 -1
  26. package/dist/contracts/runner.contract.d.ts +138 -98
  27. package/dist/contracts/runner.contract.d.ts.map +1 -1
  28. package/dist/contracts/runner.contract.js +1 -0
  29. package/dist/contracts/runner.contract.js.map +1 -1
  30. package/dist/contracts/secrets.contract.js +2 -2
  31. package/dist/contracts/secrets.contract.js.map +1 -1
  32. package/dist/contracts/sessions.contract.d.ts +23 -3
  33. package/dist/contracts/sessions.contract.d.ts.map +1 -1
  34. package/dist/contracts/settings.contract.d.ts +0 -23
  35. package/dist/contracts/settings.contract.d.ts.map +1 -1
  36. package/dist/contracts/system.contract.d.ts +109 -8
  37. package/dist/contracts/system.contract.d.ts.map +1 -1
  38. package/dist/contracts/system.contract.js +11 -2
  39. package/dist/contracts/system.contract.js.map +1 -1
  40. package/dist/events/agent-events.d.ts +85 -10
  41. package/dist/events/agent-events.d.ts.map +1 -1
  42. package/dist/events/agent-events.js +26 -10
  43. package/dist/events/agent-events.js.map +1 -1
  44. package/dist/events/agent-words.d.ts +20 -0
  45. package/dist/events/agent-words.d.ts.map +1 -0
  46. package/dist/events/agent-words.js +82 -0
  47. package/dist/events/agent-words.js.map +1 -0
  48. package/dist/events/{cards.d.ts → requests.d.ts} +18 -18
  49. package/dist/events/requests.d.ts.map +1 -0
  50. package/dist/events/{cards.js → requests.js} +26 -26
  51. package/dist/events/requests.js.map +1 -0
  52. package/dist/events/resume.d.ts +1 -0
  53. package/dist/events/resume.d.ts.map +1 -1
  54. package/dist/events/resume.js +2 -0
  55. package/dist/events/resume.js.map +1 -1
  56. package/dist/events/system-events.d.ts +21 -3
  57. package/dist/events/system-events.d.ts.map +1 -1
  58. package/dist/events/transcript.d.ts +165 -25
  59. package/dist/events/transcript.d.ts.map +1 -1
  60. package/dist/events/transcript.js +34 -15
  61. package/dist/events/transcript.js.map +1 -1
  62. package/dist/events/watch-wake.d.ts.map +1 -1
  63. package/dist/events/watch-wake.js +4 -0
  64. package/dist/events/watch-wake.js.map +1 -1
  65. package/dist/index.d.ts +629 -129
  66. package/dist/index.d.ts.map +1 -1
  67. package/dist/index.js +10 -4
  68. package/dist/index.js.map +1 -1
  69. package/dist/models/model-offer.d.ts +2 -1
  70. package/dist/models/model-offer.d.ts.map +1 -1
  71. package/dist/models/model-offer.js +5 -4
  72. package/dist/models/model-offer.js.map +1 -1
  73. package/dist/models/model-roles.d.ts +2 -9
  74. package/dist/models/model-roles.d.ts.map +1 -1
  75. package/dist/models/model-roles.js +2 -9
  76. package/dist/models/model-roles.js.map +1 -1
  77. package/dist/policy/command-classes.d.ts +1 -0
  78. package/dist/policy/command-classes.d.ts.map +1 -1
  79. package/dist/policy/command-classes.js +8 -0
  80. package/dist/policy/command-classes.js.map +1 -1
  81. package/dist/policy/persona-home.d.ts +10 -0
  82. package/dist/policy/persona-home.d.ts.map +1 -0
  83. package/dist/policy/persona-home.js +11 -0
  84. package/dist/policy/persona-home.js.map +1 -0
  85. package/dist/policy/request-status.d.ts +5 -0
  86. package/dist/policy/request-status.d.ts.map +1 -0
  87. package/dist/policy/{card-status.js → request-status.js} +3 -3
  88. package/dist/policy/request-status.js.map +1 -0
  89. package/dist/policy/safety-policy.d.ts +1 -1
  90. package/dist/policy/safety-policy.d.ts.map +1 -1
  91. package/dist/policy/safety-policy.js +1 -0
  92. package/dist/policy/safety-policy.js.map +1 -1
  93. package/dist/policy/turned-away.d.ts +2 -0
  94. package/dist/policy/turned-away.d.ts.map +1 -0
  95. package/dist/policy/turned-away.js +13 -0
  96. package/dist/policy/turned-away.js.map +1 -0
  97. package/dist/protocol/peer-dial.d.ts +9 -0
  98. package/dist/protocol/peer-dial.d.ts.map +1 -1
  99. package/dist/protocol/peer-dial.js +12 -4
  100. package/dist/protocol/peer-dial.js.map +1 -1
  101. package/dist/protocol/peer-mcp-server.d.ts +1 -0
  102. package/dist/protocol/peer-mcp-server.d.ts.map +1 -1
  103. package/dist/protocol/peer-mcp-server.js +14 -1
  104. package/dist/protocol/peer-mcp-server.js.map +1 -1
  105. package/dist/schemas/agent.d.ts +2 -1
  106. package/dist/schemas/agent.d.ts.map +1 -1
  107. package/dist/schemas/agent.js +7 -0
  108. package/dist/schemas/agent.js.map +1 -1
  109. package/dist/schemas/agents.d.ts +29 -0
  110. package/dist/schemas/agents.d.ts.map +1 -1
  111. package/dist/schemas/agents.js +18 -0
  112. package/dist/schemas/agents.js.map +1 -1
  113. package/dist/schemas/automations.d.ts +9 -0
  114. package/dist/schemas/automations.d.ts.map +1 -1
  115. package/dist/schemas/capabilities.d.ts +25 -12
  116. package/dist/schemas/capabilities.d.ts.map +1 -1
  117. package/dist/schemas/capabilities.js +11 -6
  118. package/dist/schemas/capabilities.js.map +1 -1
  119. package/dist/schemas/chat-route.d.ts +49 -0
  120. package/dist/schemas/chat-route.d.ts.map +1 -0
  121. package/dist/schemas/{model-route.js → chat-route.js} +17 -5
  122. package/dist/schemas/chat-route.js.map +1 -0
  123. package/dist/schemas/context-trim.d.ts +9 -0
  124. package/dist/schemas/context-trim.d.ts.map +1 -0
  125. package/dist/schemas/context-trim.js +18 -0
  126. package/dist/schemas/context-trim.js.map +1 -0
  127. package/dist/schemas/devices.d.ts +21 -8
  128. package/dist/schemas/devices.d.ts.map +1 -1
  129. package/dist/schemas/devices.js +8 -9
  130. package/dist/schemas/devices.js.map +1 -1
  131. package/dist/schemas/extension-updates.d.ts +4 -4
  132. package/dist/schemas/extension-updates.js +1 -1
  133. package/dist/schemas/extension-updates.js.map +1 -1
  134. package/dist/schemas/git/git.d.ts +83 -0
  135. package/dist/schemas/git/git.d.ts.map +1 -1
  136. package/dist/schemas/git/git.js +40 -0
  137. package/dist/schemas/git/git.js.map +1 -1
  138. package/dist/schemas/hosts.d.ts +36 -5
  139. package/dist/schemas/hosts.d.ts.map +1 -1
  140. package/dist/schemas/hosts.js +7 -5
  141. package/dist/schemas/hosts.js.map +1 -1
  142. package/dist/schemas/metrics.d.ts +108 -0
  143. package/dist/schemas/metrics.d.ts.map +1 -0
  144. package/dist/schemas/metrics.js +77 -0
  145. package/dist/schemas/metrics.js.map +1 -0
  146. package/dist/schemas/panels.d.ts +2 -2
  147. package/dist/schemas/panels.js +1 -1
  148. package/dist/schemas/panels.js.map +1 -1
  149. package/dist/schemas/personas.d.ts +1 -13
  150. package/dist/schemas/personas.d.ts.map +1 -1
  151. package/dist/schemas/personas.js +3 -20
  152. package/dist/schemas/personas.js.map +1 -1
  153. package/dist/schemas/providers/plan-limits.d.ts +1 -0
  154. package/dist/schemas/providers/plan-limits.d.ts.map +1 -1
  155. package/dist/schemas/providers/plan-limits.js +6 -0
  156. package/dist/schemas/providers/plan-limits.js.map +1 -1
  157. package/dist/schemas/secrets.d.ts +1 -1
  158. package/dist/schemas/secrets.d.ts.map +1 -1
  159. package/dist/schemas/secrets.js +1 -1
  160. package/dist/schemas/secrets.js.map +1 -1
  161. package/dist/schemas/settings.d.ts +0 -42
  162. package/dist/schemas/settings.d.ts.map +1 -1
  163. package/dist/schemas/settings.js +1 -16
  164. package/dist/schemas/settings.js.map +1 -1
  165. package/dist/schemas/shared.d.ts +2 -2
  166. package/dist/schemas/shared.d.ts.map +1 -1
  167. package/dist/schemas/shared.js +3 -3
  168. package/dist/schemas/shared.js.map +1 -1
  169. package/dist/schemas/system-prompt.d.ts +104 -0
  170. package/dist/schemas/system-prompt.d.ts.map +1 -0
  171. package/dist/schemas/system-prompt.js +25 -0
  172. package/dist/schemas/system-prompt.js.map +1 -0
  173. package/dist/schemas/workflows.d.ts +2 -2
  174. package/dist/schemas/workflows.d.ts.map +1 -1
  175. package/dist/schemas/workflows.js +2 -2
  176. package/dist/schemas/workflows.js.map +1 -1
  177. package/dist/state/definition.d.ts +18 -10
  178. package/dist/state/definition.d.ts.map +1 -1
  179. package/dist/state/fix-attempt-plan.d.ts +4 -0
  180. package/dist/state/fix-attempt-plan.d.ts.map +1 -1
  181. package/dist/state/fix-attempt-plan.js +3 -2
  182. package/dist/state/fix-attempt-plan.js.map +1 -1
  183. package/dist/state/fix-stance.d.ts +1 -0
  184. package/dist/state/fix-stance.d.ts.map +1 -1
  185. package/dist/state/fix-stance.js +11 -0
  186. package/dist/state/fix-stance.js.map +1 -1
  187. package/dist/state/history-state.d.ts.map +1 -1
  188. package/dist/state/history-state.js +8 -1
  189. package/dist/state/history-state.js.map +1 -1
  190. package/dist/state/runtime-state.d.ts +0 -1
  191. package/dist/state/runtime-state.d.ts.map +1 -1
  192. package/dist/state/runtime-state.js +0 -1
  193. package/dist/state/runtime-state.js.map +1 -1
  194. package/dist/state/workspace-state.d.ts +4 -4
  195. package/dist/state/workspace-state.d.ts.map +1 -1
  196. package/dist/state/workspace-state.js +4 -4
  197. package/dist/state/workspace-state.js.map +1 -1
  198. package/dist/text/documents.d.ts +2 -2
  199. package/dist/text/documents.d.ts.map +1 -1
  200. package/dist/text/documents.js.map +1 -1
  201. package/dist/text/mentions.d.ts +1 -0
  202. package/dist/text/mentions.d.ts.map +1 -1
  203. package/dist/text/mentions.js +5 -1
  204. package/dist/text/mentions.js.map +1 -1
  205. package/dist/text/transcript-fold.d.ts +8 -3
  206. package/dist/text/transcript-fold.d.ts.map +1 -1
  207. package/dist/text/transcript-fold.js +83 -28
  208. package/dist/text/transcript-fold.js.map +1 -1
  209. package/package.json +9 -9
  210. package/src/chores/chores.test.ts +1 -1
  211. package/src/chores/digest.test.ts +1 -1
  212. package/src/chores/probes.test.ts +5 -2
  213. package/src/chores/stack.test.ts +1 -1
  214. package/src/chores/verdict.test.ts +6 -5
  215. package/src/contracts/agent.contract.ts +10 -9
  216. package/src/contracts/agents.contract.ts +35 -2
  217. package/src/contracts/capabilities.contract.ts +3 -3
  218. package/src/contracts/{host.contract.ts → device.contract.ts} +8 -6
  219. package/src/contracts/personas.contract.ts +1 -13
  220. package/src/contracts/runner.contract.ts +3 -2
  221. package/src/contracts/secrets.contract.ts +2 -2
  222. package/src/contracts/system.contract.ts +13 -2
  223. package/src/contracts/webext.contract.ts +1 -1
  224. package/src/events/agent-events.ts +37 -14
  225. package/src/events/agent-words.test.ts +68 -0
  226. package/src/events/agent-words.ts +124 -0
  227. package/src/events/{cards.ts → requests.ts} +44 -44
  228. package/src/events/resume.test.ts +8 -1
  229. package/src/events/resume.ts +4 -0
  230. package/src/events/transcript.ts +51 -22
  231. package/src/events/watch-wake.test.ts +3 -2
  232. package/src/events/watch-wake.ts +4 -0
  233. package/src/ids/conversation-ids.test.ts +3 -3
  234. package/src/ids/hostnames.test.ts +1 -1
  235. package/src/ids/share-paths.test.ts +1 -1
  236. package/src/ids/tunnel-ids.test.ts +1 -1
  237. package/src/index.ts +10 -4
  238. package/src/models/agent-catalog.test.ts +1 -1
  239. package/src/models/capability-ledger.test.ts +1 -1
  240. package/src/models/model-offer.test.ts +9 -2
  241. package/src/models/model-offer.ts +10 -7
  242. package/src/models/model-order.test.ts +1 -1
  243. package/src/models/model-pins.test.ts +1 -1
  244. package/src/models/model-roles.test.ts +1 -1
  245. package/src/models/model-roles.ts +6 -12
  246. package/src/models/plan-pools.test.ts +1 -1
  247. package/src/models/provider-specs.test.ts +3 -3
  248. package/src/policy/batch-runs.test.ts +1 -1
  249. package/src/policy/command-classes.test.ts +37 -2
  250. package/src/policy/command-classes.ts +16 -0
  251. package/src/policy/credential-material.test.ts +6 -10
  252. package/src/policy/fence-paths.test.ts +1 -1
  253. package/src/policy/overlay-lint.test.ts +1 -1
  254. package/src/policy/owner-ticket.test.ts +1 -1
  255. package/src/policy/persona-home.test.ts +52 -0
  256. package/src/policy/persona-home.ts +39 -0
  257. package/src/policy/{card-status.ts → request-status.ts} +6 -6
  258. package/src/policy/safety-policy.test.ts +1 -1
  259. package/src/policy/safety-policy.ts +1 -0
  260. package/src/policy/search-globs.test.ts +1 -1
  261. package/src/policy/turned-away.ts +18 -0
  262. package/src/protocol/container-requirements.test.ts +1 -1
  263. package/src/protocol/ingress-contract.test.ts +8 -2
  264. package/src/protocol/ingress-protocol.test.ts +5 -4
  265. package/src/protocol/peer-dial.test.ts +111 -41
  266. package/src/protocol/peer-dial.ts +39 -4
  267. package/src/protocol/peer-mcp-server.test.ts +37 -7
  268. package/src/protocol/peer-mcp-server.ts +22 -1
  269. package/src/protocol/routes.test.ts +4 -2
  270. package/src/schemas/agent.ts +13 -0
  271. package/src/schemas/agents.ts +33 -0
  272. package/src/schemas/areas.test.ts +2 -8
  273. package/src/schemas/automations.ts +5 -5
  274. package/src/schemas/capabilities.ts +20 -9
  275. package/src/schemas/chat-route.ts +61 -0
  276. package/src/schemas/context-trim.test.ts +38 -0
  277. package/src/schemas/context-trim.ts +29 -0
  278. package/src/schemas/dev-rebuild-log.test.ts +1 -1
  279. package/src/schemas/devices.ts +25 -22
  280. package/src/schemas/extension-updates.ts +1 -1
  281. package/src/schemas/git/git.test.ts +11 -0
  282. package/src/schemas/git/git.ts +66 -0
  283. package/src/schemas/hosts.ts +15 -8
  284. package/src/schemas/issues.ts +1 -1
  285. package/src/schemas/metrics.ts +107 -0
  286. package/src/schemas/panels.ts +2 -2
  287. package/src/schemas/personas.ts +5 -28
  288. package/src/schemas/providers/plan-limits.ts +9 -0
  289. package/src/schemas/secrets.ts +1 -1
  290. package/src/schemas/settings.test.ts +1 -1
  291. package/src/schemas/settings.ts +9 -36
  292. package/src/schemas/shared.ts +6 -6
  293. package/src/schemas/system-prompt.ts +41 -0
  294. package/src/schemas/version-seam.test.ts +1 -1
  295. package/src/schemas/webext.ts +1 -1
  296. package/src/schemas/workflows.ts +4 -4
  297. package/src/state/contract-lock.test.ts +15 -11
  298. package/src/state/fix-attempt-plan.test.ts +10 -1
  299. package/src/state/fix-attempt-plan.ts +6 -2
  300. package/src/state/fix-stance.test.ts +10 -1
  301. package/src/state/fix-stance.ts +13 -0
  302. package/src/state/history-state.ts +17 -1
  303. package/src/state/runtime-state.test.ts +3 -9
  304. package/src/state/runtime-state.ts +0 -4
  305. package/src/state/versions.test.ts +1 -1
  306. package/src/state/workspace-state.test.ts +12 -7
  307. package/src/state/workspace-state.ts +4 -4
  308. package/src/text/archives.test.ts +1 -1
  309. package/src/text/documents.test.ts +1 -1
  310. package/src/text/documents.ts +2 -2
  311. package/src/text/embed.test.ts +17 -6
  312. package/src/text/emoji.test.ts +1 -1
  313. package/src/text/mentions.test.ts +20 -2
  314. package/src/text/mentions.ts +10 -1
  315. package/src/text/path-refs.test.ts +1 -1
  316. package/src/text/title.test.ts +1 -1
  317. package/src/text/transcript-fold.test.ts +183 -1
  318. package/src/text/transcript-fold.ts +146 -39
  319. package/src/text/whisper.test.ts +1 -1
  320. package/src/text/workflow-faults.test.ts +1 -1
  321. package/src/time/zone.test.ts +6 -6
  322. package/dist/contracts/host.contract.d.ts.map +0 -1
  323. package/dist/contracts/host.contract.js +0 -16
  324. package/dist/contracts/host.contract.js.map +0 -1
  325. package/dist/events/cards.d.ts.map +0 -1
  326. package/dist/events/cards.js.map +0 -1
  327. package/dist/policy/card-status.d.ts +0 -5
  328. package/dist/policy/card-status.d.ts.map +0 -1
  329. package/dist/policy/card-status.js.map +0 -1
  330. package/dist/schemas/model-route.d.ts +0 -27
  331. package/dist/schemas/model-route.d.ts.map +0 -1
  332. package/dist/schemas/model-route.js.map +0 -1
  333. package/src/schemas/model-route.ts +0 -43
package/README.md CHANGED
@@ -20,7 +20,7 @@ mismatch is a type error rather than a runtime surprise.
20
20
  - Define workflow designs and immutable run snapshots, including full model/account/harness pins, per-step spend
21
21
  ceilings, pinned repository bases, bounded report previews, and complete-report artifact paths.
22
22
  - Hold the embeds' half of the public doors (the daemon's `automations/public-door.ts`): `src/embed.ts`, its
23
- own entry point and import-free on purpose, is what the Front Desk widget and the bug reporter both do before
23
+ own entry point and import-free on purpose, is what the Visitor chat widget and the bug reporter both do before
24
24
  they do anything of their own — the door's three calls, the proof-of-work solver, the localStorage id, the
25
25
  script-tag boot.
26
26
  - Hold the far end of the peer doors (the daemon's `peers/`): the hello each peer sends (`host-protocol.ts`,
@@ -39,7 +39,7 @@ mismatch is a type error rather than a runtime surprise.
39
39
  holds the id and ref primitives several modules are written in, which are vocabulary rather than shapes either
40
40
  side of the wire sends.
41
41
  - [src/events/](src/events): what the daemon pushes, and when, one file per family — the cards a turn raises
42
- ([cards.ts](src/events/cards.ts)), the transcript wire ([transcript.ts](src/events/transcript.ts): a
42
+ ([cards.ts](src/events/requests.ts)), the transcript wire ([transcript.ts](src/events/transcript.ts): a
43
43
  `TranscriptRow` (a speaker's bubble, a notice, a card), a `TranscriptPatch` (append, replace, drop, more text or
44
44
  thinking, a tool's progress)), the turn's own frames ([agent-events.ts](src/events/agent-events.ts): the
45
45
  `AgentEvent` union, the `TurnFact` view of it, and the `AttachFrame` union a window follows a run through), the
@@ -52,7 +52,9 @@ mismatch is a type error rather than a runtime surprise.
52
52
  THE fold from a turn's frames to its rows, and the patches each frame is worth. The daemon runs it inside every
53
53
  run, the demo runs it over its recording, and the browser only applies the patches it emits, so there is one
54
54
  opinion about what a turn looks like. Its notices (a stop, a refusal, a landing, a routed tier) are written
55
- here too. [src/card-status.ts](src/policy/card-status.ts) is how a card settles: raised `pending`, and given its
55
+ here too, and so is the one turn that leaves NO rows: a refusal that ran nothing takes its message back out
56
+ with it and is never recorded, since the composer still holds those words
57
+ ([docs/design/turns-that-never-ran.md](../../docs/design/turns-that-never-ran.md)). [src/policy/request-status.ts](src/policy/request-status.ts) is how a request settles: raised `pending`, and given its
56
58
  status by the reply that released it or by the stop that cancelled it. One card is settled by a reply the
57
59
  daemon may REFUSE: a `credential_offer` is addressed to the named people the owner's gate lists rather than
58
60
  to whoever holds a session, so a reply that reaches this derivation at all is one the daemon already accepted
@@ -3,6 +3,7 @@ export declare const agentContract: {
3
3
  prompt: import("zod").ZodString;
4
4
  title: import("zod").ZodOptional<import("zod").ZodString>;
5
5
  attachments: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
6
+ mentions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
6
7
  agent: import("zod").ZodOptional<import("zod").ZodString>;
7
8
  harness: import("zod").ZodOptional<import("zod").ZodEnum<{
8
9
  "claude-code": "claude-code";
@@ -36,7 +37,6 @@ export declare const agentContract: {
36
37
  "loop-verdict": "loop-verdict";
37
38
  "maintenance-chore": "maintenance-chore";
38
39
  "model-router": "model-router";
39
- "persona-router": "persona-router";
40
40
  "pipeline-fix": "pipeline-fix";
41
41
  "pre-push-fix": "pre-push-fix";
42
42
  "safety-judge": "safety-judge";
@@ -113,8 +113,9 @@ export declare const agentContract: {
113
113
  text: string;
114
114
  }[] | undefined;
115
115
  placed?: boolean | undefined;
116
- noticeAction?: "depsInstall" | "landHold" | "watchStop" | undefined;
117
- noticeWait?: "credentialRenewal" | "modelRoute" | "personaRoute" | "watch" | undefined;
116
+ noticeAction?: "depsInstall" | "landHold" | "sandboxMemory" | "sendAgain" | "sendAnyway" | "watchStop" | undefined;
117
+ sandboxHeld?: boolean | undefined;
118
+ noticeWait?: "chatRoute" | "credentialRenewal" | "watch" | undefined;
118
119
  noticeWaitId?: string | undefined;
119
120
  plan?: {
120
121
  requestId: string;
@@ -187,7 +188,7 @@ export declare const agentContract: {
187
188
  capabilityOffer?: {
188
189
  requestId: string;
189
190
  offer: {
190
- card: string;
191
+ entry: string;
191
192
  name: string;
192
193
  why?: string | undefined;
193
194
  };
@@ -220,11 +221,24 @@ export declare const agentContract: {
220
221
  } | undefined;
221
222
  } | undefined;
222
223
  watchWake?: {
223
- outcome: "met" | "restart-expired" | "timeout";
224
+ outcome: "broken" | "met" | "restart-expired" | "timeout";
224
225
  note: string;
225
226
  elapsed: string;
226
227
  sent: string;
227
228
  } | undefined;
229
+ agentWords?: {
230
+ kind: "child" | "peer";
231
+ from: string;
232
+ title?: string | undefined;
233
+ failed?: boolean | undefined;
234
+ sent: string;
235
+ } | undefined;
236
+ backgroundJob?: {
237
+ id: string;
238
+ label: string;
239
+ command: string;
240
+ startedAt: number;
241
+ } | undefined;
228
242
  credentialOffer?: {
229
243
  requestId: string;
230
244
  offer: {
@@ -275,8 +289,9 @@ export declare const agentContract: {
275
289
  text: string;
276
290
  }[] | undefined;
277
291
  placed?: boolean | undefined;
278
- noticeAction?: "depsInstall" | "landHold" | "watchStop" | undefined;
279
- noticeWait?: "credentialRenewal" | "modelRoute" | "personaRoute" | "watch" | undefined;
292
+ noticeAction?: "depsInstall" | "landHold" | "sandboxMemory" | "sendAgain" | "sendAnyway" | "watchStop" | undefined;
293
+ sandboxHeld?: boolean | undefined;
294
+ noticeWait?: "chatRoute" | "credentialRenewal" | "watch" | undefined;
280
295
  noticeWaitId?: string | undefined;
281
296
  plan?: {
282
297
  requestId: string;
@@ -349,7 +364,7 @@ export declare const agentContract: {
349
364
  capabilityOffer?: {
350
365
  requestId: string;
351
366
  offer: {
352
- card: string;
367
+ entry: string;
353
368
  name: string;
354
369
  why?: string | undefined;
355
370
  };
@@ -382,11 +397,24 @@ export declare const agentContract: {
382
397
  } | undefined;
383
398
  } | undefined;
384
399
  watchWake?: {
385
- outcome: "met" | "restart-expired" | "timeout";
400
+ outcome: "broken" | "met" | "restart-expired" | "timeout";
386
401
  note: string;
387
402
  elapsed: string;
388
403
  sent: string;
389
404
  } | undefined;
405
+ agentWords?: {
406
+ kind: "child" | "peer";
407
+ from: string;
408
+ title?: string | undefined;
409
+ failed?: boolean | undefined;
410
+ sent: string;
411
+ } | undefined;
412
+ backgroundJob?: {
413
+ id: string;
414
+ label: string;
415
+ command: string;
416
+ startedAt: number;
417
+ } | undefined;
390
418
  credentialOffer?: {
391
419
  requestId: string;
392
420
  offer: {
@@ -435,8 +463,9 @@ export declare const agentContract: {
435
463
  text: string;
436
464
  }[] | undefined;
437
465
  placed?: boolean | undefined;
438
- noticeAction?: "depsInstall" | "landHold" | "watchStop" | undefined;
439
- noticeWait?: "credentialRenewal" | "modelRoute" | "personaRoute" | "watch" | undefined;
466
+ noticeAction?: "depsInstall" | "landHold" | "sandboxMemory" | "sendAgain" | "sendAnyway" | "watchStop" | undefined;
467
+ sandboxHeld?: boolean | undefined;
468
+ noticeWait?: "chatRoute" | "credentialRenewal" | "watch" | undefined;
440
469
  noticeWaitId?: string | undefined;
441
470
  plan?: {
442
471
  requestId: string;
@@ -509,7 +538,7 @@ export declare const agentContract: {
509
538
  capabilityOffer?: {
510
539
  requestId: string;
511
540
  offer: {
512
- card: string;
541
+ entry: string;
513
542
  name: string;
514
543
  why?: string | undefined;
515
544
  };
@@ -542,11 +571,24 @@ export declare const agentContract: {
542
571
  } | undefined;
543
572
  } | undefined;
544
573
  watchWake?: {
545
- outcome: "met" | "restart-expired" | "timeout";
574
+ outcome: "broken" | "met" | "restart-expired" | "timeout";
546
575
  note: string;
547
576
  elapsed: string;
548
577
  sent: string;
549
578
  } | undefined;
579
+ agentWords?: {
580
+ kind: "child" | "peer";
581
+ from: string;
582
+ title?: string | undefined;
583
+ failed?: boolean | undefined;
584
+ sent: string;
585
+ } | undefined;
586
+ backgroundJob?: {
587
+ id: string;
588
+ label: string;
589
+ command: string;
590
+ startedAt: number;
591
+ } | undefined;
550
592
  credentialOffer?: {
551
593
  requestId: string;
552
594
  offer: {
@@ -620,8 +662,9 @@ export declare const agentContract: {
620
662
  text: string;
621
663
  }[] | undefined;
622
664
  placed?: boolean | undefined;
623
- noticeAction?: "depsInstall" | "landHold" | "watchStop" | undefined;
624
- noticeWait?: "credentialRenewal" | "modelRoute" | "personaRoute" | "watch" | undefined;
665
+ noticeAction?: "depsInstall" | "landHold" | "sandboxMemory" | "sendAgain" | "sendAnyway" | "watchStop" | undefined;
666
+ sandboxHeld?: boolean | undefined;
667
+ noticeWait?: "chatRoute" | "credentialRenewal" | "watch" | undefined;
625
668
  noticeWaitId?: string | undefined;
626
669
  plan?: {
627
670
  requestId: string;
@@ -694,7 +737,7 @@ export declare const agentContract: {
694
737
  capabilityOffer?: {
695
738
  requestId: string;
696
739
  offer: {
697
- card: string;
740
+ entry: string;
698
741
  name: string;
699
742
  why?: string | undefined;
700
743
  };
@@ -727,11 +770,24 @@ export declare const agentContract: {
727
770
  } | undefined;
728
771
  } | undefined;
729
772
  watchWake?: {
730
- outcome: "met" | "restart-expired" | "timeout";
773
+ outcome: "broken" | "met" | "restart-expired" | "timeout";
731
774
  note: string;
732
775
  elapsed: string;
733
776
  sent: string;
734
777
  } | undefined;
778
+ agentWords?: {
779
+ kind: "child" | "peer";
780
+ from: string;
781
+ title?: string | undefined;
782
+ failed?: boolean | undefined;
783
+ sent: string;
784
+ } | undefined;
785
+ backgroundJob?: {
786
+ id: string;
787
+ label: string;
788
+ command: string;
789
+ startedAt: number;
790
+ } | undefined;
735
791
  credentialOffer?: {
736
792
  requestId: string;
737
793
  offer: {
@@ -782,8 +838,9 @@ export declare const agentContract: {
782
838
  text: string;
783
839
  }[] | undefined;
784
840
  placed?: boolean | undefined;
785
- noticeAction?: "depsInstall" | "landHold" | "watchStop" | undefined;
786
- noticeWait?: "credentialRenewal" | "modelRoute" | "personaRoute" | "watch" | undefined;
841
+ noticeAction?: "depsInstall" | "landHold" | "sandboxMemory" | "sendAgain" | "sendAnyway" | "watchStop" | undefined;
842
+ sandboxHeld?: boolean | undefined;
843
+ noticeWait?: "chatRoute" | "credentialRenewal" | "watch" | undefined;
787
844
  noticeWaitId?: string | undefined;
788
845
  plan?: {
789
846
  requestId: string;
@@ -856,7 +913,7 @@ export declare const agentContract: {
856
913
  capabilityOffer?: {
857
914
  requestId: string;
858
915
  offer: {
859
- card: string;
916
+ entry: string;
860
917
  name: string;
861
918
  why?: string | undefined;
862
919
  };
@@ -889,11 +946,24 @@ export declare const agentContract: {
889
946
  } | undefined;
890
947
  } | undefined;
891
948
  watchWake?: {
892
- outcome: "met" | "restart-expired" | "timeout";
949
+ outcome: "broken" | "met" | "restart-expired" | "timeout";
893
950
  note: string;
894
951
  elapsed: string;
895
952
  sent: string;
896
953
  } | undefined;
954
+ agentWords?: {
955
+ kind: "child" | "peer";
956
+ from: string;
957
+ title?: string | undefined;
958
+ failed?: boolean | undefined;
959
+ sent: string;
960
+ } | undefined;
961
+ backgroundJob?: {
962
+ id: string;
963
+ label: string;
964
+ command: string;
965
+ startedAt: number;
966
+ } | undefined;
897
967
  credentialOffer?: {
898
968
  requestId: string;
899
969
  offer: {
@@ -942,8 +1012,9 @@ export declare const agentContract: {
942
1012
  text: string;
943
1013
  }[] | undefined;
944
1014
  placed?: boolean | undefined;
945
- noticeAction?: "depsInstall" | "landHold" | "watchStop" | undefined;
946
- noticeWait?: "credentialRenewal" | "modelRoute" | "personaRoute" | "watch" | undefined;
1015
+ noticeAction?: "depsInstall" | "landHold" | "sandboxMemory" | "sendAgain" | "sendAnyway" | "watchStop" | undefined;
1016
+ sandboxHeld?: boolean | undefined;
1017
+ noticeWait?: "chatRoute" | "credentialRenewal" | "watch" | undefined;
947
1018
  noticeWaitId?: string | undefined;
948
1019
  plan?: {
949
1020
  requestId: string;
@@ -1016,7 +1087,7 @@ export declare const agentContract: {
1016
1087
  capabilityOffer?: {
1017
1088
  requestId: string;
1018
1089
  offer: {
1019
- card: string;
1090
+ entry: string;
1020
1091
  name: string;
1021
1092
  why?: string | undefined;
1022
1093
  };
@@ -1049,11 +1120,24 @@ export declare const agentContract: {
1049
1120
  } | undefined;
1050
1121
  } | undefined;
1051
1122
  watchWake?: {
1052
- outcome: "met" | "restart-expired" | "timeout";
1123
+ outcome: "broken" | "met" | "restart-expired" | "timeout";
1053
1124
  note: string;
1054
1125
  elapsed: string;
1055
1126
  sent: string;
1056
1127
  } | undefined;
1128
+ agentWords?: {
1129
+ kind: "child" | "peer";
1130
+ from: string;
1131
+ title?: string | undefined;
1132
+ failed?: boolean | undefined;
1133
+ sent: string;
1134
+ } | undefined;
1135
+ backgroundJob?: {
1136
+ id: string;
1137
+ label: string;
1138
+ command: string;
1139
+ startedAt: number;
1140
+ } | undefined;
1057
1141
  credentialOffer?: {
1058
1142
  requestId: string;
1059
1143
  offer: {
@@ -1139,12 +1223,15 @@ export declare const agentContract: {
1139
1223
  noticeAction: import("zod").ZodOptional<import("zod").ZodEnum<{
1140
1224
  depsInstall: "depsInstall";
1141
1225
  landHold: "landHold";
1226
+ sandboxMemory: "sandboxMemory";
1227
+ sendAgain: "sendAgain";
1228
+ sendAnyway: "sendAnyway";
1142
1229
  watchStop: "watchStop";
1143
1230
  }>>;
1231
+ sandboxHeld: import("zod").ZodOptional<import("zod").ZodBoolean>;
1144
1232
  noticeWait: import("zod").ZodOptional<import("zod").ZodEnum<{
1233
+ chatRoute: "chatRoute";
1145
1234
  credentialRenewal: "credentialRenewal";
1146
- modelRoute: "modelRoute";
1147
- personaRoute: "personaRoute";
1148
1235
  watch: "watch";
1149
1236
  }>>;
1150
1237
  noticeWaitId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -1247,7 +1334,7 @@ export declare const agentContract: {
1247
1334
  capabilityOffer: import("zod").ZodOptional<import("zod").ZodObject<{
1248
1335
  requestId: import("zod").ZodString;
1249
1336
  offer: import("zod").ZodObject<{
1250
- card: import("zod").ZodString;
1337
+ entry: import("zod").ZodString;
1251
1338
  name: import("zod").ZodString;
1252
1339
  why: import("zod").ZodOptional<import("zod").ZodString>;
1253
1340
  }, import("zod/v4/core").$strip>;
@@ -1297,6 +1384,7 @@ export declare const agentContract: {
1297
1384
  }, import("zod/v4/core").$strip>>;
1298
1385
  watchWake: import("zod").ZodOptional<import("zod").ZodObject<{
1299
1386
  outcome: import("zod").ZodEnum<{
1387
+ broken: "broken";
1300
1388
  met: "met";
1301
1389
  "restart-expired": "restart-expired";
1302
1390
  timeout: "timeout";
@@ -1305,6 +1393,22 @@ export declare const agentContract: {
1305
1393
  elapsed: import("zod").ZodString;
1306
1394
  sent: import("zod").ZodString;
1307
1395
  }, import("zod/v4/core").$strip>>;
1396
+ agentWords: import("zod").ZodOptional<import("zod").ZodObject<{
1397
+ kind: import("zod").ZodEnum<{
1398
+ child: "child";
1399
+ peer: "peer";
1400
+ }>;
1401
+ from: import("zod").ZodString;
1402
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1403
+ failed: import("zod").ZodOptional<import("zod").ZodBoolean>;
1404
+ sent: import("zod").ZodString;
1405
+ }, import("zod/v4/core").$strip>>;
1406
+ backgroundJob: import("zod").ZodOptional<import("zod").ZodObject<{
1407
+ id: import("zod").ZodString;
1408
+ label: import("zod").ZodString;
1409
+ command: import("zod").ZodString;
1410
+ startedAt: import("zod").ZodNumber;
1411
+ }, import("zod/v4/core").$strip>>;
1308
1412
  credentialOffer: import("zod").ZodOptional<import("zod").ZodObject<{
1309
1413
  requestId: import("zod").ZodString;
1310
1414
  offer: import("zod").ZodObject<{
@@ -1386,12 +1490,15 @@ export declare const agentContract: {
1386
1490
  noticeAction: import("zod").ZodOptional<import("zod").ZodEnum<{
1387
1491
  depsInstall: "depsInstall";
1388
1492
  landHold: "landHold";
1493
+ sandboxMemory: "sandboxMemory";
1494
+ sendAgain: "sendAgain";
1495
+ sendAnyway: "sendAnyway";
1389
1496
  watchStop: "watchStop";
1390
1497
  }>>;
1498
+ sandboxHeld: import("zod").ZodOptional<import("zod").ZodBoolean>;
1391
1499
  noticeWait: import("zod").ZodOptional<import("zod").ZodEnum<{
1500
+ chatRoute: "chatRoute";
1392
1501
  credentialRenewal: "credentialRenewal";
1393
- modelRoute: "modelRoute";
1394
- personaRoute: "personaRoute";
1395
1502
  watch: "watch";
1396
1503
  }>>;
1397
1504
  noticeWaitId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -1494,7 +1601,7 @@ export declare const agentContract: {
1494
1601
  capabilityOffer: import("zod").ZodOptional<import("zod").ZodObject<{
1495
1602
  requestId: import("zod").ZodString;
1496
1603
  offer: import("zod").ZodObject<{
1497
- card: import("zod").ZodString;
1604
+ entry: import("zod").ZodString;
1498
1605
  name: import("zod").ZodString;
1499
1606
  why: import("zod").ZodOptional<import("zod").ZodString>;
1500
1607
  }, import("zod/v4/core").$strip>;
@@ -1544,6 +1651,7 @@ export declare const agentContract: {
1544
1651
  }, import("zod/v4/core").$strip>>;
1545
1652
  watchWake: import("zod").ZodOptional<import("zod").ZodObject<{
1546
1653
  outcome: import("zod").ZodEnum<{
1654
+ broken: "broken";
1547
1655
  met: "met";
1548
1656
  "restart-expired": "restart-expired";
1549
1657
  timeout: "timeout";
@@ -1552,6 +1660,22 @@ export declare const agentContract: {
1552
1660
  elapsed: import("zod").ZodString;
1553
1661
  sent: import("zod").ZodString;
1554
1662
  }, import("zod/v4/core").$strip>>;
1663
+ agentWords: import("zod").ZodOptional<import("zod").ZodObject<{
1664
+ kind: import("zod").ZodEnum<{
1665
+ child: "child";
1666
+ peer: "peer";
1667
+ }>;
1668
+ from: import("zod").ZodString;
1669
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1670
+ failed: import("zod").ZodOptional<import("zod").ZodBoolean>;
1671
+ sent: import("zod").ZodString;
1672
+ }, import("zod/v4/core").$strip>>;
1673
+ backgroundJob: import("zod").ZodOptional<import("zod").ZodObject<{
1674
+ id: import("zod").ZodString;
1675
+ label: import("zod").ZodString;
1676
+ command: import("zod").ZodString;
1677
+ startedAt: import("zod").ZodNumber;
1678
+ }, import("zod/v4/core").$strip>>;
1555
1679
  credentialOffer: import("zod").ZodOptional<import("zod").ZodObject<{
1556
1680
  requestId: import("zod").ZodString;
1557
1681
  offer: import("zod").ZodObject<{
@@ -1631,12 +1755,15 @@ export declare const agentContract: {
1631
1755
  noticeAction: import("zod").ZodOptional<import("zod").ZodEnum<{
1632
1756
  depsInstall: "depsInstall";
1633
1757
  landHold: "landHold";
1758
+ sandboxMemory: "sandboxMemory";
1759
+ sendAgain: "sendAgain";
1760
+ sendAnyway: "sendAnyway";
1634
1761
  watchStop: "watchStop";
1635
1762
  }>>;
1763
+ sandboxHeld: import("zod").ZodOptional<import("zod").ZodBoolean>;
1636
1764
  noticeWait: import("zod").ZodOptional<import("zod").ZodEnum<{
1765
+ chatRoute: "chatRoute";
1637
1766
  credentialRenewal: "credentialRenewal";
1638
- modelRoute: "modelRoute";
1639
- personaRoute: "personaRoute";
1640
1767
  watch: "watch";
1641
1768
  }>>;
1642
1769
  noticeWaitId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -1739,7 +1866,7 @@ export declare const agentContract: {
1739
1866
  capabilityOffer: import("zod").ZodOptional<import("zod").ZodObject<{
1740
1867
  requestId: import("zod").ZodString;
1741
1868
  offer: import("zod").ZodObject<{
1742
- card: import("zod").ZodString;
1869
+ entry: import("zod").ZodString;
1743
1870
  name: import("zod").ZodString;
1744
1871
  why: import("zod").ZodOptional<import("zod").ZodString>;
1745
1872
  }, import("zod/v4/core").$strip>;
@@ -1789,6 +1916,7 @@ export declare const agentContract: {
1789
1916
  }, import("zod/v4/core").$strip>>;
1790
1917
  watchWake: import("zod").ZodOptional<import("zod").ZodObject<{
1791
1918
  outcome: import("zod").ZodEnum<{
1919
+ broken: "broken";
1792
1920
  met: "met";
1793
1921
  "restart-expired": "restart-expired";
1794
1922
  timeout: "timeout";
@@ -1797,6 +1925,22 @@ export declare const agentContract: {
1797
1925
  elapsed: import("zod").ZodString;
1798
1926
  sent: import("zod").ZodString;
1799
1927
  }, import("zod/v4/core").$strip>>;
1928
+ agentWords: import("zod").ZodOptional<import("zod").ZodObject<{
1929
+ kind: import("zod").ZodEnum<{
1930
+ child: "child";
1931
+ peer: "peer";
1932
+ }>;
1933
+ from: import("zod").ZodString;
1934
+ title: import("zod").ZodOptional<import("zod").ZodString>;
1935
+ failed: import("zod").ZodOptional<import("zod").ZodBoolean>;
1936
+ sent: import("zod").ZodString;
1937
+ }, import("zod/v4/core").$strip>>;
1938
+ backgroundJob: import("zod").ZodOptional<import("zod").ZodObject<{
1939
+ id: import("zod").ZodString;
1940
+ label: import("zod").ZodString;
1941
+ command: import("zod").ZodString;
1942
+ startedAt: import("zod").ZodNumber;
1943
+ }, import("zod/v4/core").$strip>>;
1800
1944
  credentialOffer: import("zod").ZodOptional<import("zod").ZodObject<{
1801
1945
  requestId: import("zod").ZodString;
1802
1946
  offer: import("zod").ZodObject<{
@@ -1908,6 +2052,7 @@ export declare const agentContract: {
1908
2052
  conversationId: import("zod").ZodString;
1909
2053
  text: import("zod").ZodString;
1910
2054
  attachments: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
2055
+ mentions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
1911
2056
  editorContext: import("zod").ZodOptional<import("zod").ZodObject<{
1912
2057
  file: import("zod").ZodString;
1913
2058
  startLine: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -1953,19 +2098,28 @@ export declare const agentContract: {
1953
2098
  hint: import("zod").ZodOptional<import("zod").ZodString>;
1954
2099
  }, import("zod/v4/core").$strip>>;
1955
2100
  }, import("zod/v4/core").$strip>, Record<never, never>, Record<never, never>>;
1956
- routeModel: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
2101
+ routeChat: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<import("zod").ZodObject<{
1957
2102
  prompt: import("zod").ZodString;
1958
2103
  paths: import("zod").ZodDefault<import("zod").ZodArray<import("zod").ZodString>>;
2104
+ folder: import("zod").ZodOptional<import("zod").ZodString>;
1959
2105
  editorContext: import("zod").ZodOptional<import("zod").ZodBoolean>;
1960
2106
  planMode: import("zod").ZodOptional<import("zod").ZodBoolean>;
2107
+ model: import("zod").ZodBoolean;
2108
+ persona: import("zod").ZodBoolean;
1961
2109
  }, import("zod/v4/core").$strip>, import("zod").ZodObject<{
1962
- pick: import("zod").ZodOptional<import("zod").ZodObject<{
1963
- provider: import("zod").ZodString;
1964
- model: import("zod").ZodString;
1965
- effort: import("zod").ZodOptional<import("zod").ZodString>;
1966
- account: import("zod").ZodOptional<import("zod").ZodString>;
2110
+ persona: import("zod").ZodOptional<import("zod").ZodObject<{
2111
+ id: import("zod").ZodOptional<import("zod").ZodString>;
2112
+ reason: import("zod").ZodString;
2113
+ }, import("zod/v4/core").$strip>>;
2114
+ model: import("zod").ZodOptional<import("zod").ZodObject<{
2115
+ pick: import("zod").ZodOptional<import("zod").ZodObject<{
2116
+ provider: import("zod").ZodString;
2117
+ model: import("zod").ZodString;
2118
+ effort: import("zod").ZodOptional<import("zod").ZodString>;
2119
+ account: import("zod").ZodOptional<import("zod").ZodString>;
2120
+ }, import("zod/v4/core").$strip>>;
2121
+ reason: import("zod").ZodString;
1967
2122
  }, import("zod/v4/core").$strip>>;
1968
- reason: import("zod").ZodString;
1969
2123
  judge: import("zod").ZodOptional<import("zod").ZodString>;
1970
2124
  }, import("zod/v4/core").$strip>, Record<never, never>, Record<never, never>>;
1971
2125
  refusals: import("@orpc/contract").ContractProcedureBuilderWithOutput<import("@orpc/contract").Schema<unknown, unknown>, import("zod").ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"agent.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/agent.contract.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,aAAa;IACtB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUH,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUN,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUL,KAAK;;;;;;;;;;;;;IAUL,IAAI;;;;;IAUJ,MAAM;;;;;;;;;;;;;;;IAWN,MAAM;;;;;;;IAUN,QAAQ;;;;;;;;;IAWR,UAAU;;;;;;;;;;;;;;;IAUV,QAAQ;;;;;;;;;;;;;CASX,CAAC"}
1
+ {"version":3,"file":"agent.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/agent.contract.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,aAAa;IACtB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUH,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUN,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUL,KAAK;;;;;;;;;;;;;;IAUL,IAAI;;;;;IAUJ,MAAM;;;;;;;;;;;;;;;IAWN,MAAM;;;;;;;IAUN,QAAQ;;;;;;;;;IAYR,SAAS;;;;;;;;;;;;;;;;;;;;;;;;IAUT,QAAQ;;;;;;;;;;;;;CASX,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { streamOf } from "../protocol/routes.js";
3
- import { AgentCommandsQuerySchema, AgentCommandsSchema } from "../events/cards.js";
3
+ import { AgentCommandsQuerySchema, AgentCommandsSchema } from "../events/requests.js";
4
4
  import { AttachFrameSchema } from "../events/agent-events.js";
5
5
  import { AgentTurnSchema, AttachTurnSchema, StartedTurnSchema } from "../schemas/agent.js";
6
+ import { ChatRouteAskSchema, ChatRouteSchema } from "../schemas/chat-route.js";
6
7
  import { RewindResultSchema, RewindTurnSchema } from "../schemas/history.js";
7
- import { ModelRouteAskSchema, ModelRouteSchema } from "../schemas/model-route.js";
8
8
  import { AgentReplySchema, ProviderRefusalsSchema, ResumeTurnSchema, SteerSchema, StopTurnSchema } from "../schemas/providers/plan-limits.js";
9
9
  import { OkSchema } from "../schemas/shared.js";
10
10
  export const agentContract = {
@@ -80,15 +80,15 @@ export const agentContract = {
80
80
  })
81
81
  .input(AgentCommandsQuerySchema)
82
82
  .output(AgentCommandsSchema),
83
- routeModel: oc
83
+ routeChat: oc
84
84
  .route({
85
85
  method: "POST",
86
- path: "/agent/route-model",
87
- summary: "Choose the model a new chat runs on",
88
- description: "Reads a new chat's opening message and picks the model, effort and account that conversation should run on, from what is connected and still has allowance left. Asked once per chat, on the message actually sent, and never again: every turn after it runs on the pick the chat is wearing, which you are free to change. Answers with nothing, and a reason, whenever it cannot choose — a chat is never held up by this.",
86
+ path: "/agent/route-chat",
87
+ summary: "Choose what a new chat opens on",
88
+ description: "Reads a new chat's opening message once and answers whichever of two questions it still has: the model, effort and account that conversation should run on, from what is connected and still has allowance left, and which of this sandbox's personas should handle it. `model` and `persona` on the ask say which halves to answer, and only those are put to the model. Asked once per chat, on the message actually sent, and never again: every turn after it runs on what the chat is wearing, which you are free to change. Answers with nothing, and a reason, whenever it cannot choose — a chat is never held up by this.",
89
89
  })
90
- .input(ModelRouteAskSchema)
91
- .output(ModelRouteSchema),
90
+ .input(ChatRouteAskSchema)
91
+ .output(ChatRouteSchema),
92
92
  refusals: oc
93
93
  .route({
94
94
  method: "GET",
@@ -1 +1 @@
1
- {"version":3,"file":"agent.contract.js","sourceRoot":"","sources":["../../src/contracts/agent.contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.contract.js","sourceRoot":"","sources":["../../src/contracts/agent.contract.ts"],"names":[],"mappings":"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"}