@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
|
@@ -1,6 +1,21 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Lazy-loaded entry points for the design canvas editor. Products that do not
|
|
3
|
+
* need the editor on initial load import `DesignCanvasLazy` (the batteries-
|
|
4
|
+
* included composition) or `DesignCanvasChromeLazy` (raw chrome only) instead
|
|
5
|
+
* of importing the components directly. Each chunk loads on first render; a
|
|
6
|
+
* Suspense boundary in the product provides the fallback.
|
|
7
|
+
*
|
|
8
|
+
* `DesignCanvasLazy` — `DesignCanvasEditor`: chrome + workspace sharing one
|
|
9
|
+
* command stack. This is what products mount.
|
|
10
|
+
*
|
|
11
|
+
* `DesignCanvasChromeLazy` — `DesignCanvas`: raw chrome with render-prop API.
|
|
12
|
+
* Use when the product supplies its own `renderWorkspace` and `renderThumbnail`.
|
|
13
|
+
*/
|
|
14
|
+
import type { DesignCanvasFullProps } from './components/DesignCanvas';
|
|
15
|
+
import type { DesignCanvasProps } from './contracts';
|
|
16
|
+
export type { DesignCanvasFullProps };
|
|
17
|
+
export type { DesignCanvasProps };
|
|
18
|
+
/** Batteries-included editor: chrome + workspace on one shared stack. */
|
|
19
|
+
export declare const DesignCanvasLazy: import("react").LazyExoticComponent<typeof import("./components").DesignCanvasEditor>;
|
|
20
|
+
/** Raw chrome only — use when supplying a custom renderWorkspace/renderThumbnail. */
|
|
21
|
+
export declare const DesignCanvasChromeLazy: import("react").LazyExoticComponent<typeof import("./components").DesignCanvas>;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOCX → plain text, one paragraph per line.
|
|
3
|
+
*
|
|
4
|
+
* The main document part is resolved through the OPC relationship graph
|
|
5
|
+
* (`_rels/.rels` → the `officeDocument` relationship's target) rather than
|
|
6
|
+
* assuming `word/document.xml`, because the part name is a producer's choice,
|
|
7
|
+
* not a constant.
|
|
8
|
+
*
|
|
9
|
+
* WordprocessingML text lives in `<w:t>` runs. Everything else is markup, with
|
|
10
|
+
* four exceptions that carry meaning a reader would otherwise lose: `<w:tab/>`,
|
|
11
|
+
* `<w:br/>`, `<w:cr/>`, and the paragraph boundary `</w:p>`. Two element bodies
|
|
12
|
+
* are deliberately DROPPED — `<w:instrText>` (field instruction codes such as
|
|
13
|
+
* `HYPERLINK "…"`, which are machinery, not prose) and `<w:delText>` (text a
|
|
14
|
+
* tracked-changes revision deleted; extracting it would show a reader words the
|
|
15
|
+
* author removed).
|
|
16
|
+
*
|
|
17
|
+
* One line per paragraph, not blank-line-separated paragraphs: extractors
|
|
18
|
+
* downstream match line-anchored patterns against form and contract text, so a
|
|
19
|
+
* predictable line structure is the useful shape.
|
|
20
|
+
*/
|
|
21
|
+
import type { DocumentOutcome, DocxExtractionDetail } from './types';
|
|
22
|
+
import { type ReadZipEntryOptions } from './zip';
|
|
23
|
+
/** Resolve XML character/entity references. Unknown entities are left verbatim
|
|
24
|
+
* rather than dropped, so nothing silently disappears from a document. */
|
|
25
|
+
export declare function decodeXmlEntities(input: string): string;
|
|
26
|
+
export interface DocxText {
|
|
27
|
+
readonly text: string;
|
|
28
|
+
readonly paragraphCount: number;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Walk WordprocessingML and emit its readable text.
|
|
32
|
+
*
|
|
33
|
+
* Hand-scanned rather than regex-split because comments and CDATA sections may
|
|
34
|
+
* contain `>`; a `/<[^>]*>/` scan ends the tag early on the first one and
|
|
35
|
+
* corrupts everything after it.
|
|
36
|
+
*/
|
|
37
|
+
export declare function wordprocessingXmlToText(xml: string): DocxText;
|
|
38
|
+
/**
|
|
39
|
+
* Extract the readable text of a `.docx` / `.docm` package. Every failure names
|
|
40
|
+
* the archive-level cause; a package this cannot read is an error, never an
|
|
41
|
+
* empty document.
|
|
42
|
+
*
|
|
43
|
+
* `zip.maxUncompressedBytes` bounds what each part may expand to. It defaults
|
|
44
|
+
* to the zip reader's own ceiling, which is what keeps a deflate bomb inside a
|
|
45
|
+
* small `.docx` a typed error instead of an out-of-memory crash.
|
|
46
|
+
*/
|
|
47
|
+
export declare function extractDocxText(bytes: Uint8Array, mediaType: string, zip?: ReadZipEntryOptions): Promise<DocumentOutcome<{
|
|
48
|
+
text: string;
|
|
49
|
+
detail: DocxExtractionDetail;
|
|
50
|
+
}>>;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The extraction pipeline: size gate → media type → (PDF: classify, then
|
|
3
|
+
* extract) / (DOCX: OPC read) / (text: strict decode).
|
|
4
|
+
*
|
|
5
|
+
* Two rules make this safe to build a product on.
|
|
6
|
+
*
|
|
7
|
+
* 1. **Classify before extracting a PDF.** The wasm engine's `extractText`
|
|
8
|
+
* panics (`RuntimeError: unreachable`) on any page with no text layer, and
|
|
9
|
+
* that is measured, not theoretical — including on `mixed` documents where
|
|
10
|
+
* only ONE page is an image. Classification runs first and decides whether
|
|
11
|
+
* extraction is even reachable, which is also what produces the OCR signal.
|
|
12
|
+
* 2. **A scanned PDF is `pdf-needs-ocr`, never an empty string.** Both hand-
|
|
13
|
+
* rolled predecessors of this module got this right and it is the single
|
|
14
|
+
* behaviour a product cannot afford to lose: silent empty text lets a
|
|
15
|
+
* downstream model answer confidently about a document nobody read.
|
|
16
|
+
*/
|
|
17
|
+
import type { DocumentOutcome, ExtractedDocument, PdfClassification, PdfEngine, PdfTextFormat } from './types';
|
|
18
|
+
/** 25 MB — the cap both predecessor implementations converged on, and roughly
|
|
19
|
+
* the point where a Worker's memory budget stops tolerating a full decode. */
|
|
20
|
+
export declare const DEFAULT_MAX_DOCUMENT_BYTES: number;
|
|
21
|
+
export interface ExtractDocumentOptions {
|
|
22
|
+
/** The type the upload declared. Falls back to `filename`'s extension when
|
|
23
|
+
* missing or `application/octet-stream`. */
|
|
24
|
+
readonly mediaType?: string;
|
|
25
|
+
/** Used to resolve the media type, and named in error messages. */
|
|
26
|
+
readonly filename?: string;
|
|
27
|
+
/** Required to extract PDFs. Supplied by the caller because the wasm asset
|
|
28
|
+
* must come from the consumer's bundler — see
|
|
29
|
+
* `@tangle-network/agent-app/documents/pdf-inspector`. */
|
|
30
|
+
readonly pdf?: PdfEngine;
|
|
31
|
+
/** Byte cap on the uploaded ARCHIVE, default
|
|
32
|
+
* {@link DEFAULT_MAX_DOCUMENT_BYTES}. */
|
|
33
|
+
readonly maxBytes?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Byte cap on what any ONE part of an Office package may expand to, default
|
|
36
|
+
* {@link DEFAULT_MAX_ZIP_ENTRY_BYTES}.
|
|
37
|
+
*
|
|
38
|
+
* A separate dial from {@link maxBytes} because they bound different things:
|
|
39
|
+
* deflate reaches ~1000:1 on repetitive input, so capping the upload does
|
|
40
|
+
* nothing to cap the decompression it asks for.
|
|
41
|
+
*/
|
|
42
|
+
readonly maxUncompressedPartBytes?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Plain text (default) preserves source line breaks, which line-anchored
|
|
45
|
+
* parsers depend on; markdown carries headings and page markers but reflows
|
|
46
|
+
* lines into paragraphs.
|
|
47
|
+
*
|
|
48
|
+
* A *preference*, because of exactly one measured case: on a partially
|
|
49
|
+
* scanned PDF the plain-text engine panics, and only the markdown engine can
|
|
50
|
+
* recover the pages that do have text. The result reports what you actually
|
|
51
|
+
* got in {@link PdfExtractionDetail.textFormat} — check it when the
|
|
52
|
+
* distinction matters.
|
|
53
|
+
*/
|
|
54
|
+
readonly preferredPdfFormat?: PdfTextFormat;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Classify a PDF: whether it has a text layer, and which pages do not.
|
|
58
|
+
*
|
|
59
|
+
* Safe on every input — classification is what makes extraction safe, so it can
|
|
60
|
+
* never be the thing that panics. Call this directly when a product wants to
|
|
61
|
+
* show "3 of 40 pages need OCR" before deciding to extract.
|
|
62
|
+
*/
|
|
63
|
+
export declare function classifyPdfDocument(bytes: Uint8Array, pdf: PdfEngine): DocumentOutcome<PdfClassification>;
|
|
64
|
+
/**
|
|
65
|
+
* Extract a document's text.
|
|
66
|
+
*
|
|
67
|
+
* Every failure is a typed {@link DocumentExtractionError} naming the stage it
|
|
68
|
+
* stopped at; nothing throws, and success never carries empty text.
|
|
69
|
+
*/
|
|
70
|
+
export declare function extractDocument(input: ArrayBuffer | Uint8Array, options?: ExtractDocumentOptions): Promise<DocumentOutcome<ExtractedDocument>>;
|
|
71
|
+
export interface DocumentExtractorConfig {
|
|
72
|
+
readonly pdf?: PdfEngine;
|
|
73
|
+
readonly maxBytes?: number;
|
|
74
|
+
readonly maxUncompressedPartBytes?: number;
|
|
75
|
+
readonly preferredPdfFormat?: PdfTextFormat;
|
|
76
|
+
}
|
|
77
|
+
export interface DocumentExtractor {
|
|
78
|
+
readonly extract: (input: ArrayBuffer | Uint8Array, options?: Omit<ExtractDocumentOptions, 'pdf' | 'maxBytes' | 'maxUncompressedPartBytes' | 'preferredPdfFormat'>) => Promise<DocumentOutcome<ExtractedDocument>>;
|
|
79
|
+
/** Classify a PDF without extracting. Fails with `pdf-engine-unavailable`
|
|
80
|
+
* when the extractor was built without a PDF engine. */
|
|
81
|
+
readonly classifyPdf: (input: ArrayBuffer | Uint8Array) => DocumentOutcome<PdfClassification>;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Bind an engine and limits once, at worker start, so call sites read
|
|
85
|
+
* `documents.extract(bytes, { mediaType })` and never re-wire the wasm.
|
|
86
|
+
*/
|
|
87
|
+
export declare function createDocumentExtractor(config?: DocumentExtractorConfig): DocumentExtractor;
|
|
@@ -1,233 +1,27 @@
|
|
|
1
|
-
import { P as PdfEngine, a as PdfTextFormat, D as DocumentOutcome, E as ExtractedDocument, b as PdfClassification, c as DocxExtractionDetail, d as DocumentFormat } from '../types-DrBidf3O.js';
|
|
2
|
-
export { e as DocumentExtractionError, f as DocumentExtractionErrorCode, g as DocumentExtractionStage, h as PdfContentKind, i as PdfExtractionDetail, j as PdfPageClassification } from '../types-DrBidf3O.js';
|
|
3
|
-
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
*
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
* must come from the consumer's bundler — see
|
|
32
|
-
* `@tangle-network/agent-app/documents/pdf-inspector`. */
|
|
33
|
-
readonly pdf?: PdfEngine;
|
|
34
|
-
/** Byte cap on the uploaded ARCHIVE, default
|
|
35
|
-
* {@link DEFAULT_MAX_DOCUMENT_BYTES}. */
|
|
36
|
-
readonly maxBytes?: number;
|
|
37
|
-
/**
|
|
38
|
-
* Byte cap on what any ONE part of an Office package may expand to, default
|
|
39
|
-
* {@link DEFAULT_MAX_ZIP_ENTRY_BYTES}.
|
|
40
|
-
*
|
|
41
|
-
* A separate dial from {@link maxBytes} because they bound different things:
|
|
42
|
-
* deflate reaches ~1000:1 on repetitive input, so capping the upload does
|
|
43
|
-
* nothing to cap the decompression it asks for.
|
|
44
|
-
*/
|
|
45
|
-
readonly maxUncompressedPartBytes?: number;
|
|
46
|
-
/**
|
|
47
|
-
* Plain text (default) preserves source line breaks, which line-anchored
|
|
48
|
-
* parsers depend on; markdown carries headings and page markers but reflows
|
|
49
|
-
* lines into paragraphs.
|
|
50
|
-
*
|
|
51
|
-
* A *preference*, because of exactly one measured case: on a partially
|
|
52
|
-
* scanned PDF the plain-text engine panics, and only the markdown engine can
|
|
53
|
-
* recover the pages that do have text. The result reports what you actually
|
|
54
|
-
* got in {@link PdfExtractionDetail.textFormat} — check it when the
|
|
55
|
-
* distinction matters.
|
|
56
|
-
*/
|
|
57
|
-
readonly preferredPdfFormat?: PdfTextFormat;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Classify a PDF: whether it has a text layer, and which pages do not.
|
|
61
|
-
*
|
|
62
|
-
* Safe on every input — classification is what makes extraction safe, so it can
|
|
63
|
-
* never be the thing that panics. Call this directly when a product wants to
|
|
64
|
-
* show "3 of 40 pages need OCR" before deciding to extract.
|
|
65
|
-
*/
|
|
66
|
-
declare function classifyPdfDocument(bytes: Uint8Array, pdf: PdfEngine): DocumentOutcome<PdfClassification>;
|
|
67
|
-
/**
|
|
68
|
-
* Extract a document's text.
|
|
69
|
-
*
|
|
70
|
-
* Every failure is a typed {@link DocumentExtractionError} naming the stage it
|
|
71
|
-
* stopped at; nothing throws, and success never carries empty text.
|
|
72
|
-
*/
|
|
73
|
-
declare function extractDocument(input: ArrayBuffer | Uint8Array, options?: ExtractDocumentOptions): Promise<DocumentOutcome<ExtractedDocument>>;
|
|
74
|
-
interface DocumentExtractorConfig {
|
|
75
|
-
readonly pdf?: PdfEngine;
|
|
76
|
-
readonly maxBytes?: number;
|
|
77
|
-
readonly maxUncompressedPartBytes?: number;
|
|
78
|
-
readonly preferredPdfFormat?: PdfTextFormat;
|
|
79
|
-
}
|
|
80
|
-
interface DocumentExtractor {
|
|
81
|
-
readonly extract: (input: ArrayBuffer | Uint8Array, options?: Omit<ExtractDocumentOptions, 'pdf' | 'maxBytes' | 'maxUncompressedPartBytes' | 'preferredPdfFormat'>) => Promise<DocumentOutcome<ExtractedDocument>>;
|
|
82
|
-
/** Classify a PDF without extracting. Fails with `pdf-engine-unavailable`
|
|
83
|
-
* when the extractor was built without a PDF engine. */
|
|
84
|
-
readonly classifyPdf: (input: ArrayBuffer | Uint8Array) => DocumentOutcome<PdfClassification>;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Bind an engine and limits once, at worker start, so call sites read
|
|
88
|
-
* `documents.extract(bytes, { mediaType })` and never re-wire the wasm.
|
|
89
|
-
*/
|
|
90
|
-
declare function createDocumentExtractor(config?: DocumentExtractorConfig): DocumentExtractor;
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* The slice of PKZIP an OOXML package needs: read the central directory, then
|
|
94
|
-
* inflate one named entry.
|
|
95
|
-
*
|
|
96
|
-
* Why not a zip library: DOCX text extraction is the only reason this module
|
|
97
|
-
* needs a zip, and the runtime already supplies the hard part —
|
|
98
|
-
* `DecompressionStream('deflate-raw')` is a standard API present in workerd
|
|
99
|
-
* and in Node, so the whole reader is header arithmetic plus a stream. Pulling
|
|
100
|
-
* a zip package in would put ten transitive Node-shaped dependencies into every
|
|
101
|
-
* consumer's Worker bundle to avoid ~120 lines.
|
|
102
|
-
*
|
|
103
|
-
* The CENTRAL DIRECTORY is the source of truth, not the local headers: an
|
|
104
|
-
* archive written with data descriptors (streamed output) carries zeros for
|
|
105
|
-
* the sizes in its local headers, and reading those is the classic way a
|
|
106
|
-
* hand-rolled zip reader silently returns nothing.
|
|
107
|
-
*/
|
|
108
|
-
type ZipOutcome<T> = {
|
|
109
|
-
succeeded: true;
|
|
110
|
-
value: T;
|
|
111
|
-
} | {
|
|
112
|
-
succeeded: false;
|
|
113
|
-
error: string;
|
|
114
|
-
};
|
|
115
|
-
interface ZipEntry {
|
|
116
|
-
readonly name: string;
|
|
117
|
-
readonly compressionMethod: number;
|
|
118
|
-
readonly compressedSize: number;
|
|
119
|
-
readonly uncompressedSize: number;
|
|
120
|
-
readonly localHeaderOffset: number;
|
|
121
|
-
readonly encrypted: boolean;
|
|
122
|
-
}
|
|
123
|
-
/** Read every central-directory entry. Names are decoded as UTF-8, which is
|
|
124
|
-
* what OOXML producers write (general-purpose bit 11). */
|
|
125
|
-
declare function readZipDirectory(bytes: Uint8Array): ZipOutcome<ZipEntry[]>;
|
|
126
|
-
/**
|
|
127
|
-
* Ceiling on what ONE entry may expand to. A deflate stream reaches ~1000:1 on
|
|
128
|
-
* repetitive input, so an archive small enough to pass any upload gate can ask
|
|
129
|
-
* for gigabytes: measured here, a 305,893-byte archive declared a single entry
|
|
130
|
-
* expanding to 314,572,800 bytes. A Cloudflare Worker isolate has 128 MB, so
|
|
131
|
-
* that is an out-of-memory crash, not a slow path — and a crash is not a typed
|
|
132
|
-
* error a product can report. 32 MB is far past any real Office part (the main
|
|
133
|
-
* document of a 400-page contract is single-digit MB) and far under the
|
|
134
|
-
* isolate's budget.
|
|
135
|
-
*/
|
|
136
|
-
declare const DEFAULT_MAX_ZIP_ENTRY_BYTES: number;
|
|
137
|
-
/** Options for {@link readZipEntry}. */
|
|
138
|
-
interface ReadZipEntryOptions {
|
|
139
|
-
/** Ceiling on the entry's UNCOMPRESSED size. Defaults to
|
|
140
|
-
* {@link DEFAULT_MAX_ZIP_ENTRY_BYTES}. Checked against the directory's
|
|
141
|
-
* declared size before any inflate runs, and again against the real output
|
|
142
|
-
* as it streams, because the declared size is the archive's claim. */
|
|
143
|
-
readonly maxUncompressedBytes?: number;
|
|
144
|
-
}
|
|
145
|
-
/** Inflate one entry's bytes. The local header supplies only the variable-length
|
|
146
|
-
* field sizes needed to find the payload; sizes come from the directory. */
|
|
147
|
-
declare function readZipEntry(bytes: Uint8Array, entry: ZipEntry, options?: ReadZipEntryOptions): Promise<ZipOutcome<Uint8Array>>;
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
* DOCX → plain text, one paragraph per line.
|
|
151
|
-
*
|
|
152
|
-
* The main document part is resolved through the OPC relationship graph
|
|
153
|
-
* (`_rels/.rels` → the `officeDocument` relationship's target) rather than
|
|
154
|
-
* assuming `word/document.xml`, because the part name is a producer's choice,
|
|
155
|
-
* not a constant.
|
|
156
|
-
*
|
|
157
|
-
* WordprocessingML text lives in `<w:t>` runs. Everything else is markup, with
|
|
158
|
-
* four exceptions that carry meaning a reader would otherwise lose: `<w:tab/>`,
|
|
159
|
-
* `<w:br/>`, `<w:cr/>`, and the paragraph boundary `</w:p>`. Two element bodies
|
|
160
|
-
* are deliberately DROPPED — `<w:instrText>` (field instruction codes such as
|
|
161
|
-
* `HYPERLINK "…"`, which are machinery, not prose) and `<w:delText>` (text a
|
|
162
|
-
* tracked-changes revision deleted; extracting it would show a reader words the
|
|
163
|
-
* author removed).
|
|
164
|
-
*
|
|
165
|
-
* One line per paragraph, not blank-line-separated paragraphs: extractors
|
|
166
|
-
* downstream match line-anchored patterns against form and contract text, so a
|
|
167
|
-
* predictable line structure is the useful shape.
|
|
168
|
-
*/
|
|
169
|
-
|
|
170
|
-
/** Resolve XML character/entity references. Unknown entities are left verbatim
|
|
171
|
-
* rather than dropped, so nothing silently disappears from a document. */
|
|
172
|
-
declare function decodeXmlEntities(input: string): string;
|
|
173
|
-
interface DocxText {
|
|
174
|
-
readonly text: string;
|
|
175
|
-
readonly paragraphCount: number;
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Walk WordprocessingML and emit its readable text.
|
|
179
|
-
*
|
|
180
|
-
* Hand-scanned rather than regex-split because comments and CDATA sections may
|
|
181
|
-
* contain `>`; a `/<[^>]*>/` scan ends the tag early on the first one and
|
|
182
|
-
* corrupts everything after it.
|
|
183
|
-
*/
|
|
184
|
-
declare function wordprocessingXmlToText(xml: string): DocxText;
|
|
185
|
-
/**
|
|
186
|
-
* Extract the readable text of a `.docx` / `.docm` package. Every failure names
|
|
187
|
-
* the archive-level cause; a package this cannot read is an error, never an
|
|
188
|
-
* empty document.
|
|
189
|
-
*
|
|
190
|
-
* `zip.maxUncompressedBytes` bounds what each part may expand to. It defaults
|
|
191
|
-
* to the zip reader's own ceiling, which is what keeps a deflate bomb inside a
|
|
192
|
-
* small `.docx` a typed error instead of an out-of-memory crash.
|
|
193
|
-
*/
|
|
194
|
-
declare function extractDocxText(bytes: Uint8Array, mediaType: string, zip?: ReadZipEntryOptions): Promise<DocumentOutcome<{
|
|
195
|
-
text: string;
|
|
196
|
-
detail: DocxExtractionDetail;
|
|
197
|
-
}>>;
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Media type → extraction format. Resolution order is declared type first,
|
|
201
|
-
* filename extension second (products routinely receive `application/octet-stream`
|
|
202
|
-
* from a browser upload), and nothing else — byte sniffing belongs to the
|
|
203
|
-
* upload gate that reads untrusted bytes, not to the extractor that has already
|
|
204
|
-
* been handed a decision.
|
|
205
|
-
*/
|
|
206
|
-
|
|
207
|
-
/** OOXML WordprocessingML — the `.docx` a word processor writes. */
|
|
208
|
-
declare const DOCX_MEDIA_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
|
209
|
-
/** Macro-enabled WordprocessingML (`.docm`). Same part structure, so text
|
|
210
|
-
* extraction is identical; the VBA project is never read or executed. */
|
|
211
|
-
declare const DOCM_MEDIA_TYPE = "application/vnd.ms-word.document.macroEnabled.12";
|
|
212
|
-
declare const PDF_MEDIA_TYPE = "application/pdf";
|
|
213
|
-
interface ResolvedMediaType {
|
|
214
|
-
readonly format: DocumentFormat;
|
|
215
|
-
/** Canonical media type for the resolved format. */
|
|
216
|
-
readonly mediaType: string;
|
|
217
|
-
}
|
|
218
|
-
/** Strip parameters and case from a media type: `Text/Plain; charset=utf-8` →
|
|
219
|
-
* `text/plain`. */
|
|
220
|
-
declare function normalizeMediaType(mediaType: string): string;
|
|
221
|
-
interface ResolveMediaTypeInput {
|
|
222
|
-
/** The type the upload declared. May be empty or `application/octet-stream`. */
|
|
223
|
-
readonly mediaType?: string;
|
|
224
|
-
/** Consulted only when `mediaType` is missing or generic. */
|
|
225
|
-
readonly filename?: string;
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Decide which extractor handles these bytes. Fails loud rather than guessing:
|
|
229
|
-
* an unrecognized type names itself and lists what is supported.
|
|
230
|
-
*/
|
|
231
|
-
declare function resolveMediaType(input: ResolveMediaTypeInput): DocumentOutcome<ResolvedMediaType>;
|
|
232
|
-
|
|
233
|
-
export { DEFAULT_MAX_DOCUMENT_BYTES, DEFAULT_MAX_ZIP_ENTRY_BYTES, DOCM_MEDIA_TYPE, DOCX_MEDIA_TYPE, type DocumentExtractor, type DocumentExtractorConfig, DocumentFormat, DocumentOutcome, DocxExtractionDetail, type DocxText, type ExtractDocumentOptions, ExtractedDocument, PDF_MEDIA_TYPE, PdfClassification, PdfEngine, PdfTextFormat, type ReadZipEntryOptions, type ResolveMediaTypeInput, type ResolvedMediaType, type ZipEntry, type ZipOutcome, classifyPdfDocument, createDocumentExtractor, decodeXmlEntities, extractDocument, extractDocxText, normalizeMediaType, readZipDirectory, readZipEntry, resolveMediaType, wordprocessingXmlToText };
|
|
2
|
+
* Document text extraction — the upload-side capability every vertical needs
|
|
3
|
+
* before a model can read anything a user sends: PDF, DOCX, and text in, plain
|
|
4
|
+
* text plus a stage-named failure out.
|
|
5
|
+
*
|
|
6
|
+
* **This entry imports nothing.** The PDF engine arrives through the
|
|
7
|
+
* {@link PdfEngine} seam because its wasm has to be a build-time asset from the
|
|
8
|
+
* consumer's own bundler; `@tangle-network/agent-app/documents/pdf-inspector`
|
|
9
|
+
* is the shipped implementation, on its own subpath so a product that handles
|
|
10
|
+
* only DOCX and text never installs the wasm package. DOCX needs no dependency
|
|
11
|
+
* at all — `DecompressionStream` is a runtime API in both workerd and Node.
|
|
12
|
+
*
|
|
13
|
+
* **The scanned-PDF contract.** A PDF with no text layer fails with
|
|
14
|
+
* `pdf-needs-ocr` carrying the page-level classification. It is never an empty
|
|
15
|
+
* string: a product that receives `''` from a scan will happily let a model
|
|
16
|
+
* answer questions about a document nobody read. OCR itself is NOT here — it
|
|
17
|
+
* belongs to the sandbox image (ocrmypdf/tesseract), and this module's job is
|
|
18
|
+
* to hand the caller a signal precise enough to route to it.
|
|
19
|
+
*
|
|
20
|
+
* Wiring, including the exact Cloudflare vite-plugin wasm delivery, is in
|
|
21
|
+
* `docs/documents-module.md`.
|
|
22
|
+
*/
|
|
23
|
+
export { classifyPdfDocument, createDocumentExtractor, DEFAULT_MAX_DOCUMENT_BYTES, extractDocument, type DocumentExtractor, type DocumentExtractorConfig, type ExtractDocumentOptions, } from './extract';
|
|
24
|
+
export { decodeXmlEntities, extractDocxText, wordprocessingXmlToText, type DocxText } from './docx';
|
|
25
|
+
export { DOCM_MEDIA_TYPE, DOCX_MEDIA_TYPE, normalizeMediaType, PDF_MEDIA_TYPE, resolveMediaType, type ResolvedMediaType, type ResolveMediaTypeInput, } from './media-type';
|
|
26
|
+
export { DEFAULT_MAX_ZIP_ENTRY_BYTES, readZipDirectory, readZipEntry, type ReadZipEntryOptions, type ZipEntry, type ZipOutcome, } from './zip';
|
|
27
|
+
export type { DocumentExtractionError, DocumentExtractionErrorCode, DocumentExtractionStage, DocumentFormat, DocumentOutcome, DocxExtractionDetail, ExtractedDocument, PdfClassification, PdfContentKind, PdfEngine, PdfExtractionDetail, PdfPageClassification, PdfTextFormat, } from './types';
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media type → extraction format. Resolution order is declared type first,
|
|
3
|
+
* filename extension second (products routinely receive `application/octet-stream`
|
|
4
|
+
* from a browser upload), and nothing else — byte sniffing belongs to the
|
|
5
|
+
* upload gate that reads untrusted bytes, not to the extractor that has already
|
|
6
|
+
* been handed a decision.
|
|
7
|
+
*/
|
|
8
|
+
import type { DocumentFormat, DocumentOutcome } from './types';
|
|
9
|
+
/** OOXML WordprocessingML — the `.docx` a word processor writes. */
|
|
10
|
+
export declare const DOCX_MEDIA_TYPE = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
|
11
|
+
/** Macro-enabled WordprocessingML (`.docm`). Same part structure, so text
|
|
12
|
+
* extraction is identical; the VBA project is never read or executed. */
|
|
13
|
+
export declare const DOCM_MEDIA_TYPE = "application/vnd.ms-word.document.macroEnabled.12";
|
|
14
|
+
export declare const PDF_MEDIA_TYPE = "application/pdf";
|
|
15
|
+
export interface ResolvedMediaType {
|
|
16
|
+
readonly format: DocumentFormat;
|
|
17
|
+
/** Canonical media type for the resolved format. */
|
|
18
|
+
readonly mediaType: string;
|
|
19
|
+
}
|
|
20
|
+
/** Strip parameters and case from a media type: `Text/Plain; charset=utf-8` →
|
|
21
|
+
* `text/plain`. */
|
|
22
|
+
export declare function normalizeMediaType(mediaType: string): string;
|
|
23
|
+
export interface ResolveMediaTypeInput {
|
|
24
|
+
/** The type the upload declared. May be empty or `application/octet-stream`. */
|
|
25
|
+
readonly mediaType?: string;
|
|
26
|
+
/** Consulted only when `mediaType` is missing or generic. */
|
|
27
|
+
readonly filename?: string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Decide which extractor handles these bytes. Fails loud rather than guessing:
|
|
31
|
+
* an unrecognized type names itself and lists what is supported.
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveMediaType(input: ResolveMediaTypeInput): DocumentOutcome<ResolvedMediaType>;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { P as PdfEngine, D as DocumentOutcome } from '../types-DrBidf3O.js';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* The wasm-backed {@link PdfEngine}, binding `@firecrawl/pdf-inspector-wasm`
|
|
5
3
|
* (MIT, Rust→wasm).
|
|
@@ -34,27 +32,25 @@ import { P as PdfEngine, D as DocumentOutcome } from '../types-DrBidf3O.js';
|
|
|
34
32
|
* of a fully text-based 2-page PDF as needing OCR — so the classification a
|
|
35
33
|
* caller sees always comes from `detectPdf`.
|
|
36
34
|
*/
|
|
37
|
-
|
|
35
|
+
import type { DocumentOutcome, PdfEngine } from './types';
|
|
38
36
|
/**
|
|
39
37
|
* The compiled wasm, or a thunk that produces it on first use.
|
|
40
38
|
*
|
|
41
39
|
* A Worker passes the `.wasm` module import (a `WebAssembly.Module`); Node
|
|
42
40
|
* passes raw bytes. A thunk defers reading either until a PDF actually arrives.
|
|
43
41
|
*/
|
|
44
|
-
type PdfInspectorWasm = WebAssembly.Module | BufferSource | (() => WebAssembly.Module | BufferSource);
|
|
42
|
+
export type PdfInspectorWasm = WebAssembly.Module | BufferSource | (() => WebAssembly.Module | BufferSource);
|
|
45
43
|
/** Instantiate the engine for this isolate. Idempotent; safe to call per
|
|
46
44
|
* request. Exported so a product can warm the wasm at startup instead of
|
|
47
45
|
* paying instantiation on a user's first upload. */
|
|
48
|
-
declare function initPdfInspector(wasm: PdfInspectorWasm): DocumentOutcome<{
|
|
46
|
+
export declare function initPdfInspector(wasm: PdfInspectorWasm): DocumentOutcome<{
|
|
49
47
|
version: string;
|
|
50
48
|
}>;
|
|
51
49
|
/** Whether the engine has been instantiated in this isolate. */
|
|
52
|
-
declare function isPdfInspectorReady(): boolean;
|
|
50
|
+
export declare function isPdfInspectorReady(): boolean;
|
|
53
51
|
/**
|
|
54
52
|
* Build the wasm-backed engine. Instantiation is lazy — the first classify or
|
|
55
53
|
* extract call initializes it — so importing this costs nothing until a PDF
|
|
56
54
|
* arrives.
|
|
57
55
|
*/
|
|
58
|
-
declare function createPdfInspectorEngine(wasm: PdfInspectorWasm): PdfEngine;
|
|
59
|
-
|
|
60
|
-
export { type PdfInspectorWasm, createPdfInspectorEngine, initPdfInspector, isPdfInspectorReady };
|
|
56
|
+
export declare function createPdfInspectorEngine(wasm: PdfInspectorWasm): PdfEngine;
|
|
@@ -4,10 +4,10 @@
|
|
|
4
4
|
* port that keeps the wasm binding out of this module's import graph.
|
|
5
5
|
*/
|
|
6
6
|
/** What kind of extraction a media type routes to. */
|
|
7
|
-
type DocumentFormat = 'pdf' | 'docx' | 'text';
|
|
7
|
+
export type DocumentFormat = 'pdf' | 'docx' | 'text';
|
|
8
8
|
/** Where extraction stopped. Surfaced on every error so a product can tell a
|
|
9
9
|
* user WHERE it failed rather than "extraction failed". */
|
|
10
|
-
type DocumentExtractionStage = 'size-check' | 'media-type' | 'classify' | 'extract' | 'decode';
|
|
10
|
+
export type DocumentExtractionStage = 'size-check' | 'media-type' | 'classify' | 'extract' | 'decode';
|
|
11
11
|
/**
|
|
12
12
|
* Why extraction stopped.
|
|
13
13
|
*
|
|
@@ -16,8 +16,8 @@ type DocumentExtractionStage = 'size-check' | 'media-type' | 'classify' | 'extra
|
|
|
16
16
|
* and never a generic failure — a caller matches on it to offer the OCR path
|
|
17
17
|
* (see {@link PdfClassification.pagesNeedingOcr} for which pages).
|
|
18
18
|
*/
|
|
19
|
-
type DocumentExtractionErrorCode = 'too-large' | 'unsupported-media-type' | 'pdf-engine-unavailable' | 'pdf-needs-ocr' | 'classification-failed' | 'extraction-failed' | 'malformed-archive' | 'decode-failed' | 'empty-document';
|
|
20
|
-
interface DocumentExtractionError {
|
|
19
|
+
export type DocumentExtractionErrorCode = 'too-large' | 'unsupported-media-type' | 'pdf-engine-unavailable' | 'pdf-needs-ocr' | 'classification-failed' | 'extraction-failed' | 'malformed-archive' | 'decode-failed' | 'empty-document';
|
|
20
|
+
export interface DocumentExtractionError {
|
|
21
21
|
readonly code: DocumentExtractionErrorCode;
|
|
22
22
|
readonly stage: DocumentExtractionStage;
|
|
23
23
|
/** Human-readable and safe to show a user: names the stage's cause. */
|
|
@@ -27,7 +27,7 @@ interface DocumentExtractionError {
|
|
|
27
27
|
/** Present on `pdf-needs-ocr` — the page-level detail the OCR handoff needs. */
|
|
28
28
|
readonly classification?: PdfClassification;
|
|
29
29
|
}
|
|
30
|
-
type DocumentOutcome<T> = {
|
|
30
|
+
export type DocumentOutcome<T> = {
|
|
31
31
|
succeeded: true;
|
|
32
32
|
value: T;
|
|
33
33
|
} | {
|
|
@@ -44,8 +44,8 @@ type DocumentOutcome<T> = {
|
|
|
44
44
|
* need OCR).
|
|
45
45
|
* - `mixed` — some pages have text, some do not.
|
|
46
46
|
*/
|
|
47
|
-
type PdfContentKind = 'text-based' | 'scanned' | 'image-based' | 'mixed';
|
|
48
|
-
interface PdfPageClassification {
|
|
47
|
+
export type PdfContentKind = 'text-based' | 'scanned' | 'image-based' | 'mixed';
|
|
48
|
+
export interface PdfPageClassification {
|
|
49
49
|
/** 1-indexed, the number a person sees in a viewer. */
|
|
50
50
|
readonly pageNumber: number;
|
|
51
51
|
/** 0-indexed, for array math. */
|
|
@@ -56,7 +56,7 @@ interface PdfPageClassification {
|
|
|
56
56
|
readonly hasTable: boolean;
|
|
57
57
|
readonly hasColumns: boolean;
|
|
58
58
|
}
|
|
59
|
-
interface PdfClassification {
|
|
59
|
+
export interface PdfClassification {
|
|
60
60
|
readonly kind: PdfContentKind;
|
|
61
61
|
readonly pageCount: number;
|
|
62
62
|
/** Engine confidence in `kind`, 0..1. */
|
|
@@ -76,7 +76,7 @@ interface PdfClassification {
|
|
|
76
76
|
}
|
|
77
77
|
/** Plain text preserves the source's line breaks; markdown carries structure
|
|
78
78
|
* (headings, page markers) but reflows lines into paragraphs. */
|
|
79
|
-
type PdfTextFormat = 'text' | 'markdown';
|
|
79
|
+
export type PdfTextFormat = 'text' | 'markdown';
|
|
80
80
|
/**
|
|
81
81
|
* The seam that keeps `@firecrawl/pdf-inspector-wasm` out of this module.
|
|
82
82
|
*
|
|
@@ -86,14 +86,14 @@ type PdfTextFormat = 'text' | 'markdown';
|
|
|
86
86
|
* caller; `@tangle-network/agent-app/documents/pdf-inspector` ships the one
|
|
87
87
|
* that binds the firecrawl engine.
|
|
88
88
|
*/
|
|
89
|
-
interface PdfEngine {
|
|
89
|
+
export interface PdfEngine {
|
|
90
90
|
/** Must not panic on scanned input — classification is what makes extraction
|
|
91
91
|
* safe, so it runs first on every document. */
|
|
92
92
|
readonly classify: (bytes: Uint8Array) => DocumentOutcome<PdfClassification>;
|
|
93
93
|
/** Called only after `classify` says the requested pages carry text. */
|
|
94
94
|
readonly extract: (bytes: Uint8Array, format: PdfTextFormat) => DocumentOutcome<string>;
|
|
95
95
|
}
|
|
96
|
-
interface PdfExtractionDetail {
|
|
96
|
+
export interface PdfExtractionDetail {
|
|
97
97
|
readonly classification: PdfClassification;
|
|
98
98
|
/** What the text actually is — see {@link ExtractDocumentOptions.preferredPdfFormat}
|
|
99
99
|
* for the one case where it differs from what was asked for. */
|
|
@@ -101,12 +101,12 @@ interface PdfExtractionDetail {
|
|
|
101
101
|
/** Text came from a subset of pages; the rest need OCR. */
|
|
102
102
|
readonly partial: boolean;
|
|
103
103
|
}
|
|
104
|
-
interface DocxExtractionDetail {
|
|
104
|
+
export interface DocxExtractionDetail {
|
|
105
105
|
/** The OPC part the text came from, resolved through `_rels/.rels`. */
|
|
106
106
|
readonly part: string;
|
|
107
107
|
readonly paragraphCount: number;
|
|
108
108
|
}
|
|
109
|
-
interface ExtractedDocument {
|
|
109
|
+
export interface ExtractedDocument {
|
|
110
110
|
/** Never empty — an empty extraction is the `empty-document` error instead. */
|
|
111
111
|
readonly text: string;
|
|
112
112
|
readonly format: DocumentFormat;
|
|
@@ -119,5 +119,3 @@ interface ExtractedDocument {
|
|
|
119
119
|
/** Non-fatal facts the caller should surface (e.g. pages left un-OCR'd). */
|
|
120
120
|
readonly warnings: readonly string[];
|
|
121
121
|
}
|
|
122
|
-
|
|
123
|
-
export type { DocumentOutcome as D, ExtractedDocument as E, PdfEngine as P, PdfTextFormat as a, PdfClassification as b, DocxExtractionDetail as c, DocumentFormat as d, DocumentExtractionError as e, DocumentExtractionErrorCode as f, DocumentExtractionStage as g, PdfContentKind as h, PdfExtractionDetail as i, PdfPageClassification as j };
|