@methodts/runtime 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__fixtures__/executor-fixtures.d.ts +10 -0
- package/dist/__fixtures__/executor-fixtures.d.ts.map +1 -0
- package/dist/__fixtures__/executor-fixtures.js +36 -0
- package/dist/__fixtures__/executor-fixtures.js.map +1 -0
- package/dist/architecture.test.d.ts +2 -0
- package/dist/architecture.test.d.ts.map +1 -0
- package/dist/architecture.test.js +143 -0
- package/dist/architecture.test.js.map +1 -0
- package/dist/config/cost-governor-config.d.ts +40 -0
- package/dist/config/cost-governor-config.d.ts.map +1 -0
- package/dist/config/cost-governor-config.js +48 -0
- package/dist/config/cost-governor-config.js.map +1 -0
- package/dist/config/index.d.ts +7 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/sessions-config.d.ts +29 -0
- package/dist/config/sessions-config.d.ts.map +1 -0
- package/dist/config/sessions-config.js +37 -0
- package/dist/config/sessions-config.js.map +1 -0
- package/dist/config/strategies-config.d.ts +38 -0
- package/dist/config/strategies-config.d.ts.map +1 -0
- package/dist/config/strategies-config.js +41 -0
- package/dist/config/strategies-config.js.map +1 -0
- package/dist/cost-governor/backpressure-queue.d.ts +20 -0
- package/dist/cost-governor/backpressure-queue.d.ts.map +1 -0
- package/dist/cost-governor/backpressure-queue.js +78 -0
- package/dist/cost-governor/backpressure-queue.js.map +1 -0
- package/dist/cost-governor/backpressure-queue.test.d.ts +2 -0
- package/dist/cost-governor/backpressure-queue.test.d.ts.map +1 -0
- package/dist/cost-governor/backpressure-queue.test.js +48 -0
- package/dist/cost-governor/backpressure-queue.test.js.map +1 -0
- package/dist/cost-governor/cost-events.d.ts +65 -0
- package/dist/cost-governor/cost-events.d.ts.map +1 -0
- package/dist/cost-governor/cost-events.js +48 -0
- package/dist/cost-governor/cost-events.js.map +1 -0
- package/dist/cost-governor/cost-governor-app-id.test.d.ts +19 -0
- package/dist/cost-governor/cost-governor-app-id.test.d.ts.map +1 -0
- package/dist/cost-governor/cost-governor-app-id.test.js +201 -0
- package/dist/cost-governor/cost-governor-app-id.test.js.map +1 -0
- package/dist/cost-governor/cost-oracle-impl.d.ts +19 -0
- package/dist/cost-governor/cost-oracle-impl.d.ts.map +1 -0
- package/dist/cost-governor/cost-oracle-impl.js +52 -0
- package/dist/cost-governor/cost-oracle-impl.js.map +1 -0
- package/dist/cost-governor/estimator.d.ts +22 -0
- package/dist/cost-governor/estimator.d.ts.map +1 -0
- package/dist/cost-governor/estimator.js +119 -0
- package/dist/cost-governor/estimator.js.map +1 -0
- package/dist/cost-governor/estimator.test.d.ts +2 -0
- package/dist/cost-governor/estimator.test.d.ts.map +1 -0
- package/dist/cost-governor/estimator.test.js +141 -0
- package/dist/cost-governor/estimator.test.js.map +1 -0
- package/dist/cost-governor/index.d.ts +75 -0
- package/dist/cost-governor/index.d.ts.map +1 -0
- package/dist/cost-governor/index.js +120 -0
- package/dist/cost-governor/index.js.map +1 -0
- package/dist/cost-governor/observations-store.d.ts +49 -0
- package/dist/cost-governor/observations-store.d.ts.map +1 -0
- package/dist/cost-governor/observations-store.js +179 -0
- package/dist/cost-governor/observations-store.js.map +1 -0
- package/dist/cost-governor/observations-store.test.d.ts +2 -0
- package/dist/cost-governor/observations-store.test.d.ts.map +1 -0
- package/dist/cost-governor/observations-store.test.js +191 -0
- package/dist/cost-governor/observations-store.test.js.map +1 -0
- package/dist/cost-governor/percentile.d.ts +17 -0
- package/dist/cost-governor/percentile.d.ts.map +1 -0
- package/dist/cost-governor/percentile.js +33 -0
- package/dist/cost-governor/percentile.js.map +1 -0
- package/dist/cost-governor/percentile.test.d.ts +2 -0
- package/dist/cost-governor/percentile.test.d.ts.map +1 -0
- package/dist/cost-governor/percentile.test.js +46 -0
- package/dist/cost-governor/percentile.test.js.map +1 -0
- package/dist/cost-governor/rate-governor-impl.d.ts +73 -0
- package/dist/cost-governor/rate-governor-impl.d.ts.map +1 -0
- package/dist/cost-governor/rate-governor-impl.js +148 -0
- package/dist/cost-governor/rate-governor-impl.js.map +1 -0
- package/dist/cost-governor/signature-builder.d.ts +22 -0
- package/dist/cost-governor/signature-builder.d.ts.map +1 -0
- package/dist/cost-governor/signature-builder.js +43 -0
- package/dist/cost-governor/signature-builder.js.map +1 -0
- package/dist/cost-governor/signature-builder.test.d.ts +2 -0
- package/dist/cost-governor/signature-builder.test.d.ts.map +1 -0
- package/dist/cost-governor/signature-builder.test.js +58 -0
- package/dist/cost-governor/signature-builder.test.js.map +1 -0
- package/dist/cost-governor/token-bucket.d.ts +57 -0
- package/dist/cost-governor/token-bucket.d.ts.map +1 -0
- package/dist/cost-governor/token-bucket.js +109 -0
- package/dist/cost-governor/token-bucket.js.map +1 -0
- package/dist/cost-governor/token-bucket.test.d.ts +2 -0
- package/dist/cost-governor/token-bucket.test.d.ts.map +1 -0
- package/dist/cost-governor/token-bucket.test.js +67 -0
- package/dist/cost-governor/token-bucket.test.js.map +1 -0
- package/dist/dlq/cortex-dlq-observer.d.ts +22 -0
- package/dist/dlq/cortex-dlq-observer.d.ts.map +1 -0
- package/dist/dlq/cortex-dlq-observer.js +29 -0
- package/dist/dlq/cortex-dlq-observer.js.map +1 -0
- package/dist/dlq/dlq-observer.test.d.ts +8 -0
- package/dist/dlq/dlq-observer.test.d.ts.map +1 -0
- package/dist/dlq/dlq-observer.test.js +103 -0
- package/dist/dlq/dlq-observer.test.js.map +1 -0
- package/dist/dlq/index.d.ts +6 -0
- package/dist/dlq/index.d.ts.map +1 -0
- package/dist/dlq/index.js +6 -0
- package/dist/dlq/index.js.map +1 -0
- package/dist/event-bus/adapters.d.ts +50 -0
- package/dist/event-bus/adapters.d.ts.map +1 -0
- package/dist/event-bus/adapters.js +51 -0
- package/dist/event-bus/adapters.js.map +1 -0
- package/dist/event-bus/adapters.test.d.ts +5 -0
- package/dist/event-bus/adapters.test.d.ts.map +1 -0
- package/dist/event-bus/adapters.test.js +73 -0
- package/dist/event-bus/adapters.test.js.map +1 -0
- package/dist/event-bus/agent-event-adapter.d.ts +22 -0
- package/dist/event-bus/agent-event-adapter.d.ts.map +1 -0
- package/dist/event-bus/agent-event-adapter.js +49 -0
- package/dist/event-bus/agent-event-adapter.js.map +1 -0
- package/dist/event-bus/agent-event-adapter.test.d.ts +5 -0
- package/dist/event-bus/agent-event-adapter.test.d.ts.map +1 -0
- package/dist/event-bus/agent-event-adapter.test.js +170 -0
- package/dist/event-bus/agent-event-adapter.test.js.map +1 -0
- package/dist/event-bus/channel-sink.d.ts +71 -0
- package/dist/event-bus/channel-sink.d.ts.map +1 -0
- package/dist/event-bus/channel-sink.js +159 -0
- package/dist/event-bus/channel-sink.js.map +1 -0
- package/dist/event-bus/channel-sink.test.d.ts +5 -0
- package/dist/event-bus/channel-sink.test.d.ts.map +1 -0
- package/dist/event-bus/channel-sink.test.js +234 -0
- package/dist/event-bus/channel-sink.test.js.map +1 -0
- package/dist/event-bus/event-types.snapshot.test.d.ts +27 -0
- package/dist/event-bus/event-types.snapshot.test.d.ts.map +1 -0
- package/dist/event-bus/event-types.snapshot.test.js +165 -0
- package/dist/event-bus/event-types.snapshot.test.js.map +1 -0
- package/dist/event-bus/genesis-sink.d.ts +55 -0
- package/dist/event-bus/genesis-sink.d.ts.map +1 -0
- package/dist/event-bus/genesis-sink.js +141 -0
- package/dist/event-bus/genesis-sink.js.map +1 -0
- package/dist/event-bus/genesis-sink.test.d.ts +5 -0
- package/dist/event-bus/genesis-sink.test.d.ts.map +1 -0
- package/dist/event-bus/genesis-sink.test.js +160 -0
- package/dist/event-bus/genesis-sink.test.js.map +1 -0
- package/dist/event-bus/in-memory-event-bus.d.ts +60 -0
- package/dist/event-bus/in-memory-event-bus.d.ts.map +1 -0
- package/dist/event-bus/in-memory-event-bus.js +274 -0
- package/dist/event-bus/in-memory-event-bus.js.map +1 -0
- package/dist/event-bus/in-memory-event-bus.test.d.ts +5 -0
- package/dist/event-bus/in-memory-event-bus.test.d.ts.map +1 -0
- package/dist/event-bus/in-memory-event-bus.test.js +457 -0
- package/dist/event-bus/in-memory-event-bus.test.js.map +1 -0
- package/dist/event-bus/index.d.ts +22 -0
- package/dist/event-bus/index.d.ts.map +1 -0
- package/dist/event-bus/index.js +17 -0
- package/dist/event-bus/index.js.map +1 -0
- package/dist/event-bus/persistence-sink.d.ts +74 -0
- package/dist/event-bus/persistence-sink.d.ts.map +1 -0
- package/dist/event-bus/persistence-sink.js +193 -0
- package/dist/event-bus/persistence-sink.js.map +1 -0
- package/dist/event-bus/persistence-sink.test.d.ts +6 -0
- package/dist/event-bus/persistence-sink.test.d.ts.map +1 -0
- package/dist/event-bus/persistence-sink.test.js +319 -0
- package/dist/event-bus/persistence-sink.test.js.map +1 -0
- package/dist/event-bus/session-checkpoint-sink.d.ts +91 -0
- package/dist/event-bus/session-checkpoint-sink.d.ts.map +1 -0
- package/dist/event-bus/session-checkpoint-sink.js +107 -0
- package/dist/event-bus/session-checkpoint-sink.js.map +1 -0
- package/dist/event-bus/session-checkpoint-sink.test.d.ts +5 -0
- package/dist/event-bus/session-checkpoint-sink.test.d.ts.map +1 -0
- package/dist/event-bus/session-checkpoint-sink.test.js +215 -0
- package/dist/event-bus/session-checkpoint-sink.test.js.map +1 -0
- package/dist/event-bus/webhook-connector.d.ts +59 -0
- package/dist/event-bus/webhook-connector.d.ts.map +1 -0
- package/dist/event-bus/webhook-connector.js +191 -0
- package/dist/event-bus/webhook-connector.js.map +1 -0
- package/dist/event-bus/webhook-connector.test.d.ts +5 -0
- package/dist/event-bus/webhook-connector.test.d.ts.map +1 -0
- package/dist/event-bus/webhook-connector.test.js +214 -0
- package/dist/event-bus/webhook-connector.test.js.map +1 -0
- package/dist/executors/cortex-job-backed-executor.d.ts +137 -0
- package/dist/executors/cortex-job-backed-executor.d.ts.map +1 -0
- package/dist/executors/cortex-job-backed-executor.js +441 -0
- package/dist/executors/cortex-job-backed-executor.js.map +1 -0
- package/dist/executors/cortex-job-backed-executor.test.d.ts +13 -0
- package/dist/executors/cortex-job-backed-executor.test.d.ts.map +1 -0
- package/dist/executors/cortex-job-backed-executor.test.js +303 -0
- package/dist/executors/cortex-job-backed-executor.test.js.map +1 -0
- package/dist/executors/index.d.ts +9 -0
- package/dist/executors/index.d.ts.map +1 -0
- package/dist/executors/index.js +9 -0
- package/dist/executors/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/ports/checkpoint-sink.d.ts +69 -0
- package/dist/ports/checkpoint-sink.d.ts.map +1 -0
- package/dist/ports/checkpoint-sink.js +16 -0
- package/dist/ports/checkpoint-sink.js.map +1 -0
- package/dist/ports/checkpoint.d.ts +68 -0
- package/dist/ports/checkpoint.d.ts.map +1 -0
- package/dist/ports/checkpoint.js +14 -0
- package/dist/ports/checkpoint.js.map +1 -0
- package/dist/ports/continuation-envelope-cross-app.test.d.ts +10 -0
- package/dist/ports/continuation-envelope-cross-app.test.d.ts.map +1 -0
- package/dist/ports/continuation-envelope-cross-app.test.js +95 -0
- package/dist/ports/continuation-envelope-cross-app.test.js.map +1 -0
- package/dist/ports/continuation-envelope.d.ts +199 -0
- package/dist/ports/continuation-envelope.d.ts.map +1 -0
- package/dist/ports/continuation-envelope.js +69 -0
- package/dist/ports/continuation-envelope.js.map +1 -0
- package/dist/ports/conversation.d.ts +64 -0
- package/dist/ports/conversation.d.ts.map +1 -0
- package/dist/ports/conversation.js +19 -0
- package/dist/ports/conversation.js.map +1 -0
- package/dist/ports/cost-oracle.d.ts +26 -0
- package/dist/ports/cost-oracle.d.ts.map +1 -0
- package/dist/ports/cost-oracle.js +9 -0
- package/dist/ports/cost-oracle.js.map +1 -0
- package/dist/ports/cross-app-invoker.d.ts +198 -0
- package/dist/ports/cross-app-invoker.d.ts.map +1 -0
- package/dist/ports/cross-app-invoker.js +157 -0
- package/dist/ports/cross-app-invoker.js.map +1 -0
- package/dist/ports/dlq-observer.d.ts +40 -0
- package/dist/ports/dlq-observer.d.ts.map +1 -0
- package/dist/ports/dlq-observer.js +20 -0
- package/dist/ports/dlq-observer.js.map +1 -0
- package/dist/ports/event-bus.d.ts +169 -0
- package/dist/ports/event-bus.d.ts.map +1 -0
- package/dist/ports/event-bus.js +20 -0
- package/dist/ports/event-bus.js.map +1 -0
- package/dist/ports/event-reader.d.ts +21 -0
- package/dist/ports/event-reader.d.ts.map +1 -0
- package/dist/ports/event-reader.js +12 -0
- package/dist/ports/event-reader.js.map +1 -0
- package/dist/ports/event-rotator.d.ts +39 -0
- package/dist/ports/event-rotator.d.ts.map +1 -0
- package/dist/ports/event-rotator.js +15 -0
- package/dist/ports/event-rotator.js.map +1 -0
- package/dist/ports/file-system.d.ts +48 -0
- package/dist/ports/file-system.d.ts.map +1 -0
- package/dist/ports/file-system.js +10 -0
- package/dist/ports/file-system.js.map +1 -0
- package/dist/ports/historical-observations.d.ts +39 -0
- package/dist/ports/historical-observations.d.ts.map +1 -0
- package/dist/ports/historical-observations.js +12 -0
- package/dist/ports/historical-observations.js.map +1 -0
- package/dist/ports/in-memory-source.d.ts +46 -0
- package/dist/ports/in-memory-source.d.ts.map +1 -0
- package/dist/ports/in-memory-source.js +69 -0
- package/dist/ports/in-memory-source.js.map +1 -0
- package/dist/ports/index.d.ts +32 -0
- package/dist/ports/index.d.ts.map +1 -0
- package/dist/ports/index.js +10 -0
- package/dist/ports/index.js.map +1 -0
- package/dist/ports/job-backed-executor.d.ts +139 -0
- package/dist/ports/job-backed-executor.d.ts.map +1 -0
- package/dist/ports/job-backed-executor.js +56 -0
- package/dist/ports/job-backed-executor.js.map +1 -0
- package/dist/ports/methodology-source.d.ts +95 -0
- package/dist/ports/methodology-source.d.ts.map +1 -0
- package/dist/ports/methodology-source.js +26 -0
- package/dist/ports/methodology-source.js.map +1 -0
- package/dist/ports/native-session-discovery.d.ts +20 -0
- package/dist/ports/native-session-discovery.d.ts.map +1 -0
- package/dist/ports/native-session-discovery.js +13 -0
- package/dist/ports/native-session-discovery.js.map +1 -0
- package/dist/ports/projection-store.d.ts +48 -0
- package/dist/ports/projection-store.d.ts.map +1 -0
- package/dist/ports/projection-store.js +17 -0
- package/dist/ports/projection-store.js.map +1 -0
- package/dist/ports/projection.d.ts +29 -0
- package/dist/ports/projection.d.ts.map +1 -0
- package/dist/ports/projection.js +13 -0
- package/dist/ports/projection.js.map +1 -0
- package/dist/ports/rate-governor.d.ts +17 -0
- package/dist/ports/rate-governor.d.ts.map +1 -0
- package/dist/ports/rate-governor.js +11 -0
- package/dist/ports/rate-governor.js.map +1 -0
- package/dist/ports/schedule-client.d.ts +29 -0
- package/dist/ports/schedule-client.d.ts.map +1 -0
- package/dist/ports/schedule-client.js +2 -0
- package/dist/ports/schedule-client.js.map +1 -0
- package/dist/ports/session-pool.d.ts +162 -0
- package/dist/ports/session-pool.d.ts.map +1 -0
- package/dist/ports/session-pool.js +21 -0
- package/dist/ports/session-pool.js.map +1 -0
- package/dist/ports/session-store-errors.d.ts +22 -0
- package/dist/ports/session-store-errors.d.ts.map +1 -0
- package/dist/ports/session-store-errors.js +29 -0
- package/dist/ports/session-store-errors.js.map +1 -0
- package/dist/ports/session-store-types.d.ts +132 -0
- package/dist/ports/session-store-types.d.ts.map +1 -0
- package/dist/ports/session-store-types.js +14 -0
- package/dist/ports/session-store-types.js.map +1 -0
- package/dist/ports/session-store.d.ts +69 -0
- package/dist/ports/session-store.d.ts.map +1 -0
- package/dist/ports/session-store.js +23 -0
- package/dist/ports/session-store.js.map +1 -0
- package/dist/ports/yaml-loader.d.ts +15 -0
- package/dist/ports/yaml-loader.d.ts.map +1 -0
- package/dist/ports/yaml-loader.js +13 -0
- package/dist/ports/yaml-loader.js.map +1 -0
- package/dist/scheduling/index.d.ts +6 -0
- package/dist/scheduling/index.d.ts.map +1 -0
- package/dist/scheduling/index.js +6 -0
- package/dist/scheduling/index.js.map +1 -0
- package/dist/scheduling/scheduled-pact.d.ts +97 -0
- package/dist/scheduling/scheduled-pact.d.ts.map +1 -0
- package/dist/scheduling/scheduled-pact.js +89 -0
- package/dist/scheduling/scheduled-pact.js.map +1 -0
- package/dist/sessions/__tests__/cognitive-modules.test.d.ts +10 -0
- package/dist/sessions/__tests__/cognitive-modules.test.d.ts.map +1 -0
- package/dist/sessions/__tests__/cognitive-modules.test.js +535 -0
- package/dist/sessions/__tests__/cognitive-modules.test.js.map +1 -0
- package/dist/sessions/__tests__/cognitive-provider.test.d.ts +13 -0
- package/dist/sessions/__tests__/cognitive-provider.test.d.ts.map +1 -0
- package/dist/sessions/__tests__/cognitive-provider.test.js +331 -0
- package/dist/sessions/__tests__/cognitive-provider.test.js.map +1 -0
- package/dist/sessions/__tests__/cognitive-sink.test.d.ts +19 -0
- package/dist/sessions/__tests__/cognitive-sink.test.d.ts.map +1 -0
- package/dist/sessions/__tests__/cognitive-sink.test.js +334 -0
- package/dist/sessions/__tests__/cognitive-sink.test.js.map +1 -0
- package/dist/sessions/__tests__/runtime-tools.test.d.ts +2 -0
- package/dist/sessions/__tests__/runtime-tools.test.d.ts.map +1 -0
- package/dist/sessions/__tests__/runtime-tools.test.js +83 -0
- package/dist/sessions/__tests__/runtime-tools.test.js.map +1 -0
- package/dist/sessions/auto-retro.d.ts +29 -0
- package/dist/sessions/auto-retro.d.ts.map +1 -0
- package/dist/sessions/auto-retro.js +181 -0
- package/dist/sessions/auto-retro.js.map +1 -0
- package/dist/sessions/auto-retro.test.d.ts +2 -0
- package/dist/sessions/auto-retro.test.d.ts.map +1 -0
- package/dist/sessions/auto-retro.test.js +361 -0
- package/dist/sessions/auto-retro.test.js.map +1 -0
- package/dist/sessions/channels.d.ts +55 -0
- package/dist/sessions/channels.d.ts.map +1 -0
- package/dist/sessions/channels.js +118 -0
- package/dist/sessions/channels.js.map +1 -0
- package/dist/sessions/channels.test.d.ts +2 -0
- package/dist/sessions/channels.test.d.ts.map +1 -0
- package/dist/sessions/channels.test.js +285 -0
- package/dist/sessions/channels.test.js.map +1 -0
- package/dist/sessions/cognitive-modules.d.ts +100 -0
- package/dist/sessions/cognitive-modules.d.ts.map +1 -0
- package/dist/sessions/cognitive-modules.js +458 -0
- package/dist/sessions/cognitive-modules.js.map +1 -0
- package/dist/sessions/cognitive-provider.d.ts +42 -0
- package/dist/sessions/cognitive-provider.d.ts.map +1 -0
- package/dist/sessions/cognitive-provider.js +208 -0
- package/dist/sessions/cognitive-provider.js.map +1 -0
- package/dist/sessions/cognitive-sink.d.ts +73 -0
- package/dist/sessions/cognitive-sink.d.ts.map +1 -0
- package/dist/sessions/cognitive-sink.js +154 -0
- package/dist/sessions/cognitive-sink.js.map +1 -0
- package/dist/sessions/diagnostics.d.ts +70 -0
- package/dist/sessions/diagnostics.d.ts.map +1 -0
- package/dist/sessions/diagnostics.js +129 -0
- package/dist/sessions/diagnostics.js.map +1 -0
- package/dist/sessions/diagnostics.test.d.ts +2 -0
- package/dist/sessions/diagnostics.test.d.ts.map +1 -0
- package/dist/sessions/diagnostics.test.js +135 -0
- package/dist/sessions/diagnostics.test.js.map +1 -0
- package/dist/sessions/index.d.ts +32 -0
- package/dist/sessions/index.d.ts.map +1 -0
- package/dist/sessions/index.js +33 -0
- package/dist/sessions/index.js.map +1 -0
- package/dist/sessions/pool.d.ts +218 -0
- package/dist/sessions/pool.d.ts.map +1 -0
- package/dist/sessions/pool.js +991 -0
- package/dist/sessions/pool.js.map +1 -0
- package/dist/sessions/pool.test.d.ts +2 -0
- package/dist/sessions/pool.test.d.ts.map +1 -0
- package/dist/sessions/pool.test.js +633 -0
- package/dist/sessions/pool.test.js.map +1 -0
- package/dist/sessions/print-session.d.ts +142 -0
- package/dist/sessions/print-session.d.ts.map +1 -0
- package/dist/sessions/print-session.js +325 -0
- package/dist/sessions/print-session.js.map +1 -0
- package/dist/sessions/print-session.test.d.ts +2 -0
- package/dist/sessions/print-session.test.d.ts.map +1 -0
- package/dist/sessions/print-session.test.js +418 -0
- package/dist/sessions/print-session.test.js.map +1 -0
- package/dist/sessions/runtime-tools.d.ts +22 -0
- package/dist/sessions/runtime-tools.d.ts.map +1 -0
- package/dist/sessions/runtime-tools.js +162 -0
- package/dist/sessions/runtime-tools.js.map +1 -0
- package/dist/sessions/scope-hook.d.ts +77 -0
- package/dist/sessions/scope-hook.d.ts.map +1 -0
- package/dist/sessions/scope-hook.js +323 -0
- package/dist/sessions/scope-hook.js.map +1 -0
- package/dist/sessions/scope-hook.test.d.ts +2 -0
- package/dist/sessions/scope-hook.test.d.ts.map +1 -0
- package/dist/sessions/scope-hook.test.js +249 -0
- package/dist/sessions/scope-hook.test.js.map +1 -0
- package/dist/sessions/session-store/checkpoint-sink-impl.d.ts +16 -0
- package/dist/sessions/session-store/checkpoint-sink-impl.d.ts.map +1 -0
- package/dist/sessions/session-store/checkpoint-sink-impl.js +191 -0
- package/dist/sessions/session-store/checkpoint-sink-impl.js.map +1 -0
- package/dist/sessions/session-store/checkpoint-sink-impl.test.d.ts +5 -0
- package/dist/sessions/session-store/checkpoint-sink-impl.test.d.ts.map +1 -0
- package/dist/sessions/session-store/checkpoint-sink-impl.test.js +137 -0
- package/dist/sessions/session-store/checkpoint-sink-impl.test.js.map +1 -0
- package/dist/sessions/session-store/conformance.d.ts +59 -0
- package/dist/sessions/session-store/conformance.d.ts.map +1 -0
- package/dist/sessions/session-store/conformance.js +172 -0
- package/dist/sessions/session-store/conformance.js.map +1 -0
- package/dist/sessions/session-store/conformance.test.d.ts +7 -0
- package/dist/sessions/session-store/conformance.test.d.ts.map +1 -0
- package/dist/sessions/session-store/conformance.test.js +22 -0
- package/dist/sessions/session-store/conformance.test.js.map +1 -0
- package/dist/sessions/session-store/in-memory-session-store.d.ts +23 -0
- package/dist/sessions/session-store/in-memory-session-store.d.ts.map +1 -0
- package/dist/sessions/session-store/in-memory-session-store.js +197 -0
- package/dist/sessions/session-store/in-memory-session-store.js.map +1 -0
- package/dist/sessions/session-store/in-memory-session-store.test.d.ts +6 -0
- package/dist/sessions/session-store/in-memory-session-store.test.d.ts.map +1 -0
- package/dist/sessions/session-store/in-memory-session-store.test.js +183 -0
- package/dist/sessions/session-store/in-memory-session-store.test.js.map +1 -0
- package/dist/sessions/session-store/index.d.ts +20 -0
- package/dist/sessions/session-store/index.d.ts.map +1 -0
- package/dist/sessions/session-store/index.js +15 -0
- package/dist/sessions/session-store/index.js.map +1 -0
- package/dist/sessions/session-store/resume.d.ts +88 -0
- package/dist/sessions/session-store/resume.d.ts.map +1 -0
- package/dist/sessions/session-store/resume.js +96 -0
- package/dist/sessions/session-store/resume.js.map +1 -0
- package/dist/sessions/session-store/resume.test.d.ts +5 -0
- package/dist/sessions/session-store/resume.test.d.ts.map +1 -0
- package/dist/sessions/session-store/resume.test.js +119 -0
- package/dist/sessions/session-store/resume.test.js.map +1 -0
- package/dist/sessions/spawn-queue.d.ts +28 -0
- package/dist/sessions/spawn-queue.d.ts.map +1 -0
- package/dist/sessions/spawn-queue.js +63 -0
- package/dist/sessions/spawn-queue.js.map +1 -0
- package/dist/sessions/spawn-queue.test.d.ts +2 -0
- package/dist/sessions/spawn-queue.test.d.ts.map +1 -0
- package/dist/sessions/spawn-queue.test.js +65 -0
- package/dist/sessions/spawn-queue.test.js.map +1 -0
- package/dist/sessions/types.d.ts +16 -0
- package/dist/sessions/types.d.ts.map +1 -0
- package/dist/sessions/types.js +11 -0
- package/dist/sessions/types.js.map +1 -0
- package/dist/sessions/worktree-stale.test.d.ts +2 -0
- package/dist/sessions/worktree-stale.test.d.ts.map +1 -0
- package/dist/sessions/worktree-stale.test.js +468 -0
- package/dist/sessions/worktree-stale.test.js.map +1 -0
- package/dist/strategy/artifact-store.d.ts +12 -0
- package/dist/strategy/artifact-store.d.ts.map +1 -0
- package/dist/strategy/artifact-store.js +12 -0
- package/dist/strategy/artifact-store.js.map +1 -0
- package/dist/strategy/artifact-store.test.d.ts +2 -0
- package/dist/strategy/artifact-store.test.d.ts.map +1 -0
- package/dist/strategy/artifact-store.test.js +170 -0
- package/dist/strategy/artifact-store.test.js.map +1 -0
- package/dist/strategy/context-load-executor.d.ts +23 -0
- package/dist/strategy/context-load-executor.d.ts.map +1 -0
- package/dist/strategy/context-load-executor.js +87 -0
- package/dist/strategy/context-load-executor.js.map +1 -0
- package/dist/strategy/context-load-executor.test.d.ts +16 -0
- package/dist/strategy/context-load-executor.test.d.ts.map +1 -0
- package/dist/strategy/context-load-executor.test.js +158 -0
- package/dist/strategy/context-load-executor.test.js.map +1 -0
- package/dist/strategy/cortex-cross-app-invoker.stub.d.ts +65 -0
- package/dist/strategy/cortex-cross-app-invoker.stub.d.ts.map +1 -0
- package/dist/strategy/cortex-cross-app-invoker.stub.js +68 -0
- package/dist/strategy/cortex-cross-app-invoker.stub.js.map +1 -0
- package/dist/strategy/cross-app-node-executor.d.ts +54 -0
- package/dist/strategy/cross-app-node-executor.d.ts.map +1 -0
- package/dist/strategy/cross-app-node-executor.js +98 -0
- package/dist/strategy/cross-app-node-executor.js.map +1 -0
- package/dist/strategy/cross-app-node-executor.test.d.ts +13 -0
- package/dist/strategy/cross-app-node-executor.test.d.ts.map +1 -0
- package/dist/strategy/cross-app-node-executor.test.js +160 -0
- package/dist/strategy/cross-app-node-executor.test.js.map +1 -0
- package/dist/strategy/gates.d.ts +13 -0
- package/dist/strategy/gates.d.ts.map +1 -0
- package/dist/strategy/gates.js +13 -0
- package/dist/strategy/gates.js.map +1 -0
- package/dist/strategy/gates.test.d.ts +2 -0
- package/dist/strategy/gates.test.d.ts.map +1 -0
- package/dist/strategy/gates.test.js +299 -0
- package/dist/strategy/gates.test.js.map +1 -0
- package/dist/strategy/human-approval-resolver.d.ts +23 -0
- package/dist/strategy/human-approval-resolver.d.ts.map +1 -0
- package/dist/strategy/human-approval-resolver.js +94 -0
- package/dist/strategy/human-approval-resolver.js.map +1 -0
- package/dist/strategy/human-approval-resolver.test.d.ts +16 -0
- package/dist/strategy/human-approval-resolver.test.d.ts.map +1 -0
- package/dist/strategy/human-approval-resolver.test.js +200 -0
- package/dist/strategy/human-approval-resolver.test.js.map +1 -0
- package/dist/strategy/in-process-cross-app-invoker.d.ts +105 -0
- package/dist/strategy/in-process-cross-app-invoker.d.ts.map +1 -0
- package/dist/strategy/in-process-cross-app-invoker.js +206 -0
- package/dist/strategy/in-process-cross-app-invoker.js.map +1 -0
- package/dist/strategy/in-process-cross-app-invoker.test.d.ts +15 -0
- package/dist/strategy/in-process-cross-app-invoker.test.d.ts.map +1 -0
- package/dist/strategy/in-process-cross-app-invoker.test.js +190 -0
- package/dist/strategy/in-process-cross-app-invoker.test.js.map +1 -0
- package/dist/strategy/index.d.ts +29 -0
- package/dist/strategy/index.d.ts.map +1 -0
- package/dist/strategy/index.js +29 -0
- package/dist/strategy/index.js.map +1 -0
- package/dist/strategy/pacta-strategy.d.ts +97 -0
- package/dist/strategy/pacta-strategy.d.ts.map +1 -0
- package/dist/strategy/pacta-strategy.js +117 -0
- package/dist/strategy/pacta-strategy.js.map +1 -0
- package/dist/strategy/pacta-strategy.test.d.ts +2 -0
- package/dist/strategy/pacta-strategy.test.d.ts.map +1 -0
- package/dist/strategy/pacta-strategy.test.js +234 -0
- package/dist/strategy/pacta-strategy.test.js.map +1 -0
- package/dist/strategy/retro-generator.d.ts +18 -0
- package/dist/strategy/retro-generator.d.ts.map +1 -0
- package/dist/strategy/retro-generator.js +22 -0
- package/dist/strategy/retro-generator.js.map +1 -0
- package/dist/strategy/retro-writer.d.ts +25 -0
- package/dist/strategy/retro-writer.d.ts.map +1 -0
- package/dist/strategy/retro-writer.js +65 -0
- package/dist/strategy/retro-writer.js.map +1 -0
- package/dist/strategy/strategy-executor.d.ts +39 -0
- package/dist/strategy/strategy-executor.d.ts.map +1 -0
- package/dist/strategy/strategy-executor.js +253 -0
- package/dist/strategy/strategy-executor.js.map +1 -0
- package/dist/strategy/strategy-executor.test.d.ts +8 -0
- package/dist/strategy/strategy-executor.test.d.ts.map +1 -0
- package/dist/strategy/strategy-executor.test.js +1301 -0
- package/dist/strategy/strategy-executor.test.js.map +1 -0
- package/dist/strategy/strategy-parser.d.ts +30 -0
- package/dist/strategy/strategy-parser.d.ts.map +1 -0
- package/dist/strategy/strategy-parser.js +30 -0
- package/dist/strategy/strategy-parser.js.map +1 -0
- package/dist/strategy/sub-strategy-source.d.ts +27 -0
- package/dist/strategy/sub-strategy-source.d.ts.map +1 -0
- package/dist/strategy/sub-strategy-source.js +77 -0
- package/dist/strategy/sub-strategy-source.js.map +1 -0
- package/dist/strategy/types.d.ts +12 -0
- package/dist/strategy/types.d.ts.map +1 -0
- package/dist/strategy/types.js +9 -0
- package/dist/strategy/types.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionStore + Checkpoint type definitions — PRD-061 / S4 §4.3.
|
|
3
|
+
*
|
|
4
|
+
* Owner: @methodts/runtime
|
|
5
|
+
* Frozen: 2026-04-14 (FCD surface `fcd-surface-session-store`)
|
|
6
|
+
*
|
|
7
|
+
* These types flow across the port interface and are serialized to every
|
|
8
|
+
* backing store. They MUST remain backend-neutral: no Mongo / BSON / file
|
|
9
|
+
* handle types are permitted to appear in these signatures (gate
|
|
10
|
+
* G-SESSIONSTORE-PORT-PURITY).
|
|
11
|
+
*/
|
|
12
|
+
export type SessionStatus = 'initializing' | 'running' | 'idle' | 'paused' | 'suspended' | 'completed' | 'failed' | 'dead';
|
|
13
|
+
/** Opaque reference to the pact that produced this session. */
|
|
14
|
+
export interface PactRef {
|
|
15
|
+
readonly id: string;
|
|
16
|
+
readonly version: string;
|
|
17
|
+
/** Hash of the resolved pact document — detects drift on resume. */
|
|
18
|
+
readonly fingerprint: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The canonical session-state envelope persisted by every SessionStore.
|
|
22
|
+
*
|
|
23
|
+
* Envelope version is frozen at 1 in v1 of the surface. Unknown schema
|
|
24
|
+
* versions MUST be rejected with `SCHEMA_INCOMPATIBLE` — silent coercion is
|
|
25
|
+
* explicitly forbidden.
|
|
26
|
+
*/
|
|
27
|
+
export interface SessionSnapshot {
|
|
28
|
+
readonly schemaVersion: 1;
|
|
29
|
+
readonly sessionId: string;
|
|
30
|
+
/** Stable scope id — appId in Cortex, workdir path in bridge. */
|
|
31
|
+
readonly scopeId: string;
|
|
32
|
+
readonly pactRef: PactRef;
|
|
33
|
+
readonly status: SessionStatus;
|
|
34
|
+
readonly createdAt: string;
|
|
35
|
+
readonly updatedAt: string;
|
|
36
|
+
/** Sequence of the latest appended checkpoint, or null if none. */
|
|
37
|
+
readonly latestCheckpointSequence: number | null;
|
|
38
|
+
readonly nickname?: string;
|
|
39
|
+
readonly parentSessionId?: string;
|
|
40
|
+
readonly depth: number;
|
|
41
|
+
/** Free-form per-adapter metadata — opaque to consumers. */
|
|
42
|
+
readonly metadata?: Record<string, unknown>;
|
|
43
|
+
}
|
|
44
|
+
/** Cursor into the bus event stream. */
|
|
45
|
+
export interface EventCursor {
|
|
46
|
+
readonly sequence: number;
|
|
47
|
+
readonly id: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Opaque blob from the agent's perspective. The adapter stores it; the
|
|
51
|
+
* runtime parses it. Large blobs (>16KB recommended threshold) should be
|
|
52
|
+
* written to an external blob ref.
|
|
53
|
+
*/
|
|
54
|
+
export type AgentStateBlob = {
|
|
55
|
+
readonly kind: 'inline';
|
|
56
|
+
readonly data: Record<string, unknown>;
|
|
57
|
+
} | {
|
|
58
|
+
readonly kind: 'blob-ref';
|
|
59
|
+
readonly ref: string;
|
|
60
|
+
readonly sizeBytes: number;
|
|
61
|
+
};
|
|
62
|
+
/** Durable reservation handle for an active LLM budget. */
|
|
63
|
+
export interface BudgetReservation {
|
|
64
|
+
readonly handle: string;
|
|
65
|
+
readonly expiresAt: string;
|
|
66
|
+
readonly amount: {
|
|
67
|
+
readonly usd: number;
|
|
68
|
+
readonly tokens: number;
|
|
69
|
+
};
|
|
70
|
+
/** Issuer tag — 'ctx.llm' | 'bridge/cost-governor' | ... */
|
|
71
|
+
readonly issuer: string;
|
|
72
|
+
}
|
|
73
|
+
/** Advisory hint for what the runtime should do on resume. */
|
|
74
|
+
export type NextAction = {
|
|
75
|
+
readonly kind: 'await-prompt';
|
|
76
|
+
} | {
|
|
77
|
+
readonly kind: 'continue-turn';
|
|
78
|
+
readonly pendingToolCalls?: readonly string[];
|
|
79
|
+
} | {
|
|
80
|
+
readonly kind: 'await-human-approval';
|
|
81
|
+
readonly gateId: string;
|
|
82
|
+
} | {
|
|
83
|
+
readonly kind: 'await-schedule';
|
|
84
|
+
readonly wakeAt: string;
|
|
85
|
+
} | {
|
|
86
|
+
readonly kind: 'terminal';
|
|
87
|
+
readonly status: SessionStatus;
|
|
88
|
+
};
|
|
89
|
+
/** One durable checkpoint. Append-only, monotonic per session. */
|
|
90
|
+
export interface Checkpoint {
|
|
91
|
+
readonly schemaVersion: 1;
|
|
92
|
+
readonly sequence: number;
|
|
93
|
+
readonly sessionId: string;
|
|
94
|
+
readonly createdAt: string;
|
|
95
|
+
readonly eventCursor: EventCursor;
|
|
96
|
+
readonly agentState: AgentStateBlob;
|
|
97
|
+
readonly pendingBudget: BudgetReservation | null;
|
|
98
|
+
readonly nextAction: NextAction;
|
|
99
|
+
readonly note?: string;
|
|
100
|
+
}
|
|
101
|
+
/** Lightweight checkpoint projection for listing. */
|
|
102
|
+
export interface CheckpointMeta {
|
|
103
|
+
readonly sequence: number;
|
|
104
|
+
readonly createdAt: string;
|
|
105
|
+
readonly note?: string;
|
|
106
|
+
readonly nextAction: NextAction;
|
|
107
|
+
}
|
|
108
|
+
/** Options accepted by `SessionStore.resume`. */
|
|
109
|
+
export interface ResumeOptions {
|
|
110
|
+
/** Requested lease TTL in ms. Store may clamp. Default 30_000. */
|
|
111
|
+
readonly leaseTtlMs?: number;
|
|
112
|
+
/** If true, require the pact fingerprint to match. Default true. */
|
|
113
|
+
readonly requireFingerprint?: boolean;
|
|
114
|
+
/** Optional fingerprint to match against `snapshot.pactRef.fingerprint`. */
|
|
115
|
+
readonly expectedFingerprint?: string;
|
|
116
|
+
}
|
|
117
|
+
/** Result of a successful `resume()` call. */
|
|
118
|
+
export interface ResumeContext {
|
|
119
|
+
readonly snapshot: SessionSnapshot;
|
|
120
|
+
readonly checkpoint: Checkpoint | null;
|
|
121
|
+
readonly fencingToken: string;
|
|
122
|
+
readonly leaseExpiresAt: string;
|
|
123
|
+
/**
|
|
124
|
+
* Populated only if the adapter was wired with an EventReader.
|
|
125
|
+
* Callers without a reader should coordinate replay themselves.
|
|
126
|
+
*/
|
|
127
|
+
readonly replayHint?: {
|
|
128
|
+
readonly fromSequence: number;
|
|
129
|
+
readonly fromEventId: string;
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=session-store-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-store-types.d.ts","sourceRoot":"","sources":["../../src/ports/session-store-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* SessionStore + Checkpoint type definitions — PRD-061 / S4 §4.3.
|
|
4
|
+
*
|
|
5
|
+
* Owner: @methodts/runtime
|
|
6
|
+
* Frozen: 2026-04-14 (FCD surface `fcd-surface-session-store`)
|
|
7
|
+
*
|
|
8
|
+
* These types flow across the port interface and are serialized to every
|
|
9
|
+
* backing store. They MUST remain backend-neutral: no Mongo / BSON / file
|
|
10
|
+
* handle types are permitted to appear in these signatures (gate
|
|
11
|
+
* G-SESSIONSTORE-PORT-PURITY).
|
|
12
|
+
*/
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=session-store-types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-store-types.js","sourceRoot":"","sources":["../../src/ports/session-store-types.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SessionStore — persistence port for agent sessions and checkpoints.
|
|
3
|
+
*
|
|
4
|
+
* Owner: @methodts/runtime
|
|
5
|
+
* Consumers: @methodts/pacta (ResumableMode), @methodts/methodts (strategy executor),
|
|
6
|
+
* @methodts/bridge (sessions + strategies domains), @methodts/agent-runtime
|
|
7
|
+
* Producers: FsSessionStore (bridge JSONL+FS), CortexSessionStore (ctx.storage)
|
|
8
|
+
* Direction: runtime ↔ adapter (CRUD + lease)
|
|
9
|
+
* Co-designed: 2026-04-14 (FCD surface session `fcd-surface-session-store`)
|
|
10
|
+
* PRD: .method/sessions/fcd-design-prd-061-session-store/prd.md
|
|
11
|
+
*
|
|
12
|
+
* Contract invariants:
|
|
13
|
+
* I-1 load(sessionId) is idempotent; it never mutates state.
|
|
14
|
+
* I-2 resume(sessionId, workerId) acquires a lease; concurrent callers receive
|
|
15
|
+
* FENCED from that point until the lease expires or is released.
|
|
16
|
+
* I-3 appendCheckpoint rejects stale fencing tokens with FENCED.
|
|
17
|
+
* I-4 Checkpoints for a given session are totally ordered by `sequence`.
|
|
18
|
+
* I-5 The store never blocks emit of bus events — CheckpointSink is async.
|
|
19
|
+
* I-6 Implementations must not leak backend-specific types through this port.
|
|
20
|
+
*/
|
|
21
|
+
import type { Checkpoint, CheckpointMeta, ResumeContext, ResumeOptions, SessionSnapshot, SessionStatus } from './session-store-types.js';
|
|
22
|
+
export interface SessionStore {
|
|
23
|
+
/** Create a new session record. Throws DUPLICATE if sessionId exists. */
|
|
24
|
+
create(snapshot: SessionSnapshot): Promise<void>;
|
|
25
|
+
/** Load the latest snapshot or null. Pure read; no lease. */
|
|
26
|
+
load(sessionId: string): Promise<SessionSnapshot | null>;
|
|
27
|
+
/**
|
|
28
|
+
* Resume a session. Atomically:
|
|
29
|
+
* (1) loads the latest snapshot + latest checkpoint,
|
|
30
|
+
* (2) acquires a lease owned by `workerId`,
|
|
31
|
+
* (3) returns a ResumeContext carrying a fencingToken.
|
|
32
|
+
*
|
|
33
|
+
* If a live lease is held by a different worker: `SessionStoreError{ FENCED }`.
|
|
34
|
+
* If the caller's lease is still valid (same workerId), the existing token is
|
|
35
|
+
* returned (idempotent re-fetch — invariant for G-RESUME-IDEMPOTENT).
|
|
36
|
+
*/
|
|
37
|
+
resume(sessionId: string, workerId: string, opts?: ResumeOptions): Promise<ResumeContext>;
|
|
38
|
+
/** Release a lease early. Idempotent. */
|
|
39
|
+
releaseLease(sessionId: string, fencingToken: string): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* Renew a lease before it expires. Throws FENCED if stolen.
|
|
42
|
+
* Returns the new expiry timestamp.
|
|
43
|
+
*/
|
|
44
|
+
renewLease(sessionId: string, fencingToken: string, ttlMs?: number): Promise<string>;
|
|
45
|
+
/**
|
|
46
|
+
* Append a new checkpoint. Must carry a valid fencingToken from an
|
|
47
|
+
* active lease held by this worker. Rejects stale tokens with FENCED.
|
|
48
|
+
* Updates the snapshot's `latestCheckpointSequence` atomically.
|
|
49
|
+
*/
|
|
50
|
+
appendCheckpoint(sessionId: string, checkpoint: Checkpoint, fencingToken: string): Promise<void>;
|
|
51
|
+
/** Load a specific checkpoint or null. */
|
|
52
|
+
loadCheckpoint(sessionId: string, sequence: number): Promise<Checkpoint | null>;
|
|
53
|
+
/** Load the latest checkpoint or null. */
|
|
54
|
+
loadLatestCheckpoint(sessionId: string): Promise<Checkpoint | null>;
|
|
55
|
+
/**
|
|
56
|
+
* List checkpoints for a session (most-recent first).
|
|
57
|
+
* Bounded by `limit`; default 10.
|
|
58
|
+
*/
|
|
59
|
+
listCheckpoints(sessionId: string, limit?: number): Promise<CheckpointMeta[]>;
|
|
60
|
+
/**
|
|
61
|
+
* Mark a session terminal. Sets status, persists the final snapshot,
|
|
62
|
+
* releases any held lease. Checkpoint ring is retained per the store's
|
|
63
|
+
* retention policy.
|
|
64
|
+
*/
|
|
65
|
+
finalize(sessionId: string, status: SessionStatus, reason?: string): Promise<void>;
|
|
66
|
+
/** Remove a session and all its checkpoints. Irreversible. */
|
|
67
|
+
destroy(sessionId: string): Promise<void>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=session-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../src/ports/session-store.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,aAAa,EACb,aAAa,EACb,eAAe,EACf,aAAa,EACd,MAAM,0BAA0B,CAAC;AAElC,MAAM,WAAW,YAAY;IAG3B,yEAAyE;IACzE,MAAM,CAAC,QAAQ,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjD,6DAA6D;IAC7D,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAEzD;;;;;;;;;OASG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE1F,yCAAyC;IACzC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAIrF;;;;OAIG;IACH,gBAAgB,CACd,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,0CAA0C;IAC1C,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAEhF,0CAA0C;IAC1C,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IAEpE;;;OAGG;IACH,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;IAI9E;;;;OAIG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnF,8DAA8D;IAC9D,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* SessionStore — persistence port for agent sessions and checkpoints.
|
|
4
|
+
*
|
|
5
|
+
* Owner: @methodts/runtime
|
|
6
|
+
* Consumers: @methodts/pacta (ResumableMode), @methodts/methodts (strategy executor),
|
|
7
|
+
* @methodts/bridge (sessions + strategies domains), @methodts/agent-runtime
|
|
8
|
+
* Producers: FsSessionStore (bridge JSONL+FS), CortexSessionStore (ctx.storage)
|
|
9
|
+
* Direction: runtime ↔ adapter (CRUD + lease)
|
|
10
|
+
* Co-designed: 2026-04-14 (FCD surface session `fcd-surface-session-store`)
|
|
11
|
+
* PRD: .method/sessions/fcd-design-prd-061-session-store/prd.md
|
|
12
|
+
*
|
|
13
|
+
* Contract invariants:
|
|
14
|
+
* I-1 load(sessionId) is idempotent; it never mutates state.
|
|
15
|
+
* I-2 resume(sessionId, workerId) acquires a lease; concurrent callers receive
|
|
16
|
+
* FENCED from that point until the lease expires or is released.
|
|
17
|
+
* I-3 appendCheckpoint rejects stale fencing tokens with FENCED.
|
|
18
|
+
* I-4 Checkpoints for a given session are totally ordered by `sequence`.
|
|
19
|
+
* I-5 The store never blocks emit of bus events — CheckpointSink is async.
|
|
20
|
+
* I-6 Implementations must not leak backend-specific types through this port.
|
|
21
|
+
*/
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=session-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../src/ports/session-store.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;;;;;;;;;;;;;;;;;GAmBG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YamlLoader — Port interface for YAML parse/dump.
|
|
3
|
+
*
|
|
4
|
+
* PRD-057 / S2 §5.3: Only the interface lives in runtime. The js-yaml
|
|
5
|
+
* adapter (`JsYamlLoader`) stays in bridge.
|
|
6
|
+
*
|
|
7
|
+
* Note: Runtime itself may still depend on js-yaml as a utility (parser is
|
|
8
|
+
* transport-free) — what stays in bridge is the **adapter** that implements
|
|
9
|
+
* this port surface.
|
|
10
|
+
*/
|
|
11
|
+
export interface YamlLoader {
|
|
12
|
+
load(content: string): unknown;
|
|
13
|
+
dump(value: unknown): string;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=yaml-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-loader.d.ts","sourceRoot":"","sources":["../../src/ports/yaml-loader.ts"],"names":[],"mappings":"AACA;;;;;;;;;GASG;AAIH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;CAC9B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* YamlLoader — Port interface for YAML parse/dump.
|
|
4
|
+
*
|
|
5
|
+
* PRD-057 / S2 §5.3: Only the interface lives in runtime. The js-yaml
|
|
6
|
+
* adapter (`JsYamlLoader`) stays in bridge.
|
|
7
|
+
*
|
|
8
|
+
* Note: Runtime itself may still depend on js-yaml as a utility (parser is
|
|
9
|
+
* transport-free) — what stays in bridge is the **adapter** that implements
|
|
10
|
+
* this port surface.
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=yaml-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yaml-loader.js","sourceRoot":"","sources":["../../src/ports/yaml-loader.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @methodts/runtime/scheduling — PRD-062 / S5.
|
|
3
|
+
*/
|
|
4
|
+
export { ScheduledPact, isScheduledPactPayload, } from './scheduled-pact.js';
|
|
5
|
+
export type { ScheduleOptions, ScheduledPactPayload, ScheduleBindOptions, } from './scheduled-pact.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/scheduling/index.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,EACL,aAAa,EACb,sBAAsB,GACvB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,eAAe,EACf,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scheduling/index.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;GAEG;AAEH,OAAO,EACL,aAAa,EACb,sBAAsB,GACvB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScheduledPact — binds a Cortex-app `schedules[]` entry to a pact factory.
|
|
3
|
+
*
|
|
4
|
+
* PRD-062 / S5 §2.3. Frozen: 2026-04-14.
|
|
5
|
+
*
|
|
6
|
+
* Two usage modes:
|
|
7
|
+
*
|
|
8
|
+
* Declarative (preferred for Wave 1):
|
|
9
|
+
* ```
|
|
10
|
+
* cortexApp({
|
|
11
|
+
* schedules: [{
|
|
12
|
+
* name: 'daily-twin-report',
|
|
13
|
+
* cron: '0 9 * * MON-FRI',
|
|
14
|
+
* job: 'method.pact.continue',
|
|
15
|
+
* payload: ScheduledPact.payload('daily-twin-report', {
|
|
16
|
+
* initialContext: { twinId: 'franco' },
|
|
17
|
+
* budgetStrategy: 'fresh-per-continuation',
|
|
18
|
+
* perTickBudgetUsd: 2.0,
|
|
19
|
+
* }),
|
|
20
|
+
* }],
|
|
21
|
+
* });
|
|
22
|
+
* ```
|
|
23
|
+
*
|
|
24
|
+
* Imperative:
|
|
25
|
+
* ```
|
|
26
|
+
* await ScheduledPact.bind(ctx.schedule, {
|
|
27
|
+
* name: 'incident-sla-check',
|
|
28
|
+
* cron: '* /15 * * * *',
|
|
29
|
+
* pactKey: 'incident-sla-check',
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* The helper's `bind`/`unbind` static methods operate on a `ScheduleClient`
|
|
34
|
+
* port (S5 §2.3). They never import from `@cortex/infra` or
|
|
35
|
+
* `EventBridgeScheduler` — gate `G-BOUNDARY`.
|
|
36
|
+
*/
|
|
37
|
+
import type { BudgetCarryStrategy } from '../ports/continuation-envelope.js';
|
|
38
|
+
import type { ScheduleClient } from '../ports/schedule-client.js';
|
|
39
|
+
/**
|
|
40
|
+
* Options passed into `ScheduledPact.payload()`. All optional; defaults
|
|
41
|
+
* documented per field.
|
|
42
|
+
*/
|
|
43
|
+
export interface ScheduleOptions {
|
|
44
|
+
/** Input context passed to the pact factory on each tick. */
|
|
45
|
+
initialContext?: Record<string, unknown>;
|
|
46
|
+
/** Per-tick budget cap (USD). Overrides pact default. */
|
|
47
|
+
perTickBudgetUsd?: number;
|
|
48
|
+
/** Budget strategy for this scheduled pact. Default `fresh-per-continuation`. */
|
|
49
|
+
budgetStrategy?: BudgetCarryStrategy;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The JSON payload a Cortex schedule entry carries to instantiate the
|
|
53
|
+
* named pact on tick. Opaque to Cortex; parsed by the runtime handler.
|
|
54
|
+
*
|
|
55
|
+
* The `kind: 'scheduled-pact-tick'` discriminator lets the single
|
|
56
|
+
* `method.pact.continue` handler distinguish synthetic schedule starts
|
|
57
|
+
* from real continuation envelopes.
|
|
58
|
+
*/
|
|
59
|
+
export interface ScheduledPactPayload {
|
|
60
|
+
kind: 'scheduled-pact-tick';
|
|
61
|
+
pactKey: string;
|
|
62
|
+
initialContext: Record<string, unknown>;
|
|
63
|
+
budgetStrategy: BudgetCarryStrategy;
|
|
64
|
+
perTickBudgetUsd?: number;
|
|
65
|
+
}
|
|
66
|
+
export interface ScheduleBindOptions {
|
|
67
|
+
name: string;
|
|
68
|
+
cron: string;
|
|
69
|
+
pactKey: string;
|
|
70
|
+
options?: ScheduleOptions;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* ScheduledPact — static helper. Not constructible; used as a namespace.
|
|
74
|
+
*/
|
|
75
|
+
export declare const ScheduledPact: {
|
|
76
|
+
/**
|
|
77
|
+
* Build the JSON payload a Cortex schedule entry must carry to instantiate
|
|
78
|
+
* the named pact on tick. Opaque to Cortex; parsed by the runtime handler.
|
|
79
|
+
*/
|
|
80
|
+
readonly payload: (pactKey: string, options?: ScheduleOptions) => ScheduledPactPayload;
|
|
81
|
+
/**
|
|
82
|
+
* Register the schedule at runtime against `ctx.schedule`. Useful for
|
|
83
|
+
* pacts created/destroyed based on runtime state (e.g. user-configured
|
|
84
|
+
* schedules in the Twin UI). Returns the schedule name for later
|
|
85
|
+
* `unbind`.
|
|
86
|
+
*/
|
|
87
|
+
readonly bind: (schedules: ScheduleClient, options: ScheduleBindOptions) => Promise<string>;
|
|
88
|
+
/** Unbind a previously registered schedule. Idempotent. */
|
|
89
|
+
readonly unbind: (schedules: ScheduleClient, name: string) => Promise<void>;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* Type guard — narrows an unknown payload to `ScheduledPactPayload`.
|
|
93
|
+
* Used by the continuation handler to distinguish schedule ticks from
|
|
94
|
+
* regular continuation envelopes.
|
|
95
|
+
*/
|
|
96
|
+
export declare function isScheduledPactPayload(payload: unknown): payload is ScheduledPactPayload;
|
|
97
|
+
//# sourceMappingURL=scheduled-pact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled-pact.d.ts","sourceRoot":"","sources":["../../src/scheduling/scheduled-pact.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,cAAc,EAAE,mBAAmB,CAAC;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;IACxB;;;OAGG;gCACc,MAAM,YAAY,eAAe,KAAG,oBAAoB;IAazE;;;;;OAKG;+BACmB,cAAc,WAAW,mBAAmB,KAAG,OAAO,CAAC,MAAM,CAAC;IAUpF,2DAA2D;iCACnC,cAAc,QAAQ,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;CAG5D,CAAC;AAEX;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,oBAAoB,CAIxF"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* ScheduledPact — binds a Cortex-app `schedules[]` entry to a pact factory.
|
|
4
|
+
*
|
|
5
|
+
* PRD-062 / S5 §2.3. Frozen: 2026-04-14.
|
|
6
|
+
*
|
|
7
|
+
* Two usage modes:
|
|
8
|
+
*
|
|
9
|
+
* Declarative (preferred for Wave 1):
|
|
10
|
+
* ```
|
|
11
|
+
* cortexApp({
|
|
12
|
+
* schedules: [{
|
|
13
|
+
* name: 'daily-twin-report',
|
|
14
|
+
* cron: '0 9 * * MON-FRI',
|
|
15
|
+
* job: 'method.pact.continue',
|
|
16
|
+
* payload: ScheduledPact.payload('daily-twin-report', {
|
|
17
|
+
* initialContext: { twinId: 'franco' },
|
|
18
|
+
* budgetStrategy: 'fresh-per-continuation',
|
|
19
|
+
* perTickBudgetUsd: 2.0,
|
|
20
|
+
* }),
|
|
21
|
+
* }],
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* Imperative:
|
|
26
|
+
* ```
|
|
27
|
+
* await ScheduledPact.bind(ctx.schedule, {
|
|
28
|
+
* name: 'incident-sla-check',
|
|
29
|
+
* cron: '* /15 * * * *',
|
|
30
|
+
* pactKey: 'incident-sla-check',
|
|
31
|
+
* });
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* The helper's `bind`/`unbind` static methods operate on a `ScheduleClient`
|
|
35
|
+
* port (S5 §2.3). They never import from `@cortex/infra` or
|
|
36
|
+
* `EventBridgeScheduler` — gate `G-BOUNDARY`.
|
|
37
|
+
*/
|
|
38
|
+
/**
|
|
39
|
+
* ScheduledPact — static helper. Not constructible; used as a namespace.
|
|
40
|
+
*/
|
|
41
|
+
export const ScheduledPact = {
|
|
42
|
+
/**
|
|
43
|
+
* Build the JSON payload a Cortex schedule entry must carry to instantiate
|
|
44
|
+
* the named pact on tick. Opaque to Cortex; parsed by the runtime handler.
|
|
45
|
+
*/
|
|
46
|
+
payload(pactKey, options) {
|
|
47
|
+
const payload = {
|
|
48
|
+
kind: 'scheduled-pact-tick',
|
|
49
|
+
pactKey,
|
|
50
|
+
initialContext: options?.initialContext ?? {},
|
|
51
|
+
budgetStrategy: options?.budgetStrategy ?? 'fresh-per-continuation',
|
|
52
|
+
};
|
|
53
|
+
if (options?.perTickBudgetUsd !== undefined) {
|
|
54
|
+
payload.perTickBudgetUsd = options.perTickBudgetUsd;
|
|
55
|
+
}
|
|
56
|
+
return payload;
|
|
57
|
+
},
|
|
58
|
+
/**
|
|
59
|
+
* Register the schedule at runtime against `ctx.schedule`. Useful for
|
|
60
|
+
* pacts created/destroyed based on runtime state (e.g. user-configured
|
|
61
|
+
* schedules in the Twin UI). Returns the schedule name for later
|
|
62
|
+
* `unbind`.
|
|
63
|
+
*/
|
|
64
|
+
async bind(schedules, options) {
|
|
65
|
+
const payload = ScheduledPact.payload(options.pactKey, options.options);
|
|
66
|
+
await schedules.create(options.name, {
|
|
67
|
+
cron: options.cron,
|
|
68
|
+
job: 'method.pact.continue',
|
|
69
|
+
payload,
|
|
70
|
+
});
|
|
71
|
+
return options.name;
|
|
72
|
+
},
|
|
73
|
+
/** Unbind a previously registered schedule. Idempotent. */
|
|
74
|
+
async unbind(schedules, name) {
|
|
75
|
+
await schedules.delete(name);
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Type guard — narrows an unknown payload to `ScheduledPactPayload`.
|
|
80
|
+
* Used by the continuation handler to distinguish schedule ticks from
|
|
81
|
+
* regular continuation envelopes.
|
|
82
|
+
*/
|
|
83
|
+
export function isScheduledPactPayload(payload) {
|
|
84
|
+
if (!payload || typeof payload !== 'object')
|
|
85
|
+
return false;
|
|
86
|
+
const p = payload;
|
|
87
|
+
return p.kind === 'scheduled-pact-tick' && typeof p.pactKey === 'string';
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=scheduled-pact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scheduled-pact.js","sourceRoot":"","sources":["../../src/scheduling/scheduled-pact.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAyCH;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B;;;OAGG;IACH,OAAO,CAAC,OAAe,EAAE,OAAyB;QAChD,MAAM,OAAO,GAAyB;YACpC,IAAI,EAAE,qBAAqB;YAC3B,OAAO;YACP,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,EAAE;YAC7C,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,wBAAwB;SACpE,CAAC;QACF,IAAI,OAAO,EAAE,gBAAgB,KAAK,SAAS,EAAE,CAAC;YAC5C,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACtD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAC,SAAyB,EAAE,OAA4B;QAChE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACxE,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE;YACnC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,GAAG,EAAE,sBAAsB;YAC3B,OAAO;SACR,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,2DAA2D;IAC3D,KAAK,CAAC,MAAM,CAAC,SAAyB,EAAE,IAAY;QAClD,MAAM,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CACO,CAAC;AAEX;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,CAAC,GAAG,OAAgD,CAAC;IAC3D,OAAO,CAAC,CAAC,IAAI,KAAK,qBAAqB,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC;AAC3E,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for cognitive-modules.ts — BridgeReasonerActorModule and BridgeMonitorModule.
|
|
3
|
+
*
|
|
4
|
+
* PRD 042 Phase 1-4: CognitiveModule implementations extracted from the
|
|
5
|
+
* monolithic cognitive-provider.ts inline loop, plus manual composition integration.
|
|
6
|
+
*
|
|
7
|
+
* 12 test scenarios covering AC-1 through AC-7 and AC-11.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=cognitive-modules.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cognitive-modules.test.d.ts","sourceRoot":"","sources":["../../../src/sessions/__tests__/cognitive-modules.test.ts"],"names":[],"mappings":"AACA;;;;;;;GAOG"}
|