@agent-teams/docs-protocol 0.1.4 → 0.3.0
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 +19 -0
- package/README.md +70 -9
- package/assets/catalog.json +1 -1
- package/assets/transition-catalog.json +1 -1
- package/dist/adapters/docs-command-envelope-schema-validator.d.ts.map +1 -1
- package/dist/adapters/docs-command-envelope-schema-validator.js +30 -8
- package/dist/adapters/docs-command-envelope-schema-validator.js.map +1 -1
- package/dist/adapters/docs-profile-schema-validator.d.ts.map +1 -1
- package/dist/adapters/docs-profile-schema-validator.js +13 -7
- package/dist/adapters/docs-profile-schema-validator.js.map +1 -1
- package/dist/adapters/foundation-docs-port.d.ts +10 -9
- package/dist/adapters/foundation-docs-port.d.ts.map +1 -1
- package/dist/adapters/foundation-docs-port.js +15 -10
- package/dist/adapters/foundation-docs-port.js.map +1 -1
- package/dist/adapters/node-adoption-inspector.js +2 -2
- package/dist/adapters/node-adoption-inspector.js.map +1 -1
- package/dist/adapters/node-profile-reader.d.ts +3 -3
- package/dist/adapters/node-profile-reader.d.ts.map +1 -1
- package/dist/application/authority-handshake.d.ts +4 -4
- package/dist/application/authority-handshake.d.ts.map +1 -1
- package/dist/application/compiled-document.d.ts +11 -0
- package/dist/application/compiled-document.d.ts.map +1 -0
- package/dist/application/compiled-document.js +31 -0
- package/dist/application/compiled-document.js.map +1 -0
- package/dist/application/docs-new-completion.d.ts +5 -4
- package/dist/application/docs-new-completion.d.ts.map +1 -1
- package/dist/application/docs-new-completion.js.map +1 -1
- package/dist/application/docs-protocol-v1-presenter.d.ts +140 -0
- package/dist/application/docs-protocol-v1-presenter.d.ts.map +1 -0
- package/dist/application/docs-protocol-v1-presenter.js +77 -0
- package/dist/application/docs-protocol-v1-presenter.js.map +1 -0
- package/dist/application/docs-protocol.d.ts +210 -3
- package/dist/application/docs-protocol.d.ts.map +1 -1
- package/dist/application/docs-protocol.js +46 -13
- package/dist/application/docs-protocol.js.map +1 -1
- package/dist/composition/cli-input.d.ts +12 -0
- package/dist/composition/cli-input.d.ts.map +1 -0
- package/dist/composition/cli-input.js +66 -0
- package/dist/composition/cli-input.js.map +1 -0
- package/dist/composition/cli.d.ts +4 -4
- package/dist/composition/cli.d.ts.map +1 -1
- package/dist/composition/cli.js +21 -144
- package/dist/composition/cli.js.map +1 -1
- package/dist/composition/docs-human-renderer.d.ts +5 -0
- package/dist/composition/docs-human-renderer.d.ts.map +1 -0
- package/dist/composition/docs-human-renderer.js +94 -0
- package/dist/composition/docs-human-renderer.js.map +1 -0
- package/dist/composition/node-docs-api.d.ts +191 -0
- package/dist/composition/node-docs-api.d.ts.map +1 -1
- package/dist/composition/node-docs-api.js +18 -0
- package/dist/composition/node-docs-api.js.map +1 -1
- package/dist/composition/qualification-cli.d.ts +2 -0
- package/dist/composition/qualification-cli.d.ts.map +1 -0
- package/dist/composition/qualification-cli.js +119 -0
- package/dist/composition/qualification-cli.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 +12 -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 +10 -0
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js +110 -0
- package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js.map +1 -0
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts +21 -0
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.js +215 -0
- package/dist/consumer-integration/adapters/github-cohort-authority-reader.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.js +27 -95
- package/dist/consumer-integration/adapters/node-consumer-integration-repository.js.map +1 -1
- package/dist/consumer-integration/adapters/node-consumer-repository-files.d.ts +11 -0
- package/dist/consumer-integration/adapters/node-consumer-repository-files.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-repository-files.js +81 -0
- package/dist/consumer-integration/adapters/node-consumer-repository-files.js.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts +19 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts.map +1 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js +298 -0
- package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js.map +1 -0
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts +4 -0
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts.map +1 -1
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js +32 -1
- package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js.map +1 -1
- package/dist/consumer-integration/application/model/consumer-upgrade-execution.d.ts +18 -0
- package/dist/consumer-integration/application/model/consumer-upgrade-execution.d.ts.map +1 -0
- package/dist/consumer-integration/application/model/consumer-upgrade-execution.js +2 -0
- package/dist/consumer-integration/application/model/consumer-upgrade-execution.js.map +1 -0
- package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts +2 -1
- package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts.map +1 -1
- package/dist/consumer-integration/application/policies/consumer-integration-assets.js +12 -5
- package/dist/consumer-integration/application/policies/consumer-integration-assets.js.map +1 -1
- package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.js +2 -2
- package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.js.map +1 -1
- package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts +28 -0
- package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts.map +1 -0
- package/dist/consumer-integration/application/ports/consumer-upgrade.js +2 -0
- package/dist/consumer-integration/application/ports/consumer-upgrade.js.map +1 -0
- package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js +2 -2
- package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js.map +1 -1
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts +13 -0
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts.map +1 -0
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js +134 -0
- package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js.map +1 -0
- package/dist/consumer-integration/composition/canonical-docs-skill-v2.d.ts +2 -0
- package/dist/consumer-integration/composition/canonical-docs-skill-v2.d.ts.map +1 -0
- package/dist/consumer-integration/composition/canonical-docs-skill-v2.js +2 -0
- package/dist/consumer-integration/composition/canonical-docs-skill-v2.js.map +1 -0
- package/dist/consumer-integration/composition/consumer-integration-cli.d.ts.map +1 -1
- package/dist/consumer-integration/composition/consumer-integration-cli.js +50 -15
- package/dist/consumer-integration/composition/consumer-integration-cli.js.map +1 -1
- package/dist/consumer-integration/composition/node-consumer-integration.d.ts +6 -0
- package/dist/consumer-integration/composition/node-consumer-integration.d.ts.map +1 -1
- package/dist/consumer-integration/composition/node-consumer-integration.js +14 -0
- package/dist/consumer-integration/composition/node-consumer-integration.js.map +1 -1
- package/dist/consumer-integration/domain/model.d.ts +6 -0
- package/dist/consumer-integration/domain/model.d.ts.map +1 -1
- package/dist/consumer-integration/generated/canonical-assets.d.ts +2 -1
- package/dist/consumer-integration/generated/canonical-assets.d.ts.map +1 -1
- package/dist/consumer-integration/generated/canonical-assets.js +2 -1
- package/dist/consumer-integration/generated/canonical-assets.js.map +1 -1
- package/dist/consumer-integration/index.d.ts +3 -2
- package/dist/consumer-integration/index.d.ts.map +1 -1
- package/dist/consumer-integration/index.js +1 -1
- package/dist/consumer-integration/index.js.map +1 -1
- package/dist/domain/model-v2.d.ts +170 -0
- package/dist/domain/model-v2.d.ts.map +1 -0
- package/dist/domain/model-v2.js +2 -0
- package/dist/domain/model-v2.js.map +1 -0
- package/dist/domain/model.d.ts +1 -99
- package/dist/domain/model.d.ts.map +1 -1
- package/dist/domain/model.js.map +1 -1
- package/dist/domain/profile-policy.d.ts +2 -1
- package/dist/domain/profile-policy.d.ts.map +1 -1
- package/dist/domain/profile-policy.js +20 -12
- package/dist/domain/profile-policy.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/qualification/filesystem-evidence.d.ts +15 -0
- package/dist/qualification/filesystem-evidence.d.ts.map +1 -0
- package/dist/qualification/filesystem-evidence.js +325 -0
- package/dist/qualification/filesystem-evidence.js.map +1 -0
- package/dist/qualification/index.d.ts +3 -0
- package/dist/qualification/index.d.ts.map +1 -1
- package/dist/qualification/index.js +12 -326
- package/dist/qualification/index.js.map +1 -1
- package/dist/qualification/qualification-runtime.d.ts +58 -0
- package/dist/qualification/qualification-runtime.d.ts.map +1 -0
- package/dist/qualification/qualification-runtime.js +160 -0
- package/dist/qualification/qualification-runtime.js.map +1 -0
- package/dist/qualification/qualification-v2-runner.d.ts +4 -0
- package/dist/qualification/qualification-v2-runner.d.ts.map +1 -0
- package/dist/qualification/qualification-v2-runner.js +306 -0
- package/dist/qualification/qualification-v2-runner.js.map +1 -0
- package/dist/qualification/v2-contract.d.ts +91 -0
- package/dist/qualification/v2-contract.d.ts.map +1 -0
- package/dist/qualification/v2-contract.js +2 -0
- package/dist/qualification/v2-contract.js.map +1 -0
- package/package.json +8 -2
- package/schemas/docs-consumer-integration-profile/v2.schema.json +283 -0
- package/schemas/docs-consumer-upgrade-execution/v1.schema.json +44 -0
- package/schemas/docs-protocol-command-envelope/v2.schema.json +285 -0
- package/schemas/docs-protocol-profile/v2.schema.json +46 -0
- package/schemas/docs-protocol-qualification/v2.schema.json +78 -0
- package/schemas/docs-protocol-qualification-receipt/v2.schema.json +113 -0
- package/skills/docs/SKILL.md +3 -2
|
@@ -8,7 +8,7 @@ async function validator(id) {
|
|
|
8
8
|
}
|
|
9
9
|
const loading = (async () => {
|
|
10
10
|
const ajv = new Ajv2020({ allErrors: true, strict: true });
|
|
11
|
-
if (id === "docs-consumer-integration-execution") {
|
|
11
|
+
if (id === "docs-consumer-integration-execution" || id === "docs-consumer-upgrade-execution") {
|
|
12
12
|
const [plan, mutationReceipt] = await Promise.all([
|
|
13
13
|
readFile(new URL("../../../schemas/docs-consumer-integration-plan/v1.schema.json", import.meta.url), "utf8"),
|
|
14
14
|
readFile(new URL("../../../../engineering-foundation/schemas/known-file-transaction-receipt/v1.schema.json", import.meta.url), "utf8")
|
|
@@ -16,7 +16,9 @@ async function validator(id) {
|
|
|
16
16
|
ajv.addSchema(JSON.parse(plan));
|
|
17
17
|
ajv.addSchema(JSON.parse(mutationReceipt));
|
|
18
18
|
}
|
|
19
|
-
const schemaUrl = new URL(
|
|
19
|
+
const schemaUrl = new URL(id === "docs-consumer-integration-profile-v2"
|
|
20
|
+
? "../../../schemas/docs-consumer-integration-profile/v2.schema.json"
|
|
21
|
+
: `../../../schemas/${id}/v1.schema.json`, import.meta.url);
|
|
20
22
|
return ajv.compile(JSON.parse(await readFile(schemaUrl, "utf8")));
|
|
21
23
|
})();
|
|
22
24
|
validators.set(id, loading);
|
|
@@ -32,12 +34,18 @@ async function assertSchema(id, value) {
|
|
|
32
34
|
.map(({ instancePath, message }) => `${instancePath || "/"} ${message ?? "is invalid"}`)
|
|
33
35
|
.join("; ")
|
|
34
36
|
.slice(0, 1000);
|
|
35
|
-
throw new TypeError(`${id}/v1 validation failed: ${problems}`);
|
|
37
|
+
throw new TypeError(`${id}${id.endsWith("-v2") ? "" : "/v1"} validation failed: ${problems}`);
|
|
36
38
|
}
|
|
37
39
|
export function assertConsumerIntegrationProfileSchema(value) {
|
|
38
|
-
|
|
40
|
+
const version = typeof value === "object" && value !== null && "schemaVersion" in value
|
|
41
|
+
? value.schemaVersion
|
|
42
|
+
: undefined;
|
|
43
|
+
return assertSchema(version === 2 ? "docs-consumer-integration-profile-v2" : "docs-consumer-integration-profile", value);
|
|
39
44
|
}
|
|
40
45
|
export function assertConsumerIntegrationExecutionSchema(value) {
|
|
41
46
|
return assertSchema("docs-consumer-integration-execution", value);
|
|
42
47
|
}
|
|
48
|
+
export function assertConsumerUpgradeExecutionSchema(value) {
|
|
49
|
+
return assertSchema("docs-consumer-upgrade-execution", value);
|
|
50
|
+
}
|
|
43
51
|
//# sourceMappingURL=consumer-integration-schema-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consumer-integration-schema-validator.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/consumer-integration-schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,OAAO,EAAyB,MAAM,kBAAkB,CAAC;AAElE,MAAM,UAAU,GAAG,IAAI,GAAG,EAAqC,CAAC;AAEhE,KAAK,UAAU,SAAS,CACtB,
|
|
1
|
+
{"version":3,"file":"consumer-integration-schema-validator.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/consumer-integration-schema-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { QualifiedDocsCohortBindingV1 } from "../domain/model.js";
|
|
2
|
+
export declare function projectConsumerIntegrationProfileV1(input: {
|
|
3
|
+
readonly bytes: Uint8Array;
|
|
4
|
+
readonly cohort: QualifiedDocsCohortBindingV1;
|
|
5
|
+
}): Promise<Uint8Array>;
|
|
6
|
+
export declare function projectPnpmWorkspaceCohortExclusionsV1(input: {
|
|
7
|
+
readonly bytes: Uint8Array;
|
|
8
|
+
readonly cohort: QualifiedDocsCohortBindingV1;
|
|
9
|
+
}): Uint8Array;
|
|
10
|
+
//# sourceMappingURL=consumer-upgrade-file-projectors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumer-upgrade-file-projectors.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/consumer-upgrade-file-projectors.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,4BAA4B,EAC7B,MAAM,oBAAoB,CAAC;AAmC5B,wBAAsB,mCAAmC,CAAC,KAAK,EAAE;IAC/D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;CAC/C,GAAG,OAAO,CAAC,UAAU,CAAC,CAWtB;AA+BD,wBAAgB,sCAAsC,CAAC,KAAK,EAAE;IAC5D,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,4BAA4B,CAAC;CAC/C,GAAG,UAAU,CAwCb"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { applyEdits, modify } from "jsonc-parser";
|
|
2
|
+
import { isMap, isScalar, isSeq, parseDocument } from "yaml";
|
|
3
|
+
import { assertConsumerIntegrationProfileSchema } from "./consumer-integration-schema-validator.js";
|
|
4
|
+
import { ConsumerIntegrationNodeError } from "./consumer-integration-node-error.js";
|
|
5
|
+
import { parseJsonRecord } from "./strict-json-record.js";
|
|
6
|
+
const DOCS_PACKAGE = "@agent-teams/docs-protocol";
|
|
7
|
+
const FOUNDATION_PACKAGE = "@agent-teams/engineering-foundation";
|
|
8
|
+
function decode(bytes, subject) {
|
|
9
|
+
try {
|
|
10
|
+
const source = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
|
|
11
|
+
if (source.startsWith("\uFEFF") || source.includes("\u0000")) {
|
|
12
|
+
throw new TypeError(`${subject} contains a BOM or NUL byte.`);
|
|
13
|
+
}
|
|
14
|
+
return source;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_UPGRADE_INPUT_INVALID", `${subject} must be strict UTF-8 without a BOM or NUL bytes.`);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
function formatting(source) {
|
|
21
|
+
const eol = source.includes("\r\n") ? "\r\n" : "\n";
|
|
22
|
+
const indent = source.match(/\n([\t ]+)"/u)?.[1] ?? " ";
|
|
23
|
+
return {
|
|
24
|
+
eol,
|
|
25
|
+
insertSpaces: !indent.includes("\t"),
|
|
26
|
+
tabSize: indent.includes("\t") ? 1 : indent.length
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export async function projectConsumerIntegrationProfileV1(input) {
|
|
30
|
+
const source = decode(input.bytes, "Consumer integration profile");
|
|
31
|
+
const profile = parseJsonRecord(source);
|
|
32
|
+
await assertConsumerIntegrationProfileSchema(profile);
|
|
33
|
+
const edits = modify(source, ["cohort"], input.cohort, {
|
|
34
|
+
formattingOptions: formatting(source)
|
|
35
|
+
});
|
|
36
|
+
if (edits.length === 0) {
|
|
37
|
+
return Buffer.from(source, "utf8");
|
|
38
|
+
}
|
|
39
|
+
const postimage = applyEdits(source, edits);
|
|
40
|
+
await assertConsumerIntegrationProfileSchema(parseJsonRecord(postimage));
|
|
41
|
+
return Buffer.from(postimage, "utf8");
|
|
42
|
+
}
|
|
43
|
+
function managedPackageName(value) {
|
|
44
|
+
if (value === DOCS_PACKAGE || value.startsWith(`${DOCS_PACKAGE}@`)) {
|
|
45
|
+
return DOCS_PACKAGE;
|
|
46
|
+
}
|
|
47
|
+
if (value === FOUNDATION_PACKAGE || value.startsWith(`${FOUNDATION_PACKAGE}@`)) {
|
|
48
|
+
return FOUNDATION_PACKAGE;
|
|
49
|
+
}
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
function exactExclusions(cohort) {
|
|
53
|
+
return new Map([
|
|
54
|
+
[FOUNDATION_PACKAGE, `${FOUNDATION_PACKAGE}@${cohort.packages.engineeringFoundation.version}`],
|
|
55
|
+
[DOCS_PACKAGE, `${DOCS_PACKAGE}@${cohort.packages.docsProtocol.version}`]
|
|
56
|
+
]);
|
|
57
|
+
}
|
|
58
|
+
function scalarItems(sequence) {
|
|
59
|
+
const items = [];
|
|
60
|
+
for (const item of sequence.items) {
|
|
61
|
+
if (!isScalar(item) || typeof item.value !== "string") {
|
|
62
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_WORKSPACE_INVALID", "pnpm minimumReleaseAgeExclude entries must be strings.");
|
|
63
|
+
}
|
|
64
|
+
items.push(item);
|
|
65
|
+
}
|
|
66
|
+
return items;
|
|
67
|
+
}
|
|
68
|
+
export function projectPnpmWorkspaceCohortExclusionsV1(input) {
|
|
69
|
+
const source = decode(input.bytes, "pnpm-workspace.yaml");
|
|
70
|
+
const document = parseDocument(source, { uniqueKeys: true });
|
|
71
|
+
if (document.errors.length > 0 || !isMap(document.contents)) {
|
|
72
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_WORKSPACE_INVALID", "pnpm-workspace.yaml must be one duplicate-free YAML mapping.");
|
|
73
|
+
}
|
|
74
|
+
const current = document.get("minimumReleaseAgeExclude", true);
|
|
75
|
+
const hasAgePolicy = document.has("minimumReleaseAge") ||
|
|
76
|
+
document.get("minimumReleaseAgeStrict") === true;
|
|
77
|
+
if (current === undefined && !hasAgePolicy) {
|
|
78
|
+
return Buffer.from(source, "utf8");
|
|
79
|
+
}
|
|
80
|
+
if (current !== undefined && !isSeq(current)) {
|
|
81
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_WORKSPACE_INVALID", "pnpm minimumReleaseAgeExclude must be one sequence.");
|
|
82
|
+
}
|
|
83
|
+
const sequence = current ?? document.createNode([]);
|
|
84
|
+
if (!isSeq(sequence)) {
|
|
85
|
+
throw new Error("unreachable");
|
|
86
|
+
}
|
|
87
|
+
if (current === undefined) {
|
|
88
|
+
document.set("minimumReleaseAgeExclude", sequence);
|
|
89
|
+
}
|
|
90
|
+
const expected = exactExclusions(input.cohort);
|
|
91
|
+
const seen = new Set();
|
|
92
|
+
for (const item of scalarItems(sequence)) {
|
|
93
|
+
const packageName = managedPackageName(item.value);
|
|
94
|
+
if (packageName === undefined) {
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
if (seen.has(packageName)) {
|
|
98
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_WORKSPACE_INVALID", `pnpm minimumReleaseAgeExclude contains duplicate ${packageName} authority.`);
|
|
99
|
+
}
|
|
100
|
+
seen.add(packageName);
|
|
101
|
+
item.value = expected.get(packageName);
|
|
102
|
+
}
|
|
103
|
+
for (const packageName of [FOUNDATION_PACKAGE, DOCS_PACKAGE]) {
|
|
104
|
+
if (!seen.has(packageName)) {
|
|
105
|
+
sequence.add(expected.get(packageName));
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
return Buffer.from(String(document), "utf8");
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=consumer-upgrade-file-projectors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consumer-upgrade-file-projectors.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/consumer-upgrade-file-projectors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { ConsumerUpgradeAuthorityReader } from "../application/ports/consumer-upgrade.js";
|
|
2
|
+
import type { ConsumerIntegrationDesiredStateV1, ConsumerUpgradeAuthorityV1 } from "../domain/model.js";
|
|
3
|
+
type AuthorityFetch = (input: string | URL | globalThis.Request, init?: RequestInit) => Promise<Response>;
|
|
4
|
+
export declare function projectQualifiedCohortAuthority(input: {
|
|
5
|
+
readonly cohortId: string;
|
|
6
|
+
readonly registry: Record<string, unknown>;
|
|
7
|
+
readonly repository: ConsumerIntegrationDesiredStateV1["repository"];
|
|
8
|
+
readonly revision: string;
|
|
9
|
+
}): ConsumerUpgradeAuthorityV1;
|
|
10
|
+
export declare class GitHubCohortAuthorityReader implements ConsumerUpgradeAuthorityReader {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(fetcher?: AuthorityFetch);
|
|
13
|
+
read(options: {
|
|
14
|
+
readonly cohortId: string;
|
|
15
|
+
readonly repository: ConsumerIntegrationDesiredStateV1["repository"];
|
|
16
|
+
readonly revision?: string;
|
|
17
|
+
}): Promise<ConsumerUpgradeAuthorityV1>;
|
|
18
|
+
}
|
|
19
|
+
export declare const githubCohortAuthorityReader: ConsumerUpgradeAuthorityReader;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=github-cohort-authority-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-cohort-authority-reader.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/github-cohort-authority-reader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,8BAA8B,EAC/B,MAAM,0CAA0C,CAAC;AAClD,OAAO,KAAK,EACV,iCAAiC,EACjC,0BAA0B,EAE3B,MAAM,oBAAoB,CAAC;AAkB5B,KAAK,cAAc,GAAG,CACpB,KAAK,EAAE,MAAM,GAAG,GAAG,GAAG,UAAU,CAAC,OAAO,EACxC,IAAI,CAAC,EAAE,WAAW,KACf,OAAO,CAAC,QAAQ,CAAC,CAAC;AA+OvB,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,iCAAiC,CAAC,YAAY,CAAC,CAAC;IACrE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GAAG,0BAA0B,CAsB7B;AAED,qBAAa,2BAA4B,YAAW,8BAA8B;;IAGhF,YAAmB,OAAO,GAAE,cAAiC,EAE5D;IAEY,IAAI,CAAC,OAAO,EAAE;QACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,UAAU,EAAE,iCAAiC,CAAC,YAAY,CAAC,CAAC;QACrE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;KAC5B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAgBtC;CACF;AAED,eAAO,MAAM,2BAA2B,EAAE,8BACQ,CAAC"}
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
import { assertQualifiedDocsCohortBindingV1 } from "../application/policies/consumer-integration-desired-state.js";
|
|
2
|
+
import { ConsumerIntegrationNodeError } from "./consumer-integration-node-error.js";
|
|
3
|
+
import { parseJsonRecord } from "./strict-json-record.js";
|
|
4
|
+
const AUTHORITY_REPOSITORY = "agent-teams-ai/.github";
|
|
5
|
+
const AUTHORITY_PATH = "governance/docs-qualified-cohorts.json";
|
|
6
|
+
const AUTHORITY_API = `https://api.github.com/repos/${AUTHORITY_REPOSITORY}`;
|
|
7
|
+
const AUTHORITY_RAW = `https://raw.githubusercontent.com/${AUTHORITY_REPOSITORY}`;
|
|
8
|
+
const GIT_SHA = /^(?!0{40}$)[0-9a-f]{40}$/u;
|
|
9
|
+
const MAXIMUM_AUTHORITY_BYTES = 8 * 1024 * 1024;
|
|
10
|
+
const MANAGED_PACKAGES = [
|
|
11
|
+
"@agent-teams/docs-protocol",
|
|
12
|
+
"@agent-teams/engineering-foundation"
|
|
13
|
+
];
|
|
14
|
+
function record(value, subject) {
|
|
15
|
+
if (typeof value !== "object" || value === null || Array.isArray(value) ||
|
|
16
|
+
Object.getPrototypeOf(value) !== Object.prototype) {
|
|
17
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${subject} must be one plain object.`);
|
|
18
|
+
}
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
function array(value, subject) {
|
|
22
|
+
if (!Array.isArray(value) || value.length > 4096) {
|
|
23
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${subject} must be one bounded array.`);
|
|
24
|
+
}
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
function string(value, subject) {
|
|
28
|
+
if (typeof value !== "string" || value.length === 0 || value.length > 4096 ||
|
|
29
|
+
value.includes("\u0000")) {
|
|
30
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${subject} must be one bounded string.`);
|
|
31
|
+
}
|
|
32
|
+
return value;
|
|
33
|
+
}
|
|
34
|
+
async function responseBytes(response, subject) {
|
|
35
|
+
if (!response.ok) {
|
|
36
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_UNAVAILABLE", `${subject} returned HTTP ${response.status}.`);
|
|
37
|
+
}
|
|
38
|
+
const declared = Number(response.headers.get("content-length") ?? "0");
|
|
39
|
+
if (Number.isFinite(declared) && declared > MAXIMUM_AUTHORITY_BYTES) {
|
|
40
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${subject} exceeds the authority size limit.`);
|
|
41
|
+
}
|
|
42
|
+
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
43
|
+
if (bytes.byteLength === 0 || bytes.byteLength > MAXIMUM_AUTHORITY_BYTES) {
|
|
44
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${subject} has invalid or overlong bytes.`);
|
|
45
|
+
}
|
|
46
|
+
return bytes;
|
|
47
|
+
}
|
|
48
|
+
function timeoutSignal() {
|
|
49
|
+
return AbortSignal.timeout(20_000);
|
|
50
|
+
}
|
|
51
|
+
async function resolveAuthorityRevision(fetcher) {
|
|
52
|
+
const bytes = await responseBytes(await fetcher(`${AUTHORITY_API}/commits/main`, {
|
|
53
|
+
headers: { Accept: "application/vnd.github+json", "User-Agent": "agent-teams-docs" },
|
|
54
|
+
redirect: "error",
|
|
55
|
+
signal: timeoutSignal()
|
|
56
|
+
}), "Central authority revision");
|
|
57
|
+
const response = parseJsonRecord(new TextDecoder("utf-8", { fatal: true }).decode(bytes));
|
|
58
|
+
const revision = response["sha"];
|
|
59
|
+
if (typeof revision !== "string" || !GIT_SHA.test(revision)) {
|
|
60
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", "Central authority did not resolve one exact Git revision.");
|
|
61
|
+
}
|
|
62
|
+
return revision;
|
|
63
|
+
}
|
|
64
|
+
async function readAuthorityRegistry(fetcher, revision) {
|
|
65
|
+
const bytes = await responseBytes(await fetcher(`${AUTHORITY_RAW}/${revision}/${AUTHORITY_PATH}`, {
|
|
66
|
+
headers: { Accept: "application/json", "User-Agent": "agent-teams-docs" },
|
|
67
|
+
redirect: "error",
|
|
68
|
+
signal: timeoutSignal()
|
|
69
|
+
}), "Central Cohort registry");
|
|
70
|
+
try {
|
|
71
|
+
return parseJsonRecord(new TextDecoder("utf-8", { fatal: true }).decode(bytes));
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", "Central Cohort registry is not strict duplicate-free UTF-8 JSON.", { cause: error });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function selectedLifecycleState(events, cohortId) {
|
|
78
|
+
const selected = events.map((value) => record(value, "Cohort lifecycle event"))
|
|
79
|
+
.filter((event) => event["cohort_id"] === cohortId)
|
|
80
|
+
.map((event) => {
|
|
81
|
+
const sequence = event["sequence"];
|
|
82
|
+
if (!Number.isSafeInteger(sequence) || Number(sequence) < 1) {
|
|
83
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${cohortId} has an invalid lifecycle sequence.`);
|
|
84
|
+
}
|
|
85
|
+
return { event, sequence: Number(sequence) };
|
|
86
|
+
})
|
|
87
|
+
.toSorted((left, right) => left.sequence - right.sequence);
|
|
88
|
+
if (new Set(selected.map(({ sequence }) => sequence)).size !== selected.length) {
|
|
89
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${cohortId} has duplicate lifecycle sequences.`);
|
|
90
|
+
}
|
|
91
|
+
const qualification = selected.filter(({ event }) => event["state"] === "QUALIFIED");
|
|
92
|
+
const last = selected.at(-1);
|
|
93
|
+
if (qualification.length !== 1 || last === undefined) {
|
|
94
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", `${cohortId} does not have one immutable QUALIFIED lifecycle event.`);
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
qualificationEventDigest: string(qualification[0].event["event_digest"], "QUALIFIED event digest"),
|
|
98
|
+
state: string(last.event["state"], "Current Cohort lifecycle state")
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function assertSelectable(source, state, repository) {
|
|
102
|
+
if (state === "RECOMMENDED") {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
const canaries = array(source["canary_repositories"], "Cohort canary repositories")
|
|
106
|
+
.map((entry) => record(entry, "Cohort canary repository"));
|
|
107
|
+
if (["QUALIFIED", "CANARY"].includes(state) && canaries.some((entry) => String(entry["repository_id"]) === repository.id)) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_NOT_SELECTABLE", `${String(source["cohort_id"])} is ${state} and is not selectable for repository ${repository.id}.`);
|
|
111
|
+
}
|
|
112
|
+
function packageProjection(source) {
|
|
113
|
+
const entries = array(source["packages"], "Cohort packages")
|
|
114
|
+
.map((value) => record(value, "Cohort package"));
|
|
115
|
+
const packageByName = new Map(entries.map((entry) => [entry["name"], entry]));
|
|
116
|
+
if (entries.length !== MANAGED_PACKAGES.length ||
|
|
117
|
+
packageByName.size !== MANAGED_PACKAGES.length ||
|
|
118
|
+
MANAGED_PACKAGES.some((name) => !packageByName.has(name))) {
|
|
119
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_INVALID", "Qualified Cohort must select exactly the two managed packages.");
|
|
120
|
+
}
|
|
121
|
+
const docs = packageByName.get(MANAGED_PACKAGES[0]);
|
|
122
|
+
const foundation = packageByName.get(MANAGED_PACKAGES[1]);
|
|
123
|
+
return {
|
|
124
|
+
docsProtocol: {
|
|
125
|
+
version: string(docs["version"], "Docs Protocol version"),
|
|
126
|
+
integrity: string(docs["integrity"], "Docs Protocol integrity")
|
|
127
|
+
},
|
|
128
|
+
engineeringFoundation: {
|
|
129
|
+
version: string(foundation["version"], "Foundation version"),
|
|
130
|
+
integrity: string(foundation["integrity"], "Foundation integrity")
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function cohortProjection(source, qualificationEventDigest) {
|
|
135
|
+
const workflow = record(source["reusable_workflow"], "Cohort reusable workflow");
|
|
136
|
+
const assets = record(source["assets"], "Cohort assets");
|
|
137
|
+
const skill = record(assets["skill"], "Cohort Skill asset");
|
|
138
|
+
const caller = record(assets["caller_workflow"], "Cohort caller workflow asset");
|
|
139
|
+
const assetCatalog = record(assets["asset_catalog"], "Cohort asset catalog");
|
|
140
|
+
const transitionCatalog = record(assets["transition_catalog"], "Cohort transition catalog");
|
|
141
|
+
const runtime = record(source["runtime"], "Cohort runtime");
|
|
142
|
+
const runtimeClosure = record(source["runtime_closure"], "Cohort runtime closure");
|
|
143
|
+
const schemas = record(source["schemas"], "Cohort schemas");
|
|
144
|
+
const projection = {
|
|
145
|
+
schemaVersion: 1,
|
|
146
|
+
cohortId: string(source["cohort_id"], "Cohort ID"),
|
|
147
|
+
channel: string(source["channel"], "Cohort channel"),
|
|
148
|
+
recordDigest: string(source["record_digest"], "Cohort record digest"),
|
|
149
|
+
qualificationEventDigest,
|
|
150
|
+
eligibleAfter: string(source["eligible_after"], "Cohort eligibility timestamp"),
|
|
151
|
+
upgradeFrom: array(source["upgrade_from"], "Cohort upgrade origins").map((entry) => string(entry, "Cohort upgrade origin")),
|
|
152
|
+
rollbackTo: array(source["rollback_to"], "Cohort rollback targets").map((entry) => string(entry, "Cohort rollback target")),
|
|
153
|
+
packages: packageProjection(source),
|
|
154
|
+
workflow: {
|
|
155
|
+
repository: string(workflow["repository"], "Workflow repository"),
|
|
156
|
+
path: string(workflow["path"], "Workflow path"),
|
|
157
|
+
revision: string(workflow["revision"], "Workflow revision"),
|
|
158
|
+
blobSha: string(workflow["blob_sha"], "Workflow blob SHA")
|
|
159
|
+
},
|
|
160
|
+
assets: {
|
|
161
|
+
skillDigest: string(skill["digest"], "Skill digest"),
|
|
162
|
+
callerWorkflowDigest: string(caller["rendered_digest"], "Caller workflow digest"),
|
|
163
|
+
assetCatalogDigest: string(assetCatalog["digest"], "Asset catalog digest"),
|
|
164
|
+
transitionCatalogDigest: string(transitionCatalog["digest"], "Transition catalog digest")
|
|
165
|
+
},
|
|
166
|
+
schemas: {
|
|
167
|
+
consumerIntegration: schemas["consumer_integration"],
|
|
168
|
+
managedState: schemas["managed_state"],
|
|
169
|
+
docsProtocol: schemas["docs_protocol"]
|
|
170
|
+
},
|
|
171
|
+
runtime: {
|
|
172
|
+
node: string(runtime["node"], "Node runtime"),
|
|
173
|
+
pnpm: string(runtime["pnpm"], "pnpm runtime"),
|
|
174
|
+
runtimeClosureDigest: string(runtimeClosure["digest"], "Runtime closure digest")
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
assertQualifiedDocsCohortBindingV1(projection);
|
|
178
|
+
return Object.freeze(projection);
|
|
179
|
+
}
|
|
180
|
+
export function projectQualifiedCohortAuthority(input) {
|
|
181
|
+
const matches = array(input.registry["cohorts"], "Qualified Cohorts")
|
|
182
|
+
.map((value) => record(value, "Qualified Cohort"))
|
|
183
|
+
.filter((cohort) => cohort["cohort_id"] === input.cohortId);
|
|
184
|
+
if (matches.length !== 1) {
|
|
185
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_COHORT_UNKNOWN", `${input.cohortId} is not one exact central Cohort.`);
|
|
186
|
+
}
|
|
187
|
+
const source = matches[0];
|
|
188
|
+
const lifecycle = selectedLifecycleState(array(input.registry["events"], "Cohort lifecycle events"), input.cohortId);
|
|
189
|
+
assertSelectable(source, lifecycle.state, input.repository);
|
|
190
|
+
return Object.freeze({
|
|
191
|
+
repository: AUTHORITY_REPOSITORY,
|
|
192
|
+
path: AUTHORITY_PATH,
|
|
193
|
+
revision: input.revision,
|
|
194
|
+
cohort: cohortProjection(source, lifecycle.qualificationEventDigest)
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
export class GitHubCohortAuthorityReader {
|
|
198
|
+
#fetcher;
|
|
199
|
+
constructor(fetcher = globalThis.fetch) {
|
|
200
|
+
this.#fetcher = fetcher;
|
|
201
|
+
}
|
|
202
|
+
async read(options) {
|
|
203
|
+
if (options.revision !== undefined && !GIT_SHA.test(options.revision)) {
|
|
204
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_REVISION_INVALID", "Authority revision must be one nonzero lowercase Git SHA.");
|
|
205
|
+
}
|
|
206
|
+
const revision = await resolveAuthorityRevision(this.#fetcher);
|
|
207
|
+
if (options.revision !== undefined && options.revision !== revision) {
|
|
208
|
+
throw new ConsumerIntegrationNodeError("DOCS_CONSUMER_AUTHORITY_REVISION_STALE", "Requested authority revision is not the current protected main revision.");
|
|
209
|
+
}
|
|
210
|
+
const registry = await readAuthorityRegistry(this.#fetcher, revision);
|
|
211
|
+
return projectQualifiedCohortAuthority({ ...options, registry, revision });
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
export const githubCohortAuthorityReader = Object.freeze(new GitHubCohortAuthorityReader());
|
|
215
|
+
//# sourceMappingURL=github-cohort-authority-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"github-cohort-authority-reader.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/github-cohort-authority-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-consumer-integration-repository.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-integration-repository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-consumer-integration-repository.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/node-consumer-integration-repository.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iCAAiC,EAEjC,2BAA2B,EAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EACV,8BAA8B,EAC/B,MAAM,wDAAwD,CAAC;AAiChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,sCAAsC,CAAC;AA4MpF,wBAAsB,4BAA4B,CAAC,OAAO,EAAE;IAC1D,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAC1C,GAAG,OAAO,CAAC;IACV,QAAQ,CAAC,OAAO,EAAE,iCAAiC,CAAC;IACpD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;CAChD,CAAC,CAsED;AAED,eAAO,MAAM,kCAAkC,EAAE,8BACM,CAAC"}
|