@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,529 +1,3 @@
1
- /**
2
- * The vocabulary of the legibility gate: what a finding is, what a suppression
3
- * is, and what a product configures.
4
- *
5
- * Kept in its own module so the checks, the report formatter and the bin all
6
- * agree on one shape, and so a consumer can import the types without pulling in
7
- * `node:fs`.
8
- */
9
- /** The checks this gate runs. Each is individually suppressible, by name. */
10
- type LegibilityCheckId =
11
- /** Words on screen that belong to the codebase, not to the reader. */
12
- 'engineering-vocabulary'
13
- /** An empty/zero state whose subtree offers no next action. */
14
- | 'dead-end-empty-state'
15
- /** A success state set without inspecting the response that would deny it. */
16
- | 'unchecked-success'
17
- /** A `catch` that neither surfaces the failure nor rethrows it. */
18
- | 'silent-failure'
19
- /** A route no navigation entry and no in-source link can reach. */
20
- | 'unreachable-capability'
21
- /** A suppression comment that names a check but gives no reason. */
22
- | 'suppression-without-reason';
23
- declare const LEGIBILITY_CHECKS: readonly LegibilityCheckId[];
24
- /** One defect, at one place, with the fix named. */
25
- interface LegibilityFinding {
26
- readonly check: LegibilityCheckId;
27
- /** Path as reported — relative to the working directory when it is inside it. */
28
- readonly file: string;
29
- /** 1-based. */
30
- readonly line: number;
31
- /** 1-based. */
32
- readonly column: number;
33
- /** What is wrong, in one sentence a reviewer can act on. */
34
- readonly message: string;
35
- /** What to do about it. Every finding carries one; a finding without a fix is a complaint. */
36
- readonly remedy: string;
37
- /** The offending source, trimmed to one readable line. */
38
- readonly evidence: string;
39
- }
40
- /** A suppression that was honoured, with the reason its author wrote. */
41
- interface LegibilitySuppression {
42
- readonly check: LegibilityCheckId;
43
- readonly reason: string;
44
- readonly file: string;
45
- readonly line: number;
46
- }
47
- interface LegibilityReport {
48
- readonly ok: boolean;
49
- readonly findings: readonly LegibilityFinding[];
50
- /** Honoured suppressions — printed, never silent. */
51
- readonly suppressed: readonly LegibilitySuppression[];
52
- readonly filesScanned: number;
53
- readonly checksRun: readonly LegibilityCheckId[];
54
- }
55
- /** A banned term plus the sentence that replaces it. */
56
- interface BannedTerm {
57
- /** Matched case-insensitively at word boundaries against visible copy. */
58
- readonly term: string;
59
- /** What to write instead — printed with the finding. */
60
- readonly instead: string;
61
- }
62
- interface VocabularyOptions {
63
- /** Replaces the default list outright. */
64
- readonly terms?: readonly BannedTerm[];
65
- /** Added to the default list — the common case for a product's own jargon. */
66
- readonly extraTerms?: readonly BannedTerm[];
67
- /** Removed from the default list, for a word that is genuinely the reader's. */
68
- readonly allowTerms?: readonly string[];
69
- /**
70
- * Additional JSX attributes / object keys whose string value is user-visible
71
- * copy (the defaults cover `title`, `label`, `placeholder`, `empty*`, …).
72
- */
73
- readonly extraCopyKeys?: readonly string[];
74
- /**
75
- * Additional call names whose first string argument is user-visible copy
76
- * (defaults cover `toast*`, `alert`, `setError`, `new Error`).
77
- */
78
- readonly extraCopyCalls?: readonly string[];
79
- /**
80
- * Also read strings filling an object key named like copy
81
- * (`description: '…'`). OFF by default: measured as the tier that reports
82
- * system prompts, MCP tool descriptions and document templates — text no
83
- * reader ever sees. Turn it on when your data modules really do hold UI copy.
84
- */
85
- readonly includeObjectCopy?: boolean;
86
- }
87
- interface EmptyStateOptions {
88
- /** Extra tags that count as an action (defaults: button, a, input, form, *Button, *Link, …). */
89
- readonly extraActionTags?: readonly string[];
90
- /** Extra props that count as an action (defaults: onClick, onSubmit, href, to, action, …). */
91
- readonly extraActionProps?: readonly string[];
92
- /** Extra regexes (as source strings) that identify empty-state copy. */
93
- readonly extraEmptyPatterns?: readonly string[];
94
- /**
95
- * Also report a zero-state that sits directly under a heading. OFF by
96
- * default: measured as the largest false-positive class — a titled section
97
- * with nothing in it labels a screen the reader is already oriented on, and a
98
- * detail page carrying four of them buries the one screen that is entirely
99
- * empty.
100
- */
101
- readonly reportSectionZeroStates?: boolean;
102
- }
103
- interface SuccessOptions {
104
- /**
105
- * Callees that resolve on a failed request instead of throwing. `fetch` is the
106
- * default and the reason this check exists; add your own thin wrapper here.
107
- */
108
- readonly httpCalls?: readonly string[];
109
- /** Extra identifiers that mean "the user has been told it worked". */
110
- readonly extraSuccessSignals?: readonly string[];
111
- /**
112
- * Calls that inspect a response and throw on a bad status
113
- * (`assertOk(res)`). Their presence in the same function counts as checking.
114
- */
115
- readonly okGuards?: readonly string[];
116
- }
117
- interface SilentFailureOptions {
118
- /** Extra identifiers that count as surfacing a failure to the user. */
119
- readonly extraErrorSinks?: readonly string[];
120
- /**
121
- * Path substrings whose modules cannot reach a browser, and whose handlers
122
- * are therefore not this check's business. Defaults to react-router's
123
- * server-only conventions (`/.server/`, `/routes/api.`); pass `[]` to read
124
- * every module, at the measured cost of a large false-positive class
125
- * (best-effort telemetry, audit writes and cache fallbacks).
126
- */
127
- readonly readerlessPaths?: readonly string[];
128
- }
129
- interface ReachabilityOptions {
130
- /**
131
- * A react-router `routes.ts` (the `@react-router/dev/routes` shape:
132
- * `route()` / `index()` / `layout()` / `prefix()`).
133
- */
134
- readonly routeConfigFile?: string;
135
- /** Route paths supplied directly, for a product on another router. */
136
- readonly routePaths?: readonly string[];
137
- /** Files that define navigation. Their path literals are the nav entries. */
138
- readonly navFiles?: readonly string[];
139
- /** Route paths (or prefixes ending in `/*`) that need no door — defaults to `api/*`. */
140
- readonly ignore?: readonly string[];
141
- /**
142
- * Treat a route whose module is not a `.tsx` file as a resource endpoint
143
- * rather than a screen. Default true — react-router resource routes are `.ts`.
144
- */
145
- readonly ignoreNonTsxRoutes?: boolean;
146
- }
147
- /** What a product writes in `legibility.config.mjs`. */
148
- interface LegibilityConfig {
149
- /** Source directories to scan, recursively. At least one. */
150
- readonly srcDirs: readonly string[];
151
- /** Turn a check off wholesale. Prefer a per-line suppression with a reason. */
152
- readonly checks?: Partial<Record<LegibilityCheckId, boolean>>;
153
- readonly vocabulary?: VocabularyOptions;
154
- readonly emptyState?: EmptyStateOptions;
155
- readonly success?: SuccessOptions;
156
- readonly silentFailure?: SilentFailureOptions;
157
- readonly reachability?: ReachabilityOptions;
158
- /** Path substrings to skip, added to the defaults (tests, fixtures, generated). */
159
- readonly ignorePaths?: readonly string[];
160
- }
161
-
162
- /**
163
- * The report a product reads in its CI log.
164
- *
165
- * A gate is only as good as the sentence a developer reads at 6pm with a red
166
- * build. So every finding prints three things and never fewer: WHERE
167
- * (`file:line:col`, clickable in every terminal and editor), WHAT is wrong in
168
- * the reader's terms, and WHAT TO DO about it. A finding without a remedy is a
169
- * complaint, and complaints get suppressed rather than fixed.
170
- *
171
- * Honoured suppressions are counted in the summary and listed on request. A
172
- * suppression that nobody can see is a disabled check with extra steps.
173
- */
174
-
175
- interface FormatOptions {
176
- /** Print every honoured suppression with its reason. */
177
- readonly listSuppressions?: boolean;
178
- /** Wrap check names in ANSI colour. Off by default — CI logs keep the bytes. */
179
- readonly colour?: boolean;
180
- }
181
- declare function formatLegibilityReport(report: LegibilityReport, options?: FormatOptions): string;
182
- /** The machine-readable form, for a product that posts findings somewhere. */
183
- declare function legibilityReportToJson(report: LegibilityReport): string;
184
-
185
- /**
186
- * A purpose-built TS/TSX scanner: the one place this subpath decides what part
187
- * of a file is CODE and what part is COPY A HUMAN READS.
188
- *
189
- * Every legibility check needs the same distinction, and getting it from
190
- * per-check regexes is what makes a lint gate imprecise enough to be turned off.
191
- * `grep -i artifact` over one product's `apps/web/src` returns 11 hits and every
192
- * single one is an import specifier, a prop name, or a doc comment — zero are on
193
- * screen. A checker that reports those 11 is deleted within a week, and then it
194
- * guards nothing.
195
- *
196
- * So this module lexes instead: one pass produces (a) classified SEGMENTS —
197
- * comments, string literals, template chunks, JSX text, JSX attribute values —
198
- * and (b) a JSX ELEMENT TREE with spans, attributes, and the enclosing
199
- * expression container. Checks read those, never the raw bytes.
200
- *
201
- * It is a lexer, not a type-aware parser, and that boundary is deliberate: this
202
- * package ships one runtime dependency and adding `typescript` to every
203
- * consumer's install to lint copy is the wrong trade. What a lexer cannot do —
204
- * resolve a string through a variable, follow a component's props to its render
205
- * — is out of scope by construction and documented per check.
206
- *
207
- * Node-agnostic: pure string in, data out. The `fs` walking lives in `scan.ts`.
208
- */
209
- /** What a stretch of source is, once the lexer has decided. */
210
- type SegmentKind =
211
- /** `//…` or `/*…*​/` — never user-visible; every check skips these. */
212
- 'comment'
213
- /** A `'…'` / `"…"` literal in code position. Visible only in some contexts. */
214
- | 'string'
215
- /** One literal chunk of a template literal (the `${…}` holes are code). */
216
- | 'template'
217
- /** Text between JSX tags. The highest-confidence user-visible signal there is. */
218
- | 'jsx-text'
219
- /** A `name="…"` attribute value on a JSX element. */
220
- | 'jsx-attribute';
221
- /** One classified stretch of source. */
222
- interface SourceSegment {
223
- readonly kind: SegmentKind;
224
- /** Offset of the first character of the segment's VALUE (inside the quotes). */
225
- readonly start: number;
226
- /** Offset just past the segment's value. */
227
- readonly end: number;
228
- /** The value text, quotes stripped, escapes left as written. */
229
- readonly value: string;
230
- /** For `jsx-attribute`: the attribute name. For `jsx-text`: absent. */
231
- readonly attribute?: string;
232
- /** For `jsx-attribute` / `jsx-text`: the owning element's tag name. */
233
- readonly tag?: string;
234
- }
235
- /** One attribute on a JSX element. */
236
- interface JsxAttribute {
237
- readonly name: string;
238
- readonly start: number;
239
- /** The literal value when written `name="…"`; null when `name={…}` or bare. */
240
- readonly value: string | null;
241
- /** True when written `name={…}` — the value is code, not copy. */
242
- readonly expression: boolean;
243
- }
244
- /** One JSX element, with the span every subtree question needs. */
245
- interface JsxElement {
246
- /** Tag as written (`div`, `Button`, `Card.Header`); `''` for a fragment. */
247
- readonly tag: string;
248
- readonly attributes: JsxAttribute[];
249
- readonly children: JsxElement[];
250
- parent: JsxElement | null;
251
- /** Offset of the opening `<`. */
252
- readonly start: number;
253
- /** Offset just past the opening tag's `>`. */
254
- openEnd: number;
255
- /** Offset just past the element's end (`/>` or `</tag>`). */
256
- end: number;
257
- /**
258
- * Offset of the `{` of the nearest enclosing JSX expression container, or
259
- * null at the top of a return/assignment. This is what scopes an empty state
260
- * to its own conditional branch instead of to the whole page.
261
- */
262
- readonly containerStart: number | null;
263
- }
264
- /** Everything one pass over a file produces. */
265
- interface ScannedSource {
266
- readonly text: string;
267
- readonly segments: readonly SourceSegment[];
268
- /** Every element, in document (open-tag) order. */
269
- readonly elements: readonly JsxElement[];
270
- /**
271
- * `text` with every comment, string body and template body replaced by
272
- * spaces, offsets preserved. Structural regexes (catch bodies, fetch calls)
273
- * run over this so a `catch` inside a string can never be a finding.
274
- */
275
- readonly masked: string;
276
- }
277
- /** 1-based line/column for a byte offset. */
278
- interface SourcePosition {
279
- readonly line: number;
280
- readonly column: number;
281
- }
282
- /**
283
- * Lex one TS/TSX source.
284
- *
285
- * The loop keeps a frame stack. A code frame pops back to its JSX parent when
286
- * an unmatched `}` closes the expression container that opened it; a JSX tag
287
- * frame becomes a children frame at `>` and pops at `/>`.
288
- */
289
- declare function scanSource(text: string): ScannedSource;
290
-
291
- /**
292
- * Filesystem side of the gate: walk a product's source, lex each file once, and
293
- * hand every check the same `ScannedFile`.
294
- *
295
- * Test files are excluded by default and that exclusion is load-bearing, not
296
- * tidiness: a test fixture deliberately contains the copy and the shapes the
297
- * checks hunt for ("No results", a silent catch, the word `payload`), so
298
- * scanning tests would make the gate loudest exactly where nothing ships.
299
- */
300
-
301
- /** One file, lexed once, with its line index ready. */
302
- interface ScannedFile {
303
- /** Absolute path as walked. */
304
- readonly path: string;
305
- /** Path as reported in findings — relative to cwd when it is inside it. */
306
- readonly display: string;
307
- readonly text: string;
308
- readonly scan: ScannedSource;
309
- readonly lineStarts: readonly number[];
310
- positionAt(offset: number): SourcePosition;
311
- }
312
- /** Read and lex one file. Returns null when it cannot be read. */
313
- declare function scanFile(path: string): ScannedFile | null;
314
- /** Lex an in-memory source — the shape every check test uses. */
315
- declare function buildScannedFile(path: string, text: string): ScannedFile;
316
- /** Lex every scannable file under `srcDirs`. */
317
- declare function scanSources(srcDirs: readonly string[], ignore?: readonly string[]): ScannedFile[];
318
-
319
- /**
320
- * Check 1 — engineering vocabulary on screen.
321
- *
322
- * The defect: a word from the codebase reaches the reader. Shipped instances
323
- * include "materialized" inside a user-facing error, a column of `sourceKind`,
324
- * and a chip reading `undefined`. Nobody decided to say those words; they leaked
325
- * because the label and the field name were the same string.
326
- *
327
- * ── Precision over recall, deliberately ──────────────────────────────────────
328
- *
329
- * A vocabulary gate lives or dies on false positives: one bad report and the
330
- * check is disabled, after which it guards nothing. `grep -i artifact` over one
331
- * product's `apps/web/src` returns 11 hits, all of them imports, prop names or
332
- * doc comments — a checker that reports those is deleted in a week.
333
- *
334
- * So this check only reads positions the lexer PROVES are copy, in two tiers
335
- * that are ON by default:
336
- *
337
- * 1. JSX text — `<p>No artifact yet</p>`. Unambiguous.
338
- * 2. A JSX attribute value, when the attribute is in {@link COPY_KEYS}. An
339
- * allowlist, so `className`, `data-*`, `aria-*`, `id`, `href` and every
340
- * other internal attribute are excluded by construction rather than by a
341
- * denylist that goes stale.
342
- * 3. The first argument of a call in {@link COPY_CALLS} — `toast.error('…')`,
343
- * `new Error('…')`, `setError('…')`. This is the tier that catches the
344
- * flagship defect: "materialization" reached a reader from a `new Error`
345
- * in a server module, not from a component.
346
- *
347
- * And ONE tier that is off by default, `includeObjectCopy`:
348
- *
349
- * 4. A string or template filling an object key named in {@link COPY_KEYS}
350
- * (`emptyTitle: '…'`, `description: '…'`).
351
- *
352
- * Tier 4 is off because it was MEASURED as the false-positive tier. Over two
353
- * production verticals it produced findings on a system prompt (`prompt:` in an
354
- * agent profile), an MCP tool description the model reads, and the body of a
355
- * legal document template where "Records" is a term of the drafted document —
356
- * none of them on any screen. A key named `description` is model-facing about
357
- * as often as it is reader-facing, and a checker that cannot tell them apart
358
- * must not be the one that fails the build. Products whose data modules really
359
- * do hold UI copy turn it on.
360
- *
361
- * Everything else — a bare string in code, an import specifier, a comment, an
362
- * identifier, a test file — is not read at all. The cost is real recall: copy
363
- * assembled through a variable (`const msg = base + suffix`) is invisible here,
364
- * and no lexer can see it. That is the trade this check makes on purpose.
365
- */
366
-
367
- /**
368
- * The default list. Every entry has shipped to a real screen in this fleet or
369
- * its verticals, and every one carries the sentence that replaces it — a gate
370
- * that only says "don't" leaves the author to guess.
371
- */
372
- declare const DEFAULT_BANNED_TERMS: readonly BannedTerm[];
373
- /**
374
- * Attributes and object keys whose string value is copy. An allowlist: an
375
- * attribute that is not here is never read, which is how `aria-label`,
376
- * `className`, `data-testid` and `href` stay out without being enumerated.
377
- */
378
- declare const COPY_KEYS: readonly string[];
379
- /** Calls whose first string argument reaches the reader. */
380
- declare const COPY_CALLS: readonly string[];
381
-
382
- /**
383
- * Check 4 — a failure the reader never learns about.
384
- *
385
- * The shape: a `catch` that clears a loading flag, or returns a fallback, and
386
- * tells nobody. The request failed; the screen renders the empty state. The
387
- * reader is shown "No documents yet" for a network error, believes the answer,
388
- * and acts on it. That is worse than an error message, because it is a
389
- * confident wrong answer rather than a visible problem.
390
- *
391
- * ── What passes ──────────────────────────────────────────────────────────────
392
- *
393
- * The handler surfaces the failure (an error/notice state setter, a toast, an
394
- * injected `onError`), or rethrows / rejects so a boundary above can. Anything
395
- * else — an empty body, `setLoading(false)`, `return []`, a lone
396
- * `console.error` — is a finding. `console.error` is deliberately NOT a sink:
397
- * it writes to a console the reader does not have.
398
- *
399
- * ── Precision ────────────────────────────────────────────────────────────────
400
- *
401
- * Only handlers around I/O are read. A `try { JSON.parse(raw) } catch { return
402
- * {} }` is a legitimate fallback over a value already in hand, and reporting it
403
- * is exactly the noise that gets a gate switched off — so a `try` block with no
404
- * `await`, no request call and no `.then` is skipped entirely. A `.catch(…)`
405
- * handler is always on a promise, so it needs no such test.
406
- *
407
- * Three narrowings were MEASURED against two production verticals, where the
408
- * unnarrowed check reported 52 handlers of which 14 were real (27%) — a rate
409
- * that gets a check deleted, not fixed:
410
- *
411
- * 1. Only modules that can reach a browser are read ({@link READERLESS_PATHS}).
412
- * 31 of the 52 sat in `.server/` service modules and resource routes, where
413
- * the failure IS reported — to the operator's log — and the question of what
414
- * the reader is told belongs to the caller that renders. This is the single
415
- * largest noise class and it is a react-router CONVENTION, not a guess:
416
- * `.server` modules are compiled out of the client bundle.
417
- * 2. A handler that RESTORES the prior value has surfaced the failure: the
418
- * control the reader just moved visibly snaps back.
419
- * 3. A handler that RETURNS words — `return 'unknown'`, `new Response('Invalid
420
- * JSON', …)` — hands a distinguishable outcome to a caller that renders it.
421
- * Words inside a `console` call do not count, for the reason above.
422
- *
423
- * The cost is stated rather than hidden: narrowing 1 gives up the real
424
- * one-hop defect (a service returning `[]` on a network error, which a screen
425
- * then renders as "nothing here"). That is a caller-side finding this check
426
- * cannot see from the callee, and a product that wants it back passes
427
- * `readerlessPaths: []`.
428
- */
429
-
430
- /**
431
- * Paths whose modules cannot render. `.server` is react-router's server-only
432
- * convention (compiled out of the client bundle) and `routes/api.` its resource
433
- * -route naming; a `catch` in either reports to an operator, not to a reader.
434
- */
435
- declare const READERLESS_PATHS: readonly string[];
436
-
437
- /**
438
- * Check 5 — a capability with no door.
439
- *
440
- * Two deterministic engines shipped in this fleet with no way to reach them: a
441
- * contract redline that cites statutes, and a court-deadline calculator with 59
442
- * golden tests. Both correct, both routed, neither in the navigation and
443
- * neither linked from any screen. The only way to open them was to type the URL.
444
- * No test failed, because every test was about the engine.
445
- *
446
- * This check joins two things a product already has — its route table and its
447
- * navigation definition — and reports the routes that neither the navigation
448
- * nor any link in the source reaches.
449
- *
450
- * ── Matching, and why it is by STATIC SEGMENTS ───────────────────────────────
451
- *
452
- * Links are written against a base that is computed at runtime:
453
- *
454
- * route('contracts/redline', …) under route(':workspaceId', …) under route('app', …)
455
- * <Link to={`${base}/contracts/redline`}> base = `/app/${workspaceId}`
456
- *
457
- * Comparing strings finds nothing. So both sides are reduced to their STATIC
458
- * segments — parameters and `${…}` holes drop out — and a link reaches a route
459
- * when the link's segments are a suffix of the route's:
460
- *
461
- * route app/:workspaceId/contracts/redline → [app, contracts, redline]
462
- * link `${base}/contracts/redline` → [contracts, redline] ✓ suffix
463
- * link `${base}/contracts` → [contracts] ✗ (matches the parent, not this)
464
- *
465
- * The suffix rule is what makes the check usable without resolving `base`, and
466
- * the cost is a known blind spot: a detail route (`reviews/:id`) has the same
467
- * static segments as its list route, so a link to the list marks the detail
468
- * reachable. That is a missed defect, never a false alarm — the deliberate
469
- * direction for a gate that only survives if its reports are all real.
470
- *
471
- * ── Reachable FROM THE NAVIGATION, not merely linked ─────────────────────────
472
- *
473
- * A link is only a door if the screen holding it can itself be opened. The
474
- * shipped defect is an ISLAND: a contract list, a contract detail page and a
475
- * statute-citing redline engine, each linking the other two, and no navigation
476
- * entry pointing at any of them. Every route in it has an inbound link, so a
477
- * check that asks "does a link exist?" reports nothing at all — which is what
478
- * happened, and the redline shipped unreachable.
479
- *
480
- * So doors are resolved transitively from the navigation:
481
- *
482
- * - a nav file's path literals are roots;
483
- * - so is a link in a file that is NOT a route module (a shared component, a
484
- * header, an index route) — it could be rendered anywhere, and assuming it
485
- * is always available is the direction that removes findings rather than
486
- * inventing them;
487
- * - a link inside a ROUTE module counts only once that route is itself
488
- * reachable, and the pass repeats to a fixpoint.
489
- *
490
- * An island therefore reports every route in it, which is right: one nav entry
491
- * clears them all, and naming only the entry route would hide how much shipped
492
- * behind it.
493
- *
494
- * ── What is not a screen ─────────────────────────────────────────────────────
495
- *
496
- * `index()` and `layout()` add no path of their own. A route whose module is
497
- * not `.tsx` is a resource endpoint (the react-router convention) and is
498
- * skipped by default, as is anything under `ignore` (default `api/*`).
499
- */
500
-
501
- /** One route as declared, with its composed path. */
502
- interface RouteEntry {
503
- /** Full path from the root of the route table, no leading slash. */
504
- readonly path: string;
505
- /** The route module, when the declaration names one. */
506
- readonly module: string | null;
507
- /** Offset of the path literal in the route config, for file:line. */
508
- readonly offset: number;
509
- /**
510
- * True when the declaration nests children. Such a route renders an Outlet
511
- * shell; the destination is its index child, whose path is the same string.
512
- * Asking a layout for its own door reports every product's `app` wrapper.
513
- */
514
- readonly isLayout: boolean;
515
- }
516
- /**
517
- * Parse a `@react-router/dev/routes` config into composed route paths.
518
- *
519
- * Nesting is read from offset containment rather than from a grammar: a call
520
- * whose parentheses sit inside another call's is that call's child, which is
521
- * true of `route(p, m, [ route(…) ])` and needs no array bookkeeping.
522
- */
523
- declare function parseRouteConfig(file: ScannedFile): RouteEntry[];
524
- /** The comparable segments of a path: statics only, params and holes dropped. */
525
- declare function staticSegments(path: string): string[];
526
-
527
1
  /**
528
2
  * `@tangle-network/agent-app/legibility` — the understandability gate a product
529
3
  * runs over its OWN source, in its OWN CI.
@@ -559,7 +33,15 @@ declare function staticSegments(path: string): string[];
559
33
  *
560
34
  * or, in CI, the bin: `agent-app-legibility-check --src src --routes src/routes.ts --nav src/components/sidebar.tsx`.
561
35
  */
