@tangle-network/agent-app 0.45.54 → 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.
- package/README.md +1 -1
- package/dist/alerting/index.d.ts +5 -175
- package/dist/alerting/slack.d.ts +176 -0
- package/dist/app-auth/index.d.ts +14 -17
- package/dist/assets/index.d.ts +2 -504
- package/dist/assets/schema.d.ts +264 -0
- package/dist/assets/types.d.ts +237 -0
- package/dist/assistant/AssistantDock.d.ts +56 -0
- package/dist/assistant/AssistantHistory.d.ts +41 -0
- package/dist/assistant/AssistantPanel.d.ts +84 -0
- package/dist/assistant/ProposalCard.d.ts +41 -0
- package/dist/assistant/ResizeHandle.d.ts +19 -0
- package/dist/assistant/client-context.d.ts +20 -0
- package/dist/assistant/client.d.ts +117 -0
- package/dist/assistant/index.d.ts +19 -848
- package/dist/assistant/launcher.d.ts +23 -0
- package/dist/assistant/persistence.d.ts +26 -0
- package/dist/assistant/presentation.d.ts +99 -0
- package/dist/assistant/provider-label.d.ts +7 -0
- package/dist/assistant/reducer.d.ts +130 -0
- package/dist/assistant/sse.d.ts +24 -0
- package/dist/assistant/time-ago.d.ts +6 -0
- package/dist/assistant/transcript.d.ts +97 -0
- package/dist/assistant/types.d.ts +291 -0
- package/dist/assistant/use-stick-to-bottom.d.ts +28 -0
- package/dist/assistant/useAssistantChat.d.ts +63 -0
- package/dist/assistant/useAssistantModels.d.ts +22 -0
- package/dist/assistant/useAssistantThreads.d.ts +47 -0
- package/dist/assistant/usePanelPrefs.d.ts +55 -0
- package/dist/billing/index.d.ts +19 -21
- package/dist/brand/index.d.ts +16 -10
- package/dist/brand-extraction/extract.d.ts +34 -0
- package/dist/brand-extraction/index.d.ts +12 -214
- package/dist/brand-extraction/map.d.ts +58 -0
- package/dist/brand-extraction/types.d.ts +119 -0
- package/dist/catalog/index.d.ts +11 -101
- package/dist/chat-react/composer-mode-controls.d.ts +14 -0
- package/dist/chat-react/entry-composer.d.ts +92 -0
- package/dist/chat-react/index.d.ts +22 -118
- package/dist/chat-react/types.d.ts +11 -0
- package/dist/chat-routes/attachment-store.d.ts +84 -0
- package/dist/chat-routes/attachment-upload.d.ts +84 -0
- package/dist/chat-routes/attachment-validation.d.ts +95 -0
- package/dist/chat-routes/binary-sniff.d.ts +45 -0
- package/dist/chat-routes/completed-sandbox-turn.d.ts +25 -0
- package/dist/chat-routes/detached-turn.d.ts +197 -0
- package/dist/chat-routes/dispatch-parts.d.ts +101 -0
- package/dist/chat-routes/draft-persistence.d.ts +189 -0
- package/dist/chat-routes/durable-projection.d.ts +18 -0
- package/dist/chat-routes/file-index.d.ts +115 -0
- package/dist/chat-routes/index.d.ts +25 -1840
- package/dist/chat-routes/model-failover-stream.d.ts +206 -0
- package/dist/chat-routes/promote-file-part.d.ts +84 -0
- package/dist/chat-routes/resolve-attachments.d.ts +72 -0
- package/dist/chat-routes/sandbox-producer.d.ts +146 -0
- package/dist/chat-routes/sandbox-turn-usage.d.ts +4 -0
- package/dist/{stale-turn-lock-DucQzvXu.d.ts → chat-routes/stale-turn-lock.d.ts} +7 -9
- package/dist/chat-routes/turn-routes.d.ts +540 -0
- package/dist/chat-routes/upload.d.ts +84 -0
- package/dist/{wire-DOZ-O6hD.d.ts → chat-routes/wire.d.ts} +41 -44
- package/dist/chat-store/core.d.ts +19 -0
- package/dist/chat-store/index.d.ts +22 -322
- package/dist/{parts-BqIHMdyu.d.ts → chat-store/parts.d.ts} +49 -47
- package/dist/chat-store/schema.d.ts +157 -0
- package/dist/chat-store/store.d.ts +177 -0
- package/dist/config/index.d.ts +13 -18
- package/dist/crypto/index.d.ts +10 -12
- package/dist/crypto/web-token.d.ts +22 -0
- package/dist/design-canvas/apply.d.ts +70 -0
- package/dist/design-canvas/drizzle-store.d.ts +29 -0
- package/dist/design-canvas/drizzle.d.ts +7 -575
- package/dist/{export-presets-mgVulRaV.d.ts → design-canvas/export-presets.d.ts} +18 -22
- package/dist/design-canvas/index.d.ts +22 -268
- package/dist/design-canvas/mcp-entry.d.ts +15 -0
- package/dist/design-canvas/mcp-handler.d.ts +34 -0
- package/dist/design-canvas/mcp-tools.d.ts +30 -0
- package/dist/{model-DnfO_PdJ.d.ts → design-canvas/model.d.ts} +33 -35
- package/dist/{operations-ByJ6yXOW.d.ts → design-canvas/operations.d.ts} +21 -25
- package/dist/design-canvas/schema.d.ts +558 -0
- package/dist/{store-CqfDtnPQ.d.ts → design-canvas/store.d.ts} +8 -12
- package/dist/design-canvas/templates.d.ts +72 -0
- package/dist/design-canvas/validate.d.ts +32 -0
- package/dist/design-canvas-react/components/BleedTrimOverlay.d.ts +22 -0
- package/dist/design-canvas-react/components/BrandKnot.d.ts +11 -0
- package/dist/design-canvas-react/components/CanvasEmptyState.d.ts +32 -0
- package/dist/design-canvas-react/components/CanvasInsertPanel.d.ts +53 -0
- package/dist/{lazy-DrkVyDpe.d.ts → design-canvas-react/components/DesignCanvas.d.ts} +27 -20
- package/dist/design-canvas-react/components/DesignCanvasEditor.d.ts +23 -0
- package/dist/design-canvas-react/components/ElementNode.d.ts +51 -0
- package/dist/design-canvas-react/components/ExportControl.d.ts +21 -0
- package/dist/design-canvas-react/components/GridLayer.d.ts +47 -0
- package/dist/design-canvas-react/components/InlineTextEditor.d.ts +25 -0
- package/dist/design-canvas-react/components/LayersPanel.d.ts +20 -0
- package/dist/design-canvas-react/components/PagesStrip.d.ts +34 -0
- package/dist/design-canvas-react/components/Rulers.d.ts +31 -0
- package/dist/design-canvas-react/components/SelectionLayer.d.ts +51 -0
- package/dist/design-canvas-react/components/SnapGuidesOverlay.d.ts +25 -0
- package/dist/design-canvas-react/components/Toolbar.d.ts +64 -0
- package/dist/design-canvas-react/components/Workspace.d.ts +92 -0
- package/dist/design-canvas-react/components/ZoomControls.d.ts +14 -0
- package/dist/design-canvas-react/components/glyphs.d.ts +46 -0
- package/dist/design-canvas-react/components/icon-button.d.ts +22 -0
- package/dist/design-canvas-react/components/index.d.ts +27 -0
- package/dist/design-canvas-react/components/layer-tree.d.ts +34 -0
- package/dist/design-canvas-react/components/ruler-math.d.ts +78 -0
- package/dist/design-canvas-react/components/transform-math.d.ts +168 -0
- package/dist/{command-stack-TNPWJCzW.d.ts → design-canvas-react/contracts.d.ts} +16 -63
- package/dist/design-canvas-react/engine/command-stack.d.ts +43 -0
- package/dist/design-canvas-react/engine/commands.d.ts +154 -0
- package/dist/design-canvas-react/engine/selection.d.ts +48 -0
- package/dist/design-canvas-react/engine/snap.d.ts +24 -0
- package/dist/design-canvas-react/engine/zoom-pan.d.ts +18 -0
- package/dist/design-canvas-react/engine.d.ts +21 -399
- package/dist/design-canvas-react/export-math.d.ts +104 -0
- package/dist/design-canvas-react/export.d.ts +89 -0
- package/dist/design-canvas-react/index.d.ts +16 -586
- package/dist/design-canvas-react/insert-builders.d.ts +61 -0
- package/dist/design-canvas-react/lazy.d.ts +21 -6
- package/dist/documents/docx.d.ts +50 -0
- package/dist/documents/extract.d.ts +87 -0
- package/dist/documents/index.d.ts +26 -232
- package/dist/documents/media-type.d.ts +33 -0
- package/dist/documents/pdf-inspector.d.ts +5 -9
- package/dist/{types-DrBidf3O.d.ts → documents/types.d.ts} +13 -15
- package/dist/documents/zip.d.ts +56 -0
- package/dist/eval/calibration.d.ts +106 -0
- package/dist/eval/index.d.ts +8 -116
- package/dist/eval-campaign/index.d.ts +11 -12
- package/dist/{trust-gate-Dcm5xSva.d.ts → eval-campaign/trust-gate.d.ts} +5 -9
- package/dist/forms/blank.d.ts +48 -0
- package/dist/forms/fill.d.ts +105 -0
- package/dist/forms/index.d.ts +58 -332
- package/dist/forms/registry.d.ts +115 -0
- package/dist/forms/verify.d.ts +58 -0
- package/dist/harness/index.d.ts +21 -19
- package/dist/intakes/api.d.ts +5 -11
- package/dist/{completion-CvcNUz07.d.ts → intakes/completion.d.ts} +7 -11
- package/dist/intakes/context-sufficiency.d.ts +113 -0
- package/dist/intakes/drizzle/schema.d.ts +338 -0
- package/dist/intakes/drizzle/store.d.ts +75 -0
- package/dist/intakes/drizzle.d.ts +12 -391
- package/dist/intakes/index.d.ts +23 -113
- package/dist/{model-C8U0HZxL.d.ts → intakes/model.d.ts} +15 -17
- package/dist/intakes-react/components/BrandMark.d.ts +10 -0
- package/dist/intakes-react/components/IntakeInterview.d.ts +15 -0
- package/dist/intakes-react/components/index.d.ts +1 -0
- package/dist/intakes-react/contracts.d.ts +42 -0
- package/dist/intakes-react/index.d.ts +12 -47
- package/dist/intakes-react/lazy.d.ts +9 -8
- package/dist/integrations/index.d.ts +10 -12
- package/dist/{contract-OxG_jVMx.d.ts → interactions/contract.d.ts} +40 -42
- package/dist/interactions/index.d.ts +16 -256
- package/dist/interactions/route.d.ts +151 -0
- package/dist/interactions/sidecar.d.ts +100 -0
- package/dist/knowledge/index.d.ts +7 -11
- package/dist/knowledge-loop/index.d.ts +13 -20
- package/dist/legibility/checks/empty-state.d.ts +59 -0
- package/dist/legibility/checks/reachability.d.ts +103 -0
- package/dist/legibility/checks/silent-failure.d.ts +57 -0
- package/dist/legibility/checks/success.d.ts +38 -0
- package/dist/legibility/checks/vocabulary.d.ts +65 -0
- package/dist/legibility/cli-args.d.ts +30 -0
- package/dist/legibility/cli.d.ts +25 -0
- package/dist/legibility/index.d.ts +10 -530
- package/dist/legibility/report.d.ts +22 -0
- package/dist/legibility/scan.d.ts +29 -0
- package/dist/legibility/source.d.ts +132 -0
- package/dist/legibility/suppress.d.ts +36 -0
- package/dist/legibility/types.d.ts +168 -0
- package/dist/legibility/walk-sources.d.ts +21 -0
- package/dist/{agent-activity-C8ZG0F0M.d.ts → missions/agent-activity.d.ts} +3 -5
- package/dist/missions/engine.d.ts +251 -0
- package/dist/missions/events.d.ts +195 -0
- package/dist/missions/index.d.ts +12 -765
- package/dist/missions/plan-parse.d.ts +50 -0
- package/dist/missions/service.d.ts +265 -0
- package/dist/{failover-D-3UXXTb.d.ts → model-resolution/failover.d.ts} +10 -12
- package/dist/model-resolution/index.d.ts +15 -18
- package/dist/object-store/index.d.ts +15 -17
- package/dist/openui/action.d.ts +54 -0
- package/dist/openui/authoring.d.ts +25 -0
- package/dist/openui/index.d.ts +24 -206
- package/dist/openui/route.d.ts +124 -0
- package/dist/openui/segments.d.ts +71 -0
- package/dist/openui/values.d.ts +82 -0
- package/dist/openui-react/index.d.ts +9 -13
- package/dist/peer-floors/check.d.ts +9 -190
- package/dist/peer-floors/cli.d.ts +2 -3
- package/dist/peer-floors/dependency-source.d.ts +178 -0
- package/dist/plans/index.d.ts +13 -14
- package/dist/{billing-BuNlaKlE.d.ts → platform/billing.d.ts} +28 -32
- package/dist/platform/guards.d.ts +79 -0
- package/dist/platform/hub.d.ts +107 -0
- package/dist/platform/index.d.ts +7 -112
- package/dist/{sso-Cm00S61u.d.ts → platform/sso.d.ts} +15 -97
- package/dist/preflight/cli.d.ts +3 -6
- package/dist/preflight/index.d.ts +16 -18
- package/dist/preset-cloudflare/headers.d.ts +12 -0
- package/dist/preset-cloudflare/index.d.ts +22 -74
- package/dist/preset-cloudflare/workflow-instance.d.ts +35 -0
- package/dist/profile/budget.d.ts +72 -0
- package/dist/profile/fingerprint.d.ts +65 -0
- package/dist/profile/index.d.ts +27 -19
- package/dist/prompt/index.d.ts +3 -5
- package/dist/record/drizzle/schema.d.ts +488 -0
- package/dist/record/drizzle/store.d.ts +224 -0
- package/dist/record/drizzle.d.ts +10 -679
- package/dist/record/fold.d.ts +99 -0
- package/dist/record/index.d.ts +13 -13
- package/dist/{fold-DACU7gtf.d.ts → record/model.d.ts} +22 -124
- package/dist/record/ulid.d.ts +12 -0
- package/dist/redact/index.d.ts +14 -16
- package/dist/run/index.d.ts +11 -16
- package/dist/runtime/agent.d.ts +23 -0
- package/dist/runtime/certified-delivery.d.ts +57 -0
- package/dist/runtime/index.d.ts +17 -367
- package/dist/runtime/loop.d.ts +58 -0
- package/dist/runtime/model-catalog.d.ts +103 -0
- package/dist/{model-CdCDfBA9.d.ts → runtime/model.d.ts} +25 -27
- package/dist/runtime/openai-stream.d.ts +126 -0
- package/dist/runtime/surface-profile.d.ts +115 -0
- package/dist/sandbox/binary-read.d.ts +63 -0
- package/dist/sandbox/diagnostics.d.ts +69 -0
- package/dist/sandbox/index.d.ts +103 -1085
- package/dist/sandbox/model.d.ts +179 -0
- package/dist/sandbox/outcome.d.ts +10 -0
- package/dist/sandbox/prewarm-claim-d1.d.ts +80 -0
- package/dist/sandbox/prewarm.d.ts +193 -0
- package/dist/sandbox/recovery.d.ts +216 -0
- package/dist/sandbox/terminal-connection.d.ts +145 -0
- package/dist/sandbox/workspace-sandbox-manager.d.ts +44 -0
- package/dist/sequences/apply.d.ts +54 -0
- package/dist/sequences/captions.d.ts +91 -0
- package/dist/sequences/drizzle-store.d.ts +36 -0
- package/dist/sequences/drizzle.d.ts +7 -1252
- package/dist/sequences/exports.d.ts +138 -0
- package/dist/sequences/index.d.ts +19 -340
- package/dist/sequences/mcp-entry.d.ts +15 -0
- package/dist/sequences/mcp-handler.d.ts +39 -0
- package/dist/sequences/mcp-tools.d.ts +47 -0
- package/dist/{store-B7LLlk9p.d.ts → sequences/model.d.ts} +26 -110
- package/dist/sequences/operations.d.ts +126 -0
- package/dist/sequences/schema.d.ts +1231 -0
- package/dist/sequences/store.d.ts +81 -0
- package/dist/sequences/validate.d.ts +98 -0
- package/dist/sequences-react/components/BrandMark.d.ts +10 -0
- package/dist/sequences-react/components/PreviewCanvas.d.ts +26 -0
- package/dist/sequences-react/components/SnapIndicatorLine.d.ts +11 -0
- package/dist/sequences-react/components/TimelineClipChip.d.ts +80 -0
- package/dist/sequences-react/components/TimelineEditor.d.ts +44 -0
- package/dist/sequences-react/components/TimelineEmptyState.d.ts +21 -0
- package/dist/sequences-react/components/TimelineGhostLanes.d.ts +14 -0
- package/dist/sequences-react/components/TimelinePlayhead.d.ts +11 -0
- package/dist/sequences-react/components/TimelineRuler.d.ts +16 -0
- package/dist/sequences-react/components/TimelineSmallScreenGate.d.ts +12 -0
- package/dist/sequences-react/components/TimelineTrackRow.d.ts +51 -0
- package/dist/sequences-react/components/ZoomControl.d.ts +15 -0
- package/dist/sequences-react/components/composite-command.d.ts +8 -0
- package/dist/sequences-react/components/glyphs.d.ts +26 -0
- package/dist/sequences-react/components/index.d.ts +31 -0
- package/dist/sequences-react/components/interaction-math.d.ts +103 -0
- package/dist/sequences-react/contracts.d.ts +187 -0
- package/dist/sequences-react/engine/command-stack.d.ts +18 -0
- package/dist/sequences-react/engine/commands.d.ts +146 -0
- package/dist/sequences-react/engine/playback.d.ts +18 -0
- package/dist/sequences-react/engine/snap.d.ts +29 -0
- package/dist/sequences-react/engine/zoom.d.ts +29 -0
- package/dist/sequences-react/index.d.ts +20 -880
- package/dist/sequences-react/lazy.d.ts +8 -0
- package/dist/sequences-react/media/frame-provider.d.ts +70 -0
- package/dist/sequences-react/media/transcription.d.ts +33 -0
- package/dist/sequences-react/media/waveform.d.ts +34 -0
- package/dist/session-shell/index.d.ts +31 -204
- package/dist/session-shell/nav-guard.d.ts +170 -0
- package/dist/session-shell/path.d.ts +19 -0
- package/dist/signoff/cli.d.ts +4 -7
- package/dist/signoff/config.d.ts +12 -0
- package/dist/signoff/exec.d.ts +44 -0
- package/dist/signoff/index.d.ts +56 -14
- package/dist/signoff/invoked-as-script.d.ts +25 -0
- package/dist/signoff/node-version.d.ts +50 -0
- package/dist/signoff/proof-attach.d.ts +88 -0
- package/dist/signoff/proof-cli.d.ts +1 -0
- package/dist/signoff/proof-fixture.d.ts +13 -0
- package/dist/signoff/proof-from-report.d.ts +22 -0
- package/dist/signoff/proof-git.d.ts +57 -0
- package/dist/signoff/proof-record.d.ts +202 -0
- package/dist/signoff/proof-verify.d.ts +103 -0
- package/dist/signoff/proof.d.ts +35 -310
- package/dist/signoff/report.d.ts +7 -0
- package/dist/{run-D80hoLKh.d.ts → signoff/run.d.ts} +3 -6
- package/dist/signoff/schedule.d.ts +55 -0
- package/dist/signoff/seeds.d.ts +50 -0
- package/dist/signoff/store.d.ts +22 -0
- package/dist/{types-Bd6uW9vQ.d.ts → signoff/types.d.ts} +15 -17
- package/dist/signoff/workflow-pin.d.ts +56 -0
- package/dist/signoff/workspace.d.ts +40 -0
- package/dist/skills/index.d.ts +28 -32
- package/dist/skills-placement/index.d.ts +7 -11
- package/dist/spend/budget.d.ts +123 -0
- package/dist/spend/ceiling.d.ts +51 -0
- package/dist/spend/cli-args.d.ts +20 -0
- package/dist/spend/cli.d.ts +1 -0
- package/dist/spend/fixtures/incident-parked-time.d.ts +55 -0
- package/dist/spend/index.d.ts +38 -1144
- package/dist/spend/liveness.d.ts +131 -0
- package/dist/spend/ownership.d.ts +87 -0
- package/dist/spend/reconcile.d.ts +109 -0
- package/dist/spend/reference.d.ts +42 -0
- package/dist/spend/report.d.ts +12 -0
- package/dist/spend/store.d.ts +123 -0
- package/dist/spend/types.d.ts +466 -0
- package/dist/store/index.d.ts +10 -12
- package/dist/stories/app-shell/fixtures.d.ts +43 -0
- package/dist/stories/app-shell/shell.d.ts +81 -0
- package/dist/stories/assistant/fixtures.d.ts +73 -0
- package/dist/stories/chat/fixtures.d.ts +70 -0
- package/dist/stories/chat/markdown.d.ts +11 -0
- package/dist/stories/chat/run-drill-in.d.ts +19 -0
- package/dist/stories/chat-controls/fixtures.d.ts +116 -0
- package/dist/stories/design-canvas/fixtures.d.ts +57 -0
- package/dist/stories/fixtures/canvas.d.ts +10 -0
- package/dist/stories/fixtures/catalog.d.ts +7 -0
- package/dist/stories/fixtures/chat.d.ts +39 -0
- package/dist/stories/fixtures/index.d.ts +4 -0
- package/dist/stories/fixtures/sequences.d.ts +17 -0
- package/dist/stories/panels/fixtures.d.ts +63 -0
- package/dist/stories/sequences/fixtures.d.ts +30 -0
- package/dist/stories/studio/fixtures.d.ts +22 -0
- package/dist/stream/index.d.ts +10 -56
- package/dist/{stream-normalizer-DKRxyVlZ.d.ts → stream/stream-normalizer.d.ts} +23 -26
- package/dist/{turn-buffer-COMQUwO2.d.ts → stream/turn-buffer.d.ts} +21 -23
- package/dist/stream/turn-identity.d.ts +49 -0
- package/dist/studio/generation.d.ts +179 -0
- package/dist/studio/index.d.ts +12 -181
- package/dist/studio-react/avatar-composer.d.ts +8 -0
- package/dist/studio-react/composer-hero.d.ts +12 -0
- package/dist/studio-react/composer-shell.d.ts +18 -0
- package/dist/studio-react/generation-card.d.ts +9 -0
- package/dist/studio-react/generation-detail-modal.d.ts +11 -0
- package/dist/studio-react/generation-detail.d.ts +6 -0
- package/dist/studio-react/generation-grid.d.ts +15 -0
- package/dist/studio-react/image-composer.d.ts +8 -0
- package/dist/studio-react/index.d.ts +32 -245
- package/dist/studio-react/library-drawer.d.ts +12 -0
- package/dist/studio-react/library-panel.d.ts +15 -0
- package/dist/studio-react/publish-package-composer.d.ts +18 -0
- package/dist/studio-react/result-canvas.d.ts +6 -0
- package/dist/studio-react/speech-composer.d.ts +4 -0
- package/dist/studio-react/studio-header.d.ts +5 -0
- package/dist/studio-react/studio-sheet.d.ts +12 -0
- package/dist/studio-react/studio-workspace.d.ts +23 -0
- package/dist/studio-react/transcription-composer.d.ts +12 -0
- package/dist/studio-react/type-config.d.ts +11 -0
- package/dist/studio-react/use-studio-generations.d.ts +20 -0
- package/dist/studio-react/video-composer.d.ts +10 -0
- package/dist/tangle/index.d.ts +7 -9
- package/dist/teams/drizzle/access.d.ts +82 -0
- package/dist/{invitations-schema-_fI7HkJP.d.ts → teams/drizzle/invitations-schema.d.ts} +39 -27
- package/dist/teams/drizzle/personal-organization.d.ts +41 -0
- package/dist/{access-490O6aOU.d.ts → teams/drizzle/schema.d.ts} +57 -122
- package/dist/teams/drizzle.d.ts +12 -44
- package/dist/teams/index.d.ts +20 -44
- package/dist/teams/invitations-api.d.ts +17 -21
- package/dist/{invitations-DoYMvXea.d.ts → teams/invitations.d.ts} +14 -18
- package/dist/teams/invite.d.ts +42 -0
- package/dist/teams/members-api.d.ts +12 -16
- package/dist/teams/resend.d.ts +3 -13
- package/dist/{roles-B4nU3jDi.d.ts → teams/roles.d.ts} +18 -20
- package/dist/teams-react/components/BrandMark.d.ts +10 -0
- package/dist/teams-react/components/InvitationsPanel.d.ts +13 -0
- package/dist/teams-react/components/InviteAcceptPage.d.ts +10 -0
- package/dist/teams-react/components/MembersPanel.d.ts +14 -0
- package/dist/teams-react/components/RoleSelect.d.ts +17 -0
- package/dist/teams-react/components/index.d.ts +3 -0
- package/dist/teams-react/contracts.d.ts +134 -0
- package/dist/teams-react/index.d.ts +12 -143
- package/dist/teams-react/lazy.d.ts +11 -11
- package/dist/test-setup.d.ts +1 -0
- package/dist/theme/index.d.ts +6 -104
- package/dist/theme/tailwind-preset.d.ts +1 -2
- package/dist/theme/theme.d.ts +106 -0
- package/dist/theme-contract/cli.d.ts +21 -0
- package/dist/theme-contract/index.d.ts +4 -6
- package/dist/{auth-BYtiazA4.d.ts → tools/auth.d.ts} +8 -11
- package/dist/tools/capability.d.ts +54 -0
- package/dist/tools/dispatch.d.ts +37 -0
- package/dist/tools/errors.d.ts +8 -0
- package/dist/tools/gating.d.ts +62 -0
- package/dist/tools/http.d.ts +27 -0
- package/dist/tools/index.d.ts +12 -217
- package/dist/{mcp-rpc-DYwPlYbZ.d.ts → tools/mcp-rpc.d.ts} +7 -9
- package/dist/{mcp-xxoZZfor.d.ts → tools/mcp.d.ts} +14 -16
- package/dist/tools/openai.d.ts +28 -0
- package/dist/tools/registry.d.ts +39 -0
- package/dist/tools/runtime.d.ts +22 -0
- package/dist/{types-B25Mib1r.d.ts → tools/types.d.ts} +15 -83
- package/dist/{flow-types-CJxEmaRy.d.ts → trace/flow-types.d.ts} +2 -4
- package/dist/trace/index.d.ts +11 -148
- package/dist/trace/mission-flow.d.ts +82 -0
- package/dist/trace/mission-trace.d.ts +52 -0
- package/dist/turn-health/classify.d.ts +207 -0
- package/dist/turn-health/index.d.ts +29 -637
- package/dist/turn-health/lifecycle.d.ts +75 -0
- package/dist/turn-health/sink.d.ts +122 -0
- package/dist/turn-health/sweep.d.ts +245 -0
- package/dist/turn-stream/adapters.d.ts +257 -0
- package/dist/turn-stream/core.d.ts +293 -0
- package/dist/turn-stream/do.d.ts +144 -0
- package/dist/turn-stream/index.d.ts +62 -738
- package/dist/turn-stream/memory.d.ts +41 -0
- package/dist/vault/ConfirmDialog.d.ts +22 -0
- package/dist/vault/VaultPane.d.ts +15 -0
- package/dist/{VaultPane-BDP6SB_K.d.ts → vault/contracts.d.ts} +15 -22
- package/dist/vault/index.d.ts +15 -22
- package/dist/vault/lazy.d.ts +9 -7
- package/dist/vault/server.d.ts +8 -10
- package/dist/web/free-route-limit.d.ts +187 -0
- package/dist/web/index.d.ts +15 -207
- package/dist/{rate-limit-BOVmJRXZ.d.ts → web/rate-limit.d.ts} +3 -5
- package/dist/web-react/agent-session-controls.d.ts +105 -0
- package/dist/web-react/async/async-view.d.ts +69 -0
- package/dist/web-react/async/index.d.ts +13 -305
- package/dist/web-react/async/state.d.ts +107 -0
- package/dist/web-react/async/use-async-resource.d.ts +41 -0
- package/dist/web-react/async/use-confirmed-mutation.d.ts +90 -0
- package/dist/web-react/brand-mark.d.ts +11 -0
- package/dist/web-react/chat-attachments.d.ts +21 -0
- package/dist/web-react/chat-composer.d.ts +174 -0
- package/dist/web-react/chat-interactions.d.ts +1 -0
- package/dist/web-react/chat-mentions.d.ts +48 -0
- package/dist/web-react/chat-stream.d.ts +106 -0
- package/dist/web-react/class-names.d.ts +10 -0
- package/dist/web-react/controls.d.ts +265 -0
- package/dist/web-react/durable-chat-cards.d.ts +40 -0
- package/dist/web-react/durable-interaction-submit.d.ts +22 -0
- package/dist/web-react/durable-plan-card.d.ts +13 -0
- package/dist/web-react/durable-plan-flow.d.ts +77 -0
- package/dist/web-react/harness-glyphs.d.ts +28 -0
- package/dist/web-react/index.d.ts +80 -2347
- package/dist/web-react/inert.d.ts +39 -0
- package/dist/web-react/insight-card.d.ts +203 -0
- package/dist/web-react/interaction-card-support.d.ts +115 -0
- package/dist/web-react/interaction-plan-card.d.ts +39 -0
- package/dist/web-react/interaction-question-card.d.ts +100 -0
- package/dist/web-react/message-attachments.d.ts +56 -0
- package/dist/web-react/mission-activity.d.ts +96 -0
- package/dist/web-react/motion.d.ts +43 -0
- package/dist/web-react/provenance-model.d.ts +195 -0
- package/dist/web-react/provenance.d.ts +82 -0
- package/dist/web-react/provider-logo.d.ts +14 -0
- package/dist/web-react/record-grid-model.d.ts +257 -0
- package/dist/web-react/record-grid.d.ts +108 -0
- package/dist/web-react/sandbox-terminal.d.ts +90 -0
- package/dist/web-react/seat-paywall.d.ts +47 -0
- package/dist/web-react/session-history.d.ts +196 -0
- package/dist/web-react/smooth-text.d.ts +29 -0
- package/dist/web-react/sparkline.d.ts +150 -0
- package/dist/web-react/terminal.d.ts +1 -92
- package/dist/web-react/use-chat-interactions.d.ts +78 -0
- package/dist/web-react/use-composer-attachments.d.ts +111 -0
- package/dist/web-react/use-file-mentions.d.ts +94 -0
- package/dist/web-react/work-product.d.ts +105 -0
- package/dist/work-product/claim-support.d.ts +288 -0
- package/dist/work-product/index.d.ts +16 -849
- package/dist/work-product/provenance.d.ts +61 -0
- package/dist/{queue-VTBA5ONX.d.ts → work-product/queue.d.ts} +10 -12
- package/dist/work-product/quote.d.ts +139 -0
- package/dist/work-product/route.d.ts +88 -0
- package/dist/work-product/service.d.ts +123 -0
- package/dist/work-product/tools.d.ts +144 -0
- package/dist/{types-CCeYywdS.d.ts → work-product/types.d.ts} +29 -31
- package/dist/work-product-react/index.d.ts +19 -8
- package/dist/workspace-react/index.d.ts +8 -11
- package/package.json +4 -3
- package/dist/agent-session-controls-CmlXwp_H.d.ts +0 -384
- package/dist/apply-6wlMOLf8.d.ts +0 -280
- package/dist/attachment-validation-BfJDBU1g.d.ts +0 -261
- package/dist/budget-BOucfcb_.d.ts +0 -142
- package/dist/values-C7RidJuI.d.ts +0 -156
|
@@ -1,261 +0,0 @@
|
|
|
1
|
-
import { F as FileMention } from './wire-DOZ-O6hD.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* `createSandboxFileIndexRoute` — server side of `@`-file-mentions
|
|
5
|
-
* (companion to sandbox-ui#184's composer mention primitive). Serves a flat,
|
|
6
|
-
* ignore-filtered listing of the workspace sandbox so `useFileMentions`
|
|
7
|
-
* (`/web-react`) can filter it client-side without a round trip per
|
|
8
|
-
* keystroke.
|
|
9
|
-
*
|
|
10
|
-
* Same seam style as `createUploadRoute`: `authorize({ request })` resolves a
|
|
11
|
-
* structural `{ tree(path, opts) }` handle (the shape of the sandbox SDK's
|
|
12
|
-
* `box.fs.tree`) — no SDK import here. `authorize` also carries the
|
|
13
|
-
* cold-box signal: a sandbox that isn't running yet answers `{ status:
|
|
14
|
-
* 'warming' }` directly, never provisions-and-waits inside this route.
|
|
15
|
-
*
|
|
16
|
-
* A box can also be running with its workspace root not yet materialised, which
|
|
17
|
-
* `authorize` cannot see; the route recognises that one signal off `fs.tree`
|
|
18
|
-
* and answers `warming` too, so every consumer gets the retry-and-wait state
|
|
19
|
-
* instead of a 500. Every other `tree()` failure propagates.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
/** One entry from a structural `tree()` scan. Mirrors the sandbox SDK's
|
|
23
|
-
* `FileTreeFile` (`path`, `size`, `mtime`) — `mtime` is unused here so it's
|
|
24
|
-
* omitted from the structural match. */
|
|
25
|
-
interface SandboxTreeFile {
|
|
26
|
-
path: string;
|
|
27
|
-
size: number;
|
|
28
|
-
}
|
|
29
|
-
/** Structural match of the sandbox SDK's `box.fs.tree` result shape
|
|
30
|
-
* (`FileTreeResult`). `stats.truncated` is the only stat this route reads;
|
|
31
|
-
* the rest ride through unread on the real SDK type. */
|
|
32
|
-
interface SandboxTreeResult {
|
|
33
|
-
root: string;
|
|
34
|
-
files: SandboxTreeFile[];
|
|
35
|
-
stats: {
|
|
36
|
-
truncated: boolean;
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
/** Structural match of the sandbox SDK's `box.fs` tree surface. */
|
|
40
|
-
interface SandboxFileTreeSource {
|
|
41
|
-
tree(path: string, options?: {
|
|
42
|
-
maxDepth?: number;
|
|
43
|
-
}): Promise<SandboxTreeResult>;
|
|
44
|
-
}
|
|
45
|
-
/** Describe a ready file index response with workspace-relative entries and truncation status */
|
|
46
|
-
interface FileIndexReadyResponse {
|
|
47
|
-
status: 'ready';
|
|
48
|
-
/** Workspace-relative entries. Same shape as `FileMention` (`./wire`) so a
|
|
49
|
-
* client can hand a response entry straight to `fileMentionsToParts` /
|
|
50
|
-
* `buildMentionPromptBlock` without remapping. */
|
|
51
|
-
files: FileMention[];
|
|
52
|
-
/** True when either the underlying scan truncated (SDK-side cap) or this
|
|
53
|
-
* route's own `maxEntries` cap trimmed the filtered list. The client
|
|
54
|
-
* should show "showing first N files" rather than imply completeness. */
|
|
55
|
-
truncated: boolean;
|
|
56
|
-
generatedAt: string;
|
|
57
|
-
}
|
|
58
|
-
/** Cold-box answer: no provisioning happened, no files were scanned. The
|
|
59
|
-
* client shows a warming state and retries — this route never blocks on a
|
|
60
|
-
* box coming up. Two situations produce it: `authorize` reporting a box that
|
|
61
|
-
* is not running, and a running box whose workspace root does not exist yet
|
|
62
|
-
* (see `isMissingRootError`). */
|
|
63
|
-
interface FileIndexWarmingResponse {
|
|
64
|
-
status: 'warming';
|
|
65
|
-
}
|
|
66
|
-
/** Resolve a response indicating the file index is either ready or warming up */
|
|
67
|
-
type FileIndexResponse = FileIndexReadyResponse | FileIndexWarmingResponse;
|
|
68
|
-
/** Short-TTL cache seam so repeat popover opens in the same session don't
|
|
69
|
-
* re-scan the workspace. Host-provided (e.g. a KV binding); `key` is
|
|
70
|
-
* whatever `authorize` returns as `cacheKey` — this route treats it opaquely. */
|
|
71
|
-
interface FileIndexCache {
|
|
72
|
-
get(key: string): Promise<FileIndexReadyResponse | null> | FileIndexReadyResponse | null;
|
|
73
|
-
put(key: string, value: FileIndexReadyResponse, options?: {
|
|
74
|
-
ttlSeconds?: number;
|
|
75
|
-
}): Promise<void> | void;
|
|
76
|
-
}
|
|
77
|
-
/** Define authorization details and parameters for indexing a file workspace with optional caching and ignore rules */
|
|
78
|
-
type FileIndexAuthorization = {
|
|
79
|
-
status: 'ready';
|
|
80
|
-
/** Structural sandbox `fs` handle, usually `ensureWorkspaceSandbox(...)` → `box.fs`. */
|
|
81
|
-
fs: SandboxFileTreeSource;
|
|
82
|
-
/** Workspace root to index (e.g. `/home/agent`). */
|
|
83
|
-
root: string;
|
|
84
|
-
/** Extra ignore segments for this request, merged with the route's
|
|
85
|
-
* defaults + `CreateSandboxFileIndexRouteOptions.ignore`. */
|
|
86
|
-
ignore?: string[];
|
|
87
|
-
/** Opaque cache key for the optional cache seam. Omit to skip caching
|
|
88
|
-
* for this request (e.g. a workspace the host chooses not to cache). */
|
|
89
|
-
cacheKey?: string;
|
|
90
|
-
} | {
|
|
91
|
-
status: 'warming';
|
|
92
|
-
} | {
|
|
93
|
-
status: 'denied';
|
|
94
|
-
response: Response;
|
|
95
|
-
};
|
|
96
|
-
/** Define options to authorize and configure sandbox file index route behavior */
|
|
97
|
-
interface CreateSandboxFileIndexRouteOptions {
|
|
98
|
-
/** Authenticate the caller, resolve the sandbox `fs` handle, and signal a
|
|
99
|
-
* cold box — never provisions or waits. */
|
|
100
|
-
authorize(args: {
|
|
101
|
-
request: Request;
|
|
102
|
-
}): Promise<FileIndexAuthorization>;
|
|
103
|
-
/** Extra ignore segments beyond the route's defaults (node_modules, .git,
|
|
104
|
-
* dotfiles/dot-dirs, common build dirs). Matched as exact path-segment
|
|
105
|
-
* names, same rule as the defaults. */
|
|
106
|
-
ignore?: string[];
|
|
107
|
-
/** Passed to `fs.tree` as `options.maxDepth`. Default 12. */
|
|
108
|
-
maxDepth?: number;
|
|
109
|
-
/** Hard cap on entries returned after filtering. Default 5000. */
|
|
110
|
-
maxEntries?: number;
|
|
111
|
-
/** Optional host-provided cache seam. */
|
|
112
|
-
cache?: FileIndexCache;
|
|
113
|
-
/** Cache TTL in seconds when `cache` is set. Default 20. */
|
|
114
|
-
cacheTtlSeconds?: number;
|
|
115
|
-
}
|
|
116
|
-
/** Resolve a sandbox file index route with authorization, caching, and configurable depth and entries limits */
|
|
117
|
-
declare function createSandboxFileIndexRoute(options: CreateSandboxFileIndexRouteOptions): (request: Request) => Promise<Response>;
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Content-based binary/text classification, shared by the attachment upload
|
|
121
|
-
* route (server) and the composer's client-side pre-validation (browser) —
|
|
122
|
-
* both sides must agree on what counts as binary before a byte ever leaves
|
|
123
|
-
* the client. Extension-based allowlists lie (a renamed `.docx`, a PNG saved
|
|
124
|
-
* as `.txt`), so classification reads the actual bytes: a magic-byte table
|
|
125
|
-
* for common binary formats first, then a UTF-8 decode attempt for
|
|
126
|
-
* everything else. Two families need more than a fixed-offset signature and
|
|
127
|
-
* get a reader of their own — ISO-BMFF brands (`sniffFtyp`) and OOXML Office
|
|
128
|
-
* packages, whose PKZIP container is shared with every other `.zip`
|
|
129
|
-
* (`sniffOoxml`).
|
|
130
|
-
*
|
|
131
|
-
* Lifted near-verbatim from gtm-agent's `src/lib/binary-sniff.ts` (the
|
|
132
|
-
* source PRs hardened this against real corruption/gate bugs: gtm#584,
|
|
133
|
-
* gtm#592). Import-free by design — `/web-react` re-exports `/chat-routes`
|
|
134
|
-
* modules into browser bundles (`tests/browser-safe-subpaths.test.ts` walks
|
|
135
|
-
* the graph), so nothing here may reach a Node builtin or an engine package.
|
|
136
|
-
*/
|
|
137
|
-
interface SniffResult {
|
|
138
|
-
binary: boolean;
|
|
139
|
-
mime: string | null;
|
|
140
|
-
}
|
|
141
|
-
/** Sniffed mime for a Word OOXML package (`.docx`). */
|
|
142
|
-
declare const OOXML_WORD_MIME = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
|
143
|
-
/** Sniffed mime for an Excel OOXML package (`.xlsx`). */
|
|
144
|
-
declare const OOXML_SPREADSHEET_MIME = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
|
145
|
-
/** Sniffed mime for a PowerPoint OOXML package (`.pptx`). */
|
|
146
|
-
declare const OOXML_PRESENTATION_MIME = "application/vnd.openxmlformats-officedocument.presentationml.presentation";
|
|
147
|
-
/** Sniffed mime for a macro-enabled Word package (`.docm`). Reported
|
|
148
|
-
* separately from {@link OOXML_WORD_MIME} so a package carrying a VBA project
|
|
149
|
-
* can never be admitted under the plain-document mime: a route that wants
|
|
150
|
-
* macro-enabled files opts in explicitly through its allowed-mime seam. */
|
|
151
|
-
declare const OOXML_WORD_MACRO_ENABLED_MIME = "application/vnd.ms-word.document.macroEnabled.12";
|
|
152
|
-
/** Sniffed mime for a macro-enabled Excel package (`.xlsm`). */
|
|
153
|
-
declare const OOXML_SPREADSHEET_MACRO_ENABLED_MIME = "application/vnd.ms-excel.sheet.macroEnabled.12";
|
|
154
|
-
/** Sniffed mime for a macro-enabled PowerPoint package (`.pptm`). */
|
|
155
|
-
declare const OOXML_PRESENTATION_MACRO_ENABLED_MIME = "application/vnd.ms-powerpoint.presentation.macroEnabled.12";
|
|
156
|
-
/** Decide whether uploaded bytes are binary or text, and identify the mime
|
|
157
|
-
* type when it can be determined from content. Magic bytes are checked
|
|
158
|
-
* first; anything unmatched falls back to a fatal UTF-8 decode. A NUL byte
|
|
159
|
-
* or a decode failure means binary. Valid UTF-8 that is an SVG document is
|
|
160
|
-
* binary (byte-identity matters for image tooling). Content that matches
|
|
161
|
-
* nothing and does not decode as text is binary with an unknown mime —
|
|
162
|
-
* extension-based guessing happens at the call site, not here. */
|
|
163
|
-
declare function sniffBinary(bytes: Uint8Array): SniffResult;
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Shared attachment validation core — constants, type-gate, and filename
|
|
167
|
-
* sanitization used by BOTH the (server) attachment upload route and the
|
|
168
|
-
* (browser) composer's client-side pre-validation, so a rejection never
|
|
169
|
-
* differs depending on which side classified the bytes first.
|
|
170
|
-
*
|
|
171
|
-
* ≈ gtm-agent's `src/lib/attachment-limits.ts`, minus what agent-app already
|
|
172
|
-
* has (`ATTACHMENT_MAX_COUNT`/`MAX_ATTACHMENT_TOTAL_BYTES`/
|
|
173
|
-
* `attachmentTotalSizeErrorMessage` lived in `./resolve-attachments` and are
|
|
174
|
-
* re-homed here so the whole validation vocabulary — count cap, size caps,
|
|
175
|
-
* and type gate — has one address). Import-free besides `./wire`
|
|
176
|
-
* (`formatBytes`) and `./binary-sniff` (`SniffResult`): `/web-react`
|
|
177
|
-
* re-exports `/chat-routes` modules into browser bundles
|
|
178
|
-
* (`tests/browser-safe-subpaths.test.ts` walks the graph), so nothing here
|
|
179
|
-
* may reach a Node builtin or an engine package.
|
|
180
|
-
*/
|
|
181
|
-
|
|
182
|
-
/** Ceiling on a binary attachment's raw (pre-encoding) byte size. */
|
|
183
|
-
declare const MAX_BINARY_ATTACHMENT_BYTES: number;
|
|
184
|
-
/** Ceiling on a text attachment's raw byte size. Text hydrates through
|
|
185
|
-
* inline prompt parts, a separate path that remains proxy-capped (see
|
|
186
|
-
* `INLINE_PARTS_MAX_BYTES` in `./wire`). */
|
|
187
|
-
declare const MAX_TEXT_ATTACHMENT_BYTES: number;
|
|
188
|
-
/** Most files a single request may carry: the composer staging cap, the
|
|
189
|
-
* upload route's per-request cap, and the chat body's `attachments` cap. */
|
|
190
|
-
declare const ATTACHMENT_MAX_COUNT = 10;
|
|
191
|
-
/** Aggregate raw-byte ceiling across one message's attachments. */
|
|
192
|
-
declare const MAX_ATTACHMENT_TOTAL_BYTES: number;
|
|
193
|
-
/**
|
|
194
|
-
* Accept list for the composer file picker + type validation, same grammar as
|
|
195
|
-
* the native `<input accept>` attribute. Images plus the text/doc types a
|
|
196
|
-
* product's store actually reads.
|
|
197
|
-
*
|
|
198
|
-
* Every extension here is one the default {@link ALLOWED_ATTACHMENT_SNIFFED_MIMES}
|
|
199
|
-
* actually admits — a picker that offers a format the gate then rejects is a
|
|
200
|
-
* defect, so `tests/chat-routes/attachment-validation.test.ts` walks this
|
|
201
|
-
* string and proves each entry uploads.
|
|
202
|
-
*/
|
|
203
|
-
declare const ATTACHMENT_ACCEPT = "image/*,.pdf,.docx,.xlsx,.pptx,.txt,.md,.csv,.json,.yaml,.yml,.html";
|
|
204
|
-
/** The Office (OOXML) package mimes the default allow-list admits — the
|
|
205
|
-
* formats professionals actually send: Word contracts, Excel workpapers,
|
|
206
|
-
* PowerPoint decks. Admitting the format is a gate decision only; whether a
|
|
207
|
-
* product can EXTRACT text from one is that product's concern. */
|
|
208
|
-
declare const OOXML_SNIFFED_MIMES: ReadonlySet<string>;
|
|
209
|
-
/** Macro-enabled Office package mimes (`.docm`/`.xlsm`/`.pptm`), reported by
|
|
210
|
-
* `sniffBinary` but deliberately NOT in the default allow-list: a package
|
|
211
|
-
* carrying a VBA project is a different risk decision than a plain document,
|
|
212
|
-
* and it is the product's to make. Opt in by widening the allow-list at the
|
|
213
|
-
* route's `allowedSniffedMimes` seam:
|
|
214
|
-
* `new Set([...ALLOWED_ATTACHMENT_SNIFFED_MIMES, ...MACRO_ENABLED_OOXML_SNIFFED_MIMES])`. */
|
|
215
|
-
declare const MACRO_ENABLED_OOXML_SNIFFED_MIMES: ReadonlySet<string>;
|
|
216
|
-
/** Sniffed-mime counterpart of `ATTACHMENT_ACCEPT`: the binary formats
|
|
217
|
-
* `sniffBinary` can identify from content among the accepted types.
|
|
218
|
-
* Values must match `sniffBinary`'s output strings verbatim, or every
|
|
219
|
-
* upload of that format fails the type gate — locked by the round-trip test
|
|
220
|
-
* that sniffs real bytes of every mime listed here. */
|
|
221
|
-
declare const ALLOWED_ATTACHMENT_SNIFFED_MIMES: ReadonlySet<string>;
|
|
222
|
-
/** Represent the result of checking an attachment's type with success or specific failure details */
|
|
223
|
-
type AttachmentTypeCheckResult = {
|
|
224
|
-
succeeded: true;
|
|
225
|
-
} | {
|
|
226
|
-
succeeded: false;
|
|
227
|
-
code: 'attachment_type_mismatch' | 'attachment_type_not_allowed';
|
|
228
|
-
message: string;
|
|
229
|
-
};
|
|
230
|
-
/**
|
|
231
|
-
* Cross-check a filename's extension against its sniffed content.
|
|
232
|
-
*
|
|
233
|
-
* Text content (`sniff.binary === false`) always passes here — it has no
|
|
234
|
-
* magic bytes to compare, so it rides the existing UTF-8 gate instead. For
|
|
235
|
-
* binary content: an extension with an unambiguous magic-byte family (e.g.
|
|
236
|
-
* `.pdf`) must match the sniffed mime, or the upload is a mismatch (a
|
|
237
|
-
* renamed file). Otherwise the sniffed mime must be one of `allowed`
|
|
238
|
-
* (default {@link ALLOWED_ATTACHMENT_SNIFFED_MIMES}), or the upload is
|
|
239
|
-
* rejected outright. The `allowed` param feeds a route's override seam (a
|
|
240
|
-
* product accepting a narrower or wider set than the default).
|
|
241
|
-
*/
|
|
242
|
-
declare function checkAttachmentType(fileName: string, sniff: SniffResult, allowed?: ReadonlySet<string>): AttachmentTypeCheckResult;
|
|
243
|
-
/**
|
|
244
|
-
* Rewrite a filename into the store-path charset (`A-Za-z0-9._-` per
|
|
245
|
-
* segment) — attachment paths double as store keys, sandbox file paths, and
|
|
246
|
-
* in-message path references, none of which tolerate spaces or punctuation.
|
|
247
|
-
* Runs of unsupported characters collapse to one `-`; leading dots/dashes are
|
|
248
|
-
* stripped so the name can't read as a hidden segment. The original name is
|
|
249
|
-
* preserved separately (the returned `ChatAttachmentInput.name`), so
|
|
250
|
-
* sanitization loses nothing.
|
|
251
|
-
*/
|
|
252
|
-
declare function sanitizeAttachmentFileName(name: string): string;
|
|
253
|
-
/** Human-readable error naming both the actual size and the limit that was
|
|
254
|
-
* exceeded. Shared so the server route and the composer pre-check report
|
|
255
|
-
* the same message shape. */
|
|
256
|
-
declare function attachmentSizeErrorMessage(name: string, actualBytes: number, limitBytes: number): string;
|
|
257
|
-
/** Human-readable error for a chat message whose combined attachments exceed
|
|
258
|
-
* the aggregate raw-byte ceiling. */
|
|
259
|
-
declare function attachmentTotalSizeErrorMessage(totalBytes: number, limitBytes: number): string;
|
|
260
|
-
|
|
261
|
-
export { ALLOWED_ATTACHMENT_SNIFFED_MIMES as A, type CreateSandboxFileIndexRouteOptions as C, type FileIndexAuthorization as F, MACRO_ENABLED_OOXML_SNIFFED_MIMES as M, OOXML_PRESENTATION_MACRO_ENABLED_MIME as O, type SandboxFileTreeSource as S, ATTACHMENT_ACCEPT as a, ATTACHMENT_MAX_COUNT as b, type AttachmentTypeCheckResult as c, type FileIndexCache as d, type FileIndexReadyResponse as e, type FileIndexResponse as f, type FileIndexWarmingResponse as g, MAX_ATTACHMENT_TOTAL_BYTES as h, MAX_BINARY_ATTACHMENT_BYTES as i, MAX_TEXT_ATTACHMENT_BYTES as j, OOXML_PRESENTATION_MIME as k, OOXML_SNIFFED_MIMES as l, OOXML_SPREADSHEET_MACRO_ENABLED_MIME as m, OOXML_SPREADSHEET_MIME as n, OOXML_WORD_MACRO_ENABLED_MIME as o, OOXML_WORD_MIME as p, type SandboxTreeFile as q, type SandboxTreeResult as r, type SniffResult as s, attachmentSizeErrorMessage as t, attachmentTotalSizeErrorMessage as u, checkAttachmentType as v, createSandboxFileIndexRoute as w, sanitizeAttachmentFileName as x, sniffBinary as y };
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
import { AgentProfile } from '@tangle-network/agent-interface';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Profile fingerprinting — prove WHICH profile a turn actually executed.
|
|
5
|
-
*
|
|
6
|
-
* The backtest invariant this exists to enforce: an eval's score is only worth
|
|
7
|
-
* publishing if the benchmarked profile IS the shipped profile. The failure
|
|
8
|
-
* mode is structural, not hypothetical — a product's eval composed the
|
|
9
|
-
* production profile in one module, executed a hand-rolled stub in another,
|
|
10
|
-
* and stamped the composed profile's identity onto the stub's scorecard.
|
|
11
|
-
* Nothing compared the two, so nothing could notice.
|
|
12
|
-
*
|
|
13
|
-
* A `ProfileFingerprint` is a channelled identity of the profile handed to the
|
|
14
|
-
* sandbox SDK: the system-prompt digest plus the names of every capability
|
|
15
|
-
* surface (MCP servers, subagents, file mounts, hub connections) and the
|
|
16
|
-
* model/harness the turn dispatched at. It is deliberately NOT a byte-exhaustive
|
|
17
|
-
* serialization — channels are what drift in practice, and a channelled diff
|
|
18
|
-
* names the surface that moved instead of reporting "bytes differ".
|
|
19
|
-
*
|
|
20
|
-
* The write half of the seam is `StreamSandboxPromptOptions.onProfileResolved`
|
|
21
|
-
* (`/sandbox`): the one place the final profile exists is inside
|
|
22
|
-
* `streamSandboxPrompt` after the system-prompt override, the MCP merge, and
|
|
23
|
-
* reasoning-effort attachment, so that is where the fingerprint is taken. A
|
|
24
|
-
* caller re-deriving a profile to fingerprint it would reintroduce the exact
|
|
25
|
-
* gap this closes.
|
|
26
|
-
*/
|
|
27
|
-
|
|
28
|
-
/** The dispatch context a profile cannot see but a turn's identity includes. */
|
|
29
|
-
interface ProfileFingerprintContext {
|
|
30
|
-
model?: string;
|
|
31
|
-
harness?: string;
|
|
32
|
-
}
|
|
33
|
-
/** Channelled identity of one executed (or composed) profile. */
|
|
34
|
-
interface ProfileFingerprint {
|
|
35
|
-
/** sha256 over every channel below — one value to log/compare. */
|
|
36
|
-
hash: string;
|
|
37
|
-
/** sha256 of `prompt.systemPrompt` ('' when absent). */
|
|
38
|
-
promptSha: string;
|
|
39
|
-
/** UTF-8 byte length of `prompt.systemPrompt`. */
|
|
40
|
-
promptBytes: number;
|
|
41
|
-
/** Sorted MCP server keys. */
|
|
42
|
-
mcpKeys: string[];
|
|
43
|
-
/** Sorted subagent names. */
|
|
44
|
-
subagentNames: string[];
|
|
45
|
-
/** Sorted `resources.files[].path` mounts. */
|
|
46
|
-
fileMountPaths: string[];
|
|
47
|
-
/** Sorted hub connection ids (alias-qualified when present). */
|
|
48
|
-
connectionIds: string[];
|
|
49
|
-
model?: string;
|
|
50
|
-
harness?: string;
|
|
51
|
-
}
|
|
52
|
-
/** Fingerprint a profile as the SDK would receive it. */
|
|
53
|
-
declare function fingerprintAgentProfile(profile: AgentProfile, context?: ProfileFingerprintContext): Promise<ProfileFingerprint>;
|
|
54
|
-
/** One drifted channel between two fingerprints, rendered as comparable strings. */
|
|
55
|
-
interface ProfileDriftEntry {
|
|
56
|
-
channel: 'promptSha' | 'promptBytes' | 'mcpKeys' | 'subagentNames' | 'fileMountPaths' | 'connectionIds' | 'model' | 'harness';
|
|
57
|
-
a: string;
|
|
58
|
-
b: string;
|
|
59
|
-
}
|
|
60
|
-
interface ProfileDrift {
|
|
61
|
-
equal: boolean;
|
|
62
|
-
drift: ProfileDriftEntry[];
|
|
63
|
-
}
|
|
64
|
-
/** Channel-by-channel comparison of two fingerprints. */
|
|
65
|
-
declare function diffProfileFingerprints(a: ProfileFingerprint, b: ProfileFingerprint): ProfileDrift;
|
|
66
|
-
/** Human-readable drift report; exactly 'profiles identical' when equal. */
|
|
67
|
-
declare function formatProfileDrift(drift: ProfileDrift): string;
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* The composed-system-prompt byte budget, split out of `./index` so it imports
|
|
71
|
-
* NOTHING.
|
|
72
|
-
*
|
|
73
|
-
* `./index` pulls `@tangle-network/agent-eval` (the evolvable-section seam), so
|
|
74
|
-
* `/sandbox` — which has no agent-eval import and must not gain one — could not
|
|
75
|
-
* enforce the budget from there. The gate is the same function either way; only
|
|
76
|
-
* its module home moved. `./index` re-exports every symbol below, so the
|
|
77
|
-
* published `/profile` surface is byte-identical.
|
|
78
|
-
*
|
|
79
|
-
* Why the gate belongs at more than one call site: `composeAgentProfile` is
|
|
80
|
-
* OPT-IN. A product may hand-build its `AgentProfile`, and one does —
|
|
81
|
-
* creative-agent's create-time profile is deliberately minimal and its full
|
|
82
|
-
* system prompt rides the PER-TURN backend (`buildPromptBackend`), which never
|
|
83
|
-
* touches the composer. `/sandbox` therefore runs this gate at the three points
|
|
84
|
-
* where the profile that actually executes exists.
|
|
85
|
-
*/
|
|
86
|
-
/** Byte budget on the FINAL composed `prompt.systemPrompt`. Past this the
|
|
87
|
-
* model degrades sharply (a 122,659-byte prompt shipped once and the model
|
|
88
|
-
* returned empty answers), so the default gate throws well before that. */
|
|
89
|
-
declare const DEFAULT_MAX_SYSTEM_PROMPT_BYTES = 40000;
|
|
90
|
-
/** Budget config for the composed system prompt. */
|
|
91
|
-
interface ComposeProfileBudget {
|
|
92
|
-
/** Byte cap on the composed `prompt.systemPrompt`.
|
|
93
|
-
* Default {@link DEFAULT_MAX_SYSTEM_PROMPT_BYTES}. */
|
|
94
|
-
maxSystemPromptBytes?: number;
|
|
95
|
-
/** Downgrade the over-budget throw to a `console.warn` — the escape hatch
|
|
96
|
-
* for a product with a known-big prompt that must still ship (it yells on
|
|
97
|
-
* every compose instead of blocking). */
|
|
98
|
-
warnOnly?: boolean;
|
|
99
|
-
/** Required to raise {@link maxSystemPromptBytes} above
|
|
100
|
-
* {@link DEFAULT_MAX_SYSTEM_PROMPT_BYTES} or to set {@link warnOnly}: a
|
|
101
|
-
* written reason naming what stays inline and why it cannot be mounted.
|
|
102
|
-
* Weakening the cap is a product decision that outlives the person making
|
|
103
|
-
* it, and the usual cause is reference material concatenated into the prompt
|
|
104
|
-
* that belongs in `resources.files`; demanding the sentence here keeps that
|
|
105
|
-
* from happening by accident. */
|
|
106
|
-
overBudgetReason?: string;
|
|
107
|
-
}
|
|
108
|
-
/** Largest markdown-heading-delimited sections of a prompt, by UTF-8 bytes.
|
|
109
|
-
* Cheap heuristic: split on `#`-heading lines; the preamble before the first
|
|
110
|
-
* heading reports as "(preamble)". */
|
|
111
|
-
declare function largestPromptSections(prompt: string, top?: number): Array<{
|
|
112
|
-
title: string;
|
|
113
|
-
bytes: number;
|
|
114
|
-
}>;
|
|
115
|
-
/** Enforce {@link ComposeProfileBudget} on a composed system prompt: over
|
|
116
|
-
* budget throws (or warns with `warnOnly`) with the actual size and the
|
|
117
|
-
* top-3 largest sections. Exported so a product assembling its prompt
|
|
118
|
-
* outside `composeAgentProfile` (e.g. via the `/prompt` assembler) can
|
|
119
|
-
* run the same gate at its own final-composition point. */
|
|
120
|
-
declare function assertSystemPromptWithinBudget(systemPrompt: string, budget?: ComposeProfileBudget,
|
|
121
|
-
/** Prefixed to the message so a throw from a turn/provision choke point says
|
|
122
|
-
* WHERE it fired — "composed systemPrompt" alone reads like a compose-time
|
|
123
|
-
* error even when it fired on `driveSandboxTurn`. */
|
|
124
|
-
origin?: string): void;
|
|
125
|
-
/** Run {@link assertSystemPromptWithinBudget} over a profile-shaped object's
|
|
126
|
-
* `prompt.systemPrompt`. Structural on purpose: `/sandbox` calls this on the
|
|
127
|
-
* SDK's `AgentProfile` and on the product-supplied seam result without either
|
|
128
|
-
* module importing the other's types. A profile with no string systemPrompt
|
|
129
|
-
* is a no-op — there is nothing to measure.
|
|
130
|
-
*
|
|
131
|
-
* The `hint` exists because this gate can fire on a product that ALREADY made
|
|
132
|
-
* a deliberate budget decision somewhere else. gtm-agent composes with
|
|
133
|
-
* `{ maxSystemPromptBytes: 50_000 }`; without the hint, the shell's 40 KB
|
|
134
|
-
* default reads as the gate contradicting a choice the product already made
|
|
135
|
-
* rather than as "declare the same number here too". */
|
|
136
|
-
declare function assertProfilePromptWithinBudget(profile: {
|
|
137
|
-
prompt?: {
|
|
138
|
-
systemPrompt?: unknown;
|
|
139
|
-
};
|
|
140
|
-
} | undefined, budget?: ComposeProfileBudget, origin?: string, hint?: string): void;
|
|
141
|
-
|
|
142
|
-
export { type ComposeProfileBudget as C, DEFAULT_MAX_SYSTEM_PROMPT_BYTES as D, type ProfileDrift as P, type ProfileDriftEntry as a, type ProfileFingerprint as b, type ProfileFingerprintContext as c, assertProfilePromptWithinBudget as d, assertSystemPromptWithinBudget as e, diffProfileFingerprints as f, fingerprintAgentProfile as g, formatProfileDrift as h, largestPromptSections as l };
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Splitting an assistant message into prose and agent-authored UI.
|
|
3
|
-
*
|
|
4
|
-
* An agent emits a page by fencing it as ```` ```openui ```` in its reply (the
|
|
5
|
-
* inline path) or by calling `render_ui` (the persisted-artifact path). Every
|
|
6
|
-
* product that renders the inline path had forked the same scanner into its own
|
|
7
|
-
* chat-message body; this is that scanner, once, with no React and no renderer
|
|
8
|
-
* import — the node union stays owned by `@tangle-network/ui`'s `./openui`.
|
|
9
|
-
*/
|
|
10
|
-
/**
|
|
11
|
-
* The narrowest thing a host can assert about a parsed node: it names a type.
|
|
12
|
-
* A renderer's node union satisfies this, so
|
|
13
|
-
* `parseOpenUISegments<OpenUIComponentNode>(text)` hands typed nodes straight
|
|
14
|
-
* to the renderer with no cast at the call site.
|
|
15
|
-
*/
|
|
16
|
-
interface OpenUINode {
|
|
17
|
-
type: string;
|
|
18
|
-
id?: string;
|
|
19
|
-
}
|
|
20
|
-
/** One piece of an assistant message: prose, or a page to render. */
|
|
21
|
-
type OpenUISegment<TNode extends OpenUINode = OpenUINode> = {
|
|
22
|
-
type: 'markdown';
|
|
23
|
-
text: string;
|
|
24
|
-
} | {
|
|
25
|
-
type: 'openui';
|
|
26
|
-
nodes: TNode[];
|
|
27
|
-
};
|
|
28
|
-
/**
|
|
29
|
-
* Split message content into markdown and OpenUI segments, in source order.
|
|
30
|
-
*
|
|
31
|
-
* A fence whose body is not JSON, or whose JSON carries no node at all, is
|
|
32
|
-
* returned as a fenced `json` markdown segment rather than an empty page: the
|
|
33
|
-
* content is still streaming, or the agent wrote something malformed, and both
|
|
34
|
-
* cases are better shown than swallowed into a blank card.
|
|
35
|
-
*
|
|
36
|
-
* The type argument is the caller's assertion about the node union it will
|
|
37
|
-
* render; this function checks only that each node names a `type`, and the
|
|
38
|
-
* renderer rejects types it does not know.
|
|
39
|
-
*/
|
|
40
|
-
declare function parseOpenUISegments<TNode extends OpenUINode = OpenUINode>(content: string): Array<OpenUISegment<TNode>>;
|
|
41
|
-
/** Whether a message carries any agent-authored page at all. */
|
|
42
|
-
declare function hasOpenUISegment(content: string): boolean;
|
|
43
|
-
/** A page read back out of the vault, and its title when one was stored. */
|
|
44
|
-
interface OpenUIArtifact<TNode extends OpenUINode = OpenUINode> {
|
|
45
|
-
title?: string;
|
|
46
|
-
nodes: TNode[];
|
|
47
|
-
}
|
|
48
|
-
/** Why a stored page could not be read. */
|
|
49
|
-
interface OpenUIArtifactError {
|
|
50
|
-
code: 'artifact_not_json' | 'artifact_no_nodes';
|
|
51
|
-
message: string;
|
|
52
|
-
}
|
|
53
|
-
/** Reading a stored page either produces nodes or says why it did not. */
|
|
54
|
-
type OpenUIArtifactResult<TNode extends OpenUINode = OpenUINode> = {
|
|
55
|
-
succeeded: true;
|
|
56
|
-
value: OpenUIArtifact<TNode>;
|
|
57
|
-
} | {
|
|
58
|
-
succeeded: false;
|
|
59
|
-
error: OpenUIArtifactError;
|
|
60
|
-
};
|
|
61
|
-
/**
|
|
62
|
-
* Read a `render_ui` artifact back out of the vault.
|
|
63
|
-
*
|
|
64
|
-
* Two shapes are in the wild and a product cannot tell them apart from the
|
|
65
|
-
* path: the bare node tree that `preset-cloudflare`'s handler writes
|
|
66
|
-
* (`JSON.stringify(args.schema)`), and the `{ title, schema }` envelope some
|
|
67
|
-
* products write themselves. Reading only one of them renders an empty panel
|
|
68
|
-
* for the other, with nothing on screen to say why — so this reads both and
|
|
69
|
-
* fails loud when it is neither.
|
|
70
|
-
*/
|
|
71
|
-
declare function parseOpenUIArtifact<TNode extends OpenUINode = OpenUINode>(content: string): OpenUIArtifactResult<TNode>;
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* The value half of an interactive OpenUI page: what a field holds, and whether
|
|
75
|
-
* a submitted set of field values matches the form the agent authored.
|
|
76
|
-
*
|
|
77
|
-
* The NODE vocabulary (which fields exist, how they render) has one owner —
|
|
78
|
-
* `@tangle-network/ui`'s `./openui` entry. This module does not restate it. It
|
|
79
|
-
* declares the narrowest STRUCTURAL port a host needs to check a submission:
|
|
80
|
-
* the field's id, its kind, and the constraints that make a value legal. A
|
|
81
|
-
* renderer's richer node type satisfies this port by assignment, so the two
|
|
82
|
-
* packages stay in step without either importing the other.
|
|
83
|
-
*/
|
|
84
|
-
/** A value one OpenUI field can hold. `string[]` is a multi-select. */
|
|
85
|
-
type OpenUIValue = string | number | boolean | string[];
|
|
86
|
-
/** Submitted field values, keyed by field id. */
|
|
87
|
-
type OpenUIFormValues = Record<string, OpenUIValue>;
|
|
88
|
-
/**
|
|
89
|
-
* Field ids the host will accept: identifier-safe, and never a key that would
|
|
90
|
-
* reach `Object.prototype`. A submission arrives from a browser and is used to
|
|
91
|
-
* index an object, so this is a boundary check, not a style rule.
|
|
92
|
-
*/
|
|
93
|
-
declare function isSafeOpenUIFieldId(id: string): boolean;
|
|
94
|
-
/** The input kinds a form field can be. */
|
|
95
|
-
type OpenUIFieldKind = 'text' | 'number' | 'currency' | 'select' | 'checkbox' | 'slider';
|
|
96
|
-
/** Whether a string names an input kind this contract knows. */
|
|
97
|
-
declare function isOpenUIFieldKind(kind: string): kind is OpenUIFieldKind;
|
|
98
|
-
/**
|
|
99
|
-
* One field, reduced to what a value check needs. A renderer node carrying
|
|
100
|
-
* labels, placeholders, and layout is assignable to this — the extra
|
|
101
|
-
* presentation properties are simply not read here.
|
|
102
|
-
*/
|
|
103
|
-
interface OpenUIFieldSpec {
|
|
104
|
-
id: string;
|
|
105
|
-
kind: OpenUIFieldKind;
|
|
106
|
-
required?: boolean;
|
|
107
|
-
/** `number` / `currency` / `slider` bounds, inclusive. */
|
|
108
|
-
min?: number;
|
|
109
|
-
max?: number;
|
|
110
|
-
/** Increment `number` / `currency` / `slider` values must land on, measured from `min ?? 0`. */
|
|
111
|
-
step?: number;
|
|
112
|
-
/** Longest accepted `text` value. */
|
|
113
|
-
maxLength?: number;
|
|
114
|
-
/** Accepted `select` values. */
|
|
115
|
-
options?: ReadonlyArray<{
|
|
116
|
-
value: string;
|
|
117
|
-
}>;
|
|
118
|
-
/** A `select` that accepts more than one option; its value is a `string[]`. */
|
|
119
|
-
multiple?: boolean;
|
|
120
|
-
}
|
|
121
|
-
/** A form the host can check a submission against. */
|
|
122
|
-
interface OpenUIFormSpec {
|
|
123
|
-
id: string;
|
|
124
|
-
fields: readonly OpenUIFieldSpec[];
|
|
125
|
-
}
|
|
126
|
-
/** Why one field's value was rejected. */
|
|
127
|
-
type OpenUIFieldIssueCode = 'required' | 'type' | 'range' | 'step' | 'option' | 'length' | 'unknown_field' | 'duplicate_field' | 'unsafe_field_id';
|
|
128
|
-
/** One rejected field, named so a card can mark exactly that input. */
|
|
129
|
-
interface OpenUIFieldIssue {
|
|
130
|
-
fieldId: string;
|
|
131
|
-
code: OpenUIFieldIssueCode;
|
|
132
|
-
message: string;
|
|
133
|
-
}
|
|
134
|
-
/** The outcome of checking a submission against a form. */
|
|
135
|
-
type OpenUIFormValidation = {
|
|
136
|
-
ok: true;
|
|
137
|
-
values: OpenUIFormValues;
|
|
138
|
-
} | {
|
|
139
|
-
ok: false;
|
|
140
|
-
issues: OpenUIFieldIssue[];
|
|
141
|
-
};
|
|
142
|
-
/**
|
|
143
|
-
* Check submitted values against the form the agent authored.
|
|
144
|
-
*
|
|
145
|
-
* Fails loud on both sides of the shape: a value the form never declared is an
|
|
146
|
-
* error (`unknown_field`), not a silently ignored extra, because a host that
|
|
147
|
-
* drops it would act on a form different from the one the user filled in. A
|
|
148
|
-
* `required` field with no value is an error even when the caller simply never
|
|
149
|
-
* sent the key.
|
|
150
|
-
*
|
|
151
|
-
* On success the returned `values` contain only declared fields, in the form's
|
|
152
|
-
* own field order — the object a handler should act on.
|
|
153
|
-
*/
|
|
154
|
-
declare function validateOpenUIFormValues(spec: OpenUIFormSpec, values: OpenUIFormValues): OpenUIFormValidation;
|
|
155
|
-
|
|
156
|
-
export { type OpenUIFormValues as O, type OpenUIFieldIssue as a, type OpenUINode as b, type OpenUIValue as c, type OpenUIFormSpec as d, type OpenUIFieldKind as e, type OpenUIArtifact as f, type OpenUIArtifactError as g, type OpenUIArtifactResult as h, type OpenUIFieldIssueCode as i, type OpenUIFieldSpec as j, type OpenUIFormValidation as k, type OpenUISegment as l, hasOpenUISegment as m, isOpenUIFieldKind as n, isSafeOpenUIFieldId as o, parseOpenUIArtifact as p, parseOpenUISegments as q, validateOpenUIFormValues as v };
|