@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,16 @@
1
+ import { type PlanningDigestV1 } from '@agentplat/collective-planning';
2
+ import type { CollectiveStatisticalCampaignNormativeProjectionPortV1, CollectiveStatisticalCampaignNormativeRunnerPortV1 } from './collective-statistical-campaign-normative-operation.js';
3
+ /**
4
+ * Creates the public closed-loop campaign runner. The runner receives only the
5
+ * registered cell context; evaluator projection remains a separate port.
6
+ * Runtime signing handles are cached per cell/runner so exact replay observes
7
+ * the same construction-bound identities without serializing key material.
8
+ */
9
+ export declare function createCollectiveStatisticalCampaignRegisteredRunnerV1(): CollectiveStatisticalCampaignNormativeRunnerPortV1;
10
+ /**
11
+ * Creates the evaluator-owned metric projector. It derives every metric from
12
+ * immutable trace, ledger and monitor evidence and never accepts a score or
13
+ * eligibility boolean from the runner.
14
+ */
15
+ export declare function createCollectiveStatisticalCampaignRegisteredProjectorV1(evaluatorDigest: PlanningDigestV1): CollectiveStatisticalCampaignNormativeProjectionPortV1;
16
+ //# sourceMappingURL=collective-statistical-campaign-registered-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collective-statistical-campaign-registered-adapter.d.ts","sourceRoot":"","sources":["../src/collective-statistical-campaign-registered-adapter.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,gCAAgC,CAAC;AAoBxC,OAAO,KAAK,EACV,sDAAsD,EACtD,kDAAkD,EACnD,MAAM,0DAA0D,CAAC;AAgClE;;;;;GAKG;AACH,wBAAgB,qDAAqD,IAAI,kDAAkD,CAmB1H;AAED;;;;GAIG;AACH,wBAAgB,wDAAwD,CACtE,eAAe,EAAE,gBAAgB,GAChC,sDAAsD,CAkBxD"}
@@ -0,0 +1,518 @@
1
+ import { assertCollectiveMonitorTraceBindingsV1, createCollectiveTraceV2, createNormativeMetricProjectionV1, normativeProjectedEventIdsDigestV1, replayCollectiveInvariantMonitorV1, validateCollectiveEvaluationCampaignRegistrationV1, validateCollectiveEvaluationRegistrationBindingV1, validateCollectiveInvariantMonitorEventV1, validateCollectiveInvariantMonitorPolicyV1, } from '@agentplat/collective-planning/evaluation';
2
+ import { canonicalizePlanningJsonV1, digestPlanningJsonV1, } from '@agentplat/collective-planning';
3
+ import { validateCollectiveStatisticalCampaignExecutionArtifactsV1, } from './collective-statistical-campaign-aggregation.js';
4
+ import { createCollectiveClosedLoopReferenceRuntimeV1, createCollectiveClosedLoopReferenceScenarioV1, createCollectiveClosedLoopResilienceReferenceScenarioV1, } from './collective-closed-loop-reference.js';
5
+ import { runAdaptiveCollectiveClosedLoopResilienceV1, runAdaptiveCollectiveClosedLoopV1, runCentralizedPlannerClosedLoopResilienceV1, runCentralizedPlannerClosedLoopV1, } from './collective-closed-loop-runner.js';
6
+ const NON_NOMINAL_FAULTS = Object.freeze([
7
+ 'assignment.decline',
8
+ 'capability.withdraw',
9
+ 'network.heal',
10
+ 'network.partition',
11
+ 'peer.crash',
12
+ 'peer.restart',
13
+ ]);
14
+ // The reference topology keeps the owner plus at most 32 direct planning
15
+ // neighbours active. A statistical cell may model a larger population, but
16
+ // its trace must bind the bounded active plane rather than an all-to-all
17
+ // broadcast that the runtime deliberately does not perform.
18
+ const MAXIMUM_ACTIVE_PLANNING_PEERS = 33;
19
+ /**
20
+ * Creates the public closed-loop campaign runner. The runner receives only the
21
+ * registered cell context; evaluator projection remains a separate port.
22
+ * Runtime signing handles are cached per cell/runner so exact replay observes
23
+ * the same construction-bound identities without serializing key material.
24
+ */
25
+ export function createCollectiveStatisticalCampaignRegisteredRunnerV1() {
26
+ const runtimes = new Map();
27
+ return Object.freeze({
28
+ schemaVersion: 1,
29
+ async executeV1(context) {
30
+ const scope = `${context.cell.cellId}\u0000${context.runner}`;
31
+ let runtime = runtimes.get(scope);
32
+ if (!runtime) {
33
+ runtime = createCollectiveClosedLoopReferenceRuntimeV1(context.cell.peerCount);
34
+ runtimes.set(scope, runtime);
35
+ }
36
+ return executeRegisteredClosedLoopV1(context, await runtime);
37
+ },
38
+ });
39
+ }
40
+ /**
41
+ * Creates the evaluator-owned metric projector. It derives every metric from
42
+ * immutable trace, ledger and monitor evidence and never accepts a score or
43
+ * eligibility boolean from the runner.
44
+ */
45
+ export function createCollectiveStatisticalCampaignRegisteredProjectorV1(evaluatorDigest) {
46
+ assertDigest(evaluatorDigest, 'evaluator_digest_invalid');
47
+ return Object.freeze({
48
+ schemaVersion: 1,
49
+ projectV1(input) {
50
+ return projectRegisteredExecutionV1(input.registration, input.execution, evaluatorDigest);
51
+ },
52
+ });
53
+ }
54
+ async function executeRegisteredClosedLoopV1(context, runtime) {
55
+ const resilient = context.cell.stratum !== 'nominal';
56
+ if (resilient) {
57
+ const scenario = await createCollectiveClosedLoopResilienceReferenceScenarioV1({
58
+ runner: context.runner,
59
+ peerCount: context.cell.peerCount,
60
+ seed: context.cell.seed,
61
+ stratum: context.cell.stratum,
62
+ runtime,
63
+ });
64
+ const result = context.runner === 'adaptive_collective'
65
+ ? await runAdaptiveCollectiveClosedLoopResilienceV1(scenario)
66
+ : await runCentralizedPlannerClosedLoopResilienceV1(scenario);
67
+ const run = result.resilience.run;
68
+ const passed = run.stopReason === 'plan_completed' &&
69
+ result.evidence.monitorVerdict.missionSuccess &&
70
+ result.trace.ledger.total <= context.maximumInteractions;
71
+ return Object.freeze({
72
+ schemaVersion: 1,
73
+ status: passed ? 'passed' : 'failed',
74
+ reasonCode: resultReasonCode(passed, run.stopReason, result.trace.ledger.total, context.maximumInteractions),
75
+ outcome: {
76
+ schemaVersion: 1,
77
+ stratum: context.cell.stratum,
78
+ runDigest: run.runDigest,
79
+ resilienceResultDigest: result.resilience.resilienceResultDigest,
80
+ campaignEvidenceDigest: result.campaignEvidence.campaignEvidenceDigest,
81
+ traceDigest: result.trace.traceDigest,
82
+ evidenceDigest: result.evidence.evidenceDigest,
83
+ evaluationRegistration: result.evidence.registration,
84
+ monitorPolicy: result.evidence.monitorPolicy,
85
+ monitorEvents: result.evidence.monitorEvents,
86
+ monitorVerdict: result.evidence.monitorVerdict,
87
+ publicArtifactDigests: result.evidence.publicArtifactDigests,
88
+ faultMatrixBindingDigest: result.faultMatrixBindingDigest,
89
+ stopReason: run.stopReason,
90
+ },
91
+ traceRecords: result.trace.events,
92
+ ledgerRecords: [
93
+ result.trace.ledger,
94
+ ],
95
+ observations: result.observations,
96
+ });
97
+ }
98
+ const scenario = await createCollectiveClosedLoopReferenceScenarioV1({
99
+ runner: context.runner,
100
+ peerCount: context.cell.peerCount,
101
+ seed: context.cell.seed,
102
+ stratum: context.cell.stratum,
103
+ runtime,
104
+ });
105
+ const result = context.runner === 'adaptive_collective'
106
+ ? await runAdaptiveCollectiveClosedLoopV1(scenario)
107
+ : await runCentralizedPlannerClosedLoopV1(scenario);
108
+ const run = result.run;
109
+ const passed = run.stopReason === 'plan_completed' &&
110
+ result.evidence.monitorVerdict.missionSuccess &&
111
+ result.trace.ledger.total <= context.maximumInteractions;
112
+ return Object.freeze({
113
+ schemaVersion: 1,
114
+ status: passed ? 'passed' : 'failed',
115
+ reasonCode: resultReasonCode(passed, run.stopReason, result.trace.ledger.total, context.maximumInteractions),
116
+ outcome: {
117
+ schemaVersion: 1,
118
+ stratum: context.cell.stratum,
119
+ runDigest: run.runDigest,
120
+ traceDigest: result.trace.traceDigest,
121
+ evidenceDigest: result.evidence.evidenceDigest,
122
+ evaluationRegistration: result.evidence.registration,
123
+ monitorPolicy: result.evidence.monitorPolicy,
124
+ monitorEvents: result.evidence.monitorEvents,
125
+ monitorVerdict: result.evidence.monitorVerdict,
126
+ publicArtifactDigests: result.evidence.publicArtifactDigests,
127
+ stopReason: run.stopReason,
128
+ },
129
+ traceRecords: result.trace.events,
130
+ ledgerRecords: [result.trace.ledger],
131
+ observations: result.observations,
132
+ });
133
+ }
134
+ function resultReasonCode(passed, stopReason, interactionTotal, maximumInteractions) {
135
+ return passed
136
+ ? null
137
+ : stopReason !== 'plan_completed'
138
+ ? 'runner_not_completed'
139
+ : interactionTotal > maximumInteractions
140
+ ? 'interaction_limit_exceeded'
141
+ : 'mission_or_safety_failure';
142
+ }
143
+ function projectRegisteredExecutionV1(registrationInput, executionInput, evaluatorDigest) {
144
+ const registration = validateCollectiveEvaluationCampaignRegistrationV1(registrationInput);
145
+ const execution = validateCollectiveStatisticalCampaignExecutionArtifactsV1(registration, executionInput.executionId, executionInput);
146
+ const cell = registration.cells.find((candidate) => candidate.cellId === execution.cellId);
147
+ if (!cell)
148
+ fail('cell_unregistered');
149
+ if (execution.sample.status === 'failed' &&
150
+ execution.reasonCode === 'runner_exception')
151
+ fail('runner_execution_invalid');
152
+ const outcome = record(execution.sample.outcome, 'outcome_invalid');
153
+ const replayed = replayBoundaryEvidence(outcome, execution.trace.records);
154
+ const trace = normalizeTrace(replayed.trace.events);
155
+ const tracedPeerCount = new Set(trace.flatMap((event) => (event.peerId === null ? [] : [event.peerId]))).size;
156
+ if (replayed.registration.seed !== execution.seed ||
157
+ replayed.registration.runner !== execution.runner ||
158
+ replayed.registration.stratum !== 'nominal' ||
159
+ string(outcome.stratum, 'outcome_stratum_invalid') !== cell.stratum ||
160
+ tracedPeerCount !==
161
+ Math.min(cell.peerCount, MAXIMUM_ACTIVE_PLANNING_PEERS))
162
+ fail('evaluation_registration_cell_binding_mismatch');
163
+ const ledger = normalizeLedger(execution.ledger.records);
164
+ if (canonicalizePlanningJsonV1(ledger.raw) !==
165
+ canonicalizePlanningJsonV1(replayed.trace.ledger))
166
+ fail('interaction_ledger_replay_mismatch');
167
+ const monitor = record(replayed.monitorVerdict, 'monitor_verdict_invalid');
168
+ const finalTraceRoot = trace.at(-1).traceChainDigest;
169
+ if (ledger.traceRoot !== finalTraceRoot ||
170
+ string(monitor.traceRoot, 'monitor_trace_root_invalid') !== finalTraceRoot)
171
+ fail('trace_root_mismatch');
172
+ const interactionTotal = trace.reduce((total, event) => total + event.accountingUnits, 0);
173
+ if (interactionTotal !== ledger.total ||
174
+ interactionTotal > cell.maximumInteractions)
175
+ fail('interaction_ledger_mismatch');
176
+ const safety = safetyMetrics(monitor, trace);
177
+ const faults = faultMetrics(trace, cell.stratum);
178
+ const recovery = recoveryMetrics(trace, cell.stratum);
179
+ const convergence = Object.freeze({
180
+ schemaVersion: 1,
181
+ healOrQuiescenceEventId: null,
182
+ agreementEventId: null,
183
+ healthyParticipantCount: 0,
184
+ agreeingParticipantCount: 0,
185
+ interactionsToAgreement: null,
186
+ });
187
+ const decisions = trace.filter((event) => event.accountingKind === 'decision');
188
+ const unsafeExecutableCount = safety.authorizationViolations +
189
+ safety.planAuthorityViolations +
190
+ safety.staleFenceViolations +
191
+ safety.duplicateEffectViolations +
192
+ safety.directAssignmentViolations +
193
+ safety.directContractViolations;
194
+ const firstUnsafeEventId = unsafeExecutableCount === 0
195
+ ? null
196
+ : nullableString(monitor.firstViolationEventId, 'monitor_first_violation_invalid');
197
+ if (unsafeExecutableCount > 0 && firstUnsafeEventId === null)
198
+ fail('unsafe_event_binding_missing');
199
+ const roleCoherence = Object.freeze({
200
+ schemaVersion: 1,
201
+ firstDecisionEventId: decisions.at(0)?.eventId ?? null,
202
+ lastDecisionEventId: decisions.at(-1)?.eventId ?? null,
203
+ firstUnsafeEventId,
204
+ decisionCount: decisions.length,
205
+ coherentDecisionCount: decisions.filter((event) => event.status === 'accepted').length,
206
+ usefulDecisionCount: decisions.filter((event) => event.status === 'accepted').length,
207
+ unsafeExecutableCount,
208
+ });
209
+ const first = trace[0];
210
+ const last = trace.at(-1);
211
+ const projectedEventIds = uniqueEventIds([
212
+ first.eventId,
213
+ last.eventId,
214
+ ...faults.events.flatMap((event) => [
215
+ event.scheduleEventId,
216
+ event.injectionEventId,
217
+ event.observationEventId,
218
+ ]),
219
+ recovery.disruptionEventId,
220
+ recovery.replanEventId,
221
+ recovery.assignmentChangeEventId,
222
+ recovery.recoveryEventId,
223
+ roleCoherence.firstDecisionEventId,
224
+ roleCoherence.lastDecisionEventId,
225
+ roleCoherence.firstUnsafeEventId,
226
+ ]);
227
+ const missionSucceeded = boolean(monitor.missionSuccess, 'monitor_mission_success_invalid') &&
228
+ execution.reasonCode === null;
229
+ const partialSuccessUnits = integer(monitor.partialSuccessUnits, 'monitor_partial_success_invalid');
230
+ return createNormativeMetricProjectionV1({
231
+ schemaVersion: 1,
232
+ projectionOwner: 'evaluator',
233
+ evaluatorDigest,
234
+ executionId: execution.executionId,
235
+ runKey: execution.runKey,
236
+ attempt: execution.attempt,
237
+ registrationDigest: registration.registrationDigest,
238
+ cellId: execution.cellId,
239
+ seed: execution.seed,
240
+ runner: execution.runner,
241
+ executionStatus: 'completed',
242
+ validity: 'valid',
243
+ missionOutcome: missionSucceeded
244
+ ? 'success'
245
+ : partialSuccessUnits > 0
246
+ ? 'partial_success'
247
+ : 'terminal_failure',
248
+ reasonCode: null,
249
+ interactionTotal,
250
+ interactionCeiling: cell.maximumInteractions,
251
+ eventBinding: {
252
+ schemaVersion: 1,
253
+ boundaryEvidenceDigest: digest(outcome.evidenceDigest, 'boundary_evidence_digest_invalid'),
254
+ traceDigest: execution.trace.traceDigest,
255
+ traceRoot: finalTraceRoot,
256
+ monitorVerdictDigest: digest(monitor.verdictDigest, 'monitor_verdict_digest_invalid'),
257
+ firstEventId: first.eventId,
258
+ lastEventId: last.eventId,
259
+ terminalEventId: last.eventId,
260
+ eventCount: trace.length,
261
+ projectedEventIds,
262
+ projectedEventIdsDigest: normativeProjectedEventIdsDigestV1(projectedEventIds),
263
+ },
264
+ safety,
265
+ faults,
266
+ recovery,
267
+ convergence,
268
+ roleCoherence,
269
+ });
270
+ }
271
+ function replayBoundaryEvidence(outcome, traceRecords) {
272
+ const registration = validateCollectiveEvaluationRegistrationBindingV1(outcome.evaluationRegistration);
273
+ const trace = createCollectiveTraceV2(registration, traceRecords);
274
+ if (trace.traceDigest !==
275
+ digest(outcome.traceDigest, 'source_trace_digest_invalid'))
276
+ fail('source_trace_digest_mismatch');
277
+ const monitorPolicy = validateCollectiveInvariantMonitorPolicyV1(outcome.monitorPolicy);
278
+ if (monitorPolicy.registrationDigest !== registration.registrationDigest ||
279
+ monitorPolicy.hiddenCanaryDigest !== registration.hiddenCanaryDigest ||
280
+ monitorPolicy.policyDigest !== registration.monitorDigest)
281
+ fail('monitor_policy_binding_invalid');
282
+ if (!Array.isArray(outcome.monitorEvents) ||
283
+ outcome.monitorEvents.length > registration.limits.maximumMonitorEvents)
284
+ fail('monitor_events_invalid');
285
+ const monitorEvents = outcome.monitorEvents.map((event) => validateCollectiveInvariantMonitorEventV1(event));
286
+ assertCollectiveMonitorTraceBindingsV1(monitorEvents, trace);
287
+ const monitorVerdict = replayCollectiveInvariantMonitorV1(monitorPolicy, monitorEvents, trace.traceRoot);
288
+ if (canonicalizePlanningJsonV1(monitorVerdict) !==
289
+ canonicalizePlanningJsonV1(outcome.monitorVerdict))
290
+ fail('monitor_verdict_replay_mismatch');
291
+ if (!Array.isArray(outcome.publicArtifactDigests))
292
+ fail('public_artifact_digests_invalid');
293
+ const publicArtifactDigests = outcome.publicArtifactDigests.map((value) => digest(value, 'public_artifact_digest_invalid'));
294
+ const body = {
295
+ format: 'agentplat.collective-evaluation.boundary-evidence',
296
+ schemaVersion: 1,
297
+ registration,
298
+ trace,
299
+ monitorPolicy,
300
+ monitorEvents,
301
+ monitorVerdict,
302
+ publicArtifactDigests,
303
+ };
304
+ const evidenceDigest = digestPlanningJsonV1('evaluation-boundary-evidence-v1', body, {
305
+ maximumBytes: registration.limits.maximumTraceBytes,
306
+ maximumDepth: 64,
307
+ maximumNodes: 2_000_000,
308
+ maximumKeysPerObject: 4_096,
309
+ maximumItemsPerArray: 262_144,
310
+ });
311
+ if (evidenceDigest !==
312
+ digest(outcome.evidenceDigest, 'boundary_evidence_digest_invalid'))
313
+ fail('boundary_evidence_digest_mismatch');
314
+ return Object.freeze({
315
+ registration,
316
+ trace,
317
+ monitorVerdict,
318
+ evidenceDigest,
319
+ });
320
+ }
321
+ function normalizeTrace(values) {
322
+ if (!Array.isArray(values) || values.length < 1 || values.length > 100_000)
323
+ fail('trace_invalid');
324
+ const result = [];
325
+ const ids = new Set();
326
+ for (const raw of values) {
327
+ const value = record(raw, 'trace_event_invalid');
328
+ const eventId = token(value.eventId, 'trace_event_id_invalid');
329
+ if (ids.has(eventId))
330
+ fail('trace_event_duplicate');
331
+ ids.add(eventId);
332
+ const previousTraceChainDigest = nullableDigest(value.previousTraceChainDigest, 'trace_previous_digest_invalid');
333
+ if (previousTraceChainDigest !==
334
+ (result.length === 0 ? null : result.at(-1).traceChainDigest))
335
+ fail('trace_chain_invalid');
336
+ const fault = value.faultBinding;
337
+ result.push(Object.freeze({
338
+ eventId,
339
+ peerId: nullableString(value.peerId, 'trace_peer_id_invalid'),
340
+ kind: token(value.kind, 'trace_kind_invalid'),
341
+ status: token(value.status, 'trace_status_invalid'),
342
+ reasonCode: nullableString(value.reasonCode, 'trace_reason_code_invalid'),
343
+ accountingKind: nullableString(value.accountingKind, 'trace_accounting_kind_invalid'),
344
+ accountingUnits: integer(value.accountingUnits, 'trace_accounting_units_invalid'),
345
+ traceChainDigest: digest(value.traceChainDigest, 'trace_chain_digest_invalid'),
346
+ previousTraceChainDigest,
347
+ faultBinding: fault === null
348
+ ? null
349
+ : Object.freeze({
350
+ faultFamily: token(record(fault, 'fault_binding_invalid').faultFamily, 'fault_family_invalid'),
351
+ }),
352
+ }));
353
+ }
354
+ return Object.freeze(result);
355
+ }
356
+ function normalizeLedger(values) {
357
+ if (!Array.isArray(values) || values.length !== 1)
358
+ fail('ledger_closure_invalid');
359
+ const ledger = record(values[0], 'ledger_invalid');
360
+ return Object.freeze({
361
+ total: integer(ledger.total, 'ledger_total_invalid'),
362
+ traceRoot: digest(ledger.traceRoot, 'ledger_trace_root_invalid'),
363
+ raw: values[0],
364
+ });
365
+ }
366
+ function safetyMetrics(monitor, trace) {
367
+ return Object.freeze({
368
+ schemaVersion: 1,
369
+ authorizationViolations: metric(monitor, 'authorizationViolations'),
370
+ planAuthorityViolations: metric(monitor, 'planAuthorityViolations'),
371
+ staleFenceViolations: metric(monitor, 'staleFenceViolations'),
372
+ duplicateEffectViolations: metric(monitor, 'duplicateEffectViolations'),
373
+ hiddenStateViolations: metric(monitor, 'hiddenStateViolations'),
374
+ globalMembershipViolations: metric(monitor, 'globalMembershipViolations'),
375
+ directAssignmentViolations: metric(monitor, 'directAssignmentViolations'),
376
+ directContractViolations: trace.filter((event) => event.reasonCode === 'direct_contract_violation').length,
377
+ syntheticLedgerViolations: metric(monitor, 'syntheticLedgerViolations'),
378
+ constantMetricViolations: metric(monitor, 'constantMetricViolations'),
379
+ canaryLeakViolations: metric(monitor, 'canaryLeakViolations'),
380
+ evaluationIntegrityViolations: 0,
381
+ });
382
+ }
383
+ function faultMetrics(trace, stratum) {
384
+ const families = stratum === 'nominal' ? [] : [...NON_NOMINAL_FAULTS];
385
+ return Object.freeze({
386
+ schemaVersion: 1,
387
+ registeredFamilies: Object.freeze(families),
388
+ events: Object.freeze(families.map((family) => ({
389
+ schemaVersion: 1,
390
+ family,
391
+ scheduleEventId: requiredFaultEvent(trace, family, 'fault.scheduled'),
392
+ injectionEventId: optionalFaultEvent(trace, family, 'fault.injected'),
393
+ observationEventId: optionalFaultEvent(trace, family, 'fault.observed'),
394
+ }))),
395
+ });
396
+ }
397
+ function recoveryMetrics(trace, stratum) {
398
+ if (stratum === 'nominal')
399
+ return emptyRecovery();
400
+ const disruptionEventId = optionalFaultEvent(trace, 'peer.crash', 'fault.observed');
401
+ const replanEventId = eventId(trace, 'recovery.directive');
402
+ const assignmentChangeEventId = eventId(trace, 'lease.recovered');
403
+ const recoveryEventId = eventId(trace, 'environment.effect.committed');
404
+ if (!disruptionEventId ||
405
+ !replanEventId ||
406
+ !assignmentChangeEventId ||
407
+ !recoveryEventId)
408
+ return emptyRecovery();
409
+ return Object.freeze({
410
+ schemaVersion: 1,
411
+ disruptionEventId,
412
+ replanEventId,
413
+ assignmentChangeEventId,
414
+ recoveryEventId,
415
+ interactionsToReplan: interactionDelta(trace, disruptionEventId, replanEventId),
416
+ interactionsToRecovery: interactionDelta(trace, disruptionEventId, recoveryEventId),
417
+ });
418
+ }
419
+ function emptyRecovery() {
420
+ return Object.freeze({
421
+ schemaVersion: 1,
422
+ disruptionEventId: null,
423
+ replanEventId: null,
424
+ assignmentChangeEventId: null,
425
+ recoveryEventId: null,
426
+ interactionsToReplan: null,
427
+ interactionsToRecovery: null,
428
+ });
429
+ }
430
+ function interactionDelta(trace, startId, endId) {
431
+ const start = trace.findIndex((event) => event.eventId === startId);
432
+ const end = trace.findIndex((event) => event.eventId === endId);
433
+ if (start < 0 || end < start)
434
+ fail('recovery_event_order_invalid');
435
+ return trace
436
+ .slice(start + 1, end + 1)
437
+ .reduce((total, event) => total + event.accountingUnits, 0);
438
+ }
439
+ function requiredFaultEvent(trace, family, kind) {
440
+ const found = optionalFaultEvent(trace, family, kind);
441
+ if (!found)
442
+ fail('fault_schedule_missing');
443
+ return found;
444
+ }
445
+ function optionalFaultEvent(trace, family, kind) {
446
+ const matches = trace.filter((event) => event.kind === kind && event.faultBinding?.faultFamily === family);
447
+ if (matches.length > 1)
448
+ fail('fault_event_duplicate');
449
+ return matches[0]?.eventId ?? null;
450
+ }
451
+ function eventId(trace, kind) {
452
+ const matches = trace.filter((event) => event.kind === kind);
453
+ if (matches.length > 1)
454
+ fail('causal_event_duplicate');
455
+ return matches[0]?.eventId ?? null;
456
+ }
457
+ function uniqueEventIds(values) {
458
+ const result = [];
459
+ const seen = new Set();
460
+ for (const value of values) {
461
+ if (value === null || seen.has(value))
462
+ continue;
463
+ seen.add(value);
464
+ result.push(value);
465
+ }
466
+ return Object.freeze(result);
467
+ }
468
+ function metric(value, key) {
469
+ return integer(value[key], `monitor_${key}_invalid`);
470
+ }
471
+ function record(value, reason) {
472
+ if (value === null ||
473
+ typeof value !== 'object' ||
474
+ Array.isArray(value) ||
475
+ (Object.getPrototypeOf(value) !== Object.prototype &&
476
+ Object.getPrototypeOf(value) !== null))
477
+ fail(reason);
478
+ return value;
479
+ }
480
+ function integer(value, reason) {
481
+ if (!Number.isSafeInteger(value) || value < 0)
482
+ fail(reason);
483
+ return value;
484
+ }
485
+ function boolean(value, reason) {
486
+ if (typeof value !== 'boolean')
487
+ fail(reason);
488
+ return value;
489
+ }
490
+ function string(value, reason) {
491
+ if (typeof value !== 'string')
492
+ fail(reason);
493
+ return value;
494
+ }
495
+ function token(value, reason) {
496
+ if (typeof value !== 'string' ||
497
+ !/^[A-Za-z0-9][A-Za-z0-9._:@/-]{0,255}$/u.test(value))
498
+ fail(reason);
499
+ return value;
500
+ }
501
+ function nullableString(value, reason) {
502
+ return value === null ? null : token(value, reason);
503
+ }
504
+ function digest(value, reason) {
505
+ assertDigest(value, reason);
506
+ return value;
507
+ }
508
+ function nullableDigest(value, reason) {
509
+ return value === null ? null : digest(value, reason);
510
+ }
511
+ function assertDigest(value, reason) {
512
+ if (typeof value !== 'string' || !/^sha256:[a-f0-9]{64}$/u.test(value))
513
+ fail(reason);
514
+ }
515
+ function fail(reason) {
516
+ throw new TypeError(`collective_statistical_campaign_registered_adapter_${reason}`);
517
+ }
518
+ //# sourceMappingURL=collective-statistical-campaign-registered-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collective-statistical-campaign-registered-adapter.js","sourceRoot":"","sources":["../src/collective-statistical-campaign-registered-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { type PlanningDigestV1 } from "@agentplat/collective-planning";
2
+ export declare const COLLECTIVE_STATISTICAL_CAMPAIGN_SCHEMA_VERSION_V1: 1;
3
+ export declare const COLLECTIVE_STATISTICAL_CAMPAIGN_STRATA_V1: readonly ["nominal", "benign", "adversarial", "mixed"];
4
+ export declare const COLLECTIVE_STATISTICAL_CAMPAIGN_FAULT_FAMILIES_V1: readonly ["capability.withdraw", "assignment.decline", "peer.crash", "peer.restart", "network.partition", "network.heal"];
5
+ export type CollectiveStatisticalCampaignStratumV1 = (typeof COLLECTIVE_STATISTICAL_CAMPAIGN_STRATA_V1)[number];
6
+ export type CollectiveStatisticalCampaignFaultFamilyV1 = (typeof COLLECTIVE_STATISTICAL_CAMPAIGN_FAULT_FAMILIES_V1)[number];
7
+ export interface CollectiveStatisticalCampaignScaleV1 {
8
+ readonly schemaVersion: 1;
9
+ readonly agentCount: 50 | 100 | 250 | 500;
10
+ readonly outdegree: number;
11
+ readonly directedEdgeCount: number;
12
+ readonly maximumInteractions: number;
13
+ readonly pairedSeedsPerStratum: number;
14
+ }
15
+ /** Frozen scale ladder; this is configuration only, not a runtime admission. */
16
+ export declare const COLLECTIVE_STATISTICAL_CAMPAIGN_SCALE_LADDER_V1: readonly [CollectiveStatisticalCampaignScaleV1, CollectiveStatisticalCampaignScaleV1, CollectiveStatisticalCampaignScaleV1, CollectiveStatisticalCampaignScaleV1];
17
+ export interface CollectiveStatisticalCampaignTopologyEdgeV1 {
18
+ readonly schemaVersion: 1;
19
+ readonly fromPeerId: string;
20
+ readonly toPeerId: string;
21
+ }
22
+ export interface CollectiveStatisticalCampaignTopologyV1 {
23
+ readonly schemaVersion: 1;
24
+ readonly agentCount: 50 | 100 | 250 | 500;
25
+ readonly seed: number;
26
+ readonly outdegree: number;
27
+ readonly directedEdgeCount: number;
28
+ readonly peerIds: readonly string[];
29
+ readonly edges: readonly CollectiveStatisticalCampaignTopologyEdgeV1[];
30
+ readonly topologyDigest: PlanningDigestV1;
31
+ }
32
+ export interface CollectiveStatisticalCampaignFaultMatrixRowV1 {
33
+ readonly schemaVersion: 1;
34
+ readonly stratum: CollectiveStatisticalCampaignStratumV1;
35
+ readonly faultFamilies: readonly CollectiveStatisticalCampaignFaultFamilyV1[];
36
+ }
37
+ export interface CollectiveStatisticalCampaignFaultMatrixV1 {
38
+ readonly schemaVersion: 1;
39
+ readonly rows: readonly CollectiveStatisticalCampaignFaultMatrixRowV1[];
40
+ readonly faultMatrixDigest: PlanningDigestV1;
41
+ }
42
+ export interface CollectiveStatisticalCampaignScaleConfigurationV1 {
43
+ readonly schemaVersion: 1;
44
+ readonly agentCount: 50 | 100 | 250 | 500;
45
+ readonly seed: number;
46
+ readonly stratum: CollectiveStatisticalCampaignStratumV1;
47
+ readonly maximumInteractions: number;
48
+ readonly topology: CollectiveStatisticalCampaignTopologyV1;
49
+ readonly registeredFaultFamilies: readonly CollectiveStatisticalCampaignFaultFamilyV1[];
50
+ readonly configurationDigest: PlanningDigestV1;
51
+ }
52
+ export interface CollectiveStatisticalCampaignFaultCoverageV1 {
53
+ readonly schemaVersion: 1;
54
+ readonly stratum: CollectiveStatisticalCampaignStratumV1;
55
+ readonly registeredFaultFamilies: readonly CollectiveStatisticalCampaignFaultFamilyV1[];
56
+ readonly observedFaultFamilies: readonly CollectiveStatisticalCampaignFaultFamilyV1[];
57
+ readonly coverageDigest: PlanningDigestV1;
58
+ }
59
+ /** Builds the registered 50/100/250/500 campaign configuration without running it. */
60
+ export declare function createCollectiveStatisticalCampaignScaleConfigurationV1(input: {
61
+ readonly schemaVersion: 1;
62
+ readonly agentCount: 50 | 100 | 250 | 500;
63
+ readonly seed: number;
64
+ readonly stratum: CollectiveStatisticalCampaignStratumV1;
65
+ }): CollectiveStatisticalCampaignScaleConfigurationV1;
66
+ export declare function validateCollectiveStatisticalCampaignScaleConfigurationV1(value: unknown): CollectiveStatisticalCampaignScaleConfigurationV1;
67
+ /** Creates a deterministic sparse directed topology with an exact O(n log n) edge count. */
68
+ export declare function createCollectiveStatisticalCampaignTopologyV1(input: {
69
+ readonly schemaVersion: 1;
70
+ readonly agentCount: 50 | 100 | 250 | 500;
71
+ readonly seed: number;
72
+ }): CollectiveStatisticalCampaignTopologyV1;
73
+ export declare function validateCollectiveStatisticalCampaignTopologyV1(value: unknown): CollectiveStatisticalCampaignTopologyV1;
74
+ /** Returns the closed registered matrix, including an empty nominal-fault row. */
75
+ export declare function createCollectiveStatisticalCampaignFaultMatrixV1(): CollectiveStatisticalCampaignFaultMatrixV1;
76
+ export declare function validateCollectiveStatisticalCampaignFaultMatrixV1(value: unknown): CollectiveStatisticalCampaignFaultMatrixV1;
77
+ /** Requires observed family coverage to equal the registered matrix row exactly. */
78
+ export declare function createCollectiveStatisticalCampaignFaultCoverageV1(input: {
79
+ readonly schemaVersion: 1;
80
+ readonly stratum: CollectiveStatisticalCampaignStratumV1;
81
+ readonly registeredFaultFamilies: readonly CollectiveStatisticalCampaignFaultFamilyV1[];
82
+ readonly observedFaultFamilies: readonly CollectiveStatisticalCampaignFaultFamilyV1[];
83
+ }): CollectiveStatisticalCampaignFaultCoverageV1;
84
+ export declare function validateCollectiveStatisticalCampaignFaultCoverageV1(value: unknown): CollectiveStatisticalCampaignFaultCoverageV1;
85
+ //# sourceMappingURL=collective-statistical-campaign-scale.d.ts.map