@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,202 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Bumped when the canonical body shape changes; a verifier refuses versions it does not know. */
|
|
3
|
+
export declare const SIGNOFF_PROOF_VERSION = 1;
|
|
4
|
+
declare const signoffProofStepSchema: z.ZodObject<{
|
|
5
|
+
id: z.ZodString;
|
|
6
|
+
command: z.ZodString;
|
|
7
|
+
cwd: z.ZodString;
|
|
8
|
+
status: z.ZodEnum<{
|
|
9
|
+
skipped: "skipped";
|
|
10
|
+
failed: "failed";
|
|
11
|
+
cancelled: "cancelled";
|
|
12
|
+
blocked: "blocked";
|
|
13
|
+
passed: "passed";
|
|
14
|
+
}>;
|
|
15
|
+
exitCode: z.ZodNumber;
|
|
16
|
+
durationMs: z.ZodNumber;
|
|
17
|
+
startedAt: z.ZodString;
|
|
18
|
+
outputSha256: z.ZodString;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
declare const signoffProofPeerSchema: z.ZodObject<{
|
|
21
|
+
name: z.ZodString;
|
|
22
|
+
version: z.ZodNullable<z.ZodString>;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
declare const signoffProofSubjectSchema: z.ZodObject<{
|
|
25
|
+
repo: z.ZodString;
|
|
26
|
+
commit: z.ZodString;
|
|
27
|
+
tree: z.ZodString;
|
|
28
|
+
commitTree: z.ZodString;
|
|
29
|
+
parents: z.ZodArray<z.ZodString>;
|
|
30
|
+
committedAt: z.ZodString;
|
|
31
|
+
}, z.core.$strip>;
|
|
32
|
+
declare const signoffProofBodySchema: z.ZodObject<{
|
|
33
|
+
proofVersion: z.ZodNumber;
|
|
34
|
+
subject: z.ZodObject<{
|
|
35
|
+
repo: z.ZodString;
|
|
36
|
+
commit: z.ZodString;
|
|
37
|
+
tree: z.ZodString;
|
|
38
|
+
commitTree: z.ZodString;
|
|
39
|
+
parents: z.ZodArray<z.ZodString>;
|
|
40
|
+
committedAt: z.ZodString;
|
|
41
|
+
}, z.core.$strip>;
|
|
42
|
+
signedAt: z.ZodString;
|
|
43
|
+
host: z.ZodObject<{
|
|
44
|
+
hostname: z.ZodString;
|
|
45
|
+
platform: z.ZodString;
|
|
46
|
+
arch: z.ZodString;
|
|
47
|
+
user: z.ZodString;
|
|
48
|
+
}, z.core.$strip>;
|
|
49
|
+
tooling: z.ZodObject<{
|
|
50
|
+
node: z.ZodString;
|
|
51
|
+
pnpm: z.ZodNullable<z.ZodString>;
|
|
52
|
+
peers: z.ZodArray<z.ZodObject<{
|
|
53
|
+
name: z.ZodString;
|
|
54
|
+
version: z.ZodNullable<z.ZodString>;
|
|
55
|
+
}, z.core.$strip>>;
|
|
56
|
+
}, z.core.$strip>;
|
|
57
|
+
wallClockMs: z.ZodNumber;
|
|
58
|
+
seeds: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
59
|
+
declaredRequired: z.ZodArray<z.ZodString>;
|
|
60
|
+
steps: z.ZodArray<z.ZodObject<{
|
|
61
|
+
id: z.ZodString;
|
|
62
|
+
command: z.ZodString;
|
|
63
|
+
cwd: z.ZodString;
|
|
64
|
+
status: z.ZodEnum<{
|
|
65
|
+
skipped: "skipped";
|
|
66
|
+
failed: "failed";
|
|
67
|
+
cancelled: "cancelled";
|
|
68
|
+
blocked: "blocked";
|
|
69
|
+
passed: "passed";
|
|
70
|
+
}>;
|
|
71
|
+
exitCode: z.ZodNumber;
|
|
72
|
+
durationMs: z.ZodNumber;
|
|
73
|
+
startedAt: z.ZodString;
|
|
74
|
+
outputSha256: z.ZodString;
|
|
75
|
+
}, z.core.$strip>>;
|
|
76
|
+
verdict: z.ZodEnum<{
|
|
77
|
+
fail: "fail";
|
|
78
|
+
pass: "pass";
|
|
79
|
+
}>;
|
|
80
|
+
}, z.core.$strip>;
|
|
81
|
+
declare const signoffProofSealSchema: z.ZodObject<{
|
|
82
|
+
algorithm: z.ZodEnum<{
|
|
83
|
+
sha256: "sha256";
|
|
84
|
+
"hmac-sha256": "hmac-sha256";
|
|
85
|
+
}>;
|
|
86
|
+
bodySha256: z.ZodString;
|
|
87
|
+
keyId: z.ZodNullable<z.ZodString>;
|
|
88
|
+
mac: z.ZodNullable<z.ZodString>;
|
|
89
|
+
}, z.core.$strip>;
|
|
90
|
+
declare const signoffProofSchema: z.ZodObject<{
|
|
91
|
+
body: z.ZodObject<{
|
|
92
|
+
proofVersion: z.ZodNumber;
|
|
93
|
+
subject: z.ZodObject<{
|
|
94
|
+
repo: z.ZodString;
|
|
95
|
+
commit: z.ZodString;
|
|
96
|
+
tree: z.ZodString;
|
|
97
|
+
commitTree: z.ZodString;
|
|
98
|
+
parents: z.ZodArray<z.ZodString>;
|
|
99
|
+
committedAt: z.ZodString;
|
|
100
|
+
}, z.core.$strip>;
|
|
101
|
+
signedAt: z.ZodString;
|
|
102
|
+
host: z.ZodObject<{
|
|
103
|
+
hostname: z.ZodString;
|
|
104
|
+
platform: z.ZodString;
|
|
105
|
+
arch: z.ZodString;
|
|
106
|
+
user: z.ZodString;
|
|
107
|
+
}, z.core.$strip>;
|
|
108
|
+
tooling: z.ZodObject<{
|
|
109
|
+
node: z.ZodString;
|
|
110
|
+
pnpm: z.ZodNullable<z.ZodString>;
|
|
111
|
+
peers: z.ZodArray<z.ZodObject<{
|
|
112
|
+
name: z.ZodString;
|
|
113
|
+
version: z.ZodNullable<z.ZodString>;
|
|
114
|
+
}, z.core.$strip>>;
|
|
115
|
+
}, z.core.$strip>;
|
|
116
|
+
wallClockMs: z.ZodNumber;
|
|
117
|
+
seeds: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
118
|
+
declaredRequired: z.ZodArray<z.ZodString>;
|
|
119
|
+
steps: z.ZodArray<z.ZodObject<{
|
|
120
|
+
id: z.ZodString;
|
|
121
|
+
command: z.ZodString;
|
|
122
|
+
cwd: z.ZodString;
|
|
123
|
+
status: z.ZodEnum<{
|
|
124
|
+
skipped: "skipped";
|
|
125
|
+
failed: "failed";
|
|
126
|
+
cancelled: "cancelled";
|
|
127
|
+
blocked: "blocked";
|
|
128
|
+
passed: "passed";
|
|
129
|
+
}>;
|
|
130
|
+
exitCode: z.ZodNumber;
|
|
131
|
+
durationMs: z.ZodNumber;
|
|
132
|
+
startedAt: z.ZodString;
|
|
133
|
+
outputSha256: z.ZodString;
|
|
134
|
+
}, z.core.$strip>>;
|
|
135
|
+
verdict: z.ZodEnum<{
|
|
136
|
+
fail: "fail";
|
|
137
|
+
pass: "pass";
|
|
138
|
+
}>;
|
|
139
|
+
}, z.core.$strip>;
|
|
140
|
+
seal: z.ZodObject<{
|
|
141
|
+
algorithm: z.ZodEnum<{
|
|
142
|
+
sha256: "sha256";
|
|
143
|
+
"hmac-sha256": "hmac-sha256";
|
|
144
|
+
}>;
|
|
145
|
+
bodySha256: z.ZodString;
|
|
146
|
+
keyId: z.ZodNullable<z.ZodString>;
|
|
147
|
+
mac: z.ZodNullable<z.ZodString>;
|
|
148
|
+
}, z.core.$strip>;
|
|
149
|
+
}, z.core.$strip>;
|
|
150
|
+
export type SignoffProofStep = z.infer<typeof signoffProofStepSchema>;
|
|
151
|
+
export type SignoffProofPeer = z.infer<typeof signoffProofPeerSchema>;
|
|
152
|
+
export type SignoffProofSubject = z.infer<typeof signoffProofSubjectSchema>;
|
|
153
|
+
export type SignoffProofBody = z.infer<typeof signoffProofBodySchema>;
|
|
154
|
+
export type SignoffProofSeal = z.infer<typeof signoffProofSealSchema>;
|
|
155
|
+
export type SignoffProof = z.infer<typeof signoffProofSchema>;
|
|
156
|
+
type CanonicalValue = string | number | boolean | null | readonly CanonicalValue[] | {
|
|
157
|
+
readonly [key: string]: CanonicalValue;
|
|
158
|
+
};
|
|
159
|
+
/**
|
|
160
|
+
* Deterministic JSON: object keys sorted, array order preserved, no whitespace.
|
|
161
|
+
*
|
|
162
|
+
* The seal is a hash over this string, so two readers must produce byte-identical
|
|
163
|
+
* bytes from the same record. `undefined` throws rather than vanishing — a field
|
|
164
|
+
* that silently disappears is a field the hash stops covering.
|
|
165
|
+
*/
|
|
166
|
+
export declare function canonicalJson(value: CanonicalValue): string;
|
|
167
|
+
export declare function canonicalizeProofBody(body: SignoffProofBody): string;
|
|
168
|
+
export declare function hashProofBody(body: SignoffProofBody): string;
|
|
169
|
+
/** The digest a runner records for a step's combined output. Shared so both halves agree. */
|
|
170
|
+
export declare function hashStepOutput(output: string): string;
|
|
171
|
+
export declare function signoffKeyId(key: Uint8Array): string;
|
|
172
|
+
/** Read the local sign-off key. Throws when absent — an unreadable key is never a silent downgrade to unsealed. */
|
|
173
|
+
export declare function readSignoffKey(path: string): Uint8Array;
|
|
174
|
+
export declare function sealProof(body: SignoffProofBody, key?: Uint8Array): SignoffProof;
|
|
175
|
+
/** Constant-time comparison of two hex digests of equal length. */
|
|
176
|
+
export declare function macMatches(expected: string, actual: string): boolean;
|
|
177
|
+
export interface BuildSignoffProofInput {
|
|
178
|
+
readonly repoDir: string;
|
|
179
|
+
/** Repo identity the verifier's required-step table is keyed on. */
|
|
180
|
+
readonly repo: string;
|
|
181
|
+
/** Revision the sign-off is for; defaults to `HEAD`. */
|
|
182
|
+
readonly rev?: string;
|
|
183
|
+
readonly steps: readonly SignoffProofStep[];
|
|
184
|
+
/** Measured elapsed time for the run. Required — it is not derivable from the steps. */
|
|
185
|
+
readonly wallClockMs: number;
|
|
186
|
+
/** Step ids this run treated as required. Checked against the verifier's table. */
|
|
187
|
+
readonly declaredRequired: readonly string[];
|
|
188
|
+
readonly seeds: Readonly<Record<string, string | number>>;
|
|
189
|
+
readonly peerNames?: readonly string[];
|
|
190
|
+
readonly key?: Uint8Array;
|
|
191
|
+
readonly now?: Date;
|
|
192
|
+
}
|
|
193
|
+
export declare function buildSignoffProof(input: BuildSignoffProofInput): SignoffProof;
|
|
194
|
+
/** Parse an untrusted proof document, failing loud on any shape the verifier cannot reason about. */
|
|
195
|
+
export declare function parseSignoffProof(json: string): SignoffProof;
|
|
196
|
+
export declare function serializeSignoffProof(proof: SignoffProof): string;
|
|
197
|
+
/**
|
|
198
|
+
* The single line an operator pastes into a PR or a merge commit: how many steps
|
|
199
|
+
* ran, how long it took, the seeds, and the verdict.
|
|
200
|
+
*/
|
|
201
|
+
export declare function formatSignoffSummary(proof: SignoffProof): string;
|
|
202
|
+
export {};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `verify-proof` — the half a reader runs, on a machine that did not produce
|
|
3
|
+
* the proof, to decide whether a commit was really signed off.
|
|
4
|
+
*
|
|
5
|
+
* The verifier never believes the document. Every claim it can re-derive, it
|
|
6
|
+
* re-derives from git and compares; every claim it cannot re-derive is reported
|
|
7
|
+
* as recorded, not as checked. The one field the proof is deliberately not
|
|
8
|
+
* allowed to own is **which steps were required**: a run that declares its own
|
|
9
|
+
* bar can declare an empty one, so the authoritative table lives here and a
|
|
10
|
+
* proof declaring fewer requirements than its repo's table fails as
|
|
11
|
+
* `lowered-bar`.
|
|
12
|
+
*/
|
|
13
|
+
import type { CommitFacts, IsAncestorFn } from './proof-git';
|
|
14
|
+
import { type SignoffProof } from './proof-record';
|
|
15
|
+
/**
|
|
16
|
+
* The steps a repo's sign-off MUST cover, transcribed from each repo's CI job.
|
|
17
|
+
* A runner is free to run more; it may never run fewer.
|
|
18
|
+
*
|
|
19
|
+
* agent-app .github/workflows/ci.yml
|
|
20
|
+
* tax-agent .github/workflows/deploy.yml (the `ci` job)
|
|
21
|
+
* legal-agent .github/workflows/deploy.yml (the `ci` job)
|
|
22
|
+
*/
|
|
23
|
+
export declare const SIGNOFF_REQUIRED_STEPS: Readonly<Record<string, readonly string[]>>;
|
|
24
|
+
/** Throws for a repo with no table — an unrecognised repo has no bar, and no bar is not a pass. */
|
|
25
|
+
export declare function requiredStepsFor(repo: string): readonly string[];
|
|
26
|
+
export type SignoffFailureCode = 'unsupported-version' | 'body-tampered' | 'mac-missing' | 'mac-invalid' | 'unknown-repo' | 'repo-mismatch' | 'tree-mismatch' | 'dirty-worktree' | 'commit-unbound' | 'missing-required-step' | 'lowered-bar' | 'duplicate-step' | 'step-failed' | 'verdict-fail' | 'stale-proof';
|
|
27
|
+
export interface SignoffFailure {
|
|
28
|
+
readonly code: SignoffFailureCode;
|
|
29
|
+
readonly detail: string;
|
|
30
|
+
}
|
|
31
|
+
/** How the proof attaches to the commit that was asked about. */
|
|
32
|
+
export type SignoffCommitBinding =
|
|
33
|
+
/** The proof names this exact commit. */
|
|
34
|
+
'exact'
|
|
35
|
+
/** A different commit id, but byte-identical content — a rebase or a squash of what was verified. */
|
|
36
|
+
| 'tree-equivalent'
|
|
37
|
+
/** Neither. The proof does not describe this commit. */
|
|
38
|
+
| 'none';
|
|
39
|
+
export interface SignoffVerification {
|
|
40
|
+
readonly ok: boolean;
|
|
41
|
+
readonly commitBinding: SignoffCommitBinding;
|
|
42
|
+
/** True only when a key was supplied AND the mac over the canonical body matched. */
|
|
43
|
+
readonly macChecked: boolean;
|
|
44
|
+
readonly failures: readonly SignoffFailure[];
|
|
45
|
+
readonly proof: SignoffProof;
|
|
46
|
+
readonly target: CommitFacts;
|
|
47
|
+
readonly requiredSteps: readonly string[];
|
|
48
|
+
}
|
|
49
|
+
export interface VerifySignoffProofOptions {
|
|
50
|
+
/** The commit the reader is asking about, read from git — never from the proof. */
|
|
51
|
+
readonly target: CommitFacts;
|
|
52
|
+
/**
|
|
53
|
+
* Reachability in the target's history. Required, because the clock cannot
|
|
54
|
+
* answer staleness on its own: git records committer time to the SECOND, so a
|
|
55
|
+
* proof and the commit it is being replayed onto routinely share a timestamp.
|
|
56
|
+
* Ancestry is exact and clock-free.
|
|
57
|
+
*/
|
|
58
|
+
readonly isAncestor: IsAncestorFn;
|
|
59
|
+
/** Local HMAC key. Omitted, the mac is reported unchecked rather than assumed good. */
|
|
60
|
+
readonly key?: Uint8Array;
|
|
61
|
+
/** Overrides the built-in table. Supplying `[]` is a deliberate no-bar check, and says so. */
|
|
62
|
+
readonly requiredSteps?: readonly string[];
|
|
63
|
+
/** Repo identity the caller expects; a mismatch against the proof is a failure, not a rename. */
|
|
64
|
+
readonly expectRepo?: string;
|
|
65
|
+
}
|
|
66
|
+
export declare function verifySignoffProof(proof: SignoffProof, options: VerifySignoffProofOptions): SignoffVerification;
|
|
67
|
+
export interface VerifySignoffAtRevInput {
|
|
68
|
+
readonly repoDir: string;
|
|
69
|
+
readonly rev: string;
|
|
70
|
+
readonly key?: Uint8Array;
|
|
71
|
+
readonly requiredSteps?: readonly string[];
|
|
72
|
+
readonly expectRepo?: string;
|
|
73
|
+
}
|
|
74
|
+
type SignoffLookupFailure = {
|
|
75
|
+
readonly found: false;
|
|
76
|
+
readonly commit: string;
|
|
77
|
+
readonly hint: readonly string[];
|
|
78
|
+
};
|
|
79
|
+
export type SignoffVerifyOutcome = ({
|
|
80
|
+
readonly found: true;
|
|
81
|
+
} & SignoffVerification) | SignoffLookupFailure;
|
|
82
|
+
/** Verify by revision: find the proof attached to that SHA (or to its content), then check it. */
|
|
83
|
+
export declare function verifySignoffAtRev(input: VerifySignoffAtRevInput): SignoffVerifyOutcome;
|
|
84
|
+
export interface VerifySignoffFileInput {
|
|
85
|
+
readonly repoDir: string;
|
|
86
|
+
readonly file: string;
|
|
87
|
+
/**
|
|
88
|
+
* The commit to check the file against. REQUIRED, and deliberately not
|
|
89
|
+
* defaulted to the commit the proof names: a proof checked against its own
|
|
90
|
+
* subject can never fail the commit binding, which is a check that reads as
|
|
91
|
+
* strong and cannot catch anything. The reader always states what they are
|
|
92
|
+
* asking about.
|
|
93
|
+
*/
|
|
94
|
+
readonly rev: string;
|
|
95
|
+
readonly key?: Uint8Array;
|
|
96
|
+
readonly requiredSteps?: readonly string[];
|
|
97
|
+
readonly expectRepo?: string;
|
|
98
|
+
}
|
|
99
|
+
/** Verify a proof document on disk. The repo is still required — "matches the tree it claims" is not answerable without it. */
|
|
100
|
+
export declare function verifySignoffProofFile(input: VerifySignoffFileInput): SignoffVerification;
|
|
101
|
+
/** One line per failure, prefixed by its code, in the order the checks ran. */
|
|
102
|
+
export declare function formatSignoffVerification(result: SignoffVerification): string;
|
|
103
|
+
export {};
|
package/dist/signoff/proof.d.ts
CHANGED
|
@@ -1,314 +1,39 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { b as SignoffReport } from '../types-Bd6uW9vQ.js';
|
|
3
|
-
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* The sign-off proof surface: build a machine-checkable record of a local
|
|
3
|
+
* verification run, attach it to the commit it verified, and check it later.
|
|
4
|
+
*
|
|
5
|
+
* Node-only (git, `fs`, `crypto`) and deliberately its own subpath, the way
|
|
6
|
+
* `/peer-floors` is — a consumer runs this from a script, never from a bundle.
|
|
7
|
+
*
|
|
8
|
+
* The threat model is in `proof-record.ts` and the carrier tradeoff is in
|
|
9
|
+
* `proof-attach.ts`. Both are load-bearing; read them before relying on a proof.
|
|
10
|
+
*
|
|
11
|
+
* **Surface is narrowed to what a caller composes, not what this file happens
|
|
12
|
+
* to define.** The `agent-app-signoff` bin itself does NOT build or attach a
|
|
13
|
+
* proof today — it runs the gate and prints the plain report (`./cli.ts`); the
|
|
14
|
+
* proof pipeline below is the documented composition [`docs/signoff-proof.md`]
|
|
15
|
+
* a product wires into its OWN CI step. Schema internals, hashing primitives
|
|
16
|
+
* and low-level git plumbing (`canonicalJson`, `hashProofBody`, `sealProof`,
|
|
17
|
+
* `runGit`, the zod schemas, …) stay module-internal, where `knip` can see
|
|
18
|
+
* them unused rather than reading as committed public API with zero callers.
|
|
7
19
|
*/
|
|
8
|
-
type
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
readonly committedAt: string;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
declare const signoffProofStepSchema: z.ZodObject<{
|
|
20
|
-
id: z.ZodString;
|
|
21
|
-
command: z.ZodString;
|
|
22
|
-
cwd: z.ZodString;
|
|
23
|
-
status: z.ZodEnum<{
|
|
24
|
-
passed: "passed";
|
|
25
|
-
failed: "failed";
|
|
26
|
-
skipped: "skipped";
|
|
27
|
-
cancelled: "cancelled";
|
|
28
|
-
blocked: "blocked";
|
|
29
|
-
}>;
|
|
30
|
-
exitCode: z.ZodNumber;
|
|
31
|
-
durationMs: z.ZodNumber;
|
|
32
|
-
startedAt: z.ZodString;
|
|
33
|
-
outputSha256: z.ZodString;
|
|
34
|
-
}, z.core.$strip>;
|
|
35
|
-
declare const signoffProofPeerSchema: z.ZodObject<{
|
|
36
|
-
name: z.ZodString;
|
|
37
|
-
version: z.ZodNullable<z.ZodString>;
|
|
38
|
-
}, z.core.$strip>;
|
|
39
|
-
declare const signoffProofSubjectSchema: z.ZodObject<{
|
|
40
|
-
repo: z.ZodString;
|
|
41
|
-
commit: z.ZodString;
|
|
42
|
-
tree: z.ZodString;
|
|
43
|
-
commitTree: z.ZodString;
|
|
44
|
-
parents: z.ZodArray<z.ZodString>;
|
|
45
|
-
committedAt: z.ZodString;
|
|
46
|
-
}, z.core.$strip>;
|
|
47
|
-
declare const signoffProofBodySchema: z.ZodObject<{
|
|
48
|
-
proofVersion: z.ZodNumber;
|
|
49
|
-
subject: z.ZodObject<{
|
|
50
|
-
repo: z.ZodString;
|
|
51
|
-
commit: z.ZodString;
|
|
52
|
-
tree: z.ZodString;
|
|
53
|
-
commitTree: z.ZodString;
|
|
54
|
-
parents: z.ZodArray<z.ZodString>;
|
|
55
|
-
committedAt: z.ZodString;
|
|
56
|
-
}, z.core.$strip>;
|
|
57
|
-
signedAt: z.ZodString;
|
|
58
|
-
host: z.ZodObject<{
|
|
59
|
-
hostname: z.ZodString;
|
|
60
|
-
platform: z.ZodString;
|
|
61
|
-
arch: z.ZodString;
|
|
62
|
-
user: z.ZodString;
|
|
63
|
-
}, z.core.$strip>;
|
|
64
|
-
tooling: z.ZodObject<{
|
|
65
|
-
node: z.ZodString;
|
|
66
|
-
pnpm: z.ZodNullable<z.ZodString>;
|
|
67
|
-
peers: z.ZodArray<z.ZodObject<{
|
|
68
|
-
name: z.ZodString;
|
|
69
|
-
version: z.ZodNullable<z.ZodString>;
|
|
70
|
-
}, z.core.$strip>>;
|
|
71
|
-
}, z.core.$strip>;
|
|
72
|
-
wallClockMs: z.ZodNumber;
|
|
73
|
-
seeds: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
74
|
-
declaredRequired: z.ZodArray<z.ZodString>;
|
|
75
|
-
steps: z.ZodArray<z.ZodObject<{
|
|
76
|
-
id: z.ZodString;
|
|
77
|
-
command: z.ZodString;
|
|
78
|
-
cwd: z.ZodString;
|
|
79
|
-
status: z.ZodEnum<{
|
|
80
|
-
passed: "passed";
|
|
81
|
-
failed: "failed";
|
|
82
|
-
skipped: "skipped";
|
|
83
|
-
cancelled: "cancelled";
|
|
84
|
-
blocked: "blocked";
|
|
85
|
-
}>;
|
|
86
|
-
exitCode: z.ZodNumber;
|
|
87
|
-
durationMs: z.ZodNumber;
|
|
88
|
-
startedAt: z.ZodString;
|
|
89
|
-
outputSha256: z.ZodString;
|
|
90
|
-
}, z.core.$strip>>;
|
|
91
|
-
verdict: z.ZodEnum<{
|
|
92
|
-
pass: "pass";
|
|
93
|
-
fail: "fail";
|
|
94
|
-
}>;
|
|
95
|
-
}, z.core.$strip>;
|
|
96
|
-
declare const signoffProofSealSchema: z.ZodObject<{
|
|
97
|
-
algorithm: z.ZodEnum<{
|
|
98
|
-
sha256: "sha256";
|
|
99
|
-
"hmac-sha256": "hmac-sha256";
|
|
100
|
-
}>;
|
|
101
|
-
bodySha256: z.ZodString;
|
|
102
|
-
keyId: z.ZodNullable<z.ZodString>;
|
|
103
|
-
mac: z.ZodNullable<z.ZodString>;
|
|
104
|
-
}, z.core.$strip>;
|
|
105
|
-
declare const signoffProofSchema: z.ZodObject<{
|
|
106
|
-
body: z.ZodObject<{
|
|
107
|
-
proofVersion: z.ZodNumber;
|
|
108
|
-
subject: z.ZodObject<{
|
|
109
|
-
repo: z.ZodString;
|
|
110
|
-
commit: z.ZodString;
|
|
111
|
-
tree: z.ZodString;
|
|
112
|
-
commitTree: z.ZodString;
|
|
113
|
-
parents: z.ZodArray<z.ZodString>;
|
|
114
|
-
committedAt: z.ZodString;
|
|
115
|
-
}, z.core.$strip>;
|
|
116
|
-
signedAt: z.ZodString;
|
|
117
|
-
host: z.ZodObject<{
|
|
118
|
-
hostname: z.ZodString;
|
|
119
|
-
platform: z.ZodString;
|
|
120
|
-
arch: z.ZodString;
|
|
121
|
-
user: z.ZodString;
|
|
122
|
-
}, z.core.$strip>;
|
|
123
|
-
tooling: z.ZodObject<{
|
|
124
|
-
node: z.ZodString;
|
|
125
|
-
pnpm: z.ZodNullable<z.ZodString>;
|
|
126
|
-
peers: z.ZodArray<z.ZodObject<{
|
|
127
|
-
name: z.ZodString;
|
|
128
|
-
version: z.ZodNullable<z.ZodString>;
|
|
129
|
-
}, z.core.$strip>>;
|
|
130
|
-
}, z.core.$strip>;
|
|
131
|
-
wallClockMs: z.ZodNumber;
|
|
132
|
-
seeds: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
|
|
133
|
-
declaredRequired: z.ZodArray<z.ZodString>;
|
|
134
|
-
steps: z.ZodArray<z.ZodObject<{
|
|
135
|
-
id: z.ZodString;
|
|
136
|
-
command: z.ZodString;
|
|
137
|
-
cwd: z.ZodString;
|
|
138
|
-
status: z.ZodEnum<{
|
|
139
|
-
passed: "passed";
|
|
140
|
-
failed: "failed";
|
|
141
|
-
skipped: "skipped";
|
|
142
|
-
cancelled: "cancelled";
|
|
143
|
-
blocked: "blocked";
|
|
144
|
-
}>;
|
|
145
|
-
exitCode: z.ZodNumber;
|
|
146
|
-
durationMs: z.ZodNumber;
|
|
147
|
-
startedAt: z.ZodString;
|
|
148
|
-
outputSha256: z.ZodString;
|
|
149
|
-
}, z.core.$strip>>;
|
|
150
|
-
verdict: z.ZodEnum<{
|
|
151
|
-
pass: "pass";
|
|
152
|
-
fail: "fail";
|
|
153
|
-
}>;
|
|
154
|
-
}, z.core.$strip>;
|
|
155
|
-
seal: z.ZodObject<{
|
|
156
|
-
algorithm: z.ZodEnum<{
|
|
157
|
-
sha256: "sha256";
|
|
158
|
-
"hmac-sha256": "hmac-sha256";
|
|
159
|
-
}>;
|
|
160
|
-
bodySha256: z.ZodString;
|
|
161
|
-
keyId: z.ZodNullable<z.ZodString>;
|
|
162
|
-
mac: z.ZodNullable<z.ZodString>;
|
|
163
|
-
}, z.core.$strip>;
|
|
164
|
-
}, z.core.$strip>;
|
|
165
|
-
type SignoffProofStep = z.infer<typeof signoffProofStepSchema>;
|
|
166
|
-
type SignoffProofPeer = z.infer<typeof signoffProofPeerSchema>;
|
|
167
|
-
type SignoffProofSubject = z.infer<typeof signoffProofSubjectSchema>;
|
|
168
|
-
type SignoffProofBody = z.infer<typeof signoffProofBodySchema>;
|
|
169
|
-
type SignoffProofSeal = z.infer<typeof signoffProofSealSchema>;
|
|
170
|
-
type SignoffProof = z.infer<typeof signoffProofSchema>;
|
|
171
|
-
/** Read the local sign-off key. Throws when absent — an unreadable key is never a silent downgrade to unsealed. */
|
|
172
|
-
declare function readSignoffKey(path: string): Uint8Array;
|
|
173
|
-
/** Parse an untrusted proof document, failing loud on any shape the verifier cannot reason about. */
|
|
174
|
-
declare function parseSignoffProof(json: string): SignoffProof;
|
|
20
|
+
export { verifySignoffProof, type SignoffCommitBinding, type SignoffFailure, type SignoffFailureCode, type SignoffVerification, type VerifySignoffProofOptions, } from './proof-verify';
|
|
21
|
+
export { formatSignoffSummary, parseSignoffProof, readSignoffKey } from './proof-record';
|
|
22
|
+
export type { SignoffProof, SignoffProofBody, SignoffProofPeer, SignoffProofSeal, SignoffProofStep, SignoffProofSubject, } from './proof-record';
|
|
23
|
+
/** Types needed to construct `VerifySignoffProofOptions.target`/`.isAncestor`
|
|
24
|
+
* without pulling in this package's OWN git-shelling implementation — a
|
|
25
|
+
* consumer supplies commit facts and ancestry however it already tracks
|
|
26
|
+
* them (its own git library, a cache, …). */
|
|
27
|
+
export type { CommitFacts, IsAncestorFn } from './proof-git';
|
|
175
28
|
/**
|
|
176
|
-
* The
|
|
177
|
-
*
|
|
29
|
+
* The SIGNING side — building a proof from a report and attaching it to the
|
|
30
|
+
* commit it verified. Nobody in this repo calls these today (the census that
|
|
31
|
+
* justified narrowing this barrel found zero callers, this pair included);
|
|
32
|
+
* they stay exported anyway because `docs/signoff-proof.md`'s documented
|
|
33
|
+
* composition is the ONLY way to reach them at all — `package.json` declares
|
|
34
|
+
* no `./signoff/proof-attach` or `./signoff/proof-from-report` subpath, so
|
|
35
|
+
* dropping these here would make a real, tested, documented capability
|
|
36
|
+
* unreachable from outside the package, not merely unexercised inside it.
|
|
178
37
|
*/
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* `verify-proof` — the half a reader runs, on a machine that did not produce
|
|
183
|
-
* the proof, to decide whether a commit was really signed off.
|
|
184
|
-
*
|
|
185
|
-
* The verifier never believes the document. Every claim it can re-derive, it
|
|
186
|
-
* re-derives from git and compares; every claim it cannot re-derive is reported
|
|
187
|
-
* as recorded, not as checked. The one field the proof is deliberately not
|
|
188
|
-
* allowed to own is **which steps were required**: a run that declares its own
|
|
189
|
-
* bar can declare an empty one, so the authoritative table lives here and a
|
|
190
|
-
* proof declaring fewer requirements than its repo's table fails as
|
|
191
|
-
* `lowered-bar`.
|
|
192
|
-
*/
|
|
193
|
-
|
|
194
|
-
type SignoffFailureCode = 'unsupported-version' | 'body-tampered' | 'mac-missing' | 'mac-invalid' | 'unknown-repo' | 'repo-mismatch' | 'tree-mismatch' | 'dirty-worktree' | 'commit-unbound' | 'missing-required-step' | 'lowered-bar' | 'duplicate-step' | 'step-failed' | 'verdict-fail' | 'stale-proof';
|
|
195
|
-
interface SignoffFailure {
|
|
196
|
-
readonly code: SignoffFailureCode;
|
|
197
|
-
readonly detail: string;
|
|
198
|
-
}
|
|
199
|
-
/** How the proof attaches to the commit that was asked about. */
|
|
200
|
-
type SignoffCommitBinding =
|
|
201
|
-
/** The proof names this exact commit. */
|
|
202
|
-
'exact'
|
|
203
|
-
/** A different commit id, but byte-identical content — a rebase or a squash of what was verified. */
|
|
204
|
-
| 'tree-equivalent'
|
|
205
|
-
/** Neither. The proof does not describe this commit. */
|
|
206
|
-
| 'none';
|
|
207
|
-
interface SignoffVerification {
|
|
208
|
-
readonly ok: boolean;
|
|
209
|
-
readonly commitBinding: SignoffCommitBinding;
|
|
210
|
-
/** True only when a key was supplied AND the mac over the canonical body matched. */
|
|
211
|
-
readonly macChecked: boolean;
|
|
212
|
-
readonly failures: readonly SignoffFailure[];
|
|
213
|
-
readonly proof: SignoffProof;
|
|
214
|
-
readonly target: CommitFacts;
|
|
215
|
-
readonly requiredSteps: readonly string[];
|
|
216
|
-
}
|
|
217
|
-
interface VerifySignoffProofOptions {
|
|
218
|
-
/** The commit the reader is asking about, read from git — never from the proof. */
|
|
219
|
-
readonly target: CommitFacts;
|
|
220
|
-
/**
|
|
221
|
-
* Reachability in the target's history. Required, because the clock cannot
|
|
222
|
-
* answer staleness on its own: git records committer time to the SECOND, so a
|
|
223
|
-
* proof and the commit it is being replayed onto routinely share a timestamp.
|
|
224
|
-
* Ancestry is exact and clock-free.
|
|
225
|
-
*/
|
|
226
|
-
readonly isAncestor: IsAncestorFn;
|
|
227
|
-
/** Local HMAC key. Omitted, the mac is reported unchecked rather than assumed good. */
|
|
228
|
-
readonly key?: Uint8Array;
|
|
229
|
-
/** Overrides the built-in table. Supplying `[]` is a deliberate no-bar check, and says so. */
|
|
230
|
-
readonly requiredSteps?: readonly string[];
|
|
231
|
-
/** Repo identity the caller expects; a mismatch against the proof is a failure, not a rename. */
|
|
232
|
-
readonly expectRepo?: string;
|
|
233
|
-
}
|
|
234
|
-
declare function verifySignoffProof(proof: SignoffProof, options: VerifySignoffProofOptions): SignoffVerification;
|
|
235
|
-
|
|
236
|
-
/**
|
|
237
|
-
* The join between the runner and the proof: one sign-off run produces one
|
|
238
|
-
* report, and this turns that report into the signed, attachable record.
|
|
239
|
-
*
|
|
240
|
-
* Nothing here re-runs or re-judges anything. The runner owns what happened; the
|
|
241
|
-
* proof owns what is provable about it later. Keeping the two in one direction
|
|
242
|
-
* is what stops a second, drifting idea of "which steps ran" from appearing.
|
|
243
|
-
*/
|
|
244
|
-
|
|
245
|
-
interface ProofFromReportInput {
|
|
246
|
-
readonly report: SignoffReport;
|
|
247
|
-
/** Repo identity the verifier's required-step table is keyed on. */
|
|
248
|
-
readonly repo: string;
|
|
249
|
-
/** Source repository. Defaults to the root the run recorded. */
|
|
250
|
-
readonly repoDir?: string;
|
|
251
|
-
/** Step ids the run treated as required. Defaults to every step the report carries. */
|
|
252
|
-
readonly declaredRequired?: readonly string[];
|
|
253
|
-
readonly key?: Uint8Array;
|
|
254
|
-
readonly now?: Date;
|
|
255
|
-
}
|
|
256
|
-
declare function proofFromSignoffReport(input: ProofFromReportInput): SignoffProof;
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* Attaching a proof to the commit it verified.
|
|
260
|
-
*
|
|
261
|
-
* ## Why `git notes`, and what the two rejected carriers cost
|
|
262
|
-
*
|
|
263
|
-
* **A commit-message trailer** cannot work for the field that matters. The
|
|
264
|
-
* trailer is part of the commit object, so writing it changes the SHA the proof
|
|
265
|
-
* claims to cover — the proof would have to be produced before the commit it
|
|
266
|
-
* names exists. Amending re-writes the SHA again, and GitHub's squash-merge
|
|
267
|
-
* rebuilds the message from the PR body, so the trailer does not survive the one
|
|
268
|
-
* transition it would need to.
|
|
269
|
-
*
|
|
270
|
-
* **A committed artifact directory** (`.signoff/<sha>.json`) changes the tree,
|
|
271
|
-
* so the tree hash inside the proof can never cover the file carrying it. It
|
|
272
|
-
* also lands in every diff, and it is exactly the "file someone can forget"
|
|
273
|
-
* shape the requirement rules out — deleting it is a normal-looking change.
|
|
274
|
-
*
|
|
275
|
-
* **`git notes` wins because it is the only carrier that is addressed BY the
|
|
276
|
-
* SHA without being part of it.** The note is written after the commit exists,
|
|
277
|
-
* it changes neither the SHA nor the tree, and `git notes show <sha>` is a
|
|
278
|
-
* definite yes/no for any commit anyone can name.
|
|
279
|
-
*
|
|
280
|
-
* ## The tradeoff `git notes` really carries, and how this module answers it
|
|
281
|
-
*
|
|
282
|
-
* Notes are attached to a commit id, and a rebase or a squash-merge produces a
|
|
283
|
-
* NEW commit id, so the note does not follow by itself. Two mechanisms close
|
|
284
|
-
* that gap, and both are needed:
|
|
285
|
-
*
|
|
286
|
-
* 1. `notes.rewriteRef` (see `SIGNOFF_NOTES_GIT_CONFIG`) makes local rebase and
|
|
287
|
-
* amend copy the note forward automatically.
|
|
288
|
-
* 2. `resolveSignoffProof` falls back to a **tree scan**: it reads every proof
|
|
289
|
-
* under the notes ref and matches on the TREE the commit carries. A rebase
|
|
290
|
-
* or a squash of one branch onto an unchanged base preserves the tree, so
|
|
291
|
-
* the content that was verified is still provably the content that merged,
|
|
292
|
-
* even though the SHA changed. The verifier reports which binding it used —
|
|
293
|
-
* `exact` or `tree-equivalent` — and never conflates them.
|
|
294
|
-
*
|
|
295
|
-
* Notes are neither pushed nor fetched by default; `SIGNOFF_NOTES_GIT_CONFIG`
|
|
296
|
-
* carries the refspecs that fix that, and a missing note is reported as
|
|
297
|
-
* `not-found`, never as a pass.
|
|
298
|
-
*/
|
|
299
|
-
|
|
300
|
-
interface AttachSignoffProofInput {
|
|
301
|
-
readonly repoDir: string;
|
|
302
|
-
readonly proof: SignoffProof;
|
|
303
|
-
/** Revision to annotate; defaults to the commit the proof names. */
|
|
304
|
-
readonly rev?: string;
|
|
305
|
-
/** Replace an existing note. Off by default so a second sign-off cannot quietly overwrite the first. */
|
|
306
|
-
readonly overwrite?: boolean;
|
|
307
|
-
}
|
|
308
|
-
interface AttachedSignoffProof {
|
|
309
|
-
readonly commit: string;
|
|
310
|
-
readonly ref: string;
|
|
311
|
-
}
|
|
312
|
-
declare function attachSignoffProof(input: AttachSignoffProofInput): AttachedSignoffProof;
|
|
313
|
-
|
|
314
|
-
export { type AttachSignoffProofInput, type AttachedSignoffProof, type CommitFacts, type IsAncestorFn, type ProofFromReportInput, type SignoffCommitBinding, type SignoffFailure, type SignoffFailureCode, type SignoffProof, type SignoffProofBody, type SignoffProofPeer, type SignoffProofSeal, type SignoffProofStep, type SignoffProofSubject, type SignoffVerification, type VerifySignoffProofOptions, attachSignoffProof, formatSignoffSummary, parseSignoffProof, proofFromSignoffReport, readSignoffKey, verifySignoffProof };
|
|
38
|
+
export { proofFromSignoffReport, type ProofFromReportInput } from './proof-from-report';
|
|
39
|
+
export { attachSignoffProof, type AttachSignoffProofInput, type AttachedSignoffProof } from './proof-attach';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SignoffReport, SignoffStepResult } from './types';
|
|
2
|
+
/** Concurrency actually achieved, measured from the step windows rather than
|
|
3
|
+
* asserted from the config. A claimed speedup nobody measured is a wish. */
|
|
4
|
+
export declare function peakConcurrency(steps: readonly SignoffStepResult[]): number;
|
|
5
|
+
export declare function formatSignoffReport(report: SignoffReport): string;
|
|
6
|
+
/** One line for a commit message, a PR comment, or a chat handoff. */
|
|
7
|
+
export declare function formatSignoffLine(report: SignoffReport): string;
|