@tangle-network/agent-app 0.45.53 → 0.45.55
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/alerting/index.d.ts +5 -175
- package/dist/alerting/slack.d.ts +176 -0
- package/dist/app-auth/index.d.ts +14 -17
- package/dist/assets/index.d.ts +2 -504
- package/dist/assets/schema.d.ts +264 -0
- package/dist/assets/types.d.ts +237 -0
- package/dist/assistant/AssistantDock.d.ts +56 -0
- package/dist/assistant/AssistantHistory.d.ts +41 -0
- package/dist/assistant/AssistantPanel.d.ts +84 -0
- package/dist/assistant/ProposalCard.d.ts +41 -0
- package/dist/assistant/ResizeHandle.d.ts +19 -0
- package/dist/assistant/client-context.d.ts +20 -0
- package/dist/assistant/client.d.ts +117 -0
- package/dist/assistant/index.d.ts +19 -848
- package/dist/assistant/launcher.d.ts +23 -0
- package/dist/assistant/persistence.d.ts +26 -0
- package/dist/assistant/presentation.d.ts +99 -0
- package/dist/assistant/provider-label.d.ts +7 -0
- package/dist/assistant/reducer.d.ts +130 -0
- package/dist/assistant/sse.d.ts +24 -0
- package/dist/assistant/time-ago.d.ts +6 -0
- package/dist/assistant/transcript.d.ts +97 -0
- package/dist/assistant/types.d.ts +291 -0
- package/dist/assistant/use-stick-to-bottom.d.ts +28 -0
- package/dist/assistant/useAssistantChat.d.ts +63 -0
- package/dist/assistant/useAssistantModels.d.ts +22 -0
- package/dist/assistant/useAssistantThreads.d.ts +47 -0
- package/dist/assistant/usePanelPrefs.d.ts +55 -0
- package/dist/billing/index.d.ts +19 -21
- package/dist/brand/index.d.ts +16 -10
- package/dist/brand-extraction/extract.d.ts +34 -0
- package/dist/brand-extraction/index.d.ts +12 -214
- package/dist/brand-extraction/map.d.ts +58 -0
- package/dist/brand-extraction/types.d.ts +119 -0
- package/dist/catalog/index.d.ts +11 -101
- package/dist/chat-react/composer-mode-controls.d.ts +14 -0
- package/dist/chat-react/entry-composer.d.ts +92 -0
- package/dist/chat-react/index.d.ts +22 -118
- package/dist/chat-react/types.d.ts +11 -0
- package/dist/chat-routes/attachment-store.d.ts +84 -0
- package/dist/chat-routes/attachment-upload.d.ts +84 -0
- package/dist/chat-routes/attachment-validation.d.ts +95 -0
- package/dist/chat-routes/binary-sniff.d.ts +45 -0
- package/dist/chat-routes/completed-sandbox-turn.d.ts +25 -0
- package/dist/chat-routes/detached-turn.d.ts +197 -0
- package/dist/chat-routes/dispatch-parts.d.ts +101 -0
- package/dist/chat-routes/draft-persistence.d.ts +189 -0
- package/dist/chat-routes/durable-projection.d.ts +18 -0
- package/dist/chat-routes/file-index.d.ts +115 -0
- package/dist/chat-routes/index.d.ts +25 -1840
- package/dist/chat-routes/model-failover-stream.d.ts +206 -0
- package/dist/chat-routes/promote-file-part.d.ts +84 -0
- package/dist/chat-routes/resolve-attachments.d.ts +72 -0
- package/dist/chat-routes/sandbox-producer.d.ts +146 -0
- package/dist/chat-routes/sandbox-turn-usage.d.ts +4 -0
- package/dist/{stale-turn-lock-DucQzvXu.d.ts → chat-routes/stale-turn-lock.d.ts} +7 -9
- package/dist/chat-routes/turn-routes.d.ts +540 -0
- package/dist/chat-routes/upload.d.ts +84 -0
- package/dist/{wire-DOZ-O6hD.d.ts → chat-routes/wire.d.ts} +41 -44
- package/dist/chat-store/core.d.ts +19 -0
- package/dist/chat-store/index.d.ts +22 -322
- package/dist/{parts-BqIHMdyu.d.ts → chat-store/parts.d.ts} +49 -47
- package/dist/chat-store/schema.d.ts +157 -0
- package/dist/chat-store/store.d.ts +177 -0
- package/dist/config/index.d.ts +13 -18
- package/dist/crypto/index.d.ts +10 -12
- package/dist/crypto/web-token.d.ts +22 -0
- package/dist/design-canvas/apply.d.ts +70 -0
- package/dist/design-canvas/drizzle-store.d.ts +29 -0
- package/dist/design-canvas/drizzle.d.ts +7 -575
- package/dist/{export-presets-mgVulRaV.d.ts → design-canvas/export-presets.d.ts} +18 -22
- package/dist/design-canvas/index.d.ts +22 -268
- package/dist/design-canvas/mcp-entry.d.ts +15 -0
- package/dist/design-canvas/mcp-handler.d.ts +34 -0
- package/dist/design-canvas/mcp-tools.d.ts +30 -0
- package/dist/{model-DnfO_PdJ.d.ts → design-canvas/model.d.ts} +33 -35
- package/dist/{operations-ByJ6yXOW.d.ts → design-canvas/operations.d.ts} +21 -25
- package/dist/design-canvas/schema.d.ts +558 -0
- package/dist/{store-CqfDtnPQ.d.ts → design-canvas/store.d.ts} +8 -12
- package/dist/design-canvas/templates.d.ts +72 -0
- package/dist/design-canvas/validate.d.ts +32 -0
- package/dist/design-canvas-react/components/BleedTrimOverlay.d.ts +22 -0
- package/dist/design-canvas-react/components/BrandKnot.d.ts +11 -0
- package/dist/design-canvas-react/components/CanvasEmptyState.d.ts +32 -0
- package/dist/design-canvas-react/components/CanvasInsertPanel.d.ts +53 -0
- package/dist/{lazy-DrkVyDpe.d.ts → design-canvas-react/components/DesignCanvas.d.ts} +27 -20
- package/dist/design-canvas-react/components/DesignCanvasEditor.d.ts +23 -0
- package/dist/design-canvas-react/components/ElementNode.d.ts +51 -0
- package/dist/design-canvas-react/components/ExportControl.d.ts +21 -0
- package/dist/design-canvas-react/components/GridLayer.d.ts +47 -0
- package/dist/design-canvas-react/components/InlineTextEditor.d.ts +25 -0
- package/dist/design-canvas-react/components/LayersPanel.d.ts +20 -0
- package/dist/design-canvas-react/components/PagesStrip.d.ts +34 -0
- package/dist/design-canvas-react/components/Rulers.d.ts +31 -0
- package/dist/design-canvas-react/components/SelectionLayer.d.ts +51 -0
- package/dist/design-canvas-react/components/SnapGuidesOverlay.d.ts +25 -0
- package/dist/design-canvas-react/components/Toolbar.d.ts +64 -0
- package/dist/design-canvas-react/components/Workspace.d.ts +92 -0
- package/dist/design-canvas-react/components/ZoomControls.d.ts +14 -0
- package/dist/design-canvas-react/components/glyphs.d.ts +46 -0
- package/dist/design-canvas-react/components/icon-button.d.ts +22 -0
- package/dist/design-canvas-react/components/index.d.ts +27 -0
- package/dist/design-canvas-react/components/layer-tree.d.ts +34 -0
- package/dist/design-canvas-react/components/ruler-math.d.ts +78 -0
- package/dist/design-canvas-react/components/transform-math.d.ts +168 -0
- package/dist/{command-stack-TNPWJCzW.d.ts → design-canvas-react/contracts.d.ts} +16 -63
- package/dist/design-canvas-react/engine/command-stack.d.ts +43 -0
- package/dist/design-canvas-react/engine/commands.d.ts +154 -0
- package/dist/design-canvas-react/engine/selection.d.ts +48 -0
- package/dist/design-canvas-react/engine/snap.d.ts +24 -0
- package/dist/design-canvas-react/engine/zoom-pan.d.ts +18 -0
- package/dist/design-canvas-react/engine.d.ts +21 -399
- package/dist/design-canvas-react/export-math.d.ts +104 -0
- package/dist/design-canvas-react/export.d.ts +89 -0
- package/dist/design-canvas-react/index.d.ts +16 -586
- package/dist/design-canvas-react/insert-builders.d.ts +61 -0
- package/dist/design-canvas-react/lazy.d.ts +21 -6
- package/dist/documents/docx.d.ts +50 -0
- package/dist/documents/extract.d.ts +87 -0
- package/dist/documents/index.d.ts +26 -232
- package/dist/documents/media-type.d.ts +33 -0
- package/dist/documents/pdf-inspector.d.ts +5 -9
- package/dist/{types-DrBidf3O.d.ts → documents/types.d.ts} +13 -15
- package/dist/documents/zip.d.ts +56 -0
- package/dist/eval/calibration.d.ts +106 -0
- package/dist/eval/index.d.ts +8 -116
- package/dist/eval-campaign/index.d.ts +11 -12
- package/dist/{trust-gate-Dcm5xSva.d.ts → eval-campaign/trust-gate.d.ts} +5 -9
- package/dist/forms/blank.d.ts +48 -0
- package/dist/forms/fill.d.ts +105 -0
- package/dist/forms/index.d.ts +58 -332
- package/dist/forms/registry.d.ts +115 -0
- package/dist/forms/verify.d.ts +58 -0
- package/dist/harness/index.d.ts +21 -19
- package/dist/intakes/api.d.ts +5 -11
- package/dist/{completion-CvcNUz07.d.ts → intakes/completion.d.ts} +7 -11
- package/dist/intakes/context-sufficiency.d.ts +113 -0
- package/dist/intakes/drizzle/schema.d.ts +338 -0
- package/dist/intakes/drizzle/store.d.ts +75 -0
- package/dist/intakes/drizzle.d.ts +12 -391
- package/dist/intakes/index.d.ts +23 -113
- package/dist/{model-C8U0HZxL.d.ts → intakes/model.d.ts} +15 -17
- package/dist/intakes-react/components/BrandMark.d.ts +10 -0
- package/dist/intakes-react/components/IntakeInterview.d.ts +15 -0
- package/dist/intakes-react/components/index.d.ts +1 -0
- package/dist/intakes-react/contracts.d.ts +42 -0
- package/dist/intakes-react/index.d.ts +12 -47
- package/dist/intakes-react/lazy.d.ts +9 -8
- package/dist/integrations/index.d.ts +10 -12
- package/dist/{contract-OxG_jVMx.d.ts → interactions/contract.d.ts} +40 -42
- package/dist/interactions/index.d.ts +16 -256
- package/dist/interactions/route.d.ts +151 -0
- package/dist/interactions/sidecar.d.ts +100 -0
- package/dist/knowledge/index.d.ts +7 -11
- package/dist/knowledge-loop/index.d.ts +13 -20
- package/dist/legibility/checks/empty-state.d.ts +59 -0
- package/dist/legibility/checks/reachability.d.ts +103 -0
- package/dist/legibility/checks/silent-failure.d.ts +57 -0
- package/dist/legibility/checks/success.d.ts +38 -0
- package/dist/legibility/checks/vocabulary.d.ts +65 -0
- package/dist/legibility/cli-args.d.ts +30 -0
- package/dist/legibility/cli.d.ts +25 -0
- package/dist/legibility/index.d.ts +10 -530
- package/dist/legibility/report.d.ts +22 -0
- package/dist/legibility/scan.d.ts +29 -0
- package/dist/legibility/source.d.ts +132 -0
- package/dist/legibility/suppress.d.ts +36 -0
- package/dist/legibility/types.d.ts +168 -0
- package/dist/legibility/walk-sources.d.ts +21 -0
- package/dist/{agent-activity-C8ZG0F0M.d.ts → missions/agent-activity.d.ts} +3 -5
- package/dist/missions/engine.d.ts +251 -0
- package/dist/missions/events.d.ts +195 -0
- package/dist/missions/index.d.ts +12 -765
- package/dist/missions/plan-parse.d.ts +50 -0
- package/dist/missions/service.d.ts +265 -0
- package/dist/{failover-D-3UXXTb.d.ts → model-resolution/failover.d.ts} +10 -12
- package/dist/model-resolution/index.d.ts +15 -18
- package/dist/object-store/index.d.ts +15 -17
- package/dist/openui/action.d.ts +54 -0
- package/dist/openui/authoring.d.ts +25 -0
- package/dist/openui/index.d.ts +24 -206
- package/dist/openui/route.d.ts +124 -0
- package/dist/openui/segments.d.ts +71 -0
- package/dist/openui/values.d.ts +82 -0
- package/dist/openui-react/index.d.ts +9 -13
- package/dist/peer-floors/check.d.ts +9 -190
- package/dist/peer-floors/cli.d.ts +2 -3
- package/dist/peer-floors/dependency-source.d.ts +178 -0
- package/dist/plans/index.d.ts +13 -14
- package/dist/{billing-BuNlaKlE.d.ts → platform/billing.d.ts} +28 -32
- package/dist/platform/guards.d.ts +79 -0
- package/dist/platform/hub.d.ts +107 -0
- package/dist/platform/index.d.ts +7 -112
- package/dist/{sso-Cm00S61u.d.ts → platform/sso.d.ts} +15 -97
- package/dist/preflight/cli.d.ts +3 -6
- package/dist/preflight/index.d.ts +16 -18
- package/dist/preset-cloudflare/headers.d.ts +12 -0
- package/dist/preset-cloudflare/index.d.ts +22 -74
- package/dist/preset-cloudflare/workflow-instance.d.ts +35 -0
- package/dist/profile/budget.d.ts +72 -0
- package/dist/profile/fingerprint.d.ts +65 -0
- package/dist/profile/index.d.ts +27 -19
- package/dist/prompt/index.d.ts +3 -5
- package/dist/record/drizzle/schema.d.ts +488 -0
- package/dist/record/drizzle/store.d.ts +224 -0
- package/dist/record/drizzle.d.ts +10 -679
- package/dist/record/fold.d.ts +99 -0
- package/dist/record/index.d.ts +13 -13
- package/dist/{fold-DACU7gtf.d.ts → record/model.d.ts} +22 -124
- package/dist/record/ulid.d.ts +12 -0
- package/dist/redact/index.d.ts +14 -16
- package/dist/run/index.d.ts +11 -16
- package/dist/runtime/agent.d.ts +23 -0
- package/dist/runtime/certified-delivery.d.ts +57 -0
- package/dist/runtime/index.d.ts +17 -367
- package/dist/runtime/loop.d.ts +58 -0
- package/dist/runtime/model-catalog.d.ts +103 -0
- package/dist/{model-CdCDfBA9.d.ts → runtime/model.d.ts} +25 -27
- package/dist/runtime/openai-stream.d.ts +126 -0
- package/dist/runtime/surface-profile.d.ts +115 -0
- package/dist/sandbox/binary-read.d.ts +63 -0
- package/dist/sandbox/diagnostics.d.ts +69 -0
- package/dist/sandbox/index.d.ts +103 -1085
- package/dist/sandbox/model.d.ts +179 -0
- package/dist/sandbox/outcome.d.ts +10 -0
- package/dist/sandbox/prewarm-claim-d1.d.ts +80 -0
- package/dist/sandbox/prewarm.d.ts +193 -0
- package/dist/sandbox/recovery.d.ts +216 -0
- package/dist/sandbox/terminal-connection.d.ts +145 -0
- package/dist/sandbox/workspace-sandbox-manager.d.ts +44 -0
- package/dist/sequences/apply.d.ts +54 -0
- package/dist/sequences/captions.d.ts +91 -0
- package/dist/sequences/drizzle-store.d.ts +36 -0
- package/dist/sequences/drizzle.d.ts +7 -1252
- package/dist/sequences/exports.d.ts +138 -0
- package/dist/sequences/index.d.ts +19 -340
- package/dist/sequences/mcp-entry.d.ts +15 -0
- package/dist/sequences/mcp-handler.d.ts +39 -0
- package/dist/sequences/mcp-tools.d.ts +47 -0
- package/dist/{store-B7LLlk9p.d.ts → sequences/model.d.ts} +26 -110
- package/dist/sequences/operations.d.ts +126 -0
- package/dist/sequences/schema.d.ts +1231 -0
- package/dist/sequences/store.d.ts +81 -0
- package/dist/sequences/validate.d.ts +98 -0
- package/dist/sequences-react/components/BrandMark.d.ts +10 -0
- package/dist/sequences-react/components/PreviewCanvas.d.ts +26 -0
- package/dist/sequences-react/components/SnapIndicatorLine.d.ts +11 -0
- package/dist/sequences-react/components/TimelineClipChip.d.ts +80 -0
- package/dist/sequences-react/components/TimelineEditor.d.ts +44 -0
- package/dist/sequences-react/components/TimelineEmptyState.d.ts +21 -0
- package/dist/sequences-react/components/TimelineGhostLanes.d.ts +14 -0
- package/dist/sequences-react/components/TimelinePlayhead.d.ts +11 -0
- package/dist/sequences-react/components/TimelineRuler.d.ts +16 -0
- package/dist/sequences-react/components/TimelineSmallScreenGate.d.ts +12 -0
- package/dist/sequences-react/components/TimelineTrackRow.d.ts +51 -0
- package/dist/sequences-react/components/ZoomControl.d.ts +15 -0
- package/dist/sequences-react/components/composite-command.d.ts +8 -0
- package/dist/sequences-react/components/glyphs.d.ts +26 -0
- package/dist/sequences-react/components/index.d.ts +31 -0
- package/dist/sequences-react/components/interaction-math.d.ts +103 -0
- package/dist/sequences-react/contracts.d.ts +187 -0
- package/dist/sequences-react/engine/command-stack.d.ts +18 -0
- package/dist/sequences-react/engine/commands.d.ts +146 -0
- package/dist/sequences-react/engine/playback.d.ts +18 -0
- package/dist/sequences-react/engine/snap.d.ts +29 -0
- package/dist/sequences-react/engine/zoom.d.ts +29 -0
- package/dist/sequences-react/index.d.ts +20 -880
- package/dist/sequences-react/lazy.d.ts +8 -0
- package/dist/sequences-react/media/frame-provider.d.ts +70 -0
- package/dist/sequences-react/media/transcription.d.ts +33 -0
- package/dist/sequences-react/media/waveform.d.ts +34 -0
- package/dist/session-shell/index.d.ts +31 -204
- package/dist/session-shell/nav-guard.d.ts +170 -0
- package/dist/session-shell/path.d.ts +19 -0
- package/dist/signoff/cli.d.ts +4 -7
- package/dist/signoff/config.d.ts +12 -0
- package/dist/signoff/exec.d.ts +44 -0
- package/dist/signoff/index.d.ts +56 -14
- package/dist/signoff/invoked-as-script.d.ts +25 -0
- package/dist/signoff/node-version.d.ts +50 -0
- package/dist/signoff/proof-attach.d.ts +88 -0
- package/dist/signoff/proof-cli.d.ts +1 -0
- package/dist/signoff/proof-fixture.d.ts +13 -0
- package/dist/signoff/proof-from-report.d.ts +22 -0
- package/dist/signoff/proof-git.d.ts +57 -0
- package/dist/signoff/proof-record.d.ts +202 -0
- package/dist/signoff/proof-verify.d.ts +103 -0
- package/dist/signoff/proof.d.ts +35 -310
- package/dist/signoff/report.d.ts +7 -0
- package/dist/{run-D80hoLKh.d.ts → signoff/run.d.ts} +3 -6
- package/dist/signoff/schedule.d.ts +55 -0
- package/dist/signoff/seeds.d.ts +50 -0
- package/dist/signoff/store.d.ts +22 -0
- package/dist/{types-Bd6uW9vQ.d.ts → signoff/types.d.ts} +15 -17
- package/dist/signoff/workflow-pin.d.ts +56 -0
- package/dist/signoff/workspace.d.ts +40 -0
- package/dist/skills/index.d.ts +28 -32
- package/dist/skills-placement/index.d.ts +7 -11
- package/dist/spend/budget.d.ts +123 -0
- package/dist/spend/ceiling.d.ts +51 -0
- package/dist/spend/cli-args.d.ts +20 -0
- package/dist/spend/cli.d.ts +1 -0
- package/dist/spend/fixtures/incident-parked-time.d.ts +55 -0
- package/dist/spend/index.d.ts +38 -1144
- package/dist/spend/liveness.d.ts +131 -0
- package/dist/spend/ownership.d.ts +87 -0
- package/dist/spend/reconcile.d.ts +109 -0
- package/dist/spend/reference.d.ts +42 -0
- package/dist/spend/report.d.ts +12 -0
- package/dist/spend/store.d.ts +123 -0
- package/dist/spend/types.d.ts +466 -0
- package/dist/store/index.d.ts +10 -12
- package/dist/stories/app-shell/fixtures.d.ts +43 -0
- package/dist/stories/app-shell/shell.d.ts +81 -0
- package/dist/stories/assistant/fixtures.d.ts +73 -0
- package/dist/stories/chat/fixtures.d.ts +70 -0
- package/dist/stories/chat/markdown.d.ts +11 -0
- package/dist/stories/chat/run-drill-in.d.ts +19 -0
- package/dist/stories/chat-controls/fixtures.d.ts +116 -0
- package/dist/stories/design-canvas/fixtures.d.ts +57 -0
- package/dist/stories/fixtures/canvas.d.ts +10 -0
- package/dist/stories/fixtures/catalog.d.ts +7 -0
- package/dist/stories/fixtures/chat.d.ts +39 -0
- package/dist/stories/fixtures/index.d.ts +4 -0
- package/dist/stories/fixtures/sequences.d.ts +17 -0
- package/dist/stories/panels/fixtures.d.ts +63 -0
- package/dist/stories/sequences/fixtures.d.ts +30 -0
- package/dist/stories/studio/fixtures.d.ts +22 -0
- package/dist/stream/index.d.ts +10 -56
- package/dist/{stream-normalizer-DKRxyVlZ.d.ts → stream/stream-normalizer.d.ts} +23 -26
- package/dist/{turn-buffer-COMQUwO2.d.ts → stream/turn-buffer.d.ts} +21 -23
- package/dist/stream/turn-identity.d.ts +49 -0
- package/dist/studio/generation.d.ts +179 -0
- package/dist/studio/index.d.ts +12 -181
- package/dist/studio-react/avatar-composer.d.ts +8 -0
- package/dist/studio-react/composer-hero.d.ts +12 -0
- package/dist/studio-react/composer-shell.d.ts +18 -0
- package/dist/studio-react/generation-card.d.ts +9 -0
- package/dist/studio-react/generation-detail-modal.d.ts +11 -0
- package/dist/studio-react/generation-detail.d.ts +6 -0
- package/dist/studio-react/generation-grid.d.ts +15 -0
- package/dist/studio-react/image-composer.d.ts +8 -0
- package/dist/studio-react/index.d.ts +32 -245
- package/dist/studio-react/library-drawer.d.ts +12 -0
- package/dist/studio-react/library-panel.d.ts +15 -0
- package/dist/studio-react/publish-package-composer.d.ts +18 -0
- package/dist/studio-react/result-canvas.d.ts +6 -0
- package/dist/studio-react/speech-composer.d.ts +4 -0
- package/dist/studio-react/studio-header.d.ts +5 -0
- package/dist/studio-react/studio-sheet.d.ts +12 -0
- package/dist/studio-react/studio-workspace.d.ts +23 -0
- package/dist/studio-react/transcription-composer.d.ts +12 -0
- package/dist/studio-react/type-config.d.ts +11 -0
- package/dist/studio-react/use-studio-generations.d.ts +20 -0
- package/dist/studio-react/video-composer.d.ts +10 -0
- package/dist/tangle/index.d.ts +7 -9
- package/dist/teams/drizzle/access.d.ts +82 -0
- package/dist/{invitations-schema-_fI7HkJP.d.ts → teams/drizzle/invitations-schema.d.ts} +39 -27
- package/dist/teams/drizzle/personal-organization.d.ts +41 -0
- package/dist/{access-490O6aOU.d.ts → teams/drizzle/schema.d.ts} +57 -122
- package/dist/teams/drizzle.d.ts +12 -44
- package/dist/teams/index.d.ts +20 -44
- package/dist/teams/invitations-api.d.ts +17 -21
- package/dist/{invitations-DoYMvXea.d.ts → teams/invitations.d.ts} +14 -18
- package/dist/teams/invite.d.ts +42 -0
- package/dist/teams/members-api.d.ts +12 -16
- package/dist/teams/resend.d.ts +3 -13
- package/dist/{roles-B4nU3jDi.d.ts → teams/roles.d.ts} +18 -20
- package/dist/teams-react/components/BrandMark.d.ts +10 -0
- package/dist/teams-react/components/InvitationsPanel.d.ts +13 -0
- package/dist/teams-react/components/InviteAcceptPage.d.ts +10 -0
- package/dist/teams-react/components/MembersPanel.d.ts +14 -0
- package/dist/teams-react/components/RoleSelect.d.ts +17 -0
- package/dist/teams-react/components/index.d.ts +3 -0
- package/dist/teams-react/contracts.d.ts +134 -0
- package/dist/teams-react/index.d.ts +12 -143
- package/dist/teams-react/lazy.d.ts +11 -11
- package/dist/test-setup.d.ts +1 -0
- package/dist/theme/index.d.ts +6 -104
- package/dist/theme/tailwind-preset.d.ts +1 -2
- package/dist/theme/theme.d.ts +106 -0
- package/dist/theme-contract/cli.d.ts +21 -0
- package/dist/theme-contract/index.d.ts +4 -6
- package/dist/{auth-BYtiazA4.d.ts → tools/auth.d.ts} +8 -11
- package/dist/tools/capability.d.ts +54 -0
- package/dist/tools/dispatch.d.ts +37 -0
- package/dist/tools/errors.d.ts +8 -0
- package/dist/tools/gating.d.ts +62 -0
- package/dist/tools/http.d.ts +27 -0
- package/dist/tools/index.d.ts +12 -217
- package/dist/{mcp-rpc-DYwPlYbZ.d.ts → tools/mcp-rpc.d.ts} +7 -9
- package/dist/{mcp-xxoZZfor.d.ts → tools/mcp.d.ts} +14 -16
- package/dist/tools/openai.d.ts +28 -0
- package/dist/tools/registry.d.ts +39 -0
- package/dist/tools/runtime.d.ts +22 -0
- package/dist/{types-B25Mib1r.d.ts → tools/types.d.ts} +15 -83
- package/dist/{flow-types-CJxEmaRy.d.ts → trace/flow-types.d.ts} +2 -4
- package/dist/trace/index.d.ts +11 -148
- package/dist/trace/mission-flow.d.ts +82 -0
- package/dist/trace/mission-trace.d.ts +52 -0
- package/dist/turn-health/classify.d.ts +207 -0
- package/dist/turn-health/index.d.ts +29 -637
- package/dist/turn-health/lifecycle.d.ts +75 -0
- package/dist/turn-health/sink.d.ts +122 -0
- package/dist/turn-health/sweep.d.ts +245 -0
- package/dist/turn-stream/adapters.d.ts +257 -0
- package/dist/turn-stream/core.d.ts +293 -0
- package/dist/turn-stream/do.d.ts +144 -0
- package/dist/turn-stream/index.d.ts +62 -738
- package/dist/turn-stream/memory.d.ts +41 -0
- package/dist/vault/ConfirmDialog.d.ts +22 -0
- package/dist/vault/VaultPane.d.ts +15 -0
- package/dist/{VaultPane-BDP6SB_K.d.ts → vault/contracts.d.ts} +15 -22
- package/dist/vault/index.d.ts +15 -22
- package/dist/vault/lazy.d.ts +9 -7
- package/dist/vault/server.d.ts +8 -10
- package/dist/web/free-route-limit.d.ts +187 -0
- package/dist/web/index.d.ts +15 -207
- package/dist/{rate-limit-BOVmJRXZ.d.ts → web/rate-limit.d.ts} +3 -5
- package/dist/web-react/agent-session-controls.d.ts +105 -0
- package/dist/web-react/async/async-view.d.ts +69 -0
- package/dist/web-react/async/index.d.ts +13 -305
- package/dist/web-react/async/state.d.ts +107 -0
- package/dist/web-react/async/use-async-resource.d.ts +41 -0
- package/dist/web-react/async/use-confirmed-mutation.d.ts +90 -0
- package/dist/web-react/brand-mark.d.ts +11 -0
- package/dist/web-react/chat-attachments.d.ts +21 -0
- package/dist/web-react/chat-composer.d.ts +174 -0
- package/dist/web-react/chat-interactions.d.ts +1 -0
- package/dist/web-react/chat-mentions.d.ts +48 -0
- package/dist/web-react/chat-stream.d.ts +106 -0
- package/dist/web-react/class-names.d.ts +10 -0
- package/dist/web-react/controls.d.ts +265 -0
- package/dist/web-react/durable-chat-cards.d.ts +40 -0
- package/dist/web-react/durable-interaction-submit.d.ts +22 -0
- package/dist/web-react/durable-plan-card.d.ts +13 -0
- package/dist/web-react/durable-plan-flow.d.ts +77 -0
- package/dist/web-react/harness-glyphs.d.ts +28 -0
- package/dist/web-react/index.d.ts +80 -2347
- package/dist/web-react/inert.d.ts +39 -0
- package/dist/web-react/insight-card.d.ts +203 -0
- package/dist/web-react/interaction-card-support.d.ts +115 -0
- package/dist/web-react/interaction-plan-card.d.ts +39 -0
- package/dist/web-react/interaction-question-card.d.ts +100 -0
- package/dist/web-react/message-attachments.d.ts +56 -0
- package/dist/web-react/mission-activity.d.ts +96 -0
- package/dist/web-react/motion.d.ts +43 -0
- package/dist/web-react/provenance-model.d.ts +195 -0
- package/dist/web-react/provenance.d.ts +82 -0
- package/dist/web-react/provider-logo.d.ts +14 -0
- package/dist/web-react/record-grid-model.d.ts +257 -0
- package/dist/web-react/record-grid.d.ts +108 -0
- package/dist/web-react/sandbox-terminal.d.ts +90 -0
- package/dist/web-react/seat-paywall.d.ts +47 -0
- package/dist/web-react/session-history.d.ts +196 -0
- package/dist/web-react/smooth-text.d.ts +29 -0
- package/dist/web-react/sparkline.d.ts +150 -0
- package/dist/web-react/terminal.d.ts +1 -92
- package/dist/web-react/use-chat-interactions.d.ts +78 -0
- package/dist/web-react/use-composer-attachments.d.ts +111 -0
- package/dist/web-react/use-file-mentions.d.ts +94 -0
- package/dist/web-react/work-product.d.ts +105 -0
- package/dist/work-product/claim-support.d.ts +288 -0
- package/dist/work-product/index.d.ts +16 -849
- package/dist/work-product/provenance.d.ts +61 -0
- package/dist/{queue-VTBA5ONX.d.ts → work-product/queue.d.ts} +10 -12
- package/dist/work-product/quote.d.ts +139 -0
- package/dist/work-product/route.d.ts +88 -0
- package/dist/work-product/service.d.ts +123 -0
- package/dist/work-product/tools.d.ts +144 -0
- package/dist/{types-CCeYywdS.d.ts → work-product/types.d.ts} +29 -31
- package/dist/work-product-react/index.d.ts +19 -8
- package/dist/workspace-react/index.d.ts +8 -11
- package/package.json +5 -4
- package/dist/agent-session-controls-CmlXwp_H.d.ts +0 -384
- package/dist/apply-6wlMOLf8.d.ts +0 -280
- package/dist/attachment-validation-BfJDBU1g.d.ts +0 -261
- package/dist/budget-BOucfcb_.d.ts +0 -142
- package/dist/values-C7RidJuI.d.ts +0 -156
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The fold: live entries in, one consumer-shaped object out.
|
|
3
|
+
*
|
|
4
|
+
* Pure and driver-free — the store loads rows and hands them here, and a test
|
|
5
|
+
* or an eval harness can call it with literals. Determinism is the contract:
|
|
6
|
+
* the result depends only on the CONTENT of the entries, never on the order
|
|
7
|
+
* they arrive in, because ordering is `seq` alone (with `id` as an unreachable
|
|
8
|
+
* tie-break — `(scope, seq)` is unique in storage). Nothing here reads a clock
|
|
9
|
+
* or a timestamp column, so two entries written in the same second still fold
|
|
10
|
+
* in a defined order.
|
|
11
|
+
*
|
|
12
|
+
* The consumer supplies the grouping rules: which paths carry forward across
|
|
13
|
+
* periods, how one entry applies to the accumulator, what a negative assertion
|
|
14
|
+
* retracts, and any derived values computed after the last entry.
|
|
15
|
+
*/
|
|
16
|
+
import { type RecordOutcome } from './model';
|
|
17
|
+
/**
|
|
18
|
+
* How a path's entries resolve against the period being materialized.
|
|
19
|
+
*
|
|
20
|
+
* - `exact` — visible only at their own period. A value that was true for one
|
|
21
|
+
* period is structurally invisible to every other one.
|
|
22
|
+
* - `carry-forward` — visible at any period at or after their own, and only
|
|
23
|
+
* the newest such entry per key wins. Asserting a new value at a later
|
|
24
|
+
* period changes that period onward and can never rewrite an earlier one.
|
|
25
|
+
*/
|
|
26
|
+
export type RecordPeriodScope = 'exact' | 'carry-forward';
|
|
27
|
+
/** Resolves the period scope of one path. */
|
|
28
|
+
export type RecordPeriodScopeResolver = (path: string) => RecordPeriodScope;
|
|
29
|
+
/** The scope assumed for every path when a consumer supplies no resolver. */
|
|
30
|
+
export declare const defaultRecordPeriodScope: RecordPeriodScopeResolver;
|
|
31
|
+
/** The slice of a stored row the fold reads. */
|
|
32
|
+
export interface FoldableRecordEntry {
|
|
33
|
+
id: string;
|
|
34
|
+
/** Per-scope monotonic write counter — the ONLY ordering key. */
|
|
35
|
+
seq: number;
|
|
36
|
+
dimension: string;
|
|
37
|
+
period: number;
|
|
38
|
+
path: string;
|
|
39
|
+
itemKey: string;
|
|
40
|
+
/** Canonical JSON produced by `canonicalRecordJson` on write. */
|
|
41
|
+
valueJson: string;
|
|
42
|
+
/** True when the entry asserts "there are none of these" at `path`. */
|
|
43
|
+
affirmedEmpty: boolean;
|
|
44
|
+
}
|
|
45
|
+
/** A resolved entry with its value already parsed, handed to the rules. */
|
|
46
|
+
export interface DecodedRecordEntry extends FoldableRecordEntry {
|
|
47
|
+
/** `JSON.parse(valueJson)`; `null` on an `affirmedEmpty` entry. */
|
|
48
|
+
value: unknown;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* The consumer's grouping rules. `T` is whatever shape the product folds into
|
|
52
|
+
* — a typed profile object, a keyed map, a list.
|
|
53
|
+
*/
|
|
54
|
+
export interface RecordFoldRules<T> {
|
|
55
|
+
/** Fresh accumulator for one fold. Must return a NEW object each call. */
|
|
56
|
+
init(): T;
|
|
57
|
+
/**
|
|
58
|
+
* Period scope for a path. Called for every entry, including paths that only
|
|
59
|
+
* ever appear as `affirmedEmpty` targets. Defaults to `'exact'` for every
|
|
60
|
+
* path when omitted, which is the narrower rule: an entry never leaks into a
|
|
61
|
+
* period it was not asserted for.
|
|
62
|
+
*/
|
|
63
|
+
periodScope?: RecordPeriodScopeResolver;
|
|
64
|
+
/** Apply one entry to the accumulator. Fail loud: an entry the rules cannot
|
|
65
|
+
* place must reject the whole fold, never be skipped — a silently dropped
|
|
66
|
+
* entry shows a wrong number with a straight face. */
|
|
67
|
+
apply(draft: T, entry: DecodedRecordEntry): RecordOutcome<void>;
|
|
68
|
+
/** Apply a negative assertion. Runs at the entry's `seq`, so later entries
|
|
69
|
+
* at the same path repopulate. Omit it to reject `affirmedEmpty` entries. */
|
|
70
|
+
retract?(draft: T, entry: DecodedRecordEntry): RecordOutcome<void>;
|
|
71
|
+
/** Compute derived values after the last entry. */
|
|
72
|
+
finalize?(draft: T): RecordOutcome<void>;
|
|
73
|
+
}
|
|
74
|
+
/** Options for one fold. */
|
|
75
|
+
export interface FoldRecordEntriesOptions<T> {
|
|
76
|
+
rules: RecordFoldRules<T>;
|
|
77
|
+
/** The period being materialized. Defaults to
|
|
78
|
+
* {@link RECORD_PERIOD_SENTINEL} for a record with no time dimension. */
|
|
79
|
+
period?: number;
|
|
80
|
+
}
|
|
81
|
+
/** What a fold produced. */
|
|
82
|
+
export interface RecordFoldResult<T> {
|
|
83
|
+
value: T;
|
|
84
|
+
/** Entries that survived period resolution and were applied. */
|
|
85
|
+
entryCount: number;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* True when an entry at `entryPeriod` is a candidate at `requestedPeriod`
|
|
89
|
+
* under `scope`. Carry-forward candidacy is necessary, not sufficient — only
|
|
90
|
+
* the newest candidate per key survives {@link foldRecordEntries}.
|
|
91
|
+
*/
|
|
92
|
+
export declare function recordEntryVisibleInPeriod(scope: RecordPeriodScope, entryPeriod: number, requestedPeriod: number): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Resolve entries against the requested period, then fold them in `seq` order.
|
|
95
|
+
*
|
|
96
|
+
* Callers may pass entries in any order and any mix of periods; the result is
|
|
97
|
+
* a function of their content alone.
|
|
98
|
+
*/
|
|
99
|
+
export declare function foldRecordEntries<T>(entries: readonly FoldableRecordEntry[], options: FoldRecordEntriesOptions<T>): RecordOutcome<RecordFoldResult<T>>;
|
package/dist/record/index.d.ts
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
export { D as DecodedRecordEntry, F as FoldRecordEntriesOptions, a as FoldableRecordEntry, R as RECORD_KEY_SENTINEL, b as RECORD_PERIOD_SENTINEL, c as RECORD_REVIEW_STATES, d as RecordEntryKey, e as RecordErrorCode, f as RecordFoldResult, g as RecordFoldRules, h as RecordKeyCanonicalizer, i as RecordMaterialDifference, j as RecordOutcome, k as RecordParseResult, l as RecordPeriodScope, m as RecordPeriodScopeResolver, n as RecordReviewState, o as RecordSchemaMap, p as RecordSourceLocator, q as RecordValueValidator, r as RecordWritePolicy, s as canonicalRecordJson, t as defaultRecordMaterialDifference, u as defaultRecordPeriodScope, v as detectRecordConflict, w as foldRecordEntries, x as recordEntryVisibleInPeriod, y as recordFail, z as recordKeyString, A as recordOk, B as resolveWriteReviewState, C as validateRecordValue } from '../fold-DACU7gtf.js';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* `@tangle-network/agent-app/record` — the source-cited, reviewable,
|
|
3
|
+
* supersedable entry store, minus the database.
|
|
6
4
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
5
|
+
* This leaf is import-free: types, the key sentinels, canonical value
|
|
6
|
+
* encoding, consumer-supplied validation, the conflict rule, and the pure
|
|
7
|
+
* fold. A browser surface rendering a review queue and a worker writing rows
|
|
8
|
+
* share exactly this vocabulary.
|
|
9
|
+
*
|
|
10
|
+
* The drizzle table factory and the store live behind
|
|
11
|
+
* `@tangle-network/agent-app/record/drizzle`, because they import `drizzle-orm`
|
|
12
|
+
* at module top and it is an optional peer.
|
|
12
13
|
*/
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
export { recordUlid };
|
|
14
|
+
export * from './model';
|
|
15
|
+
export * from './fold';
|
|
16
|
+
export * from './ulid';
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* by the consumer. This module knows none of them.
|
|
16
16
|
*/
|
|
17
17
|
/** Error classes a caller maps to a status code or a retry decision. */
|
|
18
|
-
type RecordErrorCode =
|
|
18
|
+
export type RecordErrorCode =
|
|
19
19
|
/** The path is not a key of the consumer's schema map. */
|
|
20
20
|
'unknown-path'
|
|
21
21
|
/** The value failed the consumer's schema for its path. */
|
|
@@ -41,7 +41,7 @@ type RecordErrorCode =
|
|
|
41
41
|
* before reading `value`; nothing here throws past its own boundary except a
|
|
42
42
|
* programming error in the consumer's own callbacks.
|
|
43
43
|
*/
|
|
44
|
-
type RecordOutcome<T> = {
|
|
44
|
+
export type RecordOutcome<T> = {
|
|
45
45
|
succeeded: true;
|
|
46
46
|
value: T;
|
|
47
47
|
} | {
|
|
@@ -50,9 +50,9 @@ type RecordOutcome<T> = {
|
|
|
50
50
|
code: RecordErrorCode;
|
|
51
51
|
};
|
|
52
52
|
/** Build a success outcome. */
|
|
53
|
-
declare function recordOk<T>(value: T): RecordOutcome<T>;
|
|
53
|
+
export declare function recordOk<T>(value: T): RecordOutcome<T>;
|
|
54
54
|
/** Build a failure outcome carrying its error class. */
|
|
55
|
-
declare function recordFail(code: RecordErrorCode, error: string): RecordOutcome<never>;
|
|
55
|
+
export declare function recordFail(code: RecordErrorCode, error: string): RecordOutcome<never>;
|
|
56
56
|
/**
|
|
57
57
|
* Sentinel for an unused key column.
|
|
58
58
|
*
|
|
@@ -61,29 +61,29 @@ declare function recordFail(code: RecordErrorCode, error: string): RecordOutcome
|
|
|
61
61
|
* is therefore NOT NULL with a sentinel, and this is the sentinel for the two
|
|
62
62
|
* text ones (`dimension`, `itemKey`).
|
|
63
63
|
*/
|
|
64
|
-
declare const RECORD_KEY_SENTINEL = "";
|
|
64
|
+
export declare const RECORD_KEY_SENTINEL = "";
|
|
65
65
|
/**
|
|
66
66
|
* Sentinel period for a record with no time dimension. Same reason as
|
|
67
67
|
* {@link RECORD_KEY_SENTINEL}: the column is NOT NULL so the unique index over
|
|
68
68
|
* the live head actually dedupes. A consumer with no period concept writes
|
|
69
69
|
* every entry at `0` and materializes at `0`.
|
|
70
70
|
*/
|
|
71
|
-
declare const RECORD_PERIOD_SENTINEL = 0;
|
|
71
|
+
export declare const RECORD_PERIOD_SENTINEL = 0;
|
|
72
72
|
/** Lifecycle of one entry. `accepted` requires a structured act — a source
|
|
73
73
|
* kind the policy trusts, or an explicit review. */
|
|
74
|
-
type RecordReviewState = 'proposed' | 'accepted' | 'rejected';
|
|
74
|
+
export type RecordReviewState = 'proposed' | 'accepted' | 'rejected';
|
|
75
75
|
/** Every review state, for iteration and validation. */
|
|
76
|
-
declare const RECORD_REVIEW_STATES: readonly RecordReviewState[];
|
|
76
|
+
export declare const RECORD_REVIEW_STATES: readonly RecordReviewState[];
|
|
77
77
|
/** Position of the assertion inside its source. All fields optional — a chat
|
|
78
78
|
* message has no page, a scraped row has no character span. */
|
|
79
|
-
interface RecordSourceLocator {
|
|
79
|
+
export interface RecordSourceLocator {
|
|
80
80
|
page?: number;
|
|
81
81
|
charStart?: number;
|
|
82
82
|
charEnd?: number;
|
|
83
83
|
}
|
|
84
84
|
/** The columns that identify which assertion an entry supersedes. Two entries
|
|
85
85
|
* with the same key compete for the same live head. */
|
|
86
|
-
interface RecordEntryKey {
|
|
86
|
+
export interface RecordEntryKey {
|
|
87
87
|
/** Consumer-defined partition inside a scope — whatever second axis the
|
|
88
88
|
* product folds along. {@link RECORD_KEY_SENTINEL} when unused. */
|
|
89
89
|
dimension: string;
|
|
@@ -97,17 +97,17 @@ interface RecordEntryKey {
|
|
|
97
97
|
period: number;
|
|
98
98
|
}
|
|
99
99
|
/** Join an entry key into one comparable string, for grouping in memory. */
|
|
100
|
-
declare function recordKeyString(key: RecordEntryKey): string;
|
|
100
|
+
export declare function recordKeyString(key: RecordEntryKey): string;
|
|
101
101
|
/**
|
|
102
102
|
* Deterministic JSON with object keys sorted at every depth. Two values that
|
|
103
103
|
* differ only in key order encode identically, so the conflict rule never
|
|
104
104
|
* fires on serialization noise and the fold's stored value is stable.
|
|
105
105
|
*/
|
|
106
|
-
declare function canonicalRecordJson(value: unknown): string;
|
|
106
|
+
export declare function canonicalRecordJson(value: unknown): string;
|
|
107
107
|
/** The result shape a `safeParse`-style validator returns. `zod`'s schemas
|
|
108
108
|
* satisfy this structurally, so a consumer passes its zod schema directly and
|
|
109
109
|
* this module takes no schema-library dependency. */
|
|
110
|
-
type RecordParseResult = {
|
|
110
|
+
export type RecordParseResult = {
|
|
111
111
|
success: true;
|
|
112
112
|
data: unknown;
|
|
113
113
|
} | {
|
|
@@ -116,7 +116,7 @@ type RecordParseResult = {
|
|
|
116
116
|
};
|
|
117
117
|
/** Something that can validate one value for one path: a `safeParse` object
|
|
118
118
|
* (zod and friends) or a plain function returning a typed outcome. */
|
|
119
|
-
type RecordValueValidator = {
|
|
119
|
+
export type RecordValueValidator = {
|
|
120
120
|
safeParse(value: unknown): RecordParseResult;
|
|
121
121
|
} | ((value: unknown) => RecordOutcome<unknown>);
|
|
122
122
|
/**
|
|
@@ -124,15 +124,15 @@ type RecordValueValidator = {
|
|
|
124
124
|
* map is rejected with `unknown-path`, so nothing the consumer's fold cannot
|
|
125
125
|
* type-check ever reaches storage.
|
|
126
126
|
*/
|
|
127
|
-
type RecordSchemaMap = Readonly<Record<string, RecordValueValidator>>;
|
|
127
|
+
export type RecordSchemaMap = Readonly<Record<string, RecordValueValidator>>;
|
|
128
128
|
/** Run one validator, normalizing both forms to a typed outcome and flattening
|
|
129
129
|
* a `safeParse` error into a readable message. */
|
|
130
|
-
declare function validateRecordValue(validator: RecordValueValidator, value: unknown): RecordOutcome<unknown>;
|
|
130
|
+
export declare function validateRecordValue(validator: RecordValueValidator, value: unknown): RecordOutcome<unknown>;
|
|
131
131
|
/**
|
|
132
132
|
* How a live accepted head at the same key is compared against an incoming
|
|
133
133
|
* write. Returning `true` means the two assertions genuinely disagree.
|
|
134
134
|
*/
|
|
135
|
-
type RecordMaterialDifference = (head: {
|
|
135
|
+
export type RecordMaterialDifference = (head: {
|
|
136
136
|
sourceKind: string;
|
|
137
137
|
valueJson: string;
|
|
138
138
|
affirmedEmpty: boolean;
|
|
@@ -148,16 +148,16 @@ type RecordMaterialDifference = (head: {
|
|
|
148
148
|
* kind is a refresh, not a disagreement; an identical value from another
|
|
149
149
|
* source kind is corroboration.
|
|
150
150
|
*/
|
|
151
|
-
declare const defaultRecordMaterialDifference: RecordMaterialDifference;
|
|
151
|
+
export declare const defaultRecordMaterialDifference: RecordMaterialDifference;
|
|
152
152
|
/** Canonicalize a key column before it enters the fold key (upper-casing a
|
|
153
153
|
* region code, trimming an identifier). Rejecting is fail-loud, never a
|
|
154
154
|
* silent rewrite to a sentinel. */
|
|
155
|
-
type RecordKeyCanonicalizer = (path: string, raw: string) => RecordOutcome<string>;
|
|
155
|
+
export type RecordKeyCanonicalizer = (path: string, raw: string) => RecordOutcome<string>;
|
|
156
156
|
/**
|
|
157
157
|
* Everything domain-specific about writing an entry, supplied by the consumer.
|
|
158
158
|
* The store holds no defaults for any of it except the conflict rule.
|
|
159
159
|
*/
|
|
160
|
-
interface RecordWritePolicy {
|
|
160
|
+
export interface RecordWritePolicy {
|
|
161
161
|
/** Path → validator; the key set is the write allowlist. */
|
|
162
162
|
schemas: RecordSchemaMap;
|
|
163
163
|
/**
|
|
@@ -204,10 +204,10 @@ interface RecordWritePolicy {
|
|
|
204
204
|
}
|
|
205
205
|
/** Resolve the review state a write from `sourceKind` lands in, failing loud
|
|
206
206
|
* on a kind the policy never declared. */
|
|
207
|
-
declare function resolveWriteReviewState(policy: RecordWritePolicy, sourceKind: string): RecordOutcome<RecordReviewState>;
|
|
207
|
+
export declare function resolveWriteReviewState(policy: RecordWritePolicy, sourceKind: string): RecordOutcome<RecordReviewState>;
|
|
208
208
|
/** True when the incoming write disagrees with the live head under the
|
|
209
209
|
* policy's rule (or the default). */
|
|
210
|
-
declare function detectRecordConflict(policy: RecordWritePolicy, head: {
|
|
210
|
+
export declare function detectRecordConflict(policy: RecordWritePolicy, head: {
|
|
211
211
|
sourceKind: string;
|
|
212
212
|
valueJson: string;
|
|
213
213
|
affirmedEmpty: boolean;
|
|
@@ -216,105 +216,3 @@ declare function detectRecordConflict(policy: RecordWritePolicy, head: {
|
|
|
216
216
|
valueJson: string;
|
|
217
217
|
affirmedEmpty: boolean;
|
|
218
218
|
}): boolean;
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* The fold: live entries in, one consumer-shaped object out.
|
|
222
|
-
*
|
|
223
|
-
* Pure and driver-free — the store loads rows and hands them here, and a test
|
|
224
|
-
* or an eval harness can call it with literals. Determinism is the contract:
|
|
225
|
-
* the result depends only on the CONTENT of the entries, never on the order
|
|
226
|
-
* they arrive in, because ordering is `seq` alone (with `id` as an unreachable
|
|
227
|
-
* tie-break — `(scope, seq)` is unique in storage). Nothing here reads a clock
|
|
228
|
-
* or a timestamp column, so two entries written in the same second still fold
|
|
229
|
-
* in a defined order.
|
|
230
|
-
*
|
|
231
|
-
* The consumer supplies the grouping rules: which paths carry forward across
|
|
232
|
-
* periods, how one entry applies to the accumulator, what a negative assertion
|
|
233
|
-
* retracts, and any derived values computed after the last entry.
|
|
234
|
-
*/
|
|
235
|
-
|
|
236
|
-
/**
|
|
237
|
-
* How a path's entries resolve against the period being materialized.
|
|
238
|
-
*
|
|
239
|
-
* - `exact` — visible only at their own period. A value that was true for one
|
|
240
|
-
* period is structurally invisible to every other one.
|
|
241
|
-
* - `carry-forward` — visible at any period at or after their own, and only
|
|
242
|
-
* the newest such entry per key wins. Asserting a new value at a later
|
|
243
|
-
* period changes that period onward and can never rewrite an earlier one.
|
|
244
|
-
*/
|
|
245
|
-
type RecordPeriodScope = 'exact' | 'carry-forward';
|
|
246
|
-
/** Resolves the period scope of one path. */
|
|
247
|
-
type RecordPeriodScopeResolver = (path: string) => RecordPeriodScope;
|
|
248
|
-
/** The scope assumed for every path when a consumer supplies no resolver. */
|
|
249
|
-
declare const defaultRecordPeriodScope: RecordPeriodScopeResolver;
|
|
250
|
-
/** The slice of a stored row the fold reads. */
|
|
251
|
-
interface FoldableRecordEntry {
|
|
252
|
-
id: string;
|
|
253
|
-
/** Per-scope monotonic write counter — the ONLY ordering key. */
|
|
254
|
-
seq: number;
|
|
255
|
-
dimension: string;
|
|
256
|
-
period: number;
|
|
257
|
-
path: string;
|
|
258
|
-
itemKey: string;
|
|
259
|
-
/** Canonical JSON produced by `canonicalRecordJson` on write. */
|
|
260
|
-
valueJson: string;
|
|
261
|
-
/** True when the entry asserts "there are none of these" at `path`. */
|
|
262
|
-
affirmedEmpty: boolean;
|
|
263
|
-
}
|
|
264
|
-
/** A resolved entry with its value already parsed, handed to the rules. */
|
|
265
|
-
interface DecodedRecordEntry extends FoldableRecordEntry {
|
|
266
|
-
/** `JSON.parse(valueJson)`; `null` on an `affirmedEmpty` entry. */
|
|
267
|
-
value: unknown;
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
* The consumer's grouping rules. `T` is whatever shape the product folds into
|
|
271
|
-
* — a typed profile object, a keyed map, a list.
|
|
272
|
-
*/
|
|
273
|
-
interface RecordFoldRules<T> {
|
|
274
|
-
/** Fresh accumulator for one fold. Must return a NEW object each call. */
|
|
275
|
-
init(): T;
|
|
276
|
-
/**
|
|
277
|
-
* Period scope for a path. Called for every entry, including paths that only
|
|
278
|
-
* ever appear as `affirmedEmpty` targets. Defaults to `'exact'` for every
|
|
279
|
-
* path when omitted, which is the narrower rule: an entry never leaks into a
|
|
280
|
-
* period it was not asserted for.
|
|
281
|
-
*/
|
|
282
|
-
periodScope?: RecordPeriodScopeResolver;
|
|
283
|
-
/** Apply one entry to the accumulator. Fail loud: an entry the rules cannot
|
|
284
|
-
* place must reject the whole fold, never be skipped — a silently dropped
|
|
285
|
-
* entry shows a wrong number with a straight face. */
|
|
286
|
-
apply(draft: T, entry: DecodedRecordEntry): RecordOutcome<void>;
|
|
287
|
-
/** Apply a negative assertion. Runs at the entry's `seq`, so later entries
|
|
288
|
-
* at the same path repopulate. Omit it to reject `affirmedEmpty` entries. */
|
|
289
|
-
retract?(draft: T, entry: DecodedRecordEntry): RecordOutcome<void>;
|
|
290
|
-
/** Compute derived values after the last entry. */
|
|
291
|
-
finalize?(draft: T): RecordOutcome<void>;
|
|
292
|
-
}
|
|
293
|
-
/** Options for one fold. */
|
|
294
|
-
interface FoldRecordEntriesOptions<T> {
|
|
295
|
-
rules: RecordFoldRules<T>;
|
|
296
|
-
/** The period being materialized. Defaults to
|
|
297
|
-
* {@link RECORD_PERIOD_SENTINEL} for a record with no time dimension. */
|
|
298
|
-
period?: number;
|
|
299
|
-
}
|
|
300
|
-
/** What a fold produced. */
|
|
301
|
-
interface RecordFoldResult<T> {
|
|
302
|
-
value: T;
|
|
303
|
-
/** Entries that survived period resolution and were applied. */
|
|
304
|
-
entryCount: number;
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* True when an entry at `entryPeriod` is a candidate at `requestedPeriod`
|
|
308
|
-
* under `scope`. Carry-forward candidacy is necessary, not sufficient — only
|
|
309
|
-
* the newest candidate per key survives {@link foldRecordEntries}.
|
|
310
|
-
*/
|
|
311
|
-
declare function recordEntryVisibleInPeriod(scope: RecordPeriodScope, entryPeriod: number, requestedPeriod: number): boolean;
|
|
312
|
-
/**
|
|
313
|
-
* Resolve entries against the requested period, then fold them in `seq` order.
|
|
314
|
-
*
|
|
315
|
-
* Callers may pass entries in any order and any mix of periods; the result is
|
|
316
|
-
* a function of their content alone.
|
|
317
|
-
*/
|
|
318
|
-
declare function foldRecordEntries<T>(entries: readonly FoldableRecordEntry[], options: FoldRecordEntriesOptions<T>): RecordOutcome<RecordFoldResult<T>>;
|
|
319
|
-
|
|
320
|
-
export { recordOk as A, resolveWriteReviewState as B, validateRecordValue as C, type DecodedRecordEntry as D, type FoldRecordEntriesOptions as F, RECORD_KEY_SENTINEL as R, type FoldableRecordEntry as a, RECORD_PERIOD_SENTINEL as b, RECORD_REVIEW_STATES as c, type RecordEntryKey as d, type RecordErrorCode as e, type RecordFoldResult as f, type RecordFoldRules as g, type RecordKeyCanonicalizer as h, type RecordMaterialDifference as i, type RecordOutcome as j, type RecordParseResult as k, type RecordPeriodScope as l, type RecordPeriodScopeResolver as m, type RecordReviewState as n, type RecordSchemaMap as o, type RecordSourceLocator as p, type RecordValueValidator as q, type RecordWritePolicy as r, canonicalRecordJson as s, defaultRecordMaterialDifference as t, defaultRecordPeriodScope as u, detectRecordConflict as v, foldRecordEntries as w, recordEntryVisibleInPeriod as x, recordFail as y, recordKeyString as z };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ULID — a 26-character Crockford-base32 id: a 48-bit millisecond timestamp
|
|
3
|
+
* followed by 80 bits from `crypto.getRandomValues`.
|
|
4
|
+
*
|
|
5
|
+
* The record store mints ids in application code rather than taking a column
|
|
6
|
+
* default, because an atomic supersede stamps the REPLACEMENT's id onto the
|
|
7
|
+
* outgoing head in the same write — the id has to exist before the insert.
|
|
8
|
+
* Lexicographic order approximates creation order, which keeps a raw table
|
|
9
|
+
* scan readable; strict fold ordering comes from `seq`, never from the id.
|
|
10
|
+
*/
|
|
11
|
+
/** Mint a ULID. `now` is exposed so a caller can pin time in a test. */
|
|
12
|
+
export declare function recordUlid(now?: number): string;
|
package/dist/redact/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
*/
|
|
21
21
|
/** A named PII pattern. `pattern` is matched case-insensitively at the string
|
|
22
22
|
* level; keep it non-global (global instances are derived where needed). */
|
|
23
|
-
interface RedactionPattern {
|
|
23
|
+
export interface RedactionPattern {
|
|
24
24
|
kind: string;
|
|
25
25
|
pattern: RegExp;
|
|
26
26
|
/** Optional predicate over each match — the pattern fires only when it returns
|
|
@@ -32,9 +32,9 @@ interface RedactionPattern {
|
|
|
32
32
|
/** The default deterministic patterns. Extend via the `extraPatterns` /
|
|
33
33
|
* `patterns` options rather than forking this module (the seam that lets a
|
|
34
34
|
* product add e.g. a credit-card matcher without a local copy). */
|
|
35
|
-
declare const DEFAULT_REDACTION_PATTERNS: readonly RedactionPattern[];
|
|
35
|
+
export declare const DEFAULT_REDACTION_PATTERNS: readonly RedactionPattern[];
|
|
36
36
|
/** Define options to customize sensitive data redaction patterns and key names for ingestion */
|
|
37
|
-
interface RedactForIngestionOptions {
|
|
37
|
+
export interface RedactForIngestionOptions {
|
|
38
38
|
/** Extra patterns appended to {@link DEFAULT_REDACTION_PATTERNS} for the
|
|
39
39
|
* string-level scrub (e.g. credit-card). Additive — defaults still apply. */
|
|
40
40
|
extraPatterns?: readonly RedactionPattern[];
|
|
@@ -58,16 +58,16 @@ interface RedactForIngestionOptions {
|
|
|
58
58
|
* non-overlap, and `validate` predicates behave identically to the reversible
|
|
59
59
|
* path. Each span becomes `[REDACTED:<kind>]`.
|
|
60
60
|
*/
|
|
61
|
-
declare function maskSpans(text: string, patterns?: readonly RedactionPattern[]): string;
|
|
61
|
+
export declare function maskSpans(text: string, patterns?: readonly RedactionPattern[]): string;
|
|
62
62
|
/**
|
|
63
63
|
* One-way PII scrub for telemetry/ingestion. Backward-compatible: called with no
|
|
64
64
|
* options it behaves exactly as before (SSN/EIN strings + sensitive object keys
|
|
65
65
|
* → sentinels). `extraPatterns` lets a product add matchers (e.g. credit-card)
|
|
66
66
|
* without forking this module.
|
|
67
67
|
*/
|
|
68
|
-
declare function redactForIngestion(value: unknown, options?: RedactForIngestionOptions): unknown;
|
|
68
|
+
export declare function redactForIngestion(value: unknown, options?: RedactForIngestionOptions): unknown;
|
|
69
69
|
/** A detected PII span in a source string. */
|
|
70
|
-
interface RedactionSpan {
|
|
70
|
+
export interface RedactionSpan {
|
|
71
71
|
/** Stable within a document (index-derived) — used for reveal + audit. */
|
|
72
72
|
id: string;
|
|
73
73
|
kind: string;
|
|
@@ -80,10 +80,10 @@ interface RedactionSpan {
|
|
|
80
80
|
* position, and drops overlaps (first match wins). Deterministic — no ids that
|
|
81
81
|
* vary per call.
|
|
82
82
|
*/
|
|
83
|
-
declare function detectSpans(text: string, patterns?: readonly RedactionPattern[]): RedactionSpan[];
|
|
83
|
+
export declare function detectSpans(text: string, patterns?: readonly RedactionPattern[]): RedactionSpan[];
|
|
84
84
|
/** A redacted document segment: literal text, or a masked span with the
|
|
85
85
|
* original kept ENCRYPTED for an authorized reveal. */
|
|
86
|
-
type RedactedDocSegment = {
|
|
86
|
+
export type RedactedDocSegment = {
|
|
87
87
|
type: 'text';
|
|
88
88
|
text: string;
|
|
89
89
|
} | {
|
|
@@ -93,11 +93,11 @@ type RedactedDocSegment = {
|
|
|
93
93
|
cipher: string;
|
|
94
94
|
};
|
|
95
95
|
/** Define a document composed of multiple redacted content segments */
|
|
96
|
-
interface RedactedDocument {
|
|
96
|
+
export interface RedactedDocument {
|
|
97
97
|
segments: RedactedDocSegment[];
|
|
98
98
|
}
|
|
99
99
|
/** Define options to encrypt text and specify patterns for redacting sensitive document content */
|
|
100
|
-
interface BuildRedactedDocumentOptions {
|
|
100
|
+
export interface BuildRedactedDocumentOptions {
|
|
101
101
|
/** Encrypt one original span value. Wire it to `agent-app/crypto`
|
|
102
102
|
* (`encryptWithKey` / `createFieldCrypto`). The cipher is what's stored. */
|
|
103
103
|
encrypt: (plaintext: string) => string | Promise<string>;
|
|
@@ -110,9 +110,9 @@ interface BuildRedactedDocumentOptions {
|
|
|
110
110
|
* ciphertext — so it is safe to ship to a client; reveal happens server-side via
|
|
111
111
|
* {@link revealSpan}.
|
|
112
112
|
*/
|
|
113
|
-
declare function buildRedactedDocument(text: string, options: BuildRedactedDocumentOptions): Promise<RedactedDocument>;
|
|
113
|
+
export declare function buildRedactedDocument(text: string, options: BuildRedactedDocumentOptions): Promise<RedactedDocument>;
|
|
114
114
|
/** Define options to decrypt, authorize, and audit the reveal of a span segment */
|
|
115
|
-
interface RevealSpanOptions {
|
|
115
|
+
export interface RevealSpanOptions {
|
|
116
116
|
/** Decrypt a span cipher. Wire to `agent-app/crypto` (`decryptWithKey`). */
|
|
117
117
|
decrypt: (cipher: string) => string | Promise<string>;
|
|
118
118
|
/** Authorization gate — return false to deny the reveal (fail-closed). */
|
|
@@ -127,7 +127,7 @@ interface RevealSpanOptions {
|
|
|
127
127
|
}) => void | Promise<void>;
|
|
128
128
|
}
|
|
129
129
|
/** Describe the outcome of a reveal operation including success status, value, and failure reason */
|
|
130
|
-
interface RevealResult {
|
|
130
|
+
export interface RevealResult {
|
|
131
131
|
ok: boolean;
|
|
132
132
|
value?: string;
|
|
133
133
|
/** `not_found` | `forbidden` when `ok` is false. */
|
|
@@ -139,6 +139,4 @@ interface RevealResult {
|
|
|
139
139
|
* granted reveal decrypts, fires `onReveal` for the audit trail, and returns the
|
|
140
140
|
* value.
|
|
141
141
|
*/
|
|
142
|
-
declare function revealSpan(doc: RedactedDocument, spanId: string, options: RevealSpanOptions): Promise<RevealResult>;
|
|
143
|
-
|
|
144
|
-
export { type BuildRedactedDocumentOptions, DEFAULT_REDACTION_PATTERNS, type RedactForIngestionOptions, type RedactedDocSegment, type RedactedDocument, type RedactionPattern, type RedactionSpan, type RevealResult, type RevealSpanOptions, buildRedactedDocument, detectSpans, maskSpans, redactForIngestion, revealSpan };
|
|
142
|
+
export declare function revealSpan(doc: RedactedDocument, spanId: string, options: RevealSpanOptions): Promise<RevealResult>;
|
package/dist/run/index.d.ts
CHANGED
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import { Harness } from '../harness/index.js';
|
|
2
|
-
import '@tangle-network/agent-interface';
|
|
3
|
-
|
|
4
1
|
/**
|
|
5
2
|
* Execution-mode dispatch — the shell entry that infers *how* to run an agent
|
|
6
3
|
* from its profile's harness, so a product hands over one profile and the
|
|
@@ -18,16 +15,16 @@ import '@tangle-network/agent-interface';
|
|
|
18
15
|
* `router`/`sandbox` thunk and can lazy-import the sandbox driver inside its own
|
|
19
16
|
* thunk, so a router-only app never resolves `@tangle-network/sandbox`.
|
|
20
17
|
*/
|
|
21
|
-
|
|
18
|
+
import { type Harness } from '../harness/index';
|
|
22
19
|
/** Define execution mode as either router or sandbox */
|
|
23
|
-
type ExecutionMode = 'router' | 'sandbox';
|
|
20
|
+
export type ExecutionMode = 'router' | 'sandbox';
|
|
24
21
|
/** The router pseudo-harness — the absence of a sandbox backend. Not a member
|
|
25
22
|
* of `KNOWN_HARNESSES`; callers may pass it explicitly instead of null. */
|
|
26
|
-
declare const ROUTER_HARNESS: "router";
|
|
23
|
+
export declare const ROUTER_HARNESS: "router";
|
|
27
24
|
/** Provide a type alias for the ROUTER_HARNESS constant to enable consistent router harness usage */
|
|
28
|
-
type RouterHarness = typeof ROUTER_HARNESS;
|
|
25
|
+
export type RouterHarness = typeof ROUTER_HARNESS;
|
|
29
26
|
/** Resolve a ProfileHarness as a Harness, RouterHarness, null, or undefined value */
|
|
30
|
-
type ProfileHarness = Harness | RouterHarness | null | undefined;
|
|
27
|
+
export type ProfileHarness = Harness | RouterHarness | null | undefined;
|
|
31
28
|
/**
|
|
32
29
|
* Infer the execution mode from a profile's harness. Absent / null / 'router'
|
|
33
30
|
* => 'router'; a known sandbox harness => 'sandbox'. An unrecognized non-null
|
|
@@ -35,25 +32,25 @@ type ProfileHarness = Harness | RouterHarness | null | undefined;
|
|
|
35
32
|
* unknown id is a sandbox the runtime resolves, not a router) — callers that
|
|
36
33
|
* want strictness can validate against `KNOWN_HARNESSES` first.
|
|
37
34
|
*/
|
|
38
|
-
declare function resolveExecutionMode(harness: ProfileHarness): ExecutionMode;
|
|
35
|
+
export declare function resolveExecutionMode(harness: ProfileHarness): ExecutionMode;
|
|
39
36
|
/** True when `harness` names a sandbox backend the SDK knows about. */
|
|
40
|
-
declare function isKnownSandboxHarness(harness: ProfileHarness): harness is Harness;
|
|
37
|
+
export declare function isKnownSandboxHarness(harness: ProfileHarness): harness is Harness;
|
|
41
38
|
/**
|
|
42
39
|
* The superset the dispatch reads: the SDK `AgentProfile` plus the harness
|
|
43
40
|
* discriminator. Intentionally pins only `harness` — the rest of the profile is
|
|
44
41
|
* carried opaquely so this module stays free of the SDK type (router-only apps
|
|
45
42
|
* import it without `@tangle-network/sandbox`).
|
|
46
43
|
*/
|
|
47
|
-
interface ShellProfile {
|
|
44
|
+
export interface ShellProfile {
|
|
48
45
|
harness?: ProfileHarness;
|
|
49
46
|
}
|
|
50
47
|
/** Execution mode for a profile — `harness` omitted/null => router. */
|
|
51
|
-
declare function executionModeForProfile(profile: ShellProfile): ExecutionMode;
|
|
48
|
+
export declare function executionModeForProfile(profile: ShellProfile): ExecutionMode;
|
|
52
49
|
/** The two branch runners. Each returns (or resolves to) an async iterable of
|
|
53
50
|
* the product's own event type — the shapes differ, so the product owns them.
|
|
54
51
|
* A `sandbox` thunk can `await import('@tangle-network/agent-app/sandbox')`
|
|
55
52
|
* internally so the SDK is pulled only on the sandbox path. */
|
|
56
|
-
interface RunAgentBranches<T> {
|
|
53
|
+
export interface RunAgentBranches<T> {
|
|
57
54
|
router: () => AsyncIterable<T> | Promise<AsyncIterable<T>>;
|
|
58
55
|
sandbox: () => AsyncIterable<T> | Promise<AsyncIterable<T>>;
|
|
59
56
|
}
|
|
@@ -63,6 +60,4 @@ interface RunAgentBranches<T> {
|
|
|
63
60
|
* unselected branch's thunk is never invoked — so its dependencies (e.g. the
|
|
64
61
|
* sandbox SDK) are never loaded on the other path.
|
|
65
62
|
*/
|
|
66
|
-
declare function runAgent<T>(harness: ProfileHarness, branches: RunAgentBranches<T>): AsyncGenerator<T>;
|
|
67
|
-
|
|
68
|
-
export { type ExecutionMode, type ProfileHarness, ROUTER_HARNESS, type RouterHarness, type RunAgentBranches, type ShellProfile, executionModeForProfile, isKnownSandboxHarness, resolveExecutionMode, runAgent };
|
|
63
|
+
export declare function runAgent<T>(harness: ProfileHarness, branches: RunAgentBranches<T>): AsyncGenerator<T>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The resolved per-turn profile surfaces a delivered / certified `AgentProfile`
|
|
3
|
+
* can change.
|
|
4
|
+
*
|
|
5
|
+
* This file used to also carry `createAgentRuntime` — a factory that hand-wired
|
|
6
|
+
* `resolveTangleModelConfig` + `buildAppToolOpenAITools` + `createOpenAICompatStreamTurn`
|
|
7
|
+
* + `createAppToolRuntimeExecutor` + `runAppToolLoop` into one object. It shipped
|
|
8
|
+
* for the whole life of the package and never acquired a consumer (0 references
|
|
9
|
+
* across all nine repos on the fleet's default branches), while every product
|
|
10
|
+
* that drives an in-process model turn composes those five directly or uses
|
|
11
|
+
* `handleChatTurn`. It was removed in 0.44.0; compose the pieces, or see
|
|
12
|
+
* `examples/browser-copilot.md` for the sandbox-free assembly.
|
|
13
|
+
*/
|
|
14
|
+
/** The agent's resolved profile surfaces for one turn — the things a delivered
|
|
15
|
+
* / certified `AgentProfile` can change. Profile-WIDE on purpose: certified
|
|
16
|
+
* delivery folds prompt-surface + skills into `systemPrompt` AND can add
|
|
17
|
+
* certified `tool` artifacts to `extraTools`. MCP servers / memory / RAG that
|
|
18
|
+
* materialize as files or servers deliver through the sandbox-provisioning
|
|
19
|
+
* seam, not here. */
|
|
20
|
+
export interface ResolvedAgentProfile {
|
|
21
|
+
systemPrompt: string;
|
|
22
|
+
extraTools: unknown[];
|
|
23
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `createCertifiedDelivery` — the delivery truck for Tangle Intelligence.
|
|
3
|
+
*
|
|
4
|
+
* Pulls a tenant's CERTIFIED `AgentProfile` from the deployed plane
|
|
5
|
+
* (`GET /v1/profiles/:target/composed`) and applies it to the agent's resolved
|
|
6
|
+
* surfaces each turn, so an approved improvement reaches the running agent with
|
|
7
|
+
* NO redeploy. This is the `composeProfile` transform `createAgentRuntime`
|
|
8
|
+
* accepts — opt-in per product, fail-closed, cached + refreshed.
|
|
9
|
+
*
|
|
10
|
+
* Profile-WIDE by design (not prompt-only): the composed profile carries every
|
|
11
|
+
* promoted artifact type keyed by kind. What's folded where:
|
|
12
|
+
* - `prompt-surface` + `skill` → the system prompt (via `composeCertifiedPrompt`).
|
|
13
|
+
* - `tool` artifacts that carry an OpenAI tool definition → `extraTools`
|
|
14
|
+
* (advertised to the model; the matching executor is supplied by the product
|
|
15
|
+
* via `executeOtherTool`). Until a `tool` artifact carries a runnable def,
|
|
16
|
+
* it is surfaced (see `current()`) but not advertised — advertising a tool
|
|
17
|
+
* with no executor would make the model call into a dead end.
|
|
18
|
+
* - `mcp` / `memory` / `rag` artifacts materialize as servers/files and deliver
|
|
19
|
+
* through the SANDBOX-provisioning seam, not this in-process one. The full
|
|
20
|
+
* certified profile is exposed via `current()` so that seam can consume it.
|
|
21
|
+
*
|
|
22
|
+
* Substrate boundary: THIS module imports `@tangle-network/agent-runtime`; the
|
|
23
|
+
* `createAgentRuntime` core does not (it only consumes the generic transform).
|
|
24
|
+
*/
|
|
25
|
+
import { type CertifiedProfile } from '@tangle-network/agent-runtime/intelligence';
|
|
26
|
+
import type { ResolvedAgentProfile } from './agent';
|
|
27
|
+
/** Define configuration options for delivering certified artifacts to a specified tenant target */
|
|
28
|
+
export interface CertifiedDeliveryConfig {
|
|
29
|
+
/** The tenant target whose certified artifacts to deliver (the agent id). */
|
|
30
|
+
target: string;
|
|
31
|
+
/** Bearer for the plane. Reads `TANGLE_API_KEY` when omitted. */
|
|
32
|
+
apiKey?: string;
|
|
33
|
+
/** Plane base URL. Reads `TANGLE_INTELLIGENCE_URL` then the public plane. */
|
|
34
|
+
baseUrl?: string;
|
|
35
|
+
/** Min interval between certified-profile pulls. Default 5m. */
|
|
36
|
+
refreshMs?: number;
|
|
37
|
+
/** fetch impl (tests / non-global-fetch runtimes). */
|
|
38
|
+
fetchImpl?: typeof fetch;
|
|
39
|
+
}
|
|
40
|
+
/** Resolve and manage certified profiles with refresh and composition capabilities */
|
|
41
|
+
export interface CertifiedDelivery {
|
|
42
|
+
/** The `composeProfile` transform to pass to `createAgentRuntime`. Applies the
|
|
43
|
+
* cached certified profile to the base surfaces; refreshes on the cadence. */
|
|
44
|
+
composeProfile(base: ResolvedAgentProfile): Promise<ResolvedAgentProfile>;
|
|
45
|
+
/** Force a pull now (ignores the refresh window). Best-effort. */
|
|
46
|
+
refresh(): Promise<void>;
|
|
47
|
+
/** The certified profile currently in effect (null = none promoted / pull
|
|
48
|
+
* failed). Lets the sandbox-provisioning seam deliver the file/server
|
|
49
|
+
* artifact types this in-process seam doesn't. */
|
|
50
|
+
current(): CertifiedProfile | null;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Build a certified-delivery transform for one agent target. Fail-closed: a pull
|
|
54
|
+
* error or 404 keeps the last-known certified profile (or null), and the agent
|
|
55
|
+
* runs on its base surfaces — it never breaks because Intelligence is down.
|
|
56
|
+
*/
|
|
57
|
+
export declare function createCertifiedDelivery(config: CertifiedDeliveryConfig): CertifiedDelivery;
|