@quantiya/codevibe-core 2.0.0 → 2.0.2
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/dist/__tests__/cp-5-baseline-invariants.test.d.ts +1 -0
- package/dist/__tests__/prompt-parser.test.d.ts +1 -0
- package/dist/adapter/__tests__/capabilities.test.d.ts +1 -0
- package/dist/adapter/__tests__/contract-conformance.test.d.ts +1 -0
- package/dist/adapter/__tests__/packets.test.d.ts +1 -0
- package/dist/adapter/__tests__/progress.test.d.ts +1 -0
- package/dist/adapter/__tests__/registry.test.d.ts +1 -0
- package/dist/adapter/__tests__/smoke/claude.smoke.test.d.ts +1 -0
- package/dist/adapter/__tests__/smoke/codex.smoke.test.d.ts +1 -0
- package/dist/adapter/__tests__/smoke/gemini.smoke.test.d.ts +1 -0
- package/dist/adapter/capabilities.d.ts +68 -0
- package/dist/adapter/index.d.ts +7 -0
- package/dist/adapter/packets.d.ts +129 -0
- package/dist/adapter/progress.d.ts +93 -0
- package/dist/adapter/registry.d.ts +91 -0
- package/dist/adapter/types.d.ts +22 -0
- package/dist/appsync/__tests__/appsync-client-apply-user-decision.test.d.ts +1 -0
- package/dist/appsync/__tests__/appsync-client-classb.test.d.ts +1 -0
- package/dist/appsync/__tests__/appsync-client-event-source-filter.test.d.ts +1 -0
- package/dist/appsync/__tests__/appsync-client-planner.test.d.ts +1 -0
- package/dist/appsync/__tests__/appsync-client-task-group.test.d.ts +1 -0
- package/dist/appsync/__tests__/appsync-client.test.d.ts +1 -0
- package/dist/appsync/__tests__/cleanup-subscription.test.d.ts +1 -0
- package/dist/appsync/__tests__/coerce-awsjson-and-review-summary.test.d.ts +1 -0
- package/dist/appsync/__tests__/cp1f-quorum-sdk.test.d.ts +1 -0
- package/dist/appsync/__tests__/event-throttle.test.d.ts +1 -0
- package/dist/appsync/appsync-client.d.ts +1025 -2
- package/dist/appsync/event-throttle.d.ts +28 -0
- package/dist/appsync/index.d.ts +4 -1
- package/dist/appsync/queries.d.ts +34 -0
- package/dist/audit-keys/index.d.ts +32 -0
- package/dist/auth/__tests__/auth-telemetry.test.d.ts +1 -0
- package/dist/auth/auth-service.d.ts +32 -2
- package/dist/auth/auth-telemetry.d.ts +117 -6
- package/dist/auth/index.d.ts +1 -0
- package/dist/companion-mode/__tests__/persist-preference.test.d.ts +1 -0
- package/dist/companion-mode/__tests__/resolve-agent.test.d.ts +1 -0
- package/dist/companion-mode/agent-picker.d.ts +9 -0
- package/dist/companion-mode/index.d.ts +55 -0
- package/dist/companion-mode/persist-preference.d.ts +24 -0
- package/dist/companion-mode/resolve-agent.d.ts +41 -0
- package/dist/config/config.d.ts +8 -1
- package/dist/continuation/__tests__/dirty-state-collector.test.d.ts +1 -0
- package/dist/continuation/__tests__/integration.test.d.ts +1 -0
- package/dist/continuation/__tests__/packet-reader.test.d.ts +1 -0
- package/dist/continuation/__tests__/packet-writer.test.d.ts +1 -0
- package/dist/continuation/__tests__/parity.test.d.ts +1 -0
- package/dist/continuation/__tests__/status-cli.test.d.ts +1 -0
- package/dist/continuation/dirty-state-collector.d.ts +46 -0
- package/dist/continuation/index.d.ts +8 -0
- package/dist/continuation/packet-reader.d.ts +33 -0
- package/dist/continuation/packet-writer.d.ts +86 -0
- package/dist/continuation/types.d.ts +239 -0
- package/dist/credential-broker/__tests__/broker.test.d.ts +1 -0
- package/dist/credential-broker/__tests__/canonical.test.d.ts +1 -0
- package/dist/credential-broker/__tests__/scrubber.test.d.ts +1 -0
- package/dist/credential-broker/__tests__/upstream-client.test.d.ts +1 -0
- package/dist/credential-broker/__tests__/vendor-key-store.test.d.ts +1 -0
- package/dist/credential-broker/audit-sink.d.ts +69 -0
- package/dist/credential-broker/broker-config.d.ts +39 -0
- package/dist/credential-broker/broker-token.d.ts +123 -0
- package/dist/credential-broker/broker.d.ts +165 -0
- package/dist/credential-broker/canonical.d.ts +119 -0
- package/dist/credential-broker/index.d.ts +15 -0
- package/dist/credential-broker/scrubber.d.ts +45 -0
- package/dist/credential-broker/types.d.ts +141 -0
- package/dist/credential-broker/upstream-client.d.ts +20 -0
- package/dist/credential-broker/vendor-key-store.d.ts +54 -0
- package/dist/index.d.ts +17 -4
- package/dist/index.js +559 -55
- package/dist/keychain/__tests__/keychain-backend.test.d.ts +1 -0
- package/dist/keychain/keychain-backend.d.ts +82 -0
- package/dist/keychain/keychain-manager.d.ts +16 -2
- package/dist/local-executor/__tests__/agentic-disposable-repo.test.d.ts +1 -0
- package/dist/local-executor/__tests__/agentic-resolve.test.d.ts +1 -0
- package/dist/local-executor/__tests__/agentic-resolver-flag.test.d.ts +1 -0
- package/dist/local-executor/__tests__/authority-symlink-fixture.d.ts +15 -0
- package/dist/local-executor/__tests__/authority.test.d.ts +1 -0
- package/dist/local-executor/__tests__/class-a-emit.test.d.ts +1 -0
- package/dist/local-executor/__tests__/class-a-sign.test.d.ts +1 -0
- package/dist/local-executor/__tests__/class-b-consumer.integration.test.d.ts +1 -0
- package/dist/local-executor/__tests__/class-b-consumer.test.d.ts +1 -0
- package/dist/local-executor/__tests__/class1-reconcilers.test.d.ts +1 -0
- package/dist/local-executor/__tests__/class2-resolver.test.d.ts +1 -0
- package/dist/local-executor/__tests__/confined-model-caller.test.d.ts +1 -0
- package/dist/local-executor/__tests__/conflict-classifier.test.d.ts +1 -0
- package/dist/local-executor/__tests__/conflict-resolution-durable-store.test.d.ts +1 -0
- package/dist/local-executor/__tests__/conflict-resolution-store.test.d.ts +1 -0
- package/dist/local-executor/__tests__/cp1f-quorum-consumer.test.d.ts +1 -0
- package/dist/local-executor/__tests__/cp7-audit-writer.test.d.ts +1 -0
- package/dist/local-executor/__tests__/durable-store.test.d.ts +1 -0
- package/dist/local-executor/__tests__/git-lock-retry.test.d.ts +1 -0
- package/dist/local-executor/__tests__/hook-bridge.test.d.ts +1 -0
- package/dist/local-executor/__tests__/implementor-argv.test.d.ts +1 -0
- package/dist/local-executor/__tests__/local-executor-teams.test.d.ts +1 -0
- package/dist/local-executor/__tests__/local-executor.integration.test.d.ts +1 -0
- package/dist/local-executor/__tests__/merge-conflict-extract.test.d.ts +1 -0
- package/dist/local-executor/__tests__/merge-conflict-git.integration.test.d.ts +1 -0
- package/dist/local-executor/__tests__/merge-conflict-resolve-agentic.integration.test.d.ts +1 -0
- package/dist/local-executor/__tests__/merge-conflict-resolve.integration.test.d.ts +1 -0
- package/dist/local-executor/__tests__/merge-journal-store.test.d.ts +1 -0
- package/dist/local-executor/__tests__/merge-train-agentic-recovery.integration.test.d.ts +1 -0
- package/dist/local-executor/__tests__/merge-train-w3.integration.test.d.ts +1 -0
- package/dist/local-executor/__tests__/merge-train-waveb.integration.test.d.ts +1 -0
- package/dist/local-executor/__tests__/merge-train.test.d.ts +1 -0
- package/dist/local-executor/__tests__/promote-wal-store.test.d.ts +1 -0
- package/dist/local-executor/__tests__/revert-reconcile.test.d.ts +1 -0
- package/dist/local-executor/__tests__/revert-runner.test.d.ts +1 -0
- package/dist/local-executor/__tests__/shared-contract-detector.test.d.ts +1 -0
- package/dist/local-executor/__tests__/spawn.test.d.ts +1 -0
- package/dist/local-executor/__tests__/substrate-engage.test.d.ts +1 -0
- package/dist/local-executor/__tests__/team-execution-flag.test.d.ts +1 -0
- package/dist/local-executor/__tests__/track-registry.test.d.ts +1 -0
- package/dist/local-executor/__tests__/verification-runner.test.d.ts +1 -0
- package/dist/local-executor/__tests__/wb2-review-bundle.test.d.ts +1 -0
- package/dist/local-executor/__tests__/wb2-substrate-spawn.live.test.d.ts +1 -0
- package/dist/local-executor/__tests__/workspace-shadow.test.d.ts +1 -0
- package/dist/local-executor/__tests__/worktree-merge.test.d.ts +1 -0
- package/dist/local-executor/agentic-disposable-repo.d.ts +52 -0
- package/dist/local-executor/agentic-resolve.d.ts +54 -0
- package/dist/local-executor/agentic-resolver-flag.d.ts +9 -0
- package/dist/local-executor/authority.d.ts +61 -0
- package/dist/local-executor/class-a-emit.d.ts +140 -0
- package/dist/local-executor/class-a-sign.d.ts +57 -0
- package/dist/local-executor/class-b-consumer.d.ts +276 -0
- package/dist/local-executor/class-b-verify.d.ts +30 -0
- package/dist/local-executor/class1-reconcilers.d.ts +58 -0
- package/dist/local-executor/class2-resolver.d.ts +74 -0
- package/dist/local-executor/confined-model-caller.d.ts +39 -0
- package/dist/local-executor/conflict-classifier.d.ts +21 -0
- package/dist/local-executor/conflict-resolution-durable-store.d.ts +61 -0
- package/dist/local-executor/conflict-resolution-store.d.ts +210 -0
- package/dist/local-executor/conflict-types.d.ts +86 -0
- package/dist/local-executor/cp7-audit-writer.d.ts +152 -0
- package/dist/local-executor/durable-store.d.ts +334 -0
- package/dist/local-executor/git-lock-retry.d.ts +40 -0
- package/dist/local-executor/hook-bridge.d.ts +36 -0
- package/dist/local-executor/implementor-argv.d.ts +183 -0
- package/dist/local-executor/index.d.ts +49 -0
- package/dist/local-executor/local-executor-impl.d.ts +724 -0
- package/dist/local-executor/merge-conflict-extract.d.ts +34 -0
- package/dist/local-executor/merge-conflict-resolve.d.ts +101 -0
- package/dist/local-executor/merge-journal-store.d.ts +311 -0
- package/dist/local-executor/merge-train.d.ts +713 -0
- package/dist/local-executor/promote-wal-store.d.ts +301 -0
- package/dist/local-executor/resolution-set-index.d.ts +51 -0
- package/dist/local-executor/revert-reconcile.d.ts +89 -0
- package/dist/local-executor/revert-runner.d.ts +17 -0
- package/dist/local-executor/shared-contract-detector.d.ts +57 -0
- package/dist/local-executor/spawn.d.ts +34 -0
- package/dist/local-executor/task-group-types.d.ts +346 -0
- package/dist/local-executor/team-execution-flag.d.ts +21 -0
- package/dist/local-executor/track-registry.d.ts +50 -0
- package/dist/local-executor/types.d.ts +417 -0
- package/dist/local-executor/verification-gates/build.d.ts +6 -0
- package/dist/local-executor/verification-gates/deploy-preflight.d.ts +6 -0
- package/dist/local-executor/verification-gates/diff-sanity.d.ts +6 -0
- package/dist/local-executor/verification-gates/hostile-grep.d.ts +6 -0
- package/dist/local-executor/verification-gates/lint.d.ts +6 -0
- package/dist/local-executor/verification-gates/shell-runner.d.ts +40 -0
- package/dist/local-executor/verification-gates/source-traceability.d.ts +6 -0
- package/dist/local-executor/verification-gates/tests.d.ts +6 -0
- package/dist/local-executor/verification-gates/typecheck.d.ts +6 -0
- package/dist/local-executor/verification-runner.d.ts +28 -0
- package/dist/local-executor/wb2-review-bundle.d.ts +59 -0
- package/dist/local-executor/workspace-shadow.d.ts +290 -0
- package/dist/local-executor/worktree-merge.d.ts +601 -0
- package/dist/local-model/__tests__/installer.test.d.ts +1 -0
- package/dist/local-model/__tests__/manager.test.d.ts +1 -0
- package/dist/local-model/__tests__/ollama.test.d.ts +1 -0
- package/dist/local-model/__tests__/runtime.test.d.ts +1 -0
- package/dist/local-model/__tests__/state.test.d.ts +1 -0
- package/dist/local-model/manager.d.ts +119 -0
- package/dist/local-model/ollama.d.ts +27 -0
- package/dist/local-model/runtime.d.ts +27 -0
- package/dist/local-model/state.d.ts +32 -0
- package/dist/orchestration/__tests__/setup-bootstrap.test.d.ts +1 -0
- package/dist/orchestration/__tests__/setup-failure-recourse.test.d.ts +1 -0
- package/dist/orchestration/__tests__/setup-save.test.d.ts +1 -0
- package/dist/orchestration/__tests__/setup-seat-picker.test.d.ts +1 -0
- package/dist/orchestration/__tests__/setup-telemetry.test.d.ts +1 -0
- package/dist/orchestration/__tests__/setup-test-agents.test.d.ts +1 -0
- package/dist/orchestration/__tests__/setup-types.test.d.ts +1 -0
- package/dist/orchestration/__tests__/setup-wizard.test.d.ts +1 -0
- package/dist/orchestration/__tests__/v1-options.test.d.ts +1 -0
- package/dist/orchestration/detect-agents.d.ts +16 -2
- package/dist/orchestration/index.d.ts +1 -0
- package/dist/orchestration/orchestration-cli.d.ts +4 -1
- package/dist/orchestration/setup-bootstrap.d.ts +146 -0
- package/dist/orchestration/setup-failure-recourse.d.ts +23 -0
- package/dist/orchestration/setup-save.d.ts +47 -0
- package/dist/orchestration/setup-seat-picker.d.ts +72 -0
- package/dist/orchestration/setup-telemetry.d.ts +54 -0
- package/dist/orchestration/setup-test-agents.d.ts +108 -0
- package/dist/orchestration/setup-types.d.ts +141 -0
- package/dist/orchestration/setup-wizard.d.ts +57 -0
- package/dist/orchestration/v1-options.d.ts +97 -0
- package/dist/orchestration-shell/__tests__/attachments.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/audit-browser.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/audited-path-fixes.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/bracketed-paste.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cli-authority-bridge.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cli-group-halt-wiring.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cli-orchestration-session-bootstrap.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cli-planner-stack.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cli-probe-group-status.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cli-quorum-loop-tier.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cli-singleton-enforcement.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cli-stub-session-adapter.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cli-verdict-classifier-wiring.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/components.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/context-store.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cp10-585-accept-echo-target.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cp10-585-loop.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cp10-585-prompts.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cp12-w2b-team-loop.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cp12-w4-team-recovery.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cp1f-quorum-loop.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cp606-team-track-user-resolved.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/cp7-reviewer-substrate.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/declared-test-runner.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/emit-shell-event.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/familiarize-routing.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/gate-decision-submit.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/gate-details-panel.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/gate-prompts.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/gate-verdict-details-dispatch.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/group-decision-submit.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/hostile-grep.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/image-attach-e2e.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/input-bar-autocomplete.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/live-region-cap.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/live-static-order.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/mode-selection.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/model-cli.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/non-gate-prompt-routing.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/orchestration-app-group-decision-transport.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/orchestration-app-layout.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/process-markers.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/reducer.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/reissue-team-retained-spec.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/review-summary-render.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/reviewer-wizard.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/reviewers-format.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/root-discovery.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/runOrchestrationShell-classify-dispatch.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/runOrchestrationShell-planner-wiring.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/runOrchestrationShell-signal.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/runOrchestrationShell.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/serialize-submissions.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/slash-router.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/slash-suggest.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/status-format.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/sticky-preference.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/task-progress.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/team-decompose-routing.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/team-decompose-types.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/team-decompose.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/team-e2e-smoke.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/tier2-reviewer-selection.test.d.ts +1 -0
- package/dist/orchestration-shell/__tests__/web-browsing.test.d.ts +1 -0
- package/dist/orchestration-shell/attachments.d.ts +152 -0
- package/dist/orchestration-shell/audit-browser.d.ts +115 -0
- package/dist/orchestration-shell/audit-runner.d.ts +59 -0
- package/dist/orchestration-shell/bracketed-paste.d.ts +26 -0
- package/dist/orchestration-shell/cli.d.ts +431 -0
- package/dist/orchestration-shell/cli.js +44191 -0
- package/dist/orchestration-shell/cohort-flag.d.ts +16 -0
- package/dist/orchestration-shell/components/AuditLogPanel.d.ts +11 -0
- package/dist/orchestration-shell/components/CodeVibeLogo.d.ts +2 -0
- package/dist/orchestration-shell/components/ConversationPane.d.ts +13 -0
- package/dist/orchestration-shell/components/GateDetailsPanel.d.ts +57 -0
- package/dist/orchestration-shell/components/GatePanelEntry.d.ts +9 -0
- package/dist/orchestration-shell/components/GatePromptEntry.d.ts +16 -0
- package/dist/orchestration-shell/components/InputBar.d.ts +55 -0
- package/dist/orchestration-shell/components/LiveProgressLine.d.ts +8 -0
- package/dist/orchestration-shell/components/MultiTrackStatusNode.d.ts +8 -0
- package/dist/orchestration-shell/components/OrchestrationApp.d.ts +129 -0
- package/dist/orchestration-shell/components/ReviewerSetupWizard.d.ts +24 -0
- package/dist/orchestration-shell/components/StatusBar.d.ts +20 -0
- package/dist/orchestration-shell/components/nodes/AdvisoryEntry.d.ts +8 -0
- package/dist/orchestration-shell/components/nodes/GateStatusNode.d.ts +8 -0
- package/dist/orchestration-shell/components/nodes/PlannerDecisionEntry.d.ts +8 -0
- package/dist/orchestration-shell/components/nodes/ReviewerQuorumStatusNode.d.ts +8 -0
- package/dist/orchestration-shell/components/nodes/SlashOutputEntry.d.ts +8 -0
- package/dist/orchestration-shell/components/nodes/SubagentEventEntry.d.ts +8 -0
- package/dist/orchestration-shell/components/nodes/UserMessageEntry.d.ts +8 -0
- package/dist/orchestration-shell/context-store.d.ts +389 -0
- package/dist/orchestration-shell/declared-test-runner.d.ts +84 -0
- package/dist/orchestration-shell/emit-shell-event.d.ts +64 -0
- package/dist/orchestration-shell/gate-decision-submit.d.ts +245 -0
- package/dist/orchestration-shell/gate-prompts.d.ts +481 -0
- package/dist/orchestration-shell/index.d.ts +712 -0
- package/dist/orchestration-shell/ink-runtime.d.ts +84 -0
- package/dist/orchestration-shell/live-region-cap.d.ts +70 -0
- package/dist/orchestration-shell/live-static-order.d.ts +22 -0
- package/dist/orchestration-shell/mode-selection.d.ts +46 -0
- package/dist/orchestration-shell/non-tty-fallback.d.ts +67 -0
- package/dist/orchestration-shell/process-markers.d.ts +12 -0
- package/dist/orchestration-shell/quorum-loop.d.ts +1900 -0
- package/dist/orchestration-shell/reducer.d.ts +8 -0
- package/dist/orchestration-shell/root-discovery.d.ts +25 -0
- package/dist/orchestration-shell/route-browse.d.ts +20 -0
- package/dist/orchestration-shell/slash-router.d.ts +64 -0
- package/dist/orchestration-shell/slash-routes/continuation.d.ts +71 -0
- package/dist/orchestration-shell/slash-routes/reviewers.d.ts +41 -0
- package/dist/orchestration-shell/slash-suggest.d.ts +29 -0
- package/dist/orchestration-shell/status-format.d.ts +59 -0
- package/dist/orchestration-shell/sticky-preference.d.ts +24 -0
- package/dist/orchestration-shell/store.d.ts +17 -0
- package/dist/orchestration-shell/task-progress.d.ts +122 -0
- package/dist/orchestration-shell/team-decompose.d.ts +196 -0
- package/dist/orchestration-shell/types.d.ts +777 -0
- package/dist/orchestration-shell/vendor/ink-parse-keypress.d.ts +42 -0
- package/dist/orchestration-shell/web/extract.d.ts +11 -0
- package/dist/orchestration-shell/web/fetch.d.ts +15 -0
- package/dist/orchestration-shell/web/ip.d.ts +26 -0
- package/dist/orchestration-shell/web/sanitize.d.ts +14 -0
- package/dist/orchestration-shell/web/search.d.ts +16 -0
- package/dist/planner/__tests__/cache-clarification-bypass.test.d.ts +1 -0
- package/dist/planner/__tests__/cache.test.d.ts +1 -0
- package/dist/planner/__tests__/client.test.d.ts +1 -0
- package/dist/planner/__tests__/health-machine-transitions.test.d.ts +1 -0
- package/dist/planner/__tests__/local-gemma.test.d.ts +1 -0
- package/dist/planner/__tests__/types-zod.test.d.ts +1 -0
- package/dist/planner/adapter.d.ts +16 -0
- package/dist/planner/cache.d.ts +35 -0
- package/dist/planner/client.d.ts +103 -0
- package/dist/planner/health-state.d.ts +24 -0
- package/dist/planner/index.d.ts +7 -0
- package/dist/planner/local-advisory.d.ts +84 -0
- package/dist/planner/local-gemma.d.ts +23 -0
- package/dist/planner/types.d.ts +123 -0
- package/dist/reviewer/__tests__/antigravity-provider.test.d.ts +1 -0
- package/dist/reviewer/__tests__/claude-provider-json.test.d.ts +1 -0
- package/dist/reviewer/__tests__/cp7-reviewer-sandbox.test.d.ts +1 -0
- package/dist/reviewer/__tests__/output-parser-classifier-helpers.test.d.ts +1 -0
- package/dist/reviewer/__tests__/verdict-classifier.test.d.ts +1 -0
- package/dist/reviewer/index.d.ts +2 -0
- package/dist/reviewer/output-parser.d.ts +48 -12
- package/dist/reviewer/provider.d.ts +107 -3
- package/dist/reviewer/providers/__tests__/failure-classifier.test.d.ts +1 -0
- package/dist/reviewer/providers/antigravity.d.ts +49 -0
- package/dist/reviewer/providers/claude.d.ts +19 -4
- package/dist/reviewer/providers/codex.d.ts +47 -5
- package/dist/reviewer/providers/failure-classifier.d.ts +26 -0
- package/dist/reviewer/providers/gemini.d.ts +5 -4
- package/dist/reviewer/registry.d.ts +5 -5
- package/dist/reviewer/subprocess.d.ts +37 -0
- package/dist/reviewer/token-usage.d.ts +32 -0
- package/dist/reviewer/types.d.ts +5 -5
- package/dist/reviewer/verdict-classifier.d.ts +62 -0
- package/dist/session/__tests__/prepare-event-timestamp.test.d.ts +1 -0
- package/dist/session/__tests__/session-resume-service-keys.test.d.ts +1 -0
- package/dist/session/index.d.ts +1 -0
- package/dist/session/prepare-event-timestamp.d.ts +30 -0
- package/dist/session/session-rekey.d.ts +40 -0
- package/dist/session/session-resume.d.ts +25 -0
- package/dist/structural-summary/__tests__/__fixtures__/fixture-helpers.d.ts +11 -0
- package/dist/structural-summary/__tests__/assembler.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/generator.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/language-detect.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/manifest-parsers/cargo.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/manifest-parsers/gomod.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/manifest-parsers/gradle.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/manifest-parsers/index.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/manifest-parsers/npm.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/manifest-parsers/podfile.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/manifest-parsers/pyproject.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/opt-in-store.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/privacy-filter.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/safe-file-read.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/user-ignore-matcher.test.d.ts +1 -0
- package/dist/structural-summary/__tests__/walker.test.d.ts +1 -0
- package/dist/structural-summary/generator.d.ts +8 -0
- package/dist/structural-summary/index.d.ts +7 -0
- package/dist/structural-summary/manifest-parsers/cargo.d.ts +3 -0
- package/dist/structural-summary/manifest-parsers/index.d.ts +7 -0
- package/dist/structural-summary/manifest-parsers/npm.d.ts +3 -0
- package/dist/structural-summary/manifest-parsers/other.d.ts +17 -0
- package/dist/structural-summary/opt-in-store.d.ts +24 -0
- package/dist/structural-summary/privacy-filter.d.ts +110 -0
- package/dist/structural-summary/safe-file-read.d.ts +11 -0
- package/dist/structural-summary/types.d.ts +215 -0
- package/dist/structural-summary/user-ignore-matcher.d.ts +9 -0
- package/dist/structural-summary/walker.d.ts +20 -0
- package/dist/substrate/__tests__/docker.test.d.ts +1 -0
- package/dist/substrate/__tests__/forwarder.test.d.ts +1 -0
- package/dist/substrate/__tests__/git-proxy.test.d.ts +1 -0
- package/dist/substrate/__tests__/sandbox-exec.test.d.ts +1 -0
- package/dist/substrate/__tests__/substrate-e2e.integration.test.d.ts +1 -0
- package/dist/substrate/command-runner.d.ts +19 -0
- package/dist/substrate/docker.d.ts +134 -0
- package/dist/substrate/errors.d.ts +33 -0
- package/dist/substrate/forwarder.d.ts +67 -0
- package/dist/substrate/git-proxy.d.ts +35 -0
- package/dist/substrate/index.d.ts +12 -0
- package/dist/substrate/relay-script.d.ts +27 -0
- package/dist/substrate/sandbox-exec.d.ts +116 -0
- package/dist/substrate/types.d.ts +218 -0
- package/dist/substrate-launch/__tests__/apikey-bootstrap.test.d.ts +1 -0
- package/dist/substrate-launch/__tests__/creditless-loop.integration.test.d.ts +1 -0
- package/dist/substrate-launch/__tests__/engage-substrate.test.d.ts +1 -0
- package/dist/substrate-launch/__tests__/fallback-ladder.test.d.ts +1 -0
- package/dist/substrate-launch/__tests__/le-env-scrub.test.d.ts +1 -0
- package/dist/substrate-launch/__tests__/sanitized-env.test.d.ts +1 -0
- package/dist/substrate-launch/apikey-bootstrap.d.ts +84 -0
- package/dist/substrate-launch/engage-substrate.d.ts +102 -0
- package/dist/substrate-launch/fallback-ladder.d.ts +49 -0
- package/dist/substrate-launch/index.d.ts +12 -0
- package/dist/substrate-launch/le-env-scrub.d.ts +77 -0
- package/dist/substrate-launch/sanitized-env.d.ts +73 -0
- package/dist/types/auth.d.ts +6 -1
- package/dist/types/events.d.ts +19 -2
- package/dist/types/reviewer.d.ts +6 -6
- package/package.json +21 -3
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { type StrictAuditSink } from "./audit-sink";
|
|
2
|
+
import { getProviderConfig } from "./broker-config";
|
|
3
|
+
import { type RotationHandle } from "./broker-token";
|
|
4
|
+
import { type BrokerRequest, type BrokerResponse, type BrokerToken, type ModelGatewayBroker, type UpstreamClient, type VendorKeyStore, type VendorProvider } from "./types";
|
|
5
|
+
/**
|
|
6
|
+
* Construction-time dependencies. All injectable so W1 unit-tests run
|
|
7
|
+
* against stubs (no network, deterministic audit ACKs). Defaults wire the
|
|
8
|
+
* real keychain store + a deterministic stub audit sink (the real strict
|
|
9
|
+
* sink is W3). `upstreamClient` has NO default — a network client is out
|
|
10
|
+
* of W1 scope, so the broker MUST be given one (tests pass a stub).
|
|
11
|
+
*/
|
|
12
|
+
export interface BrokerDeps {
|
|
13
|
+
/** Orchestration task_id = the audit scope (§3.5), passed at session start. */
|
|
14
|
+
taskId: string;
|
|
15
|
+
/** Injected upstream HTTP client (no real network in W1). */
|
|
16
|
+
upstreamClient: UpstreamClient;
|
|
17
|
+
/** Vendor-key store (defaults to the keychain-backed store, §3.3). */
|
|
18
|
+
vendorKeyStore?: VendorKeyStore;
|
|
19
|
+
/** Strict audit sink (defaults to the in-memory stub until W3, §3.5). */
|
|
20
|
+
auditSink?: StrictAuditSink;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* The local model-gateway broker (§3.2). One per session on
|
|
24
|
+
* `127.0.0.1:<ephemeral>`. Holds the upstream credential in-process only
|
|
25
|
+
* (zeroized on `stop()`), authenticates the agent's broker token, builds
|
|
26
|
+
* a canonical upstream request, scrubs secrets (I2), enforces audit-
|
|
27
|
+
* before-effect via the injected `StrictAuditSink`, and forwards.
|
|
28
|
+
*/
|
|
29
|
+
export declare class LocalModelGatewayBroker implements ModelGatewayBroker, VendorKeyStore {
|
|
30
|
+
private readonly taskId;
|
|
31
|
+
private readonly upstreamClient;
|
|
32
|
+
private readonly vendorKeyStore;
|
|
33
|
+
private readonly auditSink;
|
|
34
|
+
private readonly tokenMinter;
|
|
35
|
+
private readonly brokerId;
|
|
36
|
+
private server;
|
|
37
|
+
private boundAddr;
|
|
38
|
+
/** In-process cache of upstream vendor keys (zeroized on stop()). */
|
|
39
|
+
private upstreamKeys;
|
|
40
|
+
/** Latest `credential_issuance_id` per provider (for the model_call FK). */
|
|
41
|
+
private issuanceIds;
|
|
42
|
+
private issuanceCounter;
|
|
43
|
+
constructor(deps: BrokerDeps);
|
|
44
|
+
/**
|
|
45
|
+
* Start the per-session HTTP gateway on an ephemeral loopback port + mint
|
|
46
|
+
* the session's broker token. Resolves the bound `127.0.0.1:<port>`.
|
|
47
|
+
*/
|
|
48
|
+
start(): Promise<{
|
|
49
|
+
hostBrokerAddr: string;
|
|
50
|
+
}>;
|
|
51
|
+
/** Liveness — the LE waits for this before launching the agent. */
|
|
52
|
+
healthz(): Promise<boolean>;
|
|
53
|
+
/**
|
|
54
|
+
* Tear down: close the HTTP server, ZEROIZE the in-process upstream
|
|
55
|
+
* credentials, and clear the broker token. Idempotent.
|
|
56
|
+
*/
|
|
57
|
+
stop(): Promise<void>;
|
|
58
|
+
/** The current broker token (for the agent's apiKeyHelper bootstrap). */
|
|
59
|
+
currentBrokerToken(): BrokerToken | null;
|
|
60
|
+
/**
|
|
61
|
+
* Re-mint (rotate) the broker token and return the new value. The LE calls
|
|
62
|
+
* this periodically (well within the TTL) + rewrites the apiKeyHelper token
|
|
63
|
+
* file so a long-running session never hits an expired-token 401 loop.
|
|
64
|
+
*
|
|
65
|
+
* M-3 — this is a GRACE rotation: the NEW token becomes current but the PRIOR
|
|
66
|
+
* token KEEPS authenticating until the LE confirms the helper file holds the
|
|
67
|
+
* new token (then calls {@link commitBrokerTokenRotation}). This closes the
|
|
68
|
+
* 401-loop window: there is NEVER a moment where the agent's file (which holds
|
|
69
|
+
* the prior token until the rewrite lands) is rejected. If the file rewrite
|
|
70
|
+
* FAILS, the LE calls {@link rollbackBrokerTokenRotation} to restore the prior
|
|
71
|
+
* token as the sole active one (fail-closed — no dead token left in the file).
|
|
72
|
+
* Returns null if the broker is stopped OR a rotation is already in-flight
|
|
73
|
+
* (Finding 3 overlap guard — the minter refuses a second concurrent rotation).
|
|
74
|
+
* The returned {@link RotationHandle} MUST be passed back to
|
|
75
|
+
* {@link commitBrokerTokenRotation} / {@link rollbackBrokerTokenRotation} so a
|
|
76
|
+
* stale (superseded) commit/rollback cannot clobber a newer rotation.
|
|
77
|
+
*/
|
|
78
|
+
rotateBrokerToken(): RotationHandle | null;
|
|
79
|
+
/**
|
|
80
|
+
* Confirm a grace rotation: the helper file now holds the new token, so the
|
|
81
|
+
* prior (grace) token stops authenticating (single-active-token restored).
|
|
82
|
+
* Generation-bound (Finding 3): pass the {@link RotationHandle} from the
|
|
83
|
+
* matching {@link rotateBrokerToken}; a stale handle is a no-op.
|
|
84
|
+
*/
|
|
85
|
+
commitBrokerTokenRotation(handle?: RotationHandle): void;
|
|
86
|
+
/**
|
|
87
|
+
* Roll back a grace rotation whose file rewrite FAILED: the prior token is
|
|
88
|
+
* restored as current (still in the agent's file, still valid) and the new
|
|
89
|
+
* token is discarded. No dead-token window. Generation-bound (Finding 3): pass
|
|
90
|
+
* the {@link RotationHandle} from the matching {@link rotateBrokerToken}.
|
|
91
|
+
*/
|
|
92
|
+
rollbackBrokerTokenRotation(handle?: RotationHandle): void;
|
|
93
|
+
getVendorKey(provider: VendorProvider): Promise<string | null>;
|
|
94
|
+
setVendorKey(provider: VendorProvider, key: string): Promise<void>;
|
|
95
|
+
/**
|
|
96
|
+
* Handle one broker request (§3.2). The pure, transport-agnostic core —
|
|
97
|
+
* the HTTP server (`handleHttp`) adapts node req/res onto this. Route
|
|
98
|
+
* table check first (everything else → 403), then broker-token auth on
|
|
99
|
+
* the two POSTs (the ONLY 401 is an invalid agent→broker token), then
|
|
100
|
+
* the per-provider gateway (§3.3/§3.4/§3.5).
|
|
101
|
+
*/
|
|
102
|
+
handle(req: BrokerRequest): Promise<BrokerResponse>;
|
|
103
|
+
private gateway;
|
|
104
|
+
/**
|
|
105
|
+
* Load the vendor key, caching it in-process, and emit
|
|
106
|
+
* `broker_credential_loaded` (§3.5) on each keychain load — with a
|
|
107
|
+
* `key_fingerprint` (sha256 prefix) and a fresh `credential_issuance_id`,
|
|
108
|
+
* NEVER the key. The credential-loaded audit is best-effort (it does not
|
|
109
|
+
* gate the forward — the `model_call` row does); a lost load-audit is a
|
|
110
|
+
* forensic gap, not an unsafe effect.
|
|
111
|
+
*/
|
|
112
|
+
private loadVendorKey;
|
|
113
|
+
private lastIssuanceId;
|
|
114
|
+
/**
|
|
115
|
+
* Map an upstream response to the agent-facing status (§3.2). An upstream
|
|
116
|
+
* 401/403 (bad/expired vendor key) → 502 (NOT a pass-through 401, which
|
|
117
|
+
* would loop the agent's token-refresh hook). Every other status carries
|
|
118
|
+
* through; the body is the upstream JSON on success.
|
|
119
|
+
*/
|
|
120
|
+
private mapUpstream;
|
|
121
|
+
/**
|
|
122
|
+
* Best-effort extraction of the requested model name for the audit row.
|
|
123
|
+
*
|
|
124
|
+
* OWN-property check ONLY (Codex W1 R3 prototype-pollution class). The
|
|
125
|
+
* body originates from `JSON.parse`, so a `{"__proto__":{"model":"<secret>"}}`
|
|
126
|
+
* payload could leave an INHERITED `model` on the prototype chain. A bare
|
|
127
|
+
* `"model" in body` / `body.model` would WALK the chain and read that
|
|
128
|
+
* injected secret straight into the durable `model_call.model` audit row
|
|
129
|
+
* (exfil). `Object.hasOwn` + an own-only read see ONLY a real top-level
|
|
130
|
+
* `$.model`; an inherited one is invisible → audited `model` is `"unknown"`,
|
|
131
|
+
* never the leaked value. (This is also fed the POST-scrub body, so even a
|
|
132
|
+
* real secret-shaped own `$.model` is already redacted by the scrubber —
|
|
133
|
+
* Codex W1 R1; the own-only read closes the inherited-property variant.)
|
|
134
|
+
*/
|
|
135
|
+
private extractModel;
|
|
136
|
+
/** Best-effort token/cost extraction from an upstream response body. */
|
|
137
|
+
private extractUsage;
|
|
138
|
+
/**
|
|
139
|
+
* Emit a PRE-FORWARD (gated) audit row and BLOCK for a durable ACK
|
|
140
|
+
* (§3.5 audit-before-effect). Returns true ONLY on `{ack}`; a `{nack}`,
|
|
141
|
+
* a rejected promise (IPC failure), or any thrown error → false (the
|
|
142
|
+
* caller fails closed: 503, no forward). A security audit cannot
|
|
143
|
+
* silently drop.
|
|
144
|
+
*/
|
|
145
|
+
private emitGated;
|
|
146
|
+
/**
|
|
147
|
+
* Emit a BEST-EFFORT audit row (`model_call_result` post-response,
|
|
148
|
+
* `broker_credential_loaded`). Losing it is a cost-tracking / forensic
|
|
149
|
+
* gap, never a security-invariant violation — so it never gates an
|
|
150
|
+
* effect and swallows nack/error.
|
|
151
|
+
*/
|
|
152
|
+
private emitBestEffort;
|
|
153
|
+
/**
|
|
154
|
+
* Adapt a node HTTP request/response onto `handle`. Extracts the broker
|
|
155
|
+
* token (Anthropic `x-api-key` / `authorization: Bearer`; OpenAI
|
|
156
|
+
* `authorization: Bearer`), the agent headers/query/content-type, and the
|
|
157
|
+
* JSON body, then writes the `BrokerResponse` back. A malformed JSON body
|
|
158
|
+
* on a model POST → 400 (outside the canonical shape).
|
|
159
|
+
*/
|
|
160
|
+
private handleHttp;
|
|
161
|
+
private extractBrokerToken;
|
|
162
|
+
private readBody;
|
|
163
|
+
private writeJson;
|
|
164
|
+
}
|
|
165
|
+
export { getProviderConfig };
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import type { BrokerRequest, VendorProvider } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* The agent-supplied request, as the §3.2 `BrokerRequest` carries it.
|
|
4
|
+
* `headers` / `query` are OPTIONAL on the wire type but, when present,
|
|
5
|
+
* the canonical constructor DROPS them all (only an exact-allowlist beta
|
|
6
|
+
* token survives). They are accepted on the inbound shape solely so the
|
|
7
|
+
* gateway can assert it dropped them (conformance-testable).
|
|
8
|
+
*/
|
|
9
|
+
export interface CanonicalInput {
|
|
10
|
+
provider: VendorProvider;
|
|
11
|
+
/** The agent's raw inbound request. */
|
|
12
|
+
request: BrokerRequest;
|
|
13
|
+
/**
|
|
14
|
+
* Agent-supplied headers (lowercased keys), if the transport surfaced
|
|
15
|
+
* any. The canonical constructor drops all of them except an exact-
|
|
16
|
+
* allowlist beta token.
|
|
17
|
+
*/
|
|
18
|
+
agentHeaders?: Readonly<Record<string, string>>;
|
|
19
|
+
/** Agent-supplied query string params, if any. ALL are dropped. */
|
|
20
|
+
agentQuery?: Readonly<Record<string, string>>;
|
|
21
|
+
/** Agent-declared content type, if the transport surfaced it. */
|
|
22
|
+
agentContentType?: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A constructed, canonical upstream request — everything the broker needs
|
|
26
|
+
* to forward, with the agent's raw envelope discarded. `model_call_id` is
|
|
27
|
+
* allocated here (§3.4) so a request that is scrubbed-then-rejected still
|
|
28
|
+
* has a stable id for its audit row.
|
|
29
|
+
*/
|
|
30
|
+
export interface CanonicalRequest {
|
|
31
|
+
provider: VendorProvider;
|
|
32
|
+
/** Absolute upstream URL (origin + canonical path), synthesized from config. */
|
|
33
|
+
upstreamUrl: string;
|
|
34
|
+
/**
|
|
35
|
+
* The upstream headers the broker synthesized — vendor/version +
|
|
36
|
+
* content-type + any exact-allowlist beta token. The upstream CREDENTIAL
|
|
37
|
+
* is injected separately at forward time (§3.3), NOT here.
|
|
38
|
+
*/
|
|
39
|
+
headers: Record<string, string>;
|
|
40
|
+
/** The carried-through model-bound JSON body (the only surviving surface). */
|
|
41
|
+
body: unknown;
|
|
42
|
+
/** Per-forward id, allocated at construction (§3.4 / §3.5). */
|
|
43
|
+
modelCallId: string;
|
|
44
|
+
/** SHA-256 of the ORIGINAL pre-scrub body (§3.5 `request_sha256`). */
|
|
45
|
+
requestSha256: string;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* A 400-class rejection (request outside the canonical shape). Carries a
|
|
49
|
+
* non-revealing reason for the broker's error envelope.
|
|
50
|
+
*/
|
|
51
|
+
export declare class CanonicalRejectError extends Error {
|
|
52
|
+
readonly reason: string;
|
|
53
|
+
constructor(reason: string);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Compute the SHA-256 hex of the request body over a STABLE serialization
|
|
57
|
+
* of the ORIGINAL (pre-scrub) bytes. Uses `JSON.stringify` of the parsed
|
|
58
|
+
* body so the digest is independent of incidental whitespace, and is
|
|
59
|
+
* computed before any redaction so a scrub never changes it (§3.5).
|
|
60
|
+
*/
|
|
61
|
+
export declare function requestSha256(body: unknown): string;
|
|
62
|
+
/**
|
|
63
|
+
* Build the canonical upstream request (§3.4 step 0). Rejects (throws
|
|
64
|
+
* `CanonicalRejectError` → 400) anything outside the canonical shape:
|
|
65
|
+
* non-JSON content type, a body that isn't a JSON object, or a non-
|
|
66
|
+
* allowlisted beta token. DROPS the agent's auth / every other header /
|
|
67
|
+
* all query params silently (they simply do not survive into the result).
|
|
68
|
+
*/
|
|
69
|
+
export declare function buildCanonicalRequest(input: CanonicalInput): CanonicalRequest;
|
|
70
|
+
/**
|
|
71
|
+
* One general secret-shaped KEY the guard redacted (Codex W1 R4). Mirrors a
|
|
72
|
+
* scrubber `ScrubFinding`: the broker emits one `model_context_scrubbed` row
|
|
73
|
+
* per entry, carrying the PLACEHOLDER path + pattern class, NEVER the raw key.
|
|
74
|
+
*/
|
|
75
|
+
export interface GuardKeyScrub {
|
|
76
|
+
/** Canonical JSONPath of the redacted KEY's location (placeholder, leak-free). */
|
|
77
|
+
readonly field: string;
|
|
78
|
+
/** The non-revealing pattern class (always `secret_object_key`). */
|
|
79
|
+
readonly patternClass: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* §3.4 step 1 — self-credential guard, and the AUTHORITATIVE object-key
|
|
83
|
+
* redactor for the whole request path. Two responsibilities:
|
|
84
|
+
*
|
|
85
|
+
* (a) Assert the broker's own upstream key / the broker token never appear
|
|
86
|
+
* in any model-bound field — as a string VALUE *or* as an object KEY
|
|
87
|
+
* (defense-in-depth: redact + tell the caller so it audits via
|
|
88
|
+
* `model_context_scrubbed`). Self-cred VALUE → `[REDACTED-SELF-CRED]`;
|
|
89
|
+
* self-cred KEY → `[REDACTED-SELF-CRED-KEY]-<n>` (Codex W1 R2).
|
|
90
|
+
*
|
|
91
|
+
* (b) Redact ANY *general* secret-shaped object KEY (`keyIsSecret`, the
|
|
92
|
+
* scrubber's predicate) to `[REDACTED-CP7-KEY]-<n>` — even when it is
|
|
93
|
+
* NOT a self-credential. This runs FIRST (before the §3.4-step-2
|
|
94
|
+
* scrubber and before any leaked-path is recorded), so NO JSONPath the
|
|
95
|
+
* guard builds — for its OWN key redactions, or for a self-cred VALUE
|
|
96
|
+
* nested *beneath* such a key — can ever carry a raw secret key.
|
|
97
|
+
*
|
|
98
|
+
* (b) is the Codex W1 R4 fix. Before it, a self-cred value nested under a
|
|
99
|
+
* non-self-cred secret-shaped key (e.g. `{ "sk-ant-EXFIL…": { trigger:
|
|
100
|
+
* "<broker-token>" } }`) made the guard record `field =
|
|
101
|
+
* "$['sk-ant-EXFIL…'].trigger"` BEFORE the downstream scrubber's key
|
|
102
|
+
* redaction could fire — landing the raw key verbatim in a durable
|
|
103
|
+
* `model_context_scrubbed` row. Making the guard the single, FIRST key
|
|
104
|
+
* redactor closes that seam: every secret-shaped key (self-cred OR general)
|
|
105
|
+
* is a placeholder before any path is built, in either pass.
|
|
106
|
+
*
|
|
107
|
+
* Returns the redacted body, the `leakedPaths` where a SELF-credential was
|
|
108
|
+
* found (`pattern_class: self_credential`), and `keyScrubs` for general
|
|
109
|
+
* secret-shaped keys (`pattern_class: secret_object_key`). Every recorded
|
|
110
|
+
* path uses a PLACEHOLDER for any redacted key, never the raw key — so the
|
|
111
|
+
* audit surface is leak-free. The downstream scrubber sees only placeholder
|
|
112
|
+
* keys (never re-redacts them) and remains a value scrubber + a backstop key
|
|
113
|
+
* redactor should coverage ever diverge.
|
|
114
|
+
*/
|
|
115
|
+
export declare function selfCredentialGuard(body: unknown, secrets: ReadonlyArray<string>): {
|
|
116
|
+
body: unknown;
|
|
117
|
+
leakedPaths: string[];
|
|
118
|
+
keyScrubs: GuardKeyScrub[];
|
|
119
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type { VendorProvider, BrokerRouteMethod, BrokerRoute, BrokerStatus, BrokerRequest, BrokerResponse, ModelGatewayBroker, VendorKeyStore, BrokerToken, UpstreamResponse, UpstreamClient, } from "./types";
|
|
2
|
+
export { BROKER_ROUTES } from "./types";
|
|
3
|
+
export { LocalModelGatewayBroker } from "./broker";
|
|
4
|
+
export type { BrokerDeps } from "./broker";
|
|
5
|
+
export { FetchUpstreamClient } from "./upstream-client";
|
|
6
|
+
export type { StrictAuditSink, AuditKindCp7, RecordedAuditEmit } from "./audit-sink";
|
|
7
|
+
export { StubStrictAuditSink } from "./audit-sink";
|
|
8
|
+
export { KeychainVendorKeyStore } from "./vendor-key-store";
|
|
9
|
+
export { BrokerTokenMinter, type RotationHandle } from "./broker-token";
|
|
10
|
+
export { buildCanonicalRequest, selfCredentialGuard, requestSha256, CanonicalRejectError, } from "./canonical";
|
|
11
|
+
export type { CanonicalInput, CanonicalRequest } from "./canonical";
|
|
12
|
+
export { scrubRequestBody } from "./scrubber";
|
|
13
|
+
export type { ScrubFinding, ScrubResult } from "./scrubber";
|
|
14
|
+
export { getProviderConfig, providerForPath } from "./broker-config";
|
|
15
|
+
export type { ProviderConfig } from "./broker-config";
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single scrub finding — surfaced so the broker emits one
|
|
3
|
+
* `model_context_scrubbed` audit row per (field, pattern_class). NEVER
|
|
4
|
+
* carries the secret value.
|
|
5
|
+
*/
|
|
6
|
+
export interface ScrubFinding {
|
|
7
|
+
/** Canonical JSONPath of the field that was scrubbed, e.g. `$.messages[0].content`. */
|
|
8
|
+
readonly field: string;
|
|
9
|
+
/** The non-revealing pattern class (e.g. `anthropic_api_key`). */
|
|
10
|
+
readonly patternClass: string;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Result of scrubbing one request body.
|
|
14
|
+
*/
|
|
15
|
+
export interface ScrubResult {
|
|
16
|
+
/** A DEEP-CLONED, redacted copy of the body (the original is untouched). */
|
|
17
|
+
readonly scrubbed: unknown;
|
|
18
|
+
/** One finding per (field, pattern_class) hit; empty if nothing matched. */
|
|
19
|
+
readonly findings: ScrubFinding[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Does this object-key NAME itself match a high-confidence secret shape?
|
|
23
|
+
* A key like `"sk-ant-…"` carries the secret AS the key — value-only
|
|
24
|
+
* scrubbing would forward it verbatim (exfil out the one allow-listed
|
|
25
|
+
* egress) and a JSONPath built from it would embed the raw secret in an
|
|
26
|
+
* audit row. Reuses the SAME `SECRET_PATTERNS` so key + value coverage
|
|
27
|
+
* evolve together (no separate key schema). Read-only `.test()` (lastIndex
|
|
28
|
+
* is reset each side because the regexes are global/stateful).
|
|
29
|
+
*
|
|
30
|
+
* EXPORTED (Codex W1 R4): the self-credential guard (`canonical.ts`) runs
|
|
31
|
+
* BEFORE this scrubber and is the AUTHORITATIVE key redactor — it imports
|
|
32
|
+
* this predicate so a general secret-shaped KEY is replaced with a
|
|
33
|
+
* placeholder before ANY JSONPath is built, in either pass. Sharing this one
|
|
34
|
+
* function keeps the guard's and the scrubber's key coverage identical (no
|
|
35
|
+
* second key schema to drift).
|
|
36
|
+
*/
|
|
37
|
+
export declare function keyIsSecret(key: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* The I2 scrubber (§3.4 step 2). Walks the model-bound request JSON,
|
|
40
|
+
* redacts high-confidence secret shapes in every string, and reports each
|
|
41
|
+
* scrub by canonical JSONPath + pattern class (never the value). The
|
|
42
|
+
* returned `scrubbed` body is a deep clone — the caller keeps the
|
|
43
|
+
* original to compute `request_sha256` over the PRE-scrub bytes (§3.5).
|
|
44
|
+
*/
|
|
45
|
+
export declare function scrubRequestBody(body: unknown): ScrubResult;
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The vendor providers Rung 1 brokers. Claude + Codex (Anthropic +
|
|
3
|
+
* OpenAI) only — Gemini stays out of the substrate (§6 Q4, agy is
|
|
4
|
+
* reduced-trust).
|
|
5
|
+
*/
|
|
6
|
+
export type VendorProvider = "anthropic" | "openai";
|
|
7
|
+
/** A route the broker serves. */
|
|
8
|
+
export type BrokerRouteMethod = "POST" | "GET";
|
|
9
|
+
/**
|
|
10
|
+
* The locked broker route table (§3.2). Declared as data-shape types so
|
|
11
|
+
* the W1 gateway and any conformance test agree on the surface without
|
|
12
|
+
* a contract reopen.
|
|
13
|
+
*/
|
|
14
|
+
export interface BrokerRoute {
|
|
15
|
+
method: BrokerRouteMethod;
|
|
16
|
+
path: "/v1/messages" | "/v1/responses" | "/healthz";
|
|
17
|
+
/** Whether the route requires a valid agent→broker token. */
|
|
18
|
+
auth: "broker_token" | "none";
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The broker's locked route table — exactly three routes (§3.2). Any
|
|
22
|
+
* other method+path → 403.
|
|
23
|
+
*/
|
|
24
|
+
export declare const BROKER_ROUTES: readonly BrokerRoute[];
|
|
25
|
+
/**
|
|
26
|
+
* The broker's HTTP status taxonomy (§3.2 + §3.2 upstream-auth note).
|
|
27
|
+
* Declared as a typed enum so the W1 gateway and reviewers share one
|
|
28
|
+
* source of truth for the fail-closed status mapping.
|
|
29
|
+
*/
|
|
30
|
+
export type BrokerStatus = 200 | 400 | 401 | 403 | 502 | 503;
|
|
31
|
+
/**
|
|
32
|
+
* An inbound request to the broker. `method`/`path` are **raw HTTP
|
|
33
|
+
* strings**, deliberately NOT narrowed to `BROKER_ROUTES` (Codex W0 R1):
|
|
34
|
+
* the §3.2 contract is "everything else → 403", so the type MUST be able
|
|
35
|
+
* to represent a *disallowed* route for the W1 gateway's `handle()` to be
|
|
36
|
+
* conformance-testable (send `/v1/admin` / `DELETE` → assert 403). Only
|
|
37
|
+
* the three `(method, path)` pairs in `BROKER_ROUTES` are forwarded; every
|
|
38
|
+
* other request fails closed at 403.
|
|
39
|
+
*/
|
|
40
|
+
export interface BrokerRequest {
|
|
41
|
+
method: string;
|
|
42
|
+
path: string;
|
|
43
|
+
/** Opaque short-lived agent→broker token (§3.3); absent for `/healthz`. */
|
|
44
|
+
brokerToken?: string;
|
|
45
|
+
/** Model-bound JSON body (the only carried-through surface, §3.4). */
|
|
46
|
+
body?: unknown;
|
|
47
|
+
/**
|
|
48
|
+
* Agent-supplied headers (lowercased keys), if the transport surfaced
|
|
49
|
+
* any. The §3.4 canonical constructor DROPS all of them except an
|
|
50
|
+
* exact-allowlist beta token; carried on the wire type so `handle()`'s
|
|
51
|
+
* canonicalization is conformance-testable (assert the agent's
|
|
52
|
+
* `authorization` / `x-api-key` / unknown headers do not reach upstream).
|
|
53
|
+
*/
|
|
54
|
+
agentHeaders?: Readonly<Record<string, string>>;
|
|
55
|
+
/** Agent-supplied query params, if any. ALL are dropped (§3.4). */
|
|
56
|
+
agentQuery?: Readonly<Record<string, string>>;
|
|
57
|
+
/** Agent-declared content type, if surfaced. Non-JSON → 400 (§3.4). */
|
|
58
|
+
agentContentType?: string;
|
|
59
|
+
}
|
|
60
|
+
/** Response from a broker model-gateway route. */
|
|
61
|
+
export interface BrokerResponse {
|
|
62
|
+
status: BrokerStatus;
|
|
63
|
+
/** Upstream model-bound JSON body on 200; an error envelope otherwise. */
|
|
64
|
+
body?: unknown;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* The lifecycle surface of the per-session local broker daemon (§3.2).
|
|
68
|
+
* The LE starts one broker per session on `127.0.0.1:<ephemeral>` and
|
|
69
|
+
* tears it down at session end. Signatures only in W0.
|
|
70
|
+
*/
|
|
71
|
+
export interface ModelGatewayBroker {
|
|
72
|
+
/** Start listening on an ephemeral loopback port; resolve the bound addr. */
|
|
73
|
+
start(): Promise<{
|
|
74
|
+
hostBrokerAddr: string;
|
|
75
|
+
}>;
|
|
76
|
+
/** Liveness — the LE waits for this before launching the agent. */
|
|
77
|
+
healthz(): Promise<boolean>;
|
|
78
|
+
/** Handle one model-gateway request (the §3.2 route surface). */
|
|
79
|
+
handle(req: BrokerRequest): Promise<BrokerResponse>;
|
|
80
|
+
/** Tear down; zeroize the in-process upstream credential (§3.3). */
|
|
81
|
+
stop(): Promise<void>;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* The provider-scoped vendor-key storage API (§3.3) — [NEW], owner W1.
|
|
85
|
+
* Reuses the existing keychain backend (OS keyring + file fallback).
|
|
86
|
+
* Signatures only in W0; the implementation (keychain accounts
|
|
87
|
+
* `vendor-key-<provider>`) lands in W1.
|
|
88
|
+
*/
|
|
89
|
+
export interface VendorKeyStore {
|
|
90
|
+
/**
|
|
91
|
+
* Read the user's vendor key for `provider` from the keychain. Returns
|
|
92
|
+
* `null` when no key is present — the broker then fails closed (503),
|
|
93
|
+
* NEVER a silent fallback to an ambient `ANTHROPIC_API_KEY` /
|
|
94
|
+
* `OPENAI_API_KEY` (that would re-introduce the I1 ambient-cred path).
|
|
95
|
+
*/
|
|
96
|
+
getVendorKey(provider: VendorProvider): Promise<string | null>;
|
|
97
|
+
/** Persist the user's vendor key for `provider` (one-time setup step). */
|
|
98
|
+
setVendorKey(provider: VendorProvider, key: string): Promise<void>;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* The agent→broker token (§3.3): per-session, broker-minted, opaque,
|
|
102
|
+
* short-lived. Authenticates the agent to the LOCAL broker only — it is
|
|
103
|
+
* NOT a vendor credential.
|
|
104
|
+
*/
|
|
105
|
+
export interface BrokerToken {
|
|
106
|
+
/** Opaque token value emitted to the agent's apiKeyHelper / `[auth]` hook. */
|
|
107
|
+
readonly value: string;
|
|
108
|
+
/** Epoch-ms expiry; the helper refreshes on expiry / on a broker 401. */
|
|
109
|
+
readonly expiresAtMs: number;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* The result of a broker→vendor upstream call. The broker maps upstream
|
|
113
|
+
* status to the agent-facing `BrokerStatus` (§3.2): an upstream 401/403
|
|
114
|
+
* (bad/expired vendor key) → 502 (NOT a pass-through), every other status
|
|
115
|
+
* carries through.
|
|
116
|
+
*/
|
|
117
|
+
export interface UpstreamResponse {
|
|
118
|
+
/** Raw upstream HTTP status. */
|
|
119
|
+
status: number;
|
|
120
|
+
/** Parsed JSON body (model-bound). */
|
|
121
|
+
body?: unknown;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* The broker→vendor upstream HTTP client (§3.3/§3.4). INJECTED so W1 tests
|
|
125
|
+
* use a stub (no real network). The real fetch-backed client lands when
|
|
126
|
+
* the broker is wired into the LE; W1 only depends on this interface.
|
|
127
|
+
*/
|
|
128
|
+
export interface UpstreamClient {
|
|
129
|
+
/**
|
|
130
|
+
* POST the canonical request upstream. `headers` already includes the
|
|
131
|
+
* synthesized vendor/version headers AND the injected upstream
|
|
132
|
+
* credential (the caller adds the credential header). Resolves with the
|
|
133
|
+
* upstream status + body; rejects only on a transport/network error
|
|
134
|
+
* (which the broker maps to its forward-error path).
|
|
135
|
+
*/
|
|
136
|
+
post(args: {
|
|
137
|
+
url: string;
|
|
138
|
+
headers: Readonly<Record<string, string>>;
|
|
139
|
+
body: unknown;
|
|
140
|
+
}): Promise<UpstreamResponse>;
|
|
141
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { UpstreamClient, UpstreamResponse } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* The production fetch-backed {@link UpstreamClient}. Constructed once per
|
|
4
|
+
* broker session by the LE and injected into `LocalModelGatewayBroker`
|
|
5
|
+
* (replacing the W1 stub).
|
|
6
|
+
*/
|
|
7
|
+
export declare class FetchUpstreamClient implements UpstreamClient {
|
|
8
|
+
private readonly opts;
|
|
9
|
+
constructor(opts?: {
|
|
10
|
+
/** Injectable for tests (default: global `fetch`). */
|
|
11
|
+
fetchFn?: typeof fetch;
|
|
12
|
+
/** Per-request timeout (ms). */
|
|
13
|
+
timeoutMs?: number;
|
|
14
|
+
});
|
|
15
|
+
post(args: {
|
|
16
|
+
url: string;
|
|
17
|
+
headers: Readonly<Record<string, string>>;
|
|
18
|
+
body: unknown;
|
|
19
|
+
}): Promise<UpstreamResponse>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { VendorKeyStore, VendorProvider } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Keychain-backed implementation of {@link VendorKeyStore} (§3.3). Reads
|
|
4
|
+
* the same keychain service the rest of CodeVibe uses (`getConfig()
|
|
5
|
+
* .keychain.serviceName`) so vendor keys live alongside the existing
|
|
6
|
+
* device identity + OAuth tokens under one auditable backend.
|
|
7
|
+
*
|
|
8
|
+
* r5 HIGH-1 / r6 HIGH-2 (Codex): unlike the OAuth-token storage, the vendor
|
|
9
|
+
* key is KEYCHAIN-ONLY at rest for BOTH read and write — `setVendorKey`
|
|
10
|
+
* (write) and `getVendorKey` (read) BOTH require the real OS keychain and
|
|
11
|
+
* FAIL CLOSED rather than touch the plaintext file backend (see the two
|
|
12
|
+
* methods + file header). The agent can never REACH the key at runtime on any
|
|
13
|
+
* substrate (A1 never mounts `~/.codevibe`; A5 denies it in the Seatbelt
|
|
14
|
+
* profile).
|
|
15
|
+
*/
|
|
16
|
+
export declare class KeychainVendorKeyStore implements VendorKeyStore {
|
|
17
|
+
private get serviceName();
|
|
18
|
+
/**
|
|
19
|
+
* Read the user's vendor key from the keychain. Returns `null` when no
|
|
20
|
+
* key is present (the broker fails closed — 503). Backend errors
|
|
21
|
+
* (keyring unavailable, corrupted store) propagate to the caller, same
|
|
22
|
+
* as `KeychainManager.getTokens` — a hard config failure the user must
|
|
23
|
+
* see, NOT a silent "no key" that would mask a broken keychain.
|
|
24
|
+
*
|
|
25
|
+
* NO ambient-env fallback (I1): a missing key is `null`, full stop.
|
|
26
|
+
*
|
|
27
|
+
* r6 HIGH-2 (Codex): KEYCHAIN-ONLY on the READ side too. We require the real
|
|
28
|
+
* OS keychain (`getActiveBackendKind() === 'keytar'`) BEFORE reading. On the
|
|
29
|
+
* FILE backend we FAIL CLOSED by returning `null` (the broker then fails
|
|
30
|
+
* closed — 503) and DO NOT read `~/.codevibe/<service>.json` — so a legacy /
|
|
31
|
+
* manually-placed PLAINTEXT vendor key is never sourced from the file store.
|
|
32
|
+
* On a file-backend (headless Linux) box the user supplies the vendor key
|
|
33
|
+
* per-session into broker memory (the documented open item — see file header).
|
|
34
|
+
* SCOPED to the vendor key — the shared backend's OAuth-token file fallback
|
|
35
|
+
* (#29) is untouched (we only call the read-only `getActiveBackendKind`).
|
|
36
|
+
*/
|
|
37
|
+
getVendorKey(provider: VendorProvider): Promise<string | null>;
|
|
38
|
+
/**
|
|
39
|
+
* Persist the user's vendor key (one-time setup step). The plaintext
|
|
40
|
+
* value is never logged.
|
|
41
|
+
*
|
|
42
|
+
* r5 HIGH-1 (Codex): FAIL CLOSED if only the FILE backend is available —
|
|
43
|
+
* the broker refuses to write a PLAINTEXT vendor key to
|
|
44
|
+
* `~/.codevibe/<service>.json`. We prefer the REAL OS keychain; if it is
|
|
45
|
+
* unavailable (the file backend is active), we throw rather than silently
|
|
46
|
+
* persisting the key in plaintext (which would break the keychain-only
|
|
47
|
+
* at-rest invariant). This is SCOPED to the vendor key — the shared
|
|
48
|
+
* backend's OAuth-token file fallback (#29) is untouched. r6 HIGH-2: the READ
|
|
49
|
+
* side (`getVendorKey`) is now gated the SAME way (returns `null` on the file
|
|
50
|
+
* backend, no plaintext read); on a fail-closed box the user supplies the key
|
|
51
|
+
* per-session into broker memory.
|
|
52
|
+
*/
|
|
53
|
+
setVendorKey(provider: VendorProvider, key: string): Promise<void>;
|
|
54
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export { KeychainManager, keychainManager, KeychainError } from './keychain';
|
|
2
2
|
export { CryptoService, cryptoService, CryptoError, ENCRYPTION_VERSION } from './crypto';
|
|
3
|
-
export { AppSyncClient, DownloadUrlResponse } from './appsync';
|
|
3
|
+
export { AppSyncClient, AppSyncGraphQLError, DownloadUrlResponse } from './appsync';
|
|
4
4
|
export { queries, mutations, subscriptions } from './appsync';
|
|
5
5
|
export { AuthService, authService } from './auth';
|
|
6
|
+
export { bindOAuthServer, PRIMARY_PORT, PORT_RANGE_SIZE } from './auth';
|
|
6
7
|
export { runAuthCli } from './auth';
|
|
7
8
|
export { fireAuthCompletedBeacon, fireAuthFailedBeacon, markErrorBeaconed, errorWasBeaconed, getErrorReason, } from './auth';
|
|
8
9
|
export type { AuthFailureReason, AuthStage } from './auth';
|
|
@@ -11,10 +12,22 @@ export type { Config, Environment } from './config';
|
|
|
11
12
|
export { Logger, logger, createLogger } from './logger';
|
|
12
13
|
export { parseInteractivePrompt, normalizeSnapshot, } from './prompt-parser';
|
|
13
14
|
export type { ParsedInteractivePrompt, PromptKind, InteractivePromptOption, } from './prompt-parser';
|
|
14
|
-
export { resumeOrCreateSession, prepareSessionEncryption, rekeySessionForNewDevices, startDeviceKeyWatcher, registerDeviceEncryptionKey, } from './session';
|
|
15
|
+
export { resumeOrCreateSession, prepareSessionEncryption, rekeySessionForNewDevices, startDeviceKeyWatcher, registerDeviceEncryptionKey, prepareEventTimestamp, _resetPrepareEventTimestampForTesting, } from './session';
|
|
15
16
|
export type { ResumeOrCreateSessionInput, ResumeOrCreateSessionResult } from './session';
|
|
16
|
-
export { detectInstalledAgents, pushDetectedAgents, applyPerSessionOrchestrationOverride, runOrchestrationCli, } from './orchestration';
|
|
17
|
-
export type { DetectableAgent } from './orchestration';
|
|
17
|
+
export { detectInstalledAgents, pushDetectedAgents, applyPerSessionOrchestrationOverride, runOrchestrationCli, V1_ORCHESTRATION_PROMPT_KIND, V1_ORCHESTRATION_OPTIONS, mapOptionNumberToUserDecisionKind, mapOptionToUserDecisionKind, } from './orchestration';
|
|
18
|
+
export type { DetectableAgent, V1OrchestrationOption, V1UserDecisionKind, } from './orchestration';
|
|
18
19
|
export * as Reviewer from './reviewer';
|
|
19
20
|
export * as AuditKeys from './audit-keys';
|
|
21
|
+
export * as Substrate from './substrate';
|
|
22
|
+
export * as CredentialBroker from './credential-broker';
|
|
23
|
+
export * as SubstrateLaunch from './substrate-launch';
|
|
20
24
|
export * from './types';
|
|
25
|
+
export * as Planner from './planner';
|
|
26
|
+
export * as Continuation from './continuation';
|
|
27
|
+
export * as StructuralSummary from './structural-summary';
|
|
28
|
+
export { runOrchestrationShell } from './orchestration-shell';
|
|
29
|
+
export { runCompanionMode } from './companion-mode';
|
|
30
|
+
export { pickMode, TierError } from './orchestration-shell';
|
|
31
|
+
export { emitShellEvent, createShellEventEmitter } from './orchestration-shell';
|
|
32
|
+
export { processMarkers, withRoleMarker } from './orchestration-shell';
|
|
33
|
+
export type { Mode, Tier, PlannerDecision, AgentKind, PlannerHealthState, OrchestrationState, OrchestrationAction, ConversationEntry, RunningTaskState, ReviewerSeatState, GateState, ExecutionEventEntry, RefusalEventEntry, BypassEventEntry, MobileEventEntry, EventStreamEntry, QueuedTask, PendingClarification, LastModeFile, } from './orchestration-shell';
|