@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
@@ -1,7 +1,9 @@
1
- import { cancelledCards, settledCards } from "../policy/card-status.js";
2
- import { CARD_FIELDS, holdsCard, isAwaitingDecision } from "../events/transcript.js";
1
+ import { cancelledRequests, settledRequests } from "../policy/request-status.js";
2
+ import { REQUEST_FIELDS, holdsRequest, isAwaitingDecision, } from "../events/transcript.js";
3
+ import { contextTrimLine } from "../schemas/context-trim.js";
4
+ import { turnedAwayCode } from "../policy/turned-away.js";
3
5
  import { mentionedPathTokens } from "./mentions.js";
4
- import { watchWakeRow } from "../events/watch-wake.js";
6
+ import { unspokenPromptRow } from "../events/agent-words.js";
5
7
  const defined = (value) => Object.fromEntries(Object.entries(value).filter(([, field]) => field !== undefined));
6
8
  const cardOf = (event) => ({
7
9
  id: event.id,
@@ -12,12 +14,13 @@ const cardOf = (event) => ({
12
14
  ...(event.locations !== undefined ? { locations: event.locations } : {}),
13
15
  ...(event.content !== undefined ? { content: event.content } : {}),
14
16
  });
17
+ const restates = (row, text) => row?.role === "assistant" && !holdsRequest(row) && row.text.trim() !== "" && row.text.trim() === text.trim();
15
18
  const empty = (row) => row.text.length === 0 &&
16
19
  (row.thinking?.length ?? 0) === 0 &&
17
20
  (row.tools?.length ?? 0) === 0 &&
18
21
  (row.todos?.length ?? 0) === 0 &&
19
22
  row.usage === undefined &&
20
- !holdsCard(row);
23
+ !holdsRequest(row);
21
24
  const dependencyLine = (deps) => {
22
25
  if (deps === undefined || deps.missing === 0) {
23
26
  return ``;
@@ -55,6 +58,32 @@ const landedRow = (event) => {
55
58
  noticeAction: (event.deps?.started.length ?? 0) > 0 ? "depsInstall" : "landHold",
56
59
  };
57
60
  };
61
+ const undelivered = (unattended) => unattended
62
+ ? `Nothing ran, and nothing is held: this run started on its own, so there is no message waiting to be sent again.`
63
+ : `Your message was not delivered: it is held for you to send again.`;
64
+ const memoryPress = (event) => event.memory === undefined ? "sendAnyway" : "sandboxMemory";
65
+ const heldRow = (event) => {
66
+ const unattended = event.unattended === true;
67
+ const memory = event.code === "sandbox-memory-low";
68
+ if (event.held !== undefined && !unattended) {
69
+ return {
70
+ role: "notice",
71
+ text: memory
72
+ ? `${event.message} Nothing has run yet: the message above is kept here, and sending it anyway starts it.`
73
+ : `${event.message} Nothing has run yet: the message above is kept here to send again once that is sorted.`,
74
+ noticeAction: memory ? memoryPress(event) : "sendAgain",
75
+ sandboxHeld: true,
76
+ };
77
+ }
78
+ if (!memory || unattended) {
79
+ return { role: "notice", text: `${event.message} ${undelivered(unattended)}` };
80
+ }
81
+ return {
82
+ role: "notice",
83
+ text: `${event.message} Your message is held: send it again to start anyway.`,
84
+ noticeAction: memoryPress(event),
85
+ };
86
+ };
58
87
  const errorRow = (event) => {
59
88
  const { message, code } = event;
60
89
  switch (code) {
@@ -64,21 +93,21 @@ const errorRow = (event) => {
64
93
  : { role: "notice", text: `${message} Retrying by itself: attempt ${event.outage.attempt} of ${event.outage.maxAttempts}.` };
65
94
  case "claude-token-refused":
66
95
  return event.autoResume === "scheduled"
67
- ? { role: "notice", text: `${message} The credential is being renewed and this turn continues automatically.`, noticeWait: "credentialRenewal" }
96
+ ? {
97
+ role: "notice",
98
+ text: `${message} The credential is being renewed and this turn continues automatically.`,
99
+ noticeWait: "credentialRenewal",
100
+ }
68
101
  : { role: "notice", text: `${message} Reconnect the account to pick this conversation back up.` };
69
102
  case "rate_limit":
70
103
  return { role: "notice", text: message };
71
- case "claude-reauth":
72
- case "unknown-command":
73
- case "context-window-too-small":
74
- case "sandbox-memory-low":
75
- case "trial-unavailable":
76
- case "trial-model-unavailable":
77
- case "trial-exhausted":
78
- return { role: "notice", text: `${message} Your message was not delivered: it is held for you to send again.` };
79
104
  default:
80
- return { role: "notice", text: message };
105
+ break;
106
+ }
107
+ if (!turnedAwayCode(code)) {
108
+ return { role: "notice", text: message };
81
109
  }
110
+ return heldRow(event);
82
111
  };
83
112
  export const userRow = (text, sentAt, attachments) => {
84
113
  const inline = new Set(mentionedPathTokens(text));
@@ -89,10 +118,12 @@ export class TranscriptFold {
89
118
  tag;
90
119
  rows = [];
91
120
  steerRows = [];
121
+ steeredIn = false;
92
122
  bubble;
93
123
  cards = new Map();
94
124
  parked = new Map();
95
125
  opener;
126
+ unrun = false;
96
127
  constructor(opening, tag) {
97
128
  this.tag = tag;
98
129
  for (const row of opening) {
@@ -189,6 +220,8 @@ export class TranscriptFold {
189
220
  });
190
221
  case "preamble":
191
222
  return event.notes.length === 0 ? [] : this.stampOpener((row) => (row.notes = [...event.notes]));
223
+ case "context_trim":
224
+ return this.pushRow({ role: "notice", text: contextTrimLine(event) });
192
225
  case "worktree":
193
226
  return event.sync === undefined ? [] : this.pushRow({ role: "notice", text: syncLine(event.sync) });
194
227
  case "landed":
@@ -196,15 +229,11 @@ export class TranscriptFold {
196
229
  case "compact":
197
230
  return this.pushRow({ role: "notice", text: `Context compacted to free up space.` });
198
231
  case "error":
199
- return this.pushRow(errorRow(event));
232
+ return [...this.retract(event), ...this.pushRow(errorRow(event))];
200
233
  case "plan": {
201
234
  const adjacent = this.rows.at(-1);
202
- const consumes = this.bubble === undefined &&
203
- adjacent?.role === "assistant" &&
204
- !holdsCard(adjacent) &&
205
- adjacent.text.trim() !== "" &&
206
- adjacent.text.trim() === event.text.trim();
207
- if (consumes) {
235
+ const consumes = this.bubble === undefined && restates(adjacent, event.text);
236
+ if (consumes && adjacent !== undefined) {
208
237
  adjacent.text = "";
209
238
  }
210
239
  return this.park(event.requestId, {
@@ -244,7 +273,7 @@ export class TranscriptFold {
244
273
  case "credential_offer":
245
274
  return this.park(event.requestId, { credentialOffer: { requestId: event.requestId, offer: event.offer, status: "pending" } });
246
275
  case "resolved":
247
- return this.patchParked(event.requestId, (row) => Object.assign(row, settledCards(row, event.reply)));
276
+ return this.patchParked(event.requestId, (row) => Object.assign(row, settledRequests(row, event.reply)));
248
277
  case "capability_outcome":
249
278
  return this.patchParked(event.requestId, (row) => {
250
279
  if (row.capabilityOffer !== undefined) {
@@ -287,9 +316,10 @@ export class TranscriptFold {
287
316
  }
288
317
  }
289
318
  steered(event) {
290
- const wake = watchWakeRow(event.text);
291
- if (wake !== undefined) {
292
- return this.pushRow(wake);
319
+ this.steeredIn = true;
320
+ const unspoken = unspokenPromptRow(event.text);
321
+ if (unspoken !== undefined) {
322
+ return this.pushRow(unspoken);
293
323
  }
294
324
  const patches = this.pushRow({
295
325
  role: "user",
@@ -297,17 +327,42 @@ export class TranscriptFold {
297
327
  sentAt: event.sentAt,
298
328
  ...(event.attachments === undefined ? {} : { attachments: [...event.attachments] }),
299
329
  });
300
- this.steerRows.push(this.rows.length - 1);
330
+ if (event.voice === undefined) {
331
+ this.steerRows.push(this.rows.length - 1);
332
+ }
301
333
  return patches;
302
334
  }
303
335
  note(row) {
304
336
  return this.pushRow(row);
305
337
  }
338
+ get ranNothing() {
339
+ return this.unrun && !this.rows.some((row) => row.role === "assistant");
340
+ }
341
+ turnedAway(event) {
342
+ return (event.kind === "error" &&
343
+ turnedAwayCode(event.code) &&
344
+ event.unattended !== true &&
345
+ !this.rows.some((row) => row.role === "assistant") &&
346
+ !this.steeredIn);
347
+ }
348
+ retract(event) {
349
+ if (!this.turnedAway(event) || event.held !== undefined) {
350
+ return [];
351
+ }
352
+ this.unrun = true;
353
+ const opener = this.opener;
354
+ if (opener === undefined) {
355
+ return [];
356
+ }
357
+ this.rows.splice(opener, 1);
358
+ this.opener = undefined;
359
+ return [{ op: "drop", index: opener }];
360
+ }
306
361
  finish(ending) {
307
362
  const patches = this.closeBubble();
308
363
  for (const [index, row] of this.rows.entries()) {
309
364
  if (row.role === "assistant" && isAwaitingDecision(row)) {
310
- Object.assign(row, cancelledCards(row));
365
+ Object.assign(row, cancelledRequests(row));
311
366
  patches.push(this.replace(index));
312
367
  }
313
368
  }
@@ -449,5 +504,5 @@ export const mapTool = (tools, id, fn) => {
449
504
  });
450
505
  return changed ? next : tools;
451
506
  };
452
- export const cardFieldsOf = (row) => Object.fromEntries(CARD_FIELDS.flatMap((field) => (row[field] === undefined ? [] : [[field, row[field]]])));
507
+ export const cardFieldsOf = (row) => Object.fromEntries(REQUEST_FIELDS.flatMap((field) => (row[field] === undefined ? [] : [[field, row[field]]])));
453
508
  //# sourceMappingURL=transcript-fold.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transcript-fold.js","sourceRoot":"","sources":["../../src/text/transcript-fold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transcript-fold.js","sourceRoot":"","sources":["../../src/text/transcript-fold.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@intentic/sandbox-contract",
3
- "version": "1.303.0",
3
+ "version": "1.305.0",
4
4
  "description": "oRPC wire contract for the intentic sandbox daemon, shared by the daemon and its browser client",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -218,10 +218,10 @@
218
218
  }
219
219
  },
220
220
  "dependencies": {
221
- "@intentic/base": "1.303.0",
222
- "@intentic/constants": "1.303.0",
223
- "@intentic/extension-manifest": "1.303.0",
224
- "@intentic/registry": "1.303.0",
221
+ "@intentic/base": "1.305.0",
222
+ "@intentic/constants": "1.305.0",
223
+ "@intentic/extension-manifest": "1.305.0",
224
+ "@intentic/registry": "1.305.0",
225
225
  "@orpc/contract": "1.14.13",
226
226
  "tslib": "2.8.1",
227
227
  "zod": "4.5.4"
@@ -229,16 +229,16 @@
229
229
  "devDependencies": {
230
230
  "@intentic/testing": "0.0.0",
231
231
  "@intentic/tsconfig": "0.0.0",
232
+ "@types/bun": "1.4.0",
232
233
  "@types/node": "24.13.2",
233
- "@typescript/native-preview": "7.0.0-dev.20260707.2",
234
- "vitest": "4.1.10"
234
+ "@typescript/native-preview": "7.0.0-dev.20260707.2"
235
235
  },
236
236
  "scripts": {
237
237
  "build": "tsgo",
238
238
  "typecheck": "tsgo --noEmit -p tsconfig.test.json",
239
239
  "watch": "tsgo --build --watch",
240
- "test": "vitest run",
241
- "test:watch": "vitest",
240
+ "test": "suites",
241
+ "test:watch": "suites --watch",
242
242
  "lock": "tsgo -b && node scripts/write-lock.mjs"
243
243
  }
244
244
  }
@@ -1,4 +1,4 @@
1
- import { describe, expect, it } from "vitest";
1
+ import { describe, it, expect } from "bun:test";
2
2
  import { CHORE_KINDS, CHORES } from "./chores.js";
3
3
 
4
4
  // Pins the chore book's order, derived from `kind`: no interleaving, no chore lost, no kind mistagged.
@@ -1,4 +1,4 @@
1
- import { describe, expect, test } from "vitest";
1
+ import { describe, test, expect } from "bun:test";
2
2
  import { bucketOf, digestOf } from "./digest.js";
3
3
 
4
4
  describe(`digestOf`, () => {
@@ -1,4 +1,4 @@
1
- import { describe, expect, test } from "vitest";
1
+ import { describe, test, expect } from "bun:test";
2
2
  import { choreById } from "./chores.js";
3
3
  import { probeSpec } from "./probes.js";
4
4
  import { IDIOM_RULES } from "./stack.js";
@@ -197,7 +197,10 @@ describe(`mutation`, () => {
197
197
  });
198
198
 
199
199
  test(`leaves mutants that never got a verdict out of the score entirely`, () => {
200
- const facts = parse(`mutation`, report(mutant(`Killed`), mutant(`Survived`), mutant(`CompileError`), mutant(`RuntimeError`), mutant(`Ignored`)));
200
+ const facts = parse(
201
+ `mutation`,
202
+ report(mutant(`Killed`), mutant(`Survived`), mutant(`CompileError`), mutant(`RuntimeError`), mutant(`Ignored`)),
203
+ );
201
204
  expect(facts).toMatchObject({ id: `mutation`, mutation: { killed: 1, survived: 1, inconclusive: 3, score: 50 } });
202
205
  });
203
206
 
@@ -1,4 +1,4 @@
1
- import { describe, expect, test } from "vitest";
1
+ import { describe, test, expect } from "bun:test";
2
2
  import { componentStem, frameworksOf, IDIOM_RULES, idiomRule, UI_FRAMEWORKS, usesTailwind } from "./stack.js";
3
3
 
4
4
  // Guards shell-safety of interpolated patterns (checked unattended on a remote machine) and the stem normalizer below
@@ -9,7 +9,7 @@ import type {
9
9
  ProbeResult,
10
10
  UiScan,
11
11
  } from "../schemas/maintenance.js";
12
- import { describe, expect, test } from "vitest";
12
+ import { describe, test, expect } from "bun:test";
13
13
  import { choreById, CHORES } from "./chores.js";
14
14
  import { assessReport, choreAnswer, choreAnswered, ledgerKey, unseenVerdicts } from "./verdict.js";
15
15
 
@@ -87,9 +87,7 @@ describe(`what "we have not measured this" means`, () => {
87
87
  test(`a probe the repository cannot run says so, and never badges`, () => {
88
88
  const knipReason = `knip is not a devDependency`;
89
89
  const input = report({
90
- repos: [
91
- { repo: `app`, probes: [probe({ id: `knip`, state: `unavailable`, reason: knipReason })], signals: signals() },
92
- ],
90
+ repos: [{ repo: `app`, probes: [probe({ id: `knip`, state: `unavailable`, reason: knipReason })], signals: signals() }],
93
91
  });
94
92
  const verdict = verdictFor(input, `dead-code`);
95
93
  expect(verdict.state).toBe(`unavailable`);
@@ -749,7 +747,10 @@ describe(`whether a chore has already been answered`, () => {
749
747
  });
750
748
 
751
749
  test(`a row with no finding of its own has no answer`, () => {
752
- const clear = verdictFor(report({ repos: [{ repo: `app`, probes: [auditProbe([])], signals: signals() }], ledger: [ledgerEntry()] }), `security-advisories`);
750
+ const clear = verdictFor(
751
+ report({ repos: [{ repo: `app`, probes: [auditProbe([])], signals: signals() }], ledger: [ledgerEntry()] }),
752
+ `security-advisories`,
753
+ );
753
754
  expect(clear.state).toBe(`clear`);
754
755
  expect(clear.digest).toBe(``);
755
756
  expect(choreAnswer(clear)).toBeUndefined();
@@ -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
 
@@ -93,17 +93,18 @@ export const agentContract = {
93
93
  })
94
94
  .input(AgentCommandsQuerySchema)
95
95
  .output(AgentCommandsSchema),
96
- // Never throws: no offer, no model, or a deadline are all "nothing chosen" with a reason; the composer is waiting.
97
- routeModel: oc
96
+ // Never throws: no offer, no personas, no model, or a deadline are all "nothing chosen" with a reason; the composer
97
+ // is waiting.
98
+ routeChat: oc
98
99
  .route({
99
100
  method: "POST",
100
- path: "/agent/route-model",
101
- summary: "Choose the model a new chat runs on",
101
+ path: "/agent/route-chat",
102
+ summary: "Choose what a new chat opens on",
102
103
  description:
103
- "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.",
104
+ "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.",
104
105
  })
105
- .input(ModelRouteAskSchema)
106
- .output(ModelRouteSchema),
106
+ .input(ChatRouteAskSchema)
107
+ .output(ChatRouteSchema),
107
108
  refusals: oc
108
109
  .route({
109
110
  method: "GET",
@@ -24,9 +24,10 @@ import {
24
24
  LandResultSchema,
25
25
  } from "../schemas/agents.js";
26
26
  import { AgentsListSchema } from "../schemas/automations.js";
27
- import { AgentChangesSchema, AgentHistorySchema } from "../schemas/git/git.js";
27
+ import { AgentChangesSchema, AgentScratchSchema, AgentHistorySchema } from "../schemas/git/git.js";
28
28
  import { FileDiffSchema } from "../schemas/history.js";
29
29
  import { OkSchema } from "../schemas/shared.js";
30
+ import { ConversationPromptSchema } from "../schemas/system-prompt.js";
30
31
 
31
32
  // Every registered conversation-agent (AgentSummarySchema); an unknown {id} is NOT_FOUND across this whole family.
32
33
  // `archive` is the non-destructive counterpart to `discard` (worktree committed, entry kept); `purge` is `discard`
@@ -80,6 +81,16 @@ export const agentsContract = {
80
81
  })
81
82
  .input(AgentTranscriptQuerySchema)
82
83
  .output(AgentTranscriptSchema),
84
+ systemPrompt: oc
85
+ .route({
86
+ method: "GET",
87
+ path: "/agents/{id}/system-prompt",
88
+ summary: "What this conversation is told before it is asked anything",
89
+ description:
90
+ "The system prompt the most recent turn of this conversation actually ran on: which base it was, and every piece the sandbox added to it — this product's guidance, the persona, the field notes, the workspace's own standing rules — each with the exact words the model received. None of this appears in the transcript, so this is the only way to read it.",
91
+ })
92
+ .input(AgentIdSchema)
93
+ .output(ConversationPromptSchema),
83
94
  toolChildren: oc
84
95
  .route({
85
96
  method: "GET",
@@ -194,6 +205,28 @@ export const agentsContract = {
194
205
  })
195
206
  .input(AgentFileDiffQuerySchema)
196
207
  .output(FileDiffSchema),
208
+ // Stages rather than commits: the next capture commits it like the rest of the work, with nothing to unwind if the
209
+ // conversation's next turn moves it.
210
+ includeScratch: oc
211
+ .route({
212
+ method: "POST",
213
+ path: "/agents/{id}/scratch/include",
214
+ summary: "Carry files set aside as scratch with a conversation's work",
215
+ description:
216
+ "Takes files the review lists as scratch and adds them to the conversation's work, so the next merge carries them like any other file. For the file that only looked like scratch. Refused for a checkout of its own, which no merge can carry, while a turn is running, and for a path that is not scratch right now.",
217
+ })
218
+ .input(AgentScratchSchema)
219
+ .output(OkSchema),
220
+ deleteScratch: oc
221
+ .route({
222
+ method: "POST",
223
+ path: "/agents/{id}/scratch/delete",
224
+ summary: "Delete a conversation's scratch",
225
+ description:
226
+ "Removes files the review lists as scratch from the conversation's copy. Nothing else is touched, and nothing of it was ever merged. Refused while a turn is running, and for a path that is not scratch right now.",
227
+ })
228
+ .input(AgentScratchSchema)
229
+ .output(OkSchema),
197
230
  land: oc
198
231
  .route({
199
232
  method: "POST",
@@ -255,7 +288,7 @@ export const agentsContract = {
255
288
  path: "/agents/archive",
256
289
  summary: "Put conversations away",
257
290
  description:
258
- "The gentle counterpart to discarding. Commits whatever the conversation still has in progress onto its own branch, releases its working copy, and keeps the entry and the record. It leaves the live fleet and joins the archive. Refused for a conversation that is running.",
291
+ "The gentle counterpart to discarding. Commits whatever the conversation still has in progress onto its own branch, releases its working copy, and keeps the entry and the record. Its scratch is not committed and goes with the copy. It leaves the live fleet and joins the archive. Refused for a conversation that is running.",
259
292
  })
260
293
  .input(AgentArchiveSchema)
261
294
  .output(AgentsArchivedSchema),
@@ -3,7 +3,7 @@ import { streamOf } from "../protocol/routes.js";
3
3
  import { IntenticLineSchema } from "../events/system-events.js";
4
4
  import {
5
5
  CapabilitiesListSchema,
6
- CapabilityCardParamSchema,
6
+ CapabilityEntryParamSchema,
7
7
  CapabilityConnectionSchema,
8
8
  CapabilityIdParamSchema,
9
9
  CapabilityLoginSchema,
@@ -124,12 +124,12 @@ export const capabilitiesContract = {
124
124
  dismiss: oc
125
125
  .route({
126
126
  method: "DELETE",
127
- path: "/capabilities/recommendations/{card}",
127
+ path: "/capabilities/recommendations/{entry}",
128
128
  summary: "Stop suggesting this connection",
129
129
  description:
130
130
  "Not needed, for now. Nothing is torn down. The suggestion comes back if what prompted it in the workspace changes, because what is remembered is the evidence, not the refusal.",
131
131
  })
132
- .input(CapabilityCardParamSchema)
132
+ .input(CapabilityEntryParamSchema)
133
133
  .output(OkSchema),
134
134
  // Runs the capability's declared `loginCommand` in the terminal session the panel attaches to.
135
135
  login: oc
@@ -1,19 +1,21 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { streamOf } from "../protocol/routes.js";
3
3
  import { z } from "zod";
4
- import { DeviceAgentFlowSchema, DeviceFlowLineSchema, DeviceSandboxFlowSchema } from "../schemas/devices.js";
5
- import { HostScopesSchema } from "../schemas/capabilities.js";
6
- import { HostFactsSchema } from "../schemas/hosts.js";
4
+ import { DeviceAgentFlowSchema, DeviceFlowLineSchema, DeviceReportSchema, DeviceSandboxFlowSchema } from "../schemas/devices.js";
5
+ import { DeviceScopesSchema } from "../schemas/capabilities.js";
6
+ import { DeviceFactsSchema } from "../schemas/hosts.js";
7
7
  import { OkSchema } from "../schemas/shared.js";
8
8
 
9
9
  // What a connected device can be asked, over the socket it opened; the machine is the oRPC server, the daemon the
10
10
  // client. No `.route()`: the procedure path is the address, not HTTP. `mcp` stays opaque (`z.unknown()`) so a machine
11
11
  // can add tools without a daemon release; validated on the machine and by the agent's MCP client.
12
- export const hostContract = {
12
+ export const deviceContract = {
13
13
  // Device facts, refreshed on connect and on demand; the agent's skill pack is written against this shape.
14
- describe: oc.output(HostFactsSchema),
14
+ describe: oc.output(DeviceFactsSchema),
15
+ // The machine's folders, ports and agent health, answered by the agent itself; refused (FORBIDDEN) with "Run commands" off.
16
+ report: oc.output(DeviceReportSchema),
15
17
  // Pushed on connect and on edit; the machine enforces the grant, nothing on the sandbox side checks a scope.
16
- setScopes: oc.input(HostScopesSchema).output(OkSchema),
18
+ setScopes: oc.input(DeviceScopesSchema).output(OkSchema),
17
19
  // Daemon-driven liveness; doubles as keepalive against an idle tunnel and the gone-vs-quiet probe.
18
20
  ping: oc.output(OkSchema),
19
21
  // One MCP JSON-RPC message forwarded verbatim in both directions, unmodified.
@@ -3,8 +3,6 @@ import {
3
3
  PersonaIdParamSchema,
4
4
  PersonaKitSchema,
5
5
  PersonaPromptSchema,
6
- PersonaRouteAskSchema,
7
- PersonaRouteSchema,
8
6
  PersonaSchema,
9
7
  PersonaSkillBodySchema,
10
8
  PersonaSkillNameSchema,
@@ -50,17 +48,7 @@ export const personasContract = {
50
48
  .input(PersonaIdParamSchema)
51
49
  .output(OkSchema),
52
50
 
53
- // Costs a model call, hence POST though a read; the chat that asked applies the answer, this only reports it.
54
- route: oc
55
- .route({
56
- method: "POST",
57
- path: "/personas/route",
58
- summary: "Which persona a new chat belongs to",
59
- description:
60
- "Reads the message a chat has just been sent, and one line per persona, and names the card it belongs to, or none, along with the model that answered. Costs one small model call on the persona-routing list, and says so. Nothing is applied here: the chat that asked puts the card on, and only when the persona routing setting is on.",
61
- })
62
- .input(PersonaRouteAskSchema)
63
- .output(PersonaRouteSchema),
51
+ // Which persona a new chat belongs to is answered by `agent.routeChat`, in the same reading that chooses its model.
64
52
 
65
53
  // The kit: what this card is told, and the skills only it reaches.
66
54