@agentplat/mesh-sim 0.3.0-beta.2 → 0.3.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { PlanningJson } from "@agentplat/collective-planning";
|
|
2
|
+
import { type CollectiveStatisticalCampaignArtifactIndexEntryV1, type CollectiveStatisticalCampaignArtifactKindV1 } from "./collective-statistical-campaign-bundle.js";
|
|
3
|
+
export declare const COLLECTIVE_STATISTICAL_CAMPAIGN_ARTIFACT_STREAM_SCHEMA_VERSION_V1: 1;
|
|
4
|
+
export interface CollectiveStatisticalCampaignArtifactReaderV1 {
|
|
5
|
+
readonly schemaVersion: 1;
|
|
6
|
+
/** Returns the complete logical artifact namespace visible to this reader. */
|
|
7
|
+
listArtifactIdsV1(): Promise<readonly string[]>;
|
|
8
|
+
/** Opens a fresh, ordered byte stream for one exact logical artifact. */
|
|
9
|
+
openArtifactV1(artifactId: string): AsyncIterable<Uint8Array>;
|
|
10
|
+
}
|
|
11
|
+
export interface CollectiveStatisticalCampaignArtifactWriterV1 {
|
|
12
|
+
readonly schemaVersion: 1;
|
|
13
|
+
/**
|
|
14
|
+
* Commits one immutable logical artifact. Same ID/same bytes is idempotent;
|
|
15
|
+
* same ID/different bytes must reject as a conflict.
|
|
16
|
+
*/
|
|
17
|
+
putArtifactV1(input: {
|
|
18
|
+
readonly artifactId: string;
|
|
19
|
+
readonly kind: CollectiveStatisticalCampaignArtifactKindV1;
|
|
20
|
+
readonly bytes: AsyncIterable<Uint8Array>;
|
|
21
|
+
readonly maximumBytes: number;
|
|
22
|
+
}): Promise<CollectiveStatisticalCampaignArtifactIndexEntryV1>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Writer used by protected operations. The trusted store clock must reject
|
|
26
|
+
* the mutation when the exact authorization deadline has been reached.
|
|
27
|
+
*/
|
|
28
|
+
export interface CollectiveStatisticalCampaignDeadlineArtifactWriterV1 extends CollectiveStatisticalCampaignArtifactWriterV1 {
|
|
29
|
+
putArtifactBeforeDeadlineV1(input: Parameters<CollectiveStatisticalCampaignArtifactWriterV1["putArtifactV1"]>[0] & Readonly<{
|
|
30
|
+
operationExpiresAtMs: number;
|
|
31
|
+
}>): Promise<CollectiveStatisticalCampaignArtifactIndexEntryV1>;
|
|
32
|
+
}
|
|
33
|
+
export interface CollectiveStatisticalCampaignArtifactStreamLimitsV1 {
|
|
34
|
+
readonly maximumArtifacts: number;
|
|
35
|
+
readonly maximumArtifactBytes: number;
|
|
36
|
+
readonly maximumTotalBytes: number;
|
|
37
|
+
}
|
|
38
|
+
export declare const DEFAULT_COLLECTIVE_STATISTICAL_CAMPAIGN_ARTIFACT_STREAM_LIMITS_V1: Readonly<{
|
|
39
|
+
maximumArtifacts: number;
|
|
40
|
+
maximumArtifactBytes: number;
|
|
41
|
+
maximumTotalBytes: number;
|
|
42
|
+
}>;
|
|
43
|
+
export interface CollectiveStatisticalCampaignArtifactStreamVisitV1 {
|
|
44
|
+
readonly schemaVersion: 1;
|
|
45
|
+
readonly index: CollectiveStatisticalCampaignArtifactIndexEntryV1;
|
|
46
|
+
readonly value: PlanningJson;
|
|
47
|
+
}
|
|
48
|
+
export interface CollectiveStatisticalCampaignArtifactStreamVerificationV1 {
|
|
49
|
+
readonly schemaVersion: 1;
|
|
50
|
+
readonly artifactCount: number;
|
|
51
|
+
readonly totalBytes: number;
|
|
52
|
+
readonly orderedArtifactIds: readonly string[];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Verifies an exact artifact closure one artifact at a time. Unlike the legacy
|
|
56
|
+
* in-memory verifier, this function never retains the complete bundle body.
|
|
57
|
+
* Callers may retain bounded, normalized projections from `visitArtifactV1`.
|
|
58
|
+
*/
|
|
59
|
+
export declare function verifyCollectiveStatisticalCampaignArtifactStreamV1(input: {
|
|
60
|
+
readonly schemaVersion: 1;
|
|
61
|
+
readonly artifacts: readonly CollectiveStatisticalCampaignArtifactIndexEntryV1[];
|
|
62
|
+
readonly reader: CollectiveStatisticalCampaignArtifactReaderV1;
|
|
63
|
+
readonly limits?: Partial<CollectiveStatisticalCampaignArtifactStreamLimitsV1>;
|
|
64
|
+
readonly visitArtifactV1?: (artifact: CollectiveStatisticalCampaignArtifactStreamVisitV1) => Promise<void> | void;
|
|
65
|
+
}): Promise<CollectiveStatisticalCampaignArtifactStreamVerificationV1>;
|
|
66
|
+
//# sourceMappingURL=collective-statistical-campaign-artifact-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collective-statistical-campaign-artifact-stream.d.ts","sourceRoot":"","sources":["../src/collective-statistical-campaign-artifact-stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,EAIL,KAAK,iDAAiD,EACtD,KAAK,2CAA2C,EACjD,MAAM,6CAA6C,CAAC;AAErD,eAAO,MAAM,iEAAiE,EAC5E,CAAU,CAAC;AAGb,MAAM,WAAW,6CAA6C;IAC5D,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,8EAA8E;IAC9E,iBAAiB,IAAI,OAAO,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAChD,yEAAyE;IACzE,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,6CAA6C;IAC5D,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE;QACnB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,IAAI,EAAE,2CAA2C,CAAC;QAC3D,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;QAC1C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;KAC/B,GAAG,OAAO,CAAC,iDAAiD,CAAC,CAAC;CAChE;AAED;;;GAGG;AACH,MAAM,WAAW,qDAAsD,SAAQ,6CAA6C;IAC1H,2BAA2B,CACzB,KAAK,EAAE,UAAU,CACf,6CAA6C,CAAC,eAAe,CAAC,CAC/D,CAAC,CAAC,CAAC,GACF,QAAQ,CAAC;QAAE,oBAAoB,EAAE,MAAM,CAAA;KAAE,CAAC,GAC3C,OAAO,CAAC,iDAAiD,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,mDAAmD;IAClE,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACpC;AAED,eAAO,MAAM,iEAAiE;;;;EAMZ,CAAC;AAEnE,MAAM,WAAW,kDAAkD;IACjE,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,iDAAiD,CAAC;IAClE,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,yDAAyD;IACxE,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,kBAAkB,EAAE,SAAS,MAAM,EAAE,CAAC;CAChD;AAED;;;;GAIG;AACH,wBAAsB,mDAAmD,CAAC,KAAK,EAAE;IAC/E,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,iDAAiD,EAAE,CAAC;IACjF,QAAQ,CAAC,MAAM,EAAE,6CAA6C,CAAC;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,mDAAmD,CAAC,CAAC;IAC/E,QAAQ,CAAC,eAAe,CAAC,EAAE,CACzB,QAAQ,EAAE,kDAAkD,KACzD,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3B,GAAG,OAAO,CAAC,yDAAyD,CAAC,CA+ErE"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
import { COLLECTIVE_STATISTICAL_CAMPAIGN_MAXIMUM_ARTIFACT_BYTES_V1, COLLECTIVE_STATISTICAL_CAMPAIGN_MAXIMUM_BUNDLE_BYTES_V1, digestCollectiveStatisticalCampaignArtifactV1, } from "./collective-statistical-campaign-bundle.js";
|
|
2
|
+
export const COLLECTIVE_STATISTICAL_CAMPAIGN_ARTIFACT_STREAM_SCHEMA_VERSION_V1 = 1;
|
|
3
|
+
const MAXIMUM_ARTIFACT_STREAM_CHUNKS_V1 = 65_536;
|
|
4
|
+
export const DEFAULT_COLLECTIVE_STATISTICAL_CAMPAIGN_ARTIFACT_STREAM_LIMITS_V1 = Object.freeze({
|
|
5
|
+
maximumArtifacts: 16_384,
|
|
6
|
+
maximumArtifactBytes: COLLECTIVE_STATISTICAL_CAMPAIGN_MAXIMUM_ARTIFACT_BYTES_V1,
|
|
7
|
+
maximumTotalBytes: COLLECTIVE_STATISTICAL_CAMPAIGN_MAXIMUM_BUNDLE_BYTES_V1,
|
|
8
|
+
});
|
|
9
|
+
/**
|
|
10
|
+
* Verifies an exact artifact closure one artifact at a time. Unlike the legacy
|
|
11
|
+
* in-memory verifier, this function never retains the complete bundle body.
|
|
12
|
+
* Callers may retain bounded, normalized projections from `visitArtifactV1`.
|
|
13
|
+
*/
|
|
14
|
+
export async function verifyCollectiveStatisticalCampaignArtifactStreamV1(input) {
|
|
15
|
+
if (!input || typeof input !== "object" || input.schemaVersion !== 1)
|
|
16
|
+
fail("artifact stream input is invalid");
|
|
17
|
+
const reader = input.reader;
|
|
18
|
+
if (!reader ||
|
|
19
|
+
typeof reader !== "object" ||
|
|
20
|
+
reader.schemaVersion !== 1 ||
|
|
21
|
+
typeof reader.listArtifactIdsV1 !== "function" ||
|
|
22
|
+
typeof reader.openArtifactV1 !== "function")
|
|
23
|
+
fail("artifact stream reader is invalid");
|
|
24
|
+
if (input.visitArtifactV1 !== undefined &&
|
|
25
|
+
typeof input.visitArtifactV1 !== "function")
|
|
26
|
+
fail("artifact stream visitor is invalid");
|
|
27
|
+
const limits = normalizeLimits(input.limits);
|
|
28
|
+
const artifacts = snapshotDenseArray(input.artifacts, limits.maximumArtifacts, "artifact stream index");
|
|
29
|
+
const indexed = new Map();
|
|
30
|
+
for (const entry of artifacts) {
|
|
31
|
+
validateIndexEntry(entry, limits.maximumArtifactBytes);
|
|
32
|
+
if (indexed.has(entry.artifactId))
|
|
33
|
+
fail(`artifact stream index has duplicate id: ${entry.artifactId}`);
|
|
34
|
+
indexed.set(entry.artifactId, entry);
|
|
35
|
+
}
|
|
36
|
+
const orderedArtifactIds = [...indexed.keys()].sort(compareAscii);
|
|
37
|
+
const listedInput = await reader.listArtifactIdsV1();
|
|
38
|
+
const listed = snapshotDenseArray(listedInput, limits.maximumArtifacts, "artifact stream reader index");
|
|
39
|
+
for (const artifactId of listed)
|
|
40
|
+
assertArtifactId(artifactId);
|
|
41
|
+
const listedSet = new Set(listed);
|
|
42
|
+
if (listedSet.size !== listed.length ||
|
|
43
|
+
listed.length !== orderedArtifactIds.length ||
|
|
44
|
+
orderedArtifactIds.some((artifactId) => !listedSet.has(artifactId)))
|
|
45
|
+
fail("artifact stream reader is not an exact index closure");
|
|
46
|
+
let totalBytes = 0;
|
|
47
|
+
for (const artifactId of orderedArtifactIds) {
|
|
48
|
+
const entry = indexed.get(artifactId);
|
|
49
|
+
const raw = await readBounded(reader.openArtifactV1(artifactId), entry.byteLength, limits.maximumArtifactBytes);
|
|
50
|
+
totalBytes += raw.byteLength;
|
|
51
|
+
if (totalBytes > limits.maximumTotalBytes)
|
|
52
|
+
fail("artifact stream exceeds total byte limit");
|
|
53
|
+
if ((await sha256Hex(raw)) !== entry.sha256)
|
|
54
|
+
fail(`artifact stream sha256 mismatch: ${artifactId}`);
|
|
55
|
+
const value = parseJson(raw, artifactId);
|
|
56
|
+
if (digestCollectiveStatisticalCampaignArtifactV1(entry.kind, value) !==
|
|
57
|
+
entry.canonicalDigest)
|
|
58
|
+
fail(`artifact stream canonical digest mismatch: ${artifactId}`);
|
|
59
|
+
await input.visitArtifactV1?.(Object.freeze({ schemaVersion: 1, index: entry, value }));
|
|
60
|
+
}
|
|
61
|
+
return Object.freeze({
|
|
62
|
+
schemaVersion: 1,
|
|
63
|
+
artifactCount: orderedArtifactIds.length,
|
|
64
|
+
totalBytes,
|
|
65
|
+
orderedArtifactIds: Object.freeze(orderedArtifactIds),
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
async function readBounded(stream, expectedBytes, maximumBytes) {
|
|
69
|
+
if (!stream || typeof stream[Symbol.asyncIterator] !== "function")
|
|
70
|
+
fail("artifact byte stream is invalid");
|
|
71
|
+
const result = new Uint8Array(expectedBytes);
|
|
72
|
+
let byteLength = 0;
|
|
73
|
+
let chunkCount = 0;
|
|
74
|
+
for await (const chunk of stream) {
|
|
75
|
+
chunkCount += 1;
|
|
76
|
+
if (chunkCount > MAXIMUM_ARTIFACT_STREAM_CHUNKS_V1 ||
|
|
77
|
+
!(chunk instanceof Uint8Array) ||
|
|
78
|
+
chunk.byteLength === 0)
|
|
79
|
+
fail("artifact stream chunk is invalid");
|
|
80
|
+
const nextByteLength = byteLength + chunk.byteLength;
|
|
81
|
+
if (nextByteLength > maximumBytes || nextByteLength > expectedBytes)
|
|
82
|
+
fail("artifact stream exceeds declared byte length");
|
|
83
|
+
result.set(chunk, byteLength);
|
|
84
|
+
byteLength = nextByteLength;
|
|
85
|
+
}
|
|
86
|
+
if (byteLength !== expectedBytes)
|
|
87
|
+
fail("artifact stream byte length does not match index");
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
function parseJson(bytes, artifactId) {
|
|
91
|
+
let text;
|
|
92
|
+
try {
|
|
93
|
+
text = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
fail(`artifact stream is not valid UTF-8: ${artifactId}`);
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
return JSON.parse(text);
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
fail(`artifact stream is not valid JSON: ${artifactId}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
function snapshotDenseArray(value, maximumItems, label) {
|
|
106
|
+
if (!Array.isArray(value) ||
|
|
107
|
+
Object.getPrototypeOf(value) !== Array.prototype ||
|
|
108
|
+
Object.getOwnPropertySymbols(value).length !== 0)
|
|
109
|
+
fail(`${label} is invalid`);
|
|
110
|
+
const lengthDescriptor = Object.getOwnPropertyDescriptor(value, "length");
|
|
111
|
+
if (!lengthDescriptor ||
|
|
112
|
+
!("value" in lengthDescriptor) ||
|
|
113
|
+
!Number.isSafeInteger(lengthDescriptor.value) ||
|
|
114
|
+
lengthDescriptor.value < 0 ||
|
|
115
|
+
lengthDescriptor.value > maximumItems)
|
|
116
|
+
fail(`${label} is invalid`);
|
|
117
|
+
const length = lengthDescriptor.value;
|
|
118
|
+
const names = Object.getOwnPropertyNames(value);
|
|
119
|
+
if (names.length !== length + 1 || !names.includes("length"))
|
|
120
|
+
fail(`${label} is invalid`);
|
|
121
|
+
const result = [];
|
|
122
|
+
for (let index = 0; index < length; index += 1) {
|
|
123
|
+
const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
|
|
124
|
+
if (!descriptor || !("value" in descriptor))
|
|
125
|
+
fail(`${label} is invalid`);
|
|
126
|
+
result.push(descriptor.value);
|
|
127
|
+
}
|
|
128
|
+
return Object.freeze(result);
|
|
129
|
+
}
|
|
130
|
+
async function sha256Hex(bytes) {
|
|
131
|
+
const crypto = globalThis.crypto;
|
|
132
|
+
if (!crypto?.subtle)
|
|
133
|
+
fail("artifact stream crypto is unavailable");
|
|
134
|
+
// Copy into an ArrayBuffer-backed view. TypeScript deliberately rejects a
|
|
135
|
+
// possibly SharedArrayBuffer-backed Uint8Array at the Web Crypto boundary.
|
|
136
|
+
const digest = await crypto.subtle.digest("SHA-256", Uint8Array.from(bytes));
|
|
137
|
+
return [...new Uint8Array(digest)]
|
|
138
|
+
.map((value) => value.toString(16).padStart(2, "0"))
|
|
139
|
+
.join("");
|
|
140
|
+
}
|
|
141
|
+
function normalizeLimits(input) {
|
|
142
|
+
if (input !== undefined && (!input || typeof input !== "object"))
|
|
143
|
+
fail("artifact stream limits are invalid");
|
|
144
|
+
const value = {
|
|
145
|
+
...DEFAULT_COLLECTIVE_STATISTICAL_CAMPAIGN_ARTIFACT_STREAM_LIMITS_V1,
|
|
146
|
+
...input,
|
|
147
|
+
};
|
|
148
|
+
for (const [name, maximum] of [
|
|
149
|
+
[
|
|
150
|
+
"maximumArtifacts",
|
|
151
|
+
DEFAULT_COLLECTIVE_STATISTICAL_CAMPAIGN_ARTIFACT_STREAM_LIMITS_V1.maximumArtifacts,
|
|
152
|
+
],
|
|
153
|
+
[
|
|
154
|
+
"maximumArtifactBytes",
|
|
155
|
+
DEFAULT_COLLECTIVE_STATISTICAL_CAMPAIGN_ARTIFACT_STREAM_LIMITS_V1.maximumArtifactBytes,
|
|
156
|
+
],
|
|
157
|
+
[
|
|
158
|
+
"maximumTotalBytes",
|
|
159
|
+
DEFAULT_COLLECTIVE_STATISTICAL_CAMPAIGN_ARTIFACT_STREAM_LIMITS_V1.maximumTotalBytes,
|
|
160
|
+
],
|
|
161
|
+
]) {
|
|
162
|
+
if (!Number.isSafeInteger(value[name]) ||
|
|
163
|
+
value[name] < 1 ||
|
|
164
|
+
value[name] > maximum)
|
|
165
|
+
fail(`artifact stream ${name} is invalid`);
|
|
166
|
+
}
|
|
167
|
+
if (value.maximumArtifactBytes > value.maximumTotalBytes)
|
|
168
|
+
fail("artifact stream artifact limit exceeds total limit");
|
|
169
|
+
return Object.freeze(value);
|
|
170
|
+
}
|
|
171
|
+
function validateIndexEntry(value, maximumArtifactBytes) {
|
|
172
|
+
if (!value || typeof value !== "object" || value.schemaVersion !== 1)
|
|
173
|
+
fail("artifact stream index entry is invalid");
|
|
174
|
+
assertArtifactId(value.artifactId);
|
|
175
|
+
if (typeof value.kind !== "string" ||
|
|
176
|
+
typeof value.path !== "string" ||
|
|
177
|
+
value.path.length < 1 ||
|
|
178
|
+
value.path.length > 512 ||
|
|
179
|
+
value.path.startsWith("/") ||
|
|
180
|
+
value.path.includes("\\") ||
|
|
181
|
+
value.path
|
|
182
|
+
.split("/")
|
|
183
|
+
.some((segment) => segment === "" || segment === "." || segment === ".."))
|
|
184
|
+
fail("artifact stream index path is invalid");
|
|
185
|
+
if (!Number.isSafeInteger(value.byteLength) ||
|
|
186
|
+
value.byteLength < 1 ||
|
|
187
|
+
value.byteLength > maximumArtifactBytes)
|
|
188
|
+
fail("artifact stream index byteLength is invalid");
|
|
189
|
+
if (!/^[0-9a-f]{64}$/u.test(value.sha256))
|
|
190
|
+
fail("artifact stream index sha256 is invalid");
|
|
191
|
+
if (!/^sha256:[0-9a-f]{64}$/u.test(value.canonicalDigest))
|
|
192
|
+
fail("artifact stream index canonical digest is invalid");
|
|
193
|
+
}
|
|
194
|
+
function assertArtifactId(value) {
|
|
195
|
+
if (typeof value !== "string" ||
|
|
196
|
+
value.length < 1 ||
|
|
197
|
+
value.length > 256 ||
|
|
198
|
+
!/^[A-Za-z0-9][A-Za-z0-9._:@/-]*$/u.test(value))
|
|
199
|
+
fail("artifact stream artifactId is invalid");
|
|
200
|
+
}
|
|
201
|
+
function compareAscii(left, right) {
|
|
202
|
+
return left < right ? -1 : left > right ? 1 : 0;
|
|
203
|
+
}
|
|
204
|
+
function fail(message) {
|
|
205
|
+
throw new TypeError(`collective_statistical_campaign_${message.replaceAll(" ", "_")}`);
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=collective-statistical-campaign-artifact-stream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collective-statistical-campaign-artifact-stream.js","sourceRoot":"","sources":["../src/collective-statistical-campaign-artifact-stream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { type PlanningDigestV1, type PlanningJson } from "@agentplat/collective-planning";
|
|
2
|
+
type JsonValue = PlanningJson;
|
|
3
|
+
export declare const COLLECTIVE_STATISTICAL_CAMPAIGN_MAXIMUM_ARTIFACT_BYTES_V1: number;
|
|
4
|
+
export declare const COLLECTIVE_STATISTICAL_CAMPAIGN_MAXIMUM_BUNDLE_BYTES_V1: number;
|
|
5
|
+
export type CollectiveStatisticalCampaignArtifactKindV1 = "source-lock" | "package-lock" | "fixture" | "policy" | "environment" | "observation-policy" | "monitor" | "hidden-canary" | "registration" | "manifest" | "sample" | "trace" | "ledger" | "metric-projection" | "evidence" | "comparison" | "summary";
|
|
6
|
+
export type CollectiveStatisticalCampaignRunnerV1 = "adaptive_collective" | "centralized_planner";
|
|
7
|
+
export type CollectiveStatisticalCampaignAttemptV1 = "first" | "replay";
|
|
8
|
+
export interface CollectiveStatisticalCampaignArtifactIndexEntryV1 {
|
|
9
|
+
readonly schemaVersion: 1;
|
|
10
|
+
readonly artifactId: string;
|
|
11
|
+
readonly kind: CollectiveStatisticalCampaignArtifactKindV1;
|
|
12
|
+
readonly path: string;
|
|
13
|
+
readonly byteLength: number;
|
|
14
|
+
/** SHA-256 of the exact supplied UTF-8/string or Uint8Array bytes. */
|
|
15
|
+
readonly sha256: string;
|
|
16
|
+
/** Digest of parsed canonical JSON, independent of presentation whitespace. */
|
|
17
|
+
readonly canonicalDigest: PlanningDigestV1;
|
|
18
|
+
}
|
|
19
|
+
export interface CollectiveStatisticalCampaignCellV1 {
|
|
20
|
+
readonly schemaVersion: 1;
|
|
21
|
+
readonly cellId: string;
|
|
22
|
+
readonly comparisonArtifactId: string;
|
|
23
|
+
}
|
|
24
|
+
export interface CollectiveStatisticalCampaignExpectedArtifactV1 {
|
|
25
|
+
readonly schemaVersion: 1;
|
|
26
|
+
readonly artifactId: string;
|
|
27
|
+
readonly kind: CollectiveStatisticalCampaignArtifactKindV1;
|
|
28
|
+
readonly cellId: string | null;
|
|
29
|
+
readonly seed: number | null;
|
|
30
|
+
readonly runner: CollectiveStatisticalCampaignRunnerV1 | null;
|
|
31
|
+
readonly attempt: CollectiveStatisticalCampaignAttemptV1 | null;
|
|
32
|
+
}
|
|
33
|
+
export interface CollectiveStatisticalCampaignSourceLockV1 {
|
|
34
|
+
readonly schemaVersion: 1;
|
|
35
|
+
readonly sourceCommit: string;
|
|
36
|
+
readonly sourceTreeDigest: PlanningDigestV1;
|
|
37
|
+
readonly dirtyWorktree: false;
|
|
38
|
+
}
|
|
39
|
+
export interface CollectiveStatisticalCampaignSampleV1 {
|
|
40
|
+
readonly schemaVersion: 1;
|
|
41
|
+
readonly cellId: string;
|
|
42
|
+
readonly seed: number;
|
|
43
|
+
readonly runner: CollectiveStatisticalCampaignRunnerV1;
|
|
44
|
+
readonly attempt: CollectiveStatisticalCampaignAttemptV1;
|
|
45
|
+
/** Failed executions are evidence and must remain in the closed bundle. */
|
|
46
|
+
readonly status: "passed" | "failed";
|
|
47
|
+
readonly traceArtifactId: string;
|
|
48
|
+
readonly ledgerArtifactId: string;
|
|
49
|
+
readonly evidenceArtifactId: string;
|
|
50
|
+
readonly outcome: JsonValue;
|
|
51
|
+
readonly sampleDigest: PlanningDigestV1;
|
|
52
|
+
}
|
|
53
|
+
export interface CollectiveStatisticalCampaignTraceV1 {
|
|
54
|
+
readonly schemaVersion: 1;
|
|
55
|
+
readonly sampleArtifactId: string;
|
|
56
|
+
readonly records: readonly JsonValue[];
|
|
57
|
+
readonly traceDigest: PlanningDigestV1;
|
|
58
|
+
}
|
|
59
|
+
export interface CollectiveStatisticalCampaignLedgerV1 {
|
|
60
|
+
readonly schemaVersion: 1;
|
|
61
|
+
readonly sampleArtifactId: string;
|
|
62
|
+
readonly records: readonly JsonValue[];
|
|
63
|
+
readonly ledgerDigest: PlanningDigestV1;
|
|
64
|
+
}
|
|
65
|
+
export interface CollectiveStatisticalCampaignEvidenceV1 {
|
|
66
|
+
readonly schemaVersion: 1;
|
|
67
|
+
readonly sampleArtifactId: string;
|
|
68
|
+
readonly sampleDigest: PlanningDigestV1;
|
|
69
|
+
readonly observations: readonly JsonValue[];
|
|
70
|
+
readonly evidenceDigest: PlanningDigestV1;
|
|
71
|
+
}
|
|
72
|
+
export interface CollectiveStatisticalCampaignComparisonV1 {
|
|
73
|
+
readonly schemaVersion: 1;
|
|
74
|
+
readonly cellId: string;
|
|
75
|
+
readonly adaptiveSampleArtifactIds: readonly string[];
|
|
76
|
+
readonly centralizedSampleArtifactIds: readonly string[];
|
|
77
|
+
readonly bootstrap: {
|
|
78
|
+
readonly schemaVersion: 1;
|
|
79
|
+
readonly seed: number;
|
|
80
|
+
readonly resamples: number;
|
|
81
|
+
};
|
|
82
|
+
readonly statistics: JsonValue;
|
|
83
|
+
readonly inputDigest: PlanningDigestV1;
|
|
84
|
+
readonly comparisonDigest: PlanningDigestV1;
|
|
85
|
+
}
|
|
86
|
+
export interface CollectiveStatisticalCampaignSummaryV1 {
|
|
87
|
+
readonly schemaVersion: 1;
|
|
88
|
+
readonly comparisonArtifactIds: readonly string[];
|
|
89
|
+
readonly status: "passed" | "failed";
|
|
90
|
+
readonly statistics: JsonValue;
|
|
91
|
+
readonly summaryDigest: PlanningDigestV1;
|
|
92
|
+
}
|
|
93
|
+
export interface CollectiveStatisticalCampaignBundleV1 {
|
|
94
|
+
readonly schemaVersion: 1;
|
|
95
|
+
readonly campaignId: string;
|
|
96
|
+
readonly sourceLockArtifactId: string;
|
|
97
|
+
readonly registrationArtifactId: string;
|
|
98
|
+
readonly manifestArtifactId: string;
|
|
99
|
+
readonly cells: readonly CollectiveStatisticalCampaignCellV1[];
|
|
100
|
+
readonly expectedArtifacts: readonly CollectiveStatisticalCampaignExpectedArtifactV1[];
|
|
101
|
+
readonly artifacts: readonly CollectiveStatisticalCampaignArtifactIndexEntryV1[];
|
|
102
|
+
readonly summaryArtifactId: string;
|
|
103
|
+
readonly bundleDigest: PlanningDigestV1;
|
|
104
|
+
}
|
|
105
|
+
export interface CollectiveStatisticalCampaignBundleBytesV1 {
|
|
106
|
+
readonly [artifactId: string]: Uint8Array | string;
|
|
107
|
+
}
|
|
108
|
+
export interface CollectiveStatisticalCampaignBundleVerificationHooksV1 {
|
|
109
|
+
/** Trusted provenance supplied outside the self-described bundle. */
|
|
110
|
+
readonly expectedSourceLock: Readonly<{
|
|
111
|
+
readonly sourceCommit: string;
|
|
112
|
+
readonly sourceTreeDigest: PlanningDigestV1;
|
|
113
|
+
}>;
|
|
114
|
+
readonly validateArtifact?: (kind: CollectiveStatisticalCampaignArtifactKindV1, value: JsonValue, context: Readonly<{
|
|
115
|
+
artifactId: string;
|
|
116
|
+
path: string;
|
|
117
|
+
}>) => void;
|
|
118
|
+
readonly recomputeComparisonStatistics: (comparison: CollectiveStatisticalCampaignComparisonV1, adaptive: readonly CollectiveStatisticalCampaignSampleV1[], centralized: readonly CollectiveStatisticalCampaignSampleV1[]) => JsonValue;
|
|
119
|
+
readonly recomputeSummaryStatistics: (summary: CollectiveStatisticalCampaignSummaryV1, comparisons: readonly CollectiveStatisticalCampaignComparisonV1[]) => JsonValue;
|
|
120
|
+
}
|
|
121
|
+
export interface CollectiveStatisticalCampaignBundleVerificationResultV1 {
|
|
122
|
+
readonly schemaVersion: 1;
|
|
123
|
+
readonly campaignId: string;
|
|
124
|
+
readonly registrationDigest: PlanningDigestV1;
|
|
125
|
+
readonly manifestDigest: PlanningDigestV1;
|
|
126
|
+
readonly artifactCount: number;
|
|
127
|
+
readonly sampleCount: number;
|
|
128
|
+
readonly comparisonCount: number;
|
|
129
|
+
readonly status: "passed" | "failed";
|
|
130
|
+
}
|
|
131
|
+
export declare function digestCollectiveStatisticalCampaignArtifactV1(kind: CollectiveStatisticalCampaignArtifactKindV1, value: JsonValue): PlanningDigestV1;
|
|
132
|
+
export declare function digestCollectiveStatisticalCampaignSampleV1(value: Omit<CollectiveStatisticalCampaignSampleV1, "sampleDigest">): PlanningDigestV1;
|
|
133
|
+
export declare function digestCollectiveStatisticalCampaignTraceV1(value: Omit<CollectiveStatisticalCampaignTraceV1, "traceDigest">): PlanningDigestV1;
|
|
134
|
+
export declare function digestCollectiveStatisticalCampaignLedgerV1(value: Omit<CollectiveStatisticalCampaignLedgerV1, "ledgerDigest">): PlanningDigestV1;
|
|
135
|
+
export declare function digestCollectiveStatisticalCampaignEvidenceV1(value: Omit<CollectiveStatisticalCampaignEvidenceV1, "evidenceDigest">): PlanningDigestV1;
|
|
136
|
+
export declare function digestCollectiveStatisticalCampaignComparisonInputV1(input: {
|
|
137
|
+
readonly cellId: string;
|
|
138
|
+
readonly adaptiveSampleDigests: readonly PlanningDigestV1[];
|
|
139
|
+
readonly centralizedSampleDigests: readonly PlanningDigestV1[];
|
|
140
|
+
readonly bootstrap: CollectiveStatisticalCampaignComparisonV1["bootstrap"];
|
|
141
|
+
}): PlanningDigestV1;
|
|
142
|
+
export declare function digestCollectiveStatisticalCampaignComparisonV1(value: Omit<CollectiveStatisticalCampaignComparisonV1, "comparisonDigest">): PlanningDigestV1;
|
|
143
|
+
export declare function digestCollectiveStatisticalCampaignSummaryV1(value: Omit<CollectiveStatisticalCampaignSummaryV1, "summaryDigest">): PlanningDigestV1;
|
|
144
|
+
export declare function digestCollectiveStatisticalCampaignBundleV1(value: Omit<CollectiveStatisticalCampaignBundleV1, "bundleDigest">): PlanningDigestV1;
|
|
145
|
+
/**
|
|
146
|
+
* Verifies a fully supplied in-memory bundle. Paths remain logical: this
|
|
147
|
+
* function performs no file-system or network access and trusts no summary.
|
|
148
|
+
*/
|
|
149
|
+
export declare function verifyCollectiveStatisticalCampaignBundleV1(bundleInput: unknown, suppliedBytesInput: unknown, hooksInput: CollectiveStatisticalCampaignBundleVerificationHooksV1): Promise<CollectiveStatisticalCampaignBundleVerificationResultV1>;
|
|
150
|
+
export {};
|
|
151
|
+
//# sourceMappingURL=collective-statistical-campaign-bundle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collective-statistical-campaign-bundle.d.ts","sourceRoot":"","sources":["../src/collective-statistical-campaign-bundle.ts"],"names":[],"mappings":"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"}
|