usesteady 0.1.0-alpha.1
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/LICENSE +186 -0
- package/README.md +724 -0
- package/bin/use-steady.js +13 -0
- package/dist/server-store.d.ts +68 -0
- package/dist/server-store.d.ts.map +1 -0
- package/dist/server-store.js +133 -0
- package/dist/server-store.js.map +1 -0
- package/dist/server.d.ts +35 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +569 -0
- package/dist/server.js.map +1 -0
- package/dist/src/claude/adapters/api-adapter.d.ts +99 -0
- package/dist/src/claude/adapters/api-adapter.d.ts.map +1 -0
- package/dist/src/claude/adapters/api-adapter.js +415 -0
- package/dist/src/claude/adapters/api-adapter.js.map +1 -0
- package/dist/src/claude/adapters/stub-adapter.d.ts +73 -0
- package/dist/src/claude/adapters/stub-adapter.d.ts.map +1 -0
- package/dist/src/claude/adapters/stub-adapter.js +114 -0
- package/dist/src/claude/adapters/stub-adapter.js.map +1 -0
- package/dist/src/claude/artifact-mapper.d.ts +85 -0
- package/dist/src/claude/artifact-mapper.d.ts.map +1 -0
- package/dist/src/claude/artifact-mapper.js +187 -0
- package/dist/src/claude/artifact-mapper.js.map +1 -0
- package/dist/src/claude/delivery-gate.d.ts +136 -0
- package/dist/src/claude/delivery-gate.d.ts.map +1 -0
- package/dist/src/claude/delivery-gate.js +231 -0
- package/dist/src/claude/delivery-gate.js.map +1 -0
- package/dist/src/claude/index.d.ts +24 -0
- package/dist/src/claude/index.d.ts.map +1 -0
- package/dist/src/claude/index.js +23 -0
- package/dist/src/claude/index.js.map +1 -0
- package/dist/src/claude/types.d.ts +223 -0
- package/dist/src/claude/types.d.ts.map +1 -0
- package/dist/src/claude/types.js +64 -0
- package/dist/src/claude/types.js.map +1 -0
- package/dist/src/control/compiler.d.ts +125 -0
- package/dist/src/control/compiler.d.ts.map +1 -0
- package/dist/src/control/compiler.js +179 -0
- package/dist/src/control/compiler.js.map +1 -0
- package/dist/src/control/constraints.d.ts +42 -0
- package/dist/src/control/constraints.d.ts.map +1 -0
- package/dist/src/control/constraints.js +116 -0
- package/dist/src/control/constraints.js.map +1 -0
- package/dist/src/control/drift-detector.d.ts +49 -0
- package/dist/src/control/drift-detector.d.ts.map +1 -0
- package/dist/src/control/drift-detector.js +115 -0
- package/dist/src/control/drift-detector.js.map +1 -0
- package/dist/src/control/index.d.ts +44 -0
- package/dist/src/control/index.d.ts.map +1 -0
- package/dist/src/control/index.js +40 -0
- package/dist/src/control/index.js.map +1 -0
- package/dist/src/control/types.d.ts +144 -0
- package/dist/src/control/types.d.ts.map +1 -0
- package/dist/src/control/types.js +57 -0
- package/dist/src/control/types.js.map +1 -0
- package/dist/src/cursor/adapters/inprocess-adapter.d.ts +78 -0
- package/dist/src/cursor/adapters/inprocess-adapter.d.ts.map +1 -0
- package/dist/src/cursor/adapters/inprocess-adapter.js +308 -0
- package/dist/src/cursor/adapters/inprocess-adapter.js.map +1 -0
- package/dist/src/cursor/adapters/stub-adapter.d.ts +75 -0
- package/dist/src/cursor/adapters/stub-adapter.d.ts.map +1 -0
- package/dist/src/cursor/adapters/stub-adapter.js +120 -0
- package/dist/src/cursor/adapters/stub-adapter.js.map +1 -0
- package/dist/src/cursor/artifact-mapper.d.ts +81 -0
- package/dist/src/cursor/artifact-mapper.d.ts.map +1 -0
- package/dist/src/cursor/artifact-mapper.js +203 -0
- package/dist/src/cursor/artifact-mapper.js.map +1 -0
- package/dist/src/cursor/delivery-gate.d.ts +144 -0
- package/dist/src/cursor/delivery-gate.d.ts.map +1 -0
- package/dist/src/cursor/delivery-gate.js +208 -0
- package/dist/src/cursor/delivery-gate.js.map +1 -0
- package/dist/src/cursor/glob-matcher.d.ts +30 -0
- package/dist/src/cursor/glob-matcher.d.ts.map +1 -0
- package/dist/src/cursor/glob-matcher.js +68 -0
- package/dist/src/cursor/glob-matcher.js.map +1 -0
- package/dist/src/cursor/index.d.ts +43 -0
- package/dist/src/cursor/index.d.ts.map +1 -0
- package/dist/src/cursor/index.js +44 -0
- package/dist/src/cursor/index.js.map +1 -0
- package/dist/src/cursor/ocd-evaluator.d.ts +89 -0
- package/dist/src/cursor/ocd-evaluator.d.ts.map +1 -0
- package/dist/src/cursor/ocd-evaluator.js +142 -0
- package/dist/src/cursor/ocd-evaluator.js.map +1 -0
- package/dist/src/cursor/types.d.ts +309 -0
- package/dist/src/cursor/types.d.ts.map +1 -0
- package/dist/src/cursor/types.js +48 -0
- package/dist/src/cursor/types.js.map +1 -0
- package/dist/src/execution/claude/claude-execution-coordinator.d.ts +164 -0
- package/dist/src/execution/claude/claude-execution-coordinator.d.ts.map +1 -0
- package/dist/src/execution/claude/claude-execution-coordinator.js +198 -0
- package/dist/src/execution/claude/claude-execution-coordinator.js.map +1 -0
- package/dist/src/execution/claude/index.d.ts +13 -0
- package/dist/src/execution/claude/index.d.ts.map +1 -0
- package/dist/src/execution/claude/index.js +12 -0
- package/dist/src/execution/claude/index.js.map +1 -0
- package/dist/src/execution/cursor/cursor-execution-coordinator.d.ts +216 -0
- package/dist/src/execution/cursor/cursor-execution-coordinator.d.ts.map +1 -0
- package/dist/src/execution/cursor/cursor-execution-coordinator.js +233 -0
- package/dist/src/execution/cursor/cursor-execution-coordinator.js.map +1 -0
- package/dist/src/execution/cursor/index.d.ts +20 -0
- package/dist/src/execution/cursor/index.d.ts.map +1 -0
- package/dist/src/execution/cursor/index.js +18 -0
- package/dist/src/execution/cursor/index.js.map +1 -0
- package/dist/src/execution/reminders/index.d.ts +11 -0
- package/dist/src/execution/reminders/index.d.ts.map +1 -0
- package/dist/src/execution/reminders/index.js +9 -0
- package/dist/src/execution/reminders/index.js.map +1 -0
- package/dist/src/execution/reminders/reminder-execution-coordinator.d.ts +125 -0
- package/dist/src/execution/reminders/reminder-execution-coordinator.d.ts.map +1 -0
- package/dist/src/execution/reminders/reminder-execution-coordinator.js +129 -0
- package/dist/src/execution/reminders/reminder-execution-coordinator.js.map +1 -0
- package/dist/src/execution/reminders/reminder-execution-types.d.ts +161 -0
- package/dist/src/execution/reminders/reminder-execution-types.d.ts.map +1 -0
- package/dist/src/execution/reminders/reminder-execution-types.js +39 -0
- package/dist/src/execution/reminders/reminder-execution-types.js.map +1 -0
- package/dist/src/execution/reminders/reminder-execution-validator.d.ts +45 -0
- package/dist/src/execution/reminders/reminder-execution-validator.d.ts.map +1 -0
- package/dist/src/execution/reminders/reminder-execution-validator.js +92 -0
- package/dist/src/execution/reminders/reminder-execution-validator.js.map +1 -0
- package/dist/src/execution/reminders/reminder-executor.d.ts +62 -0
- package/dist/src/execution/reminders/reminder-executor.d.ts.map +1 -0
- package/dist/src/execution/reminders/reminder-executor.js +113 -0
- package/dist/src/execution/reminders/reminder-executor.js.map +1 -0
- package/dist/src/execution/reminders/reminder-time-parser.d.ts +41 -0
- package/dist/src/execution/reminders/reminder-time-parser.d.ts.map +1 -0
- package/dist/src/execution/reminders/reminder-time-parser.js +113 -0
- package/dist/src/execution/reminders/reminder-time-parser.js.map +1 -0
- package/dist/src/friction/auto-capture.d.ts +38 -0
- package/dist/src/friction/auto-capture.d.ts.map +1 -0
- package/dist/src/friction/auto-capture.js +133 -0
- package/dist/src/friction/auto-capture.js.map +1 -0
- package/dist/src/friction/client.d.ts +39 -0
- package/dist/src/friction/client.d.ts.map +1 -0
- package/dist/src/friction/client.js +165 -0
- package/dist/src/friction/client.js.map +1 -0
- package/dist/src/friction/config.d.ts +16 -0
- package/dist/src/friction/config.d.ts.map +1 -0
- package/dist/src/friction/config.js +56 -0
- package/dist/src/friction/config.js.map +1 -0
- package/dist/src/friction/github-auth.d.ts +41 -0
- package/dist/src/friction/github-auth.d.ts.map +1 -0
- package/dist/src/friction/github-auth.js +155 -0
- package/dist/src/friction/github-auth.js.map +1 -0
- package/dist/src/friction/github-issues.d.ts +51 -0
- package/dist/src/friction/github-issues.d.ts.map +1 -0
- package/dist/src/friction/github-issues.js +118 -0
- package/dist/src/friction/github-issues.js.map +1 -0
- package/dist/src/friction/payout-ledger.d.ts +45 -0
- package/dist/src/friction/payout-ledger.d.ts.map +1 -0
- package/dist/src/friction/payout-ledger.js +111 -0
- package/dist/src/friction/payout-ledger.js.map +1 -0
- package/dist/src/friction/queue.d.ts +42 -0
- package/dist/src/friction/queue.d.ts.map +1 -0
- package/dist/src/friction/queue.js +179 -0
- package/dist/src/friction/queue.js.map +1 -0
- package/dist/src/friction/reviewer.d.ts +42 -0
- package/dist/src/friction/reviewer.d.ts.map +1 -0
- package/dist/src/friction/reviewer.js +269 -0
- package/dist/src/friction/reviewer.js.map +1 -0
- package/dist/src/friction/types.d.ts +63 -0
- package/dist/src/friction/types.d.ts.map +1 -0
- package/dist/src/friction/types.js +18 -0
- package/dist/src/friction/types.js.map +1 -0
- package/dist/src/history/index.d.ts +39 -0
- package/dist/src/history/index.d.ts.map +1 -0
- package/dist/src/history/index.js +41 -0
- package/dist/src/history/index.js.map +1 -0
- package/dist/src/history/session-chain.d.ts +36 -0
- package/dist/src/history/session-chain.d.ts.map +1 -0
- package/dist/src/history/session-chain.js +91 -0
- package/dist/src/history/session-chain.js.map +1 -0
- package/dist/src/history/types.d.ts +130 -0
- package/dist/src/history/types.d.ts.map +1 -0
- package/dist/src/history/types.js +32 -0
- package/dist/src/history/types.js.map +1 -0
- package/dist/src/history/workflow-history.d.ts +48 -0
- package/dist/src/history/workflow-history.d.ts.map +1 -0
- package/dist/src/history/workflow-history.js +116 -0
- package/dist/src/history/workflow-history.js.map +1 -0
- package/dist/src/index.d.ts +88 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +58 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/intake/classify-intent-state.d.ts +20 -0
- package/dist/src/intake/classify-intent-state.d.ts.map +1 -0
- package/dist/src/intake/classify-intent-state.js +29 -0
- package/dist/src/intake/classify-intent-state.js.map +1 -0
- package/dist/src/intake/intake-service.d.ts +105 -0
- package/dist/src/intake/intake-service.d.ts.map +1 -0
- package/dist/src/intake/intake-service.js +407 -0
- package/dist/src/intake/intake-service.js.map +1 -0
- package/dist/src/intake/response-planner.d.ts +25 -0
- package/dist/src/intake/response-planner.d.ts.map +1 -0
- package/dist/src/intake/response-planner.js +52 -0
- package/dist/src/intake/response-planner.js.map +1 -0
- package/dist/src/intake/signal-extractor.d.ts +25 -0
- package/dist/src/intake/signal-extractor.d.ts.map +1 -0
- package/dist/src/intake/signal-extractor.js +42 -0
- package/dist/src/intake/signal-extractor.js.map +1 -0
- package/dist/src/intake/trace.d.ts +157 -0
- package/dist/src/intake/trace.d.ts.map +1 -0
- package/dist/src/intake/trace.js +38 -0
- package/dist/src/intake/trace.js.map +1 -0
- package/dist/src/intake/types.d.ts +70 -0
- package/dist/src/intake/types.d.ts.map +1 -0
- package/dist/src/intake/types.js +30 -0
- package/dist/src/intake/types.js.map +1 -0
- package/dist/src/interaction/defaults.d.ts +12 -0
- package/dist/src/interaction/defaults.d.ts.map +1 -0
- package/dist/src/interaction/defaults.js +26 -0
- package/dist/src/interaction/defaults.js.map +1 -0
- package/dist/src/interaction/guidance-order.d.ts +53 -0
- package/dist/src/interaction/guidance-order.d.ts.map +1 -0
- package/dist/src/interaction/guidance-order.js +131 -0
- package/dist/src/interaction/guidance-order.js.map +1 -0
- package/dist/src/interaction/observe.d.ts +57 -0
- package/dist/src/interaction/observe.d.ts.map +1 -0
- package/dist/src/interaction/observe.js +77 -0
- package/dist/src/interaction/observe.js.map +1 -0
- package/dist/src/interaction/selectors.d.ts +16 -0
- package/dist/src/interaction/selectors.d.ts.map +1 -0
- package/dist/src/interaction/selectors.js +23 -0
- package/dist/src/interaction/selectors.js.map +1 -0
- package/dist/src/interaction/types.d.ts +105 -0
- package/dist/src/interaction/types.d.ts.map +1 -0
- package/dist/src/interaction/types.js +48 -0
- package/dist/src/interaction/types.js.map +1 -0
- package/dist/src/interaction/updater.d.ts +22 -0
- package/dist/src/interaction/updater.d.ts.map +1 -0
- package/dist/src/interaction/updater.js +87 -0
- package/dist/src/interaction/updater.js.map +1 -0
- package/dist/src/present/boundary-explanation/boundary-explanation-detector.d.ts +48 -0
- package/dist/src/present/boundary-explanation/boundary-explanation-detector.d.ts.map +1 -0
- package/dist/src/present/boundary-explanation/boundary-explanation-detector.js +107 -0
- package/dist/src/present/boundary-explanation/boundary-explanation-detector.js.map +1 -0
- package/dist/src/present/boundary-explanation/boundary-explanation-types.d.ts +43 -0
- package/dist/src/present/boundary-explanation/boundary-explanation-types.d.ts.map +1 -0
- package/dist/src/present/boundary-explanation/boundary-explanation-types.js +20 -0
- package/dist/src/present/boundary-explanation/boundary-explanation-types.js.map +1 -0
- package/dist/src/present/boundary-explanation/index.d.ts +10 -0
- package/dist/src/present/boundary-explanation/index.d.ts.map +1 -0
- package/dist/src/present/boundary-explanation/index.js +2 -0
- package/dist/src/present/boundary-explanation/index.js.map +1 -0
- package/dist/src/present/control-visibility/control-visibility-assertions.d.ts +70 -0
- package/dist/src/present/control-visibility/control-visibility-assertions.d.ts.map +1 -0
- package/dist/src/present/control-visibility/control-visibility-assertions.js +138 -0
- package/dist/src/present/control-visibility/control-visibility-assertions.js.map +1 -0
- package/dist/src/present/control-visibility/control-visibility-evaluator.d.ts +67 -0
- package/dist/src/present/control-visibility/control-visibility-evaluator.d.ts.map +1 -0
- package/dist/src/present/control-visibility/control-visibility-evaluator.js +146 -0
- package/dist/src/present/control-visibility/control-visibility-evaluator.js.map +1 -0
- package/dist/src/present/control-visibility/control-visibility-types.d.ts +113 -0
- package/dist/src/present/control-visibility/control-visibility-types.d.ts.map +1 -0
- package/dist/src/present/control-visibility/control-visibility-types.js +24 -0
- package/dist/src/present/control-visibility/control-visibility-types.js.map +1 -0
- package/dist/src/present/control-visibility/index.d.ts +16 -0
- package/dist/src/present/control-visibility/index.d.ts.map +1 -0
- package/dist/src/present/control-visibility/index.js +15 -0
- package/dist/src/present/control-visibility/index.js.map +1 -0
- package/dist/src/present/format.d.ts +57 -0
- package/dist/src/present/format.d.ts.map +1 -0
- package/dist/src/present/format.js +150 -0
- package/dist/src/present/format.js.map +1 -0
- package/dist/src/present/present-coordinator.d.ts +153 -0
- package/dist/src/present/present-coordinator.d.ts.map +1 -0
- package/dist/src/present/present-coordinator.js +213 -0
- package/dist/src/present/present-coordinator.js.map +1 -0
- package/dist/src/present/reminders/index.d.ts +22 -0
- package/dist/src/present/reminders/index.d.ts.map +1 -0
- package/dist/src/present/reminders/index.js +22 -0
- package/dist/src/present/reminders/index.js.map +1 -0
- package/dist/src/present/reminders/reminder-presenter.d.ts +76 -0
- package/dist/src/present/reminders/reminder-presenter.d.ts.map +1 -0
- package/dist/src/present/reminders/reminder-presenter.js +359 -0
- package/dist/src/present/reminders/reminder-presenter.js.map +1 -0
- package/dist/src/present/reminders/reminder-renderer.d.ts +82 -0
- package/dist/src/present/reminders/reminder-renderer.d.ts.map +1 -0
- package/dist/src/present/reminders/reminder-renderer.js +136 -0
- package/dist/src/present/reminders/reminder-renderer.js.map +1 -0
- package/dist/src/present/reminders/reminder-types.d.ts +131 -0
- package/dist/src/present/reminders/reminder-types.d.ts.map +1 -0
- package/dist/src/present/reminders/reminder-types.js +29 -0
- package/dist/src/present/reminders/reminder-types.js.map +1 -0
- package/dist/src/present/types.d.ts +114 -0
- package/dist/src/present/types.d.ts.map +1 -0
- package/dist/src/present/types.js +18 -0
- package/dist/src/present/types.js.map +1 -0
- package/dist/src/product/claude-product-session.d.ts +146 -0
- package/dist/src/product/claude-product-session.d.ts.map +1 -0
- package/dist/src/product/claude-product-session.js +362 -0
- package/dist/src/product/claude-product-session.js.map +1 -0
- package/dist/src/product/cursor-product-session.d.ts +211 -0
- package/dist/src/product/cursor-product-session.d.ts.map +1 -0
- package/dist/src/product/cursor-product-session.js +390 -0
- package/dist/src/product/cursor-product-session.js.map +1 -0
- package/dist/src/product/index.d.ts +28 -0
- package/dist/src/product/index.d.ts.map +1 -0
- package/dist/src/product/index.js +22 -0
- package/dist/src/product/index.js.map +1 -0
- package/dist/src/product/session-resilience/index.d.ts +17 -0
- package/dist/src/product/session-resilience/index.d.ts.map +1 -0
- package/dist/src/product/session-resilience/index.js +15 -0
- package/dist/src/product/session-resilience/index.js.map +1 -0
- package/dist/src/product/session-resilience/session-serializer.d.ts +43 -0
- package/dist/src/product/session-resilience/session-serializer.d.ts.map +1 -0
- package/dist/src/product/session-resilience/session-serializer.js +84 -0
- package/dist/src/product/session-resilience/session-serializer.js.map +1 -0
- package/dist/src/product/session-resilience/session-snapshot-types.d.ts +35 -0
- package/dist/src/product/session-resilience/session-snapshot-types.d.ts.map +1 -0
- package/dist/src/product/session-resilience/session-snapshot-types.js +21 -0
- package/dist/src/product/session-resilience/session-snapshot-types.js.map +1 -0
- package/dist/src/product/session-resilience/session-staleness.d.ts +54 -0
- package/dist/src/product/session-resilience/session-staleness.d.ts.map +1 -0
- package/dist/src/product/session-resilience/session-staleness.js +62 -0
- package/dist/src/product/session-resilience/session-staleness.js.map +1 -0
- package/dist/src/product/session-resilience/session-summary.d.ts +40 -0
- package/dist/src/product/session-resilience/session-summary.d.ts.map +1 -0
- package/dist/src/product/session-resilience/session-summary.js +72 -0
- package/dist/src/product/session-resilience/session-summary.js.map +1 -0
- package/dist/src/prv/patterns.d.ts +32 -0
- package/dist/src/prv/patterns.d.ts.map +1 -0
- package/dist/src/prv/patterns.js +40 -0
- package/dist/src/prv/patterns.js.map +1 -0
- package/dist/src/prv/prv.d.ts +13 -0
- package/dist/src/prv/prv.d.ts.map +1 -0
- package/dist/src/prv/prv.js +22 -0
- package/dist/src/prv/prv.js.map +1 -0
- package/dist/src/prv/types.d.ts +26 -0
- package/dist/src/prv/types.d.ts.map +1 -0
- package/dist/src/prv/types.js +15 -0
- package/dist/src/prv/types.js.map +1 -0
- package/dist/src/safety/detectors/arbitrary-exec.detector.d.ts +3 -0
- package/dist/src/safety/detectors/arbitrary-exec.detector.d.ts.map +1 -0
- package/dist/src/safety/detectors/arbitrary-exec.detector.js +31 -0
- package/dist/src/safety/detectors/arbitrary-exec.detector.js.map +1 -0
- package/dist/src/safety/detectors/bulk-data-exfil.detector.d.ts +21 -0
- package/dist/src/safety/detectors/bulk-data-exfil.detector.d.ts.map +1 -0
- package/dist/src/safety/detectors/bulk-data-exfil.detector.js +90 -0
- package/dist/src/safety/detectors/bulk-data-exfil.detector.js.map +1 -0
- package/dist/src/safety/detectors/destructive.detector.d.ts +3 -0
- package/dist/src/safety/detectors/destructive.detector.d.ts.map +1 -0
- package/dist/src/safety/detectors/destructive.detector.js +28 -0
- package/dist/src/safety/detectors/destructive.detector.js.map +1 -0
- package/dist/src/safety/detectors/evasion.detector.d.ts +3 -0
- package/dist/src/safety/detectors/evasion.detector.d.ts.map +1 -0
- package/dist/src/safety/detectors/evasion.detector.js +28 -0
- package/dist/src/safety/detectors/evasion.detector.js.map +1 -0
- package/dist/src/safety/detectors/secret-access.detector.d.ts +31 -0
- package/dist/src/safety/detectors/secret-access.detector.d.ts.map +1 -0
- package/dist/src/safety/detectors/secret-access.detector.js +78 -0
- package/dist/src/safety/detectors/secret-access.detector.js.map +1 -0
- package/dist/src/safety/registry.d.ts +9 -0
- package/dist/src/safety/registry.d.ts.map +1 -0
- package/dist/src/safety/registry.js +22 -0
- package/dist/src/safety/registry.js.map +1 -0
- package/dist/src/safety/safety-gate.d.ts +16 -0
- package/dist/src/safety/safety-gate.d.ts.map +1 -0
- package/dist/src/safety/safety-gate.js +26 -0
- package/dist/src/safety/safety-gate.js.map +1 -0
- package/dist/src/safety/types.d.ts +35 -0
- package/dist/src/safety/types.d.ts.map +1 -0
- package/dist/src/safety/types.js +14 -0
- package/dist/src/safety/types.js.map +1 -0
- package/dist/src/shell/claude-shell.d.ts +63 -0
- package/dist/src/shell/claude-shell.d.ts.map +1 -0
- package/dist/src/shell/claude-shell.js +81 -0
- package/dist/src/shell/claude-shell.js.map +1 -0
- package/dist/src/shell/cli/friction-admin.d.ts +14 -0
- package/dist/src/shell/cli/friction-admin.d.ts.map +1 -0
- package/dist/src/shell/cli/friction-admin.js +276 -0
- package/dist/src/shell/cli/friction-admin.js.map +1 -0
- package/dist/src/shell/cli/friction-report.d.ts +16 -0
- package/dist/src/shell/cli/friction-report.d.ts.map +1 -0
- package/dist/src/shell/cli/friction-report.js +156 -0
- package/dist/src/shell/cli/friction-report.js.map +1 -0
- package/dist/src/shell/cli/main.d.ts +68 -0
- package/dist/src/shell/cli/main.d.ts.map +1 -0
- package/dist/src/shell/cli/main.js +488 -0
- package/dist/src/shell/cli/main.js.map +1 -0
- package/dist/src/shell/cli/use-steady.d.ts +26 -0
- package/dist/src/shell/cli/use-steady.d.ts.map +1 -0
- package/dist/src/shell/cli/use-steady.js +117 -0
- package/dist/src/shell/cli/use-steady.js.map +1 -0
- package/dist/src/shell/cursor-shell.d.ts +63 -0
- package/dist/src/shell/cursor-shell.d.ts.map +1 -0
- package/dist/src/shell/cursor-shell.js +88 -0
- package/dist/src/shell/cursor-shell.js.map +1 -0
- package/dist/src/shell/defaults.d.ts +51 -0
- package/dist/src/shell/defaults.d.ts.map +1 -0
- package/dist/src/shell/defaults.js +78 -0
- package/dist/src/shell/defaults.js.map +1 -0
- package/dist/src/shell/history-render.d.ts +56 -0
- package/dist/src/shell/history-render.d.ts.map +1 -0
- package/dist/src/shell/history-render.js +166 -0
- package/dist/src/shell/history-render.js.map +1 -0
- package/dist/src/shell/index.d.ts +43 -0
- package/dist/src/shell/index.d.ts.map +1 -0
- package/dist/src/shell/index.js +45 -0
- package/dist/src/shell/index.js.map +1 -0
- package/dist/src/shell/render.d.ts +42 -0
- package/dist/src/shell/render.d.ts.map +1 -0
- package/dist/src/shell/render.js +122 -0
- package/dist/src/shell/render.js.map +1 -0
- package/dist/src/shell/types.d.ts +46 -0
- package/dist/src/shell/types.d.ts.map +1 -0
- package/dist/src/shell/types.js +19 -0
- package/dist/src/shell/types.js.map +1 -0
- package/dist/src/shell/workflow-defaults.d.ts +23 -0
- package/dist/src/shell/workflow-defaults.d.ts.map +1 -0
- package/dist/src/shell/workflow-defaults.js +27 -0
- package/dist/src/shell/workflow-defaults.js.map +1 -0
- package/dist/src/shell/workflow-render.d.ts +54 -0
- package/dist/src/shell/workflow-render.d.ts.map +1 -0
- package/dist/src/shell/workflow-render.js +319 -0
- package/dist/src/shell/workflow-render.js.map +1 -0
- package/dist/src/shell/workflow-shell.d.ts +110 -0
- package/dist/src/shell/workflow-shell.d.ts.map +1 -0
- package/dist/src/shell/workflow-shell.js +180 -0
- package/dist/src/shell/workflow-shell.js.map +1 -0
- package/dist/src/skills/audit.d.ts +118 -0
- package/dist/src/skills/audit.d.ts.map +1 -0
- package/dist/src/skills/audit.js +147 -0
- package/dist/src/skills/audit.js.map +1 -0
- package/dist/src/skills/invocation.d.ts +131 -0
- package/dist/src/skills/invocation.d.ts.map +1 -0
- package/dist/src/skills/invocation.js +165 -0
- package/dist/src/skills/invocation.js.map +1 -0
- package/dist/src/skills/loader.d.ts +70 -0
- package/dist/src/skills/loader.d.ts.map +1 -0
- package/dist/src/skills/loader.js +220 -0
- package/dist/src/skills/loader.js.map +1 -0
- package/dist/src/skills/local-recovery-adapter.d.ts +49 -0
- package/dist/src/skills/local-recovery-adapter.d.ts.map +1 -0
- package/dist/src/skills/local-recovery-adapter.js +184 -0
- package/dist/src/skills/local-recovery-adapter.js.map +1 -0
- package/dist/src/skills/parser.d.ts +53 -0
- package/dist/src/skills/parser.d.ts.map +1 -0
- package/dist/src/skills/parser.js +336 -0
- package/dist/src/skills/parser.js.map +1 -0
- package/dist/src/skills/registry.d.ts +123 -0
- package/dist/src/skills/registry.d.ts.map +1 -0
- package/dist/src/skills/registry.js +144 -0
- package/dist/src/skills/registry.js.map +1 -0
- package/dist/src/skills/types.d.ts +242 -0
- package/dist/src/skills/types.d.ts.map +1 -0
- package/dist/src/skills/types.js +50 -0
- package/dist/src/skills/types.js.map +1 -0
- package/dist/src/skills/validator.d.ts +31 -0
- package/dist/src/skills/validator.d.ts.map +1 -0
- package/dist/src/skills/validator.js +366 -0
- package/dist/src/skills/validator.js.map +1 -0
- package/dist/src/ucp/envelope.d.ts +165 -0
- package/dist/src/ucp/envelope.d.ts.map +1 -0
- package/dist/src/ucp/envelope.js +241 -0
- package/dist/src/ucp/envelope.js.map +1 -0
- package/dist/src/ucp/hashes.d.ts +36 -0
- package/dist/src/ucp/hashes.d.ts.map +1 -0
- package/dist/src/ucp/hashes.js +59 -0
- package/dist/src/ucp/hashes.js.map +1 -0
- package/dist/src/ucp/mappers/map-artifact.d.ts +58 -0
- package/dist/src/ucp/mappers/map-artifact.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-artifact.js +51 -0
- package/dist/src/ucp/mappers/map-artifact.js.map +1 -0
- package/dist/src/ucp/mappers/map-change-interpretation.d.ts +12 -0
- package/dist/src/ucp/mappers/map-change-interpretation.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-change-interpretation.js +18 -0
- package/dist/src/ucp/mappers/map-change-interpretation.js.map +1 -0
- package/dist/src/ucp/mappers/map-completion.d.ts +10 -0
- package/dist/src/ucp/mappers/map-completion.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-completion.js +24 -0
- package/dist/src/ucp/mappers/map-completion.js.map +1 -0
- package/dist/src/ucp/mappers/map-context.d.ts +9 -0
- package/dist/src/ucp/mappers/map-context.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-context.js +13 -0
- package/dist/src/ucp/mappers/map-context.js.map +1 -0
- package/dist/src/ucp/mappers/map-debug-trace.d.ts +10 -0
- package/dist/src/ucp/mappers/map-debug-trace.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-debug-trace.js +18 -0
- package/dist/src/ucp/mappers/map-debug-trace.js.map +1 -0
- package/dist/src/ucp/mappers/map-disambiguation.d.ts +10 -0
- package/dist/src/ucp/mappers/map-disambiguation.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-disambiguation.js +21 -0
- package/dist/src/ucp/mappers/map-disambiguation.js.map +1 -0
- package/dist/src/ucp/mappers/map-execution-trace.d.ts +64 -0
- package/dist/src/ucp/mappers/map-execution-trace.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-execution-trace.js +57 -0
- package/dist/src/ucp/mappers/map-execution-trace.js.map +1 -0
- package/dist/src/ucp/mappers/map-intent-interpretation.d.ts +11 -0
- package/dist/src/ucp/mappers/map-intent-interpretation.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-intent-interpretation.js +17 -0
- package/dist/src/ucp/mappers/map-intent-interpretation.js.map +1 -0
- package/dist/src/ucp/mappers/map-intent.d.ts +9 -0
- package/dist/src/ucp/mappers/map-intent.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-intent.js +11 -0
- package/dist/src/ucp/mappers/map-intent.js.map +1 -0
- package/dist/src/ucp/mappers/map-prv.d.ts +10 -0
- package/dist/src/ucp/mappers/map-prv.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-prv.js +14 -0
- package/dist/src/ucp/mappers/map-prv.js.map +1 -0
- package/dist/src/ucp/mappers/map-reminder-execution.d.ts +57 -0
- package/dist/src/ucp/mappers/map-reminder-execution.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-reminder-execution.js +69 -0
- package/dist/src/ucp/mappers/map-reminder-execution.js.map +1 -0
- package/dist/src/ucp/mappers/map-replay-report.d.ts +81 -0
- package/dist/src/ucp/mappers/map-replay-report.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-replay-report.js +76 -0
- package/dist/src/ucp/mappers/map-replay-report.js.map +1 -0
- package/dist/src/ucp/mappers/map-response.d.ts +13 -0
- package/dist/src/ucp/mappers/map-response.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-response.js +25 -0
- package/dist/src/ucp/mappers/map-response.js.map +1 -0
- package/dist/src/ucp/mappers/map-safety.d.ts +14 -0
- package/dist/src/ucp/mappers/map-safety.d.ts.map +1 -0
- package/dist/src/ucp/mappers/map-safety.js +22 -0
- package/dist/src/ucp/mappers/map-safety.js.map +1 -0
- package/dist/src/ucp/persistence/index.d.ts +24 -0
- package/dist/src/ucp/persistence/index.d.ts.map +1 -0
- package/dist/src/ucp/persistence/index.js +22 -0
- package/dist/src/ucp/persistence/index.js.map +1 -0
- package/dist/src/ucp/persistence/query.d.ts +164 -0
- package/dist/src/ucp/persistence/query.d.ts.map +1 -0
- package/dist/src/ucp/persistence/query.js +240 -0
- package/dist/src/ucp/persistence/query.js.map +1 -0
- package/dist/src/ucp/persistence/reader.d.ts +43 -0
- package/dist/src/ucp/persistence/reader.d.ts.map +1 -0
- package/dist/src/ucp/persistence/reader.js +104 -0
- package/dist/src/ucp/persistence/reader.js.map +1 -0
- package/dist/src/ucp/persistence/store.d.ts +77 -0
- package/dist/src/ucp/persistence/store.d.ts.map +1 -0
- package/dist/src/ucp/persistence/store.js +177 -0
- package/dist/src/ucp/persistence/store.js.map +1 -0
- package/dist/src/ucp/persistence/write.d.ts +48 -0
- package/dist/src/ucp/persistence/write.d.ts.map +1 -0
- package/dist/src/ucp/persistence/write.js +59 -0
- package/dist/src/ucp/persistence/write.js.map +1 -0
- package/dist/src/ucp/projection.d.ts +146 -0
- package/dist/src/ucp/projection.d.ts.map +1 -0
- package/dist/src/ucp/projection.js +139 -0
- package/dist/src/ucp/projection.js.map +1 -0
- package/dist/src/ucp/types.d.ts +585 -0
- package/dist/src/ucp/types.d.ts.map +1 -0
- package/dist/src/ucp/types.js +57 -0
- package/dist/src/ucp/types.js.map +1 -0
- package/dist/src/understand/completion/completion.d.ts +26 -0
- package/dist/src/understand/completion/completion.d.ts.map +1 -0
- package/dist/src/understand/completion/completion.js +45 -0
- package/dist/src/understand/completion/completion.js.map +1 -0
- package/dist/src/understand/completion/rules.d.ts +61 -0
- package/dist/src/understand/completion/rules.d.ts.map +1 -0
- package/dist/src/understand/completion/rules.js +268 -0
- package/dist/src/understand/completion/rules.js.map +1 -0
- package/dist/src/understand/completion/types.d.ts +68 -0
- package/dist/src/understand/completion/types.d.ts.map +1 -0
- package/dist/src/understand/completion/types.js +34 -0
- package/dist/src/understand/completion/types.js.map +1 -0
- package/dist/src/understand/context/context-alignment.d.ts +18 -0
- package/dist/src/understand/context/context-alignment.d.ts.map +1 -0
- package/dist/src/understand/context/context-alignment.js +61 -0
- package/dist/src/understand/context/context-alignment.js.map +1 -0
- package/dist/src/understand/context/types.d.ts +20 -0
- package/dist/src/understand/context/types.d.ts.map +1 -0
- package/dist/src/understand/context/types.js +13 -0
- package/dist/src/understand/context/types.js.map +1 -0
- package/dist/src/understand/disambiguation/detectors/missing-context.detector.d.ts +12 -0
- package/dist/src/understand/disambiguation/detectors/missing-context.detector.d.ts.map +1 -0
- package/dist/src/understand/disambiguation/detectors/missing-context.detector.js +60 -0
- package/dist/src/understand/disambiguation/detectors/missing-context.detector.js.map +1 -0
- package/dist/src/understand/disambiguation/detectors/overloaded-term.detector.d.ts +13 -0
- package/dist/src/understand/disambiguation/detectors/overloaded-term.detector.d.ts.map +1 -0
- package/dist/src/understand/disambiguation/detectors/overloaded-term.detector.js +57 -0
- package/dist/src/understand/disambiguation/detectors/overloaded-term.detector.js.map +1 -0
- package/dist/src/understand/disambiguation/detectors/typo-adjacent.detector.d.ts +16 -0
- package/dist/src/understand/disambiguation/detectors/typo-adjacent.detector.d.ts.map +1 -0
- package/dist/src/understand/disambiguation/detectors/typo-adjacent.detector.js +56 -0
- package/dist/src/understand/disambiguation/detectors/typo-adjacent.detector.js.map +1 -0
- package/dist/src/understand/disambiguation/registry.d.ts +14 -0
- package/dist/src/understand/disambiguation/registry.d.ts.map +1 -0
- package/dist/src/understand/disambiguation/registry.js +27 -0
- package/dist/src/understand/disambiguation/registry.js.map +1 -0
- package/dist/src/understand/disambiguation/types.d.ts +34 -0
- package/dist/src/understand/disambiguation/types.d.ts.map +1 -0
- package/dist/src/understand/disambiguation/types.js +15 -0
- package/dist/src/understand/disambiguation/types.js.map +1 -0
- package/dist/src/understand/intent-interpretation/intent-interpretation.d.ts +86 -0
- package/dist/src/understand/intent-interpretation/intent-interpretation.d.ts.map +1 -0
- package/dist/src/understand/intent-interpretation/intent-interpretation.js +141 -0
- package/dist/src/understand/intent-interpretation/intent-interpretation.js.map +1 -0
- package/dist/src/understand/intent-interpretation/interpreters/color-intent.interpreter.d.ts +33 -0
- package/dist/src/understand/intent-interpretation/interpreters/color-intent.interpreter.d.ts.map +1 -0
- package/dist/src/understand/intent-interpretation/interpreters/color-intent.interpreter.js +66 -0
- package/dist/src/understand/intent-interpretation/interpreters/color-intent.interpreter.js.map +1 -0
- package/dist/src/understand/intent-interpretation/interpreters/config-intent.interpreter.d.ts +20 -0
- package/dist/src/understand/intent-interpretation/interpreters/config-intent.interpreter.d.ts.map +1 -0
- package/dist/src/understand/intent-interpretation/interpreters/config-intent.interpreter.js +80 -0
- package/dist/src/understand/intent-interpretation/interpreters/config-intent.interpreter.js.map +1 -0
- package/dist/src/understand/intent-interpretation/interpreters/text-intent.interpreter.d.ts +25 -0
- package/dist/src/understand/intent-interpretation/interpreters/text-intent.interpreter.d.ts.map +1 -0
- package/dist/src/understand/intent-interpretation/interpreters/text-intent.interpreter.js +47 -0
- package/dist/src/understand/intent-interpretation/interpreters/text-intent.interpreter.js.map +1 -0
- package/dist/src/understand/intent-interpretation/interpreters/workflow-intent.interpreter.d.ts +35 -0
- package/dist/src/understand/intent-interpretation/interpreters/workflow-intent.interpreter.d.ts.map +1 -0
- package/dist/src/understand/intent-interpretation/interpreters/workflow-intent.interpreter.js +89 -0
- package/dist/src/understand/intent-interpretation/interpreters/workflow-intent.interpreter.js.map +1 -0
- package/dist/src/understand/intent-interpretation/registry.d.ts +18 -0
- package/dist/src/understand/intent-interpretation/registry.d.ts.map +1 -0
- package/dist/src/understand/intent-interpretation/registry.js +26 -0
- package/dist/src/understand/intent-interpretation/registry.js.map +1 -0
- package/dist/src/understand/intent-interpretation/types.d.ts +83 -0
- package/dist/src/understand/intent-interpretation/types.d.ts.map +1 -0
- package/dist/src/understand/intent-interpretation/types.js +40 -0
- package/dist/src/understand/intent-interpretation/types.js.map +1 -0
- package/dist/src/understand/interpretation/intent.d.ts +72 -0
- package/dist/src/understand/interpretation/intent.d.ts.map +1 -0
- package/dist/src/understand/interpretation/intent.js +414 -0
- package/dist/src/understand/interpretation/intent.js.map +1 -0
- package/dist/src/understand/interpretation/interpretation.d.ts +26 -0
- package/dist/src/understand/interpretation/interpretation.d.ts.map +1 -0
- package/dist/src/understand/interpretation/interpretation.js +43 -0
- package/dist/src/understand/interpretation/interpretation.js.map +1 -0
- package/dist/src/understand/interpretation/parser.d.ts +20 -0
- package/dist/src/understand/interpretation/parser.d.ts.map +1 -0
- package/dist/src/understand/interpretation/parser.js +88 -0
- package/dist/src/understand/interpretation/parser.js.map +1 -0
- package/dist/src/understand/interpretation/rules.d.ts +19 -0
- package/dist/src/understand/interpretation/rules.d.ts.map +1 -0
- package/dist/src/understand/interpretation/rules.js +222 -0
- package/dist/src/understand/interpretation/rules.js.map +1 -0
- package/dist/src/understand/interpretation/types.d.ts +90 -0
- package/dist/src/understand/interpretation/types.d.ts.map +1 -0
- package/dist/src/understand/interpretation/types.js +29 -0
- package/dist/src/understand/interpretation/types.js.map +1 -0
- package/dist/src/understand/shared/types.d.ts +13 -0
- package/dist/src/understand/shared/types.d.ts.map +1 -0
- package/dist/src/understand/shared/types.js +9 -0
- package/dist/src/understand/shared/types.js.map +1 -0
- package/dist/src/understand/silent-guidance/index.d.ts +4 -0
- package/dist/src/understand/silent-guidance/index.d.ts.map +1 -0
- package/dist/src/understand/silent-guidance/index.js +3 -0
- package/dist/src/understand/silent-guidance/index.js.map +1 -0
- package/dist/src/understand/silent-guidance/selector.d.ts +44 -0
- package/dist/src/understand/silent-guidance/selector.d.ts.map +1 -0
- package/dist/src/understand/silent-guidance/selector.js +158 -0
- package/dist/src/understand/silent-guidance/selector.js.map +1 -0
- package/dist/src/understand/silent-guidance/templates.d.ts +31 -0
- package/dist/src/understand/silent-guidance/templates.d.ts.map +1 -0
- package/dist/src/understand/silent-guidance/templates.js +109 -0
- package/dist/src/understand/silent-guidance/templates.js.map +1 -0
- package/dist/src/understand/silent-guidance/types.d.ts +36 -0
- package/dist/src/understand/silent-guidance/types.d.ts.map +1 -0
- package/dist/src/understand/silent-guidance/types.js +2 -0
- package/dist/src/understand/silent-guidance/types.js.map +1 -0
- package/dist/src/workflow/coordinator.d.ts +197 -0
- package/dist/src/workflow/coordinator.d.ts.map +1 -0
- package/dist/src/workflow/coordinator.js +682 -0
- package/dist/src/workflow/coordinator.js.map +1 -0
- package/dist/src/workflow/index.d.ts +30 -0
- package/dist/src/workflow/index.d.ts.map +1 -0
- package/dist/src/workflow/index.js +30 -0
- package/dist/src/workflow/index.js.map +1 -0
- package/dist/src/workflow/types.d.ts +213 -0
- package/dist/src/workflow/types.d.ts.map +1 -0
- package/dist/src/workflow/types.js +27 -0
- package/dist/src/workflow/types.js.map +1 -0
- package/package.json +54 -0
- package/ui/README.md +73 -0
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Delivery Gate — Phase 8B.
|
|
3
|
+
*
|
|
4
|
+
* ── Role ──────────────────────────────────────────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* The delivery gate is the ONLY path through which a ClaudeAgentHandoffArtifact
|
|
7
|
+
* reaches Claude Managed Agents. It enforces these invariants before any delivery:
|
|
8
|
+
*
|
|
9
|
+
* 1. Eligibility: artifact.eligibility === "approved_for_agent"
|
|
10
|
+
* 2. Tool policy: toolPolicy.networkAccess === "deny" (V1 lock, A2)
|
|
11
|
+
* 3. Tool policy: toolPolicy.filesystemMode === "scoped_only"
|
|
12
|
+
* 4. Tool policy: allowedTools is non-empty
|
|
13
|
+
* 5. Persistence: ucp.claude_handoff.v1 persisted before Claude is called
|
|
14
|
+
* 6. Immutability: artifact delivered === artifact persisted (same id)
|
|
15
|
+
*
|
|
16
|
+
* After delivery, it persists either ucp.claude_receipt.v1 (accepted) or
|
|
17
|
+
* ucp.claude_refused.v1 (refused) based on Claude's response.
|
|
18
|
+
*
|
|
19
|
+
* ── Three delivery paths ──────────────────────────────────────────────────────
|
|
20
|
+
*
|
|
21
|
+
* Path A (happy): persist handoff → call Claude → accepted → persist receipt
|
|
22
|
+
* Path B (scope): persist handoff → call Claude → refused_due_to_scope
|
|
23
|
+
* → persist refused → surface scope question
|
|
24
|
+
* Path C (error): persist handoff → call Claude → refused_due_to_execution_error
|
|
25
|
+
* → persist refused → rejected
|
|
26
|
+
*
|
|
27
|
+
* Unknown response kinds → treated as refused_due_to_execution_error (fail-closed).
|
|
28
|
+
*
|
|
29
|
+
* ── Plugin contract ───────────────────────────────────────────────────────────
|
|
30
|
+
*
|
|
31
|
+
* ClaudeAgentPlugin.receive() is the only call the gate makes into Claude.
|
|
32
|
+
* The plugin must:
|
|
33
|
+
* - Accept only ClaudeDeliveryRequest
|
|
34
|
+
* - Return only ClaudeDeliveryResponse (one of three kinds)
|
|
35
|
+
* - NOT reach back into the intake pipeline (A4)
|
|
36
|
+
* - NOT call persistEnvelope (the gate owns all persistence)
|
|
37
|
+
*
|
|
38
|
+
* ── Persistence semantics ─────────────────────────────────────────────────────
|
|
39
|
+
*
|
|
40
|
+
* ucp.claude_handoff.v1 — safety-critical (persistStrict): blocks delivery if fails
|
|
41
|
+
* ucp.claude_receipt.v1 — audit-critical (persistBestEffort): logs gap if fails
|
|
42
|
+
* ucp.claude_refused.v1 — audit-critical (persistBestEffort): logs gap if fails
|
|
43
|
+
*
|
|
44
|
+
* ── deliveryId semantics ──────────────────────────────────────────────────────
|
|
45
|
+
*
|
|
46
|
+
* deliveryId is a delivery-attempt identifier, NOT a content identifier.
|
|
47
|
+
* Never use it for provenance chain links — use artifact.artifactId for those.
|
|
48
|
+
*
|
|
49
|
+
* See: docs/claude-agent-phase-a-architecture.md
|
|
50
|
+
*/
|
|
51
|
+
import { hashObject } from "../ucp/hashes.js";
|
|
52
|
+
import { persistEnvelope, persistEnvelopeOrThrow } from "../ucp/persistence/write.js";
|
|
53
|
+
import { createClaudeHandoffEnvelope, createClaudeReceiptEnvelope, createClaudeRefusedEnvelope, } from "../ucp/envelope.js";
|
|
54
|
+
// ─── Delivery gate ────────────────────────────────────────────────────────────
|
|
55
|
+
export class ClaudeDeliveryGate {
|
|
56
|
+
plugin;
|
|
57
|
+
storeDir;
|
|
58
|
+
persistStrict;
|
|
59
|
+
persistBestEffort;
|
|
60
|
+
constructor(plugin, storeDir, deps = {}) {
|
|
61
|
+
this.plugin = plugin;
|
|
62
|
+
this.storeDir = storeDir;
|
|
63
|
+
this.persistStrict = deps.persistStrict
|
|
64
|
+
?? ((e) => persistEnvelopeOrThrow(storeDir, e));
|
|
65
|
+
this.persistBestEffort = deps.persistBestEffort
|
|
66
|
+
?? ((e) => persistEnvelope(storeDir, e));
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Deliver a ClaudeAgentHandoffArtifact to Claude Managed Agents.
|
|
70
|
+
*
|
|
71
|
+
* CONTRACT — callers must ensure:
|
|
72
|
+
* - artifact.eligibility === "approved_for_agent" (gate re-checks and blocks if not)
|
|
73
|
+
* - artifact.toolPolicy.networkAccess === "deny" (gate re-checks, A2)
|
|
74
|
+
* - artifact.approvedAt is set (H has confirmed)
|
|
75
|
+
*
|
|
76
|
+
* CONTRACT — this function guarantees:
|
|
77
|
+
* - ucp.claude_handoff.v1 persisted BEFORE Claude is called
|
|
78
|
+
* - If persistence fails, Claude is NOT called (blocked_persistence_failure)
|
|
79
|
+
* - ucp.claude_receipt.v1 persisted when Claude returns "accepted"
|
|
80
|
+
* - ucp.claude_refused.v1 persisted when Claude returns any refusal
|
|
81
|
+
* - Receipt/refusal persistence failures do not block the state transition
|
|
82
|
+
* - Unknown response kinds map to refused_due_to_execution_error (fail-closed)
|
|
83
|
+
*/
|
|
84
|
+
async deliver(artifact) {
|
|
85
|
+
// ── Eligibility check ─────────────────────────────────────────────────────
|
|
86
|
+
if (artifact.eligibility !== "approved_for_agent") {
|
|
87
|
+
return {
|
|
88
|
+
outcome: "blocked_ineligible",
|
|
89
|
+
reason: `Artifact eligibility is "${artifact.eligibility}", not "approved_for_agent".`,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
// ── Tool policy checks (A2: networkAccess must be "deny" in V1) ───────────
|
|
93
|
+
if (artifact.toolPolicy.networkAccess !== "deny") {
|
|
94
|
+
return {
|
|
95
|
+
outcome: "blocked_tool_policy",
|
|
96
|
+
reason: `toolPolicy.networkAccess is "${artifact.toolPolicy.networkAccess}". ` +
|
|
97
|
+
`Only "deny" is executable in V1. "allow_limited" is reserved and blocked.`,
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
if (artifact.toolPolicy.filesystemMode !== "scoped_only") {
|
|
101
|
+
return {
|
|
102
|
+
outcome: "blocked_tool_policy",
|
|
103
|
+
reason: `toolPolicy.filesystemMode is "${artifact.toolPolicy.filesystemMode}". ` +
|
|
104
|
+
`Only "scoped_only" is allowed.`,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
if (artifact.allowedTools.length === 0) {
|
|
108
|
+
return {
|
|
109
|
+
outcome: "blocked_tool_policy",
|
|
110
|
+
reason: "allowedTools is empty. Claude must have at least one tool to execute.",
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const sentAt = Date.now();
|
|
114
|
+
const deliveryId = computeDeliveryId(artifact.artifactId, sentAt);
|
|
115
|
+
// ── Point 1: Persist handoff BEFORE calling Claude ────────────────────────
|
|
116
|
+
const handoffEnvelope = createClaudeHandoffEnvelope({
|
|
117
|
+
intentId: artifact.intentId,
|
|
118
|
+
responseId: artifact.responseId,
|
|
119
|
+
eligibility: "approved_for_agent",
|
|
120
|
+
ocdClearance: artifact.ocdClearance,
|
|
121
|
+
executionDomain: artifact.executionDomain,
|
|
122
|
+
allowedFiles: [...artifact.allowedFiles],
|
|
123
|
+
allowedTools: [...artifact.allowedTools],
|
|
124
|
+
confirmedByHuman: true,
|
|
125
|
+
confirmedAt: artifact.approvedAt ?? sentAt,
|
|
126
|
+
}, { parentId: artifact.responseId, rootId: artifact.intentId });
|
|
127
|
+
try {
|
|
128
|
+
this.persistStrict(handoffEnvelope);
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
return {
|
|
132
|
+
outcome: "blocked_persistence_failure",
|
|
133
|
+
reason: `Failed to persist ucp.claude_handoff.v1 before delivery: ${String(err)}`,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
// ── Call Claude ───────────────────────────────────────────────────────────
|
|
137
|
+
const request = { deliveryId, sentAt, artifact };
|
|
138
|
+
let response;
|
|
139
|
+
try {
|
|
140
|
+
response = await this.plugin.receive(request);
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
// Plugin threw — treat as execution error (fail-closed)
|
|
144
|
+
response = {
|
|
145
|
+
kind: "refused_due_to_execution_error",
|
|
146
|
+
code: "plugin_threw",
|
|
147
|
+
message: String(err),
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
// ── Normalize unknown response kinds (fail-closed) ────────────────────────
|
|
151
|
+
if (response.kind !== "accepted" &&
|
|
152
|
+
response.kind !== "refused_due_to_scope" &&
|
|
153
|
+
response.kind !== "refused_due_to_execution_error") {
|
|
154
|
+
response = {
|
|
155
|
+
kind: "refused_due_to_execution_error",
|
|
156
|
+
code: "unknown_response_kind",
|
|
157
|
+
message: `Unknown Claude response kind received. Treating as execution error.`,
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
// ── Point 2a: accepted ────────────────────────────────────────────────────
|
|
161
|
+
if (response.kind === "accepted") {
|
|
162
|
+
const receiptEnvelope = createClaudeReceiptEnvelope({
|
|
163
|
+
deliveryId,
|
|
164
|
+
handoffId: handoffEnvelope.id,
|
|
165
|
+
artifactId: artifact.artifactId,
|
|
166
|
+
sessionId: response.sessionId,
|
|
167
|
+
receivedAt: sentAt,
|
|
168
|
+
}, { parentId: handoffEnvelope.id, rootId: artifact.intentId });
|
|
169
|
+
this.tryPersistBestEffort(receiptEnvelope);
|
|
170
|
+
return {
|
|
171
|
+
outcome: "accepted",
|
|
172
|
+
deliveryId,
|
|
173
|
+
handoffEnvelopeId: handoffEnvelope.id,
|
|
174
|
+
receiptEnvelopeId: receiptEnvelope.id,
|
|
175
|
+
sessionId: response.sessionId,
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
// ── Point 2b: refused_due_to_scope ────────────────────────────────────────
|
|
179
|
+
if (response.kind === "refused_due_to_scope") {
|
|
180
|
+
const refusedEnvelope = createClaudeRefusedEnvelope({
|
|
181
|
+
deliveryId,
|
|
182
|
+
handoffId: handoffEnvelope.id,
|
|
183
|
+
artifactId: artifact.artifactId,
|
|
184
|
+
receivedAt: sentAt,
|
|
185
|
+
refusalKind: "refused_due_to_scope",
|
|
186
|
+
scopeQuestionKind: response.question.questionKind,
|
|
187
|
+
scopeCandidates: [...response.question.candidates],
|
|
188
|
+
}, { parentId: handoffEnvelope.id, rootId: artifact.intentId });
|
|
189
|
+
this.tryPersistBestEffort(refusedEnvelope);
|
|
190
|
+
return {
|
|
191
|
+
outcome: "refused_due_to_scope",
|
|
192
|
+
deliveryId,
|
|
193
|
+
handoffEnvelopeId: handoffEnvelope.id,
|
|
194
|
+
refusedEnvelopeId: refusedEnvelope.id,
|
|
195
|
+
scopeQuestion: response.question,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
// ── Point 2c: refused_due_to_execution_error ──────────────────────────────
|
|
199
|
+
const execError = response;
|
|
200
|
+
const refusedEnvelope = createClaudeRefusedEnvelope({
|
|
201
|
+
deliveryId,
|
|
202
|
+
handoffId: handoffEnvelope.id,
|
|
203
|
+
artifactId: artifact.artifactId,
|
|
204
|
+
receivedAt: sentAt,
|
|
205
|
+
refusalKind: "refused_due_to_execution_error",
|
|
206
|
+
errorCode: execError.code,
|
|
207
|
+
}, { parentId: handoffEnvelope.id, rootId: artifact.intentId });
|
|
208
|
+
this.tryPersistBestEffort(refusedEnvelope);
|
|
209
|
+
return {
|
|
210
|
+
outcome: "refused_due_to_execution_error",
|
|
211
|
+
deliveryId,
|
|
212
|
+
handoffEnvelopeId: handoffEnvelope.id,
|
|
213
|
+
refusedEnvelopeId: refusedEnvelope.id,
|
|
214
|
+
errorCode: execError.code,
|
|
215
|
+
message: execError.message,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
tryPersistBestEffort(envelope) {
|
|
219
|
+
try {
|
|
220
|
+
this.persistBestEffort(envelope);
|
|
221
|
+
}
|
|
222
|
+
catch {
|
|
223
|
+
// Best-effort: do not throw, do not block
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// ─── Internal ─────────────────────────────────────────────────────────────────
|
|
228
|
+
function computeDeliveryId(artifactId, sentAt) {
|
|
229
|
+
return hashObject({ artifactId, sentAt });
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=delivery-gate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delivery-gate.js","sourceRoot":"","sources":["../../../src/claude/delivery-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Managed Agents integration — V1 public API (Phase 8C).
|
|
3
|
+
*
|
|
4
|
+
* This module exports the complete V1 seam: artifact mapper, delivery gate,
|
|
5
|
+
* stub adapter (tests), and real API adapter (production).
|
|
6
|
+
*
|
|
7
|
+
* See: docs/claude-v1-baseline.md — full invariant set (A1–A4, RA1–RA6)
|
|
8
|
+
*
|
|
9
|
+
* Reserved slots (NOT exported, not built in V1):
|
|
10
|
+
* - ucp.claude_session.v1
|
|
11
|
+
* - ucp.claude_result.v1
|
|
12
|
+
* - networkAccess: "allow_limited" semantics
|
|
13
|
+
* - session resumability
|
|
14
|
+
* - multi-session orchestration
|
|
15
|
+
*/
|
|
16
|
+
export type { ClaudeAgentHandoffArtifact, ClaudeHandoffEligibility, ClaudeExecutionDomain, ClaudeTaskSpec, ClaudeToolPolicy, ClaudeDeliveryRequest, ClaudeDeliveryResponse, ClaudeAccepted, ClaudeRefusedDueToScope, ClaudeRefusedDueToExecutionError, ClaudeScopeQuestion, } from "./types.js";
|
|
17
|
+
export { buildClaudeHandoffArtifact, approveClaudeArtifact, narrowClaudeArtifactScope, } from "./artifact-mapper.js";
|
|
18
|
+
export type { ClaudeOCDPolicy } from "./artifact-mapper.js";
|
|
19
|
+
export type { ClaudeAgentPlugin, ClaudeDeliveryGateResult, ClaudeGateDeps } from "./delivery-gate.js";
|
|
20
|
+
export { ClaudeDeliveryGate } from "./delivery-gate.js";
|
|
21
|
+
export { ClaudeStubAdapter } from "./adapters/stub-adapter.js";
|
|
22
|
+
export { ClaudeApiAdapter } from "./adapters/api-adapter.js";
|
|
23
|
+
export type { ClaudeApiAdapterConfig } from "./adapters/api-adapter.js";
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/claude/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,YAAY,EACV,0BAA0B,EAC1B,wBAAwB,EACxB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,uBAAuB,EACvB,gCAAgC,EAChC,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAG5D,YAAY,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,YAAY,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Managed Agents integration — V1 public API (Phase 8C).
|
|
3
|
+
*
|
|
4
|
+
* This module exports the complete V1 seam: artifact mapper, delivery gate,
|
|
5
|
+
* stub adapter (tests), and real API adapter (production).
|
|
6
|
+
*
|
|
7
|
+
* See: docs/claude-v1-baseline.md — full invariant set (A1–A4, RA1–RA6)
|
|
8
|
+
*
|
|
9
|
+
* Reserved slots (NOT exported, not built in V1):
|
|
10
|
+
* - ucp.claude_session.v1
|
|
11
|
+
* - ucp.claude_result.v1
|
|
12
|
+
* - networkAccess: "allow_limited" semantics
|
|
13
|
+
* - session resumability
|
|
14
|
+
* - multi-session orchestration
|
|
15
|
+
*/
|
|
16
|
+
// Artifact mapper
|
|
17
|
+
export { buildClaudeHandoffArtifact, approveClaudeArtifact, narrowClaudeArtifactScope, } from "./artifact-mapper.js";
|
|
18
|
+
export { ClaudeDeliveryGate } from "./delivery-gate.js";
|
|
19
|
+
// Stub adapter (testing + development)
|
|
20
|
+
export { ClaudeStubAdapter } from "./adapters/stub-adapter.js";
|
|
21
|
+
// Real API adapter (Phase 8C)
|
|
22
|
+
export { ClaudeApiAdapter } from "./adapters/api-adapter.js";
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/claude/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAiBH,kBAAkB;AAClB,OAAO,EACL,0BAA0B,EAC1B,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAExD,uCAAuC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,8BAA8B;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Managed Agents Integration types — Phase 8B.
|
|
3
|
+
*
|
|
4
|
+
* ── Role ──────────────────────────────────────────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* This module defines the seam between UseSteady's authority system and
|
|
7
|
+
* Claude Managed Agents. It is the type contract for:
|
|
8
|
+
*
|
|
9
|
+
* - ClaudeAgentHandoffArtifact: the approved, constrained artifact Claude receives
|
|
10
|
+
* - ClaudeDeliveryRequest: what the delivery gate sends to Claude
|
|
11
|
+
* - ClaudeDeliveryResponse: the three response kinds Claude may return
|
|
12
|
+
* - ClaudeScopeQuestion: Claude's structured scope clarification request
|
|
13
|
+
* - ClaudeToolPolicy: explicit tool + network + filesystem scope at handoff time
|
|
14
|
+
*
|
|
15
|
+
* ── Authority model ───────────────────────────────────────────────────────────
|
|
16
|
+
*
|
|
17
|
+
* Claude Managed Agents: execute only.
|
|
18
|
+
* No upstream reach-back. No re-interpretation. No intent re-classification.
|
|
19
|
+
*
|
|
20
|
+
* ── Phase A locked truths (A1–A4) ────────────────────────────────────────────
|
|
21
|
+
*
|
|
22
|
+
* A1 — executionDomain is mapper-derived, never reclassified downstream.
|
|
23
|
+
* The delivery gate may only validate presence and allowed values.
|
|
24
|
+
*
|
|
25
|
+
* A2 — networkAccess: "allow_limited" is reserved and V1-blocked.
|
|
26
|
+
* "deny" is the only executable V1 value.
|
|
27
|
+
* The delivery gate rejects any artifact using "allow_limited".
|
|
28
|
+
*
|
|
29
|
+
* A3 — Interrupted Claude sessions are non-resumable in V1.
|
|
30
|
+
* Interruption maps to refused_due_to_execution_error with
|
|
31
|
+
* code "session_interrupted". No resume path.
|
|
32
|
+
*
|
|
33
|
+
* A4 — No callback loop from Claude to Intake exists in V1.
|
|
34
|
+
* The only mid-flight feedback path is structured scope clarification
|
|
35
|
+
* via ClaudeScopeQuestion, mediated by H.
|
|
36
|
+
*
|
|
37
|
+
* ── Key invariants ────────────────────────────────────────────────────────────
|
|
38
|
+
*
|
|
39
|
+
* - ClaudeAgentHandoffArtifact never carries the original input string
|
|
40
|
+
* - eligibility === "approved_for_agent" is the only value that opens delivery
|
|
41
|
+
* - H may narrow scope only, never widen
|
|
42
|
+
* - Maximum one scope clarification per delivery attempt
|
|
43
|
+
* - toolPolicy.networkAccess must be "deny" in V1 (gate enforces)
|
|
44
|
+
* - toolPolicy.filesystemMode must be "scoped_only" (gate enforces)
|
|
45
|
+
* - Unknown response kinds are treated as refused_due_to_execution_error (fail-closed)
|
|
46
|
+
*
|
|
47
|
+
* ── Provenance chain ──────────────────────────────────────────────────────────
|
|
48
|
+
*
|
|
49
|
+
* ucp.intent.v1 → ucp.response.v1 → ucp.claude_handoff.v1
|
|
50
|
+
* → ucp.claude_receipt.v1
|
|
51
|
+
* → [ucp.claude_result.v1 — RESERVED FUTURE SLOT]
|
|
52
|
+
* → ucp.execution_trace.v1 → ucp.replay_report.v1
|
|
53
|
+
*
|
|
54
|
+
* Refusal path:
|
|
55
|
+
* ucp.claude_handoff.v1 → ucp.claude_refused.v1 (dead end or retry trigger)
|
|
56
|
+
*
|
|
57
|
+
* Reserved future slots (not built in V1):
|
|
58
|
+
* ucp.claude_session.v1 — for managed session event history
|
|
59
|
+
* ucp.claude_result.v1 — for structured agent output
|
|
60
|
+
*
|
|
61
|
+
* See: docs/claude-agent-phase-a-architecture.md
|
|
62
|
+
*/
|
|
63
|
+
/**
|
|
64
|
+
* ClaudeToolPolicy — explicit tool and runtime scope for a Claude delivery.
|
|
65
|
+
*
|
|
66
|
+
* allowedTools — closed set of tools Claude may use. Empty = no tools.
|
|
67
|
+
* networkAccess — V1: always "deny". "allow_limited" is reserved but blocked by gate.
|
|
68
|
+
* filesystemMode — always "scoped_only". No alternative in V1.
|
|
69
|
+
*
|
|
70
|
+
* The delivery gate enforces all three fields before delivery proceeds.
|
|
71
|
+
*/
|
|
72
|
+
export type ClaudeToolPolicy = {
|
|
73
|
+
readonly allowedTools: readonly string[];
|
|
74
|
+
/**
|
|
75
|
+
* V1: must be "deny". Gate rejects any artifact using "allow_limited".
|
|
76
|
+
* "allow_limited" is reserved in the type for forward compatibility.
|
|
77
|
+
* Its semantics (domain allowlist, egress-only, port restrictions) are deferred.
|
|
78
|
+
*/
|
|
79
|
+
readonly networkAccess: "deny" | "allow_limited";
|
|
80
|
+
readonly filesystemMode: "scoped_only";
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* ClaudeAgentHandoffArtifact — the approved, constrained artifact Claude receives.
|
|
84
|
+
*
|
|
85
|
+
* artifactId — UCP content-addressed identity (sha256 of content fields)
|
|
86
|
+
* mode — always "execute"; only execute flows reach Claude (A1)
|
|
87
|
+
* executionDomain — mapper-derived; gate validates presence only (A1)
|
|
88
|
+
* taskSpec — approved task description; never includes raw user input
|
|
89
|
+
* allowedFiles — H-narrowable file set; gate-enforced; empty = open within prohibitions
|
|
90
|
+
* prohibitedPatterns — OCD-constrained; gate-enforced; takes precedence over allowedFiles
|
|
91
|
+
* allowedTools — explicit tool allowlist; gate-enforced
|
|
92
|
+
* toolPolicy — tool + network + filesystem constraints
|
|
93
|
+
* ocdClearance — "clear" or "conflict_accepted"; never "conflict_detected" at delivery
|
|
94
|
+
* eligibility — must be "approved_for_agent" for delivery to proceed
|
|
95
|
+
* intentId — links back to ucp.intent.v1 for provenance
|
|
96
|
+
* responseId — links back to ucp.response.v1 for provenance
|
|
97
|
+
* approvedAt — epoch ms when H approved; set by approveArtifact()
|
|
98
|
+
*/
|
|
99
|
+
export type ClaudeAgentHandoffArtifact = {
|
|
100
|
+
readonly artifactId: string;
|
|
101
|
+
readonly mode: "execute";
|
|
102
|
+
readonly executionDomain: ClaudeExecutionDomain;
|
|
103
|
+
readonly taskSpec: ClaudeTaskSpec;
|
|
104
|
+
readonly allowedFiles: readonly string[];
|
|
105
|
+
readonly prohibitedPatterns: readonly string[];
|
|
106
|
+
readonly allowedTools: readonly string[];
|
|
107
|
+
readonly toolPolicy: ClaudeToolPolicy;
|
|
108
|
+
readonly ocdClearance: "clear" | "conflict_accepted";
|
|
109
|
+
readonly eligibility: ClaudeHandoffEligibility;
|
|
110
|
+
readonly intentId: string;
|
|
111
|
+
readonly responseId: string;
|
|
112
|
+
readonly approvedAt?: number;
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* ClaudeExecutionDomain — the class of task Claude is being asked to perform.
|
|
116
|
+
*
|
|
117
|
+
* code_edit — modify source files within allowedFiles
|
|
118
|
+
* ops_task — operational action (deploy, restart, etc.)
|
|
119
|
+
* analysis_task — read/analyze; no write authority
|
|
120
|
+
*
|
|
121
|
+
* INVARIANT (A1): this value is derived by the artifact mapper from
|
|
122
|
+
* InterpretationResult.category. It is never re-classified downstream.
|
|
123
|
+
* The delivery gate validates presence and allowed values only.
|
|
124
|
+
*/
|
|
125
|
+
export type ClaudeExecutionDomain = "code_edit" | "ops_task" | "analysis_task";
|
|
126
|
+
/**
|
|
127
|
+
* ClaudeTaskSpec — the approved task description passed to Claude.
|
|
128
|
+
*
|
|
129
|
+
* Never carries the raw user input string.
|
|
130
|
+
* parsedChange is present only when a structured edit command was parsed.
|
|
131
|
+
*/
|
|
132
|
+
export type ClaudeTaskSpec = {
|
|
133
|
+
readonly category: string;
|
|
134
|
+
readonly summary: string;
|
|
135
|
+
readonly parsedChange?: {
|
|
136
|
+
readonly filePath?: string;
|
|
137
|
+
readonly oldValue?: string;
|
|
138
|
+
readonly newValue?: string;
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
/**
|
|
142
|
+
* ClaudeHandoffEligibility — the approval state of the artifact.
|
|
143
|
+
*
|
|
144
|
+
* pending_confirmation — OCD cleared; awaiting H confirmation.
|
|
145
|
+
* approved_for_agent — H confirmed. Only value that opens the delivery gate.
|
|
146
|
+
* rejected — H rejected, timed out, or execution error occurred.
|
|
147
|
+
*/
|
|
148
|
+
export type ClaudeHandoffEligibility = "pending_confirmation" | "approved_for_agent" | "rejected";
|
|
149
|
+
/**
|
|
150
|
+
* ClaudeDeliveryRequest — what the delivery gate sends to the Claude plugin.
|
|
151
|
+
*
|
|
152
|
+
* deliveryId — delivery-attempt identifier. NOT a content identifier.
|
|
153
|
+
* Never use for provenance chain links; use artifactId for those.
|
|
154
|
+
* sentAt — epoch ms of the delivery attempt.
|
|
155
|
+
* artifact — the approved ClaudeAgentHandoffArtifact.
|
|
156
|
+
*/
|
|
157
|
+
export type ClaudeDeliveryRequest = {
|
|
158
|
+
readonly deliveryId: string;
|
|
159
|
+
readonly sentAt: number;
|
|
160
|
+
readonly artifact: ClaudeAgentHandoffArtifact;
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* ClaudeAccepted — Claude accepted and started a managed session.
|
|
164
|
+
*
|
|
165
|
+
* sessionId — the Anthropic managed agent session ID.
|
|
166
|
+
* Persisted in ucp.claude_receipt.v1 for audit.
|
|
167
|
+
* Not resumable in V1 (A3): if interrupted, maps to execution error.
|
|
168
|
+
*/
|
|
169
|
+
export type ClaudeAccepted = {
|
|
170
|
+
readonly kind: "accepted";
|
|
171
|
+
readonly sessionId: string;
|
|
172
|
+
};
|
|
173
|
+
/**
|
|
174
|
+
* ClaudeRefusedDueToScope — Claude encountered a scope ambiguity before starting.
|
|
175
|
+
*
|
|
176
|
+
* question — structured clarification request. H must answer from candidates.
|
|
177
|
+
*
|
|
178
|
+
* Rules:
|
|
179
|
+
* - One clarification round maximum per delivery.
|
|
180
|
+
* - H may choose only from question.candidates (candidate-bounded).
|
|
181
|
+
* - H may narrow only, never widen.
|
|
182
|
+
* - Second refusal ends the flow as rejected.
|
|
183
|
+
*/
|
|
184
|
+
export type ClaudeRefusedDueToScope = {
|
|
185
|
+
readonly kind: "refused_due_to_scope";
|
|
186
|
+
readonly question: ClaudeScopeQuestion;
|
|
187
|
+
};
|
|
188
|
+
/**
|
|
189
|
+
* ClaudeRefusedDueToExecutionError — Claude refused due to a runtime error.
|
|
190
|
+
*
|
|
191
|
+
* code — machine-readable error code (e.g. "session_interrupted", "tool_denied")
|
|
192
|
+
* message — human-readable description
|
|
193
|
+
*
|
|
194
|
+
* Special code: "session_interrupted" maps to A3 (non-resumable session).
|
|
195
|
+
*/
|
|
196
|
+
export type ClaudeRefusedDueToExecutionError = {
|
|
197
|
+
readonly kind: "refused_due_to_execution_error";
|
|
198
|
+
readonly code: string;
|
|
199
|
+
readonly message: string;
|
|
200
|
+
};
|
|
201
|
+
/**
|
|
202
|
+
* ClaudeDeliveryResponse — the closed set of responses Claude may return.
|
|
203
|
+
*
|
|
204
|
+
* INVARIANT: unknown response kinds must be treated as refused_due_to_execution_error
|
|
205
|
+
* by the delivery gate (fail-closed). This is identical to the Cursor seam rule.
|
|
206
|
+
*/
|
|
207
|
+
export type ClaudeDeliveryResponse = ClaudeAccepted | ClaudeRefusedDueToScope | ClaudeRefusedDueToExecutionError;
|
|
208
|
+
/**
|
|
209
|
+
* ClaudeScopeQuestion — structured clarification request from Claude.
|
|
210
|
+
*
|
|
211
|
+
* questionKind — semantic kind of the ambiguity Claude encountered
|
|
212
|
+
* candidates — the complete set of valid choices (H must pick from these only)
|
|
213
|
+
* explanation — human-readable description of what Claude needs
|
|
214
|
+
*
|
|
215
|
+
* Claude may NOT generate a scope question that expands file or tool scope
|
|
216
|
+
* beyond what was in the approved artifact.
|
|
217
|
+
*/
|
|
218
|
+
export type ClaudeScopeQuestion = {
|
|
219
|
+
readonly questionKind: "need_file_path" | "need_scope_selection" | "need_tool_permission" | "ambiguous_old_value";
|
|
220
|
+
readonly candidates: readonly string[];
|
|
221
|
+
readonly explanation: string;
|
|
222
|
+
};
|
|
223
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/claude/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Managed Agents Integration types — Phase 8B.
|
|
3
|
+
*
|
|
4
|
+
* ── Role ──────────────────────────────────────────────────────────────────────
|
|
5
|
+
*
|
|
6
|
+
* This module defines the seam between UseSteady's authority system and
|
|
7
|
+
* Claude Managed Agents. It is the type contract for:
|
|
8
|
+
*
|
|
9
|
+
* - ClaudeAgentHandoffArtifact: the approved, constrained artifact Claude receives
|
|
10
|
+
* - ClaudeDeliveryRequest: what the delivery gate sends to Claude
|
|
11
|
+
* - ClaudeDeliveryResponse: the three response kinds Claude may return
|
|
12
|
+
* - ClaudeScopeQuestion: Claude's structured scope clarification request
|
|
13
|
+
* - ClaudeToolPolicy: explicit tool + network + filesystem scope at handoff time
|
|
14
|
+
*
|
|
15
|
+
* ── Authority model ───────────────────────────────────────────────────────────
|
|
16
|
+
*
|
|
17
|
+
* Claude Managed Agents: execute only.
|
|
18
|
+
* No upstream reach-back. No re-interpretation. No intent re-classification.
|
|
19
|
+
*
|
|
20
|
+
* ── Phase A locked truths (A1–A4) ────────────────────────────────────────────
|
|
21
|
+
*
|
|
22
|
+
* A1 — executionDomain is mapper-derived, never reclassified downstream.
|
|
23
|
+
* The delivery gate may only validate presence and allowed values.
|
|
24
|
+
*
|
|
25
|
+
* A2 — networkAccess: "allow_limited" is reserved and V1-blocked.
|
|
26
|
+
* "deny" is the only executable V1 value.
|
|
27
|
+
* The delivery gate rejects any artifact using "allow_limited".
|
|
28
|
+
*
|
|
29
|
+
* A3 — Interrupted Claude sessions are non-resumable in V1.
|
|
30
|
+
* Interruption maps to refused_due_to_execution_error with
|
|
31
|
+
* code "session_interrupted". No resume path.
|
|
32
|
+
*
|
|
33
|
+
* A4 — No callback loop from Claude to Intake exists in V1.
|
|
34
|
+
* The only mid-flight feedback path is structured scope clarification
|
|
35
|
+
* via ClaudeScopeQuestion, mediated by H.
|
|
36
|
+
*
|
|
37
|
+
* ── Key invariants ────────────────────────────────────────────────────────────
|
|
38
|
+
*
|
|
39
|
+
* - ClaudeAgentHandoffArtifact never carries the original input string
|
|
40
|
+
* - eligibility === "approved_for_agent" is the only value that opens delivery
|
|
41
|
+
* - H may narrow scope only, never widen
|
|
42
|
+
* - Maximum one scope clarification per delivery attempt
|
|
43
|
+
* - toolPolicy.networkAccess must be "deny" in V1 (gate enforces)
|
|
44
|
+
* - toolPolicy.filesystemMode must be "scoped_only" (gate enforces)
|
|
45
|
+
* - Unknown response kinds are treated as refused_due_to_execution_error (fail-closed)
|
|
46
|
+
*
|
|
47
|
+
* ── Provenance chain ──────────────────────────────────────────────────────────
|
|
48
|
+
*
|
|
49
|
+
* ucp.intent.v1 → ucp.response.v1 → ucp.claude_handoff.v1
|
|
50
|
+
* → ucp.claude_receipt.v1
|
|
51
|
+
* → [ucp.claude_result.v1 — RESERVED FUTURE SLOT]
|
|
52
|
+
* → ucp.execution_trace.v1 → ucp.replay_report.v1
|
|
53
|
+
*
|
|
54
|
+
* Refusal path:
|
|
55
|
+
* ucp.claude_handoff.v1 → ucp.claude_refused.v1 (dead end or retry trigger)
|
|
56
|
+
*
|
|
57
|
+
* Reserved future slots (not built in V1):
|
|
58
|
+
* ucp.claude_session.v1 — for managed session event history
|
|
59
|
+
* ucp.claude_result.v1 — for structured agent output
|
|
60
|
+
*
|
|
61
|
+
* See: docs/claude-agent-phase-a-architecture.md
|
|
62
|
+
*/
|
|
63
|
+
export {};
|
|
64
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/claude/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG"}
|