@tangle-network/agent-app 0.45.53 → 0.45.55

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 (480) hide show
  1. package/README.md +1 -1
  2. package/dist/alerting/index.d.ts +5 -175
  3. package/dist/alerting/slack.d.ts +176 -0
  4. package/dist/app-auth/index.d.ts +14 -17
  5. package/dist/assets/index.d.ts +2 -504
  6. package/dist/assets/schema.d.ts +264 -0
  7. package/dist/assets/types.d.ts +237 -0
  8. package/dist/assistant/AssistantDock.d.ts +56 -0
  9. package/dist/assistant/AssistantHistory.d.ts +41 -0
  10. package/dist/assistant/AssistantPanel.d.ts +84 -0
  11. package/dist/assistant/ProposalCard.d.ts +41 -0
  12. package/dist/assistant/ResizeHandle.d.ts +19 -0
  13. package/dist/assistant/client-context.d.ts +20 -0
  14. package/dist/assistant/client.d.ts +117 -0
  15. package/dist/assistant/index.d.ts +19 -848
  16. package/dist/assistant/launcher.d.ts +23 -0
  17. package/dist/assistant/persistence.d.ts +26 -0
  18. package/dist/assistant/presentation.d.ts +99 -0
  19. package/dist/assistant/provider-label.d.ts +7 -0
  20. package/dist/assistant/reducer.d.ts +130 -0
  21. package/dist/assistant/sse.d.ts +24 -0
  22. package/dist/assistant/time-ago.d.ts +6 -0
  23. package/dist/assistant/transcript.d.ts +97 -0
  24. package/dist/assistant/types.d.ts +291 -0
  25. package/dist/assistant/use-stick-to-bottom.d.ts +28 -0
  26. package/dist/assistant/useAssistantChat.d.ts +63 -0
  27. package/dist/assistant/useAssistantModels.d.ts +22 -0
  28. package/dist/assistant/useAssistantThreads.d.ts +47 -0
  29. package/dist/assistant/usePanelPrefs.d.ts +55 -0
  30. package/dist/billing/index.d.ts +19 -21
  31. package/dist/brand/index.d.ts +16 -10
  32. package/dist/brand-extraction/extract.d.ts +34 -0
  33. package/dist/brand-extraction/index.d.ts +12 -214
  34. package/dist/brand-extraction/map.d.ts +58 -0
  35. package/dist/brand-extraction/types.d.ts +119 -0
  36. package/dist/catalog/index.d.ts +11 -101
  37. package/dist/chat-react/composer-mode-controls.d.ts +14 -0
  38. package/dist/chat-react/entry-composer.d.ts +92 -0
  39. package/dist/chat-react/index.d.ts +22 -118
  40. package/dist/chat-react/types.d.ts +11 -0
  41. package/dist/chat-routes/attachment-store.d.ts +84 -0
  42. package/dist/chat-routes/attachment-upload.d.ts +84 -0
  43. package/dist/chat-routes/attachment-validation.d.ts +95 -0
  44. package/dist/chat-routes/binary-sniff.d.ts +45 -0
  45. package/dist/chat-routes/completed-sandbox-turn.d.ts +25 -0
  46. package/dist/chat-routes/detached-turn.d.ts +197 -0
  47. package/dist/chat-routes/dispatch-parts.d.ts +101 -0
  48. package/dist/chat-routes/draft-persistence.d.ts +189 -0
  49. package/dist/chat-routes/durable-projection.d.ts +18 -0
  50. package/dist/chat-routes/file-index.d.ts +115 -0
  51. package/dist/chat-routes/index.d.ts +25 -1840
  52. package/dist/chat-routes/model-failover-stream.d.ts +206 -0
  53. package/dist/chat-routes/promote-file-part.d.ts +84 -0
  54. package/dist/chat-routes/resolve-attachments.d.ts +72 -0
  55. package/dist/chat-routes/sandbox-producer.d.ts +146 -0
  56. package/dist/chat-routes/sandbox-turn-usage.d.ts +4 -0
  57. package/dist/{stale-turn-lock-DucQzvXu.d.ts → chat-routes/stale-turn-lock.d.ts} +7 -9
  58. package/dist/chat-routes/turn-routes.d.ts +540 -0
  59. package/dist/chat-routes/upload.d.ts +84 -0
  60. package/dist/{wire-DOZ-O6hD.d.ts → chat-routes/wire.d.ts} +41 -44
  61. package/dist/chat-store/core.d.ts +19 -0
  62. package/dist/chat-store/index.d.ts +22 -322
  63. package/dist/{parts-BqIHMdyu.d.ts → chat-store/parts.d.ts} +49 -47
  64. package/dist/chat-store/schema.d.ts +157 -0
  65. package/dist/chat-store/store.d.ts +177 -0
  66. package/dist/config/index.d.ts +13 -18
  67. package/dist/crypto/index.d.ts +10 -12
  68. package/dist/crypto/web-token.d.ts +22 -0
  69. package/dist/design-canvas/apply.d.ts +70 -0
  70. package/dist/design-canvas/drizzle-store.d.ts +29 -0
  71. package/dist/design-canvas/drizzle.d.ts +7 -575
  72. package/dist/{export-presets-mgVulRaV.d.ts → design-canvas/export-presets.d.ts} +18 -22
  73. package/dist/design-canvas/index.d.ts +22 -268
  74. package/dist/design-canvas/mcp-entry.d.ts +15 -0
  75. package/dist/design-canvas/mcp-handler.d.ts +34 -0
  76. package/dist/design-canvas/mcp-tools.d.ts +30 -0
  77. package/dist/{model-DnfO_PdJ.d.ts → design-canvas/model.d.ts} +33 -35
  78. package/dist/{operations-ByJ6yXOW.d.ts → design-canvas/operations.d.ts} +21 -25
  79. package/dist/design-canvas/schema.d.ts +558 -0
  80. package/dist/{store-CqfDtnPQ.d.ts → design-canvas/store.d.ts} +8 -12
  81. package/dist/design-canvas/templates.d.ts +72 -0
  82. package/dist/design-canvas/validate.d.ts +32 -0
  83. package/dist/design-canvas-react/components/BleedTrimOverlay.d.ts +22 -0
  84. package/dist/design-canvas-react/components/BrandKnot.d.ts +11 -0
  85. package/dist/design-canvas-react/components/CanvasEmptyState.d.ts +32 -0
  86. package/dist/design-canvas-react/components/CanvasInsertPanel.d.ts +53 -0
  87. package/dist/{lazy-DrkVyDpe.d.ts → design-canvas-react/components/DesignCanvas.d.ts} +27 -20
  88. package/dist/design-canvas-react/components/DesignCanvasEditor.d.ts +23 -0
  89. package/dist/design-canvas-react/components/ElementNode.d.ts +51 -0
  90. package/dist/design-canvas-react/components/ExportControl.d.ts +21 -0
  91. package/dist/design-canvas-react/components/GridLayer.d.ts +47 -0
  92. package/dist/design-canvas-react/components/InlineTextEditor.d.ts +25 -0
  93. package/dist/design-canvas-react/components/LayersPanel.d.ts +20 -0
  94. package/dist/design-canvas-react/components/PagesStrip.d.ts +34 -0
  95. package/dist/design-canvas-react/components/Rulers.d.ts +31 -0
  96. package/dist/design-canvas-react/components/SelectionLayer.d.ts +51 -0
  97. package/dist/design-canvas-react/components/SnapGuidesOverlay.d.ts +25 -0
  98. package/dist/design-canvas-react/components/Toolbar.d.ts +64 -0
  99. package/dist/design-canvas-react/components/Workspace.d.ts +92 -0
  100. package/dist/design-canvas-react/components/ZoomControls.d.ts +14 -0
  101. package/dist/design-canvas-react/components/glyphs.d.ts +46 -0
  102. package/dist/design-canvas-react/components/icon-button.d.ts +22 -0
  103. package/dist/design-canvas-react/components/index.d.ts +27 -0
  104. package/dist/design-canvas-react/components/layer-tree.d.ts +34 -0
  105. package/dist/design-canvas-react/components/ruler-math.d.ts +78 -0
  106. package/dist/design-canvas-react/components/transform-math.d.ts +168 -0
  107. package/dist/{command-stack-TNPWJCzW.d.ts → design-canvas-react/contracts.d.ts} +16 -63
  108. package/dist/design-canvas-react/engine/command-stack.d.ts +43 -0
  109. package/dist/design-canvas-react/engine/commands.d.ts +154 -0
  110. package/dist/design-canvas-react/engine/selection.d.ts +48 -0
  111. package/dist/design-canvas-react/engine/snap.d.ts +24 -0
  112. package/dist/design-canvas-react/engine/zoom-pan.d.ts +18 -0
  113. package/dist/design-canvas-react/engine.d.ts +21 -399
  114. package/dist/design-canvas-react/export-math.d.ts +104 -0
  115. package/dist/design-canvas-react/export.d.ts +89 -0
  116. package/dist/design-canvas-react/index.d.ts +16 -586
  117. package/dist/design-canvas-react/insert-builders.d.ts +61 -0
  118. package/dist/design-canvas-react/lazy.d.ts +21 -6
  119. package/dist/documents/docx.d.ts +50 -0
  120. package/dist/documents/extract.d.ts +87 -0
  121. package/dist/documents/index.d.ts +26 -232
  122. package/dist/documents/media-type.d.ts +33 -0
  123. package/dist/documents/pdf-inspector.d.ts +5 -9
  124. package/dist/{types-DrBidf3O.d.ts → documents/types.d.ts} +13 -15
  125. package/dist/documents/zip.d.ts +56 -0
  126. package/dist/eval/calibration.d.ts +106 -0
  127. package/dist/eval/index.d.ts +8 -116
  128. package/dist/eval-campaign/index.d.ts +11 -12
  129. package/dist/{trust-gate-Dcm5xSva.d.ts → eval-campaign/trust-gate.d.ts} +5 -9
  130. package/dist/forms/blank.d.ts +48 -0
  131. package/dist/forms/fill.d.ts +105 -0
  132. package/dist/forms/index.d.ts +58 -332
  133. package/dist/forms/registry.d.ts +115 -0
  134. package/dist/forms/verify.d.ts +58 -0
  135. package/dist/harness/index.d.ts +21 -19
  136. package/dist/intakes/api.d.ts +5 -11
  137. package/dist/{completion-CvcNUz07.d.ts → intakes/completion.d.ts} +7 -11
  138. package/dist/intakes/context-sufficiency.d.ts +113 -0
  139. package/dist/intakes/drizzle/schema.d.ts +338 -0
  140. package/dist/intakes/drizzle/store.d.ts +75 -0
  141. package/dist/intakes/drizzle.d.ts +12 -391
  142. package/dist/intakes/index.d.ts +23 -113
  143. package/dist/{model-C8U0HZxL.d.ts → intakes/model.d.ts} +15 -17
  144. package/dist/intakes-react/components/BrandMark.d.ts +10 -0
  145. package/dist/intakes-react/components/IntakeInterview.d.ts +15 -0
  146. package/dist/intakes-react/components/index.d.ts +1 -0
  147. package/dist/intakes-react/contracts.d.ts +42 -0
  148. package/dist/intakes-react/index.d.ts +12 -47
  149. package/dist/intakes-react/lazy.d.ts +9 -8
  150. package/dist/integrations/index.d.ts +10 -12
  151. package/dist/{contract-OxG_jVMx.d.ts → interactions/contract.d.ts} +40 -42
  152. package/dist/interactions/index.d.ts +16 -256
  153. package/dist/interactions/route.d.ts +151 -0
  154. package/dist/interactions/sidecar.d.ts +100 -0
  155. package/dist/knowledge/index.d.ts +7 -11
  156. package/dist/knowledge-loop/index.d.ts +13 -20
  157. package/dist/legibility/checks/empty-state.d.ts +59 -0
  158. package/dist/legibility/checks/reachability.d.ts +103 -0
  159. package/dist/legibility/checks/silent-failure.d.ts +57 -0
  160. package/dist/legibility/checks/success.d.ts +38 -0
  161. package/dist/legibility/checks/vocabulary.d.ts +65 -0
  162. package/dist/legibility/cli-args.d.ts +30 -0
  163. package/dist/legibility/cli.d.ts +25 -0
  164. package/dist/legibility/index.d.ts +10 -530
  165. package/dist/legibility/report.d.ts +22 -0
  166. package/dist/legibility/scan.d.ts +29 -0
  167. package/dist/legibility/source.d.ts +132 -0
  168. package/dist/legibility/suppress.d.ts +36 -0
  169. package/dist/legibility/types.d.ts +168 -0
  170. package/dist/legibility/walk-sources.d.ts +21 -0
  171. package/dist/{agent-activity-C8ZG0F0M.d.ts → missions/agent-activity.d.ts} +3 -5
  172. package/dist/missions/engine.d.ts +251 -0
  173. package/dist/missions/events.d.ts +195 -0
  174. package/dist/missions/index.d.ts +12 -765
  175. package/dist/missions/plan-parse.d.ts +50 -0
  176. package/dist/missions/service.d.ts +265 -0
  177. package/dist/{failover-D-3UXXTb.d.ts → model-resolution/failover.d.ts} +10 -12
  178. package/dist/model-resolution/index.d.ts +15 -18
  179. package/dist/object-store/index.d.ts +15 -17
  180. package/dist/openui/action.d.ts +54 -0
  181. package/dist/openui/authoring.d.ts +25 -0
  182. package/dist/openui/index.d.ts +24 -206
  183. package/dist/openui/route.d.ts +124 -0
  184. package/dist/openui/segments.d.ts +71 -0
  185. package/dist/openui/values.d.ts +82 -0
  186. package/dist/openui-react/index.d.ts +9 -13
  187. package/dist/peer-floors/check.d.ts +9 -190
  188. package/dist/peer-floors/cli.d.ts +2 -3
  189. package/dist/peer-floors/dependency-source.d.ts +178 -0
  190. package/dist/plans/index.d.ts +13 -14
  191. package/dist/{billing-BuNlaKlE.d.ts → platform/billing.d.ts} +28 -32
  192. package/dist/platform/guards.d.ts +79 -0
  193. package/dist/platform/hub.d.ts +107 -0
  194. package/dist/platform/index.d.ts +7 -112
  195. package/dist/{sso-Cm00S61u.d.ts → platform/sso.d.ts} +15 -97
  196. package/dist/preflight/cli.d.ts +3 -6
  197. package/dist/preflight/index.d.ts +16 -18
  198. package/dist/preset-cloudflare/headers.d.ts +12 -0
  199. package/dist/preset-cloudflare/index.d.ts +22 -74
  200. package/dist/preset-cloudflare/workflow-instance.d.ts +35 -0
  201. package/dist/profile/budget.d.ts +72 -0
  202. package/dist/profile/fingerprint.d.ts +65 -0
  203. package/dist/profile/index.d.ts +27 -19
  204. package/dist/prompt/index.d.ts +3 -5
  205. package/dist/record/drizzle/schema.d.ts +488 -0
  206. package/dist/record/drizzle/store.d.ts +224 -0
  207. package/dist/record/drizzle.d.ts +10 -679
  208. package/dist/record/fold.d.ts +99 -0
  209. package/dist/record/index.d.ts +13 -13
  210. package/dist/{fold-DACU7gtf.d.ts → record/model.d.ts} +22 -124
  211. package/dist/record/ulid.d.ts +12 -0
  212. package/dist/redact/index.d.ts +14 -16
  213. package/dist/run/index.d.ts +11 -16
  214. package/dist/runtime/agent.d.ts +23 -0
  215. package/dist/runtime/certified-delivery.d.ts +57 -0
  216. package/dist/runtime/index.d.ts +17 -367
  217. package/dist/runtime/loop.d.ts +58 -0
  218. package/dist/runtime/model-catalog.d.ts +103 -0
  219. package/dist/{model-CdCDfBA9.d.ts → runtime/model.d.ts} +25 -27
  220. package/dist/runtime/openai-stream.d.ts +126 -0
  221. package/dist/runtime/surface-profile.d.ts +115 -0
  222. package/dist/sandbox/binary-read.d.ts +63 -0
  223. package/dist/sandbox/diagnostics.d.ts +69 -0
  224. package/dist/sandbox/index.d.ts +103 -1085
  225. package/dist/sandbox/model.d.ts +179 -0
  226. package/dist/sandbox/outcome.d.ts +10 -0
  227. package/dist/sandbox/prewarm-claim-d1.d.ts +80 -0
  228. package/dist/sandbox/prewarm.d.ts +193 -0
  229. package/dist/sandbox/recovery.d.ts +216 -0
  230. package/dist/sandbox/terminal-connection.d.ts +145 -0
  231. package/dist/sandbox/workspace-sandbox-manager.d.ts +44 -0
  232. package/dist/sequences/apply.d.ts +54 -0
  233. package/dist/sequences/captions.d.ts +91 -0
  234. package/dist/sequences/drizzle-store.d.ts +36 -0
  235. package/dist/sequences/drizzle.d.ts +7 -1252
  236. package/dist/sequences/exports.d.ts +138 -0
  237. package/dist/sequences/index.d.ts +19 -340
  238. package/dist/sequences/mcp-entry.d.ts +15 -0
  239. package/dist/sequences/mcp-handler.d.ts +39 -0
  240. package/dist/sequences/mcp-tools.d.ts +47 -0
  241. package/dist/{store-B7LLlk9p.d.ts → sequences/model.d.ts} +26 -110
  242. package/dist/sequences/operations.d.ts +126 -0
  243. package/dist/sequences/schema.d.ts +1231 -0
  244. package/dist/sequences/store.d.ts +81 -0
  245. package/dist/sequences/validate.d.ts +98 -0
  246. package/dist/sequences-react/components/BrandMark.d.ts +10 -0
  247. package/dist/sequences-react/components/PreviewCanvas.d.ts +26 -0
  248. package/dist/sequences-react/components/SnapIndicatorLine.d.ts +11 -0
  249. package/dist/sequences-react/components/TimelineClipChip.d.ts +80 -0
  250. package/dist/sequences-react/components/TimelineEditor.d.ts +44 -0
  251. package/dist/sequences-react/components/TimelineEmptyState.d.ts +21 -0
  252. package/dist/sequences-react/components/TimelineGhostLanes.d.ts +14 -0
  253. package/dist/sequences-react/components/TimelinePlayhead.d.ts +11 -0
  254. package/dist/sequences-react/components/TimelineRuler.d.ts +16 -0
  255. package/dist/sequences-react/components/TimelineSmallScreenGate.d.ts +12 -0
  256. package/dist/sequences-react/components/TimelineTrackRow.d.ts +51 -0
  257. package/dist/sequences-react/components/ZoomControl.d.ts +15 -0
  258. package/dist/sequences-react/components/composite-command.d.ts +8 -0
  259. package/dist/sequences-react/components/glyphs.d.ts +26 -0
  260. package/dist/sequences-react/components/index.d.ts +31 -0
  261. package/dist/sequences-react/components/interaction-math.d.ts +103 -0
  262. package/dist/sequences-react/contracts.d.ts +187 -0
  263. package/dist/sequences-react/engine/command-stack.d.ts +18 -0
  264. package/dist/sequences-react/engine/commands.d.ts +146 -0
  265. package/dist/sequences-react/engine/playback.d.ts +18 -0
  266. package/dist/sequences-react/engine/snap.d.ts +29 -0
  267. package/dist/sequences-react/engine/zoom.d.ts +29 -0
  268. package/dist/sequences-react/index.d.ts +20 -880
  269. package/dist/sequences-react/lazy.d.ts +8 -0
  270. package/dist/sequences-react/media/frame-provider.d.ts +70 -0
  271. package/dist/sequences-react/media/transcription.d.ts +33 -0
  272. package/dist/sequences-react/media/waveform.d.ts +34 -0
  273. package/dist/session-shell/index.d.ts +31 -204
  274. package/dist/session-shell/nav-guard.d.ts +170 -0
  275. package/dist/session-shell/path.d.ts +19 -0
  276. package/dist/signoff/cli.d.ts +4 -7
  277. package/dist/signoff/config.d.ts +12 -0
  278. package/dist/signoff/exec.d.ts +44 -0
  279. package/dist/signoff/index.d.ts +56 -14
  280. package/dist/signoff/invoked-as-script.d.ts +25 -0
  281. package/dist/signoff/node-version.d.ts +50 -0
  282. package/dist/signoff/proof-attach.d.ts +88 -0
  283. package/dist/signoff/proof-cli.d.ts +1 -0
  284. package/dist/signoff/proof-fixture.d.ts +13 -0
  285. package/dist/signoff/proof-from-report.d.ts +22 -0
  286. package/dist/signoff/proof-git.d.ts +57 -0
  287. package/dist/signoff/proof-record.d.ts +202 -0
  288. package/dist/signoff/proof-verify.d.ts +103 -0
  289. package/dist/signoff/proof.d.ts +35 -310
  290. package/dist/signoff/report.d.ts +7 -0
  291. package/dist/{run-D80hoLKh.d.ts → signoff/run.d.ts} +3 -6
  292. package/dist/signoff/schedule.d.ts +55 -0
  293. package/dist/signoff/seeds.d.ts +50 -0
  294. package/dist/signoff/store.d.ts +22 -0
  295. package/dist/{types-Bd6uW9vQ.d.ts → signoff/types.d.ts} +15 -17
  296. package/dist/signoff/workflow-pin.d.ts +56 -0
  297. package/dist/signoff/workspace.d.ts +40 -0
  298. package/dist/skills/index.d.ts +28 -32
  299. package/dist/skills-placement/index.d.ts +7 -11
  300. package/dist/spend/budget.d.ts +123 -0
  301. package/dist/spend/ceiling.d.ts +51 -0
  302. package/dist/spend/cli-args.d.ts +20 -0
  303. package/dist/spend/cli.d.ts +1 -0
  304. package/dist/spend/fixtures/incident-parked-time.d.ts +55 -0
  305. package/dist/spend/index.d.ts +38 -1144
  306. package/dist/spend/liveness.d.ts +131 -0
  307. package/dist/spend/ownership.d.ts +87 -0
  308. package/dist/spend/reconcile.d.ts +109 -0
  309. package/dist/spend/reference.d.ts +42 -0
  310. package/dist/spend/report.d.ts +12 -0
  311. package/dist/spend/store.d.ts +123 -0
  312. package/dist/spend/types.d.ts +466 -0
  313. package/dist/store/index.d.ts +10 -12
  314. package/dist/stories/app-shell/fixtures.d.ts +43 -0
  315. package/dist/stories/app-shell/shell.d.ts +81 -0
  316. package/dist/stories/assistant/fixtures.d.ts +73 -0
  317. package/dist/stories/chat/fixtures.d.ts +70 -0
  318. package/dist/stories/chat/markdown.d.ts +11 -0
  319. package/dist/stories/chat/run-drill-in.d.ts +19 -0
  320. package/dist/stories/chat-controls/fixtures.d.ts +116 -0
  321. package/dist/stories/design-canvas/fixtures.d.ts +57 -0
  322. package/dist/stories/fixtures/canvas.d.ts +10 -0
  323. package/dist/stories/fixtures/catalog.d.ts +7 -0
  324. package/dist/stories/fixtures/chat.d.ts +39 -0
  325. package/dist/stories/fixtures/index.d.ts +4 -0
  326. package/dist/stories/fixtures/sequences.d.ts +17 -0
  327. package/dist/stories/panels/fixtures.d.ts +63 -0
  328. package/dist/stories/sequences/fixtures.d.ts +30 -0
  329. package/dist/stories/studio/fixtures.d.ts +22 -0
  330. package/dist/stream/index.d.ts +10 -56
  331. package/dist/{stream-normalizer-DKRxyVlZ.d.ts → stream/stream-normalizer.d.ts} +23 -26
  332. package/dist/{turn-buffer-COMQUwO2.d.ts → stream/turn-buffer.d.ts} +21 -23
  333. package/dist/stream/turn-identity.d.ts +49 -0
  334. package/dist/studio/generation.d.ts +179 -0
  335. package/dist/studio/index.d.ts +12 -181
  336. package/dist/studio-react/avatar-composer.d.ts +8 -0
  337. package/dist/studio-react/composer-hero.d.ts +12 -0
  338. package/dist/studio-react/composer-shell.d.ts +18 -0
  339. package/dist/studio-react/generation-card.d.ts +9 -0
  340. package/dist/studio-react/generation-detail-modal.d.ts +11 -0
  341. package/dist/studio-react/generation-detail.d.ts +6 -0
  342. package/dist/studio-react/generation-grid.d.ts +15 -0
  343. package/dist/studio-react/image-composer.d.ts +8 -0
  344. package/dist/studio-react/index.d.ts +32 -245
  345. package/dist/studio-react/library-drawer.d.ts +12 -0
  346. package/dist/studio-react/library-panel.d.ts +15 -0
  347. package/dist/studio-react/publish-package-composer.d.ts +18 -0
  348. package/dist/studio-react/result-canvas.d.ts +6 -0
  349. package/dist/studio-react/speech-composer.d.ts +4 -0
  350. package/dist/studio-react/studio-header.d.ts +5 -0
  351. package/dist/studio-react/studio-sheet.d.ts +12 -0
  352. package/dist/studio-react/studio-workspace.d.ts +23 -0
  353. package/dist/studio-react/transcription-composer.d.ts +12 -0
  354. package/dist/studio-react/type-config.d.ts +11 -0
  355. package/dist/studio-react/use-studio-generations.d.ts +20 -0
  356. package/dist/studio-react/video-composer.d.ts +10 -0
  357. package/dist/tangle/index.d.ts +7 -9
  358. package/dist/teams/drizzle/access.d.ts +82 -0
  359. package/dist/{invitations-schema-_fI7HkJP.d.ts → teams/drizzle/invitations-schema.d.ts} +39 -27
  360. package/dist/teams/drizzle/personal-organization.d.ts +41 -0
  361. package/dist/{access-490O6aOU.d.ts → teams/drizzle/schema.d.ts} +57 -122
  362. package/dist/teams/drizzle.d.ts +12 -44
  363. package/dist/teams/index.d.ts +20 -44
  364. package/dist/teams/invitations-api.d.ts +17 -21
  365. package/dist/{invitations-DoYMvXea.d.ts → teams/invitations.d.ts} +14 -18
  366. package/dist/teams/invite.d.ts +42 -0
  367. package/dist/teams/members-api.d.ts +12 -16
  368. package/dist/teams/resend.d.ts +3 -13
  369. package/dist/{roles-B4nU3jDi.d.ts → teams/roles.d.ts} +18 -20
  370. package/dist/teams-react/components/BrandMark.d.ts +10 -0
  371. package/dist/teams-react/components/InvitationsPanel.d.ts +13 -0
  372. package/dist/teams-react/components/InviteAcceptPage.d.ts +10 -0
  373. package/dist/teams-react/components/MembersPanel.d.ts +14 -0
  374. package/dist/teams-react/components/RoleSelect.d.ts +17 -0
  375. package/dist/teams-react/components/index.d.ts +3 -0
  376. package/dist/teams-react/contracts.d.ts +134 -0
  377. package/dist/teams-react/index.d.ts +12 -143
  378. package/dist/teams-react/lazy.d.ts +11 -11
  379. package/dist/test-setup.d.ts +1 -0
  380. package/dist/theme/index.d.ts +6 -104
  381. package/dist/theme/tailwind-preset.d.ts +1 -2
  382. package/dist/theme/theme.d.ts +106 -0
  383. package/dist/theme-contract/cli.d.ts +21 -0
  384. package/dist/theme-contract/index.d.ts +4 -6
  385. package/dist/{auth-BYtiazA4.d.ts → tools/auth.d.ts} +8 -11
  386. package/dist/tools/capability.d.ts +54 -0
  387. package/dist/tools/dispatch.d.ts +37 -0
  388. package/dist/tools/errors.d.ts +8 -0
  389. package/dist/tools/gating.d.ts +62 -0
  390. package/dist/tools/http.d.ts +27 -0
  391. package/dist/tools/index.d.ts +12 -217
  392. package/dist/{mcp-rpc-DYwPlYbZ.d.ts → tools/mcp-rpc.d.ts} +7 -9
  393. package/dist/{mcp-xxoZZfor.d.ts → tools/mcp.d.ts} +14 -16
  394. package/dist/tools/openai.d.ts +28 -0
  395. package/dist/tools/registry.d.ts +39 -0
  396. package/dist/tools/runtime.d.ts +22 -0
  397. package/dist/{types-B25Mib1r.d.ts → tools/types.d.ts} +15 -83
  398. package/dist/{flow-types-CJxEmaRy.d.ts → trace/flow-types.d.ts} +2 -4
  399. package/dist/trace/index.d.ts +11 -148
  400. package/dist/trace/mission-flow.d.ts +82 -0
  401. package/dist/trace/mission-trace.d.ts +52 -0
  402. package/dist/turn-health/classify.d.ts +207 -0
  403. package/dist/turn-health/index.d.ts +29 -637
  404. package/dist/turn-health/lifecycle.d.ts +75 -0
  405. package/dist/turn-health/sink.d.ts +122 -0
  406. package/dist/turn-health/sweep.d.ts +245 -0
  407. package/dist/turn-stream/adapters.d.ts +257 -0
  408. package/dist/turn-stream/core.d.ts +293 -0
  409. package/dist/turn-stream/do.d.ts +144 -0
  410. package/dist/turn-stream/index.d.ts +62 -738
  411. package/dist/turn-stream/memory.d.ts +41 -0
  412. package/dist/vault/ConfirmDialog.d.ts +22 -0
  413. package/dist/vault/VaultPane.d.ts +15 -0
  414. package/dist/{VaultPane-BDP6SB_K.d.ts → vault/contracts.d.ts} +15 -22
  415. package/dist/vault/index.d.ts +15 -22
  416. package/dist/vault/lazy.d.ts +9 -7
  417. package/dist/vault/server.d.ts +8 -10
  418. package/dist/web/free-route-limit.d.ts +187 -0
  419. package/dist/web/index.d.ts +15 -207
  420. package/dist/{rate-limit-BOVmJRXZ.d.ts → web/rate-limit.d.ts} +3 -5
  421. package/dist/web-react/agent-session-controls.d.ts +105 -0
  422. package/dist/web-react/async/async-view.d.ts +69 -0
  423. package/dist/web-react/async/index.d.ts +13 -305
  424. package/dist/web-react/async/state.d.ts +107 -0
  425. package/dist/web-react/async/use-async-resource.d.ts +41 -0
  426. package/dist/web-react/async/use-confirmed-mutation.d.ts +90 -0
  427. package/dist/web-react/brand-mark.d.ts +11 -0
  428. package/dist/web-react/chat-attachments.d.ts +21 -0
  429. package/dist/web-react/chat-composer.d.ts +174 -0
  430. package/dist/web-react/chat-interactions.d.ts +1 -0
  431. package/dist/web-react/chat-mentions.d.ts +48 -0
  432. package/dist/web-react/chat-stream.d.ts +106 -0
  433. package/dist/web-react/class-names.d.ts +10 -0
  434. package/dist/web-react/controls.d.ts +265 -0
  435. package/dist/web-react/durable-chat-cards.d.ts +40 -0
  436. package/dist/web-react/durable-interaction-submit.d.ts +22 -0
  437. package/dist/web-react/durable-plan-card.d.ts +13 -0
  438. package/dist/web-react/durable-plan-flow.d.ts +77 -0
  439. package/dist/web-react/harness-glyphs.d.ts +28 -0
  440. package/dist/web-react/index.d.ts +80 -2347
  441. package/dist/web-react/inert.d.ts +39 -0
  442. package/dist/web-react/insight-card.d.ts +203 -0
  443. package/dist/web-react/interaction-card-support.d.ts +115 -0
  444. package/dist/web-react/interaction-plan-card.d.ts +39 -0
  445. package/dist/web-react/interaction-question-card.d.ts +100 -0
  446. package/dist/web-react/message-attachments.d.ts +56 -0
  447. package/dist/web-react/mission-activity.d.ts +96 -0
  448. package/dist/web-react/motion.d.ts +43 -0
  449. package/dist/web-react/provenance-model.d.ts +195 -0
  450. package/dist/web-react/provenance.d.ts +82 -0
  451. package/dist/web-react/provider-logo.d.ts +14 -0
  452. package/dist/web-react/record-grid-model.d.ts +257 -0
  453. package/dist/web-react/record-grid.d.ts +108 -0
  454. package/dist/web-react/sandbox-terminal.d.ts +90 -0
  455. package/dist/web-react/seat-paywall.d.ts +47 -0
  456. package/dist/web-react/session-history.d.ts +196 -0
  457. package/dist/web-react/smooth-text.d.ts +29 -0
  458. package/dist/web-react/sparkline.d.ts +150 -0
  459. package/dist/web-react/terminal.d.ts +1 -92
  460. package/dist/web-react/use-chat-interactions.d.ts +78 -0
  461. package/dist/web-react/use-composer-attachments.d.ts +111 -0
  462. package/dist/web-react/use-file-mentions.d.ts +94 -0
  463. package/dist/web-react/work-product.d.ts +105 -0
  464. package/dist/work-product/claim-support.d.ts +288 -0
  465. package/dist/work-product/index.d.ts +16 -849
  466. package/dist/work-product/provenance.d.ts +61 -0
  467. package/dist/{queue-VTBA5ONX.d.ts → work-product/queue.d.ts} +10 -12
  468. package/dist/work-product/quote.d.ts +139 -0
  469. package/dist/work-product/route.d.ts +88 -0
  470. package/dist/work-product/service.d.ts +123 -0
  471. package/dist/work-product/tools.d.ts +144 -0
  472. package/dist/{types-CCeYywdS.d.ts → work-product/types.d.ts} +29 -31
  473. package/dist/work-product-react/index.d.ts +19 -8
  474. package/dist/workspace-react/index.d.ts +8 -11
  475. package/package.json +5 -4
  476. package/dist/agent-session-controls-CmlXwp_H.d.ts +0 -384
  477. package/dist/apply-6wlMOLf8.d.ts +0 -280
  478. package/dist/attachment-validation-BfJDBU1g.d.ts +0 -261
  479. package/dist/budget-BOucfcb_.d.ts +0 -142
  480. package/dist/values-C7RidJuI.d.ts +0 -156
