@agentplat/mesh-conformance 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 CHANGED
@@ -5,10 +5,19 @@ adapters. The package performs no work on import, reads no ambient credentials
5
5
  and never creates or destroys resources without a caller factory.
6
6
 
7
7
  The root export owns the closed capability, case and report contracts.
8
- `./protocol`, `./transport`, `./durability`, `./rooms` and `./control` expose
9
- bounded runners. A passing report describes only the exact artifact,
10
- capabilities, fixtures and cases that were executed; it is not a security
11
- certification.
8
+ `./protocol`, `./transport`, `./durability`, `./rooms`, `./control` and
9
+ `./planning` expose bounded runners. A passing report describes only the exact
10
+ artifact, capabilities, fixtures and cases that were executed; it is not a
11
+ security certification.
12
+
13
+ The planning runner covers closed-record validation, scope narrowing,
14
+ dependency cycles, exact replay, snapshot scope/rollback, causal replanning,
15
+ stale fencing, assignment binding, public evidence and durable restart
16
+ high-waters. Its challenges are public and the supplied adapter owns each
17
+ assessment. It is executable adapter conformance, not cryptographic proof that
18
+ an implementation cannot special-case a fixture. Report validation recomputes
19
+ suite/fixture bindings, complete case coverage, capability disclosure, counts
20
+ and verdict.
12
21
 
13
22
  Runners receive an immutable caller seed and abort signal for every isolated
14
23
  factory invocation. Case, suite and cleanup timeouts are separate outcomes.
