@agentplat/mesh-sim 0.3.0-beta.2 → 0.3.0-beta.4

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.
Files changed (185) hide show
  1. package/README.md +447 -2
  2. package/dist/collective-closed-loop-action.d.ts +80 -0
  3. package/dist/collective-closed-loop-action.d.ts.map +1 -0
  4. package/dist/collective-closed-loop-action.js +471 -0
  5. package/dist/collective-closed-loop-action.js.map +1 -0
  6. package/dist/collective-closed-loop-contracts.d.ts +75 -0
  7. package/dist/collective-closed-loop-contracts.d.ts.map +1 -0
  8. package/dist/collective-closed-loop-contracts.js +420 -0
  9. package/dist/collective-closed-loop-contracts.js.map +1 -0
  10. package/dist/collective-closed-loop-fault-matrix.d.ts +101 -0
  11. package/dist/collective-closed-loop-fault-matrix.d.ts.map +1 -0
  12. package/dist/collective-closed-loop-fault-matrix.js +253 -0
  13. package/dist/collective-closed-loop-fault-matrix.js.map +1 -0
  14. package/dist/collective-closed-loop-recovery.d.ts +70 -0
  15. package/dist/collective-closed-loop-recovery.d.ts.map +1 -0
  16. package/dist/collective-closed-loop-recovery.js +823 -0
  17. package/dist/collective-closed-loop-recovery.js.map +1 -0
  18. package/dist/collective-closed-loop-reference.d.ts +54 -0
  19. package/dist/collective-closed-loop-reference.d.ts.map +1 -0
  20. package/dist/collective-closed-loop-reference.js +1696 -0
  21. package/dist/collective-closed-loop-reference.js.map +1 -0
  22. package/dist/collective-closed-loop-replanning.d.ts +27 -0
  23. package/dist/collective-closed-loop-replanning.d.ts.map +1 -0
  24. package/dist/collective-closed-loop-replanning.js +151 -0
  25. package/dist/collective-closed-loop-replanning.js.map +1 -0
  26. package/dist/collective-closed-loop-resilience-campaign.d.ts +22 -0
  27. package/dist/collective-closed-loop-resilience-campaign.d.ts.map +1 -0
  28. package/dist/collective-closed-loop-resilience-campaign.js +196 -0
  29. package/dist/collective-closed-loop-resilience-campaign.js.map +1 -0
  30. package/dist/collective-closed-loop-resilience-contracts.d.ts +138 -0
  31. package/dist/collective-closed-loop-resilience-contracts.d.ts.map +1 -0
  32. package/dist/collective-closed-loop-resilience-contracts.js +677 -0
  33. package/dist/collective-closed-loop-resilience-contracts.js.map +1 -0
  34. package/dist/collective-closed-loop-runner.d.ts +133 -0
  35. package/dist/collective-closed-loop-runner.d.ts.map +1 -0
  36. package/dist/collective-closed-loop-runner.js +1429 -0
  37. package/dist/collective-closed-loop-runner.js.map +1 -0
  38. package/dist/collective-closed-loop-runtime.d.ts +95 -0
  39. package/dist/collective-closed-loop-runtime.d.ts.map +1 -0
  40. package/dist/collective-closed-loop-runtime.js +1192 -0
  41. package/dist/collective-closed-loop-runtime.js.map +1 -0
  42. package/dist/collective-effect-provenance.d.ts +5 -0
  43. package/dist/collective-effect-provenance.d.ts.map +1 -0
  44. package/dist/collective-effect-provenance.js +32 -0
  45. package/dist/collective-effect-provenance.js.map +1 -0
  46. package/dist/collective-environment.d.ts +49 -0
  47. package/dist/collective-environment.d.ts.map +1 -0
  48. package/dist/collective-environment.js +907 -0
  49. package/dist/collective-environment.js.map +1 -0
  50. package/dist/collective-progressive-scale-overlay.d.ts +39 -0
  51. package/dist/collective-progressive-scale-overlay.d.ts.map +1 -0
  52. package/dist/collective-progressive-scale-overlay.js +147 -0
  53. package/dist/collective-progressive-scale-overlay.js.map +1 -0
  54. package/dist/collective-progressive-scale.d.ts +202 -0
  55. package/dist/collective-progressive-scale.d.ts.map +1 -0
  56. package/dist/collective-progressive-scale.js +755 -0
  57. package/dist/collective-progressive-scale.js.map +1 -0
  58. package/dist/collective-statistical-campaign-aggregation.d.ts +97 -0
  59. package/dist/collective-statistical-campaign-aggregation.d.ts.map +1 -0
  60. package/dist/collective-statistical-campaign-aggregation.js +446 -0
  61. package/dist/collective-statistical-campaign-aggregation.js.map +1 -0
  62. package/dist/collective-statistical-campaign-artifact-stream.d.ts +66 -0
  63. package/dist/collective-statistical-campaign-artifact-stream.d.ts.map +1 -0
  64. package/dist/collective-statistical-campaign-artifact-stream.js +207 -0
  65. package/dist/collective-statistical-campaign-artifact-stream.js.map +1 -0
  66. package/dist/collective-statistical-campaign-bundle.d.ts +151 -0
  67. package/dist/collective-statistical-campaign-bundle.d.ts.map +1 -0
  68. package/dist/collective-statistical-campaign-bundle.js +885 -0
  69. package/dist/collective-statistical-campaign-bundle.js.map +1 -0
  70. package/dist/collective-statistical-campaign-executor.d.ts +131 -0
  71. package/dist/collective-statistical-campaign-executor.d.ts.map +1 -0
  72. package/dist/collective-statistical-campaign-executor.js +856 -0
  73. package/dist/collective-statistical-campaign-executor.js.map +1 -0
  74. package/dist/collective-statistical-campaign-normative-analysis.d.ts +85 -0
  75. package/dist/collective-statistical-campaign-normative-analysis.d.ts.map +1 -0
  76. package/dist/collective-statistical-campaign-normative-analysis.js +483 -0
  77. package/dist/collective-statistical-campaign-normative-analysis.js.map +1 -0
  78. package/dist/collective-statistical-campaign-normative-operation.d.ts +89 -0
  79. package/dist/collective-statistical-campaign-normative-operation.d.ts.map +1 -0
  80. package/dist/collective-statistical-campaign-normative-operation.js +266 -0
  81. package/dist/collective-statistical-campaign-normative-operation.js.map +1 -0
  82. package/dist/collective-statistical-campaign-normative-registry.d.ts +24 -0
  83. package/dist/collective-statistical-campaign-normative-registry.d.ts.map +1 -0
  84. package/dist/collective-statistical-campaign-normative-registry.js +163 -0
  85. package/dist/collective-statistical-campaign-normative-registry.js.map +1 -0
  86. package/dist/collective-statistical-campaign-registered-adapter.d.ts +16 -0
  87. package/dist/collective-statistical-campaign-registered-adapter.d.ts.map +1 -0
  88. package/dist/collective-statistical-campaign-registered-adapter.js +518 -0
  89. package/dist/collective-statistical-campaign-registered-adapter.js.map +1 -0
  90. package/dist/collective-statistical-campaign-scale.d.ts +85 -0
  91. package/dist/collective-statistical-campaign-scale.d.ts.map +1 -0
  92. package/dist/collective-statistical-campaign-scale.js +349 -0
  93. package/dist/collective-statistical-campaign-scale.js.map +1 -0
  94. package/dist/collective-trace-journal.d.ts +20 -0
  95. package/dist/collective-trace-journal.d.ts.map +1 -0
  96. package/dist/collective-trace-journal.js +105 -0
  97. package/dist/collective-trace-journal.js.map +1 -0
  98. package/dist/index.d.ts +25 -0
  99. package/dist/index.d.ts.map +1 -1
  100. package/dist/index.js +25 -0
  101. package/dist/index.js.map +1 -1
  102. package/dist/multi-domain-environment-contracts.d.ts +122 -0
  103. package/dist/multi-domain-environment-contracts.d.ts.map +1 -0
  104. package/dist/multi-domain-environment-contracts.js +14 -0
  105. package/dist/multi-domain-environment-contracts.js.map +1 -0
  106. package/dist/multi-domain-environment-runtime.d.ts +25 -0
  107. package/dist/multi-domain-environment-runtime.d.ts.map +1 -0
  108. package/dist/multi-domain-environment-runtime.js +493 -0
  109. package/dist/multi-domain-environment-runtime.js.map +1 -0
  110. package/dist/multi-domain-environment-validation.d.ts +33 -0
  111. package/dist/multi-domain-environment-validation.d.ts.map +1 -0
  112. package/dist/multi-domain-environment-validation.js +415 -0
  113. package/dist/multi-domain-environment-validation.js.map +1 -0
  114. package/dist/multi-domain-environment.d.ts +4 -0
  115. package/dist/multi-domain-environment.d.ts.map +1 -0
  116. package/dist/multi-domain-environment.js +4 -0
  117. package/dist/multi-domain-environment.js.map +1 -0
  118. package/dist/reducer-scenario.d.ts.map +1 -1
  119. package/dist/reducer-scenario.js +67 -19
  120. package/dist/reducer-scenario.js.map +1 -1
  121. package/dist/scalable-evaluation-contracts.d.ts +835 -0
  122. package/dist/scalable-evaluation-contracts.d.ts.map +1 -0
  123. package/dist/scalable-evaluation-contracts.js +22 -0
  124. package/dist/scalable-evaluation-contracts.js.map +1 -0
  125. package/dist/scalable-evaluation-durability.d.ts +16 -0
  126. package/dist/scalable-evaluation-durability.d.ts.map +1 -0
  127. package/dist/scalable-evaluation-durability.js +339 -0
  128. package/dist/scalable-evaluation-durability.js.map +1 -0
  129. package/dist/scalable-evaluation-evidence.d.ts +93 -0
  130. package/dist/scalable-evaluation-evidence.d.ts.map +1 -0
  131. package/dist/scalable-evaluation-evidence.js +470 -0
  132. package/dist/scalable-evaluation-evidence.js.map +1 -0
  133. package/dist/scalable-evaluation-reference-integrated.d.ts +87 -0
  134. package/dist/scalable-evaluation-reference-integrated.d.ts.map +1 -0
  135. package/dist/scalable-evaluation-reference-integrated.js +1318 -0
  136. package/dist/scalable-evaluation-reference-integrated.js.map +1 -0
  137. package/dist/scalable-evaluation-runner.d.ts +8 -0
  138. package/dist/scalable-evaluation-runner.d.ts.map +1 -0
  139. package/dist/scalable-evaluation-runner.js +1810 -0
  140. package/dist/scalable-evaluation-runner.js.map +1 -0
  141. package/dist/scalable-evaluation-runtime.d.ts +86 -0
  142. package/dist/scalable-evaluation-runtime.d.ts.map +1 -0
  143. package/dist/scalable-evaluation-runtime.js +1310 -0
  144. package/dist/scalable-evaluation-runtime.js.map +1 -0
  145. package/dist/scalable-evaluation-validation.d.ts +59 -0
  146. package/dist/scalable-evaluation-validation.d.ts.map +1 -0
  147. package/dist/scalable-evaluation-validation.js +377 -0
  148. package/dist/scalable-evaluation-validation.js.map +1 -0
  149. package/dist/scalable-evaluation.d.ts +8 -0
  150. package/dist/scalable-evaluation.d.ts.map +1 -0
  151. package/dist/scalable-evaluation.js +8 -0
  152. package/dist/scalable-evaluation.js.map +1 -0
  153. package/dist/sharded-simulation-contracts.d.ts +240 -0
  154. package/dist/sharded-simulation-contracts.d.ts.map +1 -0
  155. package/dist/sharded-simulation-contracts.js +199 -0
  156. package/dist/sharded-simulation-contracts.js.map +1 -0
  157. package/dist/sharded-simulation-runtime.d.ts +64 -0
  158. package/dist/sharded-simulation-runtime.d.ts.map +1 -0
  159. package/dist/sharded-simulation-runtime.js +755 -0
  160. package/dist/sharded-simulation-runtime.js.map +1 -0
  161. package/dist/sharded-simulation-validation.d.ts +10 -0
  162. package/dist/sharded-simulation-validation.d.ts.map +1 -0
  163. package/dist/sharded-simulation-validation.js +250 -0
  164. package/dist/sharded-simulation-validation.js.map +1 -0
  165. package/dist/sharded-simulation.d.ts +46 -0
  166. package/dist/sharded-simulation.d.ts.map +1 -0
  167. package/dist/sharded-simulation.js +32 -0
  168. package/dist/sharded-simulation.js.map +1 -0
  169. package/dist/verified-benchmark-contracts.d.ts +132 -0
  170. package/dist/verified-benchmark-contracts.d.ts.map +1 -0
  171. package/dist/verified-benchmark-contracts.js +2 -0
  172. package/dist/verified-benchmark-contracts.js.map +1 -0
  173. package/dist/verified-benchmark-runtime.d.ts +20 -0
  174. package/dist/verified-benchmark-runtime.d.ts.map +1 -0
  175. package/dist/verified-benchmark-runtime.js +199 -0
  176. package/dist/verified-benchmark-runtime.js.map +1 -0
  177. package/dist/verified-benchmark-validation.d.ts +64 -0
  178. package/dist/verified-benchmark-validation.d.ts.map +1 -0
  179. package/dist/verified-benchmark-validation.js +481 -0
  180. package/dist/verified-benchmark-validation.js.map +1 -0
  181. package/dist/verified-benchmark.d.ts +4 -0
  182. package/dist/verified-benchmark.d.ts.map +1 -0
  183. package/dist/verified-benchmark.js +4 -0
  184. package/dist/verified-benchmark.js.map +1 -0
  185. package/package.json +18 -8
