@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,182 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Audit where a repository's dependencies COME FROM.
|
|
3
|
-
*
|
|
4
|
-
* `/peer-floors` already answers "is the installed version inside the declared
|
|
5
|
-
* range". This answers the question underneath it — "is the installed package
|
|
6
|
-
* the one the registry publishes at all" — because a version number is not an
|
|
7
|
-
* identity. Two artifacts can carry `0.45.33` and ship different APIs, and every
|
|
8
|
-
* gate that reads a version reads the same number for both.
|
|
9
|
-
*
|
|
10
|
-
* THE MEASURED DEFECT. insurance-agent's `pnpm-workspace.yaml` carried
|
|
11
|
-
*
|
|
12
|
-
* overrides:
|
|
13
|
-
* '@tangle-network/agent-app': file:./vendor/agent-app/tangle-network-agent-app-0.45.33.tgz
|
|
14
|
-
*
|
|
15
|
-
* — a 2.6 MB `pnpm pack` of an UNMERGED pull request, committed into the
|
|
16
|
-
* product repo (`insurance-agent` f7d0f51 removed it). It installed cleanly,
|
|
17
|
-
* typechecked green and passed sign-off while the product ran code that existed
|
|
18
|
-
* in no published release. Note where it was NOT: `package.json` still read
|
|
19
|
-
* `"@tangle-network/agent-app": "^0.45.33"`, a perfectly ordinary registry
|
|
20
|
-
* range. A check that reads only the root manifest's `dependencies` sees
|
|
21
|
-
* nothing. The override lane is the one that shipped, so the override lane —
|
|
22
|
-
* `pnpm-workspace.yaml`, `pnpm.overrides`, `resolutions` — is audited first.
|
|
23
|
-
*
|
|
24
|
-
* The second shape is worse because nothing declares it at all: a worktree was
|
|
25
|
-
* found whose installed `agent-app@0.45.29` had `dist/spend/index.d.ts`
|
|
26
|
-
* replaced with a newer version's content by hand. The manifest, the lockfile
|
|
27
|
-
* and the version on disk all agreed; only the bytes disagreed, and the product
|
|
28
|
-
* typechecked green against an API its declared dependency does not ship. See
|
|
29
|
-
* `checkInstalledIntegrity` below for exactly how much of that class is
|
|
30
|
-
* catchable cheaply and exactly how much is not.
|
|
31
|
-
*/
|
|
32
|
-
/** How a specifier says a dependency should be obtained. */
|
|
33
|
-
type DependencySourceProtocol =
|
|
34
|
-
/** Resolvable from the registry by anyone: `^1.2.3`, `1.2.3`, `npm:x@1`. */
|
|
35
|
-
'registry'
|
|
36
|
-
/** `workspace:` — another package in this same repo. Reviewable in one diff. */
|
|
37
|
-
| 'workspace'
|
|
38
|
-
/** `catalog:` — indirection into `pnpm-workspace.yaml`, which is itself audited. */
|
|
39
|
-
| 'catalog'
|
|
40
|
-
/** A local path. Whether it is legitimate depends on WHERE it points. */
|
|
41
|
-
| 'file' | 'link' | 'portal'
|
|
42
|
-
/** A path or URL ending in a packed tarball. Opaque bytes; never legitimate. */
|
|
43
|
-
| 'tarball'
|
|
44
|
-
/** A git ref or a remote URL that is not the registry. */
|
|
45
|
-
| 'git' | 'remote';
|
|
46
|
-
/**
|
|
47
|
-
* Classify one dependency specifier by the SOURCE it names.
|
|
48
|
-
*
|
|
49
|
-
* Pure and exported so a consumer can reuse the vocabulary, and so the rule can
|
|
50
|
-
* be tested without a filesystem. Nothing here decides legitimacy — `file:` on
|
|
51
|
-
* a directory inside the repo is correct and `file:` on a tarball never is, and
|
|
52
|
-
* that distinction needs the disk (`resolveLocalPathSource`).
|
|
53
|
-
*/
|
|
54
|
-
declare function classifyDependencySpecifier(specifier: string): DependencySourceProtocol;
|
|
55
|
-
/**
|
|
56
|
-
* The legitimate-exception rule, stated once so it is not a path allowlist.
|
|
57
|
-
*
|
|
58
|
-
* agent-app's own `playground/package.json` declares
|
|
59
|
-
* `"@tangle-network/agent-app": "file:.."` and that is CORRECT: the playground
|
|
60
|
-
* depends on the package it lives inside. The property that makes it correct is
|
|
61
|
-
* not its path — it is that the dependency is satisfied by SOURCE ALREADY IN
|
|
62
|
-
* THIS REPOSITORY, under version control, changing only in a diff a reviewer
|
|
63
|
-
* sees. So the rule is:
|
|
64
|
-
*
|
|
65
|
-
* A `file:` / `link:` / `portal:` specifier is exempt when it resolves to a
|
|
66
|
-
* DIRECTORY inside this repository holding a `package.json` whose `name` is
|
|
67
|
-
* the dependency being declared.
|
|
68
|
-
*
|
|
69
|
-
* Every clause is load-bearing. A DIRECTORY, because a `.tgz` is opaque bytes
|
|
70
|
-
* that no diff shows — a packed tarball is never exempt, wherever it sits.
|
|
71
|
-
* INSIDE THIS REPOSITORY, because `file:../../agent-app` is a path on one
|
|
72
|
-
* machine: it resolves for its author and for nobody else, and a sign-off gate
|
|
73
|
-
* that installs into a clean export dies at install. NAME MATCHES, because a
|
|
74
|
-
* path pointing at some other package's source is a mis-wire, not a
|
|
75
|
-
* self-reference.
|
|
76
|
-
*/
|
|
77
|
-
type LocalPathSource =
|
|
78
|
-
/** In-repo directory whose package.json names this dependency. Legitimate. */
|
|
79
|
-
'in-repo-source'
|
|
80
|
-
/** Points outside the repository — reproducible on one machine only. */
|
|
81
|
-
| 'outside-repo'
|
|
82
|
-
/** Nothing there, or not a directory (a packed tarball lands here too). */
|
|
83
|
-
| 'not-a-directory'
|
|
84
|
-
/** An in-repo directory, but it is a different package. */
|
|
85
|
-
| 'name-mismatch';
|
|
86
|
-
declare function resolveLocalPathSource(args: {
|
|
87
|
-
/** Directory of the manifest that made the declaration. */
|
|
88
|
-
fromDir: string;
|
|
89
|
-
/** Root of the repository the declaration must stay inside. */
|
|
90
|
-
repoDir: string;
|
|
91
|
-
/** The path part of the specifier, protocol already stripped. */
|
|
92
|
-
path: string;
|
|
93
|
-
/** The dependency name the path is claimed to satisfy. */
|
|
94
|
-
name: string;
|
|
95
|
-
}): LocalPathSource;
|
|
96
|
-
/** Which of the five scans produced a finding. Kept on the row because the fix
|
|
97
|
-
* differs: a declaration is edited, an installed tree is reinstalled. */
|
|
98
|
-
type DependencySourceCheck =
|
|
99
|
-
/** A `dependencies`-family field in some `package.json`. */
|
|
100
|
-
'declared'
|
|
101
|
-
/** `pnpm.overrides` / `resolutions` / `pnpm-workspace.yaml` — the lane that shipped. */
|
|
102
|
-
| 'override'
|
|
103
|
-
/** `pnpm-lock.yaml` — what actually resolved, whatever the manifests now say. */
|
|
104
|
-
| 'lockfile'
|
|
105
|
-
/** A packed tarball sitting in the source tree. */
|
|
106
|
-
| 'vendored-tarball'
|
|
107
|
-
/** The installed tree on disk. */
|
|
108
|
-
| 'installed';
|
|
109
|
-
interface DependencySourceFinding {
|
|
110
|
-
readonly check: DependencySourceCheck;
|
|
111
|
-
/** Dependency name, or `null` for a stray tarball that names no dependency. */
|
|
112
|
-
readonly name: string | null;
|
|
113
|
-
readonly specifier: string | null;
|
|
114
|
-
readonly protocol: DependencySourceProtocol | null;
|
|
115
|
-
/** Repo-relative location, with the key or line that carries it. */
|
|
116
|
-
readonly where: string;
|
|
117
|
-
/** Why this is a finding, and what to do about it. */
|
|
118
|
-
readonly detail: string;
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* What the on-disk integrity pass was able to examine — reported on EVERY run,
|
|
122
|
-
* clean or not, because "checked nothing" and "checked everything and found
|
|
123
|
-
* nothing" render identically otherwise. This module's own doctrine: an
|
|
124
|
-
* unchecked contract is never a pass it did not earn.
|
|
125
|
-
*/
|
|
126
|
-
interface InstalledIntegrityCoverage {
|
|
127
|
-
/** The only basis implemented. See `checkInstalledIntegrity`'s limits. */
|
|
128
|
-
readonly basis: 'store-cas';
|
|
129
|
-
/** False for npm, yarn, a pruned CI cache, or a store on another machine.
|
|
130
|
-
* Nothing was verified, and the report says so rather than reading clean. */
|
|
131
|
-
readonly storeLocated: boolean;
|
|
132
|
-
readonly packagesExamined: number;
|
|
133
|
-
readonly filesExamined: number;
|
|
134
|
-
/** Files settled by reading their bytes rather than by a shared inode. */
|
|
135
|
-
readonly filesHashed: number;
|
|
136
|
-
}
|
|
137
|
-
interface DependencySourceReport {
|
|
138
|
-
readonly repoDir: string;
|
|
139
|
-
readonly manifestsScanned: number;
|
|
140
|
-
readonly lockfileScanned: boolean;
|
|
141
|
-
readonly integrity: InstalledIntegrityCoverage;
|
|
142
|
-
readonly findings: readonly DependencySourceFinding[];
|
|
143
|
-
readonly ok: boolean;
|
|
144
|
-
}
|
|
145
|
-
interface CheckDependencySourcesOptions {
|
|
146
|
-
/** Repository root to audit. */
|
|
147
|
-
repoDir: string;
|
|
148
|
-
/** Scope filter for the on-disk integrity pass. `''` examines every package. */
|
|
149
|
-
scope?: string;
|
|
150
|
-
/** Directory name holding the installed tree. Overridable so a committed
|
|
151
|
-
* fixture can use `fixture_modules` — `node_modules` is gitignored
|
|
152
|
-
* everywhere, and a calibration proof that is not committed stops running. */
|
|
153
|
-
modulesDir?: string;
|
|
154
|
-
/** Repo-relative path prefixes the source-tree walk skips. The escape hatch
|
|
155
|
-
* for a repo that genuinely carries a tarball as test data — and for this
|
|
156
|
-
* package's own calibration fixtures, whose purpose is to CONTAIN the
|
|
157
|
-
* violation. */
|
|
158
|
-
exclude?: readonly string[];
|
|
159
|
-
}
|
|
160
|
-
/**
|
|
161
|
-
* Check each installed package under `scope` against the content-addressed
|
|
162
|
-
* store it was installed from. Returns coverage alongside findings, because a
|
|
163
|
-
* pass that verified nothing must not render like a pass that verified
|
|
164
|
-
* everything.
|
|
165
|
-
*/
|
|
166
|
-
declare function checkInstalledIntegrity(args: {
|
|
167
|
-
repoDir: string;
|
|
168
|
-
modulesDir: string;
|
|
169
|
-
scope: string;
|
|
170
|
-
}): {
|
|
171
|
-
coverage: InstalledIntegrityCoverage;
|
|
172
|
-
findings: DependencySourceFinding[];
|
|
173
|
-
};
|
|
174
|
-
/** Audit one repository for dependencies whose source is not the registry. */
|
|
175
|
-
declare function checkDependencySources(options: CheckDependencySourcesOptions): DependencySourceReport;
|
|
176
|
-
/** One finding rendered as the failure a reader has to act on. */
|
|
177
|
-
declare function describeDependencySourceFinding(finding: DependencySourceFinding): string;
|
|
178
|
-
declare function formatDependencySourceReport(report: DependencySourceReport): string;
|
|
179
|
-
|
|
180
1
|
/**
|
|
181
2
|
* The second half of this gate lives in `./dependency-source` and ships on the
|
|
182
3
|
* SAME subpath and the SAME `agent-app-peer-check` bin, because it answers the
|
|
@@ -184,7 +5,7 @@ declare function formatDependencySourceReport(report: DependencySourceReport): s
|
|
|
184
5
|
* version is not an identity — a vendored `pnpm pack` of an unmerged branch
|
|
185
6
|
* carries the same `0.45.33` a real release does.
|
|
186
7
|
*/
|
|
187
|
-
|
|
8
|
+
export * from './dependency-source';
|
|
188
9
|
/**
|
|
189
10
|
* Audit a consumer's installed tree against the peer floors this package
|
|
190
11
|
* declares.
|
|
@@ -210,7 +31,7 @@ declare function formatDependencySourceReport(report: DependencySourceReport): s
|
|
|
210
31
|
* and a suite only sees it as dozens of unrelated-looking import failures.
|
|
211
32
|
*/
|
|
212
33
|
/** Installed, and inside the declared range. */
|
|
213
|
-
type PeerFloorVerdict = 'satisfied'
|
|
34
|
+
export type PeerFloorVerdict = 'satisfied'
|
|
214
35
|
/** Installed and BELOW the floor — the silent case this module exists for. */
|
|
215
36
|
| 'below-floor'
|
|
216
37
|
/** Not installed and never asked for. A legitimate answer for an optional peer. */
|
|
@@ -218,19 +39,19 @@ type PeerFloorVerdict = 'satisfied'
|
|
|
218
39
|
/** Declared by the app, yet no version could be read, so the floor went
|
|
219
40
|
* UNCHECKED. Reported as a failure rather than a pass this did not earn. */
|
|
220
41
|
| 'absent-but-declared';
|
|
221
|
-
interface PeerFloorRow {
|
|
42
|
+
export interface PeerFloorRow {
|
|
222
43
|
readonly name: string;
|
|
223
44
|
readonly range: string;
|
|
224
45
|
readonly installed: string | null;
|
|
225
46
|
readonly verdict: PeerFloorVerdict;
|
|
226
47
|
}
|
|
227
|
-
interface PeerFloorReport {
|
|
48
|
+
export interface PeerFloorReport {
|
|
228
49
|
readonly shellVersion: string;
|
|
229
50
|
readonly rows: readonly PeerFloorRow[];
|
|
230
51
|
readonly violations: readonly PeerFloorRow[];
|
|
231
52
|
readonly ok: boolean;
|
|
232
53
|
}
|
|
233
|
-
interface CheckPeerFloorsOptions {
|
|
54
|
+
export interface CheckPeerFloorsOptions {
|
|
234
55
|
/** Directory of the app under audit — the one whose `package.json` and
|
|
235
56
|
* installed tree are read. */
|
|
236
57
|
appDir: string;
|
|
@@ -254,12 +75,10 @@ interface CheckPeerFloorsOptions {
|
|
|
254
75
|
* calibration proof that is not committed is a proof that stops running. */
|
|
255
76
|
modulesDir?: string;
|
|
256
77
|
}
|
|
257
|
-
declare function satisfiesRange(version: string, range: string): boolean;
|
|
78
|
+
export declare function satisfiesRange(version: string, range: string): boolean;
|
|
258
79
|
/** Audit one app directory against the shell's declared peer floors. */
|
|
259
|
-
declare function checkPeerFloors(options: CheckPeerFloorsOptions): PeerFloorReport;
|
|
80
|
+
export declare function checkPeerFloors(options: CheckPeerFloorsOptions): PeerFloorReport;
|
|
260
81
|
/** The failure message for one violating row. Split out so a caller can raise
|
|
261
82
|
* it from a test and a CLI can print it identically. */
|
|
262
|
-
declare function describePeerFloorViolation(row: PeerFloorRow, shellVersion: string, shell?: string): string;
|
|
263
|
-
declare function formatPeerFloorReport(report: PeerFloorReport, shell?: string): string;
|
|
264
|
-
|
|
265
|
-
export { type CheckDependencySourcesOptions, type CheckPeerFloorsOptions, type DependencySourceCheck, type DependencySourceFinding, type DependencySourceProtocol, type DependencySourceReport, type InstalledIntegrityCoverage, type LocalPathSource, type PeerFloorReport, type PeerFloorRow, type PeerFloorVerdict, checkDependencySources, checkInstalledIntegrity, checkPeerFloors, classifyDependencySpecifier, describeDependencySourceFinding, describePeerFloorViolation, formatDependencySourceReport, formatPeerFloorReport, resolveLocalPathSource, satisfiesRange };
|
|
83
|
+
export declare function describePeerFloorViolation(row: PeerFloorRow, shellVersion: string, shell?: string): string;
|
|
84
|
+
export declare function formatPeerFloorReport(report: PeerFloorReport, shell?: string): string;
|
|
@@ -3,6 +3,5 @@ interface CliArgs {
|
|
|
3
3
|
readonly appDir: string;
|
|
4
4
|
readonly exclude: readonly string[];
|
|
5
5
|
}
|
|
6
|
-
declare function parsePeerCheckArgs(argv: readonly string[]): CliArgs;
|
|
7
|
-
|
|
8
|
-
export { parsePeerCheckArgs };
|
|
6
|
+
export declare function parsePeerCheckArgs(argv: readonly string[]): CliArgs;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audit where a repository's dependencies COME FROM.
|
|
3
|
+
*
|
|
4
|
+
* `/peer-floors` already answers "is the installed version inside the declared
|
|
5
|
+
* range". This answers the question underneath it — "is the installed package
|
|
6
|
+
* the one the registry publishes at all" — because a version number is not an
|
|
7
|
+
* identity. Two artifacts can carry `0.45.33` and ship different APIs, and every
|
|
8
|
+
* gate that reads a version reads the same number for both.
|
|
9
|
+
*
|
|
10
|
+
* THE MEASURED DEFECT. insurance-agent's `pnpm-workspace.yaml` carried
|
|
11
|
+
*
|
|
12
|
+
* overrides:
|
|
13
|
+
* '@tangle-network/agent-app': file:./vendor/agent-app/tangle-network-agent-app-0.45.33.tgz
|
|
14
|
+
*
|
|
15
|
+
* — a 2.6 MB `pnpm pack` of an UNMERGED pull request, committed into the
|
|
16
|
+
* product repo (`insurance-agent` f7d0f51 removed it). It installed cleanly,
|
|
17
|
+
* typechecked green and passed sign-off while the product ran code that existed
|
|
18
|
+
* in no published release. Note where it was NOT: `package.json` still read
|
|
19
|
+
* `"@tangle-network/agent-app": "^0.45.33"`, a perfectly ordinary registry
|
|
20
|
+
* range. A check that reads only the root manifest's `dependencies` sees
|
|
21
|
+
* nothing. The override lane is the one that shipped, so the override lane —
|
|
22
|
+
* `pnpm-workspace.yaml`, `pnpm.overrides`, `resolutions` — is audited first.
|
|
23
|
+
*
|
|
24
|
+
* The second shape is worse because nothing declares it at all: a worktree was
|
|
25
|
+
* found whose installed `agent-app@0.45.29` had `dist/spend/index.d.ts`
|
|
26
|
+
* replaced with a newer version's content by hand. The manifest, the lockfile
|
|
27
|
+
* and the version on disk all agreed; only the bytes disagreed, and the product
|
|
28
|
+
* typechecked green against an API its declared dependency does not ship. See
|
|
29
|
+
* `checkInstalledIntegrity` below for exactly how much of that class is
|
|
30
|
+
* catchable cheaply and exactly how much is not.
|
|
31
|
+
*/
|
|
32
|
+
/** How a specifier says a dependency should be obtained. */
|
|
33
|
+
export type DependencySourceProtocol =
|
|
34
|
+
/** Resolvable from the registry by anyone: `^1.2.3`, `1.2.3`, `npm:x@1`. */
|
|
35
|
+
'registry'
|
|
36
|
+
/** `workspace:` — another package in this same repo. Reviewable in one diff. */
|
|
37
|
+
| 'workspace'
|
|
38
|
+
/** `catalog:` — indirection into `pnpm-workspace.yaml`, which is itself audited. */
|
|
39
|
+
| 'catalog'
|
|
40
|
+
/** A local path. Whether it is legitimate depends on WHERE it points. */
|
|
41
|
+
| 'file' | 'link' | 'portal'
|
|
42
|
+
/** A path or URL ending in a packed tarball. Opaque bytes; never legitimate. */
|
|
43
|
+
| 'tarball'
|
|
44
|
+
/** A git ref or a remote URL that is not the registry. */
|
|
45
|
+
| 'git' | 'remote';
|
|
46
|
+
/**
|
|
47
|
+
* Classify one dependency specifier by the SOURCE it names.
|
|
48
|
+
*
|
|
49
|
+
* Pure and exported so a consumer can reuse the vocabulary, and so the rule can
|
|
50
|
+
* be tested without a filesystem. Nothing here decides legitimacy — `file:` on
|
|
51
|
+
* a directory inside the repo is correct and `file:` on a tarball never is, and
|
|
52
|
+
* that distinction needs the disk (`resolveLocalPathSource`).
|
|
53
|
+
*/
|
|
54
|
+
export declare function classifyDependencySpecifier(specifier: string): DependencySourceProtocol;
|
|
55
|
+
/**
|
|
56
|
+
* The legitimate-exception rule, stated once so it is not a path allowlist.
|
|
57
|
+
*
|
|
58
|
+
* agent-app's own `playground/package.json` declares
|
|
59
|
+
* `"@tangle-network/agent-app": "file:.."` and that is CORRECT: the playground
|
|
60
|
+
* depends on the package it lives inside. The property that makes it correct is
|
|
61
|
+
* not its path — it is that the dependency is satisfied by SOURCE ALREADY IN
|
|
62
|
+
* THIS REPOSITORY, under version control, changing only in a diff a reviewer
|
|
63
|
+
* sees. So the rule is:
|
|
64
|
+
*
|
|
65
|
+
* A `file:` / `link:` / `portal:` specifier is exempt when it resolves to a
|
|
66
|
+
* DIRECTORY inside this repository holding a `package.json` whose `name` is
|
|
67
|
+
* the dependency being declared.
|
|
68
|
+
*
|
|
69
|
+
* Every clause is load-bearing. A DIRECTORY, because a `.tgz` is opaque bytes
|
|
70
|
+
* that no diff shows — a packed tarball is never exempt, wherever it sits.
|
|
71
|
+
* INSIDE THIS REPOSITORY, because `file:../../agent-app` is a path on one
|
|
72
|
+
* machine: it resolves for its author and for nobody else, and a sign-off gate
|
|
73
|
+
* that installs into a clean export dies at install. NAME MATCHES, because a
|
|
74
|
+
* path pointing at some other package's source is a mis-wire, not a
|
|
75
|
+
* self-reference.
|
|
76
|
+
*/
|
|
77
|
+
export type LocalPathSource =
|
|
78
|
+
/** In-repo directory whose package.json names this dependency. Legitimate. */
|
|
79
|
+
'in-repo-source'
|
|
80
|
+
/** Points outside the repository — reproducible on one machine only. */
|
|
81
|
+
| 'outside-repo'
|
|
82
|
+
/** Nothing there, or not a directory (a packed tarball lands here too). */
|
|
83
|
+
| 'not-a-directory'
|
|
84
|
+
/** An in-repo directory, but it is a different package. */
|
|
85
|
+
| 'name-mismatch';
|
|
86
|
+
export declare function resolveLocalPathSource(args: {
|
|
87
|
+
/** Directory of the manifest that made the declaration. */
|
|
88
|
+
fromDir: string;
|
|
89
|
+
/** Root of the repository the declaration must stay inside. */
|
|
90
|
+
repoDir: string;
|
|
91
|
+
/** The path part of the specifier, protocol already stripped. */
|
|
92
|
+
path: string;
|
|
93
|
+
/** The dependency name the path is claimed to satisfy. */
|
|
94
|
+
name: string;
|
|
95
|
+
}): LocalPathSource;
|
|
96
|
+
/** Which of the five scans produced a finding. Kept on the row because the fix
|
|
97
|
+
* differs: a declaration is edited, an installed tree is reinstalled. */
|
|
98
|
+
export type DependencySourceCheck =
|
|
99
|
+
/** A `dependencies`-family field in some `package.json`. */
|
|
100
|
+
'declared'
|
|
101
|
+
/** `pnpm.overrides` / `resolutions` / `pnpm-workspace.yaml` — the lane that shipped. */
|
|
102
|
+
| 'override'
|
|
103
|
+
/** `pnpm-lock.yaml` — what actually resolved, whatever the manifests now say. */
|
|
104
|
+
| 'lockfile'
|
|
105
|
+
/** A packed tarball sitting in the source tree. */
|
|
106
|
+
| 'vendored-tarball'
|
|
107
|
+
/** The installed tree on disk. */
|
|
108
|
+
| 'installed';
|
|
109
|
+
export interface DependencySourceFinding {
|
|
110
|
+
readonly check: DependencySourceCheck;
|
|
111
|
+
/** Dependency name, or `null` for a stray tarball that names no dependency. */
|
|
112
|
+
readonly name: string | null;
|
|
113
|
+
readonly specifier: string | null;
|
|
114
|
+
readonly protocol: DependencySourceProtocol | null;
|
|
115
|
+
/** Repo-relative location, with the key or line that carries it. */
|
|
116
|
+
readonly where: string;
|
|
117
|
+
/** Why this is a finding, and what to do about it. */
|
|
118
|
+
readonly detail: string;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* What the on-disk integrity pass was able to examine — reported on EVERY run,
|
|
122
|
+
* clean or not, because "checked nothing" and "checked everything and found
|
|
123
|
+
* nothing" render identically otherwise. This module's own doctrine: an
|
|
124
|
+
* unchecked contract is never a pass it did not earn.
|
|
125
|
+
*/
|
|
126
|
+
export interface InstalledIntegrityCoverage {
|
|
127
|
+
/** The only basis implemented. See `checkInstalledIntegrity`'s limits. */
|
|
128
|
+
readonly basis: 'store-cas';
|
|
129
|
+
/** False for npm, yarn, a pruned CI cache, or a store on another machine.
|
|
130
|
+
* Nothing was verified, and the report says so rather than reading clean. */
|
|
131
|
+
readonly storeLocated: boolean;
|
|
132
|
+
readonly packagesExamined: number;
|
|
133
|
+
readonly filesExamined: number;
|
|
134
|
+
/** Files settled by reading their bytes rather than by a shared inode. */
|
|
135
|
+
readonly filesHashed: number;
|
|
136
|
+
}
|
|
137
|
+
export interface DependencySourceReport {
|
|
138
|
+
readonly repoDir: string;
|
|
139
|
+
readonly manifestsScanned: number;
|
|
140
|
+
readonly lockfileScanned: boolean;
|
|
141
|
+
readonly integrity: InstalledIntegrityCoverage;
|
|
142
|
+
readonly findings: readonly DependencySourceFinding[];
|
|
143
|
+
readonly ok: boolean;
|
|
144
|
+
}
|
|
145
|
+
export interface CheckDependencySourcesOptions {
|
|
146
|
+
/** Repository root to audit. */
|
|
147
|
+
repoDir: string;
|
|
148
|
+
/** Scope filter for the on-disk integrity pass. `''` examines every package. */
|
|
149
|
+
scope?: string;
|
|
150
|
+
/** Directory name holding the installed tree. Overridable so a committed
|
|
151
|
+
* fixture can use `fixture_modules` — `node_modules` is gitignored
|
|
152
|
+
* everywhere, and a calibration proof that is not committed stops running. */
|
|
153
|
+
modulesDir?: string;
|
|
154
|
+
/** Repo-relative path prefixes the source-tree walk skips. The escape hatch
|
|
155
|
+
* for a repo that genuinely carries a tarball as test data — and for this
|
|
156
|
+
* package's own calibration fixtures, whose purpose is to CONTAIN the
|
|
157
|
+
* violation. */
|
|
158
|
+
exclude?: readonly string[];
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Check each installed package under `scope` against the content-addressed
|
|
162
|
+
* store it was installed from. Returns coverage alongside findings, because a
|
|
163
|
+
* pass that verified nothing must not render like a pass that verified
|
|
164
|
+
* everything.
|
|
165
|
+
*/
|
|
166
|
+
export declare function checkInstalledIntegrity(args: {
|
|
167
|
+
repoDir: string;
|
|
168
|
+
modulesDir: string;
|
|
169
|
+
scope: string;
|
|
170
|
+
}): {
|
|
171
|
+
coverage: InstalledIntegrityCoverage;
|
|
172
|
+
findings: DependencySourceFinding[];
|
|
173
|
+
};
|
|
174
|
+
/** Audit one repository for dependencies whose source is not the registry. */
|
|
175
|
+
export declare function checkDependencySources(options: CheckDependencySourcesOptions): DependencySourceReport;
|
|
176
|
+
/** One finding rendered as the failure a reader has to act on. */
|
|
177
|
+
export declare function describeDependencySourceFinding(finding: DependencySourceFinding): string;
|
|
178
|
+
export declare function formatDependencySourceReport(report: DependencySourceReport): string;
|
package/dist/plans/index.d.ts
CHANGED
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
* This module only projects that substrate state into chat events and
|
|
6
6
|
* persisted message parts that products can render and restore.
|
|
7
7
|
*/
|
|
8
|
-
declare const PLAN_SUBMITTED_EVENT: "plan.submitted";
|
|
8
|
+
export declare const PLAN_SUBMITTED_EVENT: "plan.submitted";
|
|
9
9
|
/** Sandbox plan lifecycle. `preparing` is the transient submission state and
|
|
10
10
|
* is retained in the projection even though the chat card normally starts at
|
|
11
11
|
* `pending`. */
|
|
12
|
-
type ChatPlanStatus = 'preparing' | 'pending' | 'approved' | 'rejected' | 'superseded' | 'withdrawn';
|
|
12
|
+
export type ChatPlanStatus = 'preparing' | 'pending' | 'approved' | 'rejected' | 'superseded' | 'withdrawn';
|
|
13
13
|
type ChatPlanBase = {
|
|
14
14
|
/** The sandbox SDK calls this field `id`; the transcript projection names
|
|
15
15
|
* it explicitly so it cannot collide with a message-part id. */
|
|
@@ -23,7 +23,7 @@ type ChatPlanBase = {
|
|
|
23
23
|
decidedBy?: string;
|
|
24
24
|
};
|
|
25
25
|
/** Browser/persisted projection of the sandbox SDK's durable-plan union. */
|
|
26
|
-
type ChatPlan = ChatPlanBase & ({
|
|
26
|
+
export type ChatPlan = ChatPlanBase & ({
|
|
27
27
|
status: 'preparing';
|
|
28
28
|
} | {
|
|
29
29
|
status: 'pending';
|
|
@@ -44,11 +44,11 @@ type ChatPlan = ChatPlanBase & ({
|
|
|
44
44
|
withdrawnReason: string;
|
|
45
45
|
});
|
|
46
46
|
/** Canonical transcript part for one durable plan. */
|
|
47
|
-
type ChatPlanPersistedPart = ChatPlan & {
|
|
47
|
+
export type ChatPlanPersistedPart = ChatPlan & {
|
|
48
48
|
type: 'plan';
|
|
49
49
|
};
|
|
50
50
|
/** Resolve the result of parsing a plan submission into success with value or failure with error */
|
|
51
|
-
type ParsePlanSubmittedResult = {
|
|
51
|
+
export type ParsePlanSubmittedResult = {
|
|
52
52
|
succeeded: true;
|
|
53
53
|
value: ChatPlan;
|
|
54
54
|
} | {
|
|
@@ -56,20 +56,19 @@ type ParsePlanSubmittedResult = {
|
|
|
56
56
|
error: string;
|
|
57
57
|
};
|
|
58
58
|
/** Generate a unique key string for a given plan identifier */
|
|
59
|
-
declare function planPartKey(planId: string): string;
|
|
59
|
+
export declare function planPartKey(planId: string): string;
|
|
60
60
|
/** Generate a unique key string for a plan based on its ID and revision number */
|
|
61
|
-
declare function planRevisionKey(planId: string, revision: number): string;
|
|
61
|
+
export declare function planRevisionKey(planId: string, revision: number): string;
|
|
62
62
|
/** Generate a unique follow-up turn ID based on the plan ID and its outcome */
|
|
63
|
-
declare function planFollowUpTurnId(planId: string, outcome: 'approved' | 'rejected'): string;
|
|
63
|
+
export declare function planFollowUpTurnId(planId: string, outcome: 'approved' | 'rejected'): string;
|
|
64
64
|
/** Plan status is monotonic: only a pending plan can settle. */
|
|
65
|
-
declare function canTransitionPlanStatus(from: ChatPlanStatus, to: ChatPlanStatus): boolean;
|
|
65
|
+
export declare function canTransitionPlanStatus(from: ChatPlanStatus, to: ChatPlanStatus): boolean;
|
|
66
66
|
/** Resolve a ChatPlan into its persisted part representation for storage or transmission */
|
|
67
|
-
declare function planToPersistedPart(plan: ChatPlan): ChatPlanPersistedPart;
|
|
67
|
+
export declare function planToPersistedPart(plan: ChatPlan): ChatPlanPersistedPart;
|
|
68
68
|
/** Resolve a persisted part object into a ChatPlan or return null if the type is not 'plan */
|
|
69
|
-
declare function persistedPartToPlan(part: Record<string, unknown>): ChatPlan | null;
|
|
69
|
+
export declare function persistedPartToPlan(part: Record<string, unknown>): ChatPlan | null;
|
|
70
70
|
/** Parses both direct sandbox events (`data.plan`) and session envelopes
|
|
71
71
|
* (`properties.plan`). Session identity is carried by the surrounding stream
|
|
72
72
|
* and is deliberately not required in the payload. */
|
|
73
|
-
declare function parsePlanSubmittedEvent(event: unknown): ParsePlanSubmittedResult;
|
|
74
|
-
|
|
75
|
-
export { type ChatPlan, type ChatPlanPersistedPart, type ChatPlanStatus, PLAN_SUBMITTED_EVENT, type ParsePlanSubmittedResult, canTransitionPlanStatus, parsePlanSubmittedEvent, persistedPartToPlan, planFollowUpTurnId, planPartKey, planRevisionKey, planToPersistedPart };
|
|
73
|
+
export declare function parsePlanSubmittedEvent(event: unknown): ParsePlanSubmittedResult;
|
|
74
|
+
export {};
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { PlatformIdentity, PlatformBillingClient } from './billing/index.js';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Platform billing HTTP transport + tier state for apps on the shared
|
|
5
3
|
* Tangle balance model (id.tangle.tools). Reads authenticate as the user via
|
|
@@ -10,20 +8,20 @@ import { PlatformIdentity, PlatformBillingClient } from './billing/index.js';
|
|
|
10
8
|
* fetch-backed implementation of the `/billing` module's
|
|
11
9
|
* `PlatformBillingClient` seam (type-only import — no runtime coupling).
|
|
12
10
|
*/
|
|
13
|
-
|
|
11
|
+
import type { PlatformBillingClient, PlatformIdentity } from '../billing/index';
|
|
14
12
|
/** Define available subscription tiers for the TanglePlan service */
|
|
15
|
-
type TanglePlanTier = 'free' | 'pro' | 'enterprise';
|
|
13
|
+
export type TanglePlanTier = 'free' | 'pro' | 'enterprise';
|
|
16
14
|
/** 'pro' | 'enterprise' pass through; anything else (null, unknown) → 'free'. */
|
|
17
|
-
declare function normalizeTanglePlanTier(plan: string | null | undefined): TanglePlanTier;
|
|
15
|
+
export declare function normalizeTanglePlanTier(plan: string | null | undefined): TanglePlanTier;
|
|
18
16
|
/** Represent platform billing HTTP errors with status code and detailed message */
|
|
19
|
-
declare class PlatformBillingHttpError extends Error {
|
|
17
|
+
export declare class PlatformBillingHttpError extends Error {
|
|
20
18
|
readonly status: number;
|
|
21
19
|
constructor(status: number, detail: string);
|
|
22
20
|
}
|
|
23
21
|
/** Structural guard (name + numeric status) — robust across module instances. */
|
|
24
|
-
declare function isPlatformBillingHttpError(error: unknown): error is PlatformBillingHttpError;
|
|
22
|
+
export declare function isPlatformBillingHttpError(error: unknown): error is PlatformBillingHttpError;
|
|
25
23
|
/** Define HTTP options for platform billing including base URL, service token, product slug, fetch implementation, and timeout */
|
|
26
|
-
interface PlatformBillingHttpOptions {
|
|
24
|
+
export interface PlatformBillingHttpOptions {
|
|
27
25
|
/** Platform root, e.g. https://id.tangle.tools (trailing slashes stripped). */
|
|
28
26
|
baseUrl: string;
|
|
29
27
|
/** Used only by `deduct()`; resolved lazily so reads never require it.
|
|
@@ -36,33 +34,33 @@ interface PlatformBillingHttpOptions {
|
|
|
36
34
|
timeoutMs?: number;
|
|
37
35
|
}
|
|
38
36
|
/** Describe subscription tier and status information for a platform user */
|
|
39
|
-
interface PlatformSubscriptionInfo {
|
|
37
|
+
export interface PlatformSubscriptionInfo {
|
|
40
38
|
tier: TanglePlanTier;
|
|
41
39
|
status: string | null;
|
|
42
40
|
}
|
|
43
41
|
/** Describe the platform balance and lifetime spending with an optional update timestamp */
|
|
44
|
-
interface PlatformBalanceSnapshot {
|
|
42
|
+
export interface PlatformBalanceSnapshot {
|
|
45
43
|
balance: number;
|
|
46
44
|
lifetimeSpent: number;
|
|
47
45
|
updatedAt?: string;
|
|
48
46
|
}
|
|
49
47
|
/** Describe a product's usage and spending metrics on the platform */
|
|
50
|
-
interface PlatformUsageProductRow {
|
|
48
|
+
export interface PlatformUsageProductRow {
|
|
51
49
|
product: string | null;
|
|
52
50
|
totalSpent: number;
|
|
53
51
|
count: number;
|
|
54
52
|
}
|
|
55
53
|
/** Lifecycle of a per-product seat subscription, mirroring the Stripe states
|
|
56
54
|
* the platform persists. 'none' = the user has never held this seat. */
|
|
57
|
-
type SeatStatus = 'none' | 'active' | 'trialing' | 'past_due' | 'canceled';
|
|
55
|
+
export type SeatStatus = 'none' | 'active' | 'trialing' | 'past_due' | 'canceled';
|
|
58
56
|
/** Price and included shared-wallet credit for one seat billing period. */
|
|
59
|
-
interface ProductSeatOfferPeriod {
|
|
57
|
+
export interface ProductSeatOfferPeriod {
|
|
60
58
|
priceCents: number;
|
|
61
59
|
includedCreditsCents: number;
|
|
62
60
|
}
|
|
63
61
|
/** Commercial terms returned by the platform's product catalog. Products use
|
|
64
62
|
* this exact object for display instead of duplicating prices in UI copy. */
|
|
65
|
-
interface ProductSeatOffer {
|
|
63
|
+
export interface ProductSeatOffer {
|
|
66
64
|
currency: 'usd';
|
|
67
65
|
interval: 'month';
|
|
68
66
|
recurring: ProductSeatOfferPeriod;
|
|
@@ -78,7 +76,7 @@ interface ProductSeatOffer {
|
|
|
78
76
|
* `onFreeTier` remains in the wire shape for compatibility, but this client
|
|
79
77
|
* always returns false and never uses it for access.
|
|
80
78
|
*/
|
|
81
|
-
interface ProductEntitlement {
|
|
79
|
+
export interface ProductEntitlement {
|
|
82
80
|
seatStatus: SeatStatus;
|
|
83
81
|
/** ISO timestamp the active seat's paid period runs until; null when none. */
|
|
84
82
|
currentPeriodEnd: string | null;
|
|
@@ -90,7 +88,7 @@ interface ProductEntitlement {
|
|
|
90
88
|
offer?: ProductSeatOffer;
|
|
91
89
|
}
|
|
92
90
|
/** Define methods to interact with platform billing endpoints using user or service authentication */
|
|
93
|
-
interface PlatformBillingHttp {
|
|
91
|
+
export interface PlatformBillingHttp {
|
|
94
92
|
/** GET /v1/plans/current (user bearer). */
|
|
95
93
|
getSubscription(userApiKey: string): Promise<PlatformSubscriptionInfo>;
|
|
96
94
|
/** GET /v1/billing/balance (user bearer). */
|
|
@@ -113,23 +111,23 @@ interface PlatformBillingHttp {
|
|
|
113
111
|
seatCheckoutUrl(productId: string): string;
|
|
114
112
|
}
|
|
115
113
|
/** Create a PlatformBillingHttp instance configured with given options and default behaviors */
|
|
116
|
-
declare function createPlatformBillingHttp(opts: PlatformBillingHttpOptions): PlatformBillingHttp;
|
|
114
|
+
export declare function createPlatformBillingHttp(opts: PlatformBillingHttpOptions): PlatformBillingHttp;
|
|
117
115
|
/**
|
|
118
116
|
* Platform Stripe checkout URL for a product's catalog-backed seat. The
|
|
119
117
|
* platform resolves the product-specific price and introductory offer from the
|
|
120
118
|
* `product` query param. Mirrors the `billingUrl()` shape — a deterministic
|
|
121
119
|
* platform-rooted URL with no client-side pricing decisions.
|
|
122
120
|
*/
|
|
123
|
-
declare function seatCheckoutUrl(baseUrl: string, productId: string): string;
|
|
121
|
+
export declare function seatCheckoutUrl(baseUrl: string, productId: string): string;
|
|
124
122
|
/** Define policy settings for concurrency and overage allowance in a tangle tier */
|
|
125
|
-
interface TangleTierPolicy {
|
|
123
|
+
export interface TangleTierPolicy {
|
|
126
124
|
concurrency: number;
|
|
127
125
|
overageAllowed: boolean;
|
|
128
126
|
}
|
|
129
127
|
/** Define default concurrency and overage policies for each TanglePlanTier level */
|
|
130
|
-
declare const DEFAULT_TANGLE_TIER_POLICY: Record<TanglePlanTier, TangleTierPolicy>;
|
|
128
|
+
export declare const DEFAULT_TANGLE_TIER_POLICY: Record<TanglePlanTier, TangleTierPolicy>;
|
|
131
129
|
/** Describe the state of a Tangle plan tier including subscription, balance, spending, and concurrency details */
|
|
132
|
-
interface TangleTierState {
|
|
130
|
+
export interface TangleTierState {
|
|
133
131
|
tier: TanglePlanTier;
|
|
134
132
|
subscriptionStatus: string | null;
|
|
135
133
|
remainingBalanceUsd: number;
|
|
@@ -143,16 +141,16 @@ interface TangleTierState {
|
|
|
143
141
|
* never started against an unknown balance. Platform errors throw; callers
|
|
144
142
|
* on the billable path choose their posture explicitly.
|
|
145
143
|
*/
|
|
146
|
-
declare function readTangleTierState(http: PlatformBillingHttp, userApiKey: string | null | undefined, policy?: Record<TanglePlanTier, TangleTierPolicy>): Promise<TangleTierState>;
|
|
144
|
+
export declare function readTangleTierState(http: PlatformBillingHttp, userApiKey: string | null | undefined, policy?: Record<TanglePlanTier, TangleTierPolicy>): Promise<TangleTierState>;
|
|
147
145
|
/** Product-funded free inference spend is disabled. */
|
|
148
|
-
declare const FREE_TIER_SPEND_CAP_USD = 0;
|
|
146
|
+
export declare const FREE_TIER_SPEND_CAP_USD = 0;
|
|
149
147
|
/**
|
|
150
148
|
* Default name of the per-app feature flag that controls seat billing.
|
|
151
149
|
* Explicit values override the environment default.
|
|
152
150
|
*/
|
|
153
|
-
declare const DEFAULT_SEAT_BILLING_ENABLED_ENV_VAR = "SEAT_BILLING_ENABLED";
|
|
151
|
+
export declare const DEFAULT_SEAT_BILLING_ENABLED_ENV_VAR = "SEAT_BILLING_ENABLED";
|
|
154
152
|
/** Define options to configure seat billing flag environment variables and override flag name */
|
|
155
|
-
interface SeatBillingFlagOptions {
|
|
153
|
+
export interface SeatBillingFlagOptions {
|
|
156
154
|
env?: Record<string, string | undefined>;
|
|
157
155
|
/** Override the flag name; default {@link DEFAULT_SEAT_BILLING_ENABLED_ENV_VAR}. */
|
|
158
156
|
flagEnvVar?: string;
|
|
@@ -162,7 +160,7 @@ interface SeatBillingFlagOptions {
|
|
|
162
160
|
* Without a flag, known development and test environments default to OFF.
|
|
163
161
|
* Deployed and unknown environments default to ON.
|
|
164
162
|
*/
|
|
165
|
-
declare function isSeatBillingEnabled(opts?: SeatBillingFlagOptions): boolean;
|
|
163
|
+
export declare function isSeatBillingEnabled(opts?: SeatBillingFlagOptions): boolean;
|
|
166
164
|
/**
|
|
167
165
|
* Read a user's entitlement for one product.
|
|
168
166
|
* An absent key or disabled flag returns no access.
|
|
@@ -171,15 +169,13 @@ declare function isSeatBillingEnabled(opts?: SeatBillingFlagOptions): boolean;
|
|
|
171
169
|
* @param flag — pass {@link isSeatBillingEnabled} (or your own boolean) so the
|
|
172
170
|
* product owns when the gate engages. When false, no network call is made.
|
|
173
171
|
*/
|
|
174
|
-
declare function getProductEntitlement(http: Pick<PlatformBillingHttp, 'getProductEntitlement'>, userApiKey: string | null | undefined, productId: string, flag?: boolean): Promise<ProductEntitlement>;
|
|
172
|
+
export declare function getProductEntitlement(http: Pick<PlatformBillingHttp, 'getProductEntitlement'>, userApiKey: string | null | undefined, productId: string, flag?: boolean): Promise<ProductEntitlement>;
|
|
175
173
|
/** Product access requires an active paid or trialing seat. */
|
|
176
|
-
declare function isProductEntitled(ent: ProductEntitlement): boolean;
|
|
174
|
+
export declare function isProductEntitled(ent: ProductEntitlement): boolean;
|
|
177
175
|
/** Define a contract for resolving platform identities based on user identifiers */
|
|
178
|
-
interface PlatformIdentityStore {
|
|
176
|
+
export interface PlatformIdentityStore {
|
|
179
177
|
resolveIdentity(userId: string): Promise<PlatformIdentity | null>;
|
|
180
178
|
}
|
|
181
179
|
/** Concrete fetch-backed `PlatformBillingClient<TanglePlanTier>` for
|
|
182
180
|
* `createPlatformBalanceManager` (from `/billing`). */
|
|
183
|
-
declare function createTanglePlatformBillingClient(http: PlatformBillingHttp, identity: PlatformIdentityStore): PlatformBillingClient<TanglePlanTier>;
|
|
184
|
-
|
|
185
|
-
export { DEFAULT_SEAT_BILLING_ENABLED_ENV_VAR as D, FREE_TIER_SPEND_CAP_USD as F, type PlatformBalanceSnapshot as P, type SeatBillingFlagOptions as S, type TanglePlanTier as T, DEFAULT_TANGLE_TIER_POLICY as a, type PlatformBillingHttp as b, PlatformBillingHttpError as c, type PlatformBillingHttpOptions as d, type PlatformIdentityStore as e, type PlatformSubscriptionInfo as f, type PlatformUsageProductRow as g, type ProductEntitlement as h, type ProductSeatOffer as i, type ProductSeatOfferPeriod as j, type SeatStatus as k, type TangleTierPolicy as l, type TangleTierState as m, createPlatformBillingHttp as n, createTanglePlatformBillingClient as o, getProductEntitlement as p, isPlatformBillingHttpError as q, isProductEntitled as r, isSeatBillingEnabled as s, normalizeTanglePlanTier as t, readTangleTierState as u, seatCheckoutUrl as v };
|
|
181
|
+
export declare function createTanglePlatformBillingClient(http: PlatformBillingHttp, identity: PlatformIdentityStore): PlatformBillingClient<TanglePlanTier>;
|