@@ -1,5 +1,4 @@
1
- import { S as SignoffSource, a as SignoffEvent, b as SignoffReport } from './types-Bd6uW9vQ.js';
2
-
1
+ import type { SignoffEvent, SignoffReport, SignoffSource } from './types';
3
2
  /**
4
3
  * The sign-off run: reproduce a clean CI environment, then go further.
5
4
  *
@@ -17,7 +16,7 @@ import { S as SignoffSource, a as SignoffEvent, b as SignoffReport } from './typ
17
16
  * Nothing about a failure is inferred. Every step reports its command, exit
18
17
  * code, duration, seed and captured output.
19
18
  */
20
- interface RunSignoffOptions {
19
+ export interface RunSignoffOptions {
21
20
  /** Any directory inside the repo. Defaults to the process cwd. */
22
21
  readonly repoDir?: string;
23
22
  readonly configPath?: string;
@@ -35,6 +34,4 @@ interface RunSignoffOptions {
35
34
  readonly keepWorkspace?: boolean;
36
35
  readonly onEvent?: (event: SignoffEvent) => void;
37
36
  }
38
- declare function runSignoff(options?: RunSignoffOptions): Promise<SignoffReport>;
39
-
40
- export { type RunSignoffOptions as R, runSignoff as r };
37
+ export declare function runSignoff(options?: RunSignoffOptions): Promise<SignoffReport>;
@@ -0,0 +1,55 @@
1
+ /**
2
+ * The dependency graph, and running it as wide as the graph allows.
3
+ *
4
+ * CI runs these steps in a line because a YAML `steps:` list is a line. Nothing
5
+ * about the work requires that: typecheck, the suite, the build and knip all
6
+ * read source and none reads another's output. On a 32-core host, running them
7
+ * concurrently is free wall-clock, and it is the only reason a strictly larger
8
+ * verification can still finish faster than the CI it replaces.
9
+ *
10
+ * The graph is declared per step (`needs`), validated here, and the schedule is
11
+ * derived from it — so an omitted edge is a correctness bug the repo owns, and
12
+ * a cycle is named rather than deadlocking.
13
+ */
14
+ export interface GraphNode {
15
+ readonly name: string;
16
+ readonly needs?: readonly string[];
17
+ }
18
+ /** Throws on a duplicate name, a dangling `needs`, or a cycle. */
19
+ export declare function validateGraph(nodes: readonly GraphNode[]): void;
20
+ type TaskStatus = 'passed' | 'failed' | 'skipped' | 'cancelled' | 'blocked';
21
+ export interface TaskOutcome<T> {
22
+ readonly name: string;
23
+ readonly status: TaskStatus;
24
+ /** Present for anything that actually ran, including a cancelled task. */
25
+ readonly value: T | null;
26
+ readonly startedAtMs: number | null;
27
+ readonly finishedAtMs: number | null;
28
+ }
29
+ export interface RunGraphOptions<TNode extends GraphNode, TValue> {
30
+ readonly nodes: readonly TNode[];
31
+ readonly maxParallel: number;
32
+ /** `false` stops scheduling after the first failure and kills what is running. */
33
+ readonly keepGoing: boolean;
34
+ /** Runs one node. Resolves `{ ok }` for pass/fail; must not throw for a
35
+ * failing command — a non-zero exit is data. */
36
+ readonly run: (node: TNode, signal: AbortSignal) => Promise<{
37
+ readonly ok: boolean;
38
+ readonly value: TValue;
39
+ }>;
40
+ /** Wall-clock origin, so outcomes are comparable across the whole run. */
41
+ readonly now?: () => number;
42
+ }
43
+ /**
44
+ * Run the graph, honouring dependencies and the parallelism cap.
45
+ *
46
+ * Failure semantics, stated because they are the difference between a gate you
47
+ * trust and one you argue with:
48
+ * - fail-fast (default): nothing new is scheduled, everything in flight is
49
+ * aborted and reported as `cancelled`, everything unstarted as `skipped`.
50
+ * - `keepGoing`: independent work continues, but a step whose dependency
51
+ * failed is reported `blocked`. It is never reported as passed, and never
52
+ * silently omitted.
53
+ */
54
+ export declare function runGraph<TNode extends GraphNode, TValue>(options: RunGraphOptions<TNode, TValue>): Promise<TaskOutcome<TValue>[]>;
55
+ export {};
@@ -0,0 +1,50 @@
1
+ import type { SignoffStepSpec } from './types';
2
+ export declare const DEFAULT_SHUFFLE_RUNS = 2;
3
+ /** A fresh base seed. Random, then recorded — never a fixed constant, or the
4
+ * "randomized" order is one more fixed order. */
5
+ export declare function newSeedBase(): number;
6
+ /**
7
+ * Derive a step's Nth seed from the base.
8
+ *
9
+ * A hash rather than `base + n`: adjacent seeds produce correlated orders in
10
+ * some runners, and the point is independent samples of the order space.
11
+ */
12
+ export declare function deriveSeed(base: number, stepName: string, index: number): number;
13
+ /**
14
+ * Refuse a shuffled step whose command cannot receive the appended flags.
15
+ *
16
+ * pnpm only forwards extra arguments to a script through `run`, `exec` or
17
+ * `dlx`. The shorthand form puts pnpm's own option parser in front of them, and
18
+ * what happens next is a version lottery. Measured on this host, appending
19
+ * `--sequence.shuffle.files=true --sequence.seed=7` to a script that prints its
20
+ * `process.argv`:
21
+ *
22
+ * | command | pnpm 9.15.9 | pnpm 10.22.0 |
23
+ * |---|---|---|
24
+ * | `pnpm run t <flags>` | forwarded, exit 0 | forwarded, exit 0 |
25
+ * | `pnpm exec node probe.mjs <flags>` | forwarded, exit 0 | forwarded, exit 0 |
26
+ * | `pnpm t <flags>` | `Unknown options`, exit 1 | exit 254, script never ran |
27
+ * | `pnpm --filter web t <flags>` | `Unknown options`, exit 1 | **exit 0, script never ran** |
28
+ *
29
+ * That last cell is the reason this is a refusal and not a note. tax-agent's CI
30
+ * runs `pnpm --filter web test`, and a config that copied the line verbatim
31
+ * would, on pnpm 10, report a green "unit tests" step that executed zero tests.
32
+ * A gate reporting safety it did not provide is the exact failure this module
33
+ * exists to prevent, and the shorthand makes it silent.
34
+ *
35
+ * This is a static approximation — it checks the invocation SHAPE, not what the
36
+ * runner received — so it is deliberately narrow: it fires only on commands
37
+ * that invoke pnpm, and only on steps that get arguments appended.
38
+ */
39
+ export declare function assertShuffleArgsReachTheRunner(steps: readonly SignoffStepSpec[]): void;
40
+ export interface StepAttemptPlan {
41
+ readonly command: string;
42
+ readonly seed: number | null;
43
+ }
44
+ /**
45
+ * Expand one step into the commands that will actually run.
46
+ *
47
+ * An unshuffled step is one attempt with no seed. A shuffled step is one
48
+ * attempt per seed, each with the seed substituted into the appended arguments.
49
+ */
50
+ export declare function planAttempts(step: SignoffStepSpec, seedBase: number, overrideRuns?: number): StepAttemptPlan[];
@@ -0,0 +1,22 @@
1
+ export interface StoreResolution {
2
+ readonly storeDir: string;
3
+ readonly cacheKey: string;
4
+ /** True when a store for this key already had content. */
5
+ readonly hit: boolean;
6
+ /** Repo-relative manifest paths, sorted — the inputs to `cacheKey`. */
7
+ readonly keyedOn: readonly string[];
8
+ /** Store directories removed by the generation cap. */
9
+ readonly pruned: readonly string[];
10
+ }
11
+ export interface ResolveStoreOptions {
12
+ /** The clean tree whose manifests are hashed. */
13
+ readonly treePath: string;
14
+ readonly cacheDir: string;
15
+ /** Generations to keep. Default 4. */
16
+ readonly generations?: number;
17
+ }
18
+ /** Every manifest in the tree, repo-relative and sorted. */
19
+ export declare function manifestFiles(treePath: string): string[];
20
+ /** sha256 over each manifest's path and content — order-independent by sorting. */
21
+ export declare function manifestCacheKey(treePath: string, files: readonly string[]): string;
22
+ export declare function resolveStore(options: ResolveStoreOptions): StoreResolution;
@@ -11,7 +11,7 @@
11
11
  * gates.
12
12
  */
13
13
  /** Which bytes get verified. */
14
- type SignoffSource =
14
+ export type SignoffSource =
15
15
  /** Exactly the commit that would merge. Uncommitted work is NOT included. */
16
16
  'head'
17
17
  /** HEAD plus the working tree: tracked modifications applied as a patch and
@@ -26,7 +26,7 @@ type SignoffSource =
26
26
  * it in either direction. Every seed used is recorded in the report, which is
27
27
  * what makes a shuffled failure reproducible rather than folklore.
28
28
  */
29
- interface SignoffShuffleSpec {
29
+ export interface SignoffShuffleSpec {
30
30
  /** How many times to run the step, each with its own seed. Default 2. */
31
31
  readonly runs?: number;
32
32
  /** Exact seeds to use. Wins over `runs`; use it to replay a known failure. */
@@ -36,7 +36,7 @@ interface SignoffShuffleSpec {
36
36
  readonly args?: readonly string[];
37
37
  }
38
38
  /** One verification step — a CI step, declared by the repo. */
39
- interface SignoffStepSpec {
39
+ export interface SignoffStepSpec {
40
40
  /** Unique within the config. Names the failure in the report. */
41
41
  readonly name: string;
42
42
  /** Shell command, run from `cwd` inside the clean tree. */
@@ -56,7 +56,7 @@ interface SignoffStepSpec {
56
56
  readonly shuffle?: boolean | SignoffShuffleSpec;
57
57
  }
58
58
  /** The hermetic install that precedes every step. */
59
- interface SignoffInstallSpec {
59
+ export interface SignoffInstallSpec {
60
60
  /** Default `pnpm install --frozen-lockfile`. tax-agent needs
61
61
  * `--filter web...` because `server/` depends on a sibling repo by `file:`. */
62
62
  readonly run?: string;
@@ -73,7 +73,7 @@ interface SignoffInstallSpec {
73
73
  readonly env?: Readonly<Record<string, string>>;
74
74
  }
75
75
  /** What a repo declares in `signoff.config.mjs` or a package.json `signoff` key. */
76
- interface SignoffConfig {
76
+ export interface SignoffConfig {
77
77
  readonly install?: SignoffInstallSpec;
78
78
  readonly steps: readonly SignoffStepSpec[];
79
79
  /** Cap on concurrently running steps. Defaults to the host's parallelism. */
@@ -98,7 +98,7 @@ interface SignoffConfig {
98
98
  }
99
99
  /** Where a config came from. Printed in the proof — a run against a derived
100
100
  * default is a weaker claim than one against a declared step list. */
101
- type SignoffConfigOrigin = {
101
+ export type SignoffConfigOrigin = {
102
102
  readonly kind: 'file';
103
103
  readonly path: string;
104
104
  } | {
@@ -109,12 +109,12 @@ type SignoffConfigOrigin = {
109
109
  readonly path: string;
110
110
  readonly scripts: readonly string[];
111
111
  };
112
- interface LoadedSignoffConfig {
112
+ export interface LoadedSignoffConfig {
113
113
  readonly config: SignoffConfig;
114
114
  readonly origin: SignoffConfigOrigin;
115
115
  }
116
116
  /** One execution of a step's command. A shuffled step has several. */
117
- interface SignoffAttempt {
117
+ export interface SignoffAttempt {
118
118
  readonly command: string;
119
119
  /** The suite-order seed, or `null` for an unshuffled step. */
120
120
  readonly seed: number | null;
@@ -127,14 +127,14 @@ interface SignoffAttempt {
127
127
  readonly output: string;
128
128
  readonly outputTruncated: boolean;
129
129
  }
130
- type SignoffStepStatus = 'passed' | 'failed'
130
+ export type SignoffStepStatus = 'passed' | 'failed'
131
131
  /** Never started — an earlier failure stopped the schedule. */
132
132
  | 'skipped'
133
133
  /** Started, then killed when another step failed under fail-fast. */
134
134
  | 'cancelled'
135
135
  /** A dependency failed, so this step could not be judged. */
136
136
  | 'blocked';
137
- interface SignoffStepResult {
137
+ export interface SignoffStepResult {
138
138
  readonly name: string;
139
139
  readonly status: SignoffStepStatus;
140
140
  readonly attempts: readonly SignoffAttempt[];
@@ -144,7 +144,7 @@ interface SignoffStepResult {
144
144
  readonly startedAtMs: number | null;
145
145
  readonly finishedAtMs: number | null;
146
146
  }
147
- interface SignoffInstallResult {
147
+ export interface SignoffInstallResult {
148
148
  readonly command: string;
149
149
  readonly storeDir: string;
150
150
  readonly cacheKey: string;
@@ -157,7 +157,7 @@ interface SignoffInstallResult {
157
157
  readonly output: string;
158
158
  readonly outputTruncated: boolean;
159
159
  }
160
- interface SignoffRepoFacts {
160
+ export interface SignoffRepoFacts {
161
161
  readonly root: string;
162
162
  readonly head: string;
163
163
  readonly branch: string;
@@ -169,7 +169,7 @@ interface SignoffRepoFacts {
169
169
  readonly untrackedFiles: readonly string[];
170
170
  readonly carriedFiles: readonly string[];
171
171
  }
172
- interface SignoffHostFacts {
172
+ export interface SignoffHostFacts {
173
173
  readonly node: string;
174
174
  /** The pin the repo declares, and where it came from. `null` when the repo
175
175
  * pins nothing — stated in the proof, because an unpinned runtime is a
@@ -181,7 +181,7 @@ interface SignoffHostFacts {
181
181
  readonly arch: string;
182
182
  readonly cpus: number;
183
183
  }
184
- interface SignoffReport {
184
+ export interface SignoffReport {
185
185
  readonly ok: boolean;
186
186
  readonly startedAt: string;
187
187
  readonly repo: SignoffRepoFacts;
@@ -201,7 +201,7 @@ interface SignoffReport {
201
201
  readonly reproduce: string;
202
202
  }
203
203
  /** Progress, for a CLI that prints as it goes rather than at the end. */
204
- type SignoffEvent = {
204
+ export type SignoffEvent = {
205
205
  readonly kind: 'tree';
206
206
  readonly path: string;
207
207
  readonly head: string;
@@ -229,5 +229,3 @@ type SignoffEvent = {
229
229
  readonly status: SignoffStepStatus;
230
230
  readonly durationMs: number;
231
231
  };
232
-
233
- export type { LoadedSignoffConfig as L, SignoffSource as S, SignoffEvent as a, SignoffReport as b, SignoffAttempt as c, SignoffConfig as d, SignoffConfigOrigin as e, SignoffHostFacts as f, SignoffInstallResult as g, SignoffInstallSpec as h, SignoffRepoFacts as i, SignoffShuffleSpec as j, SignoffStepResult as k, SignoffStepSpec as l, SignoffStepStatus as m };
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Read the Node pin out of the workflows that gate a merge.
3
+ *
4
+ * This exists because of a measured false PASS. legal-agent `4c0d688` was red
5
+ * in CI on two test files — `Cannot bundle Node.js built-in "node:sqlite"` —
6
+ * and the sign-off gate signed it off. Same bytes, same lockfile, same
7
+ * hermetic tree: on Node 22 both files fail, on Node 24 both pass, 100% of the
8
+ * time. The runtime was the whole difference, and the gate never saw it because
9
+ * it looked for a pin in exactly two places the fleet does not keep one.
10
+ *
11
+ * None of tax-agent, legal-agent or agent-app has a `.nvmrc`. All three pin
12
+ * `node-version: 22` in the workflow that IS the merge gate. So the pin the
13
+ * gate is replacing was sitting in the file it is replacing, unread.
14
+ *
15
+ * Scope is deliberate: only workflows that trigger on `pull_request`. Those are
16
+ * the merge gate. agent-app's `publish.yml` runs Node 24.18.0 for its release
17
+ * jobs and triggers on push, and reading it would put the gate in permanent
18
+ * conflict with `ci.yml`'s Node 22.
19
+ *
20
+ * Nothing here guesses. An expression (`${{ matrix.node }}`) is not a version,
21
+ * a `node-version-file` that does not exist is not a pin, and two merge-gate
22
+ * workflows on different majors is a question this module cannot answer — each
23
+ * one refuses and names the config key that settles it.
24
+ */
25
+ export interface WorkflowNodePin {
26
+ /** Repo-relative workflow path, for the proof. */
27
+ readonly file: string;
28
+ /** The version as written: `22`, `24.18.0`, `v20`. */
29
+ readonly value: string;
30
+ /** `node-version`, or the `node-version-file` path it was read through. */
31
+ readonly via: string;
32
+ }
33
+ /**
34
+ * Does this workflow run on `pull_request`?
35
+ *
36
+ * Both spellings the fleet uses are handled: the block form every workflow here
37
+ * writes, and the inline form (`on: [push, pull_request]`). `on` is quoted in
38
+ * some repos because YAML 1.1 reads a bare `on` as the boolean true, so the
39
+ * quoted keys are matched too.
40
+ */
41
+ export declare function triggersOnPullRequest(source: string): boolean;
42
+ /** Node pins declared by every workflow that gates a merge, in filename order. */
43
+ export declare function scanMergeGateNodePins(repoRoot: string): WorkflowNodePin[];
44
+ export interface ResolvedWorkflowPin {
45
+ readonly major: number;
46
+ readonly declared: string;
47
+ readonly source: string;
48
+ }
49
+ /**
50
+ * One Node major for the whole merge gate, or a refusal that names why not.
51
+ *
52
+ * `majorOf` is injected rather than imported to keep the direction of the
53
+ * dependency one-way: `node-version.ts` owns what a version string means, this
54
+ * module owns where the string lives.
55
+ */
56
+ export declare function resolveWorkflowNodePin(repoRoot: string, majorOf: (raw: string) => number | null): ResolvedWorkflowPin | null;
@@ -0,0 +1,40 @@
1
+ import type { SignoffRepoFacts, SignoffSource } from './types';
2
+ /**
3
+ * Materialize the pristine checkout every step runs against.
4
+ *
5
+ * **The decision, and the measurement behind it: a `git worktree` of HEAD, not
6
+ * a filtered copy.** Both were timed on two real repos on this host:
7
+ *
8
+ * | repo | `git worktree add --detach` | `rsync -a --exclude node_modules --exclude .git` |
9
+ * |---|---|---|
10
+ * | agent-app (931 tracked files) | **0.04 s / 11 MB** | 0.12 s / 25 MB |
11
+ * | legal-agent (753 tracked files) | **0.06 s / 24 MB** | **3.97 s / 2.7 GB** |
12
+ *
13
+ * The 2.7 GB is the argument. The copy carried `build/`, `.react-router/` and
14
+ * `.wrangler/` — generated output and framework caches — because an exclude
15
+ * list is a hand-maintained enumeration of things to leave behind, and it is
16
+ * never complete. A warm Vite cache is precisely what made the `node:sqlite`
17
+ * bundling failure invisible locally while CI saw it, so a materializer that
18
+ * can leak one has defeated its own purpose. `git` already knows what is source
19
+ * and what is generated, and `.gitignore` is that list, maintained by the repo.
20
+ *
21
+ * The overlay on top is what keeps the gate usable before you commit:
22
+ * `source: 'working-tree'` applies `git diff HEAD` (staged and unstaged) as a
23
+ * patch and copies untracked, non-ignored files in. `source: 'head'` verifies
24
+ * exactly the commit that would merge.
25
+ */
26
+ export interface MaterializeOptions {
27
+ readonly repoDir: string;
28
+ readonly dest: string;
29
+ readonly source: SignoffSource;
30
+ /** Gitignored files the run genuinely needs. Missing ones abort. */
31
+ readonly carryFiles?: readonly string[];
32
+ }
33
+ export interface CleanTree extends SignoffRepoFacts {
34
+ /** Absolute path of the materialized checkout. */
35
+ readonly path: string;
36
+ }
37
+ export declare function repoRootOf(dir: string): string;
38
+ export declare function materializeCleanTree(options: MaterializeOptions): CleanTree;
39
+ /** Unregister and delete a materialized tree. */
40
+ export declare function removeCleanTree(tree: CleanTree): void;
@@ -1,5 +1,3 @@
1
- import { AgentProfileFileMount, AgentProfileResourceRef } from '@tangle-network/agent-interface';
2
-
3
1
  /**
4
2
  * Unified skill + corpus mounter for agent products.
5
3
  *
@@ -43,15 +41,15 @@ import { AgentProfileFileMount, AgentProfileResourceRef } from '@tangle-network/
43
41
  * are resolved lazily via `process.getBuiltinModule` so a static `node:*`
44
42
  * import never reaches the Vite SSR bundle.
45
43
  */
46
-
44
+ import type { AgentProfileFileMount, AgentProfileResourceRef } from '@tangle-network/agent-interface';
47
45
  /** A Vite eager `?raw` glob result: glob key -> raw file body. The consumer
48
46
  * produces this by calling `import.meta.glob('<lit>', { eager: true, query:
49
47
  * '?raw', import: 'default' })` at its own call site — the literal must stay
50
48
  * literal so Vite can static-analyze it; passing the result here keeps that
51
49
  * constraint at the edge and the loader substrate-free. */
52
- type GlobModules = Record<string, string>;
50
+ export type GlobModules = Record<string, string>;
53
51
  /** One markdown document discovered from the corpus. */
54
- interface CorpusEntry {
52
+ export interface CorpusEntry {
55
53
  /** Slug derived from the glob key (folder slug for `SKILL.md` layouts, or the
56
54
  * normalized relative path for flat `*.md` layouts). */
57
55
  id: string;
@@ -65,7 +63,7 @@ interface CorpusEntry {
65
63
  * registry entry (gtm/insurance `SkillEntry`); the runtime's certified `skill`
66
64
  * artifact kind is unrelated. `skillMd` is the inline body — file provenance
67
65
  * does not apply to the registry. */
68
- interface SkillEntry {
66
+ export interface SkillEntry {
69
67
  id: string;
70
68
  name: string;
71
69
  description: string;
@@ -93,9 +91,9 @@ interface SkillEntry {
93
91
  * harness-native dir directly via `@tangle-network/agent-app/skills-placement`.
94
92
  * Kept only for the pre-existing `registrySkills`/`userSkillMounts` callers;
95
93
  * do not add new call sites. */
96
- declare function skillMountPath(id: string): string;
94
+ export declare function skillMountPath(id: string): string;
97
95
  /** Options for {@link loadMarkdownCorpus}. */
98
- interface LoadCorpusOptions {
96
+ export interface LoadCorpusOptions {
99
97
  /** The anchor folder name that appears in both glob keys and fs paths
100
98
  * (`skills`, `doctrine`, `knowledge`). Used to normalize keys + derive ids. */
101
99
  anchor: string;
@@ -116,7 +114,7 @@ interface LoadCorpusOptions {
116
114
  /** Outcome of {@link loadMarkdownCorpus}: the entries plus which path produced
117
115
  * them, so a caller can fail loud when both are empty rather than silently
118
116
  * mounting nothing. */
119
- interface CorpusLoadResult {
117
+ export interface CorpusLoadResult {
120
118
  source: 'vite' | 'fs' | 'empty';
121
119
  entries: CorpusEntry[];
122
120
  }
@@ -127,18 +125,18 @@ interface CorpusLoadResult {
127
125
  * determinism. The `import.meta.glob` literal stays at the CONSUMER call site
128
126
  * (passed in as `globModules`); this loader never constructs a glob.
129
127
  */
130
- declare function loadMarkdownCorpus(options: LoadCorpusOptions, importMetaUrl?: string): CorpusLoadResult;
128
+ export declare function loadMarkdownCorpus(options: LoadCorpusOptions, importMetaUrl?: string): CorpusLoadResult;
131
129
  /** Project corpus entries onto SDK file mounts at a relative path under
132
130
  * `<anchor>/`. Always-mounted: the corpus is the agent's baseline knowledge. */
133
- declare function corpusSkills(corpus: CorpusEntry[], anchor: string): AgentProfileFileMount[];
131
+ export declare function corpusSkills(corpus: CorpusEntry[], anchor: string): AgentProfileFileMount[];
134
132
  /** Project the registry's free-tier (or `tier`-matched) entries onto SDK file
135
133
  * mounts at the harness skill-discovery path. Tier-gating is the registry's
136
134
  * only selection rule — paid skills are installed on demand, not at boot. */
137
- declare function registrySkills(registry: SkillEntry[], tier?: string): AgentProfileFileMount[];
135
+ export declare function registrySkills(registry: SkillEntry[], tier?: string): AgentProfileFileMount[];
138
136
  /** Inputs to {@link composeShellResources}. Each channel is optional so a
139
137
  * product mounts only the systems it has — corpus-only, registry-only, or
140
138
  * both — without conflating them. */
141
- interface ComposeShellResourcesInput {
139
+ export interface ComposeShellResourcesInput {
142
140
  /** Corpus mounts (always-mounted baseline). Pass the result of
143
141
  * {@link corpusSkills}, or a hand-built mount list. */
144
142
  skills?: AgentProfileFileMount[];
@@ -159,11 +157,11 @@ interface ComposeShellResourcesInput {
159
157
  * is exactly `AgentProfileFileMount[]` — assign it straight into
160
158
  * `profile.resources.files` with no cast.
161
159
  */
162
- declare function composeShellResources(input: ComposeShellResourcesInput): AgentProfileFileMount[];
160
+ export declare function composeShellResources(input: ComposeShellResourcesInput): AgentProfileFileMount[];
163
161
  /** Fields a `SKILL.md` frontmatter block may declare. All optional — absent
164
162
  * frontmatter (or an absent field within it) is legal; callers fill defaults
165
163
  * (see {@link skillEntryFromMarkdown}). */
166
- interface SkillFrontmatter {
164
+ export interface SkillFrontmatter {
167
165
  id?: string;
168
166
  name?: string;
169
167
  description?: string;
@@ -178,7 +176,7 @@ interface SkillFrontmatter {
178
176
  }
179
177
  /** The result of {@link parseSkillFrontmatter}: the parsed fields, the body
180
178
  * with the frontmatter block stripped, and the original untouched text. */
181
- interface ParsedSkill {
179
+ export interface ParsedSkill {
182
180
  frontmatter: SkillFrontmatter;
183
181
  body: string;
184
182
  raw: string;
@@ -197,7 +195,7 @@ interface ParsedSkill {
197
195
  * mis-parsed metadata is the bug class this parser exists to kill; an
198
196
  * unrecognized shape is never guessed at.
199
197
  */
200
- declare function parseSkillFrontmatter(raw: string): ParsedSkill;
198
+ export declare function parseSkillFrontmatter(raw: string): ParsedSkill;
201
199
  /** Build a {@link SkillEntry} from a raw `SKILL.md` body. `id` comes from
202
200
  * frontmatter, falling back to `fallbackId` (typically the corpus entry's
203
201
  * slug/filename); neither present throws. `name` defaults to `id`,
@@ -205,21 +203,21 @@ declare function parseSkillFrontmatter(raw: string): ParsedSkill;
205
203
  * untouched `raw` input — the full file, frontmatter included, is what a
206
204
  * `mounted` delivery writes to disk and what `renderInlineSkills` strips per
207
205
  * render. */
208
- declare function skillEntryFromMarkdown(raw: string, fallbackId?: string): SkillEntry;
206
+ export declare function skillEntryFromMarkdown(raw: string, fallbackId?: string): SkillEntry;
209
207
  /** Map a loaded corpus (see {@link loadMarkdownCorpus}) onto `SkillEntry`s,
210
208
  * using each entry's `id` as the fallback when its `SKILL.md` carries no
211
209
  * frontmatter `id` of its own. */
212
- declare function parseCorpusSkills(corpus: CorpusEntry[]): SkillEntry[];
210
+ export declare function parseCorpusSkills(corpus: CorpusEntry[]): SkillEntry[];
213
211
  /** Project skills onto the typed `resources.skills` channel
214
212
  * (`AgentProfileResourceRef[]`), tier-filtered (same `s.tier === tier`
215
213
  * semantics as {@link registrySkills}) when `opts.tier` is given, sorted by
216
214
  * id for determinism. `ref.name` MUST be the skill id: the platform
217
215
  * materializer writes each ref to `${skillDir}/${name}/SKILL.md`. */
218
- declare function skillRefs(skills: SkillEntry[], opts?: {
216
+ export declare function skillRefs(skills: SkillEntry[], opts?: {
219
217
  tier?: string;
220
218
  }): AgentProfileResourceRef[];
221
219
  /** Inputs to {@link renderInlineSkills}. */
222
- interface RenderInlineSkillsInput {
220
+ export interface RenderInlineSkillsInput {
223
221
  skills: SkillEntry[];
224
222
  /** Section heading. Default `'## Skills'`. */
225
223
  heading?: string;
@@ -236,9 +234,9 @@ interface RenderInlineSkillsInput {
236
234
  * `\n\n` — the same "already carries its own leading `\n\n`" shape
237
235
  * `assembleSystemPrompt` expects from every section it concatenates.
238
236
  */
239
- declare function renderInlineSkills(input: RenderInlineSkillsInput): string;
237
+ export declare function renderInlineSkills(input: RenderInlineSkillsInput): string;
240
238
  /** Inputs to {@link renderSkillIndex}. */
241
- interface RenderSkillIndexInput {
239
+ export interface RenderSkillIndexInput {
242
240
  skills: SkillEntry[];
243
241
  /** cwd-relative directory the skills are mounted under (e.g.
244
242
  * `.opencode/skills`) — named in each index line so the agent knows where
@@ -255,25 +253,25 @@ interface RenderSkillIndexInput {
255
253
  * {@link skillRefs} putting the actual files on `resources.skills`. Same
256
254
  * empty/section shape as {@link renderInlineSkills}.
257
255
  */
258
- declare function renderSkillIndex(input: RenderSkillIndexInput): string;
256
+ export declare function renderSkillIndex(input: RenderSkillIndexInput): string;
259
257
  /** How a skill reaches the agent: `inline` renders its full body into the
260
258
  * system prompt; `mounted` puts it on the typed `resources.skills` channel
261
259
  * and renders only an index line. */
262
- type SkillDeliveryMode = 'inline' | 'mounted';
260
+ export type SkillDeliveryMode = 'inline' | 'mounted';
263
261
  /** The output of {@link composeSkills}: the refs to attach to
264
262
  * `resources.skills` (empty for `inline`) and the prompt section to fold into
265
263
  * the system prompt (already carries its own leading `\n\n`, or `''`).
266
264
  * `inlineIds`/`mountedIds` record which (tier-filtered) skills were delivered
267
265
  * in each mode so {@link mergeComposedSkills} can enforce the modes stay
268
266
  * disjoint when batches are combined. */
269
- interface ComposedSkills {
267
+ export interface ComposedSkills {
270
268
  refs: AgentProfileResourceRef[];
271
269
  promptSection: string;
272
270
  inlineIds: string[];
273
271
  mountedIds: string[];
274
272
  }
275
273
  /** Inputs to {@link composeSkills}. */
276
- interface ComposeSkillsInput {
274
+ export interface ComposeSkillsInput {
277
275
  skills: SkillEntry[];
278
276
  mode: SkillDeliveryMode;
279
277
  tier?: string;
@@ -293,12 +291,12 @@ interface ComposeSkillsInput {
293
291
  * whose own default is to throw rather than choose `inline` for you — inline
294
292
  * is a narrow, explicitly opted-into fallback, not a co-equal mode).
295
293
  */
296
- declare function composeSkills(input: ComposeSkillsInput): ComposedSkills;
294
+ export declare function composeSkills(input: ComposeSkillsInput): ComposedSkills;
297
295
  /** Throw when the same skill id is delivered both `inline` and `mounted` —
298
296
  * the agent would see it twice (once in the prompt body, once as a mounted
299
297
  * file it's told to go read), doubling prompt bytes and inviting drift
300
298
  * between the two copies. Lists every offending id in the message. */
301
- declare function assertSkillDeliveryDisjoint(inlineIds: Iterable<string>, mountedIds: Iterable<string>): void;
299
+ export declare function assertSkillDeliveryDisjoint(inlineIds: Iterable<string>, mountedIds: Iterable<string>): void;
302
300
  /**
303
301
  * Combine multiple {@link ComposedSkills} batches (e.g. a built-in corpus and
304
302
  * an installed catalog) into one, concatenating refs and prompt sections in
@@ -308,6 +306,4 @@ declare function assertSkillDeliveryDisjoint(inlineIds: Iterable<string>, mounte
308
306
  * reaching the agent twice. Merge through this rather than spreading batch
309
307
  * fields by hand.
310
308
  */
311
- declare function mergeComposedSkills(batches: ComposedSkills[]): ComposedSkills;
312
-
313
- export { type ComposeShellResourcesInput, type ComposeSkillsInput, type ComposedSkills, type CorpusEntry, type CorpusLoadResult, type GlobModules, type LoadCorpusOptions, type ParsedSkill, type RenderInlineSkillsInput, type RenderSkillIndexInput, type SkillDeliveryMode, type SkillEntry, type SkillFrontmatter, assertSkillDeliveryDisjoint, composeShellResources, composeSkills, corpusSkills, loadMarkdownCorpus, mergeComposedSkills, parseCorpusSkills, parseSkillFrontmatter, registrySkills, renderInlineSkills, renderSkillIndex, skillEntryFromMarkdown, skillMountPath, skillRefs };
309
+ export declare function mergeComposedSkills(batches: ComposedSkills[]): ComposedSkills;
@@ -1,7 +1,3 @@
1
- import { Harness } from '../harness/index.js';
2
- import { SkillEntry, ComposedSkills } from '../skills/index.js';
3
- import '@tangle-network/agent-interface';
4
-
5
1
  /**
6
2
  * Harness-native skill directory resolution — the one place agent-app binds
7
3
  * to the platform's authoritative per-harness skill-dir map.
@@ -21,19 +17,20 @@ import '@tangle-network/agent-interface';
21
17
  * other agent-app skills surface (`../skills`, `ProfileChannels.skillRefs`)
22
18
  * works without it, falling back to `inline` delivery.
23
19
  */
24
-
20
+ import { type Harness } from '../harness/index';
21
+ import { type ComposedSkills, type SkillEntry } from '../skills/index';
25
22
  /** Resolve the cwd-relative skill dir `resources.skills` refs materialize
26
23
  * into on `harness` — via the platform's `skillDirForHarness`. `null` when
27
24
  * `harness` isn't bridged (see {@link HARNESS_BRIDGE}) or when the platform
28
25
  * itself has no cwd skill primitive for it (e.g. `hermes`, user-dir-only). */
29
- declare function resolveSkillDir(harness: Harness): string | null;
26
+ export declare function resolveSkillDir(harness: Harness): string | null;
30
27
  /** Filter `harnesses` down to those with no mounted skill dir (deduped,
31
28
  * first-seen order preserved) — the set that must fall back to `inline`
32
29
  * delivery, or that a caller should warn about before offering "mounted"
33
30
  * install UX. */
34
- declare function unsupportedSkillHarnesses(harnesses: Iterable<Harness>): Harness[];
31
+ export declare function unsupportedSkillHarnesses(harnesses: Iterable<Harness>): Harness[];
35
32
  /** Inputs to {@link composeSkillsForHarness}. */
36
- interface ComposeSkillsForHarnessInput {
33
+ export interface ComposeSkillsForHarnessInput {
37
34
  skills: SkillEntry[];
38
35
  harness: Harness;
39
36
  tier?: string;
@@ -76,6 +73,5 @@ interface ComposeSkillsForHarnessInput {
76
73
  * The one function a product calls instead of hand-checking `resolveSkillDir`
77
74
  * and branching between {@link composeSkills}'s two modes itself.
78
75
  */
79
- declare function composeSkillsForHarness(input: ComposeSkillsForHarnessInput): ComposedSkills;
80
-
81
- export { type ComposeSkillsForHarnessInput, ComposedSkills, SkillEntry, composeSkillsForHarness, resolveSkillDir, unsupportedSkillHarnesses };
76
+ export declare function composeSkillsForHarness(input: ComposeSkillsForHarnessInput): ComposedSkills;
77
+ export type { ComposedSkills, SkillEntry } from '../skills/index';