@@ -0,0 +1,117 @@
1
+ import { type PlanningDigestV1, type PlanningJson } from "@agentplat/collective-planning";
2
+ /** Version of the portable planning conformance contract. */
3
+ export declare const PLANNING_CONFORMANCE_VERSION_V1: 1;
4
+ /**
5
+ * Closed declarations. A declaration states which public case groups were
6
+ * executed; it never grants authority to a planner or its runner.
7
+ */
8
+ export declare const PLANNING_CONFORMANCE_CAPABILITIES_V1: readonly ["planning.portable", "planning.reducer", "planning.snapshot", "planning.replanning", "planning.fencing", "planning.mesh-projection", "planning.evaluation", "planning.durable"];
9
+ export type PlanningConformanceCapabilityV1 = (typeof PLANNING_CONFORMANCE_CAPABILITIES_V1)[number];
10
+ export declare const PLANNING_REQUIRED_CONFORMANCE_CAPABILITIES_V1: readonly ["planning.portable", "planning.reducer"];
11
+ export type PlanningConformanceCaseIdV1 = "planning.intent.closed-record" | "planning.proposal.scope-widening" | "planning.reducer.dependency-cycle" | "planning.reducer.exact-replay" | "planning.snapshot.cross-scope" | "planning.snapshot.rollback" | "planning.replanning.causal-predecessor" | "planning.fencing.stale-result" | "planning.mesh-projection.assignment-bound" | "planning.evaluation.public-artifact" | "planning.durable.restart-high-water";
12
+ export type PlanningConformanceExpectedVerdictV1 = "accepted" | "rejected";
13
+ export interface PlanningConformanceCaseDefinitionV1 {
14
+ readonly caseId: PlanningConformanceCaseIdV1;
15
+ readonly capability: PlanningConformanceCapabilityV1;
16
+ readonly expectedVerdict: PlanningConformanceExpectedVerdictV1;
17
+ readonly expectedReasonCode: string | null;
18
+ }
19
+ /** The complete public suite. Case identifiers and capability membership are closed. */
20
+ export declare const PLANNING_CONFORMANCE_CASES_V1: readonly [PlanningConformanceCaseDefinitionV1, PlanningConformanceCaseDefinitionV1, PlanningConformanceCaseDefinitionV1, PlanningConformanceCaseDefinitionV1, PlanningConformanceCaseDefinitionV1, PlanningConformanceCaseDefinitionV1, PlanningConformanceCaseDefinitionV1, PlanningConformanceCaseDefinitionV1, PlanningConformanceCaseDefinitionV1, PlanningConformanceCaseDefinitionV1, PlanningConformanceCaseDefinitionV1];
21
+ export interface PlanningConformanceChallengeV1 {
22
+ readonly schemaVersion: 1;
23
+ readonly caseId: PlanningConformanceCaseIdV1;
24
+ readonly fixtureDigest: PlanningDigestV1;
25
+ /** Public test data only. It must not contain keys, credentials or raw evidence. */
26
+ readonly input: PlanningJson;
27
+ }
28
+ export interface PlanningConformanceAssessmentV1 {
29
+ readonly schemaVersion: 1;
30
+ readonly caseId: PlanningConformanceCaseIdV1;
31
+ readonly fixtureDigest: PlanningDigestV1;
32
+ readonly verdict: PlanningConformanceExpectedVerdictV1;
33
+ readonly reasonCode: string | null;
34
+ /** Commitment to the implementation's public, redacted execution evidence. */
35
+ readonly evidenceDigest: PlanningDigestV1;
36
+ }
37
+ export interface PlanningConformanceFactoryContextV1 {
38
+ readonly seed: number;
39
+ readonly signal: AbortSignal;
40
+ }
41
+ /**
42
+ * The adapter is the only implementation-controlled execution boundary. The
43
+ * runner supplies all fixtures and checks its returned public assessment; it
44
+ * does not receive a private state handle, a persistence handle or authority.
45
+ * This is executable adapter conformance, not a cryptographic proof that an
46
+ * implementation cannot special-case a public fixture.
47
+ */
48
+ export interface PlanningConformanceAdapterV1 {
49
+ assess(challenge: PlanningConformanceChallengeV1, signal: AbortSignal): PlanningConformanceAssessmentV1 | Promise<PlanningConformanceAssessmentV1>;
50
+ cleanup?(): void | Promise<void>;
51
+ }
52
+ export type PlanningConformanceFactoryV1 = (context: PlanningConformanceFactoryContextV1) => PlanningConformanceAdapterV1 | Promise<PlanningConformanceAdapterV1>;
53
+ export interface PlanningConformanceOptionsV1 {
54
+ readonly factory: PlanningConformanceFactoryV1;
55
+ readonly declaredCapabilities: readonly PlanningConformanceCapabilityV1[];
56
+ readonly seed?: number;
57
+ readonly timeoutMs?: number;
58
+ readonly totalTimeoutMs?: number;
59
+ readonly cleanupTimeoutMs?: number;
60
+ readonly signal?: AbortSignal;
61
+ readonly clock?: () => number;
62
+ }
63
+ export interface PlanningConformanceCaseResultV1 {
64
+ readonly caseId: PlanningConformanceCaseIdV1;
65
+ readonly capability: PlanningConformanceCapabilityV1;
66
+ readonly outcome: "passed" | "failed" | "not_declared";
67
+ readonly reasonCode: string | null;
68
+ readonly durationMs: number;
69
+ readonly fixtureDigest: PlanningDigestV1;
70
+ readonly evidenceDigest: PlanningDigestV1 | null;
71
+ }
72
+ export interface PlanningConformanceReportV1 {
73
+ readonly schemaVersion: 1;
74
+ readonly conformanceVersion: 1;
75
+ readonly suiteDigest: PlanningDigestV1;
76
+ readonly fixtureManifestDigest: PlanningDigestV1;
77
+ readonly implementation: Readonly<{
78
+ name: string;
79
+ version: string;
80
+ }>;
81
+ readonly declaredCapabilities: readonly PlanningConformanceCapabilityV1[];
82
+ readonly seed: number;
83
+ readonly cases: readonly PlanningConformanceCaseResultV1[];
84
+ readonly counts: Readonly<{
85
+ passed: number;
86
+ failed: number;
87
+ notDeclared: number;
88
+ total: number;
89
+ }>;
90
+ readonly verdict: "passed" | "failed";
91
+ }
92
+ export interface PlanningConformanceReportInputV1 {
93
+ readonly implementation: Readonly<{
94
+ name: string;
95
+ version: string;
96
+ }>;
97
+ readonly declaredCapabilities: readonly PlanningConformanceCapabilityV1[];
98
+ readonly seed: number;
99
+ readonly cases: readonly PlanningConformanceCaseResultV1[];
100
+ }
101
+ /** Stable commitment to the public case definitions. */
102
+ export declare const PLANNING_CONFORMANCE_SUITE_DIGEST_V1: `sha256:${string}`;
103
+ /**
104
+ * Runs every case against a fresh caller-supplied adapter. No adapter is
105
+ * allowed to share implicit state between cases, and undeclared groups are
106
+ * recorded instead of silently omitted.
107
+ */
108
+ export declare function runPlanningConformanceV1(options: PlanningConformanceOptionsV1): Promise<readonly PlanningConformanceCaseResultV1[]>;
109
+ /** Builds a sealed, canonical public report from a complete suite execution. */
110
+ export declare function createPlanningConformanceReportV1(input: PlanningConformanceReportInputV1): PlanningConformanceReportV1;
111
+ /** Rejects a tampered, incomplete, undisclosed-capability or aggregate-inconsistent report. */
112
+ export declare function validatePlanningConformanceReportV1(value: unknown): PlanningConformanceReportV1;
113
+ /** Public deterministic fixtures; each one is a bounded, redacted challenge. */
114
+ export declare function createPlanningConformanceFixturesV1(): ReadonlyMap<PlanningConformanceCaseIdV1, PlanningConformanceChallengeV1>;
115
+ export declare function planningConformanceFixtureManifestDigestV1(): PlanningDigestV1;
116
+ export declare function validatePlanningConformanceAssessmentV1(value: unknown): PlanningConformanceAssessmentV1;
117
+ //# sourceMappingURL=planning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning.d.ts","sourceRoot":"","sources":["../src/planning.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAClB,MAAM,gCAAgC,CAAC;AAQxC,6DAA6D;AAC7D,eAAO,MAAM,+BAA+B,EAAG,CAAU,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,oCAAoC,2LAStC,CAAC;AAEZ,MAAM,MAAM,+BAA+B,GACzC,CAAC,OAAO,oCAAoC,CAAC,CAAC,MAAM,CAAC,CAAC;AAExD,eAAO,MAAM,6CAA6C,oDAGM,CAAC;AAEjE,MAAM,MAAM,2BAA2B,GACnC,+BAA+B,GAC/B,kCAAkC,GAClC,mCAAmC,GACnC,+BAA+B,GAC/B,+BAA+B,GAC/B,4BAA4B,GAC5B,wCAAwC,GACxC,+BAA+B,GAC/B,2CAA2C,GAC3C,qCAAqC,GACrC,qCAAqC,CAAC;AAE1C,MAAM,MAAM,oCAAoC,GAAG,UAAU,GAAG,UAAU,CAAC;AAE3E,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;IACrD,QAAQ,CAAC,eAAe,EAAE,oCAAoC,CAAC;IAC/D,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5C;AAED,wFAAwF;AACxF,eAAO,MAAM,6BAA6B,kaA8D0B,CAAC;AAErE,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACzC,oFAAoF;IACpF,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,oCAAoC,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,8EAA8E;IAC9E,QAAQ,CAAC,cAAc,EAAE,gBAAgB,CAAC;CAC3C;AAED,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAED;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C,MAAM,CACJ,SAAS,EAAE,8BAA8B,EACzC,MAAM,EAAE,WAAW,GAClB,+BAA+B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC9E,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClC;AAED,MAAM,MAAM,4BAA4B,GAAG,CACzC,OAAO,EAAE,mCAAmC,KACzC,4BAA4B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;AAE1E,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,OAAO,EAAE,4BAA4B,CAAC;IAC/C,QAAQ,CAAC,oBAAoB,EAAE,SAAS,+BAA+B,EAAE,CAAC;IAC1E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,+BAA+B;IAC9C,QAAQ,CAAC,MAAM,EAAE,2BAA2B,CAAC;IAC7C,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;IACrD,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,cAAc,CAAC;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,aAAa,EAAE,gBAAgB,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,qBAAqB,EAAE,gBAAgB,CAAC;IACjD,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,QAAQ,CAAC,oBAAoB,EAAE,SAAS,+BAA+B,EAAE,CAAC;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,+BAA+B,EAAE,CAAC;IAC3D,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACvC;AAED,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,CAAC,cAAc,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,QAAQ,CAAC,oBAAoB,EAAE,SAAS,+BAA+B,EAAE,CAAC;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,SAAS,+BAA+B,EAAE,CAAC;CAC5D;AAED,wDAAwD;AACxD,eAAO,MAAM,oCAAoC,oBAGpB,CAAC;AAE9B;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,SAAS,+BAA+B,EAAE,CAAC,CA0ErD;AA6LD,gFAAgF;AAChF,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,gCAAgC,GACtC,2BAA2B,CAsC7B;AAED,+FAA+F;AAC/F,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,OAAO,GACb,2BAA2B,CAwC7B;AAED,gFAAgF;AAChF,wBAAgB,mCAAmC,IAAI,WAAW,CAChE,2BAA2B,EAC3B,8BAA8B,CAC/B,CAeA;AAED,wBAAgB,0CAA0C,IAAI,gBAAgB,CAS7E;AAkHD,wBAAgB,uCAAuC,CACrD,KAAK,EAAE,OAAO,GACb,+BAA+B,CAoBjC"}
@@ -0,0 +1,656 @@
1
+ import { canonicalizePlanningJsonV1, deepFreezePlanning, sha256HexPlanningV1, } from "@agentplat/collective-planning";
2
+ import { awaitConformanceOperation, MeshConformanceCleanupError, runConformanceCleanup, } from "./runner.js";
3
+ /** Version of the portable planning conformance contract. */
4
+ export const PLANNING_CONFORMANCE_VERSION_V1 = 1;
5
+ /**
6
+ * Closed declarations. A declaration states which public case groups were
7
+ * executed; it never grants authority to a planner or its runner.
8
+ */
9
+ export const PLANNING_CONFORMANCE_CAPABILITIES_V1 = Object.freeze([
10
+ "planning.portable",
11
+ "planning.reducer",
12
+ "planning.snapshot",
13
+ "planning.replanning",
14
+ "planning.fencing",
15
+ "planning.mesh-projection",
16
+ "planning.evaluation",
17
+ "planning.durable",
18
+ ]);
19
+ export const PLANNING_REQUIRED_CONFORMANCE_CAPABILITIES_V1 = Object.freeze([
20
+ "planning.portable",
21
+ "planning.reducer",
22
+ ]);
23
+ /** The complete public suite. Case identifiers and capability membership are closed. */
24
+ export const PLANNING_CONFORMANCE_CASES_V1 = Object.freeze([
25
+ define("planning.intent.closed-record", "planning.portable", "rejected", "unknown_field"),
26
+ define("planning.proposal.scope-widening", "planning.portable", "rejected", "scope_widening"),
27
+ define("planning.reducer.dependency-cycle", "planning.reducer", "rejected", "dependency_cycle"),
28
+ define("planning.reducer.exact-replay", "planning.reducer", "accepted", null),
29
+ define("planning.snapshot.cross-scope", "planning.snapshot", "rejected", "snapshot_scope_mismatch"),
30
+ define("planning.snapshot.rollback", "planning.snapshot", "rejected", "snapshot_rollback"),
31
+ define("planning.replanning.causal-predecessor", "planning.replanning", "rejected", "causal_predecessor_missing"),
32
+ define("planning.fencing.stale-result", "planning.fencing", "rejected", "stale_fence"),
33
+ define("planning.mesh-projection.assignment-bound", "planning.mesh-projection", "rejected", "assignment_binding_mismatch"),
34
+ define("planning.evaluation.public-artifact", "planning.evaluation", "rejected", "private_evidence_disclosed"),
35
+ define("planning.durable.restart-high-water", "planning.durable", "accepted", null),
36
+ ]);
37
+ /** Stable commitment to the public case definitions. */
38
+ export const PLANNING_CONFORMANCE_SUITE_DIGEST_V1 = commitment({
39
+ schemaVersion: 1,
40
+ cases: PLANNING_CONFORMANCE_CASES_V1.map((entry) => ({ ...entry })),
41
+ });
42
+ /**
43
+ * Runs every case against a fresh caller-supplied adapter. No adapter is
44
+ * allowed to share implicit state between cases, and undeclared groups are
45
+ * recorded instead of silently omitted.
46
+ */
47
+ export async function runPlanningConformanceV1(options) {
48
+ const normalizedOptions = normalizePlanningOptions(options);
49
+ const context = planningRunnerContext(normalizedOptions);
50
+ const capabilities = normalizeCapabilities(normalizedOptions.declaredCapabilities);
51
+ for (const capability of PLANNING_REQUIRED_CONFORMANCE_CAPABILITIES_V1) {
52
+ if (!capabilities.has(capability)) {
53
+ throw new TypeError("Required planning conformance capability is missing");
54
+ }
55
+ }
56
+ const fixtures = createPlanningConformanceFixturesV1();
57
+ return Object.freeze(await Promise.all(PLANNING_CONFORMANCE_CASES_V1.map(async (definition) => {
58
+ const challenge = fixtures.get(definition.caseId);
59
+ if (!capabilities.has(definition.capability)) {
60
+ return result(definition, "not_declared", null, 0, challenge.fixtureDigest, null);
61
+ }
62
+ let assessment;
63
+ const bounded = await runPlanningBoundedCase({
64
+ context,
65
+ run: async (signal) => {
66
+ const adapter = await awaitConformanceOperation(normalizedOptions.factory(Object.freeze({ seed: context.seed, signal })), signal);
67
+ assertAdapter(adapter);
68
+ let failure;
69
+ try {
70
+ assessment = validatePlanningConformanceAssessmentV1(await awaitConformanceOperation(adapter.assess(challenge, signal), signal));
71
+ assertAssessment(definition, challenge, assessment);
72
+ }
73
+ catch (error) {
74
+ failure = error;
75
+ }
76
+ await runConformanceCleanup(adapter.cleanup?.bind(adapter), context.cleanupTimeoutMs, failure);
77
+ if (failure !== undefined)
78
+ throw failure;
79
+ },
80
+ });
81
+ return result(definition, bounded.outcome === "passed" ? "passed" : "failed", bounded.outcome === "passed"
82
+ ? null
83
+ : (bounded.reasonCode ?? "assertion_failed"), bounded.durationMs, challenge.fixtureDigest, bounded.outcome === "passed"
84
+ ? (assessment?.evidenceDigest ?? null)
85
+ : null);
86
+ })));
87
+ }
88
+ function normalizePlanningOptions(input) {
89
+ const value = exactOptionRecord(input);
90
+ if (typeof value.factory !== "function") {
91
+ throw new TypeError("Planning conformance factory is required");
92
+ }
93
+ return Object.freeze({
94
+ factory: value.factory,
95
+ declaredCapabilities: value.declaredCapabilities,
96
+ ...(value.seed === undefined ? {} : { seed: value.seed }),
97
+ ...(value.timeoutMs === undefined
98
+ ? {}
99
+ : { timeoutMs: value.timeoutMs }),
100
+ ...(value.totalTimeoutMs === undefined
101
+ ? {}
102
+ : { totalTimeoutMs: value.totalTimeoutMs }),
103
+ ...(value.cleanupTimeoutMs === undefined
104
+ ? {}
105
+ : { cleanupTimeoutMs: value.cleanupTimeoutMs }),
106
+ ...(value.signal === undefined
107
+ ? {}
108
+ : { signal: value.signal }),
109
+ ...(value.clock === undefined
110
+ ? {}
111
+ : { clock: value.clock }),
112
+ });
113
+ }
114
+ function exactOptionRecord(input) {
115
+ if (!input ||
116
+ typeof input !== "object" ||
117
+ Array.isArray(input) ||
118
+ (Object.getPrototypeOf(input) !== Object.prototype &&
119
+ Object.getPrototypeOf(input) !== null) ||
120
+ Object.getOwnPropertySymbols(input).length !== 0)
121
+ throw new TypeError("Planning conformance options are invalid");
122
+ const required = ["declaredCapabilities", "factory"];
123
+ const permitted = [
124
+ ...required,
125
+ "cleanupTimeoutMs",
126
+ "clock",
127
+ "seed",
128
+ "signal",
129
+ "timeoutMs",
130
+ "totalTimeoutMs",
131
+ ];
132
+ const names = Object.getOwnPropertyNames(input);
133
+ if (names.some((name) => !permitted.includes(name)) ||
134
+ required.some((name) => !names.includes(name)))
135
+ throw new TypeError("Planning conformance options have unknown fields");
136
+ const result = Object.create(null);
137
+ for (const name of names) {
138
+ const descriptor = Object.getOwnPropertyDescriptor(input, name);
139
+ if (!descriptor || !descriptor.enumerable || !("value" in descriptor)) {
140
+ throw new TypeError("Planning conformance options have accessors");
141
+ }
142
+ result[name] = descriptor.value;
143
+ }
144
+ return Object.freeze(result);
145
+ }
146
+ function planningRunnerContext(options) {
147
+ const seed = integer(options.seed ?? 0, "seed", 0, 0xffff_ffff);
148
+ const timeoutMs = integer(options.timeoutMs ?? 5_000, "timeout", 10, 60_000);
149
+ const totalTimeoutMs = integer(options.totalTimeoutMs ?? 60_000, "suite timeout", 10, 300_000);
150
+ const cleanupTimeoutMs = integer(options.cleanupTimeoutMs ?? 2_000, "cleanup timeout", 10, 30_000);
151
+ if (options.signal !== undefined &&
152
+ !(options.signal instanceof AbortSignal)) {
153
+ throw new TypeError("Planning conformance abort signal is invalid");
154
+ }
155
+ if (options.clock !== undefined && typeof options.clock !== "function") {
156
+ throw new TypeError("Planning conformance clock is invalid");
157
+ }
158
+ return Object.freeze({
159
+ seed,
160
+ timeoutMs,
161
+ cleanupTimeoutMs,
162
+ deadline: monotonicNow() + totalTimeoutMs,
163
+ signal: options.signal,
164
+ clock: options.clock ?? Date.now,
165
+ });
166
+ }
167
+ async function runPlanningBoundedCase(input) {
168
+ const started = input.context.clock();
169
+ const remaining = Math.trunc(input.context.deadline - monotonicNow());
170
+ if (remaining <= 0)
171
+ return Object.freeze({
172
+ outcome: "failed",
173
+ reasonCode: "suite_timeout",
174
+ durationMs: 0,
175
+ });
176
+ const controller = new AbortController();
177
+ const relay = () => controller.abort(new PlanningConformanceAbort("aborted"));
178
+ input.context.signal?.addEventListener("abort", relay, { once: true });
179
+ let timer;
180
+ try {
181
+ if (input.context.signal?.aborted)
182
+ throw new PlanningConformanceAbort("aborted");
183
+ const timeoutReason = remaining <= input.context.timeoutMs ? "suite_timeout" : "timeout";
184
+ timer = setTimeout(() => controller.abort(new PlanningConformanceAbort(timeoutReason)), Math.min(remaining, input.context.timeoutMs));
185
+ await input.run(controller.signal);
186
+ if (controller.signal.aborted)
187
+ throw controller.signal.reason;
188
+ return Object.freeze({
189
+ outcome: "passed",
190
+ reasonCode: null,
191
+ durationMs: duration(started, input.context.clock()),
192
+ });
193
+ }
194
+ catch (error) {
195
+ return Object.freeze({
196
+ outcome: "failed",
197
+ reasonCode: planningFailureCode(error),
198
+ durationMs: duration(started, input.context.clock()),
199
+ });
200
+ }
201
+ finally {
202
+ if (timer !== undefined)
203
+ clearTimeout(timer);
204
+ input.context.signal?.removeEventListener("abort", relay);
205
+ }
206
+ }
207
+ class PlanningConformanceAbort extends Error {
208
+ code;
209
+ constructor(code) {
210
+ super(code);
211
+ this.code = code;
212
+ }
213
+ }
214
+ function planningFailureCode(error) {
215
+ if (error instanceof PlanningConformanceAbort)
216
+ return error.code;
217
+ if (error instanceof MeshConformanceCleanupError) {
218
+ return error.previousFailure instanceof PlanningConformanceAbort
219
+ ? `${error.previousFailure.code}_cleanup_failed`
220
+ : "cleanup_failed";
221
+ }
222
+ return "assertion_failed";
223
+ }
224
+ function duration(started, ended) {
225
+ const value = Math.max(0, Math.trunc(ended - started));
226
+ return Number.isSafeInteger(value) ? Math.min(value, 60_000) : 60_000;
227
+ }
228
+ function monotonicNow() {
229
+ return globalThis.performance?.now() ?? Date.now();
230
+ }
231
+ /** Builds a sealed, canonical public report from a complete suite execution. */
232
+ export function createPlanningConformanceReportV1(input) {
233
+ exactRecord(input, [
234
+ "cases",
235
+ "declaredCapabilities",
236
+ "implementation",
237
+ "seed",
238
+ ]);
239
+ const capabilities = [
240
+ ...normalizeCapabilities(input.declaredCapabilities),
241
+ ].sort(compareAscii);
242
+ for (const capability of PLANNING_REQUIRED_CONFORMANCE_CAPABILITIES_V1) {
243
+ if (!capabilities.includes(capability))
244
+ throw new TypeError("Required planning conformance capability is missing");
245
+ }
246
+ const implementation = normalizeImplementation(input.implementation);
247
+ const seed = integer(input.seed, "seed", 0, 0xffff_ffff);
248
+ const cases = normalizeResults(input.cases, new Set(capabilities));
249
+ const counts = Object.freeze({
250
+ passed: cases.filter((entry) => entry.outcome === "passed").length,
251
+ failed: cases.filter((entry) => entry.outcome === "failed").length,
252
+ notDeclared: cases.filter((entry) => entry.outcome === "not_declared")
253
+ .length,
254
+ total: cases.length,
255
+ });
256
+ return Object.freeze({
257
+ schemaVersion: 1,
258
+ conformanceVersion: PLANNING_CONFORMANCE_VERSION_V1,
259
+ suiteDigest: PLANNING_CONFORMANCE_SUITE_DIGEST_V1,
260
+ fixtureManifestDigest: planningConformanceFixtureManifestDigestV1(),
261
+ implementation,
262
+ declaredCapabilities: Object.freeze(capabilities),
263
+ seed,
264
+ cases,
265
+ counts,
266
+ verdict: counts.failed === 0 ? "passed" : "failed",
267
+ });
268
+ }
269
+ /** Rejects a tampered, incomplete, undisclosed-capability or aggregate-inconsistent report. */
270
+ export function validatePlanningConformanceReportV1(value) {
271
+ exactRecord(value, [
272
+ "cases",
273
+ "conformanceVersion",
274
+ "counts",
275
+ "declaredCapabilities",
276
+ "fixtureManifestDigest",
277
+ "implementation",
278
+ "schemaVersion",
279
+ "seed",
280
+ "suiteDigest",
281
+ "verdict",
282
+ ]);
283
+ const report = value;
284
+ if (report.schemaVersion !== 1 ||
285
+ report.conformanceVersion !== PLANNING_CONFORMANCE_VERSION_V1 ||
286
+ report.suiteDigest !== PLANNING_CONFORMANCE_SUITE_DIGEST_V1 ||
287
+ report.fixtureManifestDigest !==
288
+ planningConformanceFixtureManifestDigestV1())
289
+ throw new TypeError("Planning conformance report binding is invalid");
290
+ const normalized = createPlanningConformanceReportV1({
291
+ implementation: report.implementation,
292
+ declaredCapabilities: report.declaredCapabilities,
293
+ seed: report.seed,
294
+ cases: report.cases,
295
+ });
296
+ exactRecord(report.counts, ["failed", "notDeclared", "passed", "total"]);
297
+ if (report.counts.passed !== normalized.counts.passed ||
298
+ report.counts.failed !== normalized.counts.failed ||
299
+ report.counts.notDeclared !== normalized.counts.notDeclared ||
300
+ report.counts.total !== normalized.counts.total ||
301
+ report.verdict !== normalized.verdict)
302
+ throw new TypeError("Planning conformance report aggregate is inconsistent");
303
+ return normalized;
304
+ }
305
+ /** Public deterministic fixtures; each one is a bounded, redacted challenge. */
306
+ export function createPlanningConformanceFixturesV1() {
307
+ const fixtures = PLANNING_CONFORMANCE_CASES_V1.map((definition) => {
308
+ const input = deepFreezePlanning(fixtureInput(definition.caseId));
309
+ return deepFreezePlanning({
310
+ schemaVersion: 1,
311
+ caseId: definition.caseId,
312
+ fixtureDigest: commitment({
313
+ schemaVersion: 1,
314
+ caseId: definition.caseId,
315
+ input,
316
+ }),
317
+ input,
318
+ });
319
+ });
320
+ return new Map(fixtures.map((fixture) => [fixture.caseId, fixture]));
321
+ }
322
+ export function planningConformanceFixtureManifestDigestV1() {
323
+ const fixtures = createPlanningConformanceFixturesV1();
324
+ return commitment({
325
+ schemaVersion: 1,
326
+ fixtures: PLANNING_CONFORMANCE_CASES_V1.map((definition) => ({
327
+ caseId: definition.caseId,
328
+ fixtureDigest: fixtures.get(definition.caseId).fixtureDigest,
329
+ })),
330
+ });
331
+ }
332
+ function fixtureInput(caseId) {
333
+ const common = { schemaVersion: 1, fixtureVersion: 1 };
334
+ switch (caseId) {
335
+ case "planning.intent.closed-record":
336
+ return Object.freeze({
337
+ ...common,
338
+ operation: "intent.validate",
339
+ intent: {
340
+ missionIntentId: "mission:planning-conformance",
341
+ revision: 1,
342
+ },
343
+ injectedAuthority: "must-not-be-accepted",
344
+ });
345
+ case "planning.proposal.scope-widening":
346
+ return Object.freeze({
347
+ ...common,
348
+ operation: "proposal.validate",
349
+ permittedCapabilityKeys: ["documents.write"],
350
+ proposalCapabilityKeys: ["documents.write", "root.admin"],
351
+ });
352
+ case "planning.reducer.dependency-cycle":
353
+ return Object.freeze({
354
+ ...common,
355
+ operation: "reducer.apply",
356
+ fragments: [
357
+ { fragmentId: "fragment:a", dependencies: ["fragment:b"] },
358
+ { fragmentId: "fragment:b", dependencies: ["fragment:a"] },
359
+ ],
360
+ });
361
+ case "planning.reducer.exact-replay":
362
+ return Object.freeze({
363
+ ...common,
364
+ operation: "reducer.replay",
365
+ commands: [
366
+ {
367
+ commandId: "command:1",
368
+ logicalTimeMs: 1,
369
+ kind: "observation.record",
370
+ },
371
+ {
372
+ commandId: "command:1",
373
+ logicalTimeMs: 1,
374
+ kind: "observation.record",
375
+ },
376
+ ],
377
+ });
378
+ case "planning.snapshot.cross-scope":
379
+ return Object.freeze({
380
+ ...common,
381
+ operation: "snapshot.restore",
382
+ snapshotScope: "tenant:one/policy:a/mission:one",
383
+ targetScope: "tenant:two/policy:a/mission:one",
384
+ snapshotGeneration: 4,
385
+ targetHighWater: 4,
386
+ });
387
+ case "planning.snapshot.rollback":
388
+ return Object.freeze({
389
+ ...common,
390
+ operation: "snapshot.restore",
391
+ snapshotScope: "tenant:one/policy:a/mission:one",
392
+ targetScope: "tenant:one/policy:a/mission:one",
393
+ snapshotGeneration: 3,
394
+ targetHighWater: 4,
395
+ });
396
+ case "planning.replanning.causal-predecessor":
397
+ return Object.freeze({
398
+ ...common,
399
+ operation: "replanning.apply",
400
+ triggerObservationDigest: null,
401
+ predecessorPlanDigest: null,
402
+ revisedPlanDigest: "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
403
+ });
404
+ case "planning.fencing.stale-result":
405
+ return Object.freeze({
406
+ ...common,
407
+ operation: "effect.apply",
408
+ currentFence: "fence:2",
409
+ resultFence: "fence:1",
410
+ workId: "work:planning-conformance",
411
+ });
412
+ case "planning.mesh-projection.assignment-bound":
413
+ return Object.freeze({
414
+ ...common,
415
+ operation: "mesh-projection.validate",
416
+ assignmentDigest: "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
417
+ extensionAssignmentDigest: "sha256:abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789",
418
+ });
419
+ case "planning.evaluation.public-artifact":
420
+ return Object.freeze({
421
+ ...common,
422
+ operation: "evaluation.artifact.validate",
423
+ artifact: {
424
+ traceDigest: "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
425
+ },
426
+ privateEvidence: "must-not-be-disclosed",
427
+ });
428
+ case "planning.durable.restart-high-water":
429
+ return Object.freeze({
430
+ ...common,
431
+ operation: "durability.reopen",
432
+ scope: "tenant:one/policy:a/mission:one",
433
+ expectedStateDigest: "sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef",
434
+ expectedFenceHighWater: 2,
435
+ });
436
+ }
437
+ }
438
+ export function validatePlanningConformanceAssessmentV1(value) {
439
+ exactRecord(value, [
440
+ "caseId",
441
+ "evidenceDigest",
442
+ "fixtureDigest",
443
+ "reasonCode",
444
+ "schemaVersion",
445
+ "verdict",
446
+ ]);
447
+ const assessment = value;
448
+ if (assessment.schemaVersion !== 1 ||
449
+ !caseDefinition(assessment.caseId) ||
450
+ !isDigest(assessment.fixtureDigest) ||
451
+ !isDigest(assessment.evidenceDigest) ||
452
+ !["accepted", "rejected"].includes(assessment.verdict) ||
453
+ (assessment.reasonCode !== null && !isReason(assessment.reasonCode)))
454
+ throw new TypeError("Planning conformance assessment is invalid");
455
+ return Object.freeze({ ...assessment });
456
+ }
457
+ function assertAssessment(definition, challenge, assessment) {
458
+ if (assessment.caseId !== definition.caseId ||
459
+ assessment.fixtureDigest !== challenge.fixtureDigest ||
460
+ assessment.verdict !== definition.expectedVerdict ||
461
+ assessment.reasonCode !== definition.expectedReasonCode)
462
+ throw new TypeError("Planning conformance assessment does not match public fixture");
463
+ }
464
+ function normalizeResults(values, capabilities) {
465
+ const candidates = ownArrayValues(values, PLANNING_CONFORMANCE_CASES_V1.length, "case results");
466
+ if (candidates.length !== PLANNING_CONFORMANCE_CASES_V1.length) {
467
+ throw new TypeError("Planning conformance case coverage is incomplete");
468
+ }
469
+ const fixtures = createPlanningConformanceFixturesV1();
470
+ const byId = new Map();
471
+ for (const candidate of candidates) {
472
+ exactRecord(candidate, [
473
+ "capability",
474
+ "caseId",
475
+ "durationMs",
476
+ "evidenceDigest",
477
+ "fixtureDigest",
478
+ "outcome",
479
+ "reasonCode",
480
+ ]);
481
+ const result = candidate;
482
+ if (byId.has(result.caseId))
483
+ throw new TypeError("Planning conformance case is duplicated");
484
+ byId.set(result.caseId, result);
485
+ }
486
+ return Object.freeze(PLANNING_CONFORMANCE_CASES_V1.map((definition) => {
487
+ const value = byId.get(definition.caseId);
488
+ if (!value)
489
+ throw new TypeError("Planning conformance case is missing");
490
+ const declared = capabilities.has(definition.capability);
491
+ if (value.caseId !== definition.caseId ||
492
+ value.capability !== definition.capability ||
493
+ !["passed", "failed", "not_declared"].includes(value.outcome) ||
494
+ !Number.isSafeInteger(value.durationMs) ||
495
+ value.durationMs < 0 ||
496
+ value.durationMs > 60_000 ||
497
+ value.fixtureDigest !==
498
+ fixtures.get(definition.caseId).fixtureDigest ||
499
+ (value.reasonCode !== null && !isReason(value.reasonCode)) ||
500
+ (value.evidenceDigest !== null && !isDigest(value.evidenceDigest)) ||
501
+ (!declared &&
502
+ (value.outcome !== "not_declared" ||
503
+ value.reasonCode !== null ||
504
+ value.evidenceDigest !== null)) ||
505
+ (declared && value.outcome === "not_declared") ||
506
+ (value.outcome === "passed" &&
507
+ (value.reasonCode !== null || value.evidenceDigest === null)) ||
508
+ (value.outcome === "failed" &&
509
+ (value.reasonCode === null || value.evidenceDigest !== null)))
510
+ throw new TypeError("Planning conformance case result is invalid");
511
+ return Object.freeze({ ...value });
512
+ }));
513
+ }
514
+ function result(definition, outcome, reasonCode, durationMs, fixtureDigest, evidenceDigest) {
515
+ return Object.freeze({
516
+ caseId: definition.caseId,
517
+ capability: definition.capability,
518
+ outcome,
519
+ reasonCode,
520
+ durationMs,
521
+ fixtureDigest,
522
+ evidenceDigest,
523
+ });
524
+ }
525
+ function normalizeCapabilities(values) {
526
+ const candidateValues = ownArrayValues(values, PLANNING_CONFORMANCE_CAPABILITIES_V1.length, "capabilities");
527
+ if (candidateValues.length > PLANNING_CONFORMANCE_CAPABILITIES_V1.length) {
528
+ throw new RangeError("Planning conformance capability count is invalid");
529
+ }
530
+ const result = new Set();
531
+ for (const candidate of candidateValues) {
532
+ if (typeof candidate !== "string") {
533
+ throw new TypeError("Planning conformance capability is invalid");
534
+ }
535
+ const value = candidate;
536
+ if (!PLANNING_CONFORMANCE_CAPABILITIES_V1.includes(value) ||
537
+ result.has(value)) {
538
+ throw new TypeError("Planning conformance capability is invalid");
539
+ }
540
+ result.add(value);
541
+ }
542
+ return result;
543
+ }
544
+ function normalizeImplementation(value) {
545
+ exactRecord(value, ["name", "version"]);
546
+ if (!isText(value.name, 128) ||
547
+ !/^[0-9A-Za-z][0-9A-Za-z.+-]{0,63}$/u.test(value.version)) {
548
+ throw new TypeError("Planning conformance implementation is invalid");
549
+ }
550
+ return Object.freeze({ name: value.name, version: value.version });
551
+ }
552
+ function assertAdapter(value) {
553
+ if (!value ||
554
+ typeof value !== "object" ||
555
+ (Object.getPrototypeOf(value) !== Object.prototype &&
556
+ Object.getPrototypeOf(value) !== null) ||
557
+ Object.getOwnPropertySymbols(value).length !== 0)
558
+ throw new TypeError("Planning conformance factory is invalid");
559
+ const names = Object.getOwnPropertyNames(value).sort(compareAscii);
560
+ if (names.length < 1 ||
561
+ names.length > 2 ||
562
+ names[0] !== "assess" ||
563
+ (names.length === 2 && names[1] !== "cleanup"))
564
+ throw new TypeError("Planning conformance factory is invalid");
565
+ const assess = Object.getOwnPropertyDescriptor(value, "assess");
566
+ const cleanup = Object.getOwnPropertyDescriptor(value, "cleanup");
567
+ if (!assess ||
568
+ !assess.enumerable ||
569
+ !("value" in assess) ||
570
+ typeof assess.value !== "function" ||
571
+ (cleanup !== undefined &&
572
+ (!cleanup.enumerable ||
573
+ !("value" in cleanup) ||
574
+ (cleanup.value !== undefined && typeof cleanup.value !== "function"))))
575
+ throw new TypeError("Planning conformance factory is invalid");
576
+ }
577
+ function define(caseId, capability, expectedVerdict, expectedReasonCode) {
578
+ return Object.freeze({
579
+ caseId,
580
+ capability,
581
+ expectedVerdict,
582
+ expectedReasonCode,
583
+ });
584
+ }
585
+ function caseDefinition(value) {
586
+ return PLANNING_CONFORMANCE_CASES_V1.find((definition) => definition.caseId === value);
587
+ }
588
+ function commitment(value) {
589
+ const encoded = new TextEncoder().encode(`agentplat.mesh-conformance/planning/v1\0${canonicalizePlanningJsonV1(value)}`);
590
+ return `sha256:${sha256HexPlanningV1(encoded)}`;
591
+ }
592
+ function exactRecord(value, keys) {
593
+ if (!value ||
594
+ typeof value !== "object" ||
595
+ Array.isArray(value) ||
596
+ (Object.getPrototypeOf(value) !== Object.prototype &&
597
+ Object.getPrototypeOf(value) !== null) ||
598
+ Object.getOwnPropertySymbols(value).length !== 0)
599
+ throw new TypeError("Planning conformance record is invalid");
600
+ const actual = Object.getOwnPropertyNames(value).sort(compareAscii);
601
+ const expected = [...keys].sort(compareAscii);
602
+ if (actual.length !== expected.length ||
603
+ actual.some((key, index) => key !== expected[index])) {
604
+ throw new TypeError("Planning conformance record has unknown fields");
605
+ }
606
+ for (const key of actual) {
607
+ const descriptor = Object.getOwnPropertyDescriptor(value, key);
608
+ if (!descriptor || !descriptor.enumerable || !("value" in descriptor)) {
609
+ throw new TypeError("Planning conformance record has accessors");
610
+ }
611
+ }
612
+ }
613
+ function ownArrayValues(value, maximum, label) {
614
+ if (!Array.isArray(value) ||
615
+ Object.getPrototypeOf(value) !== Array.prototype ||
616
+ value.length > maximum ||
617
+ Object.getOwnPropertySymbols(value).length !== 0)
618
+ throw new TypeError(`Planning conformance ${label} are invalid`);
619
+ const result = [];
620
+ const names = Object.getOwnPropertyNames(value);
621
+ if (names.length !== value.length + 1 || !names.includes("length")) {
622
+ throw new TypeError(`Planning conformance ${label} are sparse`);
623
+ }
624
+ for (let index = 0; index < value.length; index += 1) {
625
+ const descriptor = Object.getOwnPropertyDescriptor(value, String(index));
626
+ if (!descriptor || !descriptor.enumerable || !("value" in descriptor)) {
627
+ throw new TypeError(`Planning conformance ${label} have accessors`);
628
+ }
629
+ result.push(descriptor.value);
630
+ }
631
+ return Object.freeze(result);
632
+ }
633
+ function integer(value, label, minimum, maximum) {
634
+ if (!Number.isSafeInteger(value) ||
635
+ value < minimum ||
636
+ value > maximum) {
637
+ throw new RangeError(`Planning conformance ${label} is invalid`);
638
+ }
639
+ return value;
640
+ }
641
+ function isDigest(value) {
642
+ return typeof value === "string" && /^sha256:[a-f0-9]{64}$/u.test(value);
643
+ }
644
+ function isReason(value) {
645
+ return typeof value === "string" && /^[a-z][a-z0-9._:-]{0,63}$/u.test(value);
646
+ }
647
+ function isText(value, maximum) {
648
+ return (typeof value === "string" &&
649
+ value.length > 0 &&
650
+ new TextEncoder().encode(value).byteLength <= maximum &&
651
+ !/[\u0000-\u001f\u007f]/u.test(value));
652
+ }
653
+ function compareAscii(left, right) {
654
+ return left < right ? -1 : left > right ? 1 : 0;
655
+ }
656
+ //# sourceMappingURL=planning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planning.js","sourceRoot":"","sources":["../src/planning.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentplat/mesh-conformance",
3
- "version": "0.3.0-beta.2",
3
+ "version": "0.3.0-beta.4",
4
4
  "description": "Provider-neutral compatibility runners for Agentplat Mesh adapters.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -31,6 +31,10 @@