562
-
36
+ import { type LegibilityConfig, type LegibilityReport } from './types';
37
+ export { LEGIBILITY_CHECKS } from './types';
38
+ export type { BannedTerm, EmptyStateOptions, LegibilityCheckId, LegibilityConfig, LegibilityFinding, LegibilityReport, LegibilitySuppression, ReachabilityOptions, SilentFailureOptions, SuccessOptions, VocabularyOptions, } from './types';
39
+ export { formatLegibilityReport, legibilityReportToJson, type FormatOptions } from './report';
40
+ export { DEFAULT_BANNED_TERMS, COPY_KEYS, COPY_CALLS } from './checks/vocabulary';
41
+ export { READERLESS_PATHS } from './checks/silent-failure';
42
+ export { parseRouteConfig, staticSegments, type RouteEntry } from './checks/reachability';
43
+ export { scanSources, scanFile, buildScannedFile, type ScannedFile } from './scan';
44
+ export { scanSource, type JsxAttribute, type JsxElement, type ScannedSource, type SegmentKind, type SourceSegment, } from './source';
563
45
  /**
564
46
  * Run the gate over a product's source.
565
47
  *
@@ -567,6 +49,4 @@ declare function staticSegments(path: string): string[];
567
49
  * The bin decides what to do with the report; a product embedding this in its
568
50
  * own tooling decides something else.
569
51
  */
