@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,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import type { SignoffEvent, SignoffReport, SignoffSource } from './types';
|
|
3
2
|
/**
|
|
4
3
|
* The sign-off run: reproduce a clean CI environment, then go further.
|
|
5
4
|
*
|
|
@@ -17,7 +16,7 @@ import { S as SignoffSource, a as SignoffEvent, b as SignoffReport } from './typ
|
|
|
17
16
|
* Nothing about a failure is inferred. Every step reports its command, exit
|
|
18
17
|
* code, duration, seed and captured output.
|
|
19
18
|
*/
|
|
20
|
-
interface RunSignoffOptions {
|
|
19
|
+
export interface RunSignoffOptions {
|
|
21
20
|
/** Any directory inside the repo. Defaults to the process cwd. */
|
|
22
21
|
readonly repoDir?: string;
|
|
23
22
|
readonly configPath?: string;
|
|
@@ -35,6 +34,4 @@ interface RunSignoffOptions {
|
|
|
35
34
|
readonly keepWorkspace?: boolean;
|
|
36
35
|
readonly onEvent?: (event: SignoffEvent) => void;
|
|
37
36
|
}
|
|
38
|
-
declare function runSignoff(options?: RunSignoffOptions): Promise<SignoffReport>;
|
|
39
|
-
|
|
40
|
-
export { type RunSignoffOptions as R, runSignoff as r };
|
|
37
|
+
export declare function runSignoff(options?: RunSignoffOptions): Promise<SignoffReport>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The dependency graph, and running it as wide as the graph allows.
|
|
3
|
+
*
|
|
4
|
+
* CI runs these steps in a line because a YAML `steps:` list is a line. Nothing
|
|
5
|
+
* about the work requires that: typecheck, the suite, the build and knip all
|
|
6
|
+
* read source and none reads another's output. On a 32-core host, running them
|
|
7
|
+
* concurrently is free wall-clock, and it is the only reason a strictly larger
|
|
8
|
+
* verification can still finish faster than the CI it replaces.
|
|
9
|
+
*
|
|
10
|
+
* The graph is declared per step (`needs`), validated here, and the schedule is
|
|
11
|
+
* derived from it — so an omitted edge is a correctness bug the repo owns, and
|
|
12
|
+
* a cycle is named rather than deadlocking.
|
|
13
|
+
*/
|
|
14
|
+
export interface GraphNode {
|
|
15
|
+
readonly name: string;
|
|
16
|
+
readonly needs?: readonly string[];
|
|
17
|
+
}
|
|
18
|
+
/** Throws on a duplicate name, a dangling `needs`, or a cycle. */
|
|
19
|
+
export declare function validateGraph(nodes: readonly GraphNode[]): void;
|
|
20
|
+
type TaskStatus = 'passed' | 'failed' | 'skipped' | 'cancelled' | 'blocked';
|
|
21
|
+
export interface TaskOutcome<T> {
|
|
22
|
+
readonly name: string;
|
|
23
|
+
readonly status: TaskStatus;
|
|
24
|
+
/** Present for anything that actually ran, including a cancelled task. */
|
|
25
|
+
readonly value: T | null;
|
|
26
|
+
readonly startedAtMs: number | null;
|
|
27
|
+
readonly finishedAtMs: number | null;
|
|
28
|
+
}
|
|
29
|
+
export interface RunGraphOptions<TNode extends GraphNode, TValue> {
|
|
30
|
+
readonly nodes: readonly TNode[];
|
|
31
|
+
readonly maxParallel: number;
|
|
32
|
+
/** `false` stops scheduling after the first failure and kills what is running. */
|
|
33
|
+
readonly keepGoing: boolean;
|
|
34
|
+
/** Runs one node. Resolves `{ ok }` for pass/fail; must not throw for a
|
|
35
|
+
* failing command — a non-zero exit is data. */
|
|
36
|
+
readonly run: (node: TNode, signal: AbortSignal) => Promise<{
|
|
37
|
+
readonly ok: boolean;
|
|
38
|
+
readonly value: TValue;
|
|
39
|
+
}>;
|
|
40
|
+
/** Wall-clock origin, so outcomes are comparable across the whole run. */
|
|
41
|
+
readonly now?: () => number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Run the graph, honouring dependencies and the parallelism cap.
|
|
45
|
+
*
|
|
46
|
+
* Failure semantics, stated because they are the difference between a gate you
|
|
47
|
+
* trust and one you argue with:
|
|
48
|
+
* - fail-fast (default): nothing new is scheduled, everything in flight is
|
|
49
|
+
* aborted and reported as `cancelled`, everything unstarted as `skipped`.
|
|
50
|
+
* - `keepGoing`: independent work continues, but a step whose dependency
|
|
51
|
+
* failed is reported `blocked`. It is never reported as passed, and never
|
|
52
|
+
* silently omitted.
|
|
53
|
+
*/
|
|
54
|
+
export declare function runGraph<TNode extends GraphNode, TValue>(options: RunGraphOptions<TNode, TValue>): Promise<TaskOutcome<TValue>[]>;
|
|
55
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { SignoffStepSpec } from './types';
|
|
2
|
+
export declare const DEFAULT_SHUFFLE_RUNS = 2;
|
|
3
|
+
/** A fresh base seed. Random, then recorded — never a fixed constant, or the
|
|
4
|
+
* "randomized" order is one more fixed order. */
|
|
5
|
+
export declare function newSeedBase(): number;
|
|
6
|
+
/**
|
|
7
|
+
* Derive a step's Nth seed from the base.
|
|
8
|
+
*
|
|
9
|
+
* A hash rather than `base + n`: adjacent seeds produce correlated orders in
|
|
10
|
+
* some runners, and the point is independent samples of the order space.
|
|
11
|
+
*/
|
|
12
|
+
export declare function deriveSeed(base: number, stepName: string, index: number): number;
|
|
13
|
+
/**
|
|
14
|
+
* Refuse a shuffled step whose command cannot receive the appended flags.
|
|
15
|
+
*
|
|
16
|
+
* pnpm only forwards extra arguments to a script through `run`, `exec` or
|
|
17
|
+
* `dlx`. The shorthand form puts pnpm's own option parser in front of them, and
|
|
18
|
+
* what happens next is a version lottery. Measured on this host, appending
|
|
19
|
+
* `--sequence.shuffle.files=true --sequence.seed=7` to a script that prints its
|
|
20
|
+
* `process.argv`:
|
|
21
|
+
*
|
|
22
|
+
* | command | pnpm 9.15.9 | pnpm 10.22.0 |
|
|
23
|
+
* |---|---|---|
|
|
24
|
+
* | `pnpm run t <flags>` | forwarded, exit 0 | forwarded, exit 0 |
|
|
25
|
+
* | `pnpm exec node probe.mjs <flags>` | forwarded, exit 0 | forwarded, exit 0 |
|
|
26
|
+
* | `pnpm t <flags>` | `Unknown options`, exit 1 | exit 254, script never ran |
|
|
27
|
+
* | `pnpm --filter web t <flags>` | `Unknown options`, exit 1 | **exit 0, script never ran** |
|
|
28
|
+
*
|
|
29
|
+
* That last cell is the reason this is a refusal and not a note. tax-agent's CI
|
|
30
|
+
* runs `pnpm --filter web test`, and a config that copied the line verbatim
|
|
31
|
+
* would, on pnpm 10, report a green "unit tests" step that executed zero tests.
|
|
32
|
+
* A gate reporting safety it did not provide is the exact failure this module
|
|
33
|
+
* exists to prevent, and the shorthand makes it silent.
|
|
34
|
+
*
|
|
35
|
+
* This is a static approximation — it checks the invocation SHAPE, not what the
|
|
36
|
+
* runner received — so it is deliberately narrow: it fires only on commands
|
|
37
|
+
* that invoke pnpm, and only on steps that get arguments appended.
|
|
38
|
+
*/
|
|
39
|
+
export declare function assertShuffleArgsReachTheRunner(steps: readonly SignoffStepSpec[]): void;
|
|
40
|
+
export interface StepAttemptPlan {
|
|
41
|
+
readonly command: string;
|
|
42
|
+
readonly seed: number | null;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Expand one step into the commands that will actually run.
|
|
46
|
+
*
|
|
47
|
+
* An unshuffled step is one attempt with no seed. A shuffled step is one
|
|
48
|
+
* attempt per seed, each with the seed substituted into the appended arguments.
|
|
49
|
+
*/
|
|
50
|
+
export declare function planAttempts(step: SignoffStepSpec, seedBase: number, overrideRuns?: number): StepAttemptPlan[];
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface StoreResolution {
|
|
2
|
+
readonly storeDir: string;
|
|
3
|
+
readonly cacheKey: string;
|
|
4
|
+
/** True when a store for this key already had content. */
|
|
5
|
+
readonly hit: boolean;
|
|
6
|
+
/** Repo-relative manifest paths, sorted — the inputs to `cacheKey`. */
|
|
7
|
+
readonly keyedOn: readonly string[];
|
|
8
|
+
/** Store directories removed by the generation cap. */
|
|
9
|
+
readonly pruned: readonly string[];
|
|
10
|
+
}
|
|
11
|
+
export interface ResolveStoreOptions {
|
|
12
|
+
/** The clean tree whose manifests are hashed. */
|
|
13
|
+
readonly treePath: string;
|
|
14
|
+
readonly cacheDir: string;
|
|
15
|
+
/** Generations to keep. Default 4. */
|
|
16
|
+
readonly generations?: number;
|
|
17
|
+
}
|
|
18
|
+
/** Every manifest in the tree, repo-relative and sorted. */
|
|
19
|
+
export declare function manifestFiles(treePath: string): string[];
|
|
20
|
+
/** sha256 over each manifest's path and content — order-independent by sorting. */
|
|
21
|
+
export declare function manifestCacheKey(treePath: string, files: readonly string[]): string;
|
|
22
|
+
export declare function resolveStore(options: ResolveStoreOptions): StoreResolution;
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* gates.
|
|
12
12
|
*/
|
|
13
13
|
/** Which bytes get verified. */
|
|
14
|
-
type SignoffSource =
|
|
14
|
+
export type SignoffSource =
|
|
15
15
|
/** Exactly the commit that would merge. Uncommitted work is NOT included. */
|
|
16
16
|
'head'
|
|
17
17
|
/** HEAD plus the working tree: tracked modifications applied as a patch and
|
|
@@ -26,7 +26,7 @@ type SignoffSource =
|
|
|
26
26
|
* it in either direction. Every seed used is recorded in the report, which is
|
|
27
27
|
* what makes a shuffled failure reproducible rather than folklore.
|
|
28
28
|
*/
|
|
29
|
-
interface SignoffShuffleSpec {
|
|
29
|
+
export interface SignoffShuffleSpec {
|
|
30
30
|
/** How many times to run the step, each with its own seed. Default 2. */
|
|
31
31
|
readonly runs?: number;
|
|
32
32
|
/** Exact seeds to use. Wins over `runs`; use it to replay a known failure. */
|
|
@@ -36,7 +36,7 @@ interface SignoffShuffleSpec {
|
|
|
36
36
|
readonly args?: readonly string[];
|
|
37
37
|
}
|
|
38
38
|
/** One verification step — a CI step, declared by the repo. */
|
|
39
|
-
interface SignoffStepSpec {
|
|
39
|
+
export interface SignoffStepSpec {
|
|
40
40
|
/** Unique within the config. Names the failure in the report. */
|
|
41
41
|
readonly name: string;
|
|
42
42
|
/** Shell command, run from `cwd` inside the clean tree. */
|
|
@@ -56,7 +56,7 @@ interface SignoffStepSpec {
|
|
|
56
56
|
readonly shuffle?: boolean | SignoffShuffleSpec;
|
|
57
57
|
}
|
|
58
58
|
/** The hermetic install that precedes every step. */
|
|
59
|
-
interface SignoffInstallSpec {
|
|
59
|
+
export interface SignoffInstallSpec {
|
|
60
60
|
/** Default `pnpm install --frozen-lockfile`. tax-agent needs
|
|
61
61
|
* `--filter web...` because `server/` depends on a sibling repo by `file:`. */
|
|
62
62
|
readonly run?: string;
|
|
@@ -73,7 +73,7 @@ interface SignoffInstallSpec {
|
|
|
73
73
|
readonly env?: Readonly<Record<string, string>>;
|
|
74
74
|
}
|
|
75
75
|
/** What a repo declares in `signoff.config.mjs` or a package.json `signoff` key. */
|
|
76
|
-
interface SignoffConfig {
|
|
76
|
+
export interface SignoffConfig {
|
|
77
77
|
readonly install?: SignoffInstallSpec;
|
|
78
78
|
readonly steps: readonly SignoffStepSpec[];
|
|
79
79
|
/** Cap on concurrently running steps. Defaults to the host's parallelism. */
|
|
@@ -98,7 +98,7 @@ interface SignoffConfig {
|
|
|
98
98
|
}
|
|
99
99
|
/** Where a config came from. Printed in the proof — a run against a derived
|
|
100
100
|
* default is a weaker claim than one against a declared step list. */
|
|
101
|
-
type SignoffConfigOrigin = {
|
|
101
|
+
export type SignoffConfigOrigin = {
|
|
102
102
|
readonly kind: 'file';
|
|
103
103
|
readonly path: string;
|
|
104
104
|
} | {
|
|
@@ -109,12 +109,12 @@ type SignoffConfigOrigin = {
|
|
|
109
109
|
readonly path: string;
|
|
110
110
|
readonly scripts: readonly string[];
|
|
111
111
|
};
|
|
112
|
-
interface LoadedSignoffConfig {
|
|
112
|
+
export interface LoadedSignoffConfig {
|
|
113
113
|
readonly config: SignoffConfig;
|
|
114
114
|
readonly origin: SignoffConfigOrigin;
|
|
115
115
|
}
|
|
116
116
|
/** One execution of a step's command. A shuffled step has several. */
|
|
117
|
-
interface SignoffAttempt {
|
|
117
|
+
export interface SignoffAttempt {
|
|
118
118
|
readonly command: string;
|
|
119
119
|
/** The suite-order seed, or `null` for an unshuffled step. */
|
|
120
120
|
readonly seed: number | null;
|
|
@@ -127,14 +127,14 @@ interface SignoffAttempt {
|
|
|
127
127
|
readonly output: string;
|
|
128
128
|
readonly outputTruncated: boolean;
|
|
129
129
|
}
|
|
130
|
-
type SignoffStepStatus = 'passed' | 'failed'
|
|
130
|
+
export type SignoffStepStatus = 'passed' | 'failed'
|
|
131
131
|
/** Never started — an earlier failure stopped the schedule. */
|
|
132
132
|
| 'skipped'
|
|
133
133
|
/** Started, then killed when another step failed under fail-fast. */
|
|
134
134
|
| 'cancelled'
|
|
135
135
|
/** A dependency failed, so this step could not be judged. */
|
|
136
136
|
| 'blocked';
|
|
137
|
-
interface SignoffStepResult {
|
|
137
|
+
export interface SignoffStepResult {
|
|
138
138
|
readonly name: string;
|
|
139
139
|
readonly status: SignoffStepStatus;
|
|
140
140
|
readonly attempts: readonly SignoffAttempt[];
|
|
@@ -144,7 +144,7 @@ interface SignoffStepResult {
|
|
|
144
144
|
readonly startedAtMs: number | null;
|
|
145
145
|
readonly finishedAtMs: number | null;
|
|
146
146
|
}
|
|
147
|
-
interface SignoffInstallResult {
|
|
147
|
+
export interface SignoffInstallResult {
|
|
148
148
|
readonly command: string;
|
|
149
149
|
readonly storeDir: string;
|
|
150
150
|
readonly cacheKey: string;
|
|
@@ -157,7 +157,7 @@ interface SignoffInstallResult {
|
|
|
157
157
|
readonly output: string;
|
|
158
158
|
readonly outputTruncated: boolean;
|
|
159
159
|
}
|
|
160
|
-
interface SignoffRepoFacts {
|
|
160
|
+
export interface SignoffRepoFacts {
|
|
161
161
|
readonly root: string;
|
|
162
162
|
readonly head: string;
|
|
163
163
|
readonly branch: string;
|
|
@@ -169,7 +169,7 @@ interface SignoffRepoFacts {
|
|
|
169
169
|
readonly untrackedFiles: readonly string[];
|
|
170
170
|
readonly carriedFiles: readonly string[];
|
|
171
171
|
}
|
|
172
|
-
interface SignoffHostFacts {
|
|
172
|
+
export interface SignoffHostFacts {
|
|
173
173
|
readonly node: string;
|
|
174
174
|
/** The pin the repo declares, and where it came from. `null` when the repo
|
|
175
175
|
* pins nothing — stated in the proof, because an unpinned runtime is a
|
|
@@ -181,7 +181,7 @@ interface SignoffHostFacts {
|
|
|
181
181
|
readonly arch: string;
|
|
182
182
|
readonly cpus: number;
|
|
183
183
|
}
|
|
184
|
-
interface SignoffReport {
|
|
184
|
+
export interface SignoffReport {
|
|
185
185
|
readonly ok: boolean;
|
|
186
186
|
readonly startedAt: string;
|
|
187
187
|
readonly repo: SignoffRepoFacts;
|
|
@@ -201,7 +201,7 @@ interface SignoffReport {
|
|
|
201
201
|
readonly reproduce: string;
|
|
202
202
|
}
|
|
203
203
|
/** Progress, for a CLI that prints as it goes rather than at the end. */
|
|
204
|
-
type SignoffEvent = {
|
|
204
|
+
export type SignoffEvent = {
|
|
205
205
|
readonly kind: 'tree';
|
|
206
206
|
readonly path: string;
|
|
207
207
|
readonly head: string;
|
|
@@ -229,5 +229,3 @@ type SignoffEvent = {
|
|
|
229
229
|
readonly status: SignoffStepStatus;
|
|
230
230
|
readonly durationMs: number;
|
|
231
231
|
};
|
|
232
|
-
|
|
233
|
-
export type { LoadedSignoffConfig as L, SignoffSource as S, SignoffEvent as a, SignoffReport as b, SignoffAttempt as c, SignoffConfig as d, SignoffConfigOrigin as e, SignoffHostFacts as f, SignoffInstallResult as g, SignoffInstallSpec as h, SignoffRepoFacts as i, SignoffShuffleSpec as j, SignoffStepResult as k, SignoffStepSpec as l, SignoffStepStatus as m };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read the Node pin out of the workflows that gate a merge.
|
|
3
|
+
*
|
|
4
|
+
* This exists because of a measured false PASS. legal-agent `4c0d688` was red
|
|
5
|
+
* in CI on two test files — `Cannot bundle Node.js built-in "node:sqlite"` —
|
|
6
|
+
* and the sign-off gate signed it off. Same bytes, same lockfile, same
|
|
7
|
+
* hermetic tree: on Node 22 both files fail, on Node 24 both pass, 100% of the
|
|
8
|
+
* time. The runtime was the whole difference, and the gate never saw it because
|
|
9
|
+
* it looked for a pin in exactly two places the fleet does not keep one.
|
|
10
|
+
*
|
|
11
|
+
* None of tax-agent, legal-agent or agent-app has a `.nvmrc`. All three pin
|
|
12
|
+
* `node-version: 22` in the workflow that IS the merge gate. So the pin the
|
|
13
|
+
* gate is replacing was sitting in the file it is replacing, unread.
|
|
14
|
+
*
|
|
15
|
+
* Scope is deliberate: only workflows that trigger on `pull_request`. Those are
|
|
16
|
+
* the merge gate. agent-app's `publish.yml` runs Node 24.18.0 for its release
|
|
17
|
+
* jobs and triggers on push, and reading it would put the gate in permanent
|
|
18
|
+
* conflict with `ci.yml`'s Node 22.
|
|
19
|
+
*
|
|
20
|
+
* Nothing here guesses. An expression (`${{ matrix.node }}`) is not a version,
|
|
21
|
+
* a `node-version-file` that does not exist is not a pin, and two merge-gate
|
|
22
|
+
* workflows on different majors is a question this module cannot answer — each
|
|
23
|
+
* one refuses and names the config key that settles it.
|
|
24
|
+
*/
|
|
25
|
+
export interface WorkflowNodePin {
|
|
26
|
+
/** Repo-relative workflow path, for the proof. */
|
|
27
|
+
readonly file: string;
|
|
28
|
+
/** The version as written: `22`, `24.18.0`, `v20`. */
|
|
29
|
+
readonly value: string;
|
|
30
|
+
/** `node-version`, or the `node-version-file` path it was read through. */
|
|
31
|
+
readonly via: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Does this workflow run on `pull_request`?
|
|
35
|
+
*
|
|
36
|
+
* Both spellings the fleet uses are handled: the block form every workflow here
|
|
37
|
+
* writes, and the inline form (`on: [push, pull_request]`). `on` is quoted in
|
|
38
|
+
* some repos because YAML 1.1 reads a bare `on` as the boolean true, so the
|
|
39
|
+
* quoted keys are matched too.
|
|
40
|
+
*/
|
|
41
|
+
export declare function triggersOnPullRequest(source: string): boolean;
|
|
42
|
+
/** Node pins declared by every workflow that gates a merge, in filename order. */
|
|
43
|
+
export declare function scanMergeGateNodePins(repoRoot: string): WorkflowNodePin[];
|
|
44
|
+
export interface ResolvedWorkflowPin {
|
|
45
|
+
readonly major: number;
|
|
46
|
+
readonly declared: string;
|
|
47
|
+
readonly source: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* One Node major for the whole merge gate, or a refusal that names why not.
|
|
51
|
+
*
|
|
52
|
+
* `majorOf` is injected rather than imported to keep the direction of the
|
|
53
|
+
* dependency one-way: `node-version.ts` owns what a version string means, this
|
|
54
|
+
* module owns where the string lives.
|
|
55
|
+
*/
|
|
56
|
+
export declare function resolveWorkflowNodePin(repoRoot: string, majorOf: (raw: string) => number | null): ResolvedWorkflowPin | null;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { SignoffRepoFacts, SignoffSource } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Materialize the pristine checkout every step runs against.
|
|
4
|
+
*
|
|
5
|
+
* **The decision, and the measurement behind it: a `git worktree` of HEAD, not
|
|
6
|
+
* a filtered copy.** Both were timed on two real repos on this host:
|
|
7
|
+
*
|
|
8
|
+
* | repo | `git worktree add --detach` | `rsync -a --exclude node_modules --exclude .git` |
|
|
9
|
+
* |---|---|---|
|
|
10
|
+
* | agent-app (931 tracked files) | **0.04 s / 11 MB** | 0.12 s / 25 MB |
|
|
11
|
+
* | legal-agent (753 tracked files) | **0.06 s / 24 MB** | **3.97 s / 2.7 GB** |
|
|
12
|
+
*
|
|
13
|
+
* The 2.7 GB is the argument. The copy carried `build/`, `.react-router/` and
|
|
14
|
+
* `.wrangler/` — generated output and framework caches — because an exclude
|
|
15
|
+
* list is a hand-maintained enumeration of things to leave behind, and it is
|
|
16
|
+
* never complete. A warm Vite cache is precisely what made the `node:sqlite`
|
|
17
|
+
* bundling failure invisible locally while CI saw it, so a materializer that
|
|
18
|
+
* can leak one has defeated its own purpose. `git` already knows what is source
|
|
19
|
+
* and what is generated, and `.gitignore` is that list, maintained by the repo.
|
|
20
|
+
*
|
|
21
|
+
* The overlay on top is what keeps the gate usable before you commit:
|
|
22
|
+
* `source: 'working-tree'` applies `git diff HEAD` (staged and unstaged) as a
|
|
23
|
+
* patch and copies untracked, non-ignored files in. `source: 'head'` verifies
|
|
24
|
+
* exactly the commit that would merge.
|
|
25
|
+
*/
|
|
26
|
+
export interface MaterializeOptions {
|
|
27
|
+
readonly repoDir: string;
|
|
28
|
+
readonly dest: string;
|
|
29
|
+
readonly source: SignoffSource;
|
|
30
|
+
/** Gitignored files the run genuinely needs. Missing ones abort. */
|
|
31
|
+
readonly carryFiles?: readonly string[];
|
|
32
|
+
}
|
|
33
|
+
export interface CleanTree extends SignoffRepoFacts {
|
|
34
|
+
/** Absolute path of the materialized checkout. */
|
|
35
|
+
readonly path: string;
|
|
36
|
+
}
|
|
37
|
+
export declare function repoRootOf(dir: string): string;
|
|
38
|
+
export declare function materializeCleanTree(options: MaterializeOptions): CleanTree;
|
|
39
|
+
/** Unregister and delete a materialized tree. */
|
|
40
|
+
export declare function removeCleanTree(tree: CleanTree): void;
|
package/dist/skills/index.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import { AgentProfileFileMount, AgentProfileResourceRef } from '@tangle-network/agent-interface';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* Unified skill + corpus mounter for agent products.
|
|
5
3
|
*
|
|
@@ -43,15 +41,15 @@ import { AgentProfileFileMount, AgentProfileResourceRef } from '@tangle-network/
|
|
|
43
41
|
* are resolved lazily via `process.getBuiltinModule` so a static `node:*`
|
|
44
42
|
* import never reaches the Vite SSR bundle.
|
|
45
43
|
*/
|
|
46
|
-
|
|
44
|
+
import type { AgentProfileFileMount, AgentProfileResourceRef } from '@tangle-network/agent-interface';
|
|
47
45
|
/** A Vite eager `?raw` glob result: glob key -> raw file body. The consumer
|
|
48
46
|
* produces this by calling `import.meta.glob('<lit>', { eager: true, query:
|
|
49
47
|
* '?raw', import: 'default' })` at its own call site — the literal must stay
|
|
50
48
|
* literal so Vite can static-analyze it; passing the result here keeps that
|
|
51
49
|
* constraint at the edge and the loader substrate-free. */
|
|
52
|
-
type GlobModules = Record<string, string>;
|
|
50
|
+
export type GlobModules = Record<string, string>;
|
|
53
51
|
/** One markdown document discovered from the corpus. */
|
|
54
|
-
interface CorpusEntry {
|
|
52
|
+
export interface CorpusEntry {
|
|
55
53
|
/** Slug derived from the glob key (folder slug for `SKILL.md` layouts, or the
|
|
56
54
|
* normalized relative path for flat `*.md` layouts). */
|
|
57
55
|
id: string;
|
|
@@ -65,7 +63,7 @@ interface CorpusEntry {
|
|
|
65
63
|
* registry entry (gtm/insurance `SkillEntry`); the runtime's certified `skill`
|
|
66
64
|
* artifact kind is unrelated. `skillMd` is the inline body — file provenance
|
|
67
65
|
* does not apply to the registry. */
|
|
68
|
-
interface SkillEntry {
|
|
66
|
+
export interface SkillEntry {
|
|
69
67
|
id: string;
|
|
70
68
|
name: string;
|
|
71
69
|
description: string;
|
|
@@ -93,9 +91,9 @@ interface SkillEntry {
|
|
|
93
91
|
* harness-native dir directly via `@tangle-network/agent-app/skills-placement`.
|
|
94
92
|
* Kept only for the pre-existing `registrySkills`/`userSkillMounts` callers;
|
|
95
93
|
* do not add new call sites. */
|
|
96
|
-
declare function skillMountPath(id: string): string;
|
|
94
|
+
export declare function skillMountPath(id: string): string;
|
|
97
95
|
/** Options for {@link loadMarkdownCorpus}. */
|
|
98
|
-
interface LoadCorpusOptions {
|
|
96
|
+
export interface LoadCorpusOptions {
|
|
99
97
|
/** The anchor folder name that appears in both glob keys and fs paths
|
|
100
98
|
* (`skills`, `doctrine`, `knowledge`). Used to normalize keys + derive ids. */
|
|
101
99
|
anchor: string;
|
|
@@ -116,7 +114,7 @@ interface LoadCorpusOptions {
|
|
|
116
114
|
/** Outcome of {@link loadMarkdownCorpus}: the entries plus which path produced
|
|
117
115
|
* them, so a caller can fail loud when both are empty rather than silently
|
|
118
116
|
* mounting nothing. */
|
|
119
|
-
interface CorpusLoadResult {
|
|
117
|
+
export interface CorpusLoadResult {
|
|
120
118
|
source: 'vite' | 'fs' | 'empty';
|
|
121
119
|
entries: CorpusEntry[];
|
|
122
120
|
}
|
|
@@ -127,18 +125,18 @@ interface CorpusLoadResult {
|
|
|
127
125
|
* determinism. The `import.meta.glob` literal stays at the CONSUMER call site
|
|
128
126
|
* (passed in as `globModules`); this loader never constructs a glob.
|
|
129
127
|
*/
|
|
130
|
-
declare function loadMarkdownCorpus(options: LoadCorpusOptions, importMetaUrl?: string): CorpusLoadResult;
|
|
128
|
+
export declare function loadMarkdownCorpus(options: LoadCorpusOptions, importMetaUrl?: string): CorpusLoadResult;
|
|
131
129
|
/** Project corpus entries onto SDK file mounts at a relative path under
|
|
132
130
|
* `<anchor>/`. Always-mounted: the corpus is the agent's baseline knowledge. */
|
|
133
|
-
declare function corpusSkills(corpus: CorpusEntry[], anchor: string): AgentProfileFileMount[];
|
|
131
|
+
export declare function corpusSkills(corpus: CorpusEntry[], anchor: string): AgentProfileFileMount[];
|
|
134
132
|
/** Project the registry's free-tier (or `tier`-matched) entries onto SDK file
|
|
135
133
|
* mounts at the harness skill-discovery path. Tier-gating is the registry's
|
|
136
134
|
* only selection rule — paid skills are installed on demand, not at boot. */
|
|
137
|
-
declare function registrySkills(registry: SkillEntry[], tier?: string): AgentProfileFileMount[];
|
|
135
|
+
export declare function registrySkills(registry: SkillEntry[], tier?: string): AgentProfileFileMount[];
|
|
138
136
|
/** Inputs to {@link composeShellResources}. Each channel is optional so a
|
|
139
137
|
* product mounts only the systems it has — corpus-only, registry-only, or
|
|
140
138
|
* both — without conflating them. */
|
|
141
|
-
interface ComposeShellResourcesInput {
|
|
139
|
+
export interface ComposeShellResourcesInput {
|
|
142
140
|
/** Corpus mounts (always-mounted baseline). Pass the result of
|
|
143
141
|
* {@link corpusSkills}, or a hand-built mount list. */
|
|
144
142
|
skills?: AgentProfileFileMount[];
|
|
@@ -159,11 +157,11 @@ interface ComposeShellResourcesInput {
|
|
|
159
157
|
* is exactly `AgentProfileFileMount[]` — assign it straight into
|
|
160
158
|
* `profile.resources.files` with no cast.
|
|
161
159
|
*/
|
|
162
|
-
declare function composeShellResources(input: ComposeShellResourcesInput): AgentProfileFileMount[];
|
|
160
|
+
export declare function composeShellResources(input: ComposeShellResourcesInput): AgentProfileFileMount[];
|
|
163
161
|
/** Fields a `SKILL.md` frontmatter block may declare. All optional — absent
|
|
164
162
|
* frontmatter (or an absent field within it) is legal; callers fill defaults
|
|
165
163
|
* (see {@link skillEntryFromMarkdown}). */
|
|
166
|
-
interface SkillFrontmatter {
|
|
164
|
+
export interface SkillFrontmatter {
|
|
167
165
|
id?: string;
|
|
168
166
|
name?: string;
|
|
169
167
|
description?: string;
|
|
@@ -178,7 +176,7 @@ interface SkillFrontmatter {
|
|
|
178
176
|
}
|
|
179
177
|
/** The result of {@link parseSkillFrontmatter}: the parsed fields, the body
|
|
180
178
|
* with the frontmatter block stripped, and the original untouched text. */
|
|
181
|
-
interface ParsedSkill {
|
|
179
|
+
export interface ParsedSkill {
|
|
182
180
|
frontmatter: SkillFrontmatter;
|
|
183
181
|
body: string;
|
|
184
182
|
raw: string;
|
|
@@ -197,7 +195,7 @@ interface ParsedSkill {
|
|
|
197
195
|
* mis-parsed metadata is the bug class this parser exists to kill; an
|
|
198
196
|
* unrecognized shape is never guessed at.
|
|
199
197
|
*/
|
|
200
|
-
declare function parseSkillFrontmatter(raw: string): ParsedSkill;
|
|
198
|
+
export declare function parseSkillFrontmatter(raw: string): ParsedSkill;
|
|
201
199
|
/** Build a {@link SkillEntry} from a raw `SKILL.md` body. `id` comes from
|
|
202
200
|
* frontmatter, falling back to `fallbackId` (typically the corpus entry's
|
|
203
201
|
* slug/filename); neither present throws. `name` defaults to `id`,
|
|
@@ -205,21 +203,21 @@ declare function parseSkillFrontmatter(raw: string): ParsedSkill;
|
|
|
205
203
|
* untouched `raw` input — the full file, frontmatter included, is what a
|
|
206
204
|
* `mounted` delivery writes to disk and what `renderInlineSkills` strips per
|
|
207
205
|
* render. */
|
|
208
|
-
declare function skillEntryFromMarkdown(raw: string, fallbackId?: string): SkillEntry;
|
|
206
|
+
export declare function skillEntryFromMarkdown(raw: string, fallbackId?: string): SkillEntry;
|
|
209
207
|
/** Map a loaded corpus (see {@link loadMarkdownCorpus}) onto `SkillEntry`s,
|
|
210
208
|
* using each entry's `id` as the fallback when its `SKILL.md` carries no
|
|
211
209
|
* frontmatter `id` of its own. */
|
|
212
|
-
declare function parseCorpusSkills(corpus: CorpusEntry[]): SkillEntry[];
|
|
210
|
+
export declare function parseCorpusSkills(corpus: CorpusEntry[]): SkillEntry[];
|
|
213
211
|
/** Project skills onto the typed `resources.skills` channel
|
|
214
212
|
* (`AgentProfileResourceRef[]`), tier-filtered (same `s.tier === tier`
|
|
215
213
|
* semantics as {@link registrySkills}) when `opts.tier` is given, sorted by
|
|
216
214
|
* id for determinism. `ref.name` MUST be the skill id: the platform
|
|
217
215
|
* materializer writes each ref to `${skillDir}/${name}/SKILL.md`. */
|
|
218
|
-
declare function skillRefs(skills: SkillEntry[], opts?: {
|
|
216
|
+
export declare function skillRefs(skills: SkillEntry[], opts?: {
|
|
219
217
|
tier?: string;
|
|
220
218
|
}): AgentProfileResourceRef[];
|
|
221
219
|
/** Inputs to {@link renderInlineSkills}. */
|
|
222
|
-
interface RenderInlineSkillsInput {
|
|
220
|
+
export interface RenderInlineSkillsInput {
|
|
223
221
|
skills: SkillEntry[];
|
|
224
222
|
/** Section heading. Default `'## Skills'`. */
|
|
225
223
|
heading?: string;
|
|
@@ -236,9 +234,9 @@ interface RenderInlineSkillsInput {
|
|
|
236
234
|
* `\n\n` — the same "already carries its own leading `\n\n`" shape
|
|
237
235
|
* `assembleSystemPrompt` expects from every section it concatenates.
|
|
238
236
|
*/
|
|
239
|
-
declare function renderInlineSkills(input: RenderInlineSkillsInput): string;
|
|
237
|
+
export declare function renderInlineSkills(input: RenderInlineSkillsInput): string;
|
|
240
238
|
/** Inputs to {@link renderSkillIndex}. */
|
|
241
|
-
interface RenderSkillIndexInput {
|
|
239
|
+
export interface RenderSkillIndexInput {
|
|
242
240
|
skills: SkillEntry[];
|
|
243
241
|
/** cwd-relative directory the skills are mounted under (e.g.
|
|
244
242
|
* `.opencode/skills`) — named in each index line so the agent knows where
|
|
@@ -255,25 +253,25 @@ interface RenderSkillIndexInput {
|
|
|
255
253
|
* {@link skillRefs} putting the actual files on `resources.skills`. Same
|
|
256
254
|
* empty/section shape as {@link renderInlineSkills}.
|
|
257
255
|
*/
|
|
258
|
-
declare function renderSkillIndex(input: RenderSkillIndexInput): string;
|
|
256
|
+
export declare function renderSkillIndex(input: RenderSkillIndexInput): string;
|
|
259
257
|
/** How a skill reaches the agent: `inline` renders its full body into the
|
|
260
258
|
* system prompt; `mounted` puts it on the typed `resources.skills` channel
|
|
261
259
|
* and renders only an index line. */
|
|
262
|
-
type SkillDeliveryMode = 'inline' | 'mounted';
|
|
260
|
+
export type SkillDeliveryMode = 'inline' | 'mounted';
|
|
263
261
|
/** The output of {@link composeSkills}: the refs to attach to
|
|
264
262
|
* `resources.skills` (empty for `inline`) and the prompt section to fold into
|
|
265
263
|
* the system prompt (already carries its own leading `\n\n`, or `''`).
|
|
266
264
|
* `inlineIds`/`mountedIds` record which (tier-filtered) skills were delivered
|
|
267
265
|
* in each mode so {@link mergeComposedSkills} can enforce the modes stay
|
|
268
266
|
* disjoint when batches are combined. */
|
|
269
|
-
interface ComposedSkills {
|
|
267
|
+
export interface ComposedSkills {
|
|
270
268
|
refs: AgentProfileResourceRef[];
|
|
271
269
|
promptSection: string;
|
|
272
270
|
inlineIds: string[];
|
|
273
271
|
mountedIds: string[];
|
|
274
272
|
}
|
|
275
273
|
/** Inputs to {@link composeSkills}. */
|
|
276
|
-
interface ComposeSkillsInput {
|
|
274
|
+
export interface ComposeSkillsInput {
|
|
277
275
|
skills: SkillEntry[];
|
|
278
276
|
mode: SkillDeliveryMode;
|
|
279
277
|
tier?: string;
|
|
@@ -293,12 +291,12 @@ interface ComposeSkillsInput {
|
|
|
293
291
|
* whose own default is to throw rather than choose `inline` for you — inline
|
|
294
292
|
* is a narrow, explicitly opted-into fallback, not a co-equal mode).
|
|
295
293
|
*/
|
|
296
|
-
declare function composeSkills(input: ComposeSkillsInput): ComposedSkills;
|
|
294
|
+
export declare function composeSkills(input: ComposeSkillsInput): ComposedSkills;
|
|
297
295
|
/** Throw when the same skill id is delivered both `inline` and `mounted` —
|
|
298
296
|
* the agent would see it twice (once in the prompt body, once as a mounted
|
|
299
297
|
* file it's told to go read), doubling prompt bytes and inviting drift
|
|
300
298
|
* between the two copies. Lists every offending id in the message. */
|
|
301
|
-
declare function assertSkillDeliveryDisjoint(inlineIds: Iterable<string>, mountedIds: Iterable<string>): void;
|
|
299
|
+
export declare function assertSkillDeliveryDisjoint(inlineIds: Iterable<string>, mountedIds: Iterable<string>): void;
|
|
302
300
|
/**
|
|
303
301
|
* Combine multiple {@link ComposedSkills} batches (e.g. a built-in corpus and
|
|
304
302
|
* an installed catalog) into one, concatenating refs and prompt sections in
|
|
@@ -308,6 +306,4 @@ declare function assertSkillDeliveryDisjoint(inlineIds: Iterable<string>, mounte
|
|
|
308
306
|
* reaching the agent twice. Merge through this rather than spreading batch
|
|
309
307
|
* fields by hand.
|
|
310
308
|
*/
|
|
311
|
-
declare function mergeComposedSkills(batches: ComposedSkills[]): ComposedSkills;
|
|
312
|
-
|
|
313
|
-
export { type ComposeShellResourcesInput, type ComposeSkillsInput, type ComposedSkills, type CorpusEntry, type CorpusLoadResult, type GlobModules, type LoadCorpusOptions, type ParsedSkill, type RenderInlineSkillsInput, type RenderSkillIndexInput, type SkillDeliveryMode, type SkillEntry, type SkillFrontmatter, assertSkillDeliveryDisjoint, composeShellResources, composeSkills, corpusSkills, loadMarkdownCorpus, mergeComposedSkills, parseCorpusSkills, parseSkillFrontmatter, registrySkills, renderInlineSkills, renderSkillIndex, skillEntryFromMarkdown, skillMountPath, skillRefs };
|
|
309
|
+
export declare function mergeComposedSkills(batches: ComposedSkills[]): ComposedSkills;
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
import { Harness } from '../harness/index.js';
|
|
2
|
-
import { SkillEntry, ComposedSkills } from '../skills/index.js';
|
|
3
|
-
import '@tangle-network/agent-interface';
|
|
4
|
-
|
|
5
1
|
/**
|
|
6
2
|
* Harness-native skill directory resolution — the one place agent-app binds
|
|
7
3
|
* to the platform's authoritative per-harness skill-dir map.
|
|
@@ -21,19 +17,20 @@ import '@tangle-network/agent-interface';
|
|
|
21
17
|
* other agent-app skills surface (`../skills`, `ProfileChannels.skillRefs`)
|
|
22
18
|
* works without it, falling back to `inline` delivery.
|
|
23
19
|
*/
|
|
24
|
-
|
|
20
|
+
import { type Harness } from '../harness/index';
|
|
21
|
+
import { type ComposedSkills, type SkillEntry } from '../skills/index';
|
|
25
22
|
/** Resolve the cwd-relative skill dir `resources.skills` refs materialize
|
|
26
23
|
* into on `harness` — via the platform's `skillDirForHarness`. `null` when
|
|
27
24
|
* `harness` isn't bridged (see {@link HARNESS_BRIDGE}) or when the platform
|
|
28
25
|
* itself has no cwd skill primitive for it (e.g. `hermes`, user-dir-only). */
|
|
29
|
-
declare function resolveSkillDir(harness: Harness): string | null;
|
|
26
|
+
export declare function resolveSkillDir(harness: Harness): string | null;
|
|
30
27
|
/** Filter `harnesses` down to those with no mounted skill dir (deduped,
|
|
31
28
|
* first-seen order preserved) — the set that must fall back to `inline`
|
|
32
29
|
* delivery, or that a caller should warn about before offering "mounted"
|
|
33
30
|
* install UX. */
|
|
34
|
-
declare function unsupportedSkillHarnesses(harnesses: Iterable<Harness>): Harness[];
|
|
31
|
+
export declare function unsupportedSkillHarnesses(harnesses: Iterable<Harness>): Harness[];
|
|
35
32
|
/** Inputs to {@link composeSkillsForHarness}. */
|
|
36
|
-
interface ComposeSkillsForHarnessInput {
|
|
33
|
+
export interface ComposeSkillsForHarnessInput {
|
|
37
34
|
skills: SkillEntry[];
|
|
38
35
|
harness: Harness;
|
|
39
36
|
tier?: string;
|
|
@@ -76,6 +73,5 @@ interface ComposeSkillsForHarnessInput {
|
|
|
76
73
|
* The one function a product calls instead of hand-checking `resolveSkillDir`
|
|
77
74
|
* and branching between {@link composeSkills}'s two modes itself.
|
|
78
75
|
*/
|
|
79
|
-
declare function composeSkillsForHarness(input: ComposeSkillsForHarnessInput): ComposedSkills;
|
|
80
|
-
|
|
81
|
-
export { type ComposeSkillsForHarnessInput, ComposedSkills, SkillEntry, composeSkillsForHarness, resolveSkillDir, unsupportedSkillHarnesses };
|
|
76
|
+
export declare function composeSkillsForHarness(input: ComposeSkillsForHarnessInput): ComposedSkills;
|
|
77
|
+
export type { ComposedSkills, SkillEntry } from '../skills/index';
|