@agent-teams/docs-protocol-agent-teams 0.0.0 → 0.1.1
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/CHANGELOG.md +50 -0
- package/README.md +27 -2
- package/assets/catalog.json +1 -1
- package/assets/history/sha256-8711dbd6109740857c69462d218071818317a62949f08ecf8abdc6d6b736321f/caller.yml +14 -0
- package/assets/history/sha256-f8da49344c3b0e9f31235de2826b1b9b392afb84515ace6af4fb5fe580e3a714/caller.yml +14 -0
- package/assets/transition-catalog.json +1 -1
- package/dist/composition/qualification-cli.d.ts.map +1 -1
- package/dist/composition/qualification-cli.js +19 -3
- package/dist/composition/qualification-cli.js.map +1 -1
- package/dist/consumer-integration/adapters/cohort-v2-authority-validator.d.ts +5 -0
- package/dist/consumer-integration/adapters/cohort-v2-authority-validator.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/cohort-v2-authority-validator.js +361 -0
- package/dist/consumer-integration/adapters/cohort-v2-authority-validator.js.map +1 -0
- package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts +1 -0
- package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js +22 -4
- package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js.map +1 -1
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts +40 -1
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js +227 -0
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js.map +1 -1
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts +17 -5
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.js +123 -16
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.js.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts +2 -1
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.js +55 -16
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.js.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-restoration-evidence.d.ts +38 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-evidence.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-evidence.js +177 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-evidence.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-finalization.d.ts +10 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-finalization.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-finalization.js +95 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-finalization.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-lock.d.ts +3 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-lock.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-lock.js +104 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-lock.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-scope.d.ts +9 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-scope.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-scope.js +71 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-scope.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-selection.d.ts +9 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-selection.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-selection.js +35 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration-selection.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration.d.ts +12 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration.js +102 -0
- package/dist/consumer-integration/adapters/node-consumer-restoration.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts +33 -5
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js +111 -106
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.d.ts +20 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.js +89 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-source-proof.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-target.d.ts +11 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-target.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-target.js +60 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-target.js.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.d.ts +1 -1
- package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.js +2 -3
- package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.js.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.d.ts +19 -0
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.js +184 -44
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.js.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.d.ts +4 -0
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.js +64 -0
- package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v2.js.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts +19 -2
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js +65 -18
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.d.ts +13 -0
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.js +37 -0
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v2.js.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.d.ts +7 -0
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.js +12 -3
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.js.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.d.ts +3 -0
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.js +11 -0
- package/dist/consumer-integration/adapters/pnpm-runtime-closure-v2.js.map +1 -0
- package/dist/consumer-integration/application/model/consumer-restoration.d.ts +76 -0
- package/dist/consumer-integration/application/model/consumer-restoration.d.ts.map +1 -0
- package/dist/consumer-integration/application/model/consumer-restoration.js +2 -0
- package/dist/consumer-integration/application/model/consumer-restoration.js.map +1 -0
- package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts +19 -3
- package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts.map +1 -1
- package/dist/consumer-integration/application/policies/consumer-integration-assets.js +38 -4
- package/dist/consumer-integration/application/policies/consumer-integration-assets.js.map +1 -1
- package/dist/consumer-integration/application/policies/consumer-integration-desired-state.d.ts +3 -1
- package/dist/consumer-integration/application/policies/consumer-integration-desired-state.d.ts.map +1 -1
- package/dist/consumer-integration/application/policies/consumer-integration-desired-state.js +87 -0
- package/dist/consumer-integration/application/policies/consumer-integration-desired-state.js.map +1 -1
- package/dist/consumer-integration/application/policies/consumer-restoration-proof.d.ts +12 -0
- package/dist/consumer-integration/application/policies/consumer-restoration-proof.d.ts.map +1 -0
- package/dist/consumer-integration/application/policies/consumer-restoration-proof.js +123 -0
- package/dist/consumer-integration/application/policies/consumer-restoration-proof.js.map +1 -0
- package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.d.ts +13 -0
- package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.d.ts.map +1 -0
- package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.js +38 -0
- package/dist/consumer-integration/application/policies/qualified-docs-cohort-v2.js.map +1 -0
- package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.d.ts +3 -2
- package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.d.ts.map +1 -1
- package/dist/consumer-integration/application/ports/consumer-integration-planners.d.ts +4 -4
- package/dist/consumer-integration/application/ports/consumer-integration-planners.d.ts.map +1 -1
- package/dist/consumer-integration/application/ports/consumer-restoration.d.ts +24 -0
- package/dist/consumer-integration/application/ports/consumer-restoration.d.ts.map +1 -0
- package/dist/consumer-integration/application/ports/consumer-restoration.js +2 -0
- package/dist/consumer-integration/application/ports/consumer-restoration.js.map +1 -0
- package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts +44 -6
- package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts.map +1 -1
- package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.d.ts +39 -0
- package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.d.ts.map +1 -0
- package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.js +284 -0
- package/dist/consumer-integration/application/use-cases/compile-consumer-integration-v3.js.map +1 -0
- package/dist/consumer-integration/application/use-cases/plan-consumer-integration.d.ts +2 -2
- package/dist/consumer-integration/application/use-cases/plan-consumer-integration.d.ts.map +1 -1
- package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js +23 -153
- package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js.map +1 -1
- package/dist/consumer-integration/application/use-cases/run-consumer-integration.d.ts.map +1 -1
- package/dist/consumer-integration/application/use-cases/run-consumer-integration.js +10 -6
- package/dist/consumer-integration/application/use-cases/run-consumer-integration.js.map +1 -1
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts +11 -3
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts.map +1 -1
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js +188 -39
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js.map +1 -1
- package/dist/consumer-integration/composition/consumer-integration-cli.d.ts.map +1 -1
- package/dist/consumer-integration/composition/consumer-integration-cli.js +85 -15
- package/dist/consumer-integration/composition/consumer-integration-cli.js.map +1 -1
- package/dist/consumer-integration/composition/consumer-integration-planner.d.ts +6 -2
- package/dist/consumer-integration/composition/consumer-integration-planner.d.ts.map +1 -1
- package/dist/consumer-integration/composition/consumer-integration-planner.js +40 -3
- package/dist/consumer-integration/composition/consumer-integration-planner.js.map +1 -1
- package/dist/consumer-integration/composition/node-consumer-integration.d.ts +12 -0
- package/dist/consumer-integration/composition/node-consumer-integration.d.ts.map +1 -1
- package/dist/consumer-integration/composition/node-consumer-integration.js +17 -1
- package/dist/consumer-integration/composition/node-consumer-integration.js.map +1 -1
- package/dist/consumer-integration/composition/qualification-v3-boundary.d.ts +20 -0
- package/dist/consumer-integration/composition/qualification-v3-boundary.d.ts.map +1 -0
- package/dist/consumer-integration/composition/qualification-v3-boundary.js +29 -0
- package/dist/consumer-integration/composition/qualification-v3-boundary.js.map +1 -0
- package/dist/consumer-integration/domain/model.d.ts +61 -0
- package/dist/consumer-integration/domain/model.d.ts.map +1 -1
- package/dist/consumer-integration/generated/canonical-assets.d.ts +3 -2
- package/dist/consumer-integration/generated/canonical-assets.d.ts.map +1 -1
- package/dist/consumer-integration/generated/canonical-assets.js +3 -2
- package/dist/consumer-integration/generated/canonical-assets.js.map +1 -1
- package/dist/consumer-integration/index.d.ts +3 -1
- package/dist/consumer-integration/index.d.ts.map +1 -1
- package/dist/consumer-integration/index.js +1 -0
- package/dist/consumer-integration/index.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/qualification/index.d.ts +6 -0
- package/dist/qualification/index.d.ts.map +1 -1
- package/dist/qualification/index.js +3 -0
- package/dist/qualification/index.js.map +1 -1
- package/dist/qualification/qualification-v3-authority.d.ts +14 -0
- package/dist/qualification/qualification-v3-authority.d.ts.map +1 -0
- package/dist/qualification/qualification-v3-authority.js +5 -0
- package/dist/qualification/qualification-v3-authority.js.map +1 -0
- package/dist/qualification/qualification-v3-observer.d.ts +7 -0
- package/dist/qualification/qualification-v3-observer.d.ts.map +1 -0
- package/dist/qualification/qualification-v3-observer.js +22 -0
- package/dist/qualification/qualification-v3-observer.js.map +1 -0
- package/dist/qualification/qualification-v3-runner.d.ts +7 -0
- package/dist/qualification/qualification-v3-runner.d.ts.map +1 -0
- package/dist/qualification/qualification-v3-runner.js +95 -0
- package/dist/qualification/qualification-v3-runner.js.map +1 -0
- package/dist/qualification/v3-contract.d.ts +58 -0
- package/dist/qualification/v3-contract.d.ts.map +1 -0
- package/dist/qualification/v3-contract.js +2 -0
- package/dist/qualification/v3-contract.js.map +1 -0
- package/package.json +3 -3
- package/schemas/docs-consumer-integration-profile/v3.schema.json +68 -0
- package/schemas/docs-consumer-managed-state/v2.schema.json +120 -0
- package/schemas/docs-consumer-restoration-execution/v1.schema.json +124 -0
- package/schemas/docs-consumer-upgrade-execution/v1.schema.json +39 -3
- package/schemas/docs-protocol-qualification-receipt/v3.schema.json +118 -0
- package/schemas/qualified-docs-cohort/v2.schema.json +149 -0
- package/skills/docs/SKILL.md +8 -6
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { QUALIFIED_DOCS_COHORT_V2_PACKAGES } from "../consumer-integration/composition/qualification-v3-boundary.js";
|
|
3
|
+
import { observeDocsProtocolQualificationV3Lockfile } from "./qualification-v3-observer.js";
|
|
4
|
+
const NONZERO_SHA256 = /^sha256:(?!0{64}$)[0-9a-f]{64}$/u;
|
|
5
|
+
const PACKAGE_KEYS = QUALIFIED_DOCS_COHORT_V2_PACKAGES.map(({ key }) => key);
|
|
6
|
+
const CHECKS = Object.freeze([
|
|
7
|
+
"profile-v3",
|
|
8
|
+
"cohort-v2",
|
|
9
|
+
"five-package-closure",
|
|
10
|
+
"exact-package-versions",
|
|
11
|
+
"exact-package-integrities",
|
|
12
|
+
"schema-bindings-3-2-1",
|
|
13
|
+
"runtime-closure-digest"
|
|
14
|
+
]);
|
|
15
|
+
function canonicalJson(value) {
|
|
16
|
+
if (Array.isArray(value)) {
|
|
17
|
+
return `[${value.map(canonicalJson).join(",")}]`;
|
|
18
|
+
}
|
|
19
|
+
if (value !== null && typeof value === "object") {
|
|
20
|
+
return `{${Object.entries(value)
|
|
21
|
+
.toSorted(([left], [right]) => Buffer.compare(Buffer.from(left), Buffer.from(right)))
|
|
22
|
+
.map(([key, entry]) => `${JSON.stringify(key)}:${canonicalJson(entry)}`).join(",")}}`;
|
|
23
|
+
}
|
|
24
|
+
return JSON.stringify(value);
|
|
25
|
+
}
|
|
26
|
+
function digest(value) {
|
|
27
|
+
return `sha256:${createHash("sha256").update(canonicalJson(value)).digest("hex")}`;
|
|
28
|
+
}
|
|
29
|
+
function hasExactKeys(value, keys) {
|
|
30
|
+
return Object.keys(value).toSorted().join("\u0000") === [...keys].toSorted().join("\u0000");
|
|
31
|
+
}
|
|
32
|
+
function assertEvidenceShape(evidence) {
|
|
33
|
+
if (!hasExactKeys(evidence, ["packages", "schemas", "runtimeClosureDigest"]) ||
|
|
34
|
+
!hasExactKeys(evidence.packages, PACKAGE_KEYS) ||
|
|
35
|
+
!hasExactKeys(evidence.schemas, ["consumerIntegration", "managedState", "docsProtocol"]) ||
|
|
36
|
+
!NONZERO_SHA256.test(evidence.runtimeClosureDigest)) {
|
|
37
|
+
throw new TypeError("Qualification v3 evidence is invalid or incomplete.");
|
|
38
|
+
}
|
|
39
|
+
for (const { key } of QUALIFIED_DOCS_COHORT_V2_PACKAGES) {
|
|
40
|
+
if (!hasExactKeys(evidence.packages[key], ["version", "integrity"])) {
|
|
41
|
+
throw new TypeError(`Qualification v3 package evidence for ${key} is invalid.`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Admits only explicit profile-v3 evidence for the closed five-package Cohort v2.
|
|
47
|
+
* Collection/execution belongs to the disposable public-registry canary lane.
|
|
48
|
+
*/
|
|
49
|
+
export function runDocsProtocolQualificationV3(request) {
|
|
50
|
+
const lockfileObservation = observeDocsProtocolQualificationV3Lockfile(request);
|
|
51
|
+
assertEvidenceShape(request.evidence);
|
|
52
|
+
const { cohort } = request.profile;
|
|
53
|
+
for (const { key, name } of QUALIFIED_DOCS_COHORT_V2_PACKAGES) {
|
|
54
|
+
const expected = cohort.packages[key];
|
|
55
|
+
const observed = request.evidence.packages[key];
|
|
56
|
+
if (observed.version !== expected.version) {
|
|
57
|
+
throw new Error(`Qualification v3 version mismatch for ${name}.`);
|
|
58
|
+
}
|
|
59
|
+
if (observed.integrity !== expected.integrity) {
|
|
60
|
+
throw new Error(`Qualification v3 integrity mismatch for ${name}.`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (request.evidence.schemas.consumerIntegration !== 3 ||
|
|
64
|
+
request.evidence.schemas.managedState !== 2 ||
|
|
65
|
+
request.evidence.schemas.docsProtocol !== 1) {
|
|
66
|
+
throw new Error("Qualification v3 requires exact schema bindings 3/2/1.");
|
|
67
|
+
}
|
|
68
|
+
if (request.evidence.runtimeClosureDigest !== cohort.runtime.runtimeClosureDigest) {
|
|
69
|
+
throw new Error("Qualification v3 runtime closure digest mismatch.");
|
|
70
|
+
}
|
|
71
|
+
if (lockfileObservation.runtimeClosureDigest !== cohort.runtime.runtimeClosureDigest) {
|
|
72
|
+
throw new Error("Qualification v3 lockfile runtime closure digest mismatch.");
|
|
73
|
+
}
|
|
74
|
+
const body = Object.freeze({
|
|
75
|
+
schemaVersion: 3,
|
|
76
|
+
cohortAdmissible: true,
|
|
77
|
+
profileSchemaVersion: 3,
|
|
78
|
+
cohort: Object.freeze({
|
|
79
|
+
schemaVersion: 2,
|
|
80
|
+
cohortId: cohort.cohortId,
|
|
81
|
+
recordDigest: cohort.recordDigest,
|
|
82
|
+
qualificationEventDigest: cohort.qualificationEventDigest
|
|
83
|
+
}),
|
|
84
|
+
packages: Object.freeze(QUALIFIED_DOCS_COHORT_V2_PACKAGES.map(({ key, name }) => Object.freeze({ key, name, ...cohort.packages[key] }))),
|
|
85
|
+
schemas: Object.freeze({
|
|
86
|
+
consumerIntegration: 3,
|
|
87
|
+
managedState: 2,
|
|
88
|
+
docsProtocol: 1
|
|
89
|
+
}),
|
|
90
|
+
runtime: Object.freeze({ runtimeClosureDigest: cohort.runtime.runtimeClosureDigest }),
|
|
91
|
+
checks: CHECKS
|
|
92
|
+
});
|
|
93
|
+
return Object.freeze({ ...body, receiptDigest: digest(body) });
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=qualification-v3-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qualification-v3-runner.js","sourceRoot":"","sources":["../../src/qualification/qualification-v3-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ConsumerIntegrationDesiredStateV3, QualifiedDocsCohortBindingV2 } from "../consumer-integration/composition/qualification-v3-boundary.js";
|
|
2
|
+
export type DocsProtocolQualificationCheckV3 = "profile-v3" | "cohort-v2" | "five-package-closure" | "exact-package-versions" | "exact-package-integrities" | "schema-bindings-3-2-1" | "runtime-closure-digest";
|
|
3
|
+
export type DocsProtocolQualificationPackageKeyV3 = keyof QualifiedDocsCohortBindingV2["packages"];
|
|
4
|
+
export interface DocsProtocolQualificationObservedPackageV3 {
|
|
5
|
+
readonly version: string;
|
|
6
|
+
readonly integrity: `sha512-${string}`;
|
|
7
|
+
}
|
|
8
|
+
/** Evidence observed by the release/canary lane, never inferred from installation shape. */
|
|
9
|
+
export interface DocsProtocolQualificationEvidenceV3 {
|
|
10
|
+
readonly packages: Readonly<Record<DocsProtocolQualificationPackageKeyV3, DocsProtocolQualificationObservedPackageV3>>;
|
|
11
|
+
readonly schemas: {
|
|
12
|
+
readonly consumerIntegration: number;
|
|
13
|
+
readonly managedState: number;
|
|
14
|
+
readonly docsProtocol: number;
|
|
15
|
+
};
|
|
16
|
+
readonly runtimeClosureDigest: `sha256:${string}`;
|
|
17
|
+
}
|
|
18
|
+
export interface DocsProtocolQualificationV3Request {
|
|
19
|
+
readonly profile: ConsumerIntegrationDesiredStateV3;
|
|
20
|
+
readonly evidence: DocsProtocolQualificationEvidenceV3;
|
|
21
|
+
readonly lockfileBytes: Uint8Array;
|
|
22
|
+
}
|
|
23
|
+
export interface DocsProtocolQualificationLockfileObservationV3Request {
|
|
24
|
+
readonly profile: ConsumerIntegrationDesiredStateV3;
|
|
25
|
+
readonly lockfileBytes: Uint8Array;
|
|
26
|
+
}
|
|
27
|
+
export interface DocsProtocolQualificationLockfileObservationV3 {
|
|
28
|
+
readonly runtimeClosureDigest: `sha256:${string}`;
|
|
29
|
+
}
|
|
30
|
+
export interface DocsProtocolQualificationPackageReceiptV3 {
|
|
31
|
+
readonly key: DocsProtocolQualificationPackageKeyV3;
|
|
32
|
+
readonly name: `@agent-teams/${string}`;
|
|
33
|
+
readonly version: string;
|
|
34
|
+
readonly integrity: `sha512-${string}`;
|
|
35
|
+
}
|
|
36
|
+
export interface DocsProtocolQualificationReceiptV3 {
|
|
37
|
+
readonly schemaVersion: 3;
|
|
38
|
+
readonly receiptDigest: `sha256:${string}`;
|
|
39
|
+
readonly cohortAdmissible: true;
|
|
40
|
+
readonly profileSchemaVersion: 3;
|
|
41
|
+
readonly cohort: {
|
|
42
|
+
readonly schemaVersion: 2;
|
|
43
|
+
readonly cohortId: string;
|
|
44
|
+
readonly recordDigest: `sha256:${string}`;
|
|
45
|
+
readonly qualificationEventDigest: `sha256:${string}`;
|
|
46
|
+
};
|
|
47
|
+
readonly packages: readonly DocsProtocolQualificationPackageReceiptV3[];
|
|
48
|
+
readonly schemas: {
|
|
49
|
+
readonly consumerIntegration: 3;
|
|
50
|
+
readonly managedState: 2;
|
|
51
|
+
readonly docsProtocol: 1;
|
|
52
|
+
};
|
|
53
|
+
readonly runtime: {
|
|
54
|
+
readonly runtimeClosureDigest: `sha256:${string}`;
|
|
55
|
+
};
|
|
56
|
+
readonly checks: readonly DocsProtocolQualificationCheckV3[];
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=v3-contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v3-contract.d.ts","sourceRoot":"","sources":["../../src/qualification/v3-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iCAAiC,EACjC,4BAA4B,EAC7B,MAAM,kEAAkE,CAAC;AAE1E,MAAM,MAAM,gCAAgC,GACxC,YAAY,GACZ,WAAW,GACX,sBAAsB,GACtB,wBAAwB,GACxB,2BAA2B,GAC3B,uBAAuB,GACvB,wBAAwB,CAAC;AAE7B,MAAM,MAAM,qCAAqC,GAC/C,MAAM,4BAA4B,CAAC,UAAU,CAAC,CAAC;AAEjD,MAAM,WAAW,0CAA0C;IACzD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,UAAU,MAAM,EAAE,CAAC;CACxC;AAED,4FAA4F;AAC5F,MAAM,WAAW,mCAAmC;IAClD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAChC,qCAAqC,EACrC,0CAA0C,CAC3C,CAAC,CAAC;IACH,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;QACrC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;KAC/B,CAAC;IACF,QAAQ,CAAC,oBAAoB,EAAE,UAAU,MAAM,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,OAAO,EAAE,iCAAiC,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE,mCAAmC,CAAC;IACvD,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;CACpC;AAED,MAAM,WAAW,qDAAqD;IACpE,QAAQ,CAAC,OAAO,EAAE,iCAAiC,CAAC;IACpD,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC;CACpC;AAED,MAAM,WAAW,8CAA8C;IAC7D,QAAQ,CAAC,oBAAoB,EAAE,UAAU,MAAM,EAAE,CAAC;CACnD;AAED,MAAM,WAAW,yCAAyC;IACxD,QAAQ,CAAC,GAAG,EAAE,qCAAqC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,UAAU,MAAM,EAAE,CAAC;CACxC;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,aAAa,EAAE,UAAU,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,gBAAgB,EAAE,IAAI,CAAC;IAChC,QAAQ,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE;QACf,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;QAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,YAAY,EAAE,UAAU,MAAM,EAAE,CAAC;QAC1C,QAAQ,CAAC,wBAAwB,EAAE,UAAU,MAAM,EAAE,CAAC;KACvD,CAAC;IACF,QAAQ,CAAC,QAAQ,EAAE,SAAS,yCAAyC,EAAE,CAAC;IACxE,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAChC,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;QACzB,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;KAC1B,CAAC;IACF,QAAQ,CAAC,OAAO,EAAE;QAChB,QAAQ,CAAC,oBAAoB,EAAE,UAAU,MAAM,EAAE,CAAC;KACnD,CAAC;IACF,QAAQ,CAAC,MAAM,EAAE,SAAS,gCAAgC,EAAE,CAAC;CAC9D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v3-contract.js","sourceRoot":"","sources":["../../src/qualification/v3-contract.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
"url": "https://github.com/agent-teams-ai/engineering-foundation/issues"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@agent-teams/docs-protocol": "0.
|
|
10
|
-
"@agent-teams/repository-mutation": "0.
|
|
9
|
+
"@agent-teams/docs-protocol": "0.5.1",
|
|
10
|
+
"@agent-teams/repository-mutation": "0.1.1",
|
|
11
11
|
"ajv": "8.20.0",
|
|
12
12
|
"jsonc-parser": "3.3.1",
|
|
13
13
|
"yaml": "2.9.0"
|
|
@@ -62,5 +62,5 @@
|
|
|
62
62
|
},
|
|
63
63
|
"sideEffects": false,
|
|
64
64
|
"type": "module",
|
|
65
|
-
"version": "0.
|
|
65
|
+
"version": "0.1.1"
|
|
66
66
|
}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agent-teams.ai/schemas/docs-consumer-integration-profile/v3",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": [
|
|
7
|
+
"schemaVersion",
|
|
8
|
+
"repository",
|
|
9
|
+
"integrationRoot",
|
|
10
|
+
"packageManager",
|
|
11
|
+
"profilePath",
|
|
12
|
+
"skillPath",
|
|
13
|
+
"callerWorkflowPath",
|
|
14
|
+
"managedStatePath",
|
|
15
|
+
"cohort",
|
|
16
|
+
"qualification"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"schemaVersion": { "const": 3 },
|
|
20
|
+
"repository": {
|
|
21
|
+
"type": "object",
|
|
22
|
+
"additionalProperties": false,
|
|
23
|
+
"required": ["provider", "id", "nameWithOwner"],
|
|
24
|
+
"properties": {
|
|
25
|
+
"provider": { "const": "github" },
|
|
26
|
+
"id": { "type": "string", "pattern": "^[1-9][0-9]*$" },
|
|
27
|
+
"nameWithOwner": {
|
|
28
|
+
"type": "string",
|
|
29
|
+
"pattern": "^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$"
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
"integrationRoot": { "const": "." },
|
|
34
|
+
"packageManager": { "const": "pnpm" },
|
|
35
|
+
"profilePath": { "const": "architecture/foundation/docs-protocol.yaml" },
|
|
36
|
+
"skillPath": { "const": ".agents/skills/docs-authoring/SKILL.md" },
|
|
37
|
+
"callerWorkflowPath": { "const": ".github/workflows/docs-protocol.yml" },
|
|
38
|
+
"managedStatePath": {
|
|
39
|
+
"const": "architecture/foundation/docs-protocol-managed-state.json"
|
|
40
|
+
},
|
|
41
|
+
"qualification": {
|
|
42
|
+
"type": "object",
|
|
43
|
+
"additionalProperties": false,
|
|
44
|
+
"required": ["contractPath", "gateCommand"],
|
|
45
|
+
"properties": {
|
|
46
|
+
"contractPath": {
|
|
47
|
+
"const": "architecture/foundation/docs-protocol-qualification.json"
|
|
48
|
+
},
|
|
49
|
+
"gateCommand": { "const": "pnpm docs:protocol:check" }
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
"governedDocsRoots": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"minItems": 1,
|
|
55
|
+
"maxItems": 32,
|
|
56
|
+
"uniqueItems": true,
|
|
57
|
+
"items": {
|
|
58
|
+
"type": "string",
|
|
59
|
+
"minLength": 1,
|
|
60
|
+
"maxLength": 512,
|
|
61
|
+
"pattern": "^(?!.*(?:^|/)\\.{1,2}(?:/|$))[A-Za-z0-9._@-]{1,255}(?:/[A-Za-z0-9._@-]{1,255})*$"
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"cohort": {
|
|
65
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/cohortBinding"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agent-teams.ai/schemas/docs-consumer-managed-state/v2",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": [
|
|
7
|
+
"schemaVersion",
|
|
8
|
+
"cohortId",
|
|
9
|
+
"cohortAuthority",
|
|
10
|
+
"repository",
|
|
11
|
+
"packages",
|
|
12
|
+
"schemas",
|
|
13
|
+
"runtime",
|
|
14
|
+
"profilePath",
|
|
15
|
+
"skillPath",
|
|
16
|
+
"callerWorkflowPath",
|
|
17
|
+
"managedStatePath",
|
|
18
|
+
"assets",
|
|
19
|
+
"stateDigest"
|
|
20
|
+
],
|
|
21
|
+
"properties": {
|
|
22
|
+
"schemaVersion": { "const": 2 },
|
|
23
|
+
"cohortId": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$"
|
|
26
|
+
},
|
|
27
|
+
"cohortAuthority": {
|
|
28
|
+
"type": "object",
|
|
29
|
+
"additionalProperties": false,
|
|
30
|
+
"required": [
|
|
31
|
+
"channel",
|
|
32
|
+
"recordDigest",
|
|
33
|
+
"qualificationEventDigest",
|
|
34
|
+
"eligibleAfter",
|
|
35
|
+
"upgradeFrom",
|
|
36
|
+
"rollbackTo"
|
|
37
|
+
],
|
|
38
|
+
"properties": {
|
|
39
|
+
"channel": { "enum": ["rc", "stable"] },
|
|
40
|
+
"recordDigest": {
|
|
41
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/nonzeroSha256"
|
|
42
|
+
},
|
|
43
|
+
"qualificationEventDigest": {
|
|
44
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/nonzeroSha256"
|
|
45
|
+
},
|
|
46
|
+
"eligibleAfter": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
|
|
49
|
+
},
|
|
50
|
+
"upgradeFrom": {
|
|
51
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/cohortIds"
|
|
52
|
+
},
|
|
53
|
+
"rollbackTo": {
|
|
54
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/cohortIds"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"repository": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"additionalProperties": false,
|
|
61
|
+
"required": ["provider", "id", "nameWithOwner"],
|
|
62
|
+
"properties": {
|
|
63
|
+
"provider": { "const": "github" },
|
|
64
|
+
"id": { "type": "string", "pattern": "^[1-9][0-9]*$" },
|
|
65
|
+
"nameWithOwner": {
|
|
66
|
+
"type": "string",
|
|
67
|
+
"pattern": "^[A-Za-z0-9_.-]+/[A-Za-z0-9_.-]+$"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"packages": {
|
|
72
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/cohortCore/properties/packages"
|
|
73
|
+
},
|
|
74
|
+
"schemas": {
|
|
75
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/cohortCore/properties/schemas"
|
|
76
|
+
},
|
|
77
|
+
"runtime": {
|
|
78
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/cohortCore/properties/runtime"
|
|
79
|
+
},
|
|
80
|
+
"profilePath": { "type": "string", "minLength": 1 },
|
|
81
|
+
"skillPath": { "type": "string", "minLength": 1 },
|
|
82
|
+
"callerWorkflowPath": { "type": "string", "minLength": 1 },
|
|
83
|
+
"managedStatePath": { "type": "string", "minLength": 1 },
|
|
84
|
+
"assets": {
|
|
85
|
+
"type": "object",
|
|
86
|
+
"additionalProperties": false,
|
|
87
|
+
"required": [
|
|
88
|
+
"skillDigest",
|
|
89
|
+
"callerWorkflowDigest",
|
|
90
|
+
"assetCatalogDigest",
|
|
91
|
+
"transitionCatalogDigest",
|
|
92
|
+
"agentsRouteDigest",
|
|
93
|
+
"docsScriptsDigest"
|
|
94
|
+
],
|
|
95
|
+
"properties": {
|
|
96
|
+
"skillDigest": {
|
|
97
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/nonzeroSha256"
|
|
98
|
+
},
|
|
99
|
+
"callerWorkflowDigest": {
|
|
100
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/nonzeroSha256"
|
|
101
|
+
},
|
|
102
|
+
"assetCatalogDigest": {
|
|
103
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/nonzeroSha256"
|
|
104
|
+
},
|
|
105
|
+
"transitionCatalogDigest": {
|
|
106
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/nonzeroSha256"
|
|
107
|
+
},
|
|
108
|
+
"agentsRouteDigest": {
|
|
109
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/nonzeroSha256"
|
|
110
|
+
},
|
|
111
|
+
"docsScriptsDigest": {
|
|
112
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/nonzeroSha256"
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
"stateDigest": {
|
|
117
|
+
"$ref": "https://agent-teams.ai/schemas/qualified-docs-cohort/v2#/$defs/nonzeroSha256"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://agent-teams.ai/schemas/docs-consumer-restoration-execution/v1",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"additionalProperties": false,
|
|
6
|
+
"required": [
|
|
7
|
+
"schemaVersion",
|
|
8
|
+
"command",
|
|
9
|
+
"outcome",
|
|
10
|
+
"issues"
|
|
11
|
+
],
|
|
12
|
+
"properties": {
|
|
13
|
+
"schemaVersion": {
|
|
14
|
+
"const": 1
|
|
15
|
+
},
|
|
16
|
+
"command": {
|
|
17
|
+
"const": "consumer.restore"
|
|
18
|
+
},
|
|
19
|
+
"outcome": {
|
|
20
|
+
"enum": [
|
|
21
|
+
"blocked",
|
|
22
|
+
"restored",
|
|
23
|
+
"activated-v1"
|
|
24
|
+
]
|
|
25
|
+
},
|
|
26
|
+
"issues": {
|
|
27
|
+
"type": "array",
|
|
28
|
+
"maxItems": 64,
|
|
29
|
+
"items": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"additionalProperties": false,
|
|
32
|
+
"required": [
|
|
33
|
+
"code",
|
|
34
|
+
"severity",
|
|
35
|
+
"subject",
|
|
36
|
+
"message"
|
|
37
|
+
],
|
|
38
|
+
"properties": {
|
|
39
|
+
"code": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"pattern": "^[A-Z0-9_]+$",
|
|
42
|
+
"maxLength": 128
|
|
43
|
+
},
|
|
44
|
+
"severity": {
|
|
45
|
+
"enum": [
|
|
46
|
+
"error",
|
|
47
|
+
"warning"
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
"subject": {
|
|
51
|
+
"type": "string",
|
|
52
|
+
"maxLength": 2048
|
|
53
|
+
},
|
|
54
|
+
"message": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"maxLength": 4096
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
"receipt": {
|
|
62
|
+
"$ref": "https://agent-teams.ai/schemas/known-file-transaction-receipt/v1"
|
|
63
|
+
},
|
|
64
|
+
"proofDigest": {
|
|
65
|
+
"$ref": "#/$defs/sha256"
|
|
66
|
+
},
|
|
67
|
+
"inversePlanDigest": {
|
|
68
|
+
"$ref": "#/$defs/sha256"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"$defs": {
|
|
72
|
+
"sha256": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"pattern": "^sha256:[0-9a-f]{64}$"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"allOf": [
|
|
78
|
+
{
|
|
79
|
+
"if": {
|
|
80
|
+
"properties": {
|
|
81
|
+
"outcome": {
|
|
82
|
+
"enum": [
|
|
83
|
+
"restored",
|
|
84
|
+
"activated-v1"
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
"then": {
|
|
90
|
+
"required": [
|
|
91
|
+
"proofDigest",
|
|
92
|
+
"inversePlanDigest"
|
|
93
|
+
],
|
|
94
|
+
"properties": {
|
|
95
|
+
"proofDigest": {
|
|
96
|
+
"$ref": "#/$defs/sha256"
|
|
97
|
+
},
|
|
98
|
+
"inversePlanDigest": {
|
|
99
|
+
"$ref": "#/$defs/sha256"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"if": {
|
|
106
|
+
"properties": {
|
|
107
|
+
"outcome": {
|
|
108
|
+
"const": "restored"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
"then": {
|
|
113
|
+
"required": [
|
|
114
|
+
"receipt"
|
|
115
|
+
],
|
|
116
|
+
"properties": {
|
|
117
|
+
"receipt": {
|
|
118
|
+
"$ref": "https://agent-teams.ai/schemas/known-file-transaction-receipt/v1"
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
"required": ["schemaVersion", "command", "outcome", "issues"],
|
|
7
7
|
"properties": {
|
|
8
8
|
"schemaVersion": { "const": 1 },
|
|
9
|
-
"command": { "
|
|
10
|
-
"outcome": { "enum": ["blocked", "current", "upgraded"] },
|
|
9
|
+
"command": { "enum": ["consumer.upgrade", "consumer.finalize"] },
|
|
10
|
+
"outcome": { "enum": ["blocked", "current", "upgraded", "prepared"] },
|
|
11
11
|
"issues": {
|
|
12
12
|
"type": "array",
|
|
13
13
|
"maxItems": 64,
|
|
@@ -36,9 +36,45 @@
|
|
|
36
36
|
"qualificationEventDigest": { "$ref": "#/$defs/sha256" }
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
|
+
"restoration": { "$ref": "#/$defs/retained" },
|
|
40
|
+
"preparation": { "$ref": "#/$defs/retained" },
|
|
39
41
|
"receipt": { "$ref": "https://agent-teams.ai/schemas/known-file-transaction-receipt/v1" }
|
|
40
42
|
},
|
|
41
43
|
"$defs": {
|
|
44
|
+
"retained": {
|
|
45
|
+
"type": "object", "additionalProperties": false, "required": ["path", "digest"],
|
|
46
|
+
"properties": {
|
|
47
|
+
"path": { "type": "string", "minLength": 1, "maxLength": 4096 },
|
|
48
|
+
"digest": { "$ref": "#/$defs/sha256" }
|
|
49
|
+
}
|
|
50
|
+
},
|
|
42
51
|
"sha256": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" }
|
|
43
|
-
}
|
|
52
|
+
},
|
|
53
|
+
"allOf": [
|
|
54
|
+
{
|
|
55
|
+
"if": { "properties": { "outcome": { "const": "prepared" } } },
|
|
56
|
+
"then": {
|
|
57
|
+
"required": ["preparation"],
|
|
58
|
+
"properties": {
|
|
59
|
+
"command": { "const": "consumer.upgrade" },
|
|
60
|
+
"preparation": { "$ref": "#/$defs/retained" },
|
|
61
|
+
"receipt": false, "restoration": false
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"if": { "properties": { "command": { "const": "consumer.finalize" } } },
|
|
67
|
+
"then": {
|
|
68
|
+
"properties": { "outcome": { "enum": ["blocked", "upgraded"] }, "preparation": false },
|
|
69
|
+
"if": { "properties": { "outcome": { "const": "upgraded" } } },
|
|
70
|
+
"then": {
|
|
71
|
+
"required": ["receipt", "restoration"],
|
|
72
|
+
"properties": {
|
|
73
|
+
"receipt": { "$ref": "https://agent-teams.ai/schemas/known-file-transaction-receipt/v1" },
|
|
74
|
+
"restoration": { "$ref": "#/$defs/retained" }
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
]
|
|
44
80
|
}
|