@intentic/sandbox-contract 1.311.0 → 1.313.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 (444) hide show
  1. package/README.md +32 -4
  2. package/dist/chores/chores.js +6 -6
  3. package/dist/chores/chores.js.map +1 -1
  4. package/dist/chores/index.d.ts +0 -1
  5. package/dist/chores/index.d.ts.map +1 -1
  6. package/dist/chores/index.js +0 -1
  7. package/dist/chores/index.js.map +1 -1
  8. package/dist/chores/prompt.d.ts.map +1 -1
  9. package/dist/chores/prompt.js +3 -2
  10. package/dist/chores/prompt.js.map +1 -1
  11. package/dist/contracts/accounts.contract.d.ts +69 -0
  12. package/dist/contracts/accounts.contract.d.ts.map +1 -1
  13. package/dist/contracts/agent.contract.d.ts +436 -0
  14. package/dist/contracts/agent.contract.d.ts.map +1 -1
  15. package/dist/contracts/agent.contract.js +11 -1
  16. package/dist/contracts/agent.contract.js.map +1 -1
  17. package/dist/contracts/agents.contract.d.ts +718 -90
  18. package/dist/contracts/agents.contract.d.ts.map +1 -1
  19. package/dist/contracts/agents.contract.js +30 -2
  20. package/dist/contracts/agents.contract.js.map +1 -1
  21. package/dist/contracts/capabilities.contract.js +1 -1
  22. package/dist/contracts/capabilities.contract.js.map +1 -1
  23. package/dist/contracts/device.contract.d.ts +20 -4
  24. package/dist/contracts/device.contract.d.ts.map +1 -1
  25. package/dist/contracts/device.contract.js +1 -1
  26. package/dist/contracts/device.contract.js.map +1 -1
  27. package/dist/contracts/extensions.contract.d.ts +13 -0
  28. package/dist/contracts/extensions.contract.d.ts.map +1 -1
  29. package/dist/contracts/git.contract.d.ts +2 -0
  30. package/dist/contracts/git.contract.d.ts.map +1 -1
  31. package/dist/contracts/offload.contract.d.ts +107 -0
  32. package/dist/contracts/offload.contract.d.ts.map +1 -0
  33. package/dist/contracts/offload.contract.js +53 -0
  34. package/dist/contracts/offload.contract.js.map +1 -0
  35. package/dist/contracts/personas.contract.d.ts +2 -0
  36. package/dist/contracts/personas.contract.d.ts.map +1 -1
  37. package/dist/contracts/ports.contract.d.ts +5 -0
  38. package/dist/contracts/ports.contract.d.ts.map +1 -1
  39. package/dist/contracts/runner.contract.d.ts +204 -0
  40. package/dist/contracts/runner.contract.d.ts.map +1 -1
  41. package/dist/contracts/runner.contract.js +3 -1
  42. package/dist/contracts/runner.contract.js.map +1 -1
  43. package/dist/contracts/secrets.contract.d.ts.map +1 -1
  44. package/dist/contracts/secrets.contract.js +1 -0
  45. package/dist/contracts/secrets.contract.js.map +1 -1
  46. package/dist/contracts/sessions.contract.d.ts +59 -0
  47. package/dist/contracts/sessions.contract.d.ts.map +1 -1
  48. package/dist/contracts/settings.contract.d.ts +20 -8
  49. package/dist/contracts/settings.contract.d.ts.map +1 -1
  50. package/dist/contracts/settings.contract.js +2 -2
  51. package/dist/contracts/settings.contract.js.map +1 -1
  52. package/dist/contracts/system.contract.d.ts +230 -15
  53. package/dist/contracts/system.contract.d.ts.map +1 -1
  54. package/dist/contracts/translator.contract.d.ts +88 -0
  55. package/dist/contracts/translator.contract.d.ts.map +1 -1
  56. package/dist/contracts/workspace.contract.d.ts +217 -0
  57. package/dist/contracts/workspace.contract.d.ts.map +1 -1
  58. package/dist/contracts/workspace.contract.js +40 -3
  59. package/dist/contracts/workspace.contract.js.map +1 -1
  60. package/dist/documents/conversions.d.ts +81 -0
  61. package/dist/documents/conversions.d.ts.map +1 -0
  62. package/dist/documents/conversions.js +213 -0
  63. package/dist/documents/conversions.js.map +1 -0
  64. package/dist/documents/index.d.ts +4 -0
  65. package/dist/documents/index.d.ts.map +1 -0
  66. package/dist/documents/index.js +4 -0
  67. package/dist/documents/index.js.map +1 -0
  68. package/dist/documents/passthrough.d.ts +13 -0
  69. package/dist/documents/passthrough.d.ts.map +1 -0
  70. package/dist/documents/passthrough.js +101 -0
  71. package/dist/documents/passthrough.js.map +1 -0
  72. package/dist/documents/read.d.ts +24 -0
  73. package/dist/documents/read.d.ts.map +1 -0
  74. package/dist/documents/read.js +81 -0
  75. package/dist/documents/read.js.map +1 -0
  76. package/dist/events/agent-events.d.ts +235 -0
  77. package/dist/events/agent-events.d.ts.map +1 -1
  78. package/dist/events/agent-events.js +3 -0
  79. package/dist/events/agent-events.js.map +1 -1
  80. package/dist/events/child-run.d.ts +9 -0
  81. package/dist/events/child-run.d.ts.map +1 -0
  82. package/dist/events/child-run.js +41 -0
  83. package/dist/events/child-run.js.map +1 -0
  84. package/dist/events/errands.d.ts +5 -0
  85. package/dist/events/errands.d.ts.map +1 -0
  86. package/dist/events/errands.js +19 -0
  87. package/dist/events/errands.js.map +1 -0
  88. package/dist/events/land-breakage.d.ts +3 -0
  89. package/dist/events/land-breakage.d.ts.map +1 -1
  90. package/dist/events/land-breakage.js +3 -0
  91. package/dist/events/land-breakage.js.map +1 -1
  92. package/dist/events/land-conflict.d.ts +3 -0
  93. package/dist/events/land-conflict.d.ts.map +1 -0
  94. package/dist/events/land-conflict.js +4 -0
  95. package/dist/events/land-conflict.js.map +1 -0
  96. package/dist/events/requests.d.ts +152 -0
  97. package/dist/events/requests.d.ts.map +1 -1
  98. package/dist/events/requests.js +26 -1
  99. package/dist/events/requests.js.map +1 -1
  100. package/dist/events/system-events.d.ts +74 -12
  101. package/dist/events/system-events.d.ts.map +1 -1
  102. package/dist/events/system-events.js +3 -1
  103. package/dist/events/system-events.js.map +1 -1
  104. package/dist/events/transcript.d.ts +387 -0
  105. package/dist/events/transcript.d.ts.map +1 -1
  106. package/dist/events/transcript.js +3 -0
  107. package/dist/events/transcript.js.map +1 -1
  108. package/dist/events/verify-nudge.d.ts.map +1 -1
  109. package/dist/events/verify-nudge.js.map +1 -1
  110. package/dist/front/browser-wire.d.ts +6 -0
  111. package/dist/front/browser-wire.d.ts.map +1 -0
  112. package/dist/front/browser-wire.js +4 -0
  113. package/dist/front/browser-wire.js.map +1 -0
  114. package/dist/front/front-wire.d.ts +6 -0
  115. package/dist/front/front-wire.d.ts.map +1 -0
  116. package/dist/front/front-wire.js +5 -0
  117. package/dist/front/front-wire.js.map +1 -0
  118. package/dist/front/generated/browser-wire.d.ts +19 -0
  119. package/dist/front/generated/browser-wire.d.ts.map +1 -0
  120. package/dist/front/generated/browser-wire.js +2 -0
  121. package/dist/front/generated/browser-wire.js.map +1 -0
  122. package/dist/front/generated/wire.d.ts +70 -1
  123. package/dist/front/generated/wire.d.ts.map +1 -1
  124. package/dist/ids/conversation-ids.d.ts +3 -0
  125. package/dist/ids/conversation-ids.d.ts.map +1 -1
  126. package/dist/ids/conversation-ids.js +4 -2
  127. package/dist/ids/conversation-ids.js.map +1 -1
  128. package/dist/ids/session-names.d.ts +3 -0
  129. package/dist/ids/session-names.d.ts.map +1 -1
  130. package/dist/ids/session-names.js +3 -0
  131. package/dist/ids/session-names.js.map +1 -1
  132. package/dist/index.d.ts +2052 -190
  133. package/dist/index.d.ts.map +1 -1
  134. package/dist/index.js +15 -1
  135. package/dist/index.js.map +1 -1
  136. package/dist/models/agent-catalog.d.ts.map +1 -1
  137. package/dist/models/agent-catalog.js +4 -6
  138. package/dist/models/agent-catalog.js.map +1 -1
  139. package/dist/models/agent-runtimes.d.ts +2 -1
  140. package/dist/models/agent-runtimes.d.ts.map +1 -1
  141. package/dist/models/agent-runtimes.js +7 -1
  142. package/dist/models/agent-runtimes.js.map +1 -1
  143. package/dist/models/plan-pools.d.ts +22 -1
  144. package/dist/models/plan-pools.d.ts.map +1 -1
  145. package/dist/models/plan-pools.js +86 -0
  146. package/dist/models/plan-pools.js.map +1 -1
  147. package/dist/policy/request-status.d.ts +1 -1
  148. package/dist/policy/request-status.d.ts.map +1 -1
  149. package/dist/policy/request-status.js +4 -11
  150. package/dist/policy/request-status.js.map +1 -1
  151. package/dist/policy/reserved-servers.d.ts.map +1 -1
  152. package/dist/policy/reserved-servers.js +2 -1
  153. package/dist/policy/reserved-servers.js.map +1 -1
  154. package/dist/policy/turned-away.d.ts.map +1 -1
  155. package/dist/policy/turned-away.js +1 -0
  156. package/dist/policy/turned-away.js.map +1 -1
  157. package/dist/protocol/container-requirements.d.ts +0 -1
  158. package/dist/protocol/container-requirements.d.ts.map +1 -1
  159. package/dist/protocol/container-requirements.js +1 -2
  160. package/dist/protocol/container-requirements.js.map +1 -1
  161. package/dist/protocol/edge-verdict.d.ts +2 -1
  162. package/dist/protocol/edge-verdict.d.ts.map +1 -1
  163. package/dist/protocol/edge-verdict.js +1 -1
  164. package/dist/protocol/edge-verdict.js.map +1 -1
  165. package/dist/protocol/ingress-contract.d.ts +1 -12
  166. package/dist/protocol/ingress-contract.d.ts.map +1 -1
  167. package/dist/protocol/ingress-contract.js +1 -1
  168. package/dist/protocol/ingress-contract.js.map +1 -1
  169. package/dist/protocol/raw-routes.d.ts +36 -26
  170. package/dist/protocol/raw-routes.d.ts.map +1 -1
  171. package/dist/protocol/raw-routes.js +17 -23
  172. package/dist/protocol/raw-routes.js.map +1 -1
  173. package/dist/protocol/route-meta.d.ts +22 -0
  174. package/dist/protocol/route-meta.d.ts.map +1 -1
  175. package/dist/protocol/route-meta.js +16 -0
  176. package/dist/protocol/route-meta.js.map +1 -1
  177. package/dist/protocol/runner-protocol.d.ts +34 -0
  178. package/dist/protocol/runner-protocol.d.ts.map +1 -1
  179. package/dist/protocol/runner-protocol.js +33 -0
  180. package/dist/protocol/runner-protocol.js.map +1 -1
  181. package/dist/protocol/tunnel-bulk.d.ts +2 -0
  182. package/dist/protocol/tunnel-bulk.d.ts.map +1 -0
  183. package/dist/protocol/tunnel-bulk.js +3 -0
  184. package/dist/protocol/tunnel-bulk.js.map +1 -0
  185. package/dist/protocol/x402.d.ts +17 -0
  186. package/dist/protocol/x402.d.ts.map +1 -0
  187. package/dist/protocol/x402.js +37 -0
  188. package/dist/protocol/x402.js.map +1 -0
  189. package/dist/schemas/activity.d.ts.map +1 -1
  190. package/dist/schemas/activity.js.map +1 -1
  191. package/dist/schemas/agent.d.ts +25 -0
  192. package/dist/schemas/agent.d.ts.map +1 -1
  193. package/dist/schemas/agent.js +14 -2
  194. package/dist/schemas/agent.js.map +1 -1
  195. package/dist/schemas/agents.d.ts +90 -18
  196. package/dist/schemas/agents.d.ts.map +1 -1
  197. package/dist/schemas/agents.js +49 -5
  198. package/dist/schemas/agents.js.map +1 -1
  199. package/dist/schemas/automations.d.ts +23 -6
  200. package/dist/schemas/automations.d.ts.map +1 -1
  201. package/dist/schemas/automations.js.map +1 -1
  202. package/dist/schemas/devices.d.ts +134 -7
  203. package/dist/schemas/devices.d.ts.map +1 -1
  204. package/dist/schemas/devices.js +43 -18
  205. package/dist/schemas/devices.js.map +1 -1
  206. package/dist/schemas/extension-updates.d.ts +26 -0
  207. package/dist/schemas/extension-updates.d.ts.map +1 -1
  208. package/dist/schemas/extension-updates.js +4 -0
  209. package/dist/schemas/extension-updates.js.map +1 -1
  210. package/dist/schemas/git/git.d.ts +19 -0
  211. package/dist/schemas/git/git.d.ts.map +1 -1
  212. package/dist/schemas/git/git.js +1 -0
  213. package/dist/schemas/git/git.js.map +1 -1
  214. package/dist/schemas/hosts.d.ts +35 -3
  215. package/dist/schemas/hosts.d.ts.map +1 -1
  216. package/dist/schemas/hosts.js +22 -6
  217. package/dist/schemas/hosts.js.map +1 -1
  218. package/dist/schemas/keep-warm.d.ts +2 -12
  219. package/dist/schemas/keep-warm.d.ts.map +1 -1
  220. package/dist/schemas/keep-warm.js +8 -10
  221. package/dist/schemas/keep-warm.js.map +1 -1
  222. package/dist/schemas/metrics.d.ts +29 -0
  223. package/dist/schemas/metrics.d.ts.map +1 -1
  224. package/dist/schemas/metrics.js +19 -3
  225. package/dist/schemas/metrics.js.map +1 -1
  226. package/dist/schemas/offload.d.ts +62 -0
  227. package/dist/schemas/offload.d.ts.map +1 -0
  228. package/dist/schemas/offload.js +23 -0
  229. package/dist/schemas/offload.js.map +1 -0
  230. package/dist/schemas/personas.d.ts +3 -0
  231. package/dist/schemas/personas.d.ts.map +1 -1
  232. package/dist/schemas/personas.js +12 -3
  233. package/dist/schemas/personas.js.map +1 -1
  234. package/dist/schemas/ports.d.ts +10 -0
  235. package/dist/schemas/ports.d.ts.map +1 -1
  236. package/dist/schemas/ports.js +8 -0
  237. package/dist/schemas/ports.js.map +1 -1
  238. package/dist/schemas/providers/plan-limits.d.ts +169 -0
  239. package/dist/schemas/providers/plan-limits.d.ts.map +1 -1
  240. package/dist/schemas/providers/plan-limits.js +54 -1
  241. package/dist/schemas/providers/plan-limits.js.map +1 -1
  242. package/dist/schemas/providers/provider-oauth.d.ts +69 -0
  243. package/dist/schemas/providers/provider-oauth.d.ts.map +1 -1
  244. package/dist/schemas/providers/provider-oauth.js +6 -1
  245. package/dist/schemas/providers/provider-oauth.js.map +1 -1
  246. package/dist/schemas/settings-history.d.ts +55 -0
  247. package/dist/schemas/settings-history.d.ts.map +1 -0
  248. package/dist/schemas/settings-history.js +73 -0
  249. package/dist/schemas/settings-history.js.map +1 -0
  250. package/dist/schemas/settings.d.ts +188 -4
  251. package/dist/schemas/settings.d.ts.map +1 -1
  252. package/dist/schemas/settings.js +41 -26
  253. package/dist/schemas/settings.js.map +1 -1
  254. package/dist/schemas/speaker.d.ts +36 -0
  255. package/dist/schemas/speaker.d.ts.map +1 -0
  256. package/dist/schemas/speaker.js +62 -0
  257. package/dist/schemas/speaker.js.map +1 -0
  258. package/dist/schemas/state-plan.d.ts +46 -0
  259. package/dist/schemas/state-plan.d.ts.map +1 -0
  260. package/dist/schemas/state-plan.js +31 -0
  261. package/dist/schemas/state-plan.js.map +1 -0
  262. package/dist/schemas/system.d.ts +64 -0
  263. package/dist/schemas/system.d.ts.map +1 -1
  264. package/dist/schemas/system.js +12 -1
  265. package/dist/schemas/system.js.map +1 -1
  266. package/dist/schemas/workspace/mainline.d.ts +513 -0
  267. package/dist/schemas/workspace/mainline.d.ts.map +1 -0
  268. package/dist/schemas/workspace/mainline.js +182 -0
  269. package/dist/schemas/workspace/mainline.js.map +1 -0
  270. package/dist/schemas/workspace/workspace-tree.d.ts +23 -0
  271. package/dist/schemas/workspace/workspace-tree.d.ts.map +1 -1
  272. package/dist/schemas/workspace/workspace-tree.js +34 -0
  273. package/dist/schemas/workspace/workspace-tree.js.map +1 -1
  274. package/dist/state/contract-lock.d.ts +1 -0
  275. package/dist/state/contract-lock.d.ts.map +1 -1
  276. package/dist/state/contract-lock.js +47 -1
  277. package/dist/state/contract-lock.js.map +1 -1
  278. package/dist/state/definition.d.ts +44 -20
  279. package/dist/state/definition.d.ts.map +1 -1
  280. package/dist/state/definition.js.map +1 -1
  281. package/dist/state/fix-stance.d.ts +1 -1
  282. package/dist/state/fix-stance.d.ts.map +1 -1
  283. package/dist/state/fix-stance.js +2 -1
  284. package/dist/state/fix-stance.js.map +1 -1
  285. package/dist/state/history-state.d.ts.map +1 -1
  286. package/dist/state/history-state.js +7 -0
  287. package/dist/state/history-state.js.map +1 -1
  288. package/dist/state/landed-commit.d.ts +1 -0
  289. package/dist/state/landed-commit.d.ts.map +1 -1
  290. package/dist/state/landed-commit.js +2 -0
  291. package/dist/state/landed-commit.js.map +1 -1
  292. package/dist/state/red-streak.d.ts +7 -0
  293. package/dist/state/red-streak.d.ts.map +1 -0
  294. package/dist/state/red-streak.js +11 -0
  295. package/dist/state/red-streak.js.map +1 -0
  296. package/dist/state/runtime-state.d.ts +3 -0
  297. package/dist/state/runtime-state.d.ts.map +1 -1
  298. package/dist/state/runtime-state.js +1 -0
  299. package/dist/state/runtime-state.js.map +1 -1
  300. package/dist/state/workspace-state.d.ts +23 -1
  301. package/dist/state/workspace-state.d.ts.map +1 -1
  302. package/dist/state/workspace-state.js +33 -3
  303. package/dist/state/workspace-state.js.map +1 -1
  304. package/dist/text/shell-regions.d.ts +1 -0
  305. package/dist/text/shell-regions.d.ts.map +1 -1
  306. package/dist/text/shell-regions.js +1 -1
  307. package/dist/text/shell-regions.js.map +1 -1
  308. package/dist/text/transcript-fold.d.ts +1 -0
  309. package/dist/text/transcript-fold.d.ts.map +1 -1
  310. package/dist/text/transcript-fold.js +24 -8
  311. package/dist/text/transcript-fold.js.map +1 -1
  312. package/package.json +42 -42
  313. package/src/chores/chores.ts +6 -6
  314. package/src/chores/index.ts +0 -1
  315. package/src/chores/prompt.ts +3 -2
  316. package/src/contracts/agent.contract.ts +14 -0
  317. package/src/contracts/agents.contract.ts +36 -1
  318. package/src/contracts/capabilities.contract.ts +2 -2
  319. package/src/contracts/device.contract.ts +5 -3
  320. package/src/contracts/offload.contract.ts +60 -0
  321. package/src/contracts/runner.contract.ts +7 -1
  322. package/src/contracts/secrets.contract.ts +2 -0
  323. package/src/contracts/settings.contract.ts +2 -1
  324. package/src/contracts/workspace.contract.ts +54 -2
  325. package/src/documents/conversions.ts +402 -0
  326. package/src/documents/index.ts +7 -0
  327. package/src/documents/passthrough.ts +139 -0
  328. package/src/documents/read.ts +114 -0
  329. package/src/events/agent-events.ts +5 -0
  330. package/src/events/child-run.test.ts +81 -0
  331. package/src/events/child-run.ts +73 -0
  332. package/src/events/errands.test.ts +22 -0
  333. package/src/events/errands.ts +27 -0
  334. package/src/events/land-breakage.ts +12 -0
  335. package/src/events/land-conflict.ts +12 -0
  336. package/src/events/requests.ts +40 -1
  337. package/src/events/system-events.ts +9 -3
  338. package/src/events/transcript.ts +8 -0
  339. package/src/events/verify-nudge.ts +4 -3
  340. package/src/front/browser-wire.ts +20 -0
  341. package/src/front/front-wire.ts +15 -0
  342. package/src/front/generated/browser-wire.json +138 -0
  343. package/src/front/generated/browser-wire.ts +16 -0
  344. package/src/front/generated/front-wire.json +793 -0
  345. package/src/front/generated/tunnel.json +38 -0
  346. package/src/front/generated/wire.ts +37 -9
  347. package/src/front/wire-manifests.test.ts +61 -0
  348. package/src/ids/conversation-ids.ts +13 -5
  349. package/src/ids/session-names.ts +7 -0
  350. package/src/index.ts +15 -2
  351. package/src/models/agent-catalog.test.ts +6 -4
  352. package/src/models/agent-catalog.ts +4 -6
  353. package/src/models/agent-runtimes.ts +22 -7
  354. package/src/models/capability-ledger.test.ts +2 -0
  355. package/src/models/plan-pools.test.ts +121 -2
  356. package/src/models/plan-pools.ts +152 -2
  357. package/src/policy/request-status.ts +4 -12
  358. package/src/policy/reserved-servers.test.ts +6 -0
  359. package/src/policy/reserved-servers.ts +13 -10
  360. package/src/policy/turned-away.ts +3 -0
  361. package/src/protocol/container-requirements.test.ts +2 -3
  362. package/src/protocol/container-requirements.ts +1 -7
  363. package/src/protocol/edge-verdict.ts +13 -11
  364. package/src/protocol/ingress-contract.fixture.json +90 -0
  365. package/src/protocol/ingress-contract.test.ts +18 -26
  366. package/src/protocol/ingress-contract.ts +10 -25
  367. package/src/protocol/raw-routes.ts +22 -26
  368. package/src/protocol/route-meta.ts +39 -0
  369. package/src/protocol/runner-protocol.ts +53 -0
  370. package/src/protocol/tunnel-bulk.test.ts +37 -0
  371. package/src/protocol/tunnel-bulk.ts +7 -0
  372. package/src/protocol/x402.test.ts +29 -0
  373. package/src/protocol/x402.ts +61 -0
  374. package/src/schemas/activity.ts +3 -1
  375. package/src/schemas/agent.ts +28 -3
  376. package/src/schemas/agents.ts +83 -8
  377. package/src/schemas/automations.ts +4 -2
  378. package/src/schemas/devices.ts +106 -39
  379. package/src/schemas/extension-updates.ts +6 -0
  380. package/src/schemas/git/git.ts +5 -0
  381. package/src/schemas/hosts.ts +64 -13
  382. package/src/schemas/ic-shape-args.test.ts +64 -0
  383. package/src/schemas/keep-warm.test.ts +6 -13
  384. package/src/schemas/keep-warm.ts +15 -20
  385. package/src/schemas/metrics.ts +28 -3
  386. package/src/schemas/offload.ts +44 -0
  387. package/src/schemas/personas.ts +18 -3
  388. package/src/schemas/ports.ts +10 -0
  389. package/src/schemas/providers/plan-limits.ts +84 -1
  390. package/src/schemas/providers/provider-oauth.ts +10 -1
  391. package/src/schemas/settings-history.ts +108 -0
  392. package/src/schemas/settings.test.ts +54 -1
  393. package/src/schemas/settings.ts +88 -49
  394. package/src/schemas/speaker.ts +89 -0
  395. package/src/schemas/state-plan.test.ts +69 -0
  396. package/src/schemas/state-plan.ts +47 -0
  397. package/src/schemas/system.ts +24 -3
  398. package/src/schemas/workspace/mainline.test.ts +28 -0
  399. package/src/schemas/workspace/mainline.ts +268 -0
  400. package/src/schemas/workspace/workspace-tree.ts +47 -0
  401. package/src/state/contract-lock.test.ts +65 -4
  402. package/src/state/contract-lock.ts +70 -2
  403. package/src/state/definition.ts +3 -2
  404. package/src/state/fix-stance.test.ts +8 -0
  405. package/src/state/fix-stance.ts +3 -3
  406. package/src/state/history-state.ts +19 -0
  407. package/src/state/landed-commit.test.ts +12 -1
  408. package/src/state/landed-commit.ts +5 -0
  409. package/src/state/red-streak.test.ts +28 -0
  410. package/src/state/red-streak.ts +28 -0
  411. package/src/state/runtime-state.ts +4 -0
  412. package/src/state/workspace-state.test.ts +7 -1
  413. package/src/state/workspace-state.ts +45 -3
  414. package/src/text/shell-regions.test.ts +38 -0
  415. package/src/text/shell-regions.ts +3 -3
  416. package/src/text/transcript-fold.test.ts +46 -0
  417. package/src/text/transcript-fold.ts +31 -9
  418. package/dist/chores/fix-deps.d.ts +0 -10
  419. package/dist/chores/fix-deps.d.ts.map +0 -1
  420. package/dist/chores/fix-deps.js +0 -18
  421. package/dist/chores/fix-deps.js.map +0 -1
  422. package/dist/protocol/ingress-protocol.d.ts +0 -30
  423. package/dist/protocol/ingress-protocol.d.ts.map +0 -1
  424. package/dist/protocol/ingress-protocol.js +0 -300
  425. package/dist/protocol/ingress-protocol.js.map +0 -1
  426. package/dist/protocol/terminal-protocol.d.ts +0 -18
  427. package/dist/protocol/terminal-protocol.d.ts.map +0 -1
  428. package/dist/protocol/terminal-protocol.js +0 -2
  429. package/dist/protocol/terminal-protocol.js.map +0 -1
  430. package/dist/protocol/tunnel-heartbeat.d.ts +0 -19
  431. package/dist/protocol/tunnel-heartbeat.d.ts.map +0 -1
  432. package/dist/protocol/tunnel-heartbeat.js +0 -41
  433. package/dist/protocol/tunnel-heartbeat.js.map +0 -1
  434. package/dist/protocol/upgrade-relay.d.ts +0 -4
  435. package/dist/protocol/upgrade-relay.d.ts.map +0 -1
  436. package/dist/protocol/upgrade-relay.js +0 -25
  437. package/dist/protocol/upgrade-relay.js.map +0 -1
  438. package/src/chores/fix-deps.ts +0 -22
  439. package/src/protocol/ingress-protocol.test.ts +0 -579
  440. package/src/protocol/ingress-protocol.ts +0 -469
  441. package/src/protocol/terminal-protocol.ts +0 -13
  442. package/src/protocol/tunnel-heartbeat.test.ts +0 -75
  443. package/src/protocol/tunnel-heartbeat.ts +0 -67
  444. package/src/protocol/upgrade-relay.ts +0 -28