570
- declare function checkLegibility(config: LegibilityConfig): LegibilityReport;
571
-
572
- export { type BannedTerm, COPY_CALLS, COPY_KEYS, DEFAULT_BANNED_TERMS, type EmptyStateOptions, type FormatOptions, type JsxAttribute, type JsxElement, LEGIBILITY_CHECKS, type LegibilityCheckId, type LegibilityConfig, type LegibilityFinding, type LegibilityReport, type LegibilitySuppression, READERLESS_PATHS, type ReachabilityOptions, type RouteEntry, type ScannedFile, type ScannedSource, type SegmentKind, type SilentFailureOptions, type SourceSegment, type SuccessOptions, type VocabularyOptions, buildScannedFile, checkLegibility, formatLegibilityReport, legibilityReportToJson, parseRouteConfig, scanFile, scanSource, scanSources, staticSegments };
52
+ export declare function checkLegibility(config: LegibilityConfig): LegibilityReport;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * The report a product reads in its CI log.
3
+ *
4
+ * A gate is only as good as the sentence a developer reads at 6pm with a red
5
+ * build. So every finding prints three things and never fewer: WHERE
6
+ * (`file:line:col`, clickable in every terminal and editor), WHAT is wrong in
7
+ * the reader's terms, and WHAT TO DO about it. A finding without a remedy is a
8
+ * complaint, and complaints get suppressed rather than fixed.
9
+ *
10
+ * Honoured suppressions are counted in the summary and listed on request. A
11
+ * suppression that nobody can see is a disabled check with extra steps.
12
+ */
13
+ import { type LegibilityReport } from './types';
14
+ export interface FormatOptions {
15
+ /** Print every honoured suppression with its reason. */
16
+ readonly listSuppressions?: boolean;
17
+ /** Wrap check names in ANSI colour. Off by default — CI logs keep the bytes. */
18
+ readonly colour?: boolean;
19
+ }
20
+ export declare function formatLegibilityReport(report: LegibilityReport, options?: FormatOptions): string;
21
+ /** The machine-readable form, for a product that posts findings somewhere. */
22
+ export declare function legibilityReportToJson(report: LegibilityReport): string;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Filesystem side of the gate: walk a product's source, lex each file once, and
3
+ * hand every check the same `ScannedFile`.
4
+ *
5
+ * Test files are excluded by default and that exclusion is load-bearing, not
6
+ * tidiness: a test fixture deliberately contains the copy and the shapes the
7
+ * checks hunt for ("No results", a silent catch, the word `payload`), so
8
+ * scanning tests would make the gate loudest exactly where nothing ships.
9
+ */
10
+ import { type ScannedSource, type SourcePosition } from './source';
11
+ /** One file, lexed once, with its line index ready. */
12
+ export interface ScannedFile {
13
+ /** Absolute path as walked. */
14
+ readonly path: string;
15
+ /** Path as reported in findings — relative to cwd when it is inside it. */
16
+ readonly display: string;
17
+ readonly text: string;
18
+ readonly scan: ScannedSource;
19
+ readonly lineStarts: readonly number[];
20
+ positionAt(offset: number): SourcePosition;
21
+ }
22
+ /** Read and lex one file. Returns null when it cannot be read. */
23
+ export declare function scanFile(path: string): ScannedFile | null;
24
+ /** Lex an in-memory source — the shape every check test uses. */
25
+ export declare function buildScannedFile(path: string, text: string): ScannedFile;
26
+ /** Lex every scannable file under `srcDirs`. */
27
+ export declare function scanSources(srcDirs: readonly string[], ignore?: readonly string[]): ScannedFile[];
28
+ /** One readable line of evidence: collapsed whitespace, clipped. */
29
+ export declare function evidenceOf(text: string, start: number, end: number, max?: number): string;