@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,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CortexCrossAppInvoker — live Cortex adapter for the CrossAppInvoker port.
|
|
3
|
+
*
|
|
4
|
+
* STATUS: STUB — BLOCKED ON CORTEX PRD-080.
|
|
5
|
+
*
|
|
6
|
+
* PRD-067 Track B ships this class as a live adapter wrapping
|
|
7
|
+
* `ctx.apps.invoke` (PRD-080 §5.7). That capability is `🔜 deferred` in
|
|
8
|
+
* Cortex Wave 5 — Method cannot implement the real adapter until PRD-080
|
|
9
|
+
* freezes.
|
|
10
|
+
*
|
|
11
|
+
* This stub exists so:
|
|
12
|
+
* 1. The composition root can reference `CortexCrossAppInvoker` by name —
|
|
13
|
+
* the class + construction surface is named now so wiring code can be
|
|
14
|
+
* drafted against it.
|
|
15
|
+
* 2. Accidental wiring in test/dev bridges before PRD-080 lands fails
|
|
16
|
+
* fast with a typed, self-describing error rather than a silent
|
|
17
|
+
* undefined-behavior path.
|
|
18
|
+
* 3. When PRD-080 thaws, implementation lives next to this stub — a
|
|
19
|
+
* single file replacement (or `.stub.ts` → `.ts` rename + body swap)
|
|
20
|
+
* and the port surface stays identical.
|
|
21
|
+
*
|
|
22
|
+
* DO NOT call `new CortexCrossAppInvoker()` in production pacts. For tests
|
|
23
|
+
* and single-process demos use `InProcessCrossAppInvoker` instead.
|
|
24
|
+
*
|
|
25
|
+
* The eventual real home for the live adapter is `@methodts/agent-runtime/cortex/`
|
|
26
|
+
* (PRD-067 §7.2) — the stub lives in `@methodts/runtime/strategy/` for now so
|
|
27
|
+
* that the adapter class name is discoverable alongside the port it
|
|
28
|
+
* implements and the simulator it will replace.
|
|
29
|
+
*/
|
|
30
|
+
import { type CrossAppInvokeRequest, type CrossAppInvokeResult, type CrossAppInvoker, type CrossAppInvokerCapabilities } from '../ports/cross-app-invoker.js';
|
|
31
|
+
/** Thrown whenever any method on `CortexCrossAppInvoker` is called while
|
|
32
|
+
* PRD-080 remains deferred. Carries the PRD reference in the message for
|
|
33
|
+
* fast triage. */
|
|
34
|
+
export declare class CortexCrossAppInvokerNotImplementedError extends Error {
|
|
35
|
+
readonly code: "CORTEX_CROSS_APP_INVOKER_NOT_IMPLEMENTED";
|
|
36
|
+
constructor(methodName: string);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Options the live adapter will accept once PRD-080 ships. Named now so
|
|
40
|
+
* composition-root wiring can be drafted; the fields will be honored by the
|
|
41
|
+
* real implementation.
|
|
42
|
+
*/
|
|
43
|
+
export interface CortexCrossAppInvokerOptions {
|
|
44
|
+
/** Cortex SDK `ctx.apps` handle (PRD-080 §5.7). The stub takes `unknown`
|
|
45
|
+
* because the real `CortexCtxApps` type lives in `@cortex/sdk` — that
|
|
46
|
+
* import is forbidden from `@methodts/runtime` (G-BOUNDARY). The live
|
|
47
|
+
* adapter in `@methodts/agent-runtime/cortex/` will type this properly. */
|
|
48
|
+
readonly ctxApps: unknown;
|
|
49
|
+
/** App ids from the tenant's `requires.apps[]` manifest block — seeds
|
|
50
|
+
* `capabilities().allowedTargetAppIds` so compose-time checks reject
|
|
51
|
+
* un-declared targets before dispatch. */
|
|
52
|
+
readonly allowedTargetAppIds: ReadonlySet<string>;
|
|
53
|
+
/** Maximum RFC 8693 delegation depth — defaults to
|
|
54
|
+
* `CROSS_APP_DEFAULT_MAX_DELEGATION_DEPTH` (= 2) per PRD-061/PRD-080. */
|
|
55
|
+
readonly maxDelegationDepth?: number;
|
|
56
|
+
}
|
|
57
|
+
/** Live Cortex adapter — STUB pending PRD-080. Every method throws. */
|
|
58
|
+
export declare class CortexCrossAppInvoker implements CrossAppInvoker {
|
|
59
|
+
private readonly allowedTargetAppIds;
|
|
60
|
+
private readonly maxDelegationDepth;
|
|
61
|
+
constructor(options: CortexCrossAppInvokerOptions);
|
|
62
|
+
invoke<Input = unknown, Output = unknown>(_request: CrossAppInvokeRequest<Input>): Promise<CrossAppInvokeResult<Output>>;
|
|
63
|
+
capabilities(): CrossAppInvokerCapabilities;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=cortex-cross-app-invoker.stub.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cortex-cross-app-invoker.stub.d.ts","sourceRoot":"","sources":["../../src/strategy/cortex-cross-app-invoker.stub.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,2BAA2B,EACjC,MAAM,+BAA+B,CAAC;AAEvC;;mBAEmB;AACnB,qBAAa,wCAAyC,SAAQ,KAAK;IACjE,QAAQ,CAAC,IAAI,EAAG,0CAA0C,CAAU;gBACxD,UAAU,EAAE,MAAM;CAQ/B;AAED;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;;gFAG4E;IAC5E,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAE1B;;+CAE2C;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAElD;8EAC0E;IAC1E,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,uEAAuE;AACvE,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAsB;IAC1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;gBAEhC,OAAO,EAAE,4BAA4B;IAW3C,MAAM,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO,EAC5C,QAAQ,EAAE,qBAAqB,CAAC,KAAK,CAAC,GACrC,OAAO,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAIxC,YAAY,IAAI,2BAA2B;CAO5C"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* CortexCrossAppInvoker — live Cortex adapter for the CrossAppInvoker port.
|
|
4
|
+
*
|
|
5
|
+
* STATUS: STUB — BLOCKED ON CORTEX PRD-080.
|
|
6
|
+
*
|
|
7
|
+
* PRD-067 Track B ships this class as a live adapter wrapping
|
|
8
|
+
* `ctx.apps.invoke` (PRD-080 §5.7). That capability is `🔜 deferred` in
|
|
9
|
+
* Cortex Wave 5 — Method cannot implement the real adapter until PRD-080
|
|
10
|
+
* freezes.
|
|
11
|
+
*
|
|
12
|
+
* This stub exists so:
|
|
13
|
+
* 1. The composition root can reference `CortexCrossAppInvoker` by name —
|
|
14
|
+
* the class + construction surface is named now so wiring code can be
|
|
15
|
+
* drafted against it.
|
|
16
|
+
* 2. Accidental wiring in test/dev bridges before PRD-080 lands fails
|
|
17
|
+
* fast with a typed, self-describing error rather than a silent
|
|
18
|
+
* undefined-behavior path.
|
|
19
|
+
* 3. When PRD-080 thaws, implementation lives next to this stub — a
|
|
20
|
+
* single file replacement (or `.stub.ts` → `.ts` rename + body swap)
|
|
21
|
+
* and the port surface stays identical.
|
|
22
|
+
*
|
|
23
|
+
* DO NOT call `new CortexCrossAppInvoker()` in production pacts. For tests
|
|
24
|
+
* and single-process demos use `InProcessCrossAppInvoker` instead.
|
|
25
|
+
*
|
|
26
|
+
* The eventual real home for the live adapter is `@methodts/agent-runtime/cortex/`
|
|
27
|
+
* (PRD-067 §7.2) — the stub lives in `@methodts/runtime/strategy/` for now so
|
|
28
|
+
* that the adapter class name is discoverable alongside the port it
|
|
29
|
+
* implements and the simulator it will replace.
|
|
30
|
+
*/
|
|
31
|
+
/** Thrown whenever any method on `CortexCrossAppInvoker` is called while
|
|
32
|
+
* PRD-080 remains deferred. Carries the PRD reference in the message for
|
|
33
|
+
* fast triage. */
|
|
34
|
+
export class CortexCrossAppInvokerNotImplementedError extends Error {
|
|
35
|
+
code = 'CORTEX_CROSS_APP_INVOKER_NOT_IMPLEMENTED';
|
|
36
|
+
constructor(methodName) {
|
|
37
|
+
super(`CortexCrossAppInvoker.${methodName}() — NotImplemented: Blocked on Cortex PRD-080 (App-to-App Dependencies, \`🔜 deferred\` in Wave 5). ` +
|
|
38
|
+
`For tests + single-process demos, use InProcessCrossAppInvoker from @methodts/runtime/strategy. ` +
|
|
39
|
+
`The real adapter ships when PRD-080 thaws and Cortex exposes ctx.apps.invoke (PRD-080 §5.7).`);
|
|
40
|
+
this.name = 'CortexCrossAppInvokerNotImplementedError';
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/** Live Cortex adapter — STUB pending PRD-080. Every method throws. */
|
|
44
|
+
export class CortexCrossAppInvoker {
|
|
45
|
+
allowedTargetAppIds;
|
|
46
|
+
maxDelegationDepth;
|
|
47
|
+
constructor(options) {
|
|
48
|
+
// Capture config so `capabilities()` can at least report the intended
|
|
49
|
+
// allowlist — useful for compose-time error messages even before the
|
|
50
|
+
// live adapter exists.
|
|
51
|
+
this.allowedTargetAppIds = options.allowedTargetAppIds;
|
|
52
|
+
this.maxDelegationDepth = options.maxDelegationDepth ?? 2;
|
|
53
|
+
// Intentionally DO NOT throw in the constructor — callers may want to
|
|
54
|
+
// inspect `capabilities()` without dispatching. Throw on `invoke` only.
|
|
55
|
+
void options.ctxApps;
|
|
56
|
+
}
|
|
57
|
+
async invoke(_request) {
|
|
58
|
+
throw new CortexCrossAppInvokerNotImplementedError('invoke');
|
|
59
|
+
}
|
|
60
|
+
capabilities() {
|
|
61
|
+
return {
|
|
62
|
+
enabled: false,
|
|
63
|
+
maxDelegationDepth: this.maxDelegationDepth,
|
|
64
|
+
allowedTargetAppIds: this.allowedTargetAppIds,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=cortex-cross-app-invoker.stub.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cortex-cross-app-invoker.stub.js","sourceRoot":"","sources":["../../src/strategy/cortex-cross-app-invoker.stub.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AASH;;mBAEmB;AACnB,MAAM,OAAO,wCAAyC,SAAQ,KAAK;IACxD,IAAI,GAAG,0CAAmD,CAAC;IACpE,YAAY,UAAkB;QAC5B,KAAK,CACH,yBAAyB,UAAU,uGAAuG;YACxI,kGAAkG;YAClG,8FAA8F,CACjG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,0CAA0C,CAAC;IACzD,CAAC;CACF;AAwBD,uEAAuE;AACvE,MAAM,OAAO,qBAAqB;IACf,mBAAmB,CAAsB;IACzC,kBAAkB,CAAS;IAE5C,YAAY,OAAqC;QAC/C,sEAAsE;QACtE,qEAAqE;QACrE,uBAAuB;QACvB,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,CAAC,CAAC;QAC1D,sEAAsE;QACtE,wEAAwE;QACxE,KAAK,OAAO,CAAC,OAAO,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,MAAM,CACV,QAAsC;QAEtC,MAAM,IAAI,wCAAwC,CAAC,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAED,YAAY;QACV,OAAO;YACL,OAAO,EAAE,KAAK;YACd,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;SAC9C,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CrossAppNodeExecutorImpl — bridges the methodts `CrossAppNodeExecutor`
|
|
3
|
+
* port to the runtime's `CrossAppInvoker` port.
|
|
4
|
+
*
|
|
5
|
+
* PRD-067 §7.3: methodts cannot depend on `@methodts/runtime` (lower FCA layer
|
|
6
|
+
* can't see upper), so methodts defines `CrossAppNodeExecutor` as an
|
|
7
|
+
* injection port. This class is the runtime-side adapter — it projects the
|
|
8
|
+
* DAG bundle into the operation input per `input_projection`, dispatches
|
|
9
|
+
* through the `CrossAppInvoker`, merges the output per `output_merge`, and
|
|
10
|
+
* translates typed errors from the invoker into failures the methodts gate
|
|
11
|
+
* machinery resolves as node failures (G-FAILURE-ISOLATION).
|
|
12
|
+
*
|
|
13
|
+
* Owner: @methodts/runtime/strategy
|
|
14
|
+
* Producer: composition root wires `new CrossAppNodeExecutorImpl(invoker)`
|
|
15
|
+
* Consumer: methodts DagStrategyExecutor via the `CrossAppNodeExecutor` port
|
|
16
|
+
*/
|
|
17
|
+
import type { CrossAppNodeExecutor } from '@methodts/methodts/strategy/dag-executor.js';
|
|
18
|
+
import type { StrategyDAG, StrategyNode, CrossAppInvokeNodeConfig } from '@methodts/methodts/strategy/dag-types.js';
|
|
19
|
+
import { type CrossAppInvoker, type DelegationCarry } from '../ports/cross-app-invoker.js';
|
|
20
|
+
/** Options wired from the composition root that the executor needs per-call. */
|
|
21
|
+
export interface CrossAppNodeExecutorOptions {
|
|
22
|
+
/**
|
|
23
|
+
* Supplier of the delegation context for each dispatch. The runtime's pact
|
|
24
|
+
* context carries the parent token + current exchange depth + originating
|
|
25
|
+
* request id; this callback projects it into the shape the port expects.
|
|
26
|
+
*
|
|
27
|
+
* In the simulator this can be a static function returning a fake
|
|
28
|
+
* `DelegationCarry`; in production the composition root wires the real
|
|
29
|
+
* pact context from `@methodts/agent-runtime`.
|
|
30
|
+
*/
|
|
31
|
+
readonly delegationSupplier: (args: {
|
|
32
|
+
readonly sessionId: string;
|
|
33
|
+
readonly nodeId: string;
|
|
34
|
+
}) => DelegationCarry;
|
|
35
|
+
/** Default timeout (ms) when a node doesn't override. */
|
|
36
|
+
readonly defaultTimeoutMs?: number;
|
|
37
|
+
}
|
|
38
|
+
/** Project a DAG bundle into the target operation's input object per
|
|
39
|
+
* the `input_projection` map. */
|
|
40
|
+
export declare function applyInputProjection(bundle: Record<string, unknown>, projection: Readonly<Record<string, string>>): Record<string, unknown>;
|
|
41
|
+
/** Merge the target output into the DAG output bundle per `output_merge`. */
|
|
42
|
+
export declare function applyOutputMerge(nodeId: string, rawOutput: unknown, mode: 'spread' | 'namespace'): Record<string, unknown>;
|
|
43
|
+
export declare class CrossAppNodeExecutorImpl implements CrossAppNodeExecutor {
|
|
44
|
+
private readonly invoker;
|
|
45
|
+
private readonly options;
|
|
46
|
+
constructor(invoker: CrossAppInvoker, options: CrossAppNodeExecutorOptions);
|
|
47
|
+
executeCrossAppInvokeNode(_dag: StrategyDAG, node: StrategyNode, config: CrossAppInvokeNodeConfig, inputBundle: Record<string, unknown>, sessionId: string): Promise<{
|
|
48
|
+
output: Record<string, unknown>;
|
|
49
|
+
cost_usd: number;
|
|
50
|
+
num_turns: number;
|
|
51
|
+
duration_ms: number;
|
|
52
|
+
}>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=cross-app-node-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-app-node-executor.d.ts","sourceRoot":"","sources":["../../src/strategy/cross-app-node-executor.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,oBAAoB,EACrB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,wBAAwB,EACzB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,KAAK,eAAe,EAEpB,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAEvC,gFAAgF;AAChF,MAAM,WAAW,2BAA2B;IAC1C;;;;;;;;OAQG;IACH,QAAQ,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE;QAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB,KAAK,eAAe,CAAC;IACtB,yDAAyD;IACzD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACpC;AAgBD;kCACkC;AAClC,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAC3C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB;AAED,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,OAAO,EAClB,IAAI,EAAE,QAAQ,GAAG,WAAW,GAC3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWzB;AAED,qBAAa,wBAAyB,YAAW,oBAAoB;IAEjE,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,2BAA2B;IAGjD,yBAAyB,CAC7B,IAAI,EAAE,WAAW,EACjB,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,wBAAwB,EAChC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACpC,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CA6CH"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* CrossAppNodeExecutorImpl — bridges the methodts `CrossAppNodeExecutor`
|
|
4
|
+
* port to the runtime's `CrossAppInvoker` port.
|
|
5
|
+
*
|
|
6
|
+
* PRD-067 §7.3: methodts cannot depend on `@methodts/runtime` (lower FCA layer
|
|
7
|
+
* can't see upper), so methodts defines `CrossAppNodeExecutor` as an
|
|
8
|
+
* injection port. This class is the runtime-side adapter — it projects the
|
|
9
|
+
* DAG bundle into the operation input per `input_projection`, dispatches
|
|
10
|
+
* through the `CrossAppInvoker`, merges the output per `output_merge`, and
|
|
11
|
+
* translates typed errors from the invoker into failures the methodts gate
|
|
12
|
+
* machinery resolves as node failures (G-FAILURE-ISOLATION).
|
|
13
|
+
*
|
|
14
|
+
* Owner: @methodts/runtime/strategy
|
|
15
|
+
* Producer: composition root wires `new CrossAppNodeExecutorImpl(invoker)`
|
|
16
|
+
* Consumer: methodts DagStrategyExecutor via the `CrossAppNodeExecutor` port
|
|
17
|
+
*/
|
|
18
|
+
/** Dot-path projector. `"$.a.b"` → bundle.a.b. Unknown paths yield `undefined`. */
|
|
19
|
+
function projectDotPath(bundle, path) {
|
|
20
|
+
const trimmed = path.startsWith('$.') ? path.slice(2) : path;
|
|
21
|
+
if (trimmed === '')
|
|
22
|
+
return bundle;
|
|
23
|
+
const segments = trimmed.split('.');
|
|
24
|
+
let cursor = bundle;
|
|
25
|
+
for (const seg of segments) {
|
|
26
|
+
if (cursor === null || cursor === undefined)
|
|
27
|
+
return undefined;
|
|
28
|
+
if (typeof cursor !== 'object')
|
|
29
|
+
return undefined;
|
|
30
|
+
cursor = cursor[seg];
|
|
31
|
+
}
|
|
32
|
+
return cursor;
|
|
33
|
+
}
|
|
34
|
+
/** Project a DAG bundle into the target operation's input object per
|
|
35
|
+
* the `input_projection` map. */
|
|
36
|
+
export function applyInputProjection(bundle, projection) {
|
|
37
|
+
const out = {};
|
|
38
|
+
for (const [targetField, dotPath] of Object.entries(projection)) {
|
|
39
|
+
out[targetField] = projectDotPath(bundle, dotPath);
|
|
40
|
+
}
|
|
41
|
+
return out;
|
|
42
|
+
}
|
|
43
|
+
/** Merge the target output into the DAG output bundle per `output_merge`. */
|
|
44
|
+
export function applyOutputMerge(nodeId, rawOutput, mode) {
|
|
45
|
+
if (mode === 'spread') {
|
|
46
|
+
if (rawOutput === null || rawOutput === undefined)
|
|
47
|
+
return {};
|
|
48
|
+
if (typeof rawOutput !== 'object') {
|
|
49
|
+
// Scalar output in spread mode → store under "result" for safety.
|
|
50
|
+
return { result: rawOutput };
|
|
51
|
+
}
|
|
52
|
+
return { ...rawOutput };
|
|
53
|
+
}
|
|
54
|
+
// "namespace" (default, safer) — nests under node id
|
|
55
|
+
return { [nodeId]: rawOutput };
|
|
56
|
+
}
|
|
57
|
+
export class CrossAppNodeExecutorImpl {
|
|
58
|
+
invoker;
|
|
59
|
+
options;
|
|
60
|
+
constructor(invoker, options) {
|
|
61
|
+
this.invoker = invoker;
|
|
62
|
+
this.options = options;
|
|
63
|
+
}
|
|
64
|
+
async executeCrossAppInvokeNode(_dag, node, config, inputBundle, sessionId) {
|
|
65
|
+
// Project the input bundle.
|
|
66
|
+
const operationInput = applyInputProjection(inputBundle, config.input_projection);
|
|
67
|
+
// Resolve idempotency key — default to `${sessionId}:${nodeId}` when the
|
|
68
|
+
// strategy YAML does not supply an override (PRD-067 §6.2).
|
|
69
|
+
const idempotencyKey = config.idempotency_key && config.idempotency_key.trim() !== ''
|
|
70
|
+
? config.idempotency_key
|
|
71
|
+
: `${sessionId}:${node.id}`;
|
|
72
|
+
const timeoutMs = config.timeout_ms ?? this.options.defaultTimeoutMs;
|
|
73
|
+
const delegation = this.options.delegationSupplier({
|
|
74
|
+
sessionId,
|
|
75
|
+
nodeId: node.id,
|
|
76
|
+
});
|
|
77
|
+
const request = {
|
|
78
|
+
targetAppId: config.target_app,
|
|
79
|
+
operation: config.operation,
|
|
80
|
+
input: operationInput,
|
|
81
|
+
timeoutMs,
|
|
82
|
+
idempotencyKey,
|
|
83
|
+
delegation,
|
|
84
|
+
caller: { sessionId, nodeId: node.id },
|
|
85
|
+
};
|
|
86
|
+
const startedAt = Date.now();
|
|
87
|
+
const result = await this.invoker.invoke(request);
|
|
88
|
+
const durationMs = Math.max(0, Date.now() - startedAt);
|
|
89
|
+
const merged = applyOutputMerge(node.id, result.output, config.output_merge ?? 'namespace');
|
|
90
|
+
return {
|
|
91
|
+
output: merged,
|
|
92
|
+
cost_usd: result.callerCostUsd,
|
|
93
|
+
num_turns: 0,
|
|
94
|
+
duration_ms: durationMs,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=cross-app-node-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-app-node-executor.js","sourceRoot":"","sources":["../../src/strategy/cross-app-node-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tests for CrossAppNodeExecutorImpl — the runtime-side bridge from methodts
|
|
3
|
+
* `CrossAppNodeExecutor` port to the `CrossAppInvoker` port.
|
|
4
|
+
*
|
|
5
|
+
* Covers:
|
|
6
|
+
* - Input projection (dot-paths)
|
|
7
|
+
* - Output merge modes (namespace default, spread)
|
|
8
|
+
* - Default idempotency key derivation (`${sessionId}:${nodeId}`)
|
|
9
|
+
* - Delegation supplier is invoked with caller correlation ids
|
|
10
|
+
* - Cortex stub throws NotImplementedError on invoke (Track B blocked)
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=cross-app-node-executor.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-app-node-executor.test.d.ts","sourceRoot":"","sources":["../../src/strategy/cross-app-node-executor.test.ts"],"names":[],"mappings":"AACA;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* Tests for CrossAppNodeExecutorImpl — the runtime-side bridge from methodts
|
|
4
|
+
* `CrossAppNodeExecutor` port to the `CrossAppInvoker` port.
|
|
5
|
+
*
|
|
6
|
+
* Covers:
|
|
7
|
+
* - Input projection (dot-paths)
|
|
8
|
+
* - Output merge modes (namespace default, spread)
|
|
9
|
+
* - Default idempotency key derivation (`${sessionId}:${nodeId}`)
|
|
10
|
+
* - Delegation supplier is invoked with caller correlation ids
|
|
11
|
+
* - Cortex stub throws NotImplementedError on invoke (Track B blocked)
|
|
12
|
+
*/
|
|
13
|
+
import { describe, it } from 'node:test';
|
|
14
|
+
import assert from 'node:assert/strict';
|
|
15
|
+
import { InProcessCrossAppInvoker } from './in-process-cross-app-invoker.js';
|
|
16
|
+
import { CrossAppNodeExecutorImpl, applyInputProjection, applyOutputMerge, } from './cross-app-node-executor.js';
|
|
17
|
+
import { CortexCrossAppInvoker, CortexCrossAppInvokerNotImplementedError, } from './cortex-cross-app-invoker.stub.js';
|
|
18
|
+
const BASE_DAG = {
|
|
19
|
+
id: 'test-strategy',
|
|
20
|
+
name: 'Test Strategy',
|
|
21
|
+
version: '1',
|
|
22
|
+
nodes: [],
|
|
23
|
+
strategy_gates: [],
|
|
24
|
+
capabilities: {},
|
|
25
|
+
oversight_rules: [],
|
|
26
|
+
context_inputs: [],
|
|
27
|
+
};
|
|
28
|
+
function makeNode(id) {
|
|
29
|
+
return {
|
|
30
|
+
id,
|
|
31
|
+
type: 'cross-app-invoke',
|
|
32
|
+
depends_on: [],
|
|
33
|
+
inputs: [],
|
|
34
|
+
outputs: [],
|
|
35
|
+
gates: [],
|
|
36
|
+
config: {
|
|
37
|
+
type: 'cross-app-invoke',
|
|
38
|
+
target_app: 'target',
|
|
39
|
+
operation: 'op',
|
|
40
|
+
input_projection: {},
|
|
41
|
+
},
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
function staticDelegation() {
|
|
45
|
+
return {
|
|
46
|
+
parentToken: 'tok',
|
|
47
|
+
currentDepth: 1,
|
|
48
|
+
originatingRequestId: 'req-1',
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
describe('applyInputProjection', () => {
|
|
52
|
+
it('projects top-level and nested dot-paths', () => {
|
|
53
|
+
const bundle = { classify: { label: 'defect', severity: 'high' }, other: 'ignored' };
|
|
54
|
+
const out = applyInputProjection(bundle, {
|
|
55
|
+
label: '$.classify.label',
|
|
56
|
+
severity: '$.classify.severity',
|
|
57
|
+
});
|
|
58
|
+
assert.deepEqual(out, { label: 'defect', severity: 'high' });
|
|
59
|
+
});
|
|
60
|
+
it('yields undefined for missing paths (caller responsible for shape)', () => {
|
|
61
|
+
const out = applyInputProjection({}, { x: '$.missing.path' });
|
|
62
|
+
assert.deepEqual(out, { x: undefined });
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
describe('applyOutputMerge', () => {
|
|
66
|
+
it('defaults to namespace mode', () => {
|
|
67
|
+
const merged = applyOutputMerge('my-node', { pr_url: 'x' }, 'namespace');
|
|
68
|
+
assert.deepEqual(merged, { 'my-node': { pr_url: 'x' } });
|
|
69
|
+
});
|
|
70
|
+
it('spread merges object outputs', () => {
|
|
71
|
+
const merged = applyOutputMerge('my-node', { pr_url: 'x', effort: 'S' }, 'spread');
|
|
72
|
+
assert.deepEqual(merged, { pr_url: 'x', effort: 'S' });
|
|
73
|
+
});
|
|
74
|
+
it('spread wraps scalar outputs as result', () => {
|
|
75
|
+
const merged = applyOutputMerge('my-node', 42, 'spread');
|
|
76
|
+
assert.deepEqual(merged, { result: 42 });
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
describe('CrossAppNodeExecutorImpl', () => {
|
|
80
|
+
it('dispatches via the CrossAppInvoker port and merges output per config', async () => {
|
|
81
|
+
const invoker = new InProcessCrossAppInvoker();
|
|
82
|
+
invoker.registerApp('target', {
|
|
83
|
+
op: (input) => ({ pr_url: `pr/${input.label}` }),
|
|
84
|
+
});
|
|
85
|
+
const executor = new CrossAppNodeExecutorImpl(invoker, {
|
|
86
|
+
delegationSupplier: staticDelegation,
|
|
87
|
+
});
|
|
88
|
+
const node = {
|
|
89
|
+
...makeNode('commission'),
|
|
90
|
+
config: {
|
|
91
|
+
type: 'cross-app-invoke',
|
|
92
|
+
target_app: 'target',
|
|
93
|
+
operation: 'op',
|
|
94
|
+
input_projection: { label: '$.classify.label' },
|
|
95
|
+
output_merge: 'namespace',
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
const result = await executor.executeCrossAppInvokeNode(BASE_DAG, node, node.config, { classify: { label: 'bug' } }, 'session-1');
|
|
99
|
+
assert.deepEqual(result.output, { commission: { pr_url: 'pr/bug' } });
|
|
100
|
+
assert.equal(result.num_turns, 0);
|
|
101
|
+
assert.ok(result.duration_ms >= 0);
|
|
102
|
+
});
|
|
103
|
+
it('defaults idempotency key to `${sessionId}:${nodeId}`', async () => {
|
|
104
|
+
const invoker = new InProcessCrossAppInvoker();
|
|
105
|
+
let invocationCount = 0;
|
|
106
|
+
invoker.registerApp('target', {
|
|
107
|
+
op: () => {
|
|
108
|
+
invocationCount += 1;
|
|
109
|
+
return { n: invocationCount };
|
|
110
|
+
},
|
|
111
|
+
});
|
|
112
|
+
const executor = new CrossAppNodeExecutorImpl(invoker, {
|
|
113
|
+
delegationSupplier: staticDelegation,
|
|
114
|
+
});
|
|
115
|
+
const node = makeNode('n1');
|
|
116
|
+
await executor.executeCrossAppInvokeNode(BASE_DAG, node, node.config, {}, 'sess-abc');
|
|
117
|
+
await executor.executeCrossAppInvokeNode(BASE_DAG, node, node.config, {}, 'sess-abc');
|
|
118
|
+
assert.equal(invocationCount, 1, 'same (sessionId, nodeId) must dedupe');
|
|
119
|
+
});
|
|
120
|
+
it('passes caller correlation ids to the delegation supplier', async () => {
|
|
121
|
+
const invoker = new InProcessCrossAppInvoker();
|
|
122
|
+
invoker.registerApp('target', { op: () => ({}) });
|
|
123
|
+
const capturedArgs = [];
|
|
124
|
+
const executor = new CrossAppNodeExecutorImpl(invoker, {
|
|
125
|
+
delegationSupplier: (args) => {
|
|
126
|
+
capturedArgs.push(args);
|
|
127
|
+
return staticDelegation();
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
const node = makeNode('dispatch');
|
|
131
|
+
await executor.executeCrossAppInvokeNode(BASE_DAG, node, node.config, {}, 'S-99');
|
|
132
|
+
assert.deepEqual(capturedArgs, [{ sessionId: 'S-99', nodeId: 'dispatch' }]);
|
|
133
|
+
});
|
|
134
|
+
});
|
|
135
|
+
describe('CortexCrossAppInvoker (stub — Track B blocked on PRD-080)', () => {
|
|
136
|
+
it('throws NotImplementedError on invoke', async () => {
|
|
137
|
+
const invoker = new CortexCrossAppInvoker({
|
|
138
|
+
ctxApps: {},
|
|
139
|
+
allowedTargetAppIds: new Set(['x']),
|
|
140
|
+
});
|
|
141
|
+
await assert.rejects(() => invoker.invoke({
|
|
142
|
+
targetAppId: 'x',
|
|
143
|
+
operation: 'y',
|
|
144
|
+
input: {},
|
|
145
|
+
delegation: staticDelegation(),
|
|
146
|
+
caller: { sessionId: 's', nodeId: 'n' },
|
|
147
|
+
}), CortexCrossAppInvokerNotImplementedError);
|
|
148
|
+
});
|
|
149
|
+
it('capabilities() reports disabled + echoes declared allowlist', () => {
|
|
150
|
+
const allowed = new Set(['feature-dev-agent']);
|
|
151
|
+
const invoker = new CortexCrossAppInvoker({
|
|
152
|
+
ctxApps: {},
|
|
153
|
+
allowedTargetAppIds: allowed,
|
|
154
|
+
});
|
|
155
|
+
const caps = invoker.capabilities();
|
|
156
|
+
assert.equal(caps.enabled, false);
|
|
157
|
+
assert.deepEqual([...(caps.allowedTargetAppIds ?? [])], ['feature-dev-agent']);
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
//# sourceMappingURL=cross-app-node-executor.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cross-app-node-executor.test.js","sourceRoot":"","sources":["../../src/strategy/cross-app-node-executor.test.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAQxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAC7E,OAAO,EACL,wBAAwB,EACxB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,qBAAqB,EACrB,wCAAwC,GACzC,MAAM,oCAAoC,CAAC;AAG5C,MAAM,QAAQ,GAAgB;IAC5B,EAAE,EAAE,eAAe;IACnB,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,GAAG;IACZ,KAAK,EAAE,EAAE;IACT,cAAc,EAAE,EAAE;IAClB,YAAY,EAAE,EAAE;IAChB,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,EAAE;CACnB,CAAC;AAEF,SAAS,QAAQ,CAAC,EAAU;IAC1B,OAAO;QACL,EAAE;QACF,IAAI,EAAE,kBAAkB;QACxB,UAAU,EAAE,EAAE;QACd,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;QACT,MAAM,EAAE;YACN,IAAI,EAAE,kBAAkB;YACxB,UAAU,EAAE,QAAQ;YACpB,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,EAAE;SACrB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,WAAW,EAAE,KAAK;QAClB,YAAY,EAAE,CAAC;QACf,oBAAoB,EAAE,OAAO;KAC9B,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;QACrF,MAAM,GAAG,GAAG,oBAAoB,CAAC,MAAM,EAAE;YACvC,KAAK,EAAE,kBAAkB;YACzB,QAAQ,EAAE,qBAAqB;SAChC,CAAC,CAAC;QACH,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,GAAG,EAAE;QAC3E,MAAM,GAAG,GAAG,oBAAoB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;QAC9D,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;QACzE,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,CAAC;QACnF,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACzD,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,sEAAsE,EAAE,KAAK,IAAI,EAAE;QACpF,MAAM,OAAO,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC/C,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC5B,EAAE,EAAE,CAAC,KAAwB,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;SACpE,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,OAAO,EAAE;YACrD,kBAAkB,EAAE,gBAAgB;SACrC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAiB;YACzB,GAAG,QAAQ,CAAC,YAAY,CAAC;YACzB,MAAM,EAAE;gBACN,IAAI,EAAE,kBAAkB;gBACxB,UAAU,EAAE,QAAQ;gBACpB,SAAS,EAAE,IAAI;gBACf,gBAAgB,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE;gBAC/C,YAAY,EAAE,WAAW;aAC1B;SACF,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,yBAAyB,CACrD,QAAQ,EACR,IAAI,EACJ,IAAI,CAAC,MAAkC,EACvC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAC9B,WAAW,CACZ,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;QACtE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,OAAO,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC/C,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE;YAC5B,EAAE,EAAE,GAAG,EAAE;gBACP,eAAe,IAAI,CAAC,CAAC;gBACrB,OAAO,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC;YAChC,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,OAAO,EAAE;YACrD,kBAAkB,EAAE,gBAAgB;SACrC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;QAE5B,MAAM,QAAQ,CAAC,yBAAyB,CACtC,QAAQ,EACR,IAAI,EACJ,IAAI,CAAC,MAAkC,EACvC,EAAE,EACF,UAAU,CACX,CAAC;QACF,MAAM,QAAQ,CAAC,yBAAyB,CACtC,QAAQ,EACR,IAAI,EACJ,IAAI,CAAC,MAAkC,EACvC,EAAE,EACF,UAAU,CACX,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAC;IAC3E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,OAAO,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC/C,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAElD,MAAM,YAAY,GAAiD,EAAE,CAAC;QACtE,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,OAAO,EAAE;YACrD,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC3B,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,OAAO,gBAAgB,EAAE,CAAC;YAC5B,CAAC;SACF,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;QAClC,MAAM,QAAQ,CAAC,yBAAyB,CACtC,QAAQ,EACR,IAAI,EACJ,IAAI,CAAC,MAAkC,EACvC,EAAE,EACF,MAAM,CACP,CAAC;QAEF,MAAM,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACzE,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;QACpD,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC;YACxC,OAAO,EAAE,EAAE;YACX,mBAAmB,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SACpC,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,OAAO,CAClB,GAAG,EAAE,CACH,OAAO,CAAC,MAAM,CAAC;YACb,WAAW,EAAE,GAAG;YAChB,SAAS,EAAE,GAAG;YACd,KAAK,EAAE,EAAE;YACT,UAAU,EAAE,gBAAgB,EAAE;YAC9B,MAAM,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;SACxC,CAAC,EACJ,wCAAwC,CACzC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,qBAAqB,CAAC;YACxC,OAAO,EAAE,EAAE;YACX,mBAAmB,EAAE,OAAO;SAC7B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QACpC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAClC,MAAM,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PRD 017: Strategy Pipelines — Gate Framework
|
|
3
|
+
*
|
|
4
|
+
* Re-export from @methodts/methodts canonical gate evaluator. All gate evaluation,
|
|
5
|
+
* expression sandboxing, and retry feedback logic lives in methodts. This file
|
|
6
|
+
* preserves the runtime's import surface.
|
|
7
|
+
*
|
|
8
|
+
* PRD-057 / S2 §3.2 / C2: moved from @methodts/bridge/domains/strategies/.
|
|
9
|
+
*/
|
|
10
|
+
export type { DagGateType as GateType, DagGateConfig as GateConfig, DagGateContext as GateContext, DagGateResult as GateResult, } from '@methodts/methodts/strategy/dag-types.js';
|
|
11
|
+
export { evaluateGateExpression, evaluateGate, buildRetryFeedback, } from '@methodts/methodts/strategy/dag-gates.js';
|
|
12
|
+
export { getDefaultRetries, getDefaultTimeout, } from '@methodts/methodts/strategy/dag-parser.js';
|
|
13
|
+
//# sourceMappingURL=gates.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gates.d.ts","sourceRoot":"","sources":["../../src/strategy/gates.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,YAAY,EACV,WAAW,IAAI,QAAQ,EACvB,aAAa,IAAI,UAAU,EAC3B,cAAc,IAAI,WAAW,EAC7B,aAAa,IAAI,UAAU,GAC5B,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,GACnB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,2CAA2C,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
/**
|
|
3
|
+
* PRD 017: Strategy Pipelines — Gate Framework
|
|
4
|
+
*
|
|
5
|
+
* Re-export from @methodts/methodts canonical gate evaluator. All gate evaluation,
|
|
6
|
+
* expression sandboxing, and retry feedback logic lives in methodts. This file
|
|
7
|
+
* preserves the runtime's import surface.
|
|
8
|
+
*
|
|
9
|
+
* PRD-057 / S2 §3.2 / C2: moved from @methodts/bridge/domains/strategies/.
|
|
10
|
+
*/
|
|
11
|
+
export { evaluateGateExpression, evaluateGate, buildRetryFeedback, } from '@methodts/methodts/strategy/dag-gates.js';
|
|
12
|
+
export { getDefaultRetries, getDefaultTimeout, } from '@methodts/methodts/strategy/dag-parser.js';
|
|
13
|
+
//# sourceMappingURL=gates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gates.js","sourceRoot":"","sources":["../../src/strategy/gates.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC;;;;;;;;GAQG;AASH,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,GACnB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,2CAA2C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gates.test.d.ts","sourceRoot":"","sources":["../../src/strategy/gates.test.ts"],"names":[],"mappings":""}
|