@opensip-cli/simulation 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/LICENSE +202 -0
- package/NOTICE +8 -0
- package/README.md +31 -0
- package/dist/__tests__/internal-surface.test.d.ts +9 -0
- package/dist/__tests__/internal-surface.test.d.ts.map +1 -0
- package/dist/__tests__/internal-surface.test.js +38 -0
- package/dist/__tests__/internal-surface.test.js.map +1 -0
- package/dist/__tests__/plugin-loader.test.d.ts +2 -0
- package/dist/__tests__/plugin-loader.test.d.ts.map +1 -0
- package/dist/__tests__/plugin-loader.test.js +64 -0
- package/dist/__tests__/plugin-loader.test.js.map +1 -0
- package/dist/__tests__/public-api.test.d.ts +15 -0
- package/dist/__tests__/public-api.test.d.ts.map +1 -0
- package/dist/__tests__/public-api.test.js +73 -0
- package/dist/__tests__/public-api.test.js.map +1 -0
- package/dist/__tests__/registry-cross-kind.test.d.ts +6 -0
- package/dist/__tests__/registry-cross-kind.test.d.ts.map +1 -0
- package/dist/__tests__/registry-cross-kind.test.js +86 -0
- package/dist/__tests__/registry-cross-kind.test.js.map +1 -0
- package/dist/__tests__/scenario-execution.test.d.ts +10 -0
- package/dist/__tests__/scenario-execution.test.d.ts.map +1 -0
- package/dist/__tests__/scenario-execution.test.js +92 -0
- package/dist/__tests__/scenario-execution.test.js.map +1 -0
- package/dist/__tests__/sim-capability-contract.test.d.ts +10 -0
- package/dist/__tests__/sim-capability-contract.test.d.ts.map +1 -0
- package/dist/__tests__/sim-capability-contract.test.js +131 -0
- package/dist/__tests__/sim-capability-contract.test.js.map +1 -0
- package/dist/__tests__/sim-config-schema.test.d.ts +5 -0
- package/dist/__tests__/sim-config-schema.test.d.ts.map +1 -0
- package/dist/__tests__/sim-config-schema.test.js +23 -0
- package/dist/__tests__/sim-config-schema.test.js.map +1 -0
- package/dist/__tests__/sim-failure-signal.test.d.ts +10 -0
- package/dist/__tests__/sim-failure-signal.test.d.ts.map +1 -0
- package/dist/__tests__/sim-failure-signal.test.js +86 -0
- package/dist/__tests__/sim-failure-signal.test.js.map +1 -0
- package/dist/__tests__/surviving-surface-edges.test.d.ts +10 -0
- package/dist/__tests__/surviving-surface-edges.test.d.ts.map +1 -0
- package/dist/__tests__/surviving-surface-edges.test.js +122 -0
- package/dist/__tests__/surviving-surface-edges.test.js.map +1 -0
- package/dist/__tests__/test-utils/targets.d.ts +26 -0
- package/dist/__tests__/test-utils/targets.d.ts.map +1 -0
- package/dist/__tests__/test-utils/targets.js +38 -0
- package/dist/__tests__/test-utils/targets.js.map +1 -0
- package/dist/__tests__/test-utils/with-sim-scope.d.ts +12 -0
- package/dist/__tests__/test-utils/with-sim-scope.d.ts.map +1 -0
- package/dist/__tests__/test-utils/with-sim-scope.js +22 -0
- package/dist/__tests__/test-utils/with-sim-scope.js.map +1 -0
- package/dist/__tests__/tool-live-view.test.d.ts +20 -0
- package/dist/__tests__/tool-live-view.test.d.ts.map +1 -0
- package/dist/__tests__/tool-live-view.test.js +146 -0
- package/dist/__tests__/tool-live-view.test.js.map +1 -0
- package/dist/__tests__/tool-show-mode.test.d.ts +10 -0
- package/dist/__tests__/tool-show-mode.test.d.ts.map +1 -0
- package/dist/__tests__/tool-show-mode.test.js +156 -0
- package/dist/__tests__/tool-show-mode.test.js.map +1 -0
- package/dist/__tests__/tool.test.d.ts +15 -0
- package/dist/__tests__/tool.test.d.ts.map +1 -0
- package/dist/__tests__/tool.test.js +250 -0
- package/dist/__tests__/tool.test.js.map +1 -0
- package/dist/cli/__tests__/sim-config.test.d.ts +2 -0
- package/dist/cli/__tests__/sim-config.test.d.ts.map +1 -0
- package/dist/cli/__tests__/sim-config.test.js +94 -0
- package/dist/cli/__tests__/sim-config.test.js.map +1 -0
- package/dist/cli/__tests__/sim-runner.test.d.ts +23 -0
- package/dist/cli/__tests__/sim-runner.test.d.ts.map +1 -0
- package/dist/cli/__tests__/sim-runner.test.js +188 -0
- package/dist/cli/__tests__/sim-runner.test.js.map +1 -0
- package/dist/cli/__tests__/sim-worker.test.d.ts +12 -0
- package/dist/cli/__tests__/sim-worker.test.d.ts.map +1 -0
- package/dist/cli/__tests__/sim-worker.test.js +69 -0
- package/dist/cli/__tests__/sim-worker.test.js.map +1 -0
- package/dist/cli/__tests__/sim.test.d.ts +2 -0
- package/dist/cli/__tests__/sim.test.d.ts.map +1 -0
- package/dist/cli/__tests__/sim.test.js +232 -0
- package/dist/cli/__tests__/sim.test.js.map +1 -0
- package/dist/cli/sim-config-schema.d.ts +30 -0
- package/dist/cli/sim-config-schema.d.ts.map +1 -0
- package/dist/cli/sim-config-schema.js +33 -0
- package/dist/cli/sim-config-schema.js.map +1 -0
- package/dist/cli/sim-config.d.ts +22 -0
- package/dist/cli/sim-config.d.ts.map +1 -0
- package/dist/cli/sim-config.js +73 -0
- package/dist/cli/sim-config.js.map +1 -0
- package/dist/cli/sim-runner.d.ts +60 -0
- package/dist/cli/sim-runner.d.ts.map +1 -0
- package/dist/cli/sim-runner.js +175 -0
- package/dist/cli/sim-runner.js.map +1 -0
- package/dist/cli/sim-worker.d.ts +24 -0
- package/dist/cli/sim-worker.d.ts.map +1 -0
- package/dist/cli/sim-worker.js +65 -0
- package/dist/cli/sim-worker.js.map +1 -0
- package/dist/cli/sim.d.ts +56 -0
- package/dist/cli/sim.d.ts.map +1 -0
- package/dist/cli/sim.js +265 -0
- package/dist/cli/sim.js.map +1 -0
- package/dist/framework/__tests__/assertions.test.d.ts +2 -0
- package/dist/framework/__tests__/assertions.test.d.ts.map +1 -0
- package/dist/framework/__tests__/assertions.test.js +122 -0
- package/dist/framework/__tests__/assertions.test.js.map +1 -0
- package/dist/framework/__tests__/misc-coverage.test.d.ts +18 -0
- package/dist/framework/__tests__/misc-coverage.test.d.ts.map +1 -0
- package/dist/framework/__tests__/misc-coverage.test.js +142 -0
- package/dist/framework/__tests__/misc-coverage.test.js.map +1 -0
- package/dist/framework/__tests__/resolve-metric.test.d.ts +12 -0
- package/dist/framework/__tests__/resolve-metric.test.d.ts.map +1 -0
- package/dist/framework/__tests__/resolve-metric.test.js +124 -0
- package/dist/framework/__tests__/resolve-metric.test.js.map +1 -0
- package/dist/framework/__tests__/result-builder.test.d.ts +2 -0
- package/dist/framework/__tests__/result-builder.test.d.ts.map +1 -0
- package/dist/framework/__tests__/result-builder.test.js +180 -0
- package/dist/framework/__tests__/result-builder.test.js.map +1 -0
- package/dist/framework/__tests__/scenario-logger.test.d.ts +9 -0
- package/dist/framework/__tests__/scenario-logger.test.d.ts.map +1 -0
- package/dist/framework/__tests__/scenario-logger.test.js +110 -0
- package/dist/framework/__tests__/scenario-logger.test.js.map +1 -0
- package/dist/framework/__tests__/validation.test.d.ts +9 -0
- package/dist/framework/__tests__/validation.test.d.ts.map +1 -0
- package/dist/framework/__tests__/validation.test.js +126 -0
- package/dist/framework/__tests__/validation.test.js.map +1 -0
- package/dist/framework/assertions.d.ts +106 -0
- package/dist/framework/assertions.d.ts.map +1 -0
- package/dist/framework/assertions.js +256 -0
- package/dist/framework/assertions.js.map +1 -0
- package/dist/framework/execution/__tests__/execution-engine.test.d.ts +9 -0
- package/dist/framework/execution/__tests__/execution-engine.test.d.ts.map +1 -0
- package/dist/framework/execution/__tests__/execution-engine.test.js +138 -0
- package/dist/framework/execution/__tests__/execution-engine.test.js.map +1 -0
- package/dist/framework/execution/__tests__/fault-builders.test.d.ts +5 -0
- package/dist/framework/execution/__tests__/fault-builders.test.d.ts.map +1 -0
- package/dist/framework/execution/__tests__/fault-builders.test.js +23 -0
- package/dist/framework/execution/__tests__/fault-builders.test.js.map +1 -0
- package/dist/framework/execution/__tests__/fault-model.test.d.ts +6 -0
- package/dist/framework/execution/__tests__/fault-model.test.d.ts.map +1 -0
- package/dist/framework/execution/__tests__/fault-model.test.js +64 -0
- package/dist/framework/execution/__tests__/fault-model.test.js.map +1 -0
- package/dist/framework/execution/__tests__/http-target.test.d.ts +5 -0
- package/dist/framework/execution/__tests__/http-target.test.d.ts.map +1 -0
- package/dist/framework/execution/__tests__/http-target.test.js +36 -0
- package/dist/framework/execution/__tests__/http-target.test.js.map +1 -0
- package/dist/framework/execution/__tests__/run-load-window.test.d.ts +7 -0
- package/dist/framework/execution/__tests__/run-load-window.test.d.ts.map +1 -0
- package/dist/framework/execution/__tests__/run-load-window.test.js +89 -0
- package/dist/framework/execution/__tests__/run-load-window.test.js.map +1 -0
- package/dist/framework/execution/execution-engine.d.ts +55 -0
- package/dist/framework/execution/execution-engine.d.ts.map +1 -0
- package/dist/framework/execution/execution-engine.js +111 -0
- package/dist/framework/execution/execution-engine.js.map +1 -0
- package/dist/framework/execution/fault-builders.d.ts +26 -0
- package/dist/framework/execution/fault-builders.d.ts.map +1 -0
- package/dist/framework/execution/fault-builders.js +24 -0
- package/dist/framework/execution/fault-builders.js.map +1 -0
- package/dist/framework/execution/fault-model.d.ts +49 -0
- package/dist/framework/execution/fault-model.d.ts.map +1 -0
- package/dist/framework/execution/fault-model.js +108 -0
- package/dist/framework/execution/fault-model.js.map +1 -0
- package/dist/framework/execution/fault-spec.d.ts +40 -0
- package/dist/framework/execution/fault-spec.d.ts.map +1 -0
- package/dist/framework/execution/fault-spec.js +23 -0
- package/dist/framework/execution/fault-spec.js.map +1 -0
- package/dist/framework/execution/http-target.d.ts +34 -0
- package/dist/framework/execution/http-target.d.ts.map +1 -0
- package/dist/framework/execution/http-target.js +41 -0
- package/dist/framework/execution/http-target.js.map +1 -0
- package/dist/framework/execution/latency-tracker.d.ts +44 -0
- package/dist/framework/execution/latency-tracker.d.ts.map +1 -0
- package/dist/framework/execution/latency-tracker.js +76 -0
- package/dist/framework/execution/latency-tracker.js.map +1 -0
- package/dist/framework/execution/run-load-window.d.ts +45 -0
- package/dist/framework/execution/run-load-window.d.ts.map +1 -0
- package/dist/framework/execution/run-load-window.js +136 -0
- package/dist/framework/execution/run-load-window.js.map +1 -0
- package/dist/framework/execution/scenario-aborted-error.d.ts +14 -0
- package/dist/framework/execution/scenario-aborted-error.d.ts.map +1 -0
- package/dist/framework/execution/scenario-aborted-error.js +24 -0
- package/dist/framework/execution/scenario-aborted-error.js.map +1 -0
- package/dist/framework/execution/target.d.ts +35 -0
- package/dist/framework/execution/target.d.ts.map +1 -0
- package/dist/framework/execution/target.js +21 -0
- package/dist/framework/execution/target.js.map +1 -0
- package/dist/framework/registry.d.ts +67 -0
- package/dist/framework/registry.d.ts.map +1 -0
- package/dist/framework/registry.js +113 -0
- package/dist/framework/registry.js.map +1 -0
- package/dist/framework/resolve-metric.d.ts +79 -0
- package/dist/framework/resolve-metric.d.ts.map +1 -0
- package/dist/framework/resolve-metric.js +135 -0
- package/dist/framework/resolve-metric.js.map +1 -0
- package/dist/framework/result-builder.d.ts +72 -0
- package/dist/framework/result-builder.d.ts.map +1 -0
- package/dist/framework/result-builder.js +214 -0
- package/dist/framework/result-builder.js.map +1 -0
- package/dist/framework/result-renderers.d.ts +37 -0
- package/dist/framework/result-renderers.d.ts.map +1 -0
- package/dist/framework/result-renderers.js +62 -0
- package/dist/framework/result-renderers.js.map +1 -0
- package/dist/framework/runnable-scenario.d.ts +37 -0
- package/dist/framework/runnable-scenario.d.ts.map +1 -0
- package/dist/framework/runnable-scenario.js +9 -0
- package/dist/framework/runnable-scenario.js.map +1 -0
- package/dist/framework/scenario-executor-result.d.ts +44 -0
- package/dist/framework/scenario-executor-result.d.ts.map +1 -0
- package/dist/framework/scenario-executor-result.js +13 -0
- package/dist/framework/scenario-executor-result.js.map +1 -0
- package/dist/framework/scenario-logger.d.ts +18 -0
- package/dist/framework/scenario-logger.d.ts.map +1 -0
- package/dist/framework/scenario-logger.js +39 -0
- package/dist/framework/scenario-logger.js.map +1 -0
- package/dist/framework/scenario-metric-key.d.ts +24 -0
- package/dist/framework/scenario-metric-key.d.ts.map +1 -0
- package/dist/framework/scenario-metric-key.js +17 -0
- package/dist/framework/scenario-metric-key.js.map +1 -0
- package/dist/framework/validation.d.ts +83 -0
- package/dist/framework/validation.d.ts.map +1 -0
- package/dist/framework/validation.js +93 -0
- package/dist/framework/validation.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +53 -0
- package/dist/index.js.map +1 -0
- package/dist/internal.d.ts +19 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +16 -0
- package/dist/internal.js.map +1 -0
- package/dist/kinds/chaos/__tests__/executor.test.d.ts +6 -0
- package/dist/kinds/chaos/__tests__/executor.test.d.ts.map +1 -0
- package/dist/kinds/chaos/__tests__/executor.test.js +117 -0
- package/dist/kinds/chaos/__tests__/executor.test.js.map +1 -0
- package/dist/kinds/chaos/config.d.ts +48 -0
- package/dist/kinds/chaos/config.d.ts.map +1 -0
- package/dist/kinds/chaos/config.js +15 -0
- package/dist/kinds/chaos/config.js.map +1 -0
- package/dist/kinds/chaos/define.d.ts +32 -0
- package/dist/kinds/chaos/define.d.ts.map +1 -0
- package/dist/kinds/chaos/define.js +111 -0
- package/dist/kinds/chaos/define.js.map +1 -0
- package/dist/kinds/chaos/executor.d.ts +21 -0
- package/dist/kinds/chaos/executor.d.ts.map +1 -0
- package/dist/kinds/chaos/executor.js +107 -0
- package/dist/kinds/chaos/executor.js.map +1 -0
- package/dist/kinds/chaos/result.d.ts +43 -0
- package/dist/kinds/chaos/result.d.ts.map +1 -0
- package/dist/kinds/chaos/result.js +12 -0
- package/dist/kinds/chaos/result.js.map +1 -0
- package/dist/kinds/load/__tests__/executor.test.d.ts +6 -0
- package/dist/kinds/load/__tests__/executor.test.d.ts.map +1 -0
- package/dist/kinds/load/__tests__/executor.test.js +75 -0
- package/dist/kinds/load/__tests__/executor.test.js.map +1 -0
- package/dist/kinds/load/config.d.ts +30 -0
- package/dist/kinds/load/config.d.ts.map +1 -0
- package/dist/kinds/load/config.js +9 -0
- package/dist/kinds/load/config.js.map +1 -0
- package/dist/kinds/load/define.d.ts +47 -0
- package/dist/kinds/load/define.d.ts.map +1 -0
- package/dist/kinds/load/define.js +76 -0
- package/dist/kinds/load/define.js.map +1 -0
- package/dist/kinds/load/executor.d.ts +16 -0
- package/dist/kinds/load/executor.d.ts.map +1 -0
- package/dist/kinds/load/executor.js +90 -0
- package/dist/kinds/load/executor.js.map +1 -0
- package/dist/kinds/load/result.d.ts +21 -0
- package/dist/kinds/load/result.d.ts.map +1 -0
- package/dist/kinds/load/result.js +10 -0
- package/dist/kinds/load/result.js.map +1 -0
- package/dist/persistence/session-payload.d.ts +32 -0
- package/dist/persistence/session-payload.d.ts.map +1 -0
- package/dist/persistence/session-payload.js +46 -0
- package/dist/persistence/session-payload.js.map +1 -0
- package/dist/persistence/session-replay.d.ts +13 -0
- package/dist/persistence/session-replay.d.ts.map +1 -0
- package/dist/persistence/session-replay.js +76 -0
- package/dist/persistence/session-replay.js.map +1 -0
- package/dist/persistence/session-replay.test.d.ts +10 -0
- package/dist/persistence/session-replay.test.d.ts.map +1 -0
- package/dist/persistence/session-replay.test.js +169 -0
- package/dist/persistence/session-replay.test.js.map +1 -0
- package/dist/plugins/__tests__/loader-scenarios.test.d.ts +12 -0
- package/dist/plugins/__tests__/loader-scenarios.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/loader-scenarios.test.js +61 -0
- package/dist/plugins/__tests__/loader-scenarios.test.js.map +1 -0
- package/dist/plugins/__tests__/scenario-package-discovery.test.d.ts +2 -0
- package/dist/plugins/__tests__/scenario-package-discovery.test.d.ts.map +1 -0
- package/dist/plugins/__tests__/scenario-package-discovery.test.js +43 -0
- package/dist/plugins/__tests__/scenario-package-discovery.test.js.map +1 -0
- package/dist/plugins/loader.d.ts +32 -0
- package/dist/plugins/loader.d.ts.map +1 -0
- package/dist/plugins/loader.js +119 -0
- package/dist/plugins/loader.js.map +1 -0
- package/dist/plugins/scenario-package-discovery.d.ts +23 -0
- package/dist/plugins/scenario-package-discovery.d.ts.map +1 -0
- package/dist/plugins/scenario-package-discovery.js +42 -0
- package/dist/plugins/scenario-package-discovery.js.map +1 -0
- package/dist/plugins/types.d.ts +24 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +18 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/recipes/__tests__/recipes.test.d.ts +2 -0
- package/dist/recipes/__tests__/recipes.test.d.ts.map +1 -0
- package/dist/recipes/__tests__/recipes.test.js +515 -0
- package/dist/recipes/__tests__/recipes.test.js.map +1 -0
- package/dist/recipes/built-in-recipes.d.ts +16 -0
- package/dist/recipes/built-in-recipes.d.ts.map +1 -0
- package/dist/recipes/built-in-recipes.js +37 -0
- package/dist/recipes/built-in-recipes.js.map +1 -0
- package/dist/recipes/define-recipe.d.ts +29 -0
- package/dist/recipes/define-recipe.d.ts.map +1 -0
- package/dist/recipes/define-recipe.js +68 -0
- package/dist/recipes/define-recipe.js.map +1 -0
- package/dist/recipes/registry.d.ts +54 -0
- package/dist/recipes/registry.d.ts.map +1 -0
- package/dist/recipes/registry.js +89 -0
- package/dist/recipes/registry.js.map +1 -0
- package/dist/recipes/service.d.ts +61 -0
- package/dist/recipes/service.d.ts.map +1 -0
- package/dist/recipes/service.js +205 -0
- package/dist/recipes/service.js.map +1 -0
- package/dist/recipes/types.d.ts +62 -0
- package/dist/recipes/types.d.ts.map +1 -0
- package/dist/recipes/types.js +10 -0
- package/dist/recipes/types.js.map +1 -0
- package/dist/scaffold/examples.d.ts +22 -0
- package/dist/scaffold/examples.d.ts.map +1 -0
- package/dist/scaffold/examples.js +91 -0
- package/dist/scaffold/examples.js.map +1 -0
- package/dist/scope-augmentation.d.ts +70 -0
- package/dist/scope-augmentation.d.ts.map +1 -0
- package/dist/scope-augmentation.js +28 -0
- package/dist/scope-augmentation.js.map +1 -0
- package/dist/tool.d.ts +21 -0
- package/dist/tool.d.ts.map +1 -0
- package/dist/tool.js +347 -0
- package/dist/tool.js.map +1 -0
- package/dist/types/base-types.d.ts +35 -0
- package/dist/types/base-types.d.ts.map +1 -0
- package/dist/types/base-types.js +8 -0
- package/dist/types/base-types.js.map +1 -0
- package/dist/types/framework-types.d.ts +62 -0
- package/dist/types/framework-types.d.ts.map +1 -0
- package/dist/types/framework-types.js +15 -0
- package/dist/types/framework-types.js.map +1 -0
- package/dist/types/kind-types.d.ts +24 -0
- package/dist/types/kind-types.d.ts.map +1 -0
- package/dist/types/kind-types.js +22 -0
- package/dist/types/kind-types.js.map +1 -0
- package/dist/types/workload.d.ts +30 -0
- package/dist/types/workload.d.ts.map +1 -0
- package/dist/types/workload.js +20 -0
- package/dist/types/workload.js.map +1 -0
- package/package.json +120 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Sim recipe types — mirrors the fitness recipe shape so
|
|
3
|
+
* users get the same mental model across both tools.
|
|
4
|
+
*
|
|
5
|
+
* A recipe is a named bundle that selects scenarios and configures their
|
|
6
|
+
* execution. The user runs `opensip sim --recipe <name>` to invoke
|
|
7
|
+
* one. Without a flag, the built-in `default` recipe applies.
|
|
8
|
+
*/
|
|
9
|
+
import type { ScenarioKind } from '../types/kind-types.js';
|
|
10
|
+
/** Selector that specifies scenarios by explicit ID list. */
|
|
11
|
+
export interface ExplicitScenarioSelector {
|
|
12
|
+
readonly type: 'explicit';
|
|
13
|
+
readonly scenarioIds: readonly string[];
|
|
14
|
+
}
|
|
15
|
+
/** Selector that includes all scenarios with optional exclusions. */
|
|
16
|
+
export interface AllScenarioSelector {
|
|
17
|
+
readonly type: 'all';
|
|
18
|
+
readonly exclude?: readonly string[];
|
|
19
|
+
}
|
|
20
|
+
/** Selector that includes scenarios with specified tags. */
|
|
21
|
+
export interface TagsScenarioSelector {
|
|
22
|
+
readonly type: 'tags';
|
|
23
|
+
readonly include: readonly string[];
|
|
24
|
+
readonly exclude?: readonly string[];
|
|
25
|
+
}
|
|
26
|
+
/** Selector that filters by scenario kind (load / chaos). */
|
|
27
|
+
export interface KindScenarioSelector {
|
|
28
|
+
readonly type: 'kind';
|
|
29
|
+
readonly kinds: readonly ScenarioKind[];
|
|
30
|
+
readonly exclude?: readonly string[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Union of every scenario-selector shape used by recipes.
|
|
34
|
+
*
|
|
35
|
+
* The `explicit` / `all` / `tags` arms mirror `@opensip-cli/core`'s
|
|
36
|
+
* `RecipeSelector` shape (keeping sim's historical `scenarioIds` field on
|
|
37
|
+
* `explicit`); `kind` is a sim-only arm. Resolution delegates to core's
|
|
38
|
+
* `resolveSelector` via per-arm predicates (see `service.ts`) — sim's
|
|
39
|
+
* id/name-keyed exclude semantics differ from core's tag/glob built-ins, so
|
|
40
|
+
* every arm is supplied as a predicate and core never names `ScenarioKind`.
|
|
41
|
+
*/
|
|
42
|
+
export type ScenarioSelector = ExplicitScenarioSelector | AllScenarioSelector | TagsScenarioSelector | KindScenarioSelector;
|
|
43
|
+
/** Execution configuration for a sim recipe. */
|
|
44
|
+
export interface SimulationExecutionOptions {
|
|
45
|
+
readonly mode: 'parallel' | 'sequential';
|
|
46
|
+
readonly timeout?: number;
|
|
47
|
+
readonly maxParallel?: number;
|
|
48
|
+
readonly stopOnFirstFailure?: boolean;
|
|
49
|
+
}
|
|
50
|
+
/** Complete sim-recipe definition: scenarios + execution. */
|
|
51
|
+
export interface SimulationRecipe {
|
|
52
|
+
readonly id: string;
|
|
53
|
+
readonly name: string;
|
|
54
|
+
readonly displayName: string;
|
|
55
|
+
readonly description: string;
|
|
56
|
+
readonly scenarios: ScenarioSelector;
|
|
57
|
+
readonly execution: SimulationExecutionOptions;
|
|
58
|
+
readonly tags?: readonly string[];
|
|
59
|
+
}
|
|
60
|
+
/** Author-facing config — `kind` is implicit, `id`/`name` are required. */
|
|
61
|
+
export type SimulationRecipeConfig = SimulationRecipe;
|
|
62
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/recipes/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAM3D,6DAA6D;AAC7D,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;CACzC;AAED,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,4DAA4D;AAC5D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GACxB,wBAAwB,GACxB,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,CAAC;AAMzB,gDAAgD;AAChD,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CACvC;AAMD,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,SAAS,EAAE,0BAA0B,CAAC;IAC/C,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED,2EAA2E;AAC3E,MAAM,MAAM,sBAAsB,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Sim recipe types — mirrors the fitness recipe shape so
|
|
3
|
+
* users get the same mental model across both tools.
|
|
4
|
+
*
|
|
5
|
+
* A recipe is a named bundle that selects scenarios and configures their
|
|
6
|
+
* execution. The user runs `opensip sim --recipe <name>` to invoke
|
|
7
|
+
* one. Without a flag, the built-in `default` recipe applies.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/recipes/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview simulation's `init` example contribution (ADR-0038).
|
|
3
|
+
*
|
|
4
|
+
* simulation OWNS the example scenario/recipe bytes that `init` scaffolds —
|
|
5
|
+
* relocated here from the CLI's `config-templates.ts`. sim's examples are
|
|
6
|
+
* language-independent, so the `ScaffoldContext` is ignored. Byte content is
|
|
7
|
+
* verbatim; a Phase-0 golden + a Phase-1 parity test pin byte-identity.
|
|
8
|
+
*/
|
|
9
|
+
import type { ScaffoldContext, ScaffoldFile } from '@opensip-cli/core';
|
|
10
|
+
/** Example simulation scenario source (verbatim). */
|
|
11
|
+
export declare function exampleScenarioSource(): string;
|
|
12
|
+
/** Example simulation recipe source (verbatim). */
|
|
13
|
+
export declare function exampleSimRecipeSource(): string;
|
|
14
|
+
/**
|
|
15
|
+
* simulation's scaffold contribution — language-independent (`ctx` ignored):
|
|
16
|
+
* `scenarios/example-scenario.mjs` + `recipes/example-recipe.mjs`, matching
|
|
17
|
+
* `scaffold-writer.ts`'s sim logic.
|
|
18
|
+
*/
|
|
19
|
+
export declare function simScaffoldExamples(_ctx: ScaffoldContext): ScaffoldFile[];
|
|
20
|
+
/** simulation's COMPLETE stable example-id set (language-independent). */
|
|
21
|
+
export declare function simStableExampleIds(): string[];
|
|
22
|
+
//# sourceMappingURL=examples.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples.d.ts","sourceRoot":"","sources":["../../src/scaffold/examples.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEvE,qDAAqD;AACrD,wBAAgB,qBAAqB,IAAI,MAAM,CAiC9C;AAED,mDAAmD;AACnD,wBAAgB,sBAAsB,IAAI,MAAM,CAoB/C;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,YAAY,EAAE,CAezE;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview simulation's `init` example contribution (ADR-0038).
|
|
3
|
+
*
|
|
4
|
+
* simulation OWNS the example scenario/recipe bytes that `init` scaffolds —
|
|
5
|
+
* relocated here from the CLI's `config-templates.ts`. sim's examples are
|
|
6
|
+
* language-independent, so the `ScaffoldContext` is ignored. Byte content is
|
|
7
|
+
* verbatim; a Phase-0 golden + a Phase-1 parity test pin byte-identity.
|
|
8
|
+
*/
|
|
9
|
+
/** Example simulation scenario source (verbatim). */
|
|
10
|
+
export function exampleScenarioSource() {
|
|
11
|
+
return `// Example simulation scenario — a real load window against an in-process target.
|
|
12
|
+
//
|
|
13
|
+
// 'sim' is a standalone driver: you bring the target. This demo drives a
|
|
14
|
+
// trivial in-process target so it runs out-of-box and shows the harness
|
|
15
|
+
// mechanics (a real request loop, measured latency, asserted SLOs). To test
|
|
16
|
+
// YOUR service, replace 'target' with httpTarget({ url: process.env.TARGET_URL })
|
|
17
|
+
// — and point it only at a target you own. For fault injection, see the chaos
|
|
18
|
+
// docs (defineChaosScenario + fault.*).
|
|
19
|
+
//
|
|
20
|
+
// Edit this file or add new .mjs files to opensip-cli/sim/scenarios/.
|
|
21
|
+
// Files in this directory are auto-loaded on the next \`opensip sim\` run.
|
|
22
|
+
//
|
|
23
|
+
// Docs: https://github.com/opensip-ai/opensip-cli#simulation
|
|
24
|
+
import { defineLoadScenario, ASSERTIONS /*, httpTarget */ } from '@opensip-cli/simulation';
|
|
25
|
+
|
|
26
|
+
export const scenarios = [
|
|
27
|
+
defineLoadScenario({
|
|
28
|
+
id: 'example-scenario',
|
|
29
|
+
name: 'example-scenario',
|
|
30
|
+
description: 'Demo load scenario — drives a trivial in-process target',
|
|
31
|
+
tags: ['example'],
|
|
32
|
+
// BYO target: any async function that resolves on success / throws on failure.
|
|
33
|
+
// Swap for your service: target: httpTarget({ url: process.env.TARGET_URL }),
|
|
34
|
+
target: async () => {
|
|
35
|
+
await new Promise((resolve) => setTimeout(resolve, 5));
|
|
36
|
+
},
|
|
37
|
+
workload: { rps: 20, rampUp: 1 },
|
|
38
|
+
duration: 3,
|
|
39
|
+
assertions: [ASSERTIONS.lowErrorRate(), ASSERTIONS.lowLatency('p95', 500)],
|
|
40
|
+
}),
|
|
41
|
+
];
|
|
42
|
+
`;
|
|
43
|
+
}
|
|
44
|
+
/** Example simulation recipe source (verbatim). */
|
|
45
|
+
export function exampleSimRecipeSource() {
|
|
46
|
+
return `// Example simulation recipe — runs only the example scenario.
|
|
47
|
+
//
|
|
48
|
+
// Edit this file or add new .mjs files to opensip-cli/sim/recipes/.
|
|
49
|
+
// Files in this directory are auto-loaded on the next run.
|
|
50
|
+
//
|
|
51
|
+
// Run this recipe explicitly: opensip sim --recipe example
|
|
52
|
+
import { defineSimulationRecipe } from '@opensip-cli/simulation';
|
|
53
|
+
|
|
54
|
+
export const recipes = [
|
|
55
|
+
defineSimulationRecipe({
|
|
56
|
+
id: 'URCP_sim_example',
|
|
57
|
+
name: 'example',
|
|
58
|
+
displayName: 'Example',
|
|
59
|
+
description: 'Demo recipe — runs only the example scenario',
|
|
60
|
+
scenarios: { type: 'explicit', scenarioIds: ['example-scenario'] },
|
|
61
|
+
execution: { mode: 'parallel', timeout: 30_000 },
|
|
62
|
+
}),
|
|
63
|
+
];
|
|
64
|
+
`;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* simulation's scaffold contribution — language-independent (`ctx` ignored):
|
|
68
|
+
* `scenarios/example-scenario.mjs` + `recipes/example-recipe.mjs`, matching
|
|
69
|
+
* `scaffold-writer.ts`'s sim logic.
|
|
70
|
+
*/
|
|
71
|
+
export function simScaffoldExamples(_ctx) {
|
|
72
|
+
return [
|
|
73
|
+
{
|
|
74
|
+
kind: 'scenarios',
|
|
75
|
+
filename: 'example-scenario.mjs',
|
|
76
|
+
content: exampleScenarioSource(),
|
|
77
|
+
stableId: 'example-scenario',
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
kind: 'recipes',
|
|
81
|
+
filename: 'example-recipe.mjs',
|
|
82
|
+
content: exampleSimRecipeSource(),
|
|
83
|
+
stableId: 'URCP_sim_example',
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
}
|
|
87
|
+
/** simulation's COMPLETE stable example-id set (language-independent). */
|
|
88
|
+
export function simStableExampleIds() {
|
|
89
|
+
return ['example-scenario', 'URCP_sim_example'];
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=examples.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"examples.js","sourceRoot":"","sources":["../../src/scaffold/examples.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,qDAAqD;AACrD,MAAM,UAAU,qBAAqB;IACnC,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BR,CAAC;AACF,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,sBAAsB;IACpC,OAAO;;;;;;;;;;;;;;;;;;CAkBR,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAqB;IACvD,OAAO;QACL;YACE,IAAI,EAAE,WAAW;YACjB,QAAQ,EAAE,sBAAsB;YAChC,OAAO,EAAE,qBAAqB,EAAE;YAChC,QAAQ,EAAE,kBAAkB;SAC7B;QACD;YACE,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,oBAAoB;YAC9B,OAAO,EAAE,sBAAsB,EAAE;YACjC,QAAQ,EAAE,kBAAkB;SAC7B;KACF,CAAC;AACJ,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;AAClD,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview RunScope augmentation for simulation.
|
|
3
|
+
*
|
|
4
|
+
* D7 (tool subscopes via module augmentation, per the RunScope/
|
|
5
|
+
* Registry architecture): tool-specific concerns nest under the
|
|
6
|
+
* tool's name on `RunScope` and
|
|
7
|
+
* are added via TypeScript module augmentation from the tool's own
|
|
8
|
+
* package. Core never imports simulation-shaped types — the layer rule
|
|
9
|
+
* stays intact (`core ← contracts ← {simulation, ...}`).
|
|
10
|
+
*
|
|
11
|
+
* Two singletons used to hang off this package as module-level state:
|
|
12
|
+
*
|
|
13
|
+
* - `scenarioRegistry` — per-process scenario registry.
|
|
14
|
+
* - `defaultSimulationRecipeRegistry` — per-process recipe registry.
|
|
15
|
+
*
|
|
16
|
+
* Both are now per-RunScope. The simulation tool's `contributeScope` hook
|
|
17
|
+
* (in `tool.ts`) instantiates fresh registries and attaches them to
|
|
18
|
+
* `scope.simulation` once per CLI invocation. Tools and library code
|
|
19
|
+
* read via `currentScope()?.simulation?.{scenarios,recipes}`.
|
|
20
|
+
*
|
|
21
|
+
* The `simulation` slot is intentionally optional and mutable (no
|
|
22
|
+
* `readonly`) on the augmented interface: the kernel doesn't construct
|
|
23
|
+
* it, and only the simulation tool's `contributeScope` writes to it during
|
|
24
|
+
* scope construction. A run that doesn't load the simulation tool
|
|
25
|
+
* carries no `scope.simulation`, and reads return `undefined`.
|
|
26
|
+
*/
|
|
27
|
+
import type { RunnableScenario } from './framework/runnable-scenario.js';
|
|
28
|
+
import type { SimulationRecipeRegistry } from './recipes/registry.js';
|
|
29
|
+
import type { Registry } from '@opensip-cli/core';
|
|
30
|
+
/**
|
|
31
|
+
* Per-RunScope `ensureScenariosLoaded` lifecycle state — moved off the `sim.ts`
|
|
32
|
+
* module singletons (`scenariosLoadedFor` / `pluginLoadErrors`) so two concurrent
|
|
33
|
+
* sim runs carry independent load state (audit F1). Mutable: written once per run
|
|
34
|
+
* by `ensureScenariosLoaded`; read by `getPluginLoadErrors`.
|
|
35
|
+
*/
|
|
36
|
+
export interface SimulationLoadState {
|
|
37
|
+
/** Project directory `ensureScenariosLoaded` has completed for in THIS scope.
|
|
38
|
+
* `null` before the first load; `''` is the "loaded" sentinel for no-project. */
|
|
39
|
+
loadedFor: string | null;
|
|
40
|
+
/** Plugin load failures from the most recent `ensureScenariosLoaded` call. */
|
|
41
|
+
pluginLoadErrors: readonly string[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Per-RunScope simulation state. Constructed by the simulation tool's
|
|
45
|
+
* `contributeScope()` hook and attached to `scope.simulation`.
|
|
46
|
+
*/
|
|
47
|
+
export interface SimulationSubscope {
|
|
48
|
+
/** Scenario registry — populated through the generic capability loader
|
|
49
|
+
* (`sim-pack` domain) + `loadAllSimPlugins` during `ensureScenariosLoaded`. */
|
|
50
|
+
readonly scenarios: Registry<RunnableScenario>;
|
|
51
|
+
/** Recipe registry — seeded with built-in recipes at construction;
|
|
52
|
+
* plugin loader + the sim-recipe domain register user recipes. */
|
|
53
|
+
readonly recipes: SimulationRecipeRegistry;
|
|
54
|
+
/** `ensureScenariosLoaded` lifecycle state for this run (audit F1). */
|
|
55
|
+
readonly load: SimulationLoadState;
|
|
56
|
+
}
|
|
57
|
+
declare module '@opensip-cli/core' {
|
|
58
|
+
interface ScopeContribution {
|
|
59
|
+
/**
|
|
60
|
+
* Simulation tool's per-run state. Returned by the simulation tool's
|
|
61
|
+
* `contributeScope` hook and installed by the kernel; absent in runs
|
|
62
|
+
* where the simulation tool is not registered. Consumers MUST
|
|
63
|
+
* null-check before reading. Augments `ScopeContribution`, which
|
|
64
|
+
* `ToolScope`/`RunScope` extend — so `cli.scope.simulation` /
|
|
65
|
+
* `currentScope()?.simulation` stay readable (audit 2026-05-29, M4).
|
|
66
|
+
*/
|
|
67
|
+
simulation?: SimulationSubscope;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=scope-augmentation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-augmentation.d.ts","sourceRoot":"","sources":["../src/scope-augmentation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC;sFACkF;IAClF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,8EAA8E;IAC9E,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;oFACgF;IAChF,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAC/C;uEACmE;IACnE,QAAQ,CAAC,OAAO,EAAE,wBAAwB,CAAC;IAC3C,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;CACpC;AAED,OAAO,QAAQ,mBAAmB,CAAC;IACjC,UAAU,iBAAiB;QACzB;;;;;;;WAOG;QACH,UAAU,CAAC,EAAE,kBAAkB,CAAC;KACjC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview RunScope augmentation for simulation.
|
|
3
|
+
*
|
|
4
|
+
* D7 (tool subscopes via module augmentation, per the RunScope/
|
|
5
|
+
* Registry architecture): tool-specific concerns nest under the
|
|
6
|
+
* tool's name on `RunScope` and
|
|
7
|
+
* are added via TypeScript module augmentation from the tool's own
|
|
8
|
+
* package. Core never imports simulation-shaped types — the layer rule
|
|
9
|
+
* stays intact (`core ← contracts ← {simulation, ...}`).
|
|
10
|
+
*
|
|
11
|
+
* Two singletons used to hang off this package as module-level state:
|
|
12
|
+
*
|
|
13
|
+
* - `scenarioRegistry` — per-process scenario registry.
|
|
14
|
+
* - `defaultSimulationRecipeRegistry` — per-process recipe registry.
|
|
15
|
+
*
|
|
16
|
+
* Both are now per-RunScope. The simulation tool's `contributeScope` hook
|
|
17
|
+
* (in `tool.ts`) instantiates fresh registries and attaches them to
|
|
18
|
+
* `scope.simulation` once per CLI invocation. Tools and library code
|
|
19
|
+
* read via `currentScope()?.simulation?.{scenarios,recipes}`.
|
|
20
|
+
*
|
|
21
|
+
* The `simulation` slot is intentionally optional and mutable (no
|
|
22
|
+
* `readonly`) on the augmented interface: the kernel doesn't construct
|
|
23
|
+
* it, and only the simulation tool's `contributeScope` writes to it during
|
|
24
|
+
* scope construction. A run that doesn't load the simulation tool
|
|
25
|
+
* carries no `scope.simulation`, and reads return `undefined`.
|
|
26
|
+
*/
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=scope-augmentation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scope-augmentation.js","sourceRoot":"","sources":["../src/scope-augmentation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG"}
|
package/dist/tool.d.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* simulationTool — simulation as a Tool plugin.
|
|
3
|
+
*
|
|
4
|
+
* Owns the `sim` subcommand. The Commander wiring is no longer hand-rolled:
|
|
5
|
+
* the tool exports a
|
|
6
|
+
* declarative {@link CommandSpec} (`simCommand`) and the host's
|
|
7
|
+
* `mountCommandSpec` mounts it (name/description/aliases, the ADR-0021 common
|
|
8
|
+
* flags, the `--recipe` option) and owns the parse→handler→error→exit pipeline.
|
|
9
|
+
* This file owns only the sim runner — the `runSim` handler below — which keeps
|
|
10
|
+
* the JSON/Ink dispatch, cloud egress, and report auto-open exactly as the
|
|
11
|
+
* old `register()` action body did (byte-identical behaviour).
|
|
12
|
+
*/
|
|
13
|
+
import './scope-augmentation.js';
|
|
14
|
+
import type { Tool } from '@opensip-cli/core';
|
|
15
|
+
/**
|
|
16
|
+
* Per-tool contract version (ADR-0047).
|
|
17
|
+
*/
|
|
18
|
+
export declare const SIMULATION_CONTRACT_VERSION = "1.0.0";
|
|
19
|
+
export declare const SIMULATION_STABLE_ID = "715d32c2-692c-4ed4-985b-a35deaf186aa";
|
|
20
|
+
export declare const simulationTool: Tool;
|
|
21
|
+
//# sourceMappingURL=tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAwBH,OAAO,yBAAyB,CAAC;AAIjC,OAAO,KAAK,EAIV,IAAI,EAIL,MAAM,mBAAmB,CAAC;AAoU3B;;GAEG;AACH,eAAO,MAAM,2BAA2B,UAAU,CAAC;AAEnD,eAAO,MAAM,oBAAoB,yCAAyC,CAAC;AAE3E,eAAO,MAAM,cAAc,EAAE,IAuC5B,CAAC"}
|