@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.
- 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 +5 -4
- 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
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure pointer-gesture math for the timeline editor. Every drag/trim/scrub
|
|
3
|
+
* gesture quantizes through these functions so the interactive behavior is
|
|
4
|
+
* unit-testable without a DOM. All inputs/outputs are integer frames except
|
|
5
|
+
* pixel deltas and zoom (px per frame), which are the only float-valued edge.
|
|
6
|
+
*/
|
|
7
|
+
import type { SnapPoint, SnapResult } from '../contracts';
|
|
8
|
+
/** Quantize a horizontal pointer delta to whole frames at the current zoom. */
|
|
9
|
+
export declare function framesFromPixelDelta(deltaX: number, zoom: number): number;
|
|
10
|
+
export interface MoveDragInput {
|
|
11
|
+
originStartFrame: number;
|
|
12
|
+
durationFrames: number;
|
|
13
|
+
deltaFrames: number;
|
|
14
|
+
sequenceDurationFrames: number;
|
|
15
|
+
}
|
|
16
|
+
/** New start frame for a move drag, clamped so the clip stays fully inside
|
|
17
|
+
* the sequence. */
|
|
18
|
+
export declare function moveDragStartFrame(input: MoveDragInput): number;
|
|
19
|
+
export interface TrimStartDragInput {
|
|
20
|
+
originStartFrame: number;
|
|
21
|
+
originDurationFrames: number;
|
|
22
|
+
originSourceInFrame: number;
|
|
23
|
+
deltaFrames: number;
|
|
24
|
+
}
|
|
25
|
+
export interface TrimStartDragResult {
|
|
26
|
+
startFrame: number;
|
|
27
|
+
durationFrames: number;
|
|
28
|
+
sourceInFrame: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Head trim: the clip END is invariant; start slides between two hard walls —
|
|
32
|
+
* it cannot reveal media before source frame 0 (sourceInFrame >= 0) and cannot
|
|
33
|
+
* pass within MIN_SEQUENCE_CLIP_FRAMES of the end. sourceInFrame shifts by
|
|
34
|
+
* exactly the start delta so the visible content stays anchored.
|
|
35
|
+
*/
|
|
36
|
+
export declare function trimStartDrag(input: TrimStartDragInput): TrimStartDragResult;
|
|
37
|
+
export interface TrimEndDragInput {
|
|
38
|
+
originStartFrame: number;
|
|
39
|
+
originDurationFrames: number;
|
|
40
|
+
sourceInFrame: number;
|
|
41
|
+
deltaFrames: number;
|
|
42
|
+
sequenceDurationFrames: number;
|
|
43
|
+
/** Natural source length in frames when known; bounds how far the tail can
|
|
44
|
+
* extend. Omit for stills and media of unknown length. */
|
|
45
|
+
sourceDurationFrames?: number;
|
|
46
|
+
}
|
|
47
|
+
/** Tail trim: start is invariant; duration is bounded below by the minimum
|
|
48
|
+
* clip length and above by both the sequence end and the remaining source
|
|
49
|
+
* material past the in-point. */
|
|
50
|
+
export declare function trimEndDrag(input: TrimEndDragInput): {
|
|
51
|
+
durationFrames: number;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Smallest ruler step whose major ticks sit at least `minSpacingPx` apart at
|
|
55
|
+
* the current zoom; past the table it grows in whole minutes so labels never
|
|
56
|
+
* collide at extreme zoom-out.
|
|
57
|
+
*/
|
|
58
|
+
export declare function selectTickStepSeconds(input: {
|
|
59
|
+
zoom: number;
|
|
60
|
+
fps: number;
|
|
61
|
+
minSpacingPx?: number;
|
|
62
|
+
}): number;
|
|
63
|
+
export interface LetterboxRect {
|
|
64
|
+
x: number;
|
|
65
|
+
y: number;
|
|
66
|
+
width: number;
|
|
67
|
+
height: number;
|
|
68
|
+
}
|
|
69
|
+
/** Contain-fit a media aspect inside a container, centered with letterbox or
|
|
70
|
+
* pillarbox bars. */
|
|
71
|
+
export declare function letterboxRect(input: {
|
|
72
|
+
containerWidth: number;
|
|
73
|
+
containerHeight: number;
|
|
74
|
+
mediaWidth: number;
|
|
75
|
+
mediaHeight: number;
|
|
76
|
+
}): LetterboxRect;
|
|
77
|
+
/** Caption type scales with the rendered frame, floored so captions stay
|
|
78
|
+
* legible on small previews. */
|
|
79
|
+
export declare function captionFontPx(canvasCssHeight: number): number;
|
|
80
|
+
/** Pixel geometry for a clip chip; width floors at 2px so 1-frame clips stay
|
|
81
|
+
* grabbable. */
|
|
82
|
+
export declare function clipChipGeometry(input: {
|
|
83
|
+
startFrame: number;
|
|
84
|
+
durationFrames: number;
|
|
85
|
+
zoom: number;
|
|
86
|
+
}): {
|
|
87
|
+
left: number;
|
|
88
|
+
width: number;
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* A move drag snaps whichever clip edge lands closest to a snap point: the
|
|
92
|
+
* start edge directly, or the end edge re-expressed as a start. An unsnapped
|
|
93
|
+
* candidate passes through unchanged.
|
|
94
|
+
*/
|
|
95
|
+
export declare function chooseMoveSnap(input: {
|
|
96
|
+
candidateStartFrame: number;
|
|
97
|
+
durationFrames: number;
|
|
98
|
+
startSnap: SnapResult;
|
|
99
|
+
endSnap: SnapResult;
|
|
100
|
+
}): {
|
|
101
|
+
startFrame: number;
|
|
102
|
+
point: SnapPoint | null;
|
|
103
|
+
};
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seams between the timeline editor's engine, media pipeline, and components.
|
|
3
|
+
* Everything here is interface-only so the three layers build independently
|
|
4
|
+
* and products can substitute any layer (e.g. a different frame provider)
|
|
5
|
+
* without forking the editor.
|
|
6
|
+
*
|
|
7
|
+
* Persistence model: the command stack executes optimistically against local
|
|
8
|
+
* timeline state and emits the equivalent `SequenceOperation[]` through
|
|
9
|
+
* `TimelineEditorProps.onApplyOperations`. A rejected promise rolls the
|
|
10
|
+
* command back — the server stays the source of truth, the editor stays
|
|
11
|
+
* responsive.
|
|
12
|
+
*/
|
|
13
|
+
import type { SequenceApplyResult } from '../sequences/apply';
|
|
14
|
+
import type { SequenceClip, SequenceTimeline } from '../sequences/model';
|
|
15
|
+
import type { SequenceOperation } from '../sequences/operations';
|
|
16
|
+
/** One undoable edit. `execute`/`undo` mutate ONLY local editor state; the
|
|
17
|
+
* emitted operations are the durable form sent to the product. */
|
|
18
|
+
export interface TimelineCommand {
|
|
19
|
+
label: string;
|
|
20
|
+
execute(state: EditorTimelineState): EditorTimelineState;
|
|
21
|
+
undo(state: EditorTimelineState): EditorTimelineState;
|
|
22
|
+
/** Durable operations equivalent to `execute` (sent on commit). */
|
|
23
|
+
operations(): SequenceOperation[];
|
|
24
|
+
/** Durable operations equivalent to `undo` (sent when the user undoes a
|
|
25
|
+
* committed command). */
|
|
26
|
+
inverseOperations(): SequenceOperation[];
|
|
27
|
+
}
|
|
28
|
+
/** Local editor state — the timeline plus volatile view state the server
|
|
29
|
+
* never sees. */
|
|
30
|
+
export interface EditorTimelineState {
|
|
31
|
+
timeline: SequenceTimeline;
|
|
32
|
+
playheadFrame: number;
|
|
33
|
+
selectedClipIds: string[];
|
|
34
|
+
zoom: number;
|
|
35
|
+
scrollLeft: number;
|
|
36
|
+
}
|
|
37
|
+
/** Manage and track command execution with undo, redo, state subscription, and timeline reset capabilities */
|
|
38
|
+
export interface CommandStack {
|
|
39
|
+
execute(command: TimelineCommand): void;
|
|
40
|
+
undo(): void;
|
|
41
|
+
redo(): void;
|
|
42
|
+
canUndo(): boolean;
|
|
43
|
+
canRedo(): boolean;
|
|
44
|
+
/** Subscribe to state changes; returns an unsubscribe. */
|
|
45
|
+
subscribe(listener: () => void): () => void;
|
|
46
|
+
getState(): EditorTimelineState;
|
|
47
|
+
/** Replace timeline state from a server refresh WITHOUT clearing history. */
|
|
48
|
+
reset(timeline: SequenceTimeline): void;
|
|
49
|
+
}
|
|
50
|
+
/** Exponential zoom mapping so the slider feels linear across a 10x+ range.
|
|
51
|
+
* zoom = pixels per frame. */
|
|
52
|
+
export interface ZoomMath {
|
|
53
|
+
sliderToZoom(slider: number): number;
|
|
54
|
+
zoomToSlider(zoom: number): number;
|
|
55
|
+
minZoom: number;
|
|
56
|
+
maxZoom: number;
|
|
57
|
+
}
|
|
58
|
+
/** Define a point in a timeline where snapping occurs based on frame and kind */
|
|
59
|
+
export interface SnapPoint {
|
|
60
|
+
frame: number;
|
|
61
|
+
kind: 'clip-start' | 'clip-end' | 'playhead' | 'sequence-end';
|
|
62
|
+
}
|
|
63
|
+
/** Describe the result of snapping a point to a frame including success status and snapped point details */
|
|
64
|
+
export interface SnapResult {
|
|
65
|
+
frame: number;
|
|
66
|
+
snapped: boolean;
|
|
67
|
+
point: SnapPoint | null;
|
|
68
|
+
}
|
|
69
|
+
/** rAF-driven playback clock. `performance.now()` deltas drive the playhead;
|
|
70
|
+
* emits one callback per animation frame while playing. */
|
|
71
|
+
export interface PlaybackClock {
|
|
72
|
+
play(): void;
|
|
73
|
+
pause(): void;
|
|
74
|
+
seek(frame: number): void;
|
|
75
|
+
isPlaying(): boolean;
|
|
76
|
+
getFrame(): number;
|
|
77
|
+
subscribe(listener: (frame: number) => void): () => void;
|
|
78
|
+
dispose(): void;
|
|
79
|
+
}
|
|
80
|
+
/** Supplies decoded frames for preview rendering. The baseline implementation
|
|
81
|
+
* seeks an off-DOM HTMLVideoElement (works everywhere); a WebCodecs
|
|
82
|
+
* implementation can replace it behind the same seam. */
|
|
83
|
+
export interface VideoFrameProvider {
|
|
84
|
+
/** Draw the frame at `sourceSeconds` into `ctx` at the given rect. Resolves
|
|
85
|
+
* when the frame is painted; rejects when the media cannot be decoded. */
|
|
86
|
+
drawFrame(mediaUrl: string, sourceSeconds: number, ctx: CanvasRenderingContext2D, rect: {
|
|
87
|
+
x: number;
|
|
88
|
+
y: number;
|
|
89
|
+
width: number;
|
|
90
|
+
height: number;
|
|
91
|
+
}): Promise<void>;
|
|
92
|
+
/** Pre-warm a media URL so the first `drawFrame` doesn't stall. */
|
|
93
|
+
prefetch(mediaUrl: string): void;
|
|
94
|
+
dispose(): void;
|
|
95
|
+
}
|
|
96
|
+
/** min/max sample peaks per pixel bucket for waveform rendering. */
|
|
97
|
+
export interface WaveformData {
|
|
98
|
+
peaks: Float32Array;
|
|
99
|
+
/** Samples represented per peak pair. */
|
|
100
|
+
samplesPerBucket: number;
|
|
101
|
+
durationSeconds: number;
|
|
102
|
+
}
|
|
103
|
+
/** Represent a segment of transcription with text and start and end times in seconds */
|
|
104
|
+
export interface TranscriptionSegment {
|
|
105
|
+
text: string;
|
|
106
|
+
startSeconds: number;
|
|
107
|
+
endSeconds: number;
|
|
108
|
+
}
|
|
109
|
+
/** Whisper-in-a-worker contract. Implementations dynamically import the model
|
|
110
|
+
* runtime; `available` is false when the optional peer is not installed. */
|
|
111
|
+
export interface TranscriptionProvider {
|
|
112
|
+
available: boolean;
|
|
113
|
+
transcribe(mediaUrl: string, opts?: {
|
|
114
|
+
language?: string;
|
|
115
|
+
onProgress?: (fraction: number) => void;
|
|
116
|
+
}): Promise<TranscriptionSegment[]>;
|
|
117
|
+
}
|
|
118
|
+
/** Overridable copy for the editor's product-facing labels. Every field is
|
|
119
|
+
* optional; the editor ships clear defaults (see `DEFAULT_TIMELINE_LABELS`).
|
|
120
|
+
* Accessible names (the `*AriaLabel` fields) stay descriptive for screen
|
|
121
|
+
* readers; the short visible labels carry the on-screen verb. Products rename
|
|
122
|
+
* per their own vocabulary without forking the component. */
|
|
123
|
+
export interface TimelineEditorLabels {
|
|
124
|
+
/** Visible verb on the split-at-playhead tool. */
|
|
125
|
+
splitClip?: string;
|
|
126
|
+
splitClipAriaLabel?: string;
|
|
127
|
+
/** Visible verb on the add-caption-at-playhead tool. */
|
|
128
|
+
addCaption?: string;
|
|
129
|
+
addCaptionAriaLabel?: string;
|
|
130
|
+
/** Visible verb on the export action (rendered only when `onCreateExport`). */
|
|
131
|
+
createExport?: string;
|
|
132
|
+
/** Empty-state heading + the three doors. */
|
|
133
|
+
emptyTitle?: string;
|
|
134
|
+
emptyBody?: string;
|
|
135
|
+
emptyTemplateDoor?: string;
|
|
136
|
+
emptyClipDoor?: string;
|
|
137
|
+
emptyAgentDoor?: string;
|
|
138
|
+
/** Phone gate shown instead of the gesture-heavy editor below `sm`. */
|
|
139
|
+
smallScreenTitle?: string;
|
|
140
|
+
smallScreenBody?: string;
|
|
141
|
+
/** Ghost-lane names shown at rest so time reads as a timeline before any
|
|
142
|
+
* track exists. */
|
|
143
|
+
ghostVideoLane?: string;
|
|
144
|
+
ghostCaptionLane?: string;
|
|
145
|
+
}
|
|
146
|
+
/** Define properties and callbacks for editing and applying operations on a sequence timeline */
|
|
147
|
+
export interface TimelineEditorProps {
|
|
148
|
+
timeline: SequenceTimeline;
|
|
149
|
+
canWrite: boolean;
|
|
150
|
+
/** Persist operations the user produced. Reject to roll the edit back.
|
|
151
|
+
* Resolve with the per-operation `SequenceApplyResult[]` (what
|
|
152
|
+
* `applySequenceOperations` returns, index-aligned with `operations`) so
|
|
153
|
+
* the editor can reconcile its optimistic `local-…` clip ids to the
|
|
154
|
+
* server-minted ids — without it, undoing a committed place/split/caption
|
|
155
|
+
* after a timeline refresh emits operations the server cannot resolve.
|
|
156
|
+
* Resolving void skips reconciliation. */
|
|
157
|
+
onApplyOperations(operations: SequenceOperation[]): Promise<SequenceApplyResult[] | void>;
|
|
158
|
+
/** Selection + playhead surface to the host (e.g. to attach agent context). */
|
|
159
|
+
onSelectionChange?(clips: SequenceClip[]): void;
|
|
160
|
+
onPlayheadChange?(frame: number): void;
|
|
161
|
+
/** Host-rendered side panel (agent chat) and shelf (draggable assets). */
|
|
162
|
+
renderSidePanel?(ctx: {
|
|
163
|
+
selectedClips: SequenceClip[];
|
|
164
|
+
playheadFrame: number;
|
|
165
|
+
}): React.ReactNode;
|
|
166
|
+
renderAssetShelf?(): React.ReactNode;
|
|
167
|
+
/** Frame provider override; omitted → the baseline HTMLVideoElement provider. */
|
|
168
|
+
frameProvider?: VideoFrameProvider;
|
|
169
|
+
/** Overridable product-facing copy; defaults are clear on their own. */
|
|
170
|
+
labels?: TimelineEditorLabels;
|
|
171
|
+
/** Empty-state doors. Supplying a handler renders that door; omitting it
|
|
172
|
+
* hides it. With none supplied the empty state shows guidance only. */
|
|
173
|
+
onStartFromTemplate?(): void;
|
|
174
|
+
onAddClip?(): void;
|
|
175
|
+
onAskAgent?(): void;
|
|
176
|
+
/** Render the export action (a toolbar "Export…" button). Omitted → no export
|
|
177
|
+
* affordance. The handler owns the dialog/flow; this surface only invokes it. */
|
|
178
|
+
onCreateExport?(): void;
|
|
179
|
+
/** Off by default. When true AND the consuming product supplies a branded
|
|
180
|
+
* export pipeline, the export door/button is marked as Tangle-branded. This
|
|
181
|
+
* surface has no render pipeline of its own to brand, so the flag is a
|
|
182
|
+
* forward-compatible hint to `onCreateExport`, never a baked watermark. */
|
|
183
|
+
brandedExport?: boolean;
|
|
184
|
+
className?: string;
|
|
185
|
+
}
|
|
186
|
+
/** Provide default labels and accessibility text for timeline editor UI elements */
|
|
187
|
+
export declare const DEFAULT_TIMELINE_LABELS: Required<TimelineEditorLabels>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Undo/redo command stack over immutable `EditorTimelineState`.
|
|
3
|
+
*
|
|
4
|
+
* Invariant that makes `reset()` safe: history entries hold COMMANDS — each a
|
|
5
|
+
* pair of state transforms plus the durable operations captured at
|
|
6
|
+
* construction — never state snapshots. Rebasing the timeline from a server
|
|
7
|
+
* refresh therefore cannot stale the history: a later undo re-applies the
|
|
8
|
+
* command's inverse transform to whatever timeline is current. If a rebase
|
|
9
|
+
* removed a clip a historical command targets, that command's transform throws
|
|
10
|
+
* (fail loud) rather than silently editing the wrong clip — the host decides
|
|
11
|
+
* whether to drop history at that point.
|
|
12
|
+
*/
|
|
13
|
+
import type { SequenceTimeline } from '../../sequences/model';
|
|
14
|
+
import type { CommandStack } from '../contracts';
|
|
15
|
+
/** Oldest entries are dropped past this bound; redo is cleared on execute. */
|
|
16
|
+
export declare const COMMAND_HISTORY_LIMIT = 200;
|
|
17
|
+
/** Create a command stack managing undo and redo operations for a given timeline */
|
|
18
|
+
export declare function createCommandStack(initial: SequenceTimeline): CommandStack;
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Concrete `TimelineCommand` factories. Every factory captures the inverse
|
|
3
|
+
* from PRE-state at construction — undo is a value computed once, never a
|
|
4
|
+
* re-derivation from whatever state exists later. Local execute/undo update
|
|
5
|
+
* `EditorTimelineState` immutably; `operations()`/`inverseOperations()` return
|
|
6
|
+
* the durable `SequenceOperation[]` equivalent, built per call from captured
|
|
7
|
+
* primitives so callers can never alias command internals.
|
|
8
|
+
*
|
|
9
|
+
* Id boundary: `place_clip`, `add_caption`, and `split_clip` mint clip ids
|
|
10
|
+
* server-side, so factories that create local clips take a caller-minted id.
|
|
11
|
+
* Every factory also takes an optional `resolveClipId` — a LIVE local→server
|
|
12
|
+
* alias lookup the host feeds from `onApplyOperations` results. Resolution
|
|
13
|
+
* runs at execute/undo/emission time (never at construction), so a command
|
|
14
|
+
* captured against an optimistic `local-…` id keeps working after a server
|
|
15
|
+
* refresh replaced it with the minted id. Residual boundary: clips a durable
|
|
16
|
+
* undo recreates (e.g. the `place_clip` inverse of a delete) mint FRESH
|
|
17
|
+
* server ids that only the next refresh reconciles.
|
|
18
|
+
*
|
|
19
|
+
* Transforms re-resolve their target clip at execute/undo time and throw when
|
|
20
|
+
* it no longer exists (e.g. removed by a `reset()` rebase) — editing a wrong
|
|
21
|
+
* or absent clip silently would corrupt the durable op stream.
|
|
22
|
+
*/
|
|
23
|
+
import { type SequenceTimeline } from '../../sequences/model';
|
|
24
|
+
import type { TimelineCommand } from '../contracts';
|
|
25
|
+
/** Live local→server clip-id lookup (see module header). Must return its
|
|
26
|
+
* argument when no alias exists. */
|
|
27
|
+
export type ClipIdResolver = (clipId: string) => string;
|
|
28
|
+
/** Define input parameters to move a clip within a timeline including optional track and resolver */
|
|
29
|
+
export interface MoveClipInput {
|
|
30
|
+
timeline: SequenceTimeline;
|
|
31
|
+
clipId: string;
|
|
32
|
+
startFrame: number;
|
|
33
|
+
/** Omitted → stays on its current track. */
|
|
34
|
+
trackId?: string;
|
|
35
|
+
resolveClipId?: ClipIdResolver;
|
|
36
|
+
}
|
|
37
|
+
/** Drag-move. The target start clamps through the model's `clampClipStart`
|
|
38
|
+
* so drags past either edge land at the boundary instead of throwing
|
|
39
|
+
* mid-gesture; the emitted operation carries the clamped value. */
|
|
40
|
+
export declare function moveClipCommand(input: MoveClipInput): TimelineCommand;
|
|
41
|
+
/** Define input parameters for trimming a clip within a sequence timeline */
|
|
42
|
+
export interface TrimClipInput {
|
|
43
|
+
timeline: SequenceTimeline;
|
|
44
|
+
clipId: string;
|
|
45
|
+
startFrame: number;
|
|
46
|
+
durationFrames: number;
|
|
47
|
+
/** New source in-point when trimming the head; omitted → unchanged. */
|
|
48
|
+
sourceInFrame?: number;
|
|
49
|
+
resolveClipId?: ClipIdResolver;
|
|
50
|
+
}
|
|
51
|
+
/** Trim is strict where move is forgiving: the caller (a trim handle) already
|
|
52
|
+
* knows both edges, so out-of-bounds input is a bug, not a gesture. */
|
|
53
|
+
export declare function trimClipCommand(input: TrimClipInput): TimelineCommand;
|
|
54
|
+
/** Define input parameters required to place a clip within a sequence timeline */
|
|
55
|
+
export interface PlaceClipInput {
|
|
56
|
+
timeline: SequenceTimeline;
|
|
57
|
+
/** Caller-minted optimistic id for the local clip (see module header). */
|
|
58
|
+
clipId: string;
|
|
59
|
+
trackId: string;
|
|
60
|
+
label: string;
|
|
61
|
+
startFrame: number;
|
|
62
|
+
durationFrames: number;
|
|
63
|
+
/** Omitted → 0 (start of the source). */
|
|
64
|
+
sourceInFrame?: number;
|
|
65
|
+
media?: {
|
|
66
|
+
url: string;
|
|
67
|
+
kind: 'video' | 'image' | 'audio';
|
|
68
|
+
};
|
|
69
|
+
generationId?: string;
|
|
70
|
+
assetId?: string;
|
|
71
|
+
metadata?: Record<string, unknown>;
|
|
72
|
+
resolveClipId?: ClipIdResolver;
|
|
73
|
+
}
|
|
74
|
+
/** Resolve and validate clip placement parameters to create a timeline command */
|
|
75
|
+
export declare function placeClipCommand(input: PlaceClipInput): TimelineCommand;
|
|
76
|
+
/** Define input parameters required to delete a clip from a sequence timeline */
|
|
77
|
+
export interface DeleteClipInput {
|
|
78
|
+
timeline: SequenceTimeline;
|
|
79
|
+
clipId: string;
|
|
80
|
+
resolveClipId?: ClipIdResolver;
|
|
81
|
+
}
|
|
82
|
+
/** Snapshots the full clip at construction so undo restores it exactly. The
|
|
83
|
+
* durable inverse rebuilds within the closed operation union: caption clips
|
|
84
|
+
* (caption track + text) invert through `add_caption` — `place_clip` cannot
|
|
85
|
+
* carry text/language — everything else through `place_clip` with media,
|
|
86
|
+
* product references, source window, and disabled state intact. Boundary:
|
|
87
|
+
* the caption path cannot carry `disabled` or `metadata`, so a deleted
|
|
88
|
+
* disabled caption resurrects ENABLED server-side and caption metadata is
|
|
89
|
+
* lost — local undo stays exact (same class of loss as the `set_clip_text`
|
|
90
|
+
* language-clear boundary). */
|
|
91
|
+
export declare function deleteClipCommand(input: DeleteClipInput): TimelineCommand;
|
|
92
|
+
/** Define input parameters for splitting a clip at a specific frame within a timeline */
|
|
93
|
+
export interface SplitClipInput {
|
|
94
|
+
timeline: SequenceTimeline;
|
|
95
|
+
clipId: string;
|
|
96
|
+
/** Sequence-frame to cut at; must fall strictly inside the clip. */
|
|
97
|
+
atFrame: number;
|
|
98
|
+
/** Caller-minted id for the second (tail) clip. */
|
|
99
|
+
newClipId: string;
|
|
100
|
+
resolveClipId?: ClipIdResolver;
|
|
101
|
+
}
|
|
102
|
+
/** Source mapping is 1:1 frames (no rate ramps in the model), so the tail's
|
|
103
|
+
* source in-point is the head's in-point advanced by the head duration. */
|
|
104
|
+
export declare function splitClipCommand(input: SplitClipInput): TimelineCommand;
|
|
105
|
+
/** Define input parameters for adding a caption clip to a sequence timeline */
|
|
106
|
+
export interface AddCaptionInput {
|
|
107
|
+
timeline: SequenceTimeline;
|
|
108
|
+
/** Caller-minted optimistic id for the local caption clip. */
|
|
109
|
+
clipId: string;
|
|
110
|
+
/** Editor commands are concrete: the caller resolves placement (e.g. via
|
|
111
|
+
* `chooseCaptionPlacement`) and the target track before constructing. */
|
|
112
|
+
trackId: string;
|
|
113
|
+
text: string;
|
|
114
|
+
language?: string;
|
|
115
|
+
startFrame: number;
|
|
116
|
+
durationFrames: number;
|
|
117
|
+
resolveClipId?: ClipIdResolver;
|
|
118
|
+
}
|
|
119
|
+
/** Resolve a command to add a caption to a specified caption track within a timeline */
|
|
120
|
+
export declare function addCaptionCommand(input: AddCaptionInput): TimelineCommand;
|
|
121
|
+
/** Define input parameters for setting text and optional language on a specific clip in a timeline */
|
|
122
|
+
export interface SetClipTextInput {
|
|
123
|
+
timeline: SequenceTimeline;
|
|
124
|
+
clipId: string;
|
|
125
|
+
text: string;
|
|
126
|
+
/** Omitted → language unchanged. */
|
|
127
|
+
language?: string;
|
|
128
|
+
resolveClipId?: ClipIdResolver;
|
|
129
|
+
}
|
|
130
|
+
/** Requires the clip to already carry text: `set_clip_text` has no "create"
|
|
131
|
+
* semantics in the union, and an inverse for a text-less clip would have to
|
|
132
|
+
* invent an empty string. Boundary: when the clip had NO language and this
|
|
133
|
+
* command sets one, local undo restores `undefined` exactly but the durable
|
|
134
|
+
* inverse cannot clear language (the op has no clear form) — flagged to the
|
|
135
|
+
* apply layer. */
|
|
136
|
+
export declare function setClipTextCommand(input: SetClipTextInput): TimelineCommand;
|
|
137
|
+
/** Define input parameters to toggle the disabled state of a clip within a timeline */
|
|
138
|
+
export interface ToggleClipDisabledInput {
|
|
139
|
+
timeline: SequenceTimeline;
|
|
140
|
+
clipId: string;
|
|
141
|
+
resolveClipId?: ClipIdResolver;
|
|
142
|
+
}
|
|
143
|
+
/** The target value is captured at construction (not flipped at execute time)
|
|
144
|
+
* so redo after a rebase applies the same durable op the stack already
|
|
145
|
+
* emitted. */
|
|
146
|
+
export declare function toggleClipDisabledCommand(input: ToggleClipDisabledInput): TimelineCommand;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* rAF playback clock. The playhead is derived from a (start time, start
|
|
3
|
+
* frame) anchor and `performance.now()` deltas — never from per-tick
|
|
4
|
+
* increments — so dropped animation frames cannot accumulate drift.
|
|
5
|
+
*
|
|
6
|
+
* Browser-only at PLAY time, import-safe everywhere: `requestAnimationFrame`
|
|
7
|
+
* and `performance` are resolved off `globalThis` when playback starts, never
|
|
8
|
+
* at module load or construction, so server bundles that import the editor
|
|
9
|
+
* engine do not crash.
|
|
10
|
+
*/
|
|
11
|
+
import type { PlaybackClock } from '../contracts';
|
|
12
|
+
/** Define configuration settings for playback clock including frames per second and total duration frames */
|
|
13
|
+
export interface PlaybackClockConfig {
|
|
14
|
+
fps: number;
|
|
15
|
+
durationFrames: number;
|
|
16
|
+
}
|
|
17
|
+
/** Create a playback clock that manages frame timing and playback state based on configuration */
|
|
18
|
+
export declare function createPlaybackClock(config: PlaybackClockConfig): PlaybackClock;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Drag snapping. Snap points come from the timeline's structure (clip edges,
|
|
3
|
+
* playhead, sequence end); the snap THRESHOLD is measured in screen pixels at
|
|
4
|
+
* the current zoom — what feels "close" is a screen distance, not a frame
|
|
5
|
+
* count — and converts to frames as thresholdPx / zoom.
|
|
6
|
+
*/
|
|
7
|
+
import type { SequenceTimeline } from '../../sequences/model';
|
|
8
|
+
import type { SnapPoint, SnapResult } from '../contracts';
|
|
9
|
+
/** Snap point with its owning clip when it came from one, so a drag can
|
|
10
|
+
* exclude the dragged clip's own edges. Structurally a `SnapPoint`. */
|
|
11
|
+
export interface TimelineSnapPoint extends SnapPoint {
|
|
12
|
+
clipId?: string;
|
|
13
|
+
}
|
|
14
|
+
/** Disabled clips still occupy timeline space visually, so their edges remain
|
|
15
|
+
* snap targets. */
|
|
16
|
+
export declare function collectSnapPoints(timeline: SequenceTimeline, playheadFrame: number): TimelineSnapPoint[];
|
|
17
|
+
/** Define options to configure snapping behavior including zoom, threshold, and exclusion criteria */
|
|
18
|
+
export interface ApplySnapOptions {
|
|
19
|
+
/** Pixels per frame — converts the pixel threshold into frames. */
|
|
20
|
+
zoom: number;
|
|
21
|
+
/** Screen-distance threshold; 10px matches the editor's hit-slop. */
|
|
22
|
+
thresholdPx?: number;
|
|
23
|
+
/** Return true to remove a point from consideration (e.g. the dragged
|
|
24
|
+
* clip's own edges via `TimelineSnapPoint.clipId`). */
|
|
25
|
+
exclude?: (point: SnapPoint) => boolean;
|
|
26
|
+
}
|
|
27
|
+
/** Nearest candidate wins; ties keep the first candidate in `points` order
|
|
28
|
+
* (sorted by frame from `collectSnapPoints`, so the lower frame). */
|
|
29
|
+
export declare function applySnap(frame: number, points: SnapPoint[], opts: ApplySnapOptions): SnapResult;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zoom + viewport coordinate math. Zoom is PIXELS PER FRAME; the slider is a
|
|
3
|
+
* normalized [0, 1] control mapped exponentially (zoom = min·(max/min)^slider)
|
|
4
|
+
* so each slider step multiplies the scale by a constant factor — linear
|
|
5
|
+
* slider feel across a 10x+ range.
|
|
6
|
+
*/
|
|
7
|
+
import type { ZoomMath } from '../contracts';
|
|
8
|
+
/** Define configuration settings for minimum and maximum zoom levels */
|
|
9
|
+
export interface ZoomMathConfig {
|
|
10
|
+
minZoom: number;
|
|
11
|
+
maxZoom: number;
|
|
12
|
+
}
|
|
13
|
+
/** Create a ZoomMath object that validates config and calculates zoom ratio within bounds */
|
|
14
|
+
export declare function createZoomMath(config: ZoomMathConfig): ZoomMath;
|
|
15
|
+
/** Horizontal viewport: zoom in pixels per frame, scrollLeft in pixels. */
|
|
16
|
+
export interface ViewportTransform {
|
|
17
|
+
zoom: number;
|
|
18
|
+
scrollLeft: number;
|
|
19
|
+
}
|
|
20
|
+
/** Frame → viewport-relative pixel x. Output is fractional; round through
|
|
21
|
+
* `snapPixel` before drawing. */
|
|
22
|
+
export declare function frameToPixel(frame: number, view: ViewportTransform): number;
|
|
23
|
+
/** Viewport-relative pixel x → integer frame. Frames are integer positions,
|
|
24
|
+
* so the result rounds to the nearest frame and floors at 0 (a pointer left
|
|
25
|
+
* of frame 0 resolves to 0). */
|
|
26
|
+
export declare function pixelToFrame(pixel: number, view: ViewportTransform): number;
|
|
27
|
+
/** Snap a CSS-pixel value to the device pixel grid so 1px timeline rules
|
|
28
|
+
* render crisp on fractional-DPR displays. */
|
|
29
|
+
export declare function snapPixel(value: number, devicePixelRatio: number): number;
|