@@ -0,0 +1,25 @@
1
+ import { type MultiDomainAdapterConformanceReportV1, type MultiDomainEnvironmentAdapterV1, type MultiDomainEnvironmentDomainV1, type MultiDomainScenarioDefinitionV1 } from "./multi-domain-environment-contracts.js";
2
+ type ConcreteDomain = Exclude<MultiDomainEnvironmentDomainV1, "hybrid">;
3
+ /**
4
+ * Reference adapters are deliberately coarse-grained and local. Their purpose
5
+ * is to demonstrate one contract across domain families, not domain fidelity.
6
+ */
7
+ export declare function createReferenceMultiDomainEnvironmentAdapterV1(input: {
8
+ readonly domain: ConcreteDomain;
9
+ readonly adapterId?: string;
10
+ readonly adapterVersion?: number;
11
+ }): MultiDomainEnvironmentAdapterV1;
12
+ export declare function createReferenceMultiDomainScenarioDefinitionV1(input: {
13
+ readonly adapter: MultiDomainEnvironmentAdapterV1;
14
+ readonly scenarioId: string;
15
+ readonly scaleProfileId: "peers-500-interactions-5000" | "peers-5000-interactions-50000" | "peers-100000-interactions-1000000";
16
+ readonly seed: number;
17
+ readonly entityCount?: number;
18
+ }): MultiDomainScenarioDefinitionV1;
19
+ /** Public, deterministic conformance runner. It never receives evaluator metrics. */
20
+ export declare function runMultiDomainAdapterConformanceV1(input: {
21
+ readonly adapter: MultiDomainEnvironmentAdapterV1;
22
+ readonly definition: MultiDomainScenarioDefinitionV1;
23
+ }): Promise<MultiDomainAdapterConformanceReportV1>;
24
+ export {};
25
+ //# sourceMappingURL=multi-domain-environment-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-domain-environment-runtime.d.ts","sourceRoot":"","sources":["../src/multi-domain-environment-runtime.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,qCAAqC,EAC1C,KAAK,+BAA+B,EAEpC,KAAK,8BAA8B,EAEnC,KAAK,+BAA+B,EAErC,MAAM,yCAAyC,CAAC;AAkCjD,KAAK,cAAc,GAAG,OAAO,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,8CAA8C,CAAC,KAAK,EAAE;IACpE,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC,GAAG,+BAA+B,CA2ElC;AAED,wBAAgB,8CAA8C,CAAC,KAAK,EAAE;IACpE,QAAQ,CAAC,OAAO,EAAE,+BAA+B,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,EACnB,6BAA6B,GAC7B,+BAA+B,GAC/B,mCAAmC,CAAC;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B,GAAG,+BAA+B,CAqClC;AAED,qFAAqF;AACrF,wBAAsB,kCAAkC,CAAC,KAAK,EAAE;IAC9D,QAAQ,CAAC,OAAO,EAAE,+BAA+B,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;CACtD,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAuFjD"}
@@ -0,0 +1,493 @@
1
+ import { createMultiDomainEnvironmentDescriptorV1, createMultiDomainObservationEnvelopeV1, createMultiDomainScenarioManifestV1, multiDomainEnvironmentDigestV1, validateMultiDomainActionEnvelopeV1, validateMultiDomainEnvironmentDescriptorV1, validateMultiDomainObservationEnvelopeV1, validateMultiDomainScenarioManifestV1, } from "./multi-domain-environment-validation.js";
2
+ import { InMemoryShardedSimulationBridgeV1 } from "./sharded-simulation-runtime.js";
3
+ import { validateShardedSimulationCheckpointV1 } from "./sharded-simulation-validation.js";
4
+ import { createShardedSimulationAssignmentsV1, shardedSimulationDigestV1, shardedSimulationFencedActionDigestV1, shardedSimulationScaleProfileV1, } from "./sharded-simulation-contracts.js";
5
+ /**
6
+ * Reference adapters are deliberately coarse-grained and local. Their purpose
7
+ * is to demonstrate one contract across domain families, not domain fidelity.
8
+ */
9
+ export function createReferenceMultiDomainEnvironmentAdapterV1(input) {
10
+ const preset = presetFor(input.domain);
11
+ const adapterId = input.adapterId ?? `reference-${input.domain}-environment`;
12
+ const adapterVersion = input.adapterVersion ?? 1;
13
+ const observationSchemaDigest = multiDomainEnvironmentDigestV1("reference-observation-schema", {
14
+ adapterId,
15
+ adapterVersion,
16
+ domain: input.domain,
17
+ modality: preset.modality,
18
+ });
19
+ const actionSchemaDigest = multiDomainEnvironmentDigestV1("reference-action-schema", {
20
+ adapterId,
21
+ adapterVersion,
22
+ domain: input.domain,
23
+ capability: preset.capability,
24
+ });
25
+ const descriptor = createMultiDomainEnvironmentDescriptorV1({
26
+ adapterId,
27
+ adapterVersion,
28
+ implementationDigest: multiDomainEnvironmentDigestV1("reference-implementation", { adapterId, adapterVersion, domain: input.domain }),
29
+ domains: [input.domain],
30
+ capabilities: [preset.capability],
31
+ observationSchemas: [
32
+ {
33
+ schemaVersion: 1,
34
+ domain: input.domain,
35
+ modality: preset.modality,
36
+ schemaId: `${input.domain}-observation-v1`,
37
+ schemaDigest: observationSchemaDigest,
38
+ },
39
+ ],
40
+ actionSchemas: [
41
+ {
42
+ schemaVersion: 1,
43
+ domain: input.domain,
44
+ capability: preset.capability,
45
+ schemaId: `${input.domain}-action-v1`,
46
+ schemaDigest: actionSchemaDigest,
47
+ },
48
+ ],
49
+ limits: {
50
+ maximumEntities: 100_000,
51
+ maximumObservationBytes: 64 * 1024,
52
+ maximumActionBytes: 64 * 1024,
53
+ maximumObservationsPerPull: 8,
54
+ maximumCheckpointBytes: 1024 * 1024,
55
+ },
56
+ deterministicReplay: true,
57
+ });
58
+ return Object.freeze({
59
+ descriptor,
60
+ createScenario(definition) {
61
+ return createMultiDomainScenarioManifestV1({ descriptor, definition });
62
+ },
63
+ openScenario({ manifest, }) {
64
+ return new ReferenceMultiDomainBridgeV1(descriptor, validateMultiDomainScenarioManifestV1(manifest, descriptor), input.domain);
65
+ },
66
+ });
67
+ }
68
+ export function createReferenceMultiDomainScenarioDefinitionV1(input) {
69
+ const descriptor = validateMultiDomainEnvironmentDescriptorV1(input.adapter.descriptor);
70
+ const profile = shardedSimulationScaleProfileV1(input.scaleProfileId);
71
+ const domains = descriptor.domains.filter((domain) => domain !== "hybrid");
72
+ return Object.freeze({
73
+ schemaVersion: 1,
74
+ scenarioId: input.scenarioId,
75
+ scaleProfileId: input.scaleProfileId,
76
+ seed: input.seed,
77
+ domains,
78
+ entityCount: input.entityCount ?? profile.logicalPeerCount,
79
+ topologyDigest: multiDomainEnvironmentDigestV1("reference-topology", {
80
+ scenarioId: input.scenarioId,
81
+ profileId: input.scaleProfileId,
82
+ }),
83
+ transitionPolicyDigest: multiDomainEnvironmentDigestV1("reference-transition-policy", { domains }),
84
+ visibilityPolicyDigest: multiDomainEnvironmentDigestV1("reference-visibility-policy", { visibility: "peer-local" }),
85
+ faultModelDigest: multiDomainEnvironmentDigestV1("reference-fault-model", {
86
+ vocabulary: "sharded-simulation-v1",
87
+ }),
88
+ resourceBudget: Object.freeze({
89
+ maximumInteractions: profile.interactionCeiling,
90
+ maximumObservationBytes: descriptor.limits.maximumObservationBytes,
91
+ maximumActionBytes: descriptor.limits.maximumActionBytes,
92
+ maximumCheckpointBytes: descriptor.limits.maximumCheckpointBytes,
93
+ }),
94
+ });
95
+ }
96
+ /** Public, deterministic conformance runner. It never receives evaluator metrics. */
97
+ export async function runMultiDomainAdapterConformanceV1(input) {
98
+ const descriptor = validateMultiDomainEnvironmentDescriptorV1(input.adapter.descriptor);
99
+ const expectedManifest = createMultiDomainScenarioManifestV1({
100
+ descriptor,
101
+ definition: input.definition,
102
+ });
103
+ const firstManifest = validateMultiDomainScenarioManifestV1(await input.adapter.createScenario(input.definition), descriptor);
104
+ const secondManifest = validateMultiDomainScenarioManifestV1(await input.adapter.createScenario(input.definition), descriptor);
105
+ if (firstManifest.manifestDigest !== expectedManifest.manifestDigest ||
106
+ secondManifest.manifestDigest !== expectedManifest.manifestDigest)
107
+ fail("conformance_definition_substitution");
108
+ const manifestReplayStable = firstManifest.manifestDigest === secondManifest.manifestDigest;
109
+ const profile = shardedSimulationScaleProfileV1(firstManifest.scaleProfileId);
110
+ const assignmentCount = Math.min(16, firstManifest.entityCount);
111
+ const assignments = createShardedSimulationAssignmentsV1({
112
+ profile,
113
+ shardCount: assignmentCount,
114
+ });
115
+ const first = await exerciseAdapter(await input.adapter.openScenario({ manifest: firstManifest }), descriptor, firstManifest, profile, assignments);
116
+ const second = await exerciseAdapter(await input.adapter.openScenario({ manifest: secondManifest }), descriptor, secondManifest, profile, assignments);
117
+ const observationReplayStable = first.observationDigest === second.observationDigest;
118
+ const checkpointRestoreStable = first.restoreProbePassed &&
119
+ second.restoreProbePassed &&
120
+ first.checkpointRevision === second.checkpointRevision;
121
+ const boundedState = first.observationCount <= descriptor.limits.maximumObservationsPerPull &&
122
+ first.boundsObserved &&
123
+ second.boundsObserved &&
124
+ firstManifest.entityCount <= descriptor.limits.maximumEntities &&
125
+ firstManifest.resourceBudget.maximumInteractions <=
126
+ profile.interactionCeiling;
127
+ const descriptorValid = true;
128
+ const capabilityFailClosed = first.capabilityFailClosed && second.capabilityFailClosed;
129
+ const staleFenceRejected = first.staleFenceRejected && second.staleFenceRejected;
130
+ const conformant = descriptorValid &&
131
+ manifestReplayStable &&
132
+ observationReplayStable &&
133
+ capabilityFailClosed &&
134
+ staleFenceRejected &&
135
+ checkpointRestoreStable &&
136
+ boundedState;
137
+ const body = {
138
+ schemaVersion: 1,
139
+ adapterDescriptorDigest: descriptor.descriptorDigest,
140
+ scenarioManifestDigest: firstManifest.manifestDigest,
141
+ scaleProfileId: firstManifest.scaleProfileId,
142
+ descriptorValid,
143
+ manifestReplayStable,
144
+ observationReplayStable,
145
+ capabilityFailClosed,
146
+ staleFenceRejected,
147
+ checkpointRestoreStable,
148
+ boundedState,
149
+ conformant,
150
+ };
151
+ return Object.freeze({
152
+ ...body,
153
+ reportDigest: multiDomainEnvironmentDigestV1("conformance-report", body),
154
+ });
155
+ }
156
+ class ReferenceMultiDomainBridgeV1 {
157
+ #delegate = new InMemoryShardedSimulationBridgeV1();
158
+ #descriptor;
159
+ #manifest;
160
+ #domain;
161
+ #interactionFingerprints = new Map();
162
+ #interactionSlots = new Set();
163
+ #budgetSnapshots = new Map();
164
+ constructor(descriptor, manifest, domain) {
165
+ this.#descriptor = descriptor;
166
+ this.#manifest = manifest;
167
+ this.#domain = domain;
168
+ }
169
+ createSession(input) {
170
+ if (input.environmentId !== this.#descriptor.adapterId)
171
+ fail("environment_identity_mismatch");
172
+ return this.#delegate.createSession(input);
173
+ }
174
+ startEpisode(input) {
175
+ if (input.seed !== this.#manifest.seed)
176
+ fail("scenario_seed_mismatch");
177
+ return this.#delegate.startEpisode(input);
178
+ }
179
+ bindShardAssignments(input) {
180
+ if (input.profile.profileId !== this.#manifest.scaleProfileId)
181
+ fail("scenario_scale_profile_mismatch");
182
+ this.#delegate.bindShardAssignments(input);
183
+ }
184
+ pullPartialObservation(input) {
185
+ if (input.peerIndex >= this.#manifest.entityCount)
186
+ fail("observation_entity_out_of_scope");
187
+ const schema = this.#descriptor.observationSchemas.find((candidate) => candidate.domain === this.#domain);
188
+ if (!schema)
189
+ fail("observation_schema_unavailable");
190
+ const observation = createMultiDomainObservationEnvelopeV1({
191
+ descriptor: this.#descriptor,
192
+ observationId: `${input.requestId}.observation`,
193
+ domain: this.#domain,
194
+ entityId: `entity:${input.peerIndex}`,
195
+ modality: schema.modality,
196
+ schemaDigest: schema.schemaDigest,
197
+ logicalTime: input.logicalTime,
198
+ payload: referenceObservationPayload(this.#domain, input.peerIndex),
199
+ });
200
+ const body = {
201
+ schemaVersion: 1,
202
+ requestId: input.requestId,
203
+ peerIndex: input.peerIndex,
204
+ logicalTime: input.logicalTime,
205
+ observations: Object.freeze([
206
+ observation,
207
+ ]),
208
+ nextCursor: null,
209
+ };
210
+ const delivery = Object.freeze({
211
+ ...body,
212
+ deliveryDigest: shardedSimulationDigestV1("sharded-simulation-observation-delivery-v1", body),
213
+ });
214
+ if (jsonBytes(delivery.observations) >
215
+ this.#manifest.resourceBudget.maximumObservationBytes)
216
+ fail("observation_scenario_budget_exceeded");
217
+ this.#admitInteraction(`observation:${input.requestId}`, shardedSimulationDigestV1("multi-domain-observation-request-v1", input), [`${input.peerIndex}:${input.logicalTime}`]);
218
+ this.#delegate.pullPartialObservation(input);
219
+ return delivery;
220
+ }
221
+ requestEffect(input) {
222
+ if (input.peerIndex >= this.#manifest.entityCount)
223
+ fail("action_entity_out_of_scope");
224
+ const action = validateMultiDomainActionEnvelopeV1(input.action, this.#descriptor);
225
+ if (action.entityId !== `entity:${input.peerIndex}`)
226
+ fail("action_entity_binding_mismatch");
227
+ if (jsonBytes(action) > this.#manifest.resourceBudget.maximumActionBytes)
228
+ fail("action_scenario_budget_exceeded");
229
+ this.#admitInteraction(`action:${input.actionId}`, input.actionDigest, [
230
+ `${input.peerIndex}:${input.logicalTime}`,
231
+ ]);
232
+ return this.#delegate.requestEffect(input);
233
+ }
234
+ deliverCrossShardBatch(input) {
235
+ if (input.messages.some((message) => message.sourcePeerIndex >= this.#manifest.entityCount ||
236
+ message.targetPeerIndex >= this.#manifest.entityCount))
237
+ fail("cross_shard_entity_out_of_scope");
238
+ this.#admitInteraction(`batch:${input.batchId}`, input.batchDigest, input.messages.map((message) => `${message.sourcePeerIndex}:${message.logicalTime}`));
239
+ return this.#delegate.deliverCrossShardBatch(input);
240
+ }
241
+ checkpoint(input) {
242
+ if (referenceCheckpointEnvelopeBytes(input) >
243
+ this.#manifest.resourceBudget.maximumCheckpointBytes)
244
+ fail("checkpoint_scenario_budget_exceeded");
245
+ const checkpoint = this.#delegate.checkpoint(input);
246
+ if (jsonBytes(checkpoint) >
247
+ this.#manifest.resourceBudget.maximumCheckpointBytes)
248
+ fail("checkpoint_scenario_budget_exceeded");
249
+ this.#budgetSnapshots.set(checkpoint.checkpointId, {
250
+ interactionFingerprints: [...this.#interactionFingerprints],
251
+ interactionSlots: [...this.#interactionSlots],
252
+ });
253
+ return checkpoint;
254
+ }
255
+ restore(input) {
256
+ if (jsonBytes(input.checkpoint) >
257
+ this.#manifest.resourceBudget.maximumCheckpointBytes)
258
+ fail("restore_checkpoint_scenario_budget_exceeded");
259
+ const snapshot = this.#budgetSnapshots.get(input.checkpoint.checkpointId);
260
+ if (!snapshot)
261
+ fail("restore_budget_snapshot_missing");
262
+ const restored = this.#delegate.restore(input);
263
+ this.#interactionFingerprints.clear();
264
+ for (const [key, fingerprint] of snapshot.interactionFingerprints)
265
+ this.#interactionFingerprints.set(key, fingerprint);
266
+ this.#interactionSlots.clear();
267
+ for (const slot of snapshot.interactionSlots)
268
+ this.#interactionSlots.add(slot);
269
+ return restored;
270
+ }
271
+ #admitInteraction(key, fingerprint, slots) {
272
+ const previous = this.#interactionFingerprints.get(key);
273
+ if (previous) {
274
+ if (previous !== fingerprint)
275
+ fail("interaction_identity_equivocation");
276
+ return;
277
+ }
278
+ const addedSlots = [...new Set(slots)].filter((slot) => !this.#interactionSlots.has(slot));
279
+ if (this.#interactionSlots.size + addedSlots.length >
280
+ this.#manifest.resourceBudget.maximumInteractions)
281
+ fail("scenario_interaction_budget_exceeded");
282
+ this.#interactionFingerprints.set(key, fingerprint);
283
+ for (const slot of addedSlots)
284
+ this.#interactionSlots.add(slot);
285
+ }
286
+ }
287
+ async function exerciseAdapter(bridge, descriptor, manifest, profile, assignments) {
288
+ const session = await bridge.createSession({
289
+ environmentId: descriptor.adapterId,
290
+ logicalTime: 0,
291
+ });
292
+ const episode = await bridge.startEpisode({
293
+ session,
294
+ episodeId: `conformance:${manifest.scenarioId}`,
295
+ seed: manifest.seed,
296
+ logicalTime: 0,
297
+ });
298
+ await bridge.bindShardAssignments({ session, episode, profile, assignments });
299
+ const delivery = await bridge.pullPartialObservation({
300
+ schemaVersion: 1,
301
+ sessionId: session.sessionId,
302
+ episodeId: episode.episodeId,
303
+ peerIndex: 0,
304
+ logicalTime: 1,
305
+ cursor: null,
306
+ requestId: "conformance:observation:0",
307
+ });
308
+ for (const observation of delivery.observations)
309
+ validateMultiDomainObservationEnvelopeV1(observation, descriptor);
310
+ if (delivery.schemaVersion !== 1 ||
311
+ delivery.requestId !== "conformance:observation:0" ||
312
+ delivery.peerIndex !== 0 ||
313
+ delivery.logicalTime !== 1 ||
314
+ delivery.observations.length > descriptor.limits.maximumObservationsPerPull)
315
+ fail("conformance_observation_delivery_invalid");
316
+ const { deliveryDigest, ...deliveryBody } = delivery;
317
+ if (deliveryDigest !==
318
+ shardedSimulationDigestV1("sharded-simulation-observation-delivery-v1", deliveryBody))
319
+ fail("conformance_observation_delivery_digest_invalid");
320
+ const registered = descriptor.actionSchemas[0];
321
+ if (!registered)
322
+ fail("conformance_action_schema_missing");
323
+ const invalidAction = {
324
+ schemaVersion: 1,
325
+ domain: registered.domain,
326
+ entityId: "entity:0",
327
+ capability: "unsupported-capability",
328
+ schemaDigest: registered.schemaDigest,
329
+ payload: { requested: true },
330
+ };
331
+ let capabilityFailClosed = false;
332
+ try {
333
+ await bridge.requestEffect(actionRequest(session, episode, invalidAction, "conformance:invalid-action", "stale-fence", 2));
334
+ }
335
+ catch {
336
+ capabilityFailClosed = true;
337
+ }
338
+ const validAction = {
339
+ schemaVersion: 1,
340
+ domain: registered.domain,
341
+ entityId: "entity:0",
342
+ capability: registered.capability,
343
+ schemaDigest: registered.schemaDigest,
344
+ payload: { requested: true },
345
+ };
346
+ const staleReceipt = await bridge.requestEffect(actionRequest(session, episode, validAction, "conformance:stale-fence-action", "stale-fence", 2));
347
+ const checkpoint = validateShardedSimulationCheckpointV1(await bridge.checkpoint({
348
+ session,
349
+ episode,
350
+ expectedRevision: 0,
351
+ logicalTime: 3,
352
+ }));
353
+ const postCheckpointRequest = actionRequest(session, episode, validAction, "conformance:post-checkpoint-action", `fence:${session.sessionId}:${episode.episodeId}:0:1`, 4);
354
+ const acceptedAfterCheckpoint = await bridge.requestEffect(postCheckpointRequest);
355
+ if (!acceptedAfterCheckpoint.accepted)
356
+ fail("conformance_post_checkpoint_mutation_rejected");
357
+ const restored = await bridge.restore({
358
+ schemaVersion: 1,
359
+ checkpoint,
360
+ expectedAnchorDigest: checkpoint.anchor.anchorDigest,
361
+ });
362
+ const { receiptDigest, ...restoreBody } = restored;
363
+ if (restored.schemaVersion !== 1 ||
364
+ restored.checkpointId !== checkpoint.checkpointId ||
365
+ restored.restoredRevision !== checkpoint.revision ||
366
+ restored.restoredLogicalTime < checkpoint.logicalTime ||
367
+ receiptDigest !==
368
+ shardedSimulationDigestV1("sharded-simulation-restore-receipt-v1", restoreBody))
369
+ fail("conformance_restore_receipt_invalid");
370
+ let restoreProbePassed = false;
371
+ try {
372
+ const changedAction = {
373
+ ...validAction,
374
+ payload: { requested: false },
375
+ };
376
+ const replayedAfterRestore = await bridge.requestEffect(actionRequest(session, episode, changedAction, postCheckpointRequest.actionId, postCheckpointRequest.fenceToken, postCheckpointRequest.logicalTime));
377
+ restoreProbePassed =
378
+ replayedAfterRestore.accepted &&
379
+ replayedAfterRestore.receiptDigest !== acceptedAfterCheckpoint.receiptDigest;
380
+ }
381
+ catch {
382
+ restoreProbePassed = false;
383
+ }
384
+ let outOfScopeEntityRejected = false;
385
+ try {
386
+ const peerIndex = manifest.entityCount;
387
+ await bridge.requestEffect(actionRequest(session, episode, { ...validAction, entityId: `entity:${peerIndex}` }, "conformance:out-of-scope-action", `fence:${session.sessionId}:${episode.episodeId}:${peerIndex}:1`, 5, peerIndex));
388
+ }
389
+ catch {
390
+ outOfScopeEntityRejected = true;
391
+ }
392
+ let oversizedActionRejected = false;
393
+ try {
394
+ const oversized = {
395
+ ...validAction,
396
+ payload: {
397
+ data: "x".repeat(manifest.resourceBudget.maximumActionBytes + 1),
398
+ },
399
+ };
400
+ await bridge.requestEffect(actionRequest(session, episode, oversized, "conformance:oversized-action", `fence:${session.sessionId}:${episode.episodeId}:0:1`, 5));
401
+ }
402
+ catch {
403
+ oversizedActionRejected = true;
404
+ }
405
+ const boundsObserved = outOfScopeEntityRejected &&
406
+ oversizedActionRejected &&
407
+ jsonBytes(delivery.observations) <=
408
+ manifest.resourceBudget.maximumObservationBytes &&
409
+ jsonBytes(checkpoint) <= manifest.resourceBudget.maximumCheckpointBytes;
410
+ return Object.freeze({
411
+ observationDigest: delivery.deliveryDigest,
412
+ observationCount: delivery.observations.length,
413
+ capabilityFailClosed,
414
+ staleFenceRejected: staleReceipt.accepted === false,
415
+ checkpointRevision: checkpoint.revision,
416
+ restoreProbePassed,
417
+ boundsObserved,
418
+ });
419
+ }
420
+ function actionRequest(session, episode, action, actionId, fenceToken, logicalTime, peerIndex = 0) {
421
+ const body = {
422
+ schemaVersion: 1,
423
+ actionId,
424
+ sessionId: session.sessionId,
425
+ episodeId: episode.episodeId,
426
+ peerIndex,
427
+ logicalTime,
428
+ executionEpoch: 1,
429
+ fenceToken,
430
+ action: action,
431
+ };
432
+ return Object.freeze({
433
+ ...body,
434
+ actionDigest: shardedSimulationFencedActionDigestV1(body),
435
+ });
436
+ }
437
+ function referenceObservationPayload(domain, peerIndex) {
438
+ switch (domain) {
439
+ case "physical":
440
+ return {
441
+ kind: "resource-state",
442
+ entityIndex: peerIndex,
443
+ available: true,
444
+ };
445
+ case "social":
446
+ return {
447
+ kind: "information-state",
448
+ entityIndex: peerIndex,
449
+ confidenceBps: 5_000,
450
+ };
451
+ case "cyber":
452
+ return { kind: "service-state", entityIndex: peerIndex, online: true };
453
+ }
454
+ }
455
+ function presetFor(domain) {
456
+ switch (domain) {
457
+ case "physical":
458
+ return { modality: "sensor", capability: "resource-control" };
459
+ case "social":
460
+ return { modality: "text", capability: "information-exchange" };
461
+ case "cyber":
462
+ return { modality: "state", capability: "service-control" };
463
+ }
464
+ }
465
+ function jsonBytes(value) {
466
+ return new TextEncoder().encode(JSON.stringify(value)).byteLength;
467
+ }
468
+ function referenceCheckpointEnvelopeBytes(input) {
469
+ const revision = input.expectedRevision + 1;
470
+ const digest = `sha256:${"0".repeat(64)}`;
471
+ return jsonBytes({
472
+ schemaVersion: 1,
473
+ checkpointId: `${input.session.sessionId}:${input.episode.episodeId}:checkpoint:${revision}`,
474
+ sessionId: input.session.sessionId,
475
+ episodeId: input.episode.episodeId,
476
+ revision,
477
+ logicalTime: input.logicalTime,
478
+ snapshotHandle: `local-snapshot:${revision}`,
479
+ snapshotDigest: digest,
480
+ anchor: {
481
+ schemaVersion: 1,
482
+ anchorId: `${input.session.sessionId}:${input.episode.episodeId}:anchor:${revision}`,
483
+ revision,
484
+ previousAnchorDigest: input.expectedRevision === 0 ? null : digest,
485
+ anchorDigest: digest,
486
+ },
487
+ checkpointDigest: digest,
488
+ });
489
+ }
490
+ function fail(code) {
491
+ throw new TypeError(`multi_domain_environment_${code}`);
492
+ }
493
+ //# sourceMappingURL=multi-domain-environment-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-domain-environment-runtime.js","sourceRoot":"","sources":["../src/multi-domain-environment-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import { type PlanningDigestV1, type PlanningJson } from "@agentplat/collective-planning";
2
+ import { type MultiDomainActionEnvelopeV1, type MultiDomainActionSchemaV1, type MultiDomainEnvironmentDescriptorV1, type MultiDomainEnvironmentDomainV1, type MultiDomainEnvironmentLimitsV1, type MultiDomainEnvironmentModalityV1, type MultiDomainObservationEnvelopeV1, type MultiDomainObservationSchemaV1, type MultiDomainScenarioDefinitionV1, type MultiDomainScenarioManifestV1 } from "./multi-domain-environment-contracts.js";
3
+ export declare function multiDomainEnvironmentDigestV1(domain: string, value: unknown): PlanningDigestV1;
4
+ export declare function createMultiDomainEnvironmentDescriptorV1(input: {
5
+ readonly adapterId: string;
6
+ readonly adapterVersion: number;
7
+ readonly implementationDigest: PlanningDigestV1;
8
+ readonly domains: readonly MultiDomainEnvironmentDomainV1[];
9
+ readonly capabilities: readonly string[];
10
+ readonly observationSchemas: readonly MultiDomainObservationSchemaV1[];
11
+ readonly actionSchemas: readonly MultiDomainActionSchemaV1[];
12
+ readonly limits: MultiDomainEnvironmentLimitsV1;
13
+ readonly deterministicReplay: boolean;
14
+ }): MultiDomainEnvironmentDescriptorV1;
15
+ export declare function validateMultiDomainEnvironmentDescriptorV1(input: unknown): MultiDomainEnvironmentDescriptorV1;
16
+ export declare function createMultiDomainScenarioManifestV1(input: {
17
+ readonly descriptor: MultiDomainEnvironmentDescriptorV1;
18
+ readonly definition: MultiDomainScenarioDefinitionV1;
19
+ }): MultiDomainScenarioManifestV1;
20
+ export declare function validateMultiDomainScenarioManifestV1(input: unknown, descriptor: MultiDomainEnvironmentDescriptorV1): MultiDomainScenarioManifestV1;
21
+ export declare function createMultiDomainObservationEnvelopeV1(input: {
22
+ readonly descriptor: MultiDomainEnvironmentDescriptorV1;
23
+ readonly observationId: string;
24
+ readonly domain: Exclude<MultiDomainEnvironmentDomainV1, "hybrid">;
25
+ readonly entityId: string;
26
+ readonly modality: MultiDomainEnvironmentModalityV1;
27
+ readonly schemaDigest: PlanningDigestV1;
28
+ readonly logicalTime: number;
29
+ readonly payload: PlanningJson;
30
+ }): MultiDomainObservationEnvelopeV1;
31
+ export declare function validateMultiDomainObservationEnvelopeV1(input: unknown, descriptor: MultiDomainEnvironmentDescriptorV1): MultiDomainObservationEnvelopeV1;
32
+ export declare function validateMultiDomainActionEnvelopeV1(input: unknown, descriptor: MultiDomainEnvironmentDescriptorV1): MultiDomainActionEnvelopeV1;
33
+ //# sourceMappingURL=multi-domain-environment-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-domain-environment-validation.d.ts","sourceRoot":"","sources":["../src/multi-domain-environment-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAGL,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,kCAAkC,EACvC,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACnC,KAAK,gCAAgC,EACrC,KAAK,gCAAgC,EACrC,KAAK,8BAA8B,EACnC,KAAK,+BAA+B,EACpC,KAAK,6BAA6B,EACnC,MAAM,yCAAyC,CAAC;AAajD,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,GACb,gBAAgB,CAKlB;AAED,wBAAgB,wCAAwC,CAAC,KAAK,EAAE;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,gBAAgB,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,SAAS,8BAA8B,EAAE,CAAC;IAC5D,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,kBAAkB,EAAE,SAAS,8BAA8B,EAAE,CAAC;IACvE,QAAQ,CAAC,aAAa,EAAE,SAAS,yBAAyB,EAAE,CAAC;IAC7D,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAC;IAChD,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;CACvC,GAAG,kCAAkC,CAsCrC;AAED,wBAAgB,0CAA0C,CACxD,KAAK,EAAE,OAAO,GACb,kCAAkC,CA0BpC;AAED,wBAAgB,mCAAmC,CAAC,KAAK,EAAE;IACzD,QAAQ,CAAC,UAAU,EAAE,kCAAkC,CAAC;IACxD,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;CACtD,GAAG,6BAA6B,CAuBhC;AAED,wBAAgB,qCAAqC,CACnD,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,kCAAkC,GAC7C,6BAA6B,CA6C/B;AAED,wBAAgB,sCAAsC,CAAC,KAAK,EAAE;IAC5D,QAAQ,CAAC,UAAU,EAAE,kCAAkC,CAAC;IACxD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAC;IACnE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,gCAAgC,CAAC;IACpD,QAAQ,CAAC,YAAY,EAAE,gBAAgB,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;CAChC,GAAG,gCAAgC,CA+BnC;AAED,wBAAgB,wCAAwC,CACtD,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,kCAAkC,GAC7C,gCAAgC,CA2BlC;AAED,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,kCAAkC,GAC7C,2BAA2B,CAgC7B"}