@opensip-cli/simulation 0.1.4 → 0.1.5

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/README.md CHANGED
@@ -23,8 +23,8 @@ This package is published for the CLI and advanced plugin authors; most users sh
23
23
  ## Documentation
24
24
 
25
25
  - 📚 Project docs: https://opensip.ai/docs/opensip-cli/
26
- - 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.4/docs/public/70-reference/02-package-catalog.md
27
- - 📦 Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.4/packages/simulation/engine
26
+ - 🧭 Package catalog (what every package does): https://github.com/opensip-ai/opensip-cli/blob/v0.1.5/docs/public/70-reference/02-package-catalog.md
27
+ - 📦 Source: https://github.com/opensip-ai/opensip-cli/tree/v0.1.5/packages/simulation/engine
28
28
 
29
29
  ## License
30
30
 
@@ -25,7 +25,6 @@ const EXPECTED_INTERNAL_EXPORTS = [
25
25
  'getScenariosByTag',
26
26
  'isBuiltInSimulationRecipe',
27
27
  'loadAllSimPlugins',
28
- 'readScenarioPackagePreferences',
29
28
  ].sort();
30
29
  describe('@opensip-cli/simulation/internal surface', () => {
31
30
  it('exposes exactly the intended test-only value surface', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"internal-surface.test.js","sourceRoot":"","sources":["../../src/__tests__/internal-surface.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,gFAAgF;AAChF,MAAM,yBAAyB,GAAG;IAChC,0BAA0B;IAC1B,yBAAyB;IACzB,0BAA0B;IAC1B,gCAAgC;IAChC,uBAAuB;IACvB,wBAAwB;IACxB,gCAAgC;IAChC,yBAAyB;IACzB,iCAAiC;IACjC,uBAAuB;IACvB,wBAAwB;IACxB,aAAa;IACb,oBAAoB;IACpB,mBAAmB;IACnB,2BAA2B;IAC3B,mBAAmB;IACnB,gCAAgC;CACjC,CAAC,IAAI,EAAE,CAAC;AAET,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAA0B,CAAC,KAAK,SAAS,CAAC;aACjE,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"internal-surface.test.js","sourceRoot":"","sources":["../../src/__tests__/internal-surface.test.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C,gFAAgF;AAChF,MAAM,yBAAyB,GAAG;IAChC,0BAA0B;IAC1B,yBAAyB;IACzB,0BAA0B;IAC1B,gCAAgC;IAChC,uBAAuB;IACvB,wBAAwB;IACxB,gCAAgC;IAChC,yBAAyB;IACzB,iCAAiC;IACjC,uBAAuB;IACvB,wBAAwB;IACxB,aAAa;IACb,oBAAoB;IACpB,mBAAmB;IACnB,2BAA2B;IAC3B,mBAAmB;CACpB,CAAC,IAAI,EAAE,CAAC;AAET,QAAQ,CAAC,0CAA0C,EAAE,GAAG,EAAE;IACxD,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAA0B,CAAC,KAAK,SAAS,CAAC;aACjE,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -64,7 +64,6 @@ describe('@opensip-cli/simulation public barrel', () => {
64
64
  'ensureScenariosLoaded',
65
65
  'getRegisteredScenarios',
66
66
  'loadAllSimPlugins',
67
- 'readScenarioPackagePreferences',
68
67
  ]) {
69
68
  expect(barrel).not.toHaveProperty(leak);
70
69
  }
@@ -1 +1 @@
1
- {"version":3,"file":"public-api.test.js","sourceRoot":"","sources":["../../src/__tests__/public-api.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,8EAA8E;AAC9E,MAAM,sBAAsB,GAAG;IAC7B,YAAY;IACZ,gBAAgB;IAChB,sBAAsB;IACtB,uBAAuB;IACvB,oBAAoB;IACpB,qBAAqB;IACrB,oBAAoB;IACpB,wBAAwB;IACxB,mBAAmB;IACnB,kBAAkB;IAClB,OAAO;IACP,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,6BAA6B;IAC7B,gBAAgB;IAChB,MAAM;IACN,sBAAsB;IACtB,oBAAoB;IACpB,6BAA6B;IAC7B,4BAA4B;CAC7B,CAAC,IAAI,EAAE,CAAC;AAET,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAwB,CAAC,KAAK,SAAS,CAAC;aAC7D,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACvF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,KAAK,MAAM,IAAI,IAAI;YACjB,0BAA0B;YAC1B,yBAAyB;YACzB,0BAA0B;YAC1B,uBAAuB;YACvB,wBAAwB;YACxB,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,mBAAmB;YACnB,gCAAgC;SACjC,EAAE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"public-api.test.js","sourceRoot":"","sources":["../../src/__tests__/public-api.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC,8EAA8E;AAC9E,MAAM,sBAAsB,GAAG;IAC7B,YAAY;IACZ,gBAAgB;IAChB,sBAAsB;IACtB,uBAAuB;IACvB,oBAAoB;IACpB,qBAAqB;IACrB,oBAAoB;IACpB,wBAAwB;IACxB,mBAAmB;IACnB,kBAAkB;IAClB,OAAO;IACP,wBAAwB;IACxB,YAAY;IACZ,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,gBAAgB;IAChB,6BAA6B;IAC7B,gBAAgB;IAChB,MAAM;IACN,sBAAsB;IACtB,oBAAoB;IACpB,6BAA6B;IAC7B,4BAA4B;CAC7B,CAAC,IAAI,EAAE,CAAC;AAET,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAwB,CAAC,KAAK,SAAS,CAAC;aAC7D,IAAI,EAAE,CAAC;QACV,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wEAAwE,EAAE,GAAG,EAAE;QAChF,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACvF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,KAAK,MAAM,IAAI,IAAI;YACjB,0BAA0B;YAC1B,yBAAyB;YACzB,0BAA0B;YAC1B,uBAAuB;YACvB,wBAAwB;YACxB,yBAAyB;YACzB,uBAAuB;YACvB,wBAAwB;YACxB,mBAAmB;SACpB,EAAE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -89,6 +89,15 @@ describe('resolveSimRecipeSelection (ADR-0022)', () => {
89
89
  const resolved = runWithScopeSync(scope, () => resolveSimRecipeSelection(dir, undefined));
90
90
  expect(resolved).toMatchObject({ name: 'default', source: 'builtin' });
91
91
  });
92
+ it('returns builtin default when a scope exists without a simulation block', () => {
93
+ // A scoped CLI run treats scope.toolConfig as authoritative. If the host
94
+ // did not resolve a simulation block, sim must not re-read YAML and
95
+ // accidentally pick up a stale on-disk recipe.
96
+ write('simulation:\n recipe: from-file\n');
97
+ const scope = makeSimTestScope();
98
+ const resolved = runWithScopeSync(scope, () => resolveSimRecipeSelection(dir, undefined));
99
+ expect(resolved).toMatchObject({ name: 'default', source: 'builtin' });
100
+ });
92
101
  });
93
102
  });
94
103
  //# sourceMappingURL=sim-config.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sim-config.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/sim-config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAErE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8CAA8C,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAE7D;;;;GAIG;AACH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,IAAI,GAAW,CAAC;IAEhB,UAAU,CAAC,GAAG,EAAE;QACd,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,CAAC,IAAY,EAAQ,EAAE;QACnC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,wBAAwB,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC9C,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC;YAC/D,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACxC,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9D,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,aAAa;YACrB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAC9D,KAAK,CAAC,2BAA2B,CAAC,CAAC;QACnC,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9D,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9D,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,KAAK,CAAC,wEAAwE,CAAC,CAAC;QAChF,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9D,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACrC,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;YAC9D,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,+EAA+E;IAC/E,+EAA+E;IAC/E,8EAA8E;IAC9E,yCAAyC;IACzC,QAAQ,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACvE,EAAE,CAAC,2EAA2E,EAAE,GAAG,EAAE;YACnF,2EAA2E;YAC3E,uDAAuD;YACvD,KAAK,CAAC,oCAAoC,CAAC,CAAC;YAC5C,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAC;YAE/E,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;YAC1F,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uEAAuE,EAAE,GAAG,EAAE;YAC/E,2EAA2E;YAC3E,yBAAyB;YACzB,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACpC,MAAM,KAAK,GAAG,gBAAgB,EAAE,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;YAEzD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,yBAAyB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;YAC1F,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"sim-config.test.js","sourceRoot":"","sources":["../../../src/cli/__tests__/sim-config.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,10 @@
1
1
  /**
2
2
  * sim-config — resolve the `sim` recipe default (ADR-0022).
3
3
  *
4
- * Recipes are tool-scoped: `sim` reads its own `simulation.recipe` block from
5
- * `opensip-cli.config.yml`. The `simulation:` block is read permissively here
6
- * (mirroring graph's `graph-config.ts`) simulation must not depend on fitness,
7
- * which owns the strict Zod config schema, so it parses its own slice of the
8
- * document.
4
+ * Recipes are tool-scoped: `sim` reads its own `simulation.recipe` block. When
5
+ * a run scope exists, the host-resolved `simulation:` block is authoritative:
6
+ * sim never re-reads YAML behind the composition root. Scope-less direct callers
7
+ * keep the permissive best-effort file fallback.
9
8
  */
10
9
  import { type ResolvedRecipe } from '@opensip-cli/contracts';
11
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sim-config.d.ts","sourceRoot":"","sources":["../../src/cli/sim-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AA+CpF;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,CAAC,EAAE,MAAM,GACpB,cAAc,CAMhB"}
1
+ {"version":3,"file":"sim-config.d.ts","sourceRoot":"","sources":["../../src/cli/sim-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAmDpF;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,YAAY,CAAC,EAAE,MAAM,GACpB,cAAc,CAMhB"}
@@ -1,11 +1,10 @@
1
1
  /**
2
2
  * sim-config — resolve the `sim` recipe default (ADR-0022).
3
3
  *
4
- * Recipes are tool-scoped: `sim` reads its own `simulation.recipe` block from
5
- * `opensip-cli.config.yml`. The `simulation:` block is read permissively here
6
- * (mirroring graph's `graph-config.ts`) simulation must not depend on fitness,
7
- * which owns the strict Zod config schema, so it parses its own slice of the
8
- * document.
4
+ * Recipes are tool-scoped: `sim` reads its own `simulation.recipe` block. When
5
+ * a run scope exists, the host-resolved `simulation:` block is authoritative:
6
+ * sim never re-reads YAML behind the composition root. Scope-less direct callers
7
+ * keep the permissive best-effort file fallback.
9
8
  */
10
9
  import { resolveToolRecipeName } from '@opensip-cli/contracts';
11
10
  import { currentScope, logger, readYamlFile, resolveProjectConfigPath } from '@opensip-cli/core';
@@ -26,10 +25,14 @@ function isPlainObject(v) {
26
25
  */
27
26
  function readSimulationRecipe(cwd, explicitPath) {
28
27
  // Scope-first: the resolved, strict-validated `simulation:` block.
29
- const scoped = currentScope()?.toolConfig?.simulation;
28
+ const scope = currentScope();
29
+ const scoped = scope?.toolConfig?.simulation;
30
30
  if (isPlainObject(scoped)) {
31
31
  return typeof scoped.recipe === 'string' ? scoped.recipe : undefined;
32
32
  }
33
+ if (scope !== undefined) {
34
+ return undefined;
35
+ }
33
36
  let filePath;
34
37
  try {
35
38
  filePath = resolveProjectConfigPath(cwd, explicitPath);
@@ -1 +1 @@
1
- {"version":3,"file":"sim-config.js","sourceRoot":"","sources":["../../src/cli/sim-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,qBAAqB,EAAuB,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAEjG,mFAAmF;AACnF,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,oBAAoB,CAAC,GAAW,EAAE,YAAqB;IAC9D,mEAAmE;IACnE,MAAM,MAAM,GAAG,YAAY,EAAE,EAAE,UAAU,EAAE,UAAU,CAAC;IACtD,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;IAED,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,wBAAwB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,mEAAmE;QACnE,oCAAoC;QACpC,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,sBAAsB;YAC3B,MAAM,EAAE,SAAS;YACjB,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC;IAC7B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAW,EACX,QAA4B,EAC5B,YAAqB;IAErB,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC3D,OAAO,qBAAqB,CAAC;QAC3B,QAAQ;QACR,UAAU;KACX,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"sim-config.js","sourceRoot":"","sources":["../../src/cli/sim-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAuB,MAAM,wBAAwB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAEjG,mFAAmF;AACnF,SAAS,aAAa,CAAC,CAAU;IAC/B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,oBAAoB,CAAC,GAAW,EAAE,YAAqB;IAC9D,mEAAmE;IACnE,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAG,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC;IAC7C,IAAI,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IACvE,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,QAAgB,CAAC;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,wBAAwB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IACzD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,0EAA0E;QAC1E,mEAAmE;QACnE,oCAAoC;QACpC,MAAM,CAAC,KAAK,CAAC;YACX,GAAG,EAAE,sBAAsB;YAC3B,MAAM,EAAE,SAAS;YACjB,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC5D,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,CAAC;IAC7B,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5C,OAAO,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,GAAW,EACX,QAA4B,EAC5B,YAAqB;IAErB,MAAM,UAAU,GAAG,oBAAoB,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;IAC3D,OAAO,qBAAqB,CAAC;QAC3B,QAAQ;QACR,UAAU;KACX,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"sim.d.ts","sourceRoot":"","sources":["../../src/cli/sim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAyBH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,WAAW,EAGZ,MAAM,wBAAwB,CAAC;AAOhC;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,MAAM,EAAE,CAEvD;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC9E;AAmFD,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,WAAW,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAClD,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC,CA4H9D"}
1
+ {"version":3,"file":"sim.d.ts","sourceRoot":"","sources":["../../src/cli/sim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAwBH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,WAAW,EAGZ,MAAM,wBAAwB,CAAC;AAOhC;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,SAAS,MAAM,EAAE,CAEvD;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC9E;AA4ED,sCAAsC;AACtC,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAClE;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,WAAW,GAAG;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAClD,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC;IAAE,MAAM,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,CAAC,CA4H9D"}
package/dist/cli/sim.js CHANGED
@@ -19,11 +19,11 @@
19
19
  * the CLI exists to prevent. (The loader only structured-logs the
20
20
  * empty registry; the fatal decision is the command's.)
21
21
  */
22
+ import { resolveCapabilityPreferences } from '@opensip-cli/config';
22
23
  import { BUILTIN_DEFAULT_RECIPE, buildFindingGroups, buildSignalEnvelope, EXIT_CODES, } from '@opensip-cli/contracts';
23
- import { currentScope, loadCapabilityDomain, logger, resolveScopes, resolveVerdictPolicy, } from '@opensip-cli/core';
24
+ import { currentScope, loadCapabilityDomain, logger, resolveVerdictPolicy, } from '@opensip-cli/core';
24
25
  import { currentScenarioRegistry, currentSimulationLoadState } from '../framework/registry.js';
25
26
  import { loadAllSimPlugins } from '../plugins/loader.js';
26
- import { readScenarioPackagePreferences } from '../plugins/scenario-package-discovery.js';
27
27
  import { currentSimulationRecipeRegistry } from '../recipes/registry.js';
28
28
  import { SimulationRecipeService } from '../recipes/service.js';
29
29
  import { resolveSimRecipeSelection } from './sim-config.js';
@@ -77,25 +77,21 @@ export async function ensureScenariosLoaded(projectDir) {
77
77
  /**
78
78
  * Drive the generic capability loader for the `sim-pack` domain. A no-op when the
79
79
  * run carries no capability registry (a programmatic sim use that never wired the
80
- * host capability plane), the domain is unregistered, or no projectDir. Scopes are
81
- * merged (default `@opensip-cli` customer `packageScopes`) here so name-pattern
82
- * discovery matches the prior `resolveScopes` behavior. No `@opensip-cli/config` dep.
80
+ * host capability plane), the domain is unregistered, or no projectDir. Preferences
81
+ * come from the host-validated `plugins:` block on `scope.configDocument`, using
82
+ * the domain's manifest-declared config keys.
83
83
  */
84
84
  async function loadSimScenarioPackages(projectDir) {
85
85
  if (projectDir === '')
86
86
  return;
87
- const registry = currentScope()?.capabilities;
87
+ const scope = currentScope();
88
+ const registry = scope?.capabilities;
88
89
  if (!registry?.hasDomain('sim-pack') || registry.isDomainLoaded('sim-pack', projectDir))
89
90
  return;
90
- const prefs = readScenarioPackagePreferences(projectDir);
91
- const scopes = resolveScopes('@opensip-cli', prefs.packageScopes ?? [], 'plugin.scenario_package.invalid_scope');
92
- const preferences = {
93
- ...(prefs.scenarioPackages === undefined ? {} : { packages: prefs.scenarioPackages }),
94
- ...(prefs.autoDiscoverScenarios === undefined
95
- ? {}
96
- : { autoDiscover: prefs.autoDiscoverScenarios }),
97
- scopes,
98
- };
91
+ const descriptor = registry.getDomain('sim-pack')?.discovery;
92
+ const preferences = descriptor === undefined
93
+ ? {}
94
+ : resolveCapabilityPreferences(descriptor, scope?.configDocument?.plugins ?? {});
99
95
  await loadCapabilityDomain({ registry, domainId: 'sim-pack', projectDir, preferences });
100
96
  }
101
97
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"sim.js","sourceRoot":"","sources":["../../src/cli/sim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sim.js","sourceRoot":"","sources":["../../src/cli/sim.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EACL,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,MAAM,EACN,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,+BAA+B,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAY5D,8EAA8E;AAC9E,iCAAiC;AACjC,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,0BAA0B,EAAE,CAAC,gBAAgB,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,UAAmB;IAC7D,MAAM,GAAG,GAAG,UAAU,IAAI,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,0BAA0B,EAAE,CAAC;IAC1C,IAAI,IAAI,CAAC,SAAS,KAAK,GAAG;QAAE,OAAO;IAEnC,2EAA2E;IAC3E,0EAA0E;IAC1E,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,gBAAgB,GAAG,YAAY,CAAC,MAAM,CAAC;IAC5C,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,GAAG,IAAI,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,8EAA8E;IAC9E,iFAAiF;IACjF,gFAAgF;IAChF,+EAA+E;IAC/E,+EAA+E;IAC/E,0EAA0E;IAC1E,kBAAkB;IAClB,MAAM,uBAAuB,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;IAEhD,+EAA+E;IAC/E,IAAI,uBAAuB,EAAE,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,6BAA6B;YAClC,MAAM,EAAE,SAAS;YACjB,GAAG,EAAE,qBAAqB;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACvB,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,uBAAuB,CAAC,UAAkB;IACvD,IAAI,UAAU,KAAK,EAAE;QAAE,OAAO;IAC9B,MAAM,KAAK,GAAG,YAAY,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,KAAK,EAAE,YAAY,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,UAAU,EAAE,UAAU,CAAC;QAAE,OAAO;IAChG,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC;IAC7D,MAAM,WAAW,GACf,UAAU,KAAK,SAAS;QACtB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,4BAA4B,CAAC,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,OAAO,IAAI,EAAE,CAAC,CAAC;IACrF,MAAM,oBAAoB,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,QAAkC,EAAE,OAA0B;IACpF,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;IAC/F,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,sBAAsB,CAAC,SAA8C;IAI5E,MAAM,KAAK,GAAiB,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,EAAE,OAAO,IAAI,EAAE,CAAC;QACvD,mEAAmE;QACnE,gEAAgE;QAChE,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,OAAO,CAAC,IAAI,CACV,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,UAAU,EAAE,CAC5F,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,QAAQ,CAAC,UAAU;YACzB,MAAM,EAAE,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC;YACjD,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;SACnE,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAaD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAAkD,EAClD,OAA0B,EAAE;IAE5B,qEAAqE;IACrE,gDAAgD;IAChD,MAAM,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtC,gEAAgE;IAChE,sEAAsE;IACtE,4EAA4E;IAC5E,MAAM,eAAe,GAAG,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACzE,IAAI,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC;IACtC,IAAI,MAAM,GAAG,+BAA+B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACtE,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,QAAQ,IAAI,UAAU,KAAK,sBAAsB,EAAE,CAAC;QACjF,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,mCAAmC;YACxC,MAAM,EAAE,SAAS;YACjB,SAAS,EAAE,UAAU;YACrB,QAAQ,EAAE,sBAAsB;YAChC,GAAG,EAAE,0BAA0B,UAAU,uBAAuB,sBAAsB,UAAU,UAAU,yFAAyF;SACpM,CAAC,CAAC;QACH,UAAU,GAAG,sBAAsB,CAAC;QACpC,MAAM,GAAG,+BAA+B,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;YACL,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,uBAAuB,UAAU,IAAI;gBAC9C,UAAU,EAAE,uDAAuD;gBACnE,QAAQ,EAAE,UAAU,CAAC,mBAAmB;aACzC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,uBAAuB,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC5F,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;IAEzC,yEAAyE;IACzE,0EAA0E;IAC1E,uEAAuE;IACvE,yEAAyE;IACzE,8DAA8D;IAC9D,wEAAwE;IACxE,+DAA+D;IAC/D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,MAAM,aAAa,GAAG,uBAAuB,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC;YACV,GAAG,EAAE,mBAAmB;YACxB,MAAM,EAAE,SAAS;YACjB,UAAU;YACV,aAAa;SACd,CAAC,CAAC;QACH,OAAO;YACL,MAAM,EAAE;gBACN,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,aAAa;oBACpB,CAAC,CAAC,iDAAiD;oBACnD,CAAC,CAAC,WAAW,UAAU,kDAAkD;gBAC3E,UAAU,EAAE,aAAa;oBACvB,CAAC,CAAC,yKAAyK;oBAC3K,CAAC,CAAC,0EAA0E;gBAC9E,QAAQ,EAAE,UAAU,CAAC,mBAAmB;aACzC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC;IACxD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC;IAEzC,MAAM,CAAC,IAAI,CAAC;QACV,GAAG,EAAE,kBAAkB;QACvB,MAAM,EAAE,SAAS;QACjB,UAAU;QACV,MAAM;QACN,MAAM;QACN,UAAU,EAAE,YAAY,CAAC,UAAU;KACpC,CAAC,CAAC;IAEH,yEAAyE;IACzE,yEAAyE;IACzE,4EAA4E;IAC5E,+EAA+E;IAC/E,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,YAAY,EAAE,EAAE,KAAK,IAAI,EAAE;QAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,KAAK;QACL,OAAO;QACP,2EAA2E;QAC3E,sEAAsE;QACtE,8EAA8E;QAC9E,sEAAsE;QACtE,MAAM,EAAE,oBAAoB,CAAC,YAAY,CAAC;QAC1C,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC;IAEH,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,iBAAiB;IACjB,MAAM,aAAa,GACjB,IAAI,CAAC,OAAO,KAAK,IAAI;QACnB,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;QAClE,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,MAAM,GAAkB;QAC5B,IAAI,EAAE,UAAU;QAChB,UAAU;QACV,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,sGAAsG;QACtG,GAAG,CAAC,YAAY,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,UAAU,EAAE,CAAC;QACzF,8EAA8E;QAC9E,+EAA+E;QAC/E,8EAA8E;QAC9E,QAAQ;QACR,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;KAC1D,CAAC;IACF,gFAAgF;IAChF,6EAA6E;IAC7E,8EAA8E;IAC9E,OAAO,EAAE,MAAM,EAAE,CAAC;AACpB,CAAC"}
@@ -9,7 +9,6 @@
9
9
  export { ensureScenariosLoaded } from './cli/sim.js';
10
10
  export { createScenarioRegistry, currentScenarioRegistry, getRegisteredScenarios, getScenario, getScenariosByTag, getScenariosByKind, clearScenarioRegistry, } from './framework/registry.js';
11
11
  export { loadAllSimPlugins } from './plugins/loader.js';
12
- export { readScenarioPackagePreferences } from './plugins/scenario-package-discovery.js';
13
12
  export type { SimPluginExports } from './plugins/types.js';
14
13
  export { builtInSimulationRecipes, builtInSimulationRecipesByName, isBuiltInSimulationRecipe, } from './recipes/built-in-recipes.js';
15
14
  export { SimulationRecipeRegistry, createSimulationRecipeRegistry, currentSimulationRecipeRegistry, } from './recipes/registry.js';
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EACV,6BAA6B,EAC7B,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EACV,6BAA6B,EAC7B,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC"}
package/dist/internal.js CHANGED
@@ -9,7 +9,6 @@
9
9
  export { ensureScenariosLoaded } from './cli/sim.js';
10
10
  export { createScenarioRegistry, currentScenarioRegistry, getRegisteredScenarios, getScenario, getScenariosByTag, getScenariosByKind, clearScenarioRegistry, } from './framework/registry.js';
11
11
  export { loadAllSimPlugins } from './plugins/loader.js';
12
- export { readScenarioPackagePreferences } from './plugins/scenario-package-discovery.js';
13
12
  export { builtInSimulationRecipes, builtInSimulationRecipesByName, isBuiltInSimulationRecipe, } from './recipes/built-in-recipes.js';
14
13
  export { SimulationRecipeRegistry, createSimulationRecipeRegistry, currentSimulationRecipeRegistry, } from './recipes/registry.js';
15
14
  export { SimulationRecipeService } from './recipes/service.js';
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AAGzF,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../src/internal.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,wBAAwB,EACxB,8BAA8B,EAC9B,+BAA+B,GAChC,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensip-cli/simulation",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Simulation scenarios for OpenSIP CLI",
6
6
  "keywords": [
@@ -97,12 +97,12 @@
97
97
  "ink": "^7.0.5",
98
98
  "react": "^19.2.7",
99
99
  "zod": "^4.4.3",
100
- "@opensip-cli/cli-ui": "0.1.4",
101
- "@opensip-cli/config": "0.1.4",
102
- "@opensip-cli/datastore": "0.1.4",
103
- "@opensip-cli/session-store": "0.1.4",
104
- "@opensip-cli/core": "0.1.4",
105
- "@opensip-cli/contracts": "0.1.4"
100
+ "@opensip-cli/cli-ui": "0.1.5",
101
+ "@opensip-cli/config": "0.1.5",
102
+ "@opensip-cli/core": "0.1.5",
103
+ "@opensip-cli/datastore": "0.1.5",
104
+ "@opensip-cli/contracts": "0.1.5",
105
+ "@opensip-cli/session-store": "0.1.5"
106
106
  },
107
107
  "devDependencies": {
108
108
  "@types/node": "^24.13.2",
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=scenario-package-discovery.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-package-discovery.test.d.ts","sourceRoot":"","sources":["../../../src/plugins/__tests__/scenario-package-discovery.test.ts"],"names":[],"mappings":""}
@@ -1,43 +0,0 @@
1
- import { mkdtempSync, rmSync, writeFileSync } from 'node:fs';
2
- import { tmpdir } from 'node:os';
3
- import { join } from 'node:path';
4
- import { afterEach, beforeEach, describe, expect, it } from 'vitest';
5
- import { readScenarioPackagePreferences } from '../scenario-package-discovery.js';
6
- let testDir;
7
- beforeEach(() => {
8
- testDir = mkdtempSync(join(tmpdir(), 'opensip-scenario-pkg-disc-'));
9
- });
10
- afterEach(() => {
11
- rmSync(testDir, { recursive: true, force: true });
12
- });
13
- describe('readScenarioPackagePreferences', () => {
14
- it('reads scenarioPackages and autoDiscoverScenarios from project config', () => {
15
- writeFileSync(join(testDir, 'opensip-cli.config.yml'), `plugins:
16
- scenarioPackages:
17
- - "@opensip-cli/scenarios-load-default"
18
- autoDiscoverScenarios: false
19
- `);
20
- const prefs = readScenarioPackagePreferences(testDir);
21
- expect(prefs.scenarioPackages).toEqual(['@opensip-cli/scenarios-load-default']);
22
- expect(prefs.autoDiscoverScenarios).toBe(false);
23
- });
24
- it('reads packageScopes from project config', () => {
25
- writeFileSync(join(testDir, 'opensip-cli.config.yml'), `plugins:
26
- packageScopes:
27
- - "@acme"
28
- - "@my-org"
29
- `);
30
- const prefs = readScenarioPackagePreferences(testDir);
31
- expect(prefs.packageScopes).toEqual(['@acme', '@my-org']);
32
- });
33
- it('returns empty object when config has no plugins section', () => {
34
- writeFileSync(join(testDir, 'opensip-cli.config.yml'), `simulation: { enabled: true }
35
- `);
36
- const prefs = readScenarioPackagePreferences(testDir);
37
- expect(prefs).toEqual({});
38
- });
39
- it('returns empty object when no config file exists', () => {
40
- expect(readScenarioPackagePreferences(testDir)).toEqual({});
41
- });
42
- });
43
- //# sourceMappingURL=scenario-package-discovery.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-package-discovery.test.js","sourceRoot":"","sources":["../../../src/plugins/__tests__/scenario-package-discovery.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAErE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAElF,IAAI,OAAe,CAAC;AAEpB,UAAU,CAAC,GAAG,EAAE;IACd,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,4BAA4B,CAAC,CAAC,CAAC;AACtE,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,GAAG,EAAE;IACb,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC9E,aAAa,CACX,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,EACvC;;;;CAIL,CACI,CAAC;QACF,MAAM,KAAK,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,aAAa,CACX,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,EACvC;;;;CAIL,CACI,CAAC;QACF,MAAM,KAAK,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,aAAa,CACX,IAAI,CAAC,OAAO,EAAE,wBAAwB,CAAC,EACvC;CACL,CACI,CAAC;QACF,MAAM,KAAK,GAAG,8BAA8B,CAAC,OAAO,CAAC,CAAC;QACtD,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,23 +0,0 @@
1
- /**
2
- * @fileoverview The `plugins.{scenarioPackages,autoDiscoverScenarios,packageScopes}`
3
- * preference reader.
4
- *
5
- * Scenario-pack discovery + resolution (the `<scope>/scenarios-*` name-pattern
6
- * walk, scope merging, explicit-name resolution, the single-core guard) lives in
7
- * the GENERIC capability substrate (`@opensip-cli/core`) now. This module keeps
8
- * only the sim-side reader for the documented config keys — sim resolves its own
9
- * preference without depending on `@opensip-cli/config`, then hands the result
10
- * to the generic loader.
11
- */
12
- /**
13
- * Read `plugins.scenarioPackages`, `plugins.autoDiscoverScenarios`, and
14
- * `plugins.packageScopes` from the project's opensip-cli.config.yml without a
15
- * full schema parse. Mirrors the inline-yaml-read pattern used by
16
- * `readProjectPluginsList()`.
17
- */
18
- export declare function readScenarioPackagePreferences(projectDir: string): {
19
- readonly scenarioPackages?: readonly string[];
20
- readonly autoDiscoverScenarios?: boolean;
21
- readonly packageScopes?: readonly string[];
22
- };
23
- //# sourceMappingURL=scenario-package-discovery.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-package-discovery.d.ts","sourceRoot":"","sources":["../../src/plugins/scenario-package-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,MAAM,GAAG;IAClE,QAAQ,CAAC,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IACzC,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C,CAsBA"}
@@ -1,42 +0,0 @@
1
- /**
2
- * @fileoverview The `plugins.{scenarioPackages,autoDiscoverScenarios,packageScopes}`
3
- * preference reader.
4
- *
5
- * Scenario-pack discovery + resolution (the `<scope>/scenarios-*` name-pattern
6
- * walk, scope merging, explicit-name resolution, the single-core guard) lives in
7
- * the GENERIC capability substrate (`@opensip-cli/core`) now. This module keeps
8
- * only the sim-side reader for the documented config keys — sim resolves its own
9
- * preference without depending on `@opensip-cli/config`, then hands the result
10
- * to the generic loader.
11
- */
12
- import { join } from 'node:path';
13
- import { readYamlFile } from '@opensip-cli/core';
14
- const CONFIG_FILENAME = 'opensip-cli.config.yml';
15
- /**
16
- * Read `plugins.scenarioPackages`, `plugins.autoDiscoverScenarios`, and
17
- * `plugins.packageScopes` from the project's opensip-cli.config.yml without a
18
- * full schema parse. Mirrors the inline-yaml-read pattern used by
19
- * `readProjectPluginsList()`.
20
- */
21
- export function readScenarioPackagePreferences(projectDir) {
22
- const configPath = join(projectDir, CONFIG_FILENAME);
23
- const doc = readYamlFile(configPath);
24
- if (!doc || typeof doc !== 'object')
25
- return {};
26
- const plugins = doc.plugins;
27
- if (!plugins || typeof plugins !== 'object')
28
- return {};
29
- const p = plugins;
30
- const result = {};
31
- if (Array.isArray(p.scenarioPackages)) {
32
- result.scenarioPackages = p.scenarioPackages.filter((v) => typeof v === 'string');
33
- }
34
- if (typeof p.autoDiscoverScenarios === 'boolean') {
35
- result.autoDiscoverScenarios = p.autoDiscoverScenarios;
36
- }
37
- if (Array.isArray(p.packageScopes)) {
38
- result.packageScopes = p.packageScopes.filter((v) => typeof v === 'string');
39
- }
40
- return result;
41
- }
42
- //# sourceMappingURL=scenario-package-discovery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scenario-package-discovery.js","sourceRoot":"","sources":["../../src/plugins/scenario-package-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,eAAe,GAAG,wBAAwB,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,UAAU,8BAA8B,CAAC,UAAkB;IAK/D,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;IACrD,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IAC/C,MAAM,OAAO,GAAI,GAA+B,CAAC,OAAO,CAAC;IACzD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACvD,MAAM,CAAC,GAAG,OAAkC,CAAC;IAC7C,MAAM,MAAM,GAIR,EAAE,CAAC;IACP,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACtC,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IACjG,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,qBAAqB,KAAK,SAAS,EAAE,CAAC;QACjD,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAC,qBAAqB,CAAC;IACzD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}