31
31
  "./control": {
32
32
  "types": "./dist/control.d.ts",
33
33
  "import": "./dist/control.js"
34
+ },
35
+ "./planning": {
36
+ "types": "./dist/planning.d.ts",
37
+ "import": "./dist/planning.js"
34
38
  }
35
39
  },
36
40
  "files": [
@@ -38,11 +42,12 @@
38
42
  "README.md"
39
43
  ],
40
44
  "dependencies": {
41
- "@agentplat/collective-control": "^0.3.0-beta.2",
42
- "@agentplat/inference-control": "^0.3.0-beta.2",
43
- "@agentplat/mesh": "^0.3.0-beta.2",
44
- "@agentplat/mesh-protocol": "^0.3.0-beta.2",
45
- "@agentplat/rooms-mesh": "^0.3.0-beta.2"
45
+ "@agentplat/collective-control": "^0.3.0-beta.4",
46
+ "@agentplat/collective-planning": "^0.3.0-beta.4",
47
+ "@agentplat/inference-control": "^0.3.0-beta.4",
48
+ "@agentplat/mesh": "^0.3.0-beta.4",
49
+ "@agentplat/rooms-mesh": "^0.3.0-beta.4",
50
+ "@agentplat/mesh-protocol": "^0.3.0-beta.4"
46
51
  },
47
52
  "engines": {
48
53
  "node": ">=20.19.3"