@@ -0,0 +1,793 @@
1
+ {
2
+ "askPatienceMs": 5000,
3
+ "env": {
4
+ "frontSocket": "INTENTIC_FRONT_SOCKET",
5
+ "nodeSocket": "INTENTIC_NODE_SOCKET"
6
+ },
7
+ "frame": {
8
+ "lengthBytes": 4,
9
+ "maxBytes": 67108864
10
+ },
11
+ "fromNode": {
12
+ "$defs": {
13
+ "Answer": {
14
+ "oneOf": [
15
+ {
16
+ "properties": {
17
+ "answer": {
18
+ "const": "preview",
19
+ "type": "string"
20
+ },
21
+ "route": {
22
+ "$ref": "#/$defs/PreviewRoute"
23
+ }
24
+ },
25
+ "required": [
26
+ "answer",
27
+ "route"
28
+ ],
29
+ "type": "object"
30
+ },
31
+ {
32
+ "properties": {
33
+ "answer": {
34
+ "const": "terminal",
35
+ "type": "string"
36
+ },
37
+ "member": {
38
+ "description": "The member whose ticket opened it, lowercased; absent when the daemon runs without auth.",
39
+ "type": [
40
+ "string",
41
+ "null"
42
+ ]
43
+ },
44
+ "plan": {
45
+ "$ref": "#/$defs/TerminalPlan"
46
+ }
47
+ },
48
+ "required": [
49
+ "answer",
50
+ "plan"
51
+ ],
52
+ "type": "object"
53
+ }
54
+ ]
55
+ },
56
+ "Certificate": {
57
+ "description": "A PEM certificate chain and its PEM private key.",
58
+ "properties": {
59
+ "certificate": {
60
+ "type": "string"
61
+ },
62
+ "privateKey": {
63
+ "type": "string"
64
+ }
65
+ },
66
+ "required": [
67
+ "certificate",
68
+ "privateKey"
69
+ ],
70
+ "type": "object"
71
+ },
72
+ "Endpoint": {
73
+ "properties": {
74
+ "host": {
75
+ "type": "string"
76
+ },
77
+ "port": {
78
+ "format": "uint16",
79
+ "maximum": 65535,
80
+ "minimum": 0,
81
+ "type": "integer"
82
+ }
83
+ },
84
+ "required": [
85
+ "host",
86
+ "port"
87
+ ],
88
+ "type": "object"
89
+ },
90
+ "FrontQuestion": {
91
+ "description": "A question Node asks the front.",
92
+ "oneOf": [
93
+ {
94
+ "description": "Where each checkout's count stands, once every write that finished before this was sent is counted.",
95
+ "properties": {
96
+ "dirs": {
97
+ "items": {
98
+ "type": "string"
99
+ },
100
+ "type": "array"
101
+ },
102
+ "question": {
103
+ "const": "sync",
104
+ "type": "string"
105
+ }
106
+ },
107
+ "required": [
108
+ "question",
109
+ "dirs"
110
+ ],
111
+ "type": "object"
112
+ }
113
+ ]
114
+ },
115
+ "ListenConfig": {
116
+ "description": "Every port the front binds, as Node's config names them; an absent one is not bound.",
117
+ "properties": {
118
+ "daemon": {
119
+ "$ref": "#/$defs/Endpoint"
120
+ },
121
+ "frameAncestors": {
122
+ "description": "Origins that may frame a preview besides the preview itself.",
123
+ "items": {
124
+ "type": "string"
125
+ },
126
+ "type": "array"
127
+ },
128
+ "loopback": {
129
+ "anyOf": [
130
+ {
131
+ "$ref": "#/$defs/Endpoint"
132
+ },
133
+ {
134
+ "type": "null"
135
+ }
136
+ ]
137
+ },
138
+ "preview": {
139
+ "anyOf": [
140
+ {
141
+ "$ref": "#/$defs/Endpoint"
142
+ },
143
+ {
144
+ "type": "null"
145
+ }
146
+ ]
147
+ },
148
+ "previewProbePath": {
149
+ "description": "A preview path Node answers whatever its host resolves to.",
150
+ "type": "string"
151
+ },
152
+ "sandboxId": {
153
+ "description": "The 12-hex id every public hostname ends in; without one, a label's prefix alone classifies it.",
154
+ "type": [
155
+ "string",
156
+ "null"
157
+ ]
158
+ }
159
+ },
160
+ "required": [
161
+ "daemon",
162
+ "frameAncestors",
163
+ "previewProbePath"
164
+ ],
165
+ "type": "object"
166
+ },
167
+ "Page": {
168
+ "description": "An answer Node renders whole when asked, for the front to write as it stands: a refusal page, or the probe's report.",
169
+ "properties": {
170
+ "body": {
171
+ "type": "string"
172
+ },
173
+ "headers": {
174
+ "additionalProperties": {
175
+ "type": "string"
176
+ },
177
+ "type": "object"
178
+ },
179
+ "status": {
180
+ "format": "uint16",
181
+ "maximum": 65535,
182
+ "minimum": 0,
183
+ "type": "integer"
184
+ }
185
+ },
186
+ "required": [
187
+ "status",
188
+ "headers",
189
+ "body"
190
+ ],
191
+ "type": "object"
192
+ },
193
+ "PreviewRoute": {
194
+ "description": "What becomes of a preview host's request, decided by Node once, when asked.",
195
+ "oneOf": [
196
+ {
197
+ "description": "The front relays it to this upstream.",
198
+ "properties": {
199
+ "to": {
200
+ "const": "upstream",
201
+ "type": "string"
202
+ },
203
+ "upstream": {
204
+ "$ref": "#/$defs/Upstream"
205
+ }
206
+ },
207
+ "required": [
208
+ "to",
209
+ "upstream"
210
+ ],
211
+ "type": "object"
212
+ },
213
+ {
214
+ "description": "The front answers it with this page.",
215
+ "properties": {
216
+ "page": {
217
+ "$ref": "#/$defs/Page"
218
+ },
219
+ "to": {
220
+ "const": "page",
221
+ "type": "string"
222
+ }
223
+ },
224
+ "required": [
225
+ "to",
226
+ "page"
227
+ ],
228
+ "type": "object"
229
+ },
230
+ {
231
+ "description": "The sandbox's outbox: handed back to Node marked `outbox`, which serves the file it names.",
232
+ "properties": {
233
+ "to": {
234
+ "const": "outbox",
235
+ "type": "string"
236
+ }
237
+ },
238
+ "required": [
239
+ "to"
240
+ ],
241
+ "type": "object"
242
+ }
243
+ ]
244
+ },
245
+ "Scheme": {
246
+ "enum": [
247
+ "http",
248
+ "https"
249
+ ],
250
+ "type": "string"
251
+ },
252
+ "TerminalPlan": {
253
+ "description": "What a terminal socket opens onto, as Node decided from its ticket, session name and working directory.",
254
+ "oneOf": [
255
+ {
256
+ "description": "The tmux session `name`, created in `create_in` when it does not exist yet; without a directory it is only ever\nattached, so a session that is gone fails as itself rather than as a bare shell in its place. The front composes\nthe command.",
257
+ "properties": {
258
+ "createIn": {
259
+ "type": [
260
+ "string",
261
+ "null"
262
+ ]
263
+ },
264
+ "name": {
265
+ "type": "string"
266
+ },
267
+ "plan": {
268
+ "const": "session",
269
+ "type": "string"
270
+ }
271
+ },
272
+ "required": [
273
+ "plan",
274
+ "name"
275
+ ],
276
+ "type": "object"
277
+ },
278
+ {
279
+ "description": "A service's log, followed from its first line.",
280
+ "properties": {
281
+ "path": {
282
+ "type": "string"
283
+ },
284
+ "plan": {
285
+ "const": "tail",
286
+ "type": "string"
287
+ }
288
+ },
289
+ "required": [
290
+ "plan",
291
+ "path"
292
+ ],
293
+ "type": "object"
294
+ },
295
+ {
296
+ "description": "Opens only to end at once: the session names nothing there is to show.",
297
+ "properties": {
298
+ "code": {
299
+ "format": "int32",
300
+ "type": "integer"
301
+ },
302
+ "plan": {
303
+ "const": "exit",
304
+ "type": "string"
305
+ },
306
+ "reason": {
307
+ "type": "string"
308
+ }
309
+ },
310
+ "required": [
311
+ "plan",
312
+ "code",
313
+ "reason"
314
+ ],
315
+ "type": "object"
316
+ },
317
+ {
318
+ "description": "Closed with this WebSocket close code before anything is attached.",
319
+ "properties": {
320
+ "code": {
321
+ "format": "uint16",
322
+ "maximum": 65535,
323
+ "minimum": 0,
324
+ "type": "integer"
325
+ },
326
+ "plan": {
327
+ "const": "refused",
328
+ "type": "string"
329
+ },
330
+ "reason": {
331
+ "type": "string"
332
+ }
333
+ },
334
+ "required": [
335
+ "plan",
336
+ "code",
337
+ "reason"
338
+ ],
339
+ "type": "object"
340
+ }
341
+ ]
342
+ },
343
+ "TunnelConfig": {
344
+ "description": "The ingress tunnel's door, the reachability grant it presents there, and the daemon's transfer routes it announces\n(`METHOD /path` each, as the daemon names them), which the edge sends down the bulk socket.",
345
+ "properties": {
346
+ "bulk": {
347
+ "default": [],
348
+ "items": {
349
+ "type": "string"
350
+ },
351
+ "type": "array"
352
+ },
353
+ "grant": {
354
+ "type": "string"
355
+ },
356
+ "url": {
357
+ "type": "string"
358
+ }
359
+ },
360
+ "required": [
361
+ "url",
362
+ "grant"
363
+ ],
364
+ "type": "object"
365
+ },
366
+ "Upstream": {
367
+ "description": "A local upstream a preview host relays to.",
368
+ "properties": {
369
+ "frameable": {
370
+ "description": "Framed by the editor: `frame-ancestors` is set and `x-frame-options` dropped.",
371
+ "type": "boolean"
372
+ },
373
+ "host": {
374
+ "type": "string"
375
+ },
376
+ "localhost": {
377
+ "description": "Rewrites Host and Origin to `localhost:<port>`, for an app that never agreed to its preview name.",
378
+ "type": "boolean"
379
+ },
380
+ "port": {
381
+ "format": "uint16",
382
+ "maximum": 65535,
383
+ "minimum": 0,
384
+ "type": "integer"
385
+ },
386
+ "scheme": {
387
+ "$ref": "#/$defs/Scheme"
388
+ }
389
+ },
390
+ "required": [
391
+ "host",
392
+ "port",
393
+ "scheme",
394
+ "localhost",
395
+ "frameable"
396
+ ],
397
+ "type": "object"
398
+ },
399
+ "WatchedCheckout": {
400
+ "description": "A checkout whose changes the front counts: its working tree, the git dir holding its index and HEAD, and the common\ndir holding refs and excludes (the git dir itself for a repository's main checkout).",
401
+ "properties": {
402
+ "commonDir": {
403
+ "type": "string"
404
+ },
405
+ "dir": {
406
+ "type": "string"
407
+ },
408
+ "gitDir": {
409
+ "type": "string"
410
+ }
411
+ },
412
+ "required": [
413
+ "dir",
414
+ "gitDir",
415
+ "commonDir"
416
+ ],
417
+ "type": "object"
418
+ }
419
+ },
420
+ "description": "Everything Node sends the front.",
421
+ "oneOf": [
422
+ {
423
+ "description": "Node's HTTP socket is accepting; once per Node process.",
424
+ "properties": {
425
+ "build": {
426
+ "type": "string"
427
+ },
428
+ "kind": {
429
+ "const": "hello",
430
+ "type": "string"
431
+ },
432
+ "pid": {
433
+ "format": "uint32",
434
+ "minimum": 0,
435
+ "type": "integer"
436
+ }
437
+ },
438
+ "required": [
439
+ "kind",
440
+ "build",
441
+ "pid"
442
+ ],
443
+ "type": "object"
444
+ },
445
+ {
446
+ "properties": {
447
+ "config": {
448
+ "$ref": "#/$defs/ListenConfig"
449
+ },
450
+ "kind": {
451
+ "const": "listen",
452
+ "type": "string"
453
+ }
454
+ },
455
+ "required": [
456
+ "kind",
457
+ "config"
458
+ ],
459
+ "type": "object"
460
+ },
461
+ {
462
+ "properties": {
463
+ "certificate": {
464
+ "anyOf": [
465
+ {
466
+ "$ref": "#/$defs/Certificate"
467
+ },
468
+ {
469
+ "type": "null"
470
+ }
471
+ ]
472
+ },
473
+ "kind": {
474
+ "const": "certificate",
475
+ "type": "string"
476
+ }
477
+ },
478
+ "required": [
479
+ "kind"
480
+ ],
481
+ "type": "object"
482
+ },
483
+ {
484
+ "properties": {
485
+ "kind": {
486
+ "const": "tunnel",
487
+ "type": "string"
488
+ },
489
+ "tunnel": {
490
+ "anyOf": [
491
+ {
492
+ "$ref": "#/$defs/TunnelConfig"
493
+ },
494
+ {
495
+ "type": "null"
496
+ }
497
+ ]
498
+ }
499
+ },
500
+ "required": [
501
+ "kind"
502
+ ],
503
+ "type": "object"
504
+ },
505
+ {
506
+ "properties": {
507
+ "id": {
508
+ "format": "uint32",
509
+ "minimum": 0,
510
+ "type": "integer"
511
+ },
512
+ "kind": {
513
+ "const": "ask",
514
+ "type": "string"
515
+ },
516
+ "question": {
517
+ "$ref": "#/$defs/FrontQuestion"
518
+ }
519
+ },
520
+ "required": [
521
+ "kind",
522
+ "id",
523
+ "question"
524
+ ],
525
+ "type": "object"
526
+ },
527
+ {
528
+ "properties": {
529
+ "answer": {
530
+ "$ref": "#/$defs/Answer"
531
+ },
532
+ "id": {
533
+ "format": "uint32",
534
+ "minimum": 0,
535
+ "type": "integer"
536
+ },
537
+ "kind": {
538
+ "const": "answer",
539
+ "type": "string"
540
+ }
541
+ },
542
+ "required": [
543
+ "kind",
544
+ "id",
545
+ "answer"
546
+ ],
547
+ "type": "object"
548
+ },
549
+ {
550
+ "properties": {
551
+ "id": {
552
+ "format": "uint32",
553
+ "minimum": 0,
554
+ "type": "integer"
555
+ },
556
+ "kind": {
557
+ "const": "refused",
558
+ "type": "string"
559
+ },
560
+ "message": {
561
+ "type": "string"
562
+ }
563
+ },
564
+ "required": [
565
+ "kind",
566
+ "id",
567
+ "message"
568
+ ],
569
+ "type": "object"
570
+ },
571
+ {
572
+ "description": "Closes every terminal the member opened; naming none closes every terminal a member opened.",
573
+ "properties": {
574
+ "kind": {
575
+ "const": "revoke",
576
+ "type": "string"
577
+ },
578
+ "member": {
579
+ "type": [
580
+ "string",
581
+ "null"
582
+ ]
583
+ }
584
+ },
585
+ "required": [
586
+ "kind"
587
+ ],
588
+ "type": "object"
589
+ },
590
+ {
591
+ "description": "Counts this checkout's changes from now on; the same checkout again changes nothing.",
592
+ "properties": {
593
+ "checkout": {
594
+ "$ref": "#/$defs/WatchedCheckout"
595
+ },
596
+ "kind": {
597
+ "const": "watch",
598
+ "type": "string"
599
+ }
600
+ },
601
+ "required": [
602
+ "kind",
603
+ "checkout"
604
+ ],
605
+ "type": "object"
606
+ },
607
+ {
608
+ "description": "Stops counting the checkout at `dir`.",
609
+ "properties": {
610
+ "dir": {
611
+ "type": "string"
612
+ },
613
+ "kind": {
614
+ "const": "unwatch",
615
+ "type": "string"
616
+ }
617
+ },
618
+ "required": [
619
+ "kind",
620
+ "dir"
621
+ ],
622
+ "type": "object"
623
+ }
624
+ ],
625
+ "title": "FromNode"
626
+ },
627
+ "headers": [
628
+ "x-intentic-preview",
629
+ "x-intentic-preview-unreachable"
630
+ ],
631
+ "toNode": {
632
+ "$defs": {
633
+ "FrontAnswer": {
634
+ "oneOf": [
635
+ {
636
+ "description": "Each asked checkout's generation, in the order asked: a number that moves whenever anything a `git status` there\nreads may have changed, and null for a checkout the front is not counting.",
637
+ "properties": {
638
+ "answer": {
639
+ "const": "sync",
640
+ "type": "string"
641
+ },
642
+ "generations": {
643
+ "items": {
644
+ "format": "uint64",
645
+ "minimum": 0,
646
+ "type": [
647
+ "integer",
648
+ "null"
649
+ ]
650
+ },
651
+ "type": "array"
652
+ }
653
+ },
654
+ "required": [
655
+ "answer",
656
+ "generations"
657
+ ],
658
+ "type": "object"
659
+ }
660
+ ]
661
+ },
662
+ "Question": {
663
+ "description": "A question the front asks Node.",
664
+ "oneOf": [
665
+ {
666
+ "description": "What becomes of a request to a preview host; `probe` when it asks the preview probe's path.",
667
+ "properties": {
668
+ "host": {
669
+ "type": "string"
670
+ },
671
+ "probe": {
672
+ "default": false,
673
+ "type": "boolean"
674
+ },
675
+ "question": {
676
+ "const": "preview",
677
+ "type": "string"
678
+ }
679
+ },
680
+ "required": [
681
+ "question",
682
+ "host"
683
+ ],
684
+ "type": "object"
685
+ },
686
+ {
687
+ "description": "A terminal socket asking to open, its query string as the browser sent it.",
688
+ "properties": {
689
+ "query": {
690
+ "type": "string"
691
+ },
692
+ "question": {
693
+ "const": "terminal",
694
+ "type": "string"
695
+ }
696
+ },
697
+ "required": [
698
+ "question",
699
+ "query"
700
+ ],
701
+ "type": "object"
702
+ }
703
+ ]
704
+ }
705
+ },
706
+ "description": "Everything the front sends Node.",
707
+ "oneOf": [
708
+ {
709
+ "properties": {
710
+ "id": {
711
+ "format": "uint32",
712
+ "minimum": 0,
713
+ "type": "integer"
714
+ },
715
+ "kind": {
716
+ "const": "ask",
717
+ "type": "string"
718
+ },
719
+ "question": {
720
+ "$ref": "#/$defs/Question"
721
+ }
722
+ },
723
+ "required": [
724
+ "kind",
725
+ "id",
726
+ "question"
727
+ ],
728
+ "type": "object"
729
+ },
730
+ {
731
+ "properties": {
732
+ "answer": {
733
+ "$ref": "#/$defs/FrontAnswer"
734
+ },
735
+ "id": {
736
+ "format": "uint32",
737
+ "minimum": 0,
738
+ "type": "integer"
739
+ },
740
+ "kind": {
741
+ "const": "answer",
742
+ "type": "string"
743
+ }
744
+ },
745
+ "required": [
746
+ "kind",
747
+ "id",
748
+ "answer"
749
+ ],
750
+ "type": "object"
751
+ },
752
+ {
753
+ "properties": {
754
+ "id": {
755
+ "format": "uint32",
756
+ "minimum": 0,
757
+ "type": "integer"
758
+ },
759
+ "kind": {
760
+ "const": "refused",
761
+ "type": "string"
762
+ },
763
+ "message": {
764
+ "type": "string"
765
+ }
766
+ },
767
+ "required": [
768
+ "kind",
769
+ "id",
770
+ "message"
771
+ ],
772
+ "type": "object"
773
+ },
774
+ {
775
+ "properties": {
776
+ "connected": {
777
+ "type": "boolean"
778
+ },
779
+ "kind": {
780
+ "const": "tunnel",
781
+ "type": "string"
782
+ }
783
+ },
784
+ "required": [
785
+ "kind",
786
+ "connected"
787
+ ],
788
+ "type": "object"
789
+ }
790
+ ],
791
+ "title": "ToNode"
792
+ }
793
+ }