@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.
- package/README.md +447 -2
- package/dist/collective-closed-loop-action.d.ts +80 -0
- package/dist/collective-closed-loop-action.d.ts.map +1 -0
- package/dist/collective-closed-loop-action.js +471 -0
- package/dist/collective-closed-loop-action.js.map +1 -0
- package/dist/collective-closed-loop-contracts.d.ts +75 -0
- package/dist/collective-closed-loop-contracts.d.ts.map +1 -0
- package/dist/collective-closed-loop-contracts.js +420 -0
- package/dist/collective-closed-loop-contracts.js.map +1 -0
- package/dist/collective-closed-loop-fault-matrix.d.ts +101 -0
- package/dist/collective-closed-loop-fault-matrix.d.ts.map +1 -0
- package/dist/collective-closed-loop-fault-matrix.js +253 -0
- package/dist/collective-closed-loop-fault-matrix.js.map +1 -0
- package/dist/collective-closed-loop-recovery.d.ts +70 -0
- package/dist/collective-closed-loop-recovery.d.ts.map +1 -0
- package/dist/collective-closed-loop-recovery.js +823 -0
- package/dist/collective-closed-loop-recovery.js.map +1 -0
- package/dist/collective-closed-loop-reference.d.ts +54 -0
- package/dist/collective-closed-loop-reference.d.ts.map +1 -0
- package/dist/collective-closed-loop-reference.js +1696 -0
- package/dist/collective-closed-loop-reference.js.map +1 -0
- package/dist/collective-closed-loop-replanning.d.ts +27 -0
- package/dist/collective-closed-loop-replanning.d.ts.map +1 -0
- package/dist/collective-closed-loop-replanning.js +151 -0
- package/dist/collective-closed-loop-replanning.js.map +1 -0
- package/dist/collective-closed-loop-resilience-campaign.d.ts +22 -0
- package/dist/collective-closed-loop-resilience-campaign.d.ts.map +1 -0
- package/dist/collective-closed-loop-resilience-campaign.js +196 -0
- package/dist/collective-closed-loop-resilience-campaign.js.map +1 -0
- package/dist/collective-closed-loop-resilience-contracts.d.ts +138 -0
- package/dist/collective-closed-loop-resilience-contracts.d.ts.map +1 -0
- package/dist/collective-closed-loop-resilience-contracts.js +677 -0
- package/dist/collective-closed-loop-resilience-contracts.js.map +1 -0
- package/dist/collective-closed-loop-runner.d.ts +133 -0
- package/dist/collective-closed-loop-runner.d.ts.map +1 -0
- package/dist/collective-closed-loop-runner.js +1429 -0
- package/dist/collective-closed-loop-runner.js.map +1 -0
- package/dist/collective-closed-loop-runtime.d.ts +95 -0
- package/dist/collective-closed-loop-runtime.d.ts.map +1 -0
- package/dist/collective-closed-loop-runtime.js +1192 -0
- package/dist/collective-closed-loop-runtime.js.map +1 -0
- package/dist/collective-effect-provenance.d.ts +5 -0
- package/dist/collective-effect-provenance.d.ts.map +1 -0
- package/dist/collective-effect-provenance.js +32 -0
- package/dist/collective-effect-provenance.js.map +1 -0
- package/dist/collective-environment.d.ts +49 -0
- package/dist/collective-environment.d.ts.map +1 -0
- package/dist/collective-environment.js +907 -0
- package/dist/collective-environment.js.map +1 -0
- package/dist/collective-progressive-scale-overlay.d.ts +39 -0
- package/dist/collective-progressive-scale-overlay.d.ts.map +1 -0
- package/dist/collective-progressive-scale-overlay.js +147 -0
- package/dist/collective-progressive-scale-overlay.js.map +1 -0
- package/dist/collective-progressive-scale.d.ts +202 -0
- package/dist/collective-progressive-scale.d.ts.map +1 -0
- package/dist/collective-progressive-scale.js +755 -0
- package/dist/collective-progressive-scale.js.map +1 -0
- package/dist/collective-statistical-campaign-aggregation.d.ts +97 -0
- package/dist/collective-statistical-campaign-aggregation.d.ts.map +1 -0
- package/dist/collective-statistical-campaign-aggregation.js +446 -0
- package/dist/collective-statistical-campaign-aggregation.js.map +1 -0
- package/dist/collective-statistical-campaign-artifact-stream.d.ts +66 -0
- package/dist/collective-statistical-campaign-artifact-stream.d.ts.map +1 -0
- package/dist/collective-statistical-campaign-artifact-stream.js +207 -0
- package/dist/collective-statistical-campaign-artifact-stream.js.map +1 -0
- package/dist/collective-statistical-campaign-bundle.d.ts +151 -0
- package/dist/collective-statistical-campaign-bundle.d.ts.map +1 -0
- package/dist/collective-statistical-campaign-bundle.js +885 -0
- package/dist/collective-statistical-campaign-bundle.js.map +1 -0
- package/dist/collective-statistical-campaign-executor.d.ts +131 -0
- package/dist/collective-statistical-campaign-executor.d.ts.map +1 -0
- package/dist/collective-statistical-campaign-executor.js +856 -0
- package/dist/collective-statistical-campaign-executor.js.map +1 -0
- package/dist/collective-statistical-campaign-normative-analysis.d.ts +85 -0
- package/dist/collective-statistical-campaign-normative-analysis.d.ts.map +1 -0
- package/dist/collective-statistical-campaign-normative-analysis.js +483 -0
- package/dist/collective-statistical-campaign-normative-analysis.js.map +1 -0
- package/dist/collective-statistical-campaign-normative-operation.d.ts +89 -0
- package/dist/collective-statistical-campaign-normative-operation.d.ts.map +1 -0
- package/dist/collective-statistical-campaign-normative-operation.js +266 -0
- package/dist/collective-statistical-campaign-normative-operation.js.map +1 -0
- package/dist/collective-statistical-campaign-normative-registry.d.ts +24 -0
- package/dist/collective-statistical-campaign-normative-registry.d.ts.map +1 -0
- package/dist/collective-statistical-campaign-normative-registry.js +163 -0
- package/dist/collective-statistical-campaign-normative-registry.js.map +1 -0
- package/dist/collective-statistical-campaign-registered-adapter.d.ts +16 -0
- package/dist/collective-statistical-campaign-registered-adapter.d.ts.map +1 -0
- package/dist/collective-statistical-campaign-registered-adapter.js +518 -0
- package/dist/collective-statistical-campaign-registered-adapter.js.map +1 -0
- package/dist/collective-statistical-campaign-scale.d.ts +85 -0
- package/dist/collective-statistical-campaign-scale.d.ts.map +1 -0
- package/dist/collective-statistical-campaign-scale.js +349 -0
- package/dist/collective-statistical-campaign-scale.js.map +1 -0
- package/dist/collective-trace-journal.d.ts +20 -0
- package/dist/collective-trace-journal.d.ts.map +1 -0
- package/dist/collective-trace-journal.js +105 -0
- package/dist/collective-trace-journal.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/multi-domain-environment-contracts.d.ts +122 -0
- package/dist/multi-domain-environment-contracts.d.ts.map +1 -0
- package/dist/multi-domain-environment-contracts.js +14 -0
- package/dist/multi-domain-environment-contracts.js.map +1 -0
- package/dist/multi-domain-environment-runtime.d.ts +25 -0
- package/dist/multi-domain-environment-runtime.d.ts.map +1 -0
- package/dist/multi-domain-environment-runtime.js +493 -0
- package/dist/multi-domain-environment-runtime.js.map +1 -0
- package/dist/multi-domain-environment-validation.d.ts +33 -0
- package/dist/multi-domain-environment-validation.d.ts.map +1 -0
- package/dist/multi-domain-environment-validation.js +415 -0
- package/dist/multi-domain-environment-validation.js.map +1 -0
- package/dist/multi-domain-environment.d.ts +4 -0
- package/dist/multi-domain-environment.d.ts.map +1 -0
- package/dist/multi-domain-environment.js +4 -0
- package/dist/multi-domain-environment.js.map +1 -0
- package/dist/reducer-scenario.d.ts.map +1 -1
- package/dist/reducer-scenario.js +67 -19
- package/dist/reducer-scenario.js.map +1 -1
- package/dist/scalable-evaluation-contracts.d.ts +835 -0
- package/dist/scalable-evaluation-contracts.d.ts.map +1 -0
- package/dist/scalable-evaluation-contracts.js +22 -0
- package/dist/scalable-evaluation-contracts.js.map +1 -0
- package/dist/scalable-evaluation-durability.d.ts +16 -0
- package/dist/scalable-evaluation-durability.d.ts.map +1 -0
- package/dist/scalable-evaluation-durability.js +339 -0
- package/dist/scalable-evaluation-durability.js.map +1 -0
- package/dist/scalable-evaluation-evidence.d.ts +93 -0
- package/dist/scalable-evaluation-evidence.d.ts.map +1 -0
- package/dist/scalable-evaluation-evidence.js +470 -0
- package/dist/scalable-evaluation-evidence.js.map +1 -0
- package/dist/scalable-evaluation-reference-integrated.d.ts +87 -0
- package/dist/scalable-evaluation-reference-integrated.d.ts.map +1 -0
- package/dist/scalable-evaluation-reference-integrated.js +1318 -0
- package/dist/scalable-evaluation-reference-integrated.js.map +1 -0
- package/dist/scalable-evaluation-runner.d.ts +8 -0
- package/dist/scalable-evaluation-runner.d.ts.map +1 -0
- package/dist/scalable-evaluation-runner.js +1810 -0
- package/dist/scalable-evaluation-runner.js.map +1 -0
- package/dist/scalable-evaluation-runtime.d.ts +86 -0
- package/dist/scalable-evaluation-runtime.d.ts.map +1 -0
- package/dist/scalable-evaluation-runtime.js +1310 -0
- package/dist/scalable-evaluation-runtime.js.map +1 -0
- package/dist/scalable-evaluation-validation.d.ts +59 -0
- package/dist/scalable-evaluation-validation.d.ts.map +1 -0
- package/dist/scalable-evaluation-validation.js +377 -0
- package/dist/scalable-evaluation-validation.js.map +1 -0
- package/dist/scalable-evaluation.d.ts +8 -0
- package/dist/scalable-evaluation.d.ts.map +1 -0
- package/dist/scalable-evaluation.js +8 -0
- package/dist/scalable-evaluation.js.map +1 -0
- package/dist/sharded-simulation-contracts.d.ts +240 -0
- package/dist/sharded-simulation-contracts.d.ts.map +1 -0
- package/dist/sharded-simulation-contracts.js +199 -0
- package/dist/sharded-simulation-contracts.js.map +1 -0
- package/dist/sharded-simulation-runtime.d.ts +64 -0
- package/dist/sharded-simulation-runtime.d.ts.map +1 -0
- package/dist/sharded-simulation-runtime.js +755 -0
- package/dist/sharded-simulation-runtime.js.map +1 -0
- package/dist/sharded-simulation-validation.d.ts +10 -0
- package/dist/sharded-simulation-validation.d.ts.map +1 -0
- package/dist/sharded-simulation-validation.js +250 -0
- package/dist/sharded-simulation-validation.js.map +1 -0
- package/dist/sharded-simulation.d.ts +46 -0
- package/dist/sharded-simulation.d.ts.map +1 -0
- package/dist/sharded-simulation.js +32 -0
- package/dist/sharded-simulation.js.map +1 -0
- package/dist/verified-benchmark-contracts.d.ts +132 -0
- package/dist/verified-benchmark-contracts.d.ts.map +1 -0
- package/dist/verified-benchmark-contracts.js +2 -0
- package/dist/verified-benchmark-contracts.js.map +1 -0
- package/dist/verified-benchmark-runtime.d.ts +20 -0
- package/dist/verified-benchmark-runtime.d.ts.map +1 -0
- package/dist/verified-benchmark-runtime.js +199 -0
- package/dist/verified-benchmark-runtime.js.map +1 -0
- package/dist/verified-benchmark-validation.d.ts +64 -0
- package/dist/verified-benchmark-validation.d.ts.map +1 -0
- package/dist/verified-benchmark-validation.js +481 -0
- package/dist/verified-benchmark-validation.js.map +1 -0
- package/dist/verified-benchmark.d.ts +4 -0
- package/dist/verified-benchmark.d.ts.map +1 -0
- package/dist/verified-benchmark.js +4 -0
- package/dist/verified-benchmark.js.map +1 -0
- package/package.json +18 -8
package/README.md
CHANGED
|
@@ -2,6 +2,37 @@
|
|
|
2
2
|
|
|
3
3
|
Deterministic simulation kernel for AgentPlat Mesh peers.
|
|
4
4
|
|
|
5
|
+
## Scalable provider-neutral evaluation runner
|
|
6
|
+
|
|
7
|
+
`runScalableEvaluationV1()` is the executable counterpart to the scalable
|
|
8
|
+
evaluation contracts. It opens a multi-domain environment, starts a sharded
|
|
9
|
+
session and episode, binds a sparse schedule to both team ports, validates and
|
|
10
|
+
accounts public observations, forwards cross-shard messages, and requests
|
|
11
|
+
fenced effects for declared actions. The runner keeps only bounded accounting
|
|
12
|
+
state, recovery state, and a configured record tail; it never materializes the
|
|
13
|
+
declared 500, 5K, or 100K peer population.
|
|
14
|
+
|
|
15
|
+
Each compared team receives an isolated session and episode with the same
|
|
16
|
+
scenario seed, so effects or targeted perturbations from one side cannot alter
|
|
17
|
+
the other side's state. Environment effect receipts and cross-shard
|
|
18
|
+
acknowledgements are accepted only after exact request/batch binding and digest
|
|
19
|
+
recomputation.
|
|
20
|
+
|
|
21
|
+
The embedding application supplies team implementations. Scheduled
|
|
22
|
+
perturbations require a `ScalableEvaluationPerturbationPortV1` and a recovery
|
|
23
|
+
metric port, plus an evaluator baseline for every affected team/domain pair.
|
|
24
|
+
The simulation provider must return a content-bound injection receipt before
|
|
25
|
+
the runtime records the occurrence; a plan entry alone is never reported as an
|
|
26
|
+
injected fault. Active recovery is sampled on subsequent logical steps until
|
|
27
|
+
its baseline tolerance is actually restored. Declared actions require an
|
|
28
|
+
application-owned `ScalableEvaluationActionAuthorityV1`; the runner does not
|
|
29
|
+
synthesize fencing authority.
|
|
30
|
+
|
|
31
|
+
Runs are local and transport-neutral: this package does not start a service,
|
|
32
|
+
create a campaign, or deploy infrastructure. An `AbortSignal`-compatible
|
|
33
|
+
object returns a `cancelled` result between external calls; budget exhaustion
|
|
34
|
+
prevents the next team step before it can create effects or messages.
|
|
35
|
+
|
|
5
36
|
The kernel uses the production `reduceMeshPeer` function for local commands and
|
|
6
37
|
the production `processMeshEnvelope` boundary for every remote delivery. There
|
|
7
38
|
is no simulation-only accepted-message path.
|
|
@@ -41,8 +72,8 @@ coordination, allocation, execution, timer, and recovery reducers.
|
|
|
41
72
|
|
|
42
73
|
```ts
|
|
43
74
|
const trace = await runMeshReducerScenario(config, {
|
|
44
|
-
driverId:
|
|
45
|
-
projectionId:
|
|
75
|
+
driverId: "my-coordination-driver-v1",
|
|
76
|
+
projectionId: "my-safety-projection-v1",
|
|
46
77
|
reduce({ state, action, logicalTime }) {
|
|
47
78
|
return dispatchToPublicMeshReducer(state, action, logicalTime);
|
|
48
79
|
},
|
|
@@ -107,3 +138,417 @@ records exact replay. Its fault and adversary schedules are interpreted at
|
|
|
107
138
|
driver boundaries; production reducers contain no experiment bypass. The
|
|
108
139
|
500-agent mission remains below 5,000 interactions and records its observed
|
|
109
140
|
directed topology instead of inferring an asymptotic claim.
|
|
141
|
+
|
|
142
|
+
## Deterministic evaluation environment
|
|
143
|
+
|
|
144
|
+
`createCollectiveDeterministicEnvironmentHarnessV1()` is the reference
|
|
145
|
+
implementation of the separate
|
|
146
|
+
`@agentplat/collective-planning/evaluation` boundary. The harness returns a
|
|
147
|
+
runner-visible `environment`, an evaluator-only `monitor`, and an evaluator-only
|
|
148
|
+
`finalize()` operation. Only the environment port should be passed to a runner.
|
|
149
|
+
|
|
150
|
+
The reference world keeps peer observation queues, authoritative effect state,
|
|
151
|
+
idempotency records, terminal predicates and the hidden canary in closures.
|
|
152
|
+
Observation cursors are exact-idempotent and conflicting reuse is rejected.
|
|
153
|
+
Effects validate the current Work Contract, epoch, authority generation and
|
|
154
|
+
fence atomically. Timeouts before commit never enter the effect ledger;
|
|
155
|
+
timeouts after commit return an indeterminate first receipt and a committed
|
|
156
|
+
receipt on exact retry. Public snapshot handles are backed by evaluator-owned
|
|
157
|
+
opaque state, so another harness with the same registration can restore and
|
|
158
|
+
replay without serializing hidden values.
|
|
159
|
+
|
|
160
|
+
Finalization constructs trace V2, replays its interaction ledger, snapshots the
|
|
161
|
+
independent monitor and creates boundary evidence. An exceeded interaction
|
|
162
|
+
ceiling becomes a terminal mission failure. The historical V1 evaluation
|
|
163
|
+
driver and reports remain unchanged.
|
|
164
|
+
|
|
165
|
+
## Nominal closed-loop execution
|
|
166
|
+
|
|
167
|
+
The Increment 5 closed-loop surface is an opt-in, nominal-only reference path
|
|
168
|
+
for deterministic experiments with 3 through 100 logical peers. It is not a
|
|
169
|
+
durable runtime or a production orchestration service. Its hard interaction
|
|
170
|
+
limit is 5,000 and its public result contains trace-bound state roots and
|
|
171
|
+
artifacts, not caller-supplied success or safety counters.
|
|
172
|
+
|
|
173
|
+
`runAdaptiveCollectiveClosedLoopV1()` and
|
|
174
|
+
`runCentralizedPlannerClosedLoopV1()` share the same Mesh, governed-action and
|
|
175
|
+
environment boundaries. Both are bound to the registered nominal definition,
|
|
176
|
+
intent, policy, mandate, peer topology and evaluator boundary. The centralized
|
|
177
|
+
mode records every delivered observation as an accounted directive, retains a
|
|
178
|
+
deterministic bounded public subset and calls `decideCentralized()` exactly
|
|
179
|
+
once; it does not execute the peer-local decision loop or receive the
|
|
180
|
+
evaluator's hidden state, monitor, terminal predicate or a free communication
|
|
181
|
+
channel.
|
|
182
|
+
|
|
183
|
+
Before a planning policy runs, the runner requests observations separately for
|
|
184
|
+
each peer. A policy receives only that peer's identity, intent, local
|
|
185
|
+
observations, local planning view and logical time. Proposal decisions must be
|
|
186
|
+
made by that peer and cite only its delivered observation digests. The runner
|
|
187
|
+
does not expose an assignee lookup or allow a proposal or adaptive role to
|
|
188
|
+
authorize an effect.
|
|
189
|
+
|
|
190
|
+
The shared runtime performs real Mesh discovery, capability handling, offer,
|
|
191
|
+
bid selection, award, acceptance and checkpoint transitions. The winning bid
|
|
192
|
+
is selected by the Mesh allocation reducer. A Work Contract is created while
|
|
193
|
+
the accepted assignment is still active, before completion changes the
|
|
194
|
+
execution head.
|
|
195
|
+
|
|
196
|
+
The 50- and 100-peer reference topologies connect the owner to all other peers.
|
|
197
|
+
Every peer receives observations; adaptive mode records one local decision per
|
|
198
|
+
peer, while centralized mode records one directive per peer. Mesh discovers
|
|
199
|
+
the remote peers and respects its existing bounded fanout by offering to and receiving
|
|
200
|
+
bids from at most 32 candidates for one Work item. The result publishes those
|
|
201
|
+
participant sets instead of treating registration alone as participation.
|
|
202
|
+
|
|
203
|
+
The one protected action then traverses Trust eligibility, inference assessment
|
|
204
|
+
and grant issuance, grant-ledger reservation, governed permit issuance and a
|
|
205
|
+
`downstream_atomic` fenced environment effect. Currentness is checked at the
|
|
206
|
+
governed boundary, including the Work Contract's exact Trust and inference
|
|
207
|
+
policy IDs. Authorization time is runner-derived after the signed checkpoint
|
|
208
|
+
and within the mission validity window, and is exposed with the action evidence.
|
|
209
|
+
A signed `work.result` is
|
|
210
|
+
emitted only after the same evaluator returns the exact committed receipt and
|
|
211
|
+
its output digest matches the result digest.
|
|
212
|
+
|
|
213
|
+
`replayAdaptiveCollectiveClosedLoopV1()` and
|
|
214
|
+
`replayCentralizedPlannerClosedLoopV1()` execute fresh inputs twice and require
|
|
215
|
+
the run, trace and boundary-evidence digests to match exactly. Cryptographic
|
|
216
|
+
handles are runtime dependencies: callers may reuse them for a replay, but
|
|
217
|
+
private key material is never included in the serialized definition, trace or
|
|
218
|
+
result.
|
|
219
|
+
|
|
220
|
+
## Resilient closed-loop reference
|
|
221
|
+
|
|
222
|
+
Increment 6 adds an opt-in resilience wrapper; the nominal runner remains
|
|
223
|
+
nominal-only. `CollectiveClosedLoopResilienceDefinitionV1` binds the nominal
|
|
224
|
+
definition to a strict, digest-bound fault plan and a bounded epoch count.
|
|
225
|
+
Its closed fault vocabulary is capability withdrawal, assignment decline, peer
|
|
226
|
+
crash, peer restart, directed partition and directed heal. Every reported fault
|
|
227
|
+
has a scheduled, injected and observed digest; a declared-only record is
|
|
228
|
+
rejected. A trace-event trigger must resolve to the exact earlier journal event.
|
|
229
|
+
|
|
230
|
+
`runCollectiveClosedLoopCausalReplanningV1()` is a focused planning primitive:
|
|
231
|
+
an accepted successor must cite an explicit trigger observation and the exact
|
|
232
|
+
prior semantic-slot head. It records the causal successor and projects its new
|
|
233
|
+
Work identity through the planning reducer; it does not promise automatic
|
|
234
|
+
replanning for arbitrary runtime failures.
|
|
235
|
+
|
|
236
|
+
`runCollectiveClosedLoopFaultMatrixV1()` is a deterministic test driver over
|
|
237
|
+
the supplied reducer runtime. Its focused conformance coverage processes a
|
|
238
|
+
signed capability withdrawal through the real Mesh discovery reducer and an
|
|
239
|
+
assignment decline plus causal reoffer through the real allocation reducer.
|
|
240
|
+
Crash/resume and partition/heal remain explicit simulator-driver faults, not
|
|
241
|
+
special reducer paths.
|
|
242
|
+
|
|
243
|
+
The resilient runner does not accept an arbitrary callback returning matrix
|
|
244
|
+
evidence. `createCollectiveClosedLoopFaultMatrixPortV1()` snapshots the driver
|
|
245
|
+
input into a private registration and binds it to the exact nominal planning,
|
|
246
|
+
Mesh, Work Contract, checkpoint and assignment state. Execution validates every
|
|
247
|
+
fault's family, logical time, target, directed link and predecessor against the
|
|
248
|
+
public plan.
|
|
249
|
+
|
|
250
|
+
The resilient runner starts from the real nominal Mesh state and executes
|
|
251
|
+
lease expiry/grace, proposal, witness votes, certificate, recovery award,
|
|
252
|
+
replacement acceptance and checkpoint resume through the Mesh reducers. The
|
|
253
|
+
replacement receives a Work Contract from the active epoch-two assignment. An
|
|
254
|
+
epoch-one progress or result is fenced with `execution_authority_invalid`; a
|
|
255
|
+
provenance-bound committed effect receipt is required before the replacement
|
|
256
|
+
can emit the epoch-two `work.result`. The evidence retains the real rejected
|
|
257
|
+
envelope and the action must occur inside the recovered lease's absolute time
|
|
258
|
+
window.
|
|
259
|
+
|
|
260
|
+
`runPairedCollectiveClosedLoopResilienceCampaignV1()` compares construction
|
|
261
|
+
fairness and public-observation digests for adaptive and centralized modes.
|
|
262
|
+
Both sides share the same policy implementation and must match environment,
|
|
263
|
+
monitor and mission-bound matrix inputs; executed scenario, records and driver
|
|
264
|
+
faults are compared again after execution. Exact replay then covers the run,
|
|
265
|
+
trace, evidence and matrix. This is a compact deterministic reference campaign,
|
|
266
|
+
not the 50–500 agent statistical release campaign.
|
|
267
|
+
|
|
268
|
+
`peer.restart` in this reference is the simulator's in-memory `peer.resume`:
|
|
269
|
+
the configured instance resumes with retained reducer state. It is not a fresh
|
|
270
|
+
instance lifecycle, durable restore, production recovery protocol or cloud
|
|
271
|
+
deployment.
|
|
272
|
+
|
|
273
|
+
## Statistical campaign contracts
|
|
274
|
+
|
|
275
|
+
The package exports deterministic configuration and evidence contracts for the
|
|
276
|
+
50/100/250/500-agent ladder. `createCollectiveStatisticalCampaignTopologyV1()`
|
|
277
|
+
builds the registered sparse directed topology; scale configuration binds the
|
|
278
|
+
exact interaction ceiling and fault-family row. These functions allocate
|
|
279
|
+
configuration data only and do not execute a scale campaign.
|
|
280
|
+
|
|
281
|
+
`verifyCollectiveStatisticalCampaignBundleV1()` is a side-effect-free verifier
|
|
282
|
+
for a fully supplied in-memory evidence bundle. It requires the canonical
|
|
283
|
+
Collective Planning registration and terminal manifest, the exact four
|
|
284
|
+
adaptive/centralized first/replay slots for every registered cell, closed
|
|
285
|
+
sample/trace/ledger/evidence indexes, trusted source-lock expectations and
|
|
286
|
+
independently recomputed comparison and summary statistics. Replay equality
|
|
287
|
+
covers the stable outcome plus trace, ledger and observation records. A failed
|
|
288
|
+
execution remains present and forces a failed summary.
|
|
289
|
+
|
|
290
|
+
Inputs are snapshotted from data descriptors before validation, paths are
|
|
291
|
+
logical safe-relative names, and unknown/accessor-bearing shapes fail closed.
|
|
292
|
+
Each artifact is capped at 16 MiB and the supplied bundle at 256 MiB before JSON
|
|
293
|
+
decoding. The daily command is deliberately a registration/configuration
|
|
294
|
+
contract smoke; it is not statistical or scale-execution evidence.
|
|
295
|
+
|
|
296
|
+
`runCollectiveStatisticalCampaignShardV1()` executes any deterministic subset
|
|
297
|
+
of the registered cells and writes an immutable execution record before it
|
|
298
|
+
settles the revision-CAS lease state. A restart reads both state and records by
|
|
299
|
+
`runKey`, validates their execution identity and complete artifact content, and
|
|
300
|
+
continues without rerunning committed slots. An expired running slot is
|
|
301
|
+
reconciled from its durable record, or conservatively marked as an indeterminate
|
|
302
|
+
external effect when no record exists. Runner exceptions become terminal failed
|
|
303
|
+
samples, while the remaining slots still execute. The orchestration store is an
|
|
304
|
+
interface; the simulation package does not choose a filesystem, database or
|
|
305
|
+
cloud provider.
|
|
306
|
+
|
|
307
|
+
`aggregateCollectiveStatisticalCampaignV1()` accepts only the exact registered
|
|
308
|
+
closure, rejects duplicate or divergent replay slots, materializes the terminal
|
|
309
|
+
manifest, recomputes paired comparisons and produces bytes accepted by the
|
|
310
|
+
public bundle verifier. It cannot promote a partial shard set.
|
|
311
|
+
|
|
312
|
+
### Normative analysis and streaming custody
|
|
313
|
+
|
|
314
|
+
The public surface includes a bounded artifact-stream verifier and deterministic
|
|
315
|
+
normative analysis for the registered 240-cell / 960-slot campaign. The stream
|
|
316
|
+
verifier reads one indexed artifact at a time, checks exact closure, byte hash
|
|
317
|
+
and canonical digest, and applies artifact and total-byte limits before a
|
|
318
|
+
visitor receives decoded data. Limits cannot exceed 16,384 artifacts, 16 MiB
|
|
319
|
+
per artifact or 256 MiB total, and empty or unbounded chunk streams fail closed.
|
|
320
|
+
The analyzer consumes evaluator-owned projections and derives its normalized
|
|
321
|
+
rows internally, uses a pre-registered one-sided Wilson acceptance bound plus
|
|
322
|
+
descriptive two-sided intervals, and returns an ineligible or incomplete
|
|
323
|
+
decision whenever closure or evidence is insufficient.
|
|
324
|
+
|
|
325
|
+
`runCollectiveStatisticalCampaignNormativeOperationV1()` executes exactly one
|
|
326
|
+
authorized five-cell shard through a trusted registry resolver. The resolved
|
|
327
|
+
runner implementation and evaluator digests must match the authorized
|
|
328
|
+
descriptor before mutation, direct runner/projector injection is not accepted,
|
|
329
|
+
every projection must retain that evaluator binding, and state/slot/evidence
|
|
330
|
+
identity is derived from the exact plan and stable authenticated authorization
|
|
331
|
+
digest. A caller can
|
|
332
|
+
recompute the namespace with
|
|
333
|
+
`collectiveStatisticalCampaignNormativeExecutionIdV1()`.
|
|
334
|
+
|
|
335
|
+
This is a control-plane capability only: it does not execute the 50–500-agent
|
|
336
|
+
campaign, invoke a provider, or claim that the campaign has passed.
|
|
337
|
+
|
|
338
|
+
## Progressive scale execution surface
|
|
339
|
+
|
|
340
|
+
`COLLECTIVE_PROGRESSIVE_SCALE_PROFILES_V1` defines three closed industry
|
|
341
|
+
profiles. They progress from 500 participants and 5,000 interactions to 5,000
|
|
342
|
+
participants and 50,000 interactions, then to 100,000 participants and
|
|
343
|
+
1,000,000 interactions. The profiles also bind the role-coherence horizon,
|
|
344
|
+
benign or Byzantine affected population, recovery-work class and physical,
|
|
345
|
+
social or cyber scenario domains. Existing V1 campaign contracts remain
|
|
346
|
+
unchanged.
|
|
347
|
+
|
|
348
|
+
`createCollectiveProgressiveScalePlanV1()` produces an immutable execution plan
|
|
349
|
+
whose sparse topology is an algorithmic descriptor. A worker derives one
|
|
350
|
+
peer's O(log N) neighbors and affected-population membership on demand; the
|
|
351
|
+
plan never materializes the global peer or edge set. Peer and interaction
|
|
352
|
+
ranges are exact, non-overlapping shards, and the implicit affine permutation
|
|
353
|
+
selects the configured affected population without a global membership list.
|
|
354
|
+
|
|
355
|
+
`runCollectiveProgressiveScaleShardV1()` binds a provider-neutral executor ID
|
|
356
|
+
and version to one exact shard. Results retain interaction, recovery-work,
|
|
357
|
+
mission-success and digest-only event-stream evidence. The aggregate report
|
|
358
|
+
requires an exact shard closure, the registered role-coherence horizon, the
|
|
359
|
+
complete affected population, restored mission success and the profile's
|
|
360
|
+
quadratic, N log N or linear recovery ceiling. These APIs make large-scale
|
|
361
|
+
execution pluggable and bounded; constructing a plan or a conformant-shaped
|
|
362
|
+
report is not evidence that a large campaign was actually executed.
|
|
363
|
+
|
|
364
|
+
`createCollectiveProgressiveScaleOverlayBindingV2()` connects each execution
|
|
365
|
+
tier to the production `@agentplat/mesh/overlay` profile with the same peer,
|
|
366
|
+
interaction and sparse-degree bounds. The additive
|
|
367
|
+
`createCollectiveProgressiveScalePeerRoutingV2()` helper constructs one peer's
|
|
368
|
+
bounded active/reserve view and exact outbound interaction quota without
|
|
369
|
+
materializing the plan's global population or topology. Existing progressive
|
|
370
|
+
scale V1 artifacts and digests are unchanged.
|
|
371
|
+
|
|
372
|
+
## Sharded simulation and scale interoperability
|
|
373
|
+
|
|
374
|
+
The root package also exports a transport-neutral environment bridge and three
|
|
375
|
+
closed logical-peer profiles: 500/5,000 interactions, 5,000/50,000 and
|
|
376
|
+
100,000/1,000,000. `createShardedSimulationAssignmentsV1()` partitions peers
|
|
377
|
+
and interactions without materializing a global topology, while
|
|
378
|
+
`shardedSimulationAssignmentForPeerV1()` resolves a peer's shard in constant
|
|
379
|
+
time.
|
|
380
|
+
|
|
381
|
+
Runner-visible ports cover partial observations, fenced effects, cross-shard
|
|
382
|
+
message batches and opaque evaluator-owned checkpoints. Success, recovery and
|
|
383
|
+
role-coherence metrics are available only through the separate evaluator port;
|
|
384
|
+
a runner cannot supply those verdicts. The in-memory bridge is a reference
|
|
385
|
+
composition surface, not a distributed deployment or scale claim.
|
|
386
|
+
|
|
387
|
+
Fault schedules are closed, bounded inputs interpreted at the driver boundary.
|
|
388
|
+
Failures, restarts, partitions, compromised or rogue actors and misleading or
|
|
389
|
+
conflicting observations alter the simulated interaction path and every
|
|
390
|
+
scheduled fault must be observed. External HTTP or gRPC bridges must return
|
|
391
|
+
exact digest-bound envelopes and preserve durable checkpoint anchors.
|
|
392
|
+
|
|
393
|
+
## Multi-domain environment adapters
|
|
394
|
+
|
|
395
|
+
The root export includes open descriptors and manifests for physical, social,
|
|
396
|
+
cyber and hybrid environments. A manifest binds implementation, schemas,
|
|
397
|
+
scenario, profile, seed, population, topology/transition/visibility/fault
|
|
398
|
+
policies and resource budgets. The reference bridge applies those scenario
|
|
399
|
+
budgets and population bounds before runner-visible operations.
|
|
400
|
+
|
|
401
|
+
`runMultiDomainAdapterConformanceV1()` rejects substitution of the requested
|
|
402
|
+
definition and exercises deterministic observations, undeclared capability and
|
|
403
|
+
stale-fence denial, checkpoint/restore after mutation, out-of-population
|
|
404
|
+
actions and byte bounds. Passing black-box conformance is a contract signal,
|
|
405
|
+
not proof of simulator fidelity or a completed scale run.
|
|
406
|
+
|
|
407
|
+
## Verified benchmark registry
|
|
408
|
+
|
|
409
|
+
Benchmark suites bind one exact multi-domain scenario, scale profile, seed,
|
|
410
|
+
budget and centralized baseline. Candidate metrics are derived from trace
|
|
411
|
+
facts; callers cannot submit a score. Verification additionally requires a
|
|
412
|
+
trusted evaluator evidence port for candidate and baseline trace provenance.
|
|
413
|
+
|
|
414
|
+
Leaderboards are suite-specific, deterministic and exclude invalid,
|
|
415
|
+
over-budget, duplicate or replayed-trace submissions from ranking. Source,
|
|
416
|
+
artifact and build locks are digest references: deployments remain responsible
|
|
417
|
+
for custody, evaluator independence and environment relevance.
|
|
418
|
+
|
|
419
|
+
## Scalable evaluation runtime
|
|
420
|
+
|
|
421
|
+
The `./scalable-evaluation` export provides a provider-neutral configuration
|
|
422
|
+
and accounting layer over the existing sharded simulation and multi-domain
|
|
423
|
+
environment contracts. Its `standard-500`, `large-5000`, and
|
|
424
|
+
`frontier-100000` profiles bind 500/5,000, 5,000/50,000, and
|
|
425
|
+
100,000/1,000,000 agent/interaction envelopes. Message count, message bytes,
|
|
426
|
+
interaction count, and the bounded retained-record tail are explicit budgets;
|
|
427
|
+
creating these values does not allocate agents or start a run.
|
|
428
|
+
|
|
429
|
+
Definitions bind physical, social, or cyber scenario manifests to an explicit
|
|
430
|
+
partial-observation policy and the benign, Byzantine, rogue, or context
|
|
431
|
+
poisoning perturbations selected by the evaluator. Target selectors stay
|
|
432
|
+
private and are represented publicly by cardinality and digest, preventing a
|
|
433
|
+
100,000-agent profile from materializing a global target list.
|
|
434
|
+
|
|
435
|
+
`InMemoryScalableEvaluationRuntimeV1` accepts strictly sequenced accounting
|
|
436
|
+
records and keeps aggregate counters by team and domain. The full history is
|
|
437
|
+
committed by a chain digest while only the configured tail remains in memory.
|
|
438
|
+
With the closed two-team, three-domain contract, retained state is
|
|
439
|
+
O(teams + domains + perturbations + tail) and is independent of the declared
|
|
440
|
+
agent population.
|
|
441
|
+
Recovery episodes compare provider-measured basis-point samples with a
|
|
442
|
+
pre-perturbation baseline and report the accounted interactions and messages
|
|
443
|
+
needed to return within tolerance. Injection and recovery receipts are signed
|
|
444
|
+
with Ed25519 and bind the exact definition, scenario, environment adapter,
|
|
445
|
+
provider authorization, team, session, episode, perturbation schedule and
|
|
446
|
+
sample identity. `WebCryptoScalableEvaluationEvidenceVerifierV1` captures the
|
|
447
|
+
platform verifier and its authorization/key resolvers at construction; caller
|
|
448
|
+
supplied crypto, structural boolean verifiers and non-canonical signatures are
|
|
449
|
+
rejected. The accounting runtime accepts only receipts branded by that verified
|
|
450
|
+
path, so a provider cannot turn an unsigned metric array into recovery evidence.
|
|
451
|
+
|
|
452
|
+
Both sides of a `team-vs-team` matchup implement the same
|
|
453
|
+
`ScalableEvaluationTeamPortV1`. A centralized controller can occupy either
|
|
454
|
+
side as a replaceable reference without receiving hidden environment state,
|
|
455
|
+
and the comparison output contains signed deltas rather than an inferred
|
|
456
|
+
winner. Environment binding validates the exact multi-domain scenario before
|
|
457
|
+
returning its bridge; it does not start sessions, invoke team callbacks, or
|
|
458
|
+
execute an evaluation campaign.
|
|
459
|
+
|
|
460
|
+
`runScalableEvaluationV1()` routes every team message through the environment
|
|
461
|
+
delivery ingress, including messages whose source and destination currently
|
|
462
|
+
share a shard. Accounting advances only after an exact digest-bound ACK names
|
|
463
|
+
every expected event; there is no local synthetic-delivery shortcut. A message
|
|
464
|
+
also carries a complete bounded `transportEnvelope` and its digest. The batch
|
|
465
|
+
commits that envelope digest, the ACK commits the exact `batchDigest`, and only
|
|
466
|
+
after validating that complete binding does the runner hand the envelope to
|
|
467
|
+
the team's acknowledged-message ingress. A port that emits messages but
|
|
468
|
+
supplies no ingress fails closed.
|
|
469
|
+
|
|
470
|
+
The reference integrated adapter connects genuine
|
|
471
|
+
`@agentplat/collective-host/reference-integrated-stack` instances to the same
|
|
472
|
+
team port. `ReferenceIntegratedScalableEvaluationEgressRuntimeV1` installs a
|
|
473
|
+
real sparse peer plane with a nominal delivery queue, preserving the exact
|
|
474
|
+
recipient indexes chosen by the overlay. The same egress is the stack's
|
|
475
|
+
recovery-aware assignment authority: protected commits stop in an idempotent
|
|
476
|
+
action outbox, and the outer runner is the only component that applies those
|
|
477
|
+
actions to the evaluation environment. Peer binding checks the stack's private
|
|
478
|
+
construction brand and exact plane/authority object identities; callback-shaped
|
|
479
|
+
lookalikes, effect mappers and invented routing targets are not accepted. The
|
|
480
|
+
reserved implementation ID
|
|
481
|
+
`agentplat.reference-integrated-collective-stack.v1` is accepted only from this
|
|
482
|
+
nominal factory path.
|
|
483
|
+
|
|
484
|
+
The delivery capture and action outbox in this reference egress are bounded,
|
|
485
|
+
in-memory state for one evaluation process. They are not a production durable
|
|
486
|
+
transport or protected-effect sink, so this particular port remains suitable
|
|
487
|
+
only for the non-durable runner path. `runScalableEvaluationV1()` also has an
|
|
488
|
+
explicit restart-durable mode: supply both `durableStore` and `runId`, plus
|
|
489
|
+
restart-durable environment, team, perturbation, recovery and action-authority
|
|
490
|
+
ports. The runner rejects a partial declaration or a callback-shaped claim.
|
|
491
|
+
Providers opt in with a module-created
|
|
492
|
+
`ScalableEvaluationRestartDurabilityDeclarationV1`; the declaration identity
|
|
493
|
+
and the exact definition, adapter descriptor, sparse schedule, assignments,
|
|
494
|
+
shard count, baselines and team descriptors are bound into the checkpoint
|
|
495
|
+
configuration digest.
|
|
496
|
+
|
|
497
|
+
`ScalableEvaluationDurableCheckpointStoreV1` is provider-neutral and advances
|
|
498
|
+
one run by revision-and-digest CAS. A checkpoint carries the exact phase,
|
|
499
|
+
logical step/team/cursor, trace predecessor, active recoveries, a bounded
|
|
500
|
+
one-step saga, both environment checkpoints, both team checkpoints and the
|
|
501
|
+
canonical `ScalableEvaluationRuntimeStateV1`. Runtime state is independently
|
|
502
|
+
hash-chained by revision and predecessor and includes the two team states,
|
|
503
|
+
global and per-domain counters, baselines, perturbation observations,
|
|
504
|
+
recoveries, environment bindings and the configured accounting-record ring
|
|
505
|
+
with its physical cursor. Restore validates the definition and adapter binding
|
|
506
|
+
before installing any state.
|
|
507
|
+
|
|
508
|
+
The durable phase journal covers perturbation, observation, team step, each
|
|
509
|
+
action, each message, accounting, recovery and trace advance. Every external
|
|
510
|
+
operation has a stable content-derived operation ID and is reconciled before
|
|
511
|
+
the next phase is committed. Durable environment and team providers must be
|
|
512
|
+
able to restore the last committed checkpoint even if a newer orphan
|
|
513
|
+
checkpoint was created before a process failed, and must return the same
|
|
514
|
+
idempotent receipt when that operation is reconciled. Missing continuity,
|
|
515
|
+
restore or reconciliation fails closed; the runner never assumes process
|
|
516
|
+
memory or repeats an unreceipted effect.
|
|
517
|
+
|
|
518
|
+
The nominal transport envelope contains the exact `MeshSparseDeliveryV2` and
|
|
519
|
+
its authenticated content-addressed collective artifact; no callback rebuilds
|
|
520
|
+
either value. Post-ACK ingress validates their complete binding, stores and
|
|
521
|
+
re-reads the artifact through the genuine destination stack, then admits the
|
|
522
|
+
delivery to a bounded peer inbox. At the next peer step, ingress always calls
|
|
523
|
+
`MeshSparsePeerPlaneRuntimeV1.receive()` first, so routing, expiry, deduplication
|
|
524
|
+
and relay semantics run before `node.receive()` performs protocol and artifact
|
|
525
|
+
admission. Deferred causal predecessors remain queued rather than being
|
|
526
|
+
reported as delivered protocol state.
|
|
527
|
+
|
|
528
|
+
Each peer is owned by exactly one nominal team port, and mission binding checks
|
|
529
|
+
tenant, mesh, mission intent and objective together. A bounded per-step journal
|
|
530
|
+
records `prepared`, `node_mutated`, `output_staged`, `settled` or
|
|
531
|
+
`indeterminate`: exact retries return the staged output, while any mutation
|
|
532
|
+
that cannot be reconciled fails closed and is never executed again. Delivery
|
|
533
|
+
captures are released only after the target ingress receipt is bound to the
|
|
534
|
+
exact batch and ACK; effect captures are released only after the corresponding
|
|
535
|
+
terminal fenced environment request and receipt. This makes pending outbox
|
|
536
|
+
capacity reusable. The pending inbox and admitted-message idempotency window
|
|
537
|
+
are each capped at 65,536 entries, while each peer retains 64 step journals.
|
|
538
|
+
Terminal journals and their settlement records are pruned as the window rolls;
|
|
539
|
+
retries older than that window fail closed instead of re-executing. Egress
|
|
540
|
+
settlement retention is also explicitly bounded by `maximumSettledReceipts`.
|
|
541
|
+
These reference journals and receipts provide exact retry only inside one
|
|
542
|
+
evaluation process. Cross-process recovery uses the opt-in durable runner path
|
|
543
|
+
above and therefore requires implementations of its explicit checkpoint,
|
|
544
|
+
restore and reconciliation ports; the in-memory reference egress does not
|
|
545
|
+
claim those capabilities.
|
|
546
|
+
|
|
547
|
+
Durable state does not expand the declared population. A run remains limited
|
|
548
|
+
to two teams, three accounting domains, at most 16,384 sparse schedule steps,
|
|
549
|
+
1,024 actions and 1,024 messages (16 MiB total message bytes) per step, and a
|
|
550
|
+
single retained step saga. Public metadata remains capped at 64 KiB, depth 32
|
|
551
|
+
and 16,384 nodes. Runtime record retention is exactly
|
|
552
|
+
`maximumRetainedRecords`; durability declarations may advertise at most 64 MiB
|
|
553
|
+
per checkpoint, and the runner enforces the smallest capacity declared by the
|
|
554
|
+
store, environment bridge and either team port.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { type BudgetReservationV1, type CollectiveAuthorityStateV1, type GovernedActionPermitV1, type WorkContractV1 } from "@agentplat/collective-control";
|
|
2
|
+
import { type GovernedActionDispatchDecisionV1 } from "@agentplat/collective-control/actions";
|
|
3
|
+
import { MemoryCollectiveExecutionRepositoryV1 } from "@agentplat/collective-control/memory";
|
|
4
|
+
import { type ActionBinding, type ActionGrant, type ControlJsonObject } from "@agentplat/inference-control/tools";
|
|
5
|
+
import { type ActionGrantStateV1, type AssessmentRequestV1, type InferenceAssessmentV1, type InferenceControlStateV1 } from "@agentplat/inference-control";
|
|
6
|
+
import { type CollectiveEnvironmentPortV1, type CollectiveProtectedEffectAttemptV1, type CollectiveProtectedEffectReceiptV1 } from "@agentplat/collective-planning/evaluation";
|
|
7
|
+
import type { PlanningDigestV1 } from "@agentplat/collective-planning";
|
|
8
|
+
import { type EvidenceTrustStateV1, type TrustEligibilityDecisionV1, type TrustEligibilityRequestV1 } from "@agentplat/trust";
|
|
9
|
+
/**
|
|
10
|
+
* The current Mesh projection required to cross the governed action boundary.
|
|
11
|
+
* It deliberately contains no proposal, adaptive-role, or assignee lookup.
|
|
12
|
+
*/
|
|
13
|
+
export interface CollectiveClosedLoopCurrentMeshV1 {
|
|
14
|
+
readonly meshId: string;
|
|
15
|
+
readonly objectiveId: string;
|
|
16
|
+
readonly objectiveRevision: number;
|
|
17
|
+
readonly workItemId: string;
|
|
18
|
+
readonly workItemRevision: number;
|
|
19
|
+
readonly assignedPeerId: string;
|
|
20
|
+
readonly assignedInstanceId: string;
|
|
21
|
+
readonly assignmentAuthorityId: string;
|
|
22
|
+
readonly assignmentEpoch: number;
|
|
23
|
+
readonly authorityGeneration: number;
|
|
24
|
+
readonly fencingToken: string;
|
|
25
|
+
readonly leaseExpiresAtLogicalMs: number;
|
|
26
|
+
readonly objectiveTerminal: boolean;
|
|
27
|
+
readonly workTerminal: boolean;
|
|
28
|
+
}
|
|
29
|
+
export interface CollectiveClosedLoopEffectMetadataV1 {
|
|
30
|
+
readonly registrationDigest: PlanningDigestV1;
|
|
31
|
+
readonly missionIntentId: string;
|
|
32
|
+
readonly intentRevision: number;
|
|
33
|
+
readonly intentDigest: PlanningDigestV1;
|
|
34
|
+
readonly actionClass: string;
|
|
35
|
+
}
|
|
36
|
+
export interface CollectiveClosedLoopActionInputV1 {
|
|
37
|
+
/** A mandate already accepted by this exact authority state. */
|
|
38
|
+
readonly mandate: Parameters<MemoryCollectiveExecutionRepositoryV1["registerWork"]>[0]["mandate"];
|
|
39
|
+
readonly authorityState: CollectiveAuthorityStateV1;
|
|
40
|
+
/** Must have been derived from a current accepted Mesh assignment. */
|
|
41
|
+
readonly workContract: WorkContractV1;
|
|
42
|
+
readonly mesh: CollectiveClosedLoopCurrentMeshV1;
|
|
43
|
+
readonly environment: CollectiveEnvironmentPortV1;
|
|
44
|
+
readonly effect: CollectiveClosedLoopEffectMetadataV1;
|
|
45
|
+
readonly actionBinding: ActionBinding;
|
|
46
|
+
readonly actionInput: ControlJsonObject;
|
|
47
|
+
readonly trustState: EvidenceTrustStateV1;
|
|
48
|
+
readonly trustRequest: TrustEligibilityRequestV1;
|
|
49
|
+
/** State has a registered policy, current run and negotiated capability. */
|
|
50
|
+
readonly inferenceState: InferenceControlStateV1;
|
|
51
|
+
readonly assessmentRequest: AssessmentRequestV1;
|
|
52
|
+
readonly assessment: InferenceAssessmentV1;
|
|
53
|
+
readonly actionGrant: ActionGrantStateV1;
|
|
54
|
+
readonly logicalTimeMs: number;
|
|
55
|
+
readonly wallTime: string;
|
|
56
|
+
readonly gatewayId: string;
|
|
57
|
+
readonly reservationId: string;
|
|
58
|
+
readonly permitId: string;
|
|
59
|
+
readonly decisionId: string;
|
|
60
|
+
}
|
|
61
|
+
export interface CollectiveClosedLoopActionResultV1 {
|
|
62
|
+
/** Runner-owned wall time used to authorize this exact governed action. */
|
|
63
|
+
readonly authorizedAt: string;
|
|
64
|
+
readonly trustDecision: TrustEligibilityDecisionV1;
|
|
65
|
+
readonly inferenceState: InferenceControlStateV1;
|
|
66
|
+
readonly actionGrant: ActionGrant;
|
|
67
|
+
readonly budgetReservation: BudgetReservationV1;
|
|
68
|
+
readonly actionPermit: GovernedActionPermitV1;
|
|
69
|
+
readonly executionStateDigest: string;
|
|
70
|
+
readonly action: GovernedActionDispatchDecisionV1;
|
|
71
|
+
readonly effectAttempt: CollectiveProtectedEffectAttemptV1 | null;
|
|
72
|
+
readonly receipt: CollectiveProtectedEffectReceiptV1 | null;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Runs one protected action through real Trust, inference, Collective Control
|
|
76
|
+
* and the fenced evaluation sink. It is intentionally a one-shot composition
|
|
77
|
+
* boundary: callers produce observations/results outside this module.
|
|
78
|
+
*/
|
|
79
|
+
export declare function runCollectiveClosedLoopActionV1(input: CollectiveClosedLoopActionInputV1): Promise<CollectiveClosedLoopActionResultV1>;
|
|
80
|
+
//# sourceMappingURL=collective-closed-loop-action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collective-closed-loop-action.d.ts","sourceRoot":"","sources":["../src/collective-closed-loop-action.ts"],"names":[],"mappings":"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"}
|