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,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Snapshot Types — Phase 6C.
|
|
3
|
+
*
|
|
4
|
+
* Defines the versioned, serializable snapshot format for CursorSessionState.
|
|
5
|
+
*
|
|
6
|
+
* ── Design rules ──────────────────────────────────────────────────────────────
|
|
7
|
+
*
|
|
8
|
+
* - Pure data only. No methods, no functions, no class instances.
|
|
9
|
+
* - No hidden references. Everything in a snapshot is a JSON-safe value.
|
|
10
|
+
* - No filesystem logic in this type layer.
|
|
11
|
+
* - Version field is required and checked on restore.
|
|
12
|
+
* - A mismatch in version → safe fallback (never crash).
|
|
13
|
+
*
|
|
14
|
+
* ── Authority constraint ──────────────────────────────────────────────────────
|
|
15
|
+
*
|
|
16
|
+
* A snapshot carries session state for persistence only.
|
|
17
|
+
* Restoring a snapshot does NOT re-run intake, delivery, or any gate logic.
|
|
18
|
+
* Authority boundaries remain unchanged after restore.
|
|
19
|
+
*/
|
|
20
|
+
import type { CursorSessionState } from "../cursor-product-session.js";
|
|
21
|
+
/**
|
|
22
|
+
* CursorSessionSnapshot — a versioned, point-in-time capture of session state.
|
|
23
|
+
*
|
|
24
|
+
* version — snapshot format version. Must be 1. Checked on restore.
|
|
25
|
+
* savedAt — Unix timestamp (ms) when the snapshot was taken.
|
|
26
|
+
* state — the full CursorSessionState at save time.
|
|
27
|
+
*
|
|
28
|
+
* Snapshots are opaque to consumers: pass to restoreSession(), inspect nothing.
|
|
29
|
+
*/
|
|
30
|
+
export type CursorSessionSnapshot = {
|
|
31
|
+
readonly version: 1;
|
|
32
|
+
readonly savedAt: number;
|
|
33
|
+
readonly state: CursorSessionState;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=session-snapshot-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-snapshot-types.d.ts","sourceRoot":"","sources":["../../../../src/product/session-resilience/session-snapshot-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvE;;;;;;;;GAQG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAI,kBAAkB,CAAC;CACtC,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Snapshot Types — Phase 6C.
|
|
3
|
+
*
|
|
4
|
+
* Defines the versioned, serializable snapshot format for CursorSessionState.
|
|
5
|
+
*
|
|
6
|
+
* ── Design rules ──────────────────────────────────────────────────────────────
|
|
7
|
+
*
|
|
8
|
+
* - Pure data only. No methods, no functions, no class instances.
|
|
9
|
+
* - No hidden references. Everything in a snapshot is a JSON-safe value.
|
|
10
|
+
* - No filesystem logic in this type layer.
|
|
11
|
+
* - Version field is required and checked on restore.
|
|
12
|
+
* - A mismatch in version → safe fallback (never crash).
|
|
13
|
+
*
|
|
14
|
+
* ── Authority constraint ──────────────────────────────────────────────────────
|
|
15
|
+
*
|
|
16
|
+
* A snapshot carries session state for persistence only.
|
|
17
|
+
* Restoring a snapshot does NOT re-run intake, delivery, or any gate logic.
|
|
18
|
+
* Authority boundaries remain unchanged after restore.
|
|
19
|
+
*/
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=session-snapshot-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-snapshot-types.js","sourceRoot":"","sources":["../../../../src/product/session-resilience/session-snapshot-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Staleness — Phase 6C.
|
|
3
|
+
*
|
|
4
|
+
* Annotates a session as fresh, stale-approved, or stale-other based on
|
|
5
|
+
* elapsed time since the session entered the "prepared" phase.
|
|
6
|
+
*
|
|
7
|
+
* ── Authority constraint ──────────────────────────────────────────────────────
|
|
8
|
+
*
|
|
9
|
+
* Staleness is ANNOTATION ONLY. It has zero routing authority.
|
|
10
|
+
* It does not block any transition. It does not change isTerminal().
|
|
11
|
+
* It does not auto-approve or auto-deliver anything.
|
|
12
|
+
* It only answers the question: "how old is this session?"
|
|
13
|
+
*
|
|
14
|
+
* ── stale_approved semantics ─────────────────────────────────────────────────
|
|
15
|
+
*
|
|
16
|
+
* stale_approved applies only to "approved"-phase sessions.
|
|
17
|
+
* It signals that H approved some time ago but delivery has not happened,
|
|
18
|
+
* which is the highest-risk staleness pattern (approved but undelivered).
|
|
19
|
+
*
|
|
20
|
+
* stale_approved is NOT terminal. The session can still be delivered.
|
|
21
|
+
* The caller decides whether to surface the warning, prompt re-approval, etc.
|
|
22
|
+
*
|
|
23
|
+
* ── stale_other semantics ────────────────────────────────────────────────────
|
|
24
|
+
*
|
|
25
|
+
* stale_other applies to non-terminal, non-approved sessions that have
|
|
26
|
+
* exceeded the staleness threshold. Lower severity than stale_approved.
|
|
27
|
+
*
|
|
28
|
+
* Terminal sessions always return "fresh" (they are complete; staleness
|
|
29
|
+
* is not a meaningful concept for finalized sessions).
|
|
30
|
+
*/
|
|
31
|
+
import type { CursorSessionState } from "../cursor-product-session.js";
|
|
32
|
+
/**
|
|
33
|
+
* SessionStaleness — the staleness annotation for a session.
|
|
34
|
+
*
|
|
35
|
+
* fresh — session is within the acceptable time window.
|
|
36
|
+
* stale_approved — session is in "approved" phase and has exceeded the threshold.
|
|
37
|
+
* Highest-risk pattern: approved but undelivered for too long.
|
|
38
|
+
* stale_other — session is in a non-approved live phase and has exceeded the threshold.
|
|
39
|
+
*/
|
|
40
|
+
export type SessionStaleness = "fresh" | "stale_approved" | "stale_other";
|
|
41
|
+
/**
|
|
42
|
+
* Evaluate the staleness of a session.
|
|
43
|
+
*
|
|
44
|
+
* @param state The session state to evaluate.
|
|
45
|
+
* @param now Current Unix timestamp in ms.
|
|
46
|
+
* @param staleAfterMs Age threshold in ms. Sessions older than this are stale.
|
|
47
|
+
*
|
|
48
|
+
* Returns "fresh" for terminal sessions (terminal = done; not meaningfully stale).
|
|
49
|
+
* Returns "fresh" when preparedAt is absent (no timestamp → cannot be stale).
|
|
50
|
+
* Returns "stale_approved" when phase is "approved" and age > threshold.
|
|
51
|
+
* Returns "stale_other" for other live phases when age > threshold.
|
|
52
|
+
*/
|
|
53
|
+
export declare function evaluateSessionStaleness(state: CursorSessionState, now: number, staleAfterMs: number): SessionStaleness;
|
|
54
|
+
//# sourceMappingURL=session-staleness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-staleness.d.ts","sourceRoot":"","sources":["../../../../src/product/session-resilience/session-staleness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAKvE;;;;;;;GAOG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAI1E;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAS,kBAAkB,EAChC,GAAG,EAAW,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,gBAAgB,CAgBlB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Staleness — Phase 6C.
|
|
3
|
+
*
|
|
4
|
+
* Annotates a session as fresh, stale-approved, or stale-other based on
|
|
5
|
+
* elapsed time since the session entered the "prepared" phase.
|
|
6
|
+
*
|
|
7
|
+
* ── Authority constraint ──────────────────────────────────────────────────────
|
|
8
|
+
*
|
|
9
|
+
* Staleness is ANNOTATION ONLY. It has zero routing authority.
|
|
10
|
+
* It does not block any transition. It does not change isTerminal().
|
|
11
|
+
* It does not auto-approve or auto-deliver anything.
|
|
12
|
+
* It only answers the question: "how old is this session?"
|
|
13
|
+
*
|
|
14
|
+
* ── stale_approved semantics ─────────────────────────────────────────────────
|
|
15
|
+
*
|
|
16
|
+
* stale_approved applies only to "approved"-phase sessions.
|
|
17
|
+
* It signals that H approved some time ago but delivery has not happened,
|
|
18
|
+
* which is the highest-risk staleness pattern (approved but undelivered).
|
|
19
|
+
*
|
|
20
|
+
* stale_approved is NOT terminal. The session can still be delivered.
|
|
21
|
+
* The caller decides whether to surface the warning, prompt re-approval, etc.
|
|
22
|
+
*
|
|
23
|
+
* ── stale_other semantics ────────────────────────────────────────────────────
|
|
24
|
+
*
|
|
25
|
+
* stale_other applies to non-terminal, non-approved sessions that have
|
|
26
|
+
* exceeded the staleness threshold. Lower severity than stale_approved.
|
|
27
|
+
*
|
|
28
|
+
* Terminal sessions always return "fresh" (they are complete; staleness
|
|
29
|
+
* is not a meaningful concept for finalized sessions).
|
|
30
|
+
*/
|
|
31
|
+
import { isTerminal } from "../cursor-product-session.js";
|
|
32
|
+
// ─── Public API ───────────────────────────────────────────────────────────────
|
|
33
|
+
/**
|
|
34
|
+
* Evaluate the staleness of a session.
|
|
35
|
+
*
|
|
36
|
+
* @param state The session state to evaluate.
|
|
37
|
+
* @param now Current Unix timestamp in ms.
|
|
38
|
+
* @param staleAfterMs Age threshold in ms. Sessions older than this are stale.
|
|
39
|
+
*
|
|
40
|
+
* Returns "fresh" for terminal sessions (terminal = done; not meaningfully stale).
|
|
41
|
+
* Returns "fresh" when preparedAt is absent (no timestamp → cannot be stale).
|
|
42
|
+
* Returns "stale_approved" when phase is "approved" and age > threshold.
|
|
43
|
+
* Returns "stale_other" for other live phases when age > threshold.
|
|
44
|
+
*/
|
|
45
|
+
export function evaluateSessionStaleness(state, now, staleAfterMs) {
|
|
46
|
+
// Terminal sessions are complete — staleness does not apply.
|
|
47
|
+
if (isTerminal(state))
|
|
48
|
+
return "fresh";
|
|
49
|
+
// Need a preparedAt timestamp to measure age.
|
|
50
|
+
const preparedAt = state.preparedAt;
|
|
51
|
+
if (preparedAt === undefined)
|
|
52
|
+
return "fresh";
|
|
53
|
+
const age = now - preparedAt;
|
|
54
|
+
if (age <= staleAfterMs)
|
|
55
|
+
return "fresh";
|
|
56
|
+
// "approved" is the most critical staleness case (approved but undelivered).
|
|
57
|
+
if (state.phase === "approved")
|
|
58
|
+
return "stale_approved";
|
|
59
|
+
// All other live phases (prepared, conflict, scope_question, idle).
|
|
60
|
+
return "stale_other";
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=session-staleness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-staleness.js","sourceRoot":"","sources":["../../../../src/product/session-resilience/session-staleness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAc1D,iFAAiF;AAEjF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,wBAAwB,CACtC,KAAgC,EAChC,GAAoB,EACpB,YAAoB;IAEpB,6DAA6D;IAC7D,IAAI,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IAEtC,8CAA8C;IAC9C,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;IACpC,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC;IAE7C,MAAM,GAAG,GAAG,GAAG,GAAG,UAAU,CAAC;IAC7B,IAAI,GAAG,IAAI,YAAY;QAAE,OAAO,OAAO,CAAC;IAExC,6EAA6E;IAC7E,IAAI,KAAK,CAAC,KAAK,KAAK,UAAU;QAAE,OAAO,gBAAgB,CAAC;IAExD,oEAAoE;IACpE,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Summary — Phase 6C.
|
|
3
|
+
*
|
|
4
|
+
* Produces a deterministic, human-readable summary of a terminal session.
|
|
5
|
+
*
|
|
6
|
+
* ── Contract ──────────────────────────────────────────────────────────────────
|
|
7
|
+
*
|
|
8
|
+
* summarizeSession(state) → SessionSummary | null
|
|
9
|
+
*
|
|
10
|
+
* Returns null for non-terminal sessions.
|
|
11
|
+
* For terminal sessions, returns a summary derived only from actual state facts.
|
|
12
|
+
* No narrative invention. No references to unexecuted actions.
|
|
13
|
+
* Deterministic: same state → same summary.
|
|
14
|
+
*
|
|
15
|
+
* ── Authority constraint ──────────────────────────────────────────────────────
|
|
16
|
+
*
|
|
17
|
+
* This function reads state facts and describes them.
|
|
18
|
+
* It does not evaluate, route, or re-run any upstream logic.
|
|
19
|
+
*/
|
|
20
|
+
import type { CursorSessionState } from "../cursor-product-session.js";
|
|
21
|
+
/**
|
|
22
|
+
* SessionSummary — a terminal session audit record.
|
|
23
|
+
*
|
|
24
|
+
* finalPhase — the exact phase the session terminated in.
|
|
25
|
+
* headline — one-sentence summary of the outcome.
|
|
26
|
+
* notes — zero or more supporting detail items derived from state.
|
|
27
|
+
*/
|
|
28
|
+
export type SessionSummary = {
|
|
29
|
+
readonly finalPhase: string;
|
|
30
|
+
readonly headline: string;
|
|
31
|
+
readonly notes: readonly string[];
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Summarize a terminal session into a structured audit record.
|
|
35
|
+
*
|
|
36
|
+
* Returns null for non-terminal sessions.
|
|
37
|
+
* Returns a SessionSummary for all terminal phases.
|
|
38
|
+
*/
|
|
39
|
+
export declare function summarizeSession(state: CursorSessionState): SessionSummary | null;
|
|
40
|
+
//# sourceMappingURL=session-summary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-summary.d.ts","sourceRoot":"","sources":["../../../../src/product/session-resilience/session-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAKvE;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAI,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAO,SAAS,MAAM,EAAE,CAAC;CACxC,CAAC;AAIF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc,GAAG,IAAI,CA8BjF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Summary — Phase 6C.
|
|
3
|
+
*
|
|
4
|
+
* Produces a deterministic, human-readable summary of a terminal session.
|
|
5
|
+
*
|
|
6
|
+
* ── Contract ──────────────────────────────────────────────────────────────────
|
|
7
|
+
*
|
|
8
|
+
* summarizeSession(state) → SessionSummary | null
|
|
9
|
+
*
|
|
10
|
+
* Returns null for non-terminal sessions.
|
|
11
|
+
* For terminal sessions, returns a summary derived only from actual state facts.
|
|
12
|
+
* No narrative invention. No references to unexecuted actions.
|
|
13
|
+
* Deterministic: same state → same summary.
|
|
14
|
+
*
|
|
15
|
+
* ── Authority constraint ──────────────────────────────────────────────────────
|
|
16
|
+
*
|
|
17
|
+
* This function reads state facts and describes them.
|
|
18
|
+
* It does not evaluate, route, or re-run any upstream logic.
|
|
19
|
+
*/
|
|
20
|
+
import { isTerminal } from "../cursor-product-session.js";
|
|
21
|
+
// ─── Public API ───────────────────────────────────────────────────────────────
|
|
22
|
+
/**
|
|
23
|
+
* Summarize a terminal session into a structured audit record.
|
|
24
|
+
*
|
|
25
|
+
* Returns null for non-terminal sessions.
|
|
26
|
+
* Returns a SessionSummary for all terminal phases.
|
|
27
|
+
*/
|
|
28
|
+
export function summarizeSession(state) {
|
|
29
|
+
if (!isTerminal(state))
|
|
30
|
+
return null;
|
|
31
|
+
const notes = [];
|
|
32
|
+
if (state.input) {
|
|
33
|
+
notes.push(`Input: "${state.input}"`);
|
|
34
|
+
}
|
|
35
|
+
if (state.display.changeSummary) {
|
|
36
|
+
notes.push(`Change: ${state.display.changeSummary}`);
|
|
37
|
+
}
|
|
38
|
+
if (state.display.targetFiles && state.display.targetFiles.length > 0) {
|
|
39
|
+
notes.push(`Target: ${state.display.targetFiles.join(", ")}`);
|
|
40
|
+
}
|
|
41
|
+
if (state.display.resultNote) {
|
|
42
|
+
notes.push(`Note: ${state.display.resultNote}`);
|
|
43
|
+
}
|
|
44
|
+
if (state.intentId) {
|
|
45
|
+
notes.push(`Intent ID: ${state.intentId}`);
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
finalPhase: state.phase,
|
|
49
|
+
headline: headlineFor(state),
|
|
50
|
+
notes,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
// ─── Internal ─────────────────────────────────────────────────────────────────
|
|
54
|
+
function headlineFor(state) {
|
|
55
|
+
switch (state.phase) {
|
|
56
|
+
case "accepted":
|
|
57
|
+
return "Edit was applied successfully.";
|
|
58
|
+
case "rejected":
|
|
59
|
+
return "Edit was rejected by the user.";
|
|
60
|
+
case "exec_error":
|
|
61
|
+
return "Execution failed with an error.";
|
|
62
|
+
case "blocked":
|
|
63
|
+
return "Session was blocked and could not complete.";
|
|
64
|
+
case "not_execute":
|
|
65
|
+
return "Input was not an executable edit command.";
|
|
66
|
+
case "intake_failed":
|
|
67
|
+
return "Intake pipeline encountered an unexpected error.";
|
|
68
|
+
default:
|
|
69
|
+
return `Session ended in phase: ${state.phase}.`;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=session-summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-summary.js","sourceRoot":"","sources":["../../../../src/product/session-resilience/session-summary.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAiB1D,iFAAiF;AAEjF;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAyB;IACxD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;QAChC,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,WAAW,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO;QACL,UAAU,EAAE,KAAK,CAAC,KAAK;QACvB,QAAQ,EAAI,WAAW,CAAC,KAAK,CAAC;QAC9B,KAAK;KACN,CAAC;AACJ,CAAC;AAED,iFAAiF;AAEjF,SAAS,WAAW,CAAC,KAAyB;IAC5C,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,KAAK,UAAU;YACb,OAAO,gCAAgC,CAAC;QAC1C,KAAK,UAAU;YACb,OAAO,gCAAgC,CAAC;QAC1C,KAAK,YAAY;YACf,OAAO,iCAAiC,CAAC;QAC3C,KAAK,SAAS;YACZ,OAAO,6CAA6C,CAAC;QACvD,KAAK,aAAa;YAChB,OAAO,2CAA2C,CAAC;QACrD,KAAK,eAAe;YAClB,OAAO,kDAAkD,CAAC;QAC5D;YACE,OAAO,2BAA2B,KAAK,CAAC,KAAK,GAAG,CAAC;IACrD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRV patterns — HIGH-SIGNAL, LEXICAL context-dependency detection only.
|
|
3
|
+
*
|
|
4
|
+
* CONTRACT (PRV / Context Alignment boundary):
|
|
5
|
+
* PRV is LEXICAL. It fires on the clearest, most unambiguous markers where
|
|
6
|
+
* the input is obviously dependent on a prior state without exception.
|
|
7
|
+
*
|
|
8
|
+
* Context Alignment is SEMANTIC. It handles cases where a reference word
|
|
9
|
+
* might or might not depend on context depending on phrasing.
|
|
10
|
+
*
|
|
11
|
+
* PRV patterns MUST be:
|
|
12
|
+
* - Unambiguous: the word virtually always references prior state
|
|
13
|
+
* - Whole-word matched: no substring false positives
|
|
14
|
+
* - Few: false positives (blocking safe inputs) are worse than false negatives
|
|
15
|
+
*
|
|
16
|
+
* Removed patterns and why:
|
|
17
|
+
* \bsame\b — too broad: "I feel the same", "same day delivery" are not context refs.
|
|
18
|
+
* → Context Alignment handles "same file", "same as before" semantically.
|
|
19
|
+
* \bthat\b — too broad: "that's great", "I love that idea" are not context refs.
|
|
20
|
+
* → Context Alignment handles "that file", "that result" semantically.
|
|
21
|
+
*
|
|
22
|
+
* Kept / narrowed patterns:
|
|
23
|
+
* \bagain\b — "run again", "do it again" always reference a prior action
|
|
24
|
+
* \bcontinue\b — "continue" always implies something to continue from
|
|
25
|
+
* \bprevious\b — "previous run/result" always references prior state
|
|
26
|
+
* \bsame\s+as\b — "same as before" is specific enough to be unambiguous
|
|
27
|
+
*/
|
|
28
|
+
export declare function requiresContext(input: string): boolean;
|
|
29
|
+
export declare function hasRequiredContext(ctx: {
|
|
30
|
+
readonly hasPriorSession: boolean;
|
|
31
|
+
}): boolean;
|
|
32
|
+
//# sourceMappingURL=patterns.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../../src/prv/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AASH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE;IAAE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAEtF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRV patterns — HIGH-SIGNAL, LEXICAL context-dependency detection only.
|
|
3
|
+
*
|
|
4
|
+
* CONTRACT (PRV / Context Alignment boundary):
|
|
5
|
+
* PRV is LEXICAL. It fires on the clearest, most unambiguous markers where
|
|
6
|
+
* the input is obviously dependent on a prior state without exception.
|
|
7
|
+
*
|
|
8
|
+
* Context Alignment is SEMANTIC. It handles cases where a reference word
|
|
9
|
+
* might or might not depend on context depending on phrasing.
|
|
10
|
+
*
|
|
11
|
+
* PRV patterns MUST be:
|
|
12
|
+
* - Unambiguous: the word virtually always references prior state
|
|
13
|
+
* - Whole-word matched: no substring false positives
|
|
14
|
+
* - Few: false positives (blocking safe inputs) are worse than false negatives
|
|
15
|
+
*
|
|
16
|
+
* Removed patterns and why:
|
|
17
|
+
* \bsame\b — too broad: "I feel the same", "same day delivery" are not context refs.
|
|
18
|
+
* → Context Alignment handles "same file", "same as before" semantically.
|
|
19
|
+
* \bthat\b — too broad: "that's great", "I love that idea" are not context refs.
|
|
20
|
+
* → Context Alignment handles "that file", "that result" semantically.
|
|
21
|
+
*
|
|
22
|
+
* Kept / narrowed patterns:
|
|
23
|
+
* \bagain\b — "run again", "do it again" always reference a prior action
|
|
24
|
+
* \bcontinue\b — "continue" always implies something to continue from
|
|
25
|
+
* \bprevious\b — "previous run/result" always references prior state
|
|
26
|
+
* \bsame\s+as\b — "same as before" is specific enough to be unambiguous
|
|
27
|
+
*/
|
|
28
|
+
const CONTEXT_DEPENDENCY_PATTERNS = [
|
|
29
|
+
/\bagain\b/i,
|
|
30
|
+
/\bcontinue\b/i,
|
|
31
|
+
/\bprevious\b/i,
|
|
32
|
+
/\bsame\s+as\b/i, // "same as before" — specific; not broad "same"
|
|
33
|
+
];
|
|
34
|
+
export function requiresContext(input) {
|
|
35
|
+
return CONTEXT_DEPENDENCY_PATTERNS.some((pattern) => pattern.test(input));
|
|
36
|
+
}
|
|
37
|
+
export function hasRequiredContext(ctx) {
|
|
38
|
+
return ctx.hasPriorSession;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=patterns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../../src/prv/patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,2BAA2B,GAA0B;IACzD,YAAY;IACZ,eAAe;IACf,eAAe;IACf,gBAAgB,EAAG,gDAAgD;CACpE,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,OAAO,2BAA2B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,GAA0C;IAC3E,OAAO,GAAG,CAAC,eAAe,CAAC;AAC7B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRV — Pre-Response Validation.
|
|
3
|
+
*
|
|
4
|
+
* runPRV is the mandatory first check before any response is generated.
|
|
5
|
+
* If PRV fails, no further processing occurs.
|
|
6
|
+
*
|
|
7
|
+
* Behavior:
|
|
8
|
+
* - If input requires prior context AND no context exists → clarify
|
|
9
|
+
* - Otherwise → ok
|
|
10
|
+
*/
|
|
11
|
+
import type { PRVResult, PRVContext } from "./types.js";
|
|
12
|
+
export declare function runPRV(input: string, ctx: PRVContext): PRVResult;
|
|
13
|
+
//# sourceMappingURL=prv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prv.d.ts","sourceRoot":"","sources":["../../../src/prv/prv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxD,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,SAAS,CAUhE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRV — Pre-Response Validation.
|
|
3
|
+
*
|
|
4
|
+
* runPRV is the mandatory first check before any response is generated.
|
|
5
|
+
* If PRV fails, no further processing occurs.
|
|
6
|
+
*
|
|
7
|
+
* Behavior:
|
|
8
|
+
* - If input requires prior context AND no context exists → clarify
|
|
9
|
+
* - Otherwise → ok
|
|
10
|
+
*/
|
|
11
|
+
import { requiresContext, hasRequiredContext } from "./patterns.js";
|
|
12
|
+
export function runPRV(input, ctx) {
|
|
13
|
+
if (requiresContext(input) && !hasRequiredContext(ctx)) {
|
|
14
|
+
return {
|
|
15
|
+
ok: false,
|
|
16
|
+
mode: "clarify",
|
|
17
|
+
reason: "This request depends on prior context, but none is available.",
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
return { ok: true };
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=prv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prv.js","sourceRoot":"","sources":["../../../src/prv/prv.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEpE,MAAM,UAAU,MAAM,CAAC,KAAa,EAAE,GAAe;IACnD,IAAI,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,SAAS;YACf,MAAM,EACJ,+DAA+D;SAClE,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AACtB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRV — Pre-Response Validation types.
|
|
3
|
+
*
|
|
4
|
+
* PRV is the first gate every input must pass before any processing occurs.
|
|
5
|
+
* Its job is narrow: detect inputs that depend on prior context that does not exist.
|
|
6
|
+
*
|
|
7
|
+
* PRV does NOT:
|
|
8
|
+
* - perform semantic reasoning
|
|
9
|
+
* - classify intent
|
|
10
|
+
* - suggest responses
|
|
11
|
+
*
|
|
12
|
+
* PRV only answers: "Can this input be processed at all?"
|
|
13
|
+
*/
|
|
14
|
+
export type PRVResult = {
|
|
15
|
+
readonly ok: true;
|
|
16
|
+
} | {
|
|
17
|
+
readonly ok: false;
|
|
18
|
+
readonly mode: "clarify";
|
|
19
|
+
readonly reason: string;
|
|
20
|
+
};
|
|
21
|
+
export type PRVContext = {
|
|
22
|
+
readonly hasPriorSession: boolean;
|
|
23
|
+
readonly lastInput?: string;
|
|
24
|
+
readonly lastResult?: string;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/prv/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,SAAS,GACjB;IAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAA;CAAE,GACrB;IAAE,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9E,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRV — Pre-Response Validation types.
|
|
3
|
+
*
|
|
4
|
+
* PRV is the first gate every input must pass before any processing occurs.
|
|
5
|
+
* Its job is narrow: detect inputs that depend on prior context that does not exist.
|
|
6
|
+
*
|
|
7
|
+
* PRV does NOT:
|
|
8
|
+
* - perform semantic reasoning
|
|
9
|
+
* - classify intent
|
|
10
|
+
* - suggest responses
|
|
11
|
+
*
|
|
12
|
+
* PRV only answers: "Can this input be processed at all?"
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/prv/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arbitrary-exec.detector.d.ts","sourceRoot":"","sources":["../../../../src/safety/detectors/arbitrary-exec.detector.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,aAAa,CAAC;AAkBhE,eAAO,MAAM,qBAAqB,EAAE,cAkBnC,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
const PATTERNS = [
|
|
2
|
+
{ regex: /\brun\s+bash\b/i, label: "run bash" },
|
|
3
|
+
// Match "execute shell", "execute this shell", "execute a shell command", etc.
|
|
4
|
+
{ regex: /\bexecute\s+(?:this\s+|a\s+|an?\s+)?shell\b/i, label: "execute shell" },
|
|
5
|
+
{ regex: /\bcurl\b.*\|/i, label: "curl | (pipe)" },
|
|
6
|
+
{ regex: /\bpowershell\s+command\b/i, label: "powershell command" },
|
|
7
|
+
{ regex: /\beval\s*\(/i, label: "eval()" },
|
|
8
|
+
{ regex: /\bsh\s+-c\b/i, label: "sh -c" },
|
|
9
|
+
];
|
|
10
|
+
function findMatch(input) {
|
|
11
|
+
return PATTERNS.find(({ regex }) => regex.test(input)) ?? null;
|
|
12
|
+
}
|
|
13
|
+
export const arbitraryExecDetector = {
|
|
14
|
+
id: "arbitrary_script_execution",
|
|
15
|
+
priority: 40,
|
|
16
|
+
supports(input) {
|
|
17
|
+
return findMatch(input) !== null;
|
|
18
|
+
},
|
|
19
|
+
detect(input) {
|
|
20
|
+
const match = findMatch(input);
|
|
21
|
+
if (match === null)
|
|
22
|
+
return null;
|
|
23
|
+
return {
|
|
24
|
+
verdict: "block",
|
|
25
|
+
reason: "arbitrary_script_execution",
|
|
26
|
+
matchedPattern: match.label,
|
|
27
|
+
note: "Input contains a pattern associated with arbitrary script or shell execution.",
|
|
28
|
+
};
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=arbitrary-exec.detector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arbitrary-exec.detector.js","sourceRoot":"","sources":["../../../../src/safety/detectors/arbitrary-exec.detector.ts"],"names":[],"mappings":"AAIA,MAAM,QAAQ,GAAkC;IAC9C,EAAE,KAAK,EAAE,iBAAiB,EAA0B,KAAK,EAAE,UAAU,EAAE;IACvE,+EAA+E;IAC/E,EAAE,KAAK,EAAE,8CAA8C,EAAE,KAAK,EAAE,eAAe,EAAE;IACjF,EAAE,KAAK,EAAE,eAAe,EAA4B,KAAK,EAAE,eAAe,EAAE;IAC5E,EAAE,KAAK,EAAE,2BAA2B,EAAgB,KAAK,EAAE,oBAAoB,EAAE;IACjF,EAAE,KAAK,EAAE,cAAc,EAA6B,KAAK,EAAE,QAAQ,EAAE;IACrE,EAAE,KAAK,EAAE,cAAc,EAA6B,KAAK,EAAE,OAAO,EAAE;CACrE,CAAC;AAEF,SAAS,SAAS,CAAC,KAAa;IAC9B,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAmB;IACnD,EAAE,EAAE,4BAA4B;IAChC,QAAQ,EAAE,EAAE;IAEZ,QAAQ,CAAC,KAAa;QACpB,OAAO,SAAS,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACnC,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC/B,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,4BAA4B;YACpC,cAAc,EAAE,KAAK,CAAC,KAAK;YAC3B,IAAI,EAAE,+EAA+E;SACtF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bulk data exfiltration detector.
|
|
3
|
+
*
|
|
4
|
+
* Catches inputs that combine:
|
|
5
|
+
* - a data-movement verb (export, dump, extract, download, send, pull, get)
|
|
6
|
+
* - with a bulk-scope qualifier (all, every, entire, full)
|
|
7
|
+
* - with a sensitive target (customer, user, account + emails, passwords,
|
|
8
|
+
* credentials, data, PII, records)
|
|
9
|
+
*
|
|
10
|
+
* Also catches standalone high-signal credential-dump phrases regardless
|
|
11
|
+
* of the bulk qualifier.
|
|
12
|
+
*
|
|
13
|
+
* Scope: NARROW. Only fires on language that clearly describes bulk exfiltration
|
|
14
|
+
* of sensitive user data. Does not fire on legitimate analytics queries
|
|
15
|
+
* ("pull the conversion funnel") or single-record lookups.
|
|
16
|
+
*
|
|
17
|
+
* Priority: 15 (between destructive_mass_action:10 and credential_or_secret_access:20)
|
|
18
|
+
*/
|
|
19
|
+
import type { SafetyDetector } from "../types.js";
|
|
20
|
+
export declare const bulkDataExfilDetector: SafetyDetector;
|
|
21
|
+
//# sourceMappingURL=bulk-data-exfil.detector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk-data-exfil.detector.d.ts","sourceRoot":"","sources":["../../../../src/safety/detectors/bulk-data-exfil.detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,aAAa,CAAC;AA6DhE,eAAO,MAAM,qBAAqB,EAAE,cAkBnC,CAAC"}
|