@agent-teams/docs-protocol-agent-teams 0.0.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.
Files changed (203) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE +201 -0
  3. package/README.md +24 -0
  4. package/assets/catalog.json +1 -0
  5. package/assets/docs-protocol.yml +14 -0
  6. package/assets/history/sha256-097df9fe1b90ab45f73389c8b69736f8a54d4199b09536d586222b5a7f0fbb09/caller.yml +13 -0
  7. package/assets/history/sha256-3e53262efc8a530b532380dac21d876456473d3b88aba20889a1d24823bf3a1b/caller.yml +14 -0
  8. package/assets/history/sha256-51d3f02a352ce2c3b0a4068a86b6899a57ab54b0a876c468e3fb3e536519caca/caller.yml +14 -0
  9. package/assets/history/sha256-641265ef9ecff59c16482fdae1bc8fc56002b5a4a1ee34b102438d0ca08a86a3/skill.md +29 -0
  10. package/assets/history/sha256-7907195753506e4b0f0e89eb3f6e495bacbd79e9b9913c9f60fc4a07dffb22e5/caller.yml +14 -0
  11. package/assets/history/sha256-7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e/skill.md +28 -0
  12. package/assets/history/sha256-d697c5c7c9bcfccfc006fcf7e4d4cc8e7c629f9689781b9b0b50f30d82bc019e/caller.yml +14 -0
  13. package/assets/history/sha256-f21dc19277a4ba24bcef90a7071c9cf50adf144769f42d6f74ff4eac9ef117cf/caller.yml +14 -0
  14. package/assets/history/sha256-fd633c3c6337e5cfe51a9f36989bb654381634c5ab4add9e4da71fe40ab4e0dd/caller.yml +14 -0
  15. package/assets/transition-catalog.json +1 -0
  16. package/dist/cli.d.ts +3 -0
  17. package/dist/cli.d.ts.map +1 -0
  18. package/dist/cli.js +4 -0
  19. package/dist/cli.js.map +1 -0
  20. package/dist/composition/managed-cli-input.d.ts +11 -0
  21. package/dist/composition/managed-cli-input.d.ts.map +1 -0
  22. package/dist/composition/managed-cli-input.js +52 -0
  23. package/dist/composition/managed-cli-input.js.map +1 -0
  24. package/dist/composition/managed-cli.d.ts +2 -0
  25. package/dist/composition/managed-cli.d.ts.map +1 -0
  26. package/dist/composition/managed-cli.js +17 -0
  27. package/dist/composition/managed-cli.js.map +1 -0
  28. package/dist/composition/qualification-cli.d.ts +2 -0
  29. package/dist/composition/qualification-cli.d.ts.map +1 -0
  30. package/dist/composition/qualification-cli.js +119 -0
  31. package/dist/composition/qualification-cli.js.map +1 -0
  32. package/dist/consumer-integration/adapters/agents-route-adapter-v1.d.ts +10 -0
  33. package/dist/consumer-integration/adapters/agents-route-adapter-v1.d.ts.map +1 -0
  34. package/dist/consumer-integration/adapters/agents-route-adapter-v1.js +99 -0
  35. package/dist/consumer-integration/adapters/agents-route-adapter-v1.js.map +1 -0
  36. package/dist/consumer-integration/adapters/bounded-repository-topology.d.ts +8 -0
  37. package/dist/consumer-integration/adapters/bounded-repository-topology.d.ts.map +1 -0
  38. package/dist/consumer-integration/adapters/bounded-repository-topology.js +80 -0
  39. package/dist/consumer-integration/adapters/bounded-repository-topology.js.map +1 -0
  40. package/dist/consumer-integration/adapters/consumer-integration-node-error.d.ts +5 -0
  41. package/dist/consumer-integration/adapters/consumer-integration-node-error.d.ts.map +1 -0
  42. package/dist/consumer-integration/adapters/consumer-integration-node-error.js +9 -0
  43. package/dist/consumer-integration/adapters/consumer-integration-node-error.js.map +1 -0
  44. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts +4 -0
  45. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.d.ts.map +1 -0
  46. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js +51 -0
  47. package/dist/consumer-integration/adapters/consumer-integration-schema-validator.js.map +1 -0
  48. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts +21 -0
  49. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.d.ts.map +1 -0
  50. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js +145 -0
  51. package/dist/consumer-integration/adapters/consumer-upgrade-file-projectors.js.map +1 -0
  52. package/dist/consumer-integration/adapters/foundation-known-file-transaction.d.ts +3 -0
  53. package/dist/consumer-integration/adapters/foundation-known-file-transaction.d.ts.map +1 -0
  54. package/dist/consumer-integration/adapters/foundation-known-file-transaction.js +7 -0
  55. package/dist/consumer-integration/adapters/foundation-known-file-transaction.js.map +1 -0
  56. package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts +21 -0
  57. package/dist/consumer-integration/adapters/github-cohort-authority-reader.d.ts.map +1 -0
  58. package/dist/consumer-integration/adapters/github-cohort-authority-reader.js +215 -0
  59. package/dist/consumer-integration/adapters/github-cohort-authority-reader.js.map +1 -0
  60. package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts +13 -0
  61. package/dist/consumer-integration/adapters/node-consumer-integration-repository.d.ts.map +1 -0
  62. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js +213 -0
  63. package/dist/consumer-integration/adapters/node-consumer-integration-repository.js.map +1 -0
  64. package/dist/consumer-integration/adapters/node-consumer-repository-files.d.ts +11 -0
  65. package/dist/consumer-integration/adapters/node-consumer-repository-files.d.ts.map +1 -0
  66. package/dist/consumer-integration/adapters/node-consumer-repository-files.js +81 -0
  67. package/dist/consumer-integration/adapters/node-consumer-repository-files.js.map +1 -0
  68. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts +19 -0
  69. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.d.ts.map +1 -0
  70. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js +307 -0
  71. package/dist/consumer-integration/adapters/node-consumer-upgrade-sandbox.js.map +1 -0
  72. package/dist/consumer-integration/adapters/package-consumer-asset-catalog.d.ts +5 -0
  73. package/dist/consumer-integration/adapters/package-consumer-asset-catalog.d.ts.map +1 -0
  74. package/dist/consumer-integration/adapters/package-consumer-asset-catalog.js +150 -0
  75. package/dist/consumer-integration/adapters/package-consumer-asset-catalog.js.map +1 -0
  76. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.d.ts +3 -0
  77. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.d.ts.map +1 -0
  78. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.js +37 -0
  79. package/dist/consumer-integration/adapters/pnpm-lockfile-policy-v1.js.map +1 -0
  80. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.d.ts +3 -0
  81. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.d.ts.map +1 -0
  82. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.js +120 -0
  83. package/dist/consumer-integration/adapters/pnpm-lockfile-validator-v1.js.map +1 -0
  84. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts +15 -0
  85. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.d.ts.map +1 -0
  86. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js +189 -0
  87. package/dist/consumer-integration/adapters/pnpm-manifest-adapter-v1.js.map +1 -0
  88. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.d.ts +8 -0
  89. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.d.ts.map +1 -0
  90. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.js +245 -0
  91. package/dist/consumer-integration/adapters/pnpm-runtime-closure-v1.js.map +1 -0
  92. package/dist/consumer-integration/adapters/strict-json-record.d.ts +3 -0
  93. package/dist/consumer-integration/adapters/strict-json-record.d.ts.map +1 -0
  94. package/dist/consumer-integration/adapters/strict-json-record.js +27 -0
  95. package/dist/consumer-integration/adapters/strict-json-record.js.map +1 -0
  96. package/dist/consumer-integration/application/model/consumer-integration-execution.d.ts +11 -0
  97. package/dist/consumer-integration/application/model/consumer-integration-execution.d.ts.map +1 -0
  98. package/dist/consumer-integration/application/model/consumer-integration-execution.js +2 -0
  99. package/dist/consumer-integration/application/model/consumer-integration-execution.js.map +1 -0
  100. package/dist/consumer-integration/application/model/consumer-upgrade-execution.d.ts +18 -0
  101. package/dist/consumer-integration/application/model/consumer-upgrade-execution.d.ts.map +1 -0
  102. package/dist/consumer-integration/application/model/consumer-upgrade-execution.js +2 -0
  103. package/dist/consumer-integration/application/model/consumer-upgrade-execution.js.map +1 -0
  104. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts +58 -0
  105. package/dist/consumer-integration/application/policies/consumer-integration-assets.d.ts.map +1 -0
  106. package/dist/consumer-integration/application/policies/consumer-integration-assets.js +154 -0
  107. package/dist/consumer-integration/application/policies/consumer-integration-assets.js.map +1 -0
  108. package/dist/consumer-integration/application/policies/consumer-integration-authority-guards.d.ts +4 -0
  109. package/dist/consumer-integration/application/policies/consumer-integration-authority-guards.d.ts.map +1 -0
  110. package/dist/consumer-integration/application/policies/consumer-integration-authority-guards.js +23 -0
  111. package/dist/consumer-integration/application/policies/consumer-integration-authority-guards.js.map +1 -0
  112. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.d.ts +4 -0
  113. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.d.ts.map +1 -0
  114. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.js +153 -0
  115. package/dist/consumer-integration/application/policies/consumer-integration-desired-state.js.map +1 -0
  116. package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.d.ts +14 -0
  117. package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.d.ts.map +1 -0
  118. package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.js +186 -0
  119. package/dist/consumer-integration/application/policies/consumer-integration-prior-cohort.js.map +1 -0
  120. package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.d.ts +31 -0
  121. package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.d.ts.map +1 -0
  122. package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.js +2 -0
  123. package/dist/consumer-integration/application/ports/consumer-integration-lifecycle.js.map +1 -0
  124. package/dist/consumer-integration/application/ports/consumer-integration-planners.d.ts +35 -0
  125. package/dist/consumer-integration/application/ports/consumer-integration-planners.d.ts.map +1 -0
  126. package/dist/consumer-integration/application/ports/consumer-integration-planners.js +2 -0
  127. package/dist/consumer-integration/application/ports/consumer-integration-planners.js.map +1 -0
  128. package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts +28 -0
  129. package/dist/consumer-integration/application/ports/consumer-upgrade.d.ts.map +1 -0
  130. package/dist/consumer-integration/application/ports/consumer-upgrade.js +2 -0
  131. package/dist/consumer-integration/application/ports/consumer-upgrade.js.map +1 -0
  132. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.d.ts +15 -0
  133. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.d.ts.map +1 -0
  134. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js +350 -0
  135. package/dist/consumer-integration/application/use-cases/plan-consumer-integration.js.map +1 -0
  136. package/dist/consumer-integration/application/use-cases/run-consumer-integration.d.ts +29 -0
  137. package/dist/consumer-integration/application/use-cases/run-consumer-integration.d.ts.map +1 -0
  138. package/dist/consumer-integration/application/use-cases/run-consumer-integration.js +139 -0
  139. package/dist/consumer-integration/application/use-cases/run-consumer-integration.js.map +1 -0
  140. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts +13 -0
  141. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.d.ts.map +1 -0
  142. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js +134 -0
  143. package/dist/consumer-integration/application/use-cases/upgrade-consumer-integration.js.map +1 -0
  144. package/dist/consumer-integration/composition/consumer-integration-cli.d.ts +3 -0
  145. package/dist/consumer-integration/composition/consumer-integration-cli.d.ts.map +1 -0
  146. package/dist/consumer-integration/composition/consumer-integration-cli.js +241 -0
  147. package/dist/consumer-integration/composition/consumer-integration-cli.js.map +1 -0
  148. package/dist/consumer-integration/composition/consumer-integration-planner.d.ts +19 -0
  149. package/dist/consumer-integration/composition/consumer-integration-planner.d.ts.map +1 -0
  150. package/dist/consumer-integration/composition/consumer-integration-planner.js +14 -0
  151. package/dist/consumer-integration/composition/consumer-integration-planner.js.map +1 -0
  152. package/dist/consumer-integration/composition/node-consumer-integration.d.ts +26 -0
  153. package/dist/consumer-integration/composition/node-consumer-integration.d.ts.map +1 -0
  154. package/dist/consumer-integration/composition/node-consumer-integration.js +38 -0
  155. package/dist/consumer-integration/composition/node-consumer-integration.js.map +1 -0
  156. package/dist/consumer-integration/domain/model.d.ts +111 -0
  157. package/dist/consumer-integration/domain/model.d.ts.map +1 -0
  158. package/dist/consumer-integration/domain/model.js +2 -0
  159. package/dist/consumer-integration/domain/model.js.map +1 -0
  160. package/dist/consumer-integration/generated/canonical-assets.d.ts +5 -0
  161. package/dist/consumer-integration/generated/canonical-assets.d.ts.map +1 -0
  162. package/dist/consumer-integration/generated/canonical-assets.js +6 -0
  163. package/dist/consumer-integration/generated/canonical-assets.js.map +1 -0
  164. package/dist/consumer-integration/index.d.ts +12 -0
  165. package/dist/consumer-integration/index.d.ts.map +1 -0
  166. package/dist/consumer-integration/index.js +7 -0
  167. package/dist/consumer-integration/index.js.map +1 -0
  168. package/dist/index.d.ts +5 -0
  169. package/dist/index.d.ts.map +1 -0
  170. package/dist/index.js +4 -0
  171. package/dist/index.js.map +1 -0
  172. package/dist/qualification/index.d.ts +3 -0
  173. package/dist/qualification/index.d.ts.map +1 -0
  174. package/dist/qualification/index.js +2 -0
  175. package/dist/qualification/index.js.map +1 -0
  176. package/dist/qualification/managed-command-envelope-validator.d.ts +14 -0
  177. package/dist/qualification/managed-command-envelope-validator.d.ts.map +1 -0
  178. package/dist/qualification/managed-command-envelope-validator.js +33 -0
  179. package/dist/qualification/managed-command-envelope-validator.js.map +1 -0
  180. package/dist/qualification/qualification-v2-runner.d.ts +4 -0
  181. package/dist/qualification/qualification-v2-runner.d.ts.map +1 -0
  182. package/dist/qualification/qualification-v2-runner.js +344 -0
  183. package/dist/qualification/qualification-v2-runner.js.map +1 -0
  184. package/dist/qualification/v2-contract.d.ts +91 -0
  185. package/dist/qualification/v2-contract.d.ts.map +1 -0
  186. package/dist/qualification/v2-contract.js +2 -0
  187. package/dist/qualification/v2-contract.js.map +1 -0
  188. package/package.json +66 -0
  189. package/schemas/docs-consumer-integration-execution/v1.schema.json +29 -0
  190. package/schemas/docs-consumer-integration-plan/v1.schema.json +63 -0
  191. package/schemas/docs-consumer-integration-profile/v1.schema.json +110 -0
  192. package/schemas/docs-consumer-integration-profile/v2.schema.json +283 -0
  193. package/schemas/docs-consumer-managed-state/v1.schema.json +99 -0
  194. package/schemas/docs-consumer-upgrade-execution/v1.schema.json +44 -0
  195. package/schemas/docs-protocol-command-envelope/v1.schema.json +239 -0
  196. package/schemas/docs-protocol-command-envelope/v2.schema.json +285 -0
  197. package/schemas/docs-protocol-command-envelope/v3.schema.json +529 -0
  198. package/schemas/docs-protocol-profile/v1.schema.json +46 -0
  199. package/schemas/docs-protocol-profile/v2.schema.json +46 -0
  200. package/schemas/docs-protocol-qualification/v2.schema.json +78 -0
  201. package/schemas/docs-protocol-qualification-receipt/v2.schema.json +113 -0
  202. package/schemas/qualified-docs-cohort/v1.schema.json +96 -0
  203. package/skills/docs/SKILL.md +29 -0
@@ -0,0 +1,3 @@
1
+ export declare function parseJsonRecord(source: string): Record<string, unknown>;
2
+ export declare function recordField(manifest: Record<string, unknown>, field: string): Record<string, unknown>;
3
+ //# sourceMappingURL=strict-json-record.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strict-json-record.d.ts","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/strict-json-record.ts"],"names":[],"mappings":"AASA,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAWvE;AAED,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,KAAK,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzB"}
@@ -0,0 +1,27 @@
1
+ import { parseDocument } from "yaml";
2
+ class ConsumerJsonInputError extends Error {
3
+ constructor(message) {
4
+ super(message);
5
+ this.name = "ConsumerJsonInputError";
6
+ }
7
+ }
8
+ export function parseJsonRecord(source) {
9
+ const duplicateCheck = parseDocument(source, { uniqueKeys: true });
10
+ if (duplicateCheck.errors.length > 0) {
11
+ throw new ConsumerJsonInputError("Package manifest must not contain duplicate keys.");
12
+ }
13
+ const value = JSON.parse(source);
14
+ if (typeof value !== "object" || value === null || Array.isArray(value) ||
15
+ Object.getPrototypeOf(value) !== Object.prototype) {
16
+ throw new ConsumerJsonInputError("Package manifest must be one JSON object.");
17
+ }
18
+ return value;
19
+ }
20
+ export function recordField(manifest, field) {
21
+ const value = manifest[field];
22
+ return typeof value === "object" && value !== null && !Array.isArray(value) &&
23
+ Object.getPrototypeOf(value) === Object.prototype
24
+ ? value
25
+ : {};
26
+ }
27
+ //# sourceMappingURL=strict-json-record.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strict-json-record.js","sourceRoot":"","sources":["../../../src/consumer-integration/adapters/strict-json-record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,sBAAuB,SAAQ,KAAK;IACxC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,MAAM,UAAU,eAAe,CAAC,MAAc;IAC5C,MAAM,cAAc,GAAG,aAAa,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,sBAAsB,CAAC,mDAAmD,CAAC,CAAC;IACxF,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAY,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QACpD,MAAM,IAAI,sBAAsB,CAAC,2CAA2C,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,QAAiC,EACjC,KAAa;IAEb,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,SAAS;QACjD,CAAC,CAAC,KAAgC;QAClC,CAAC,CAAC,EAAE,CAAC;AACT,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { KnownFileTransactionReceiptV1 } from "@agent-teams/repository-mutation";
2
+ import type { ConsumerIntegrationIssue, ConsumerIntegrationPlanV1 } from "../../domain/model.js";
3
+ export interface ConsumerIntegrationExecutionV1 {
4
+ readonly schemaVersion: 1;
5
+ readonly command: "consumer.apply" | "consumer.check" | "consumer.plan" | "consumer.recover";
6
+ readonly outcome: "applied" | "blocked" | "change-required" | "current" | "recovered";
7
+ readonly issues: readonly ConsumerIntegrationIssue[];
8
+ readonly plan?: ConsumerIntegrationPlanV1;
9
+ readonly receipt?: KnownFileTransactionReceiptV1;
10
+ }
11
+ //# sourceMappingURL=consumer-integration-execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-integration-execution.d.ts","sourceRoot":"","sources":["../../../../src/consumer-integration/application/model/consumer-integration-execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEtF,OAAO,KAAK,EACV,wBAAwB,EACxB,yBAAyB,EAC1B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,GAAG,eAAe,GAAG,kBAAkB,CAAC;IAC7F,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,iBAAiB,GAAG,SAAS,GAAG,WAAW,CAAC;IACtF,QAAQ,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,yBAAyB,CAAC;IAC1C,QAAQ,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC;CAClD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=consumer-integration-execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-integration-execution.js","sourceRoot":"","sources":["../../../../src/consumer-integration/application/model/consumer-integration-execution.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import type { KnownFileTransactionReceiptV1 } from "@agent-teams/repository-mutation";
2
+ import type { ConsumerIntegrationDigest, ConsumerIntegrationIssue, ConsumerUpgradeAuthorityV1 } from "../../domain/model.js";
3
+ export interface ConsumerUpgradeExecutionV1 {
4
+ readonly schemaVersion: 1;
5
+ readonly command: "consumer.upgrade";
6
+ readonly outcome: "blocked" | "current" | "upgraded";
7
+ readonly issues: readonly ConsumerIntegrationIssue[];
8
+ readonly authority?: {
9
+ readonly repository: ConsumerUpgradeAuthorityV1["repository"];
10
+ readonly path: ConsumerUpgradeAuthorityV1["path"];
11
+ readonly revision: string;
12
+ readonly cohortId: string;
13
+ readonly recordDigest: ConsumerIntegrationDigest;
14
+ readonly qualificationEventDigest: ConsumerIntegrationDigest;
15
+ };
16
+ readonly receipt?: KnownFileTransactionReceiptV1;
17
+ }
18
+ //# sourceMappingURL=consumer-upgrade-execution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-upgrade-execution.d.ts","sourceRoot":"","sources":["../../../../src/consumer-integration/application/model/consumer-upgrade-execution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,6BAA6B,EAC9B,MAAM,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EACV,yBAAyB,EACzB,wBAAwB,EACxB,0BAA0B,EAC3B,MAAM,uBAAuB,CAAC;AAE/B,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IACrC,QAAQ,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IACrD,QAAQ,CAAC,MAAM,EAAE,SAAS,wBAAwB,EAAE,CAAC;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE;QACnB,QAAQ,CAAC,UAAU,EAAE,0BAA0B,CAAC,YAAY,CAAC,CAAC;QAC9D,QAAQ,CAAC,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,YAAY,EAAE,yBAAyB,CAAC;QACjD,QAAQ,CAAC,wBAAwB,EAAE,yBAAyB,CAAC;KAC9D,CAAC;IACF,QAAQ,CAAC,OAAO,CAAC,EAAE,6BAA6B,CAAC;CAClD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=consumer-upgrade-execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-upgrade-execution.js","sourceRoot":"","sources":["../../../../src/consumer-integration/application/model/consumer-upgrade-execution.ts"],"names":[],"mappings":""}
@@ -0,0 +1,58 @@
1
+ import type { ConsumerIntegrationDesiredStateV1, ConsumerIntegrationDigest, QualifiedDocsCohortBindingV1 } from "../../domain/model.js";
2
+ export declare const CANONICAL_DOCS_SKILL: "---\nname: docs-authoring\ndescription: Use when creating, changing, reorganizing, or reviewing governed documentation in this repository.\n---\n\n# Documentation Authoring\n\nProtocol: `agent-teams.docs-protocol/v1`.\n\n## Required workflow\n\n- Read the current types, owners, placement, metadata, and index policy with `pnpm docs:info`.\n- Search first with `pnpm docs:find -- --text query`.\n- Reuse or relate existing authority instead of creating a competing source.\n- Preview with `pnpm docs:new -- --type TYPE --id ID --title TITLE --owner OWNER --summary SUMMARY --dry-run`.\n- Review the exact destination, metadata, relations, anchors, and diagnostics.\n- Apply with `pnpm docs:new -- --type TYPE --id ID --title TITLE --owner OWNER --summary SUMMARY --apply` after review.\n- Manually update the reported index/link exactly when reachability requires it.\n- Finish with `pnpm docs:check` after the index is current.\n\n## Rules\n\n- Never invent owners, types, statuses, paths, or metadata outside `docs:info`.\n- If dependencies are absent, use only `pnpm install --frozen-lockfile`; never use npx, dlx, or latest tags.\n- Keep preview and apply inputs identical.\n- Stop when recovery is required; use `pnpm docs:doctor` before `pnpm docs:recover`.\n- Resolve required anchors and blockers before apply.\n- Do not bypass repository scripts or hand-edit transaction evidence.\n";
3
+ export declare const CANONICAL_DOCS_SKILL_V2: "---\nname: docs-authoring\ndescription: Use when creating, changing, reorganizing, or reviewing governed documentation in this repository.\n---\n\n# Documentation Authoring\n\nProtocol: `agent-teams.docs-protocol/v1`.\n\n## Required workflow\n\n- Read the current types, owners, placement, metadata, and index policy with `pnpm docs:info`.\n- Search first with `pnpm docs:find -- --text query`.\n- Reuse or relate existing authority instead of creating a competing source.\n- Preview with `pnpm docs:new -- --type TYPE --id ID --title TITLE --owner OWNER --summary SUMMARY --dry-run`.\n- Review the exact destination, metadata, relations, anchors, and diagnostics.\n- Apply with `pnpm docs:new -- --type TYPE --id ID --title TITLE --owner OWNER --summary SUMMARY --apply` after review.\n- Manually update the reported index/link exactly when reachability requires it.\n- For edits, preserve canonical frontmatter and sidecar ownership; use the repository's governed review flow rather than bypassing the create-only writer.\n- For accepted authority, record supersession explicitly instead of silently rewriting history.\n- Finish with the full consumer gate `pnpm docs:protocol:check` after the index is current.\n\n## Rules\n- Never invent owners, types, statuses, paths, or metadata outside `docs:info`.\n- If dependencies are absent, use only `pnpm install --frozen-lockfile`; never use npx, dlx, or latest tags.\n- Keep preview and apply inputs identical.\n- Stop when recovery is required; use `pnpm docs:doctor` before `pnpm docs:recover`.\n- Resolve required anchors and blockers before apply.\n- Do not bypass repository scripts or hand-edit transaction evidence.\n";
4
+ export declare const CANONICAL_CALLER_WORKFLOW_TEMPLATE: "name: Documentation Protocol\n\non:\n pull_request:\n merge_group:\n push:\n\npermissions:\n contents: read\n id-token: write\n\njobs:\n docs-protocol:\n uses: {{REUSABLE_WORKFLOW_REPOSITORY}}/{{REUSABLE_WORKFLOW_PATH}}@{{REUSABLE_WORKFLOW_REVISION}}\n";
5
+ export declare const BOOTSTRAP_KNOWN_PRIOR_DOCS_SKILLS: readonly Uint8Array[];
6
+ export declare const MANAGED_ROUTE_BEGIN = "<!-- agent-teams-docs:route/v1 begin -->";
7
+ export declare const MANAGED_ROUTE_END = "<!-- agent-teams-docs:route/v1 end -->";
8
+ export declare const BOOTSTRAP_KNOWN_PRIOR_CALLER_WORKFLOWS: readonly Uint8Array[];
9
+ export interface KnownPriorCohortCatalogEntryV1 {
10
+ readonly cohort: QualifiedDocsCohortBindingV1;
11
+ readonly skill: Uint8Array;
12
+ readonly callerWorkflow: Uint8Array;
13
+ readonly agentsRouteDigest: ConsumerIntegrationDigest;
14
+ readonly docsScriptsDigest: ConsumerIntegrationDigest;
15
+ }
16
+ export interface CurrentSourceExecutorV1 {
17
+ readonly packages: QualifiedDocsCohortBindingV1["packages"];
18
+ readonly schemas: QualifiedDocsCohortBindingV1["schemas"];
19
+ readonly runtime: QualifiedDocsCohortBindingV1["runtime"];
20
+ readonly assetCatalogDigest: ConsumerIntegrationDigest;
21
+ readonly skillDigest: ConsumerIntegrationDigest;
22
+ readonly callerWorkflowDigest: ConsumerIntegrationDigest;
23
+ readonly agentsRouteDigest: ConsumerIntegrationDigest;
24
+ readonly docsScriptsDigest: ConsumerIntegrationDigest;
25
+ readonly directTargetCohortIds: readonly string[];
26
+ }
27
+ export interface ConsumerAssetCatalogV1 {
28
+ readonly catalogDigest: ConsumerIntegrationDigest;
29
+ readonly transitionCatalogDigest: ConsumerIntegrationDigest;
30
+ readonly currentSourceExecutors: readonly CurrentSourceExecutorV1[];
31
+ readonly directTargetBundles: readonly KnownPriorCohortCatalogEntryV1[];
32
+ }
33
+ export declare const BUNDLED_KNOWN_PRIOR_COHORTS: readonly KnownPriorCohortCatalogEntryV1[];
34
+ export declare const BUNDLED_CURRENT_SOURCE_EXECUTORS: readonly CurrentSourceExecutorV1[];
35
+ export declare const CANONICAL_TRANSITION_CATALOG = "{\"currentSourceExecutors\":[],\"directTargetBundles\":[{\"agentsRouteDigest\":\"sha256:08ca6c0782dbc36ace6359c8fe36807810f9668d999c7d9e8ead6bf281d9bf30\",\"callerWorkflowDigest\":\"sha256:097df9fe1b90ab45f73389c8b69736f8a54d4199b09536d586222b5a7f0fbb09\",\"callerWorkflowPath\":\"assets/history/sha256-097df9fe1b90ab45f73389c8b69736f8a54d4199b09536d586222b5a7f0fbb09/caller.yml\",\"cohort\":{\"assets\":{\"assetCatalogDigest\":\"sha256:0e24e8f1342b3ccd1e5939a45ed5fd55780ac3aa32bd8b25113924d5eb4da02f\",\"callerWorkflowDigest\":\"sha256:097df9fe1b90ab45f73389c8b69736f8a54d4199b09536d586222b5a7f0fbb09\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"transitionCatalogDigest\":\"sha256:5ada68b861bde63af2e1626e467ed09394b6c11bb13b17a443f0cb1741524b46\"},\"channel\":\"rc\",\"cohortId\":\"docs-2026-08-17-rc1\",\"eligibleAfter\":\"2026-08-18T02:32:57Z\",\"packages\":{\"docsProtocol\":{\"integrity\":\"sha512-OkUNMNTLEFNF/EU8L4G5+9WTg0LugsZ8nxv7dnFpPKJEUVcUrooNO2QY7DhOhHuCVDKP2ShTciCtBjra93RtJA==\",\"version\":\"0.1.0-rc.2\"},\"engineeringFoundation\":{\"integrity\":\"sha512-OLMoWreeMXfKVkVTA4A/plBZXgDE6DNB+AX7QK6K5s90s943n6vf57nskIu0eLHsQGKQ7X+AvF+DCR/57YbZtA==\",\"version\":\"0.17.0-rc.1\"}},\"qualificationEventDigest\":\"sha256:4b6f1684bb32ff0cd674d8d738ce0ed85744cb977cb8f181ad14e5b8c243cc71\",\"recordDigest\":\"sha256:5fffddec78e70c72a689c3f4957c74b7dac17e140dff6b87f2eadb6a2c61f968\",\"rollbackTo\":[],\"runtime\":{\"node\":\">=24.18.0 <25\",\"pnpm\":\">=11.17.0 <12\",\"runtimeClosureDigest\":\"sha256:64dac5ed1f1d565301b7195837e3c579d7a993d137c59afb9f299f6972d5c95e\"},\"schemas\":{\"consumerIntegration\":1,\"docsProtocol\":1,\"managedState\":1},\"schemaVersion\":1,\"upgradeFrom\":[],\"workflow\":{\"blobSha\":\"7d0f9c73a6bc1ddc2384f0ea06774719dc14458c\",\"path\":\".github/workflows/docs-protocol-check.yml\",\"repository\":\"agent-teams-ai/.github\",\"revision\":\"d55ebd46208f67736b5b76e7ef48a890570feeab\"}},\"docsScriptsDigest\":\"sha256:7a502ddeda5e3d0296b712b5c07e0905a9b7a8fcd374d37db8a02cb026a37881\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"skillPath\":\"assets/history/sha256-7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e/skill.md\"},{\"agentsRouteDigest\":\"sha256:08ca6c0782dbc36ace6359c8fe36807810f9668d999c7d9e8ead6bf281d9bf30\",\"callerWorkflowDigest\":\"sha256:3e53262efc8a530b532380dac21d876456473d3b88aba20889a1d24823bf3a1b\",\"callerWorkflowPath\":\"assets/history/sha256-3e53262efc8a530b532380dac21d876456473d3b88aba20889a1d24823bf3a1b/caller.yml\",\"cohort\":{\"assets\":{\"assetCatalogDigest\":\"sha256:b156dba1b2b88aa53bd9196dd49e93c0a153f6fb155ed2ce89c5dc1a0bf8eeb6\",\"callerWorkflowDigest\":\"sha256:3e53262efc8a530b532380dac21d876456473d3b88aba20889a1d24823bf3a1b\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"transitionCatalogDigest\":\"sha256:dcc2d636629237eab4918fb513f538a538b6ac3672a928bdffe866cf4fec9a7f\"},\"channel\":\"rc\",\"cohortId\":\"docs-2026-08-17-rc7\",\"eligibleAfter\":\"2026-08-18T13:25:26Z\",\"packages\":{\"docsProtocol\":{\"integrity\":\"sha512-ZsbaS07YSr0udgsvFekeuc86ILn+oQ63ikuF+q5nib+1Rk+UR9to4gpeZAYQvu57Axoxi9TjZ+olE6162e1Fkg==\",\"version\":\"0.1.0-rc.5\"},\"engineeringFoundation\":{\"integrity\":\"sha512-czq6garXWUbObaqeUmgGMs3LZRKgEdOiYyMtvcnXNXI4cMjBDhwlTmW+DfQ3h5WXHo7dqzPloQvr9pjzvQhSFA==\",\"version\":\"0.17.0-rc.3\"}},\"qualificationEventDigest\":\"sha256:d24c95a0d708ec9f72340181b4cb830560ad3f44429f8df8eb65032549c57d2e\",\"recordDigest\":\"sha256:55afadf793fb62703934082c2fe682a6f678ef92ad8cd2f58d1d2d80e007c836\",\"rollbackTo\":[\"docs-2026-08-17-rc1\"],\"runtime\":{\"node\":\">=24.18.0 <25\",\"pnpm\":\">=11.17.0 <12\",\"runtimeClosureDigest\":\"sha256:318ecaf7f78162e77794fa0eb02ac452823cfd47fce913434025698171afee81\"},\"schemas\":{\"consumerIntegration\":1,\"docsProtocol\":1,\"managedState\":1},\"schemaVersion\":1,\"upgradeFrom\":[\"docs-2026-08-17-rc1\",\"docs-2026-08-17-rc4\",\"docs-2026-08-17-rc5\",\"docs-2026-08-17-rc6\"],\"workflow\":{\"blobSha\":\"d452902e36bb144f9cb2816ced77cdd8ae629cd9\",\"path\":\".github/workflows/docs-protocol-check.yml\",\"repository\":\"agent-teams-ai/.github\",\"revision\":\"57e03681e820fd0378600b5169acfa1514d1065a\"}},\"docsScriptsDigest\":\"sha256:7a502ddeda5e3d0296b712b5c07e0905a9b7a8fcd374d37db8a02cb026a37881\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"skillPath\":\"assets/history/sha256-7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e/skill.md\"},{\"agentsRouteDigest\":\"sha256:08ca6c0782dbc36ace6359c8fe36807810f9668d999c7d9e8ead6bf281d9bf30\",\"callerWorkflowDigest\":\"sha256:3e53262efc8a530b532380dac21d876456473d3b88aba20889a1d24823bf3a1b\",\"callerWorkflowPath\":\"assets/history/sha256-3e53262efc8a530b532380dac21d876456473d3b88aba20889a1d24823bf3a1b/caller.yml\",\"cohort\":{\"assets\":{\"assetCatalogDigest\":\"sha256:b156dba1b2b88aa53bd9196dd49e93c0a153f6fb155ed2ce89c5dc1a0bf8eeb6\",\"callerWorkflowDigest\":\"sha256:3e53262efc8a530b532380dac21d876456473d3b88aba20889a1d24823bf3a1b\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"transitionCatalogDigest\":\"sha256:58546ba52fdb8a3293d4e1db003557208a859b149336f56c16bc8fc9061c7192\"},\"channel\":\"rc\",\"cohortId\":\"docs-2026-08-17-rc9\",\"eligibleAfter\":\"2026-08-18T19:03:38Z\",\"packages\":{\"docsProtocol\":{\"integrity\":\"sha512-JB4cQPqpXrmVdmiycHjHbklfQBux1wYNBo+HXFRDdLxUnjJlULe1HXjNYRf93WXfhjbV6lgN+sHRy4v1EeBEYA==\",\"version\":\"0.1.0-rc.9\"},\"engineeringFoundation\":{\"integrity\":\"sha512-uhmo9waigNcHQ5jkIGQgnGK4JDah0C8er6RKTNPUURpOUOvNM6maoEyBWp5rCy1ravzzSW3QXuNaZmCujppgGQ==\",\"version\":\"0.17.0-rc.6\"}},\"qualificationEventDigest\":\"sha256:a7e7434cf91808ab77d0529c1268011f70d824b15fe4b9ecf0dcc28c5f264912\",\"recordDigest\":\"sha256:01d4017999598091c3536e4f5977847ff18a52a235de149516251e595f9722d3\",\"rollbackTo\":[\"docs-2026-08-17-rc1\"],\"runtime\":{\"node\":\">=24.18.0 <25\",\"pnpm\":\">=11.17.0 <12\",\"runtimeClosureDigest\":\"sha256:da419d5445a4537e282d8585af537edb1d63075e8bda75f5d1419d3e5bc0dd64\"},\"schemas\":{\"consumerIntegration\":1,\"docsProtocol\":1,\"managedState\":1},\"schemaVersion\":1,\"upgradeFrom\":[\"docs-2026-08-17-rc1\",\"docs-2026-08-17-rc4\",\"docs-2026-08-17-rc5\",\"docs-2026-08-17-rc6\",\"docs-2026-08-17-rc7\",\"docs-2026-08-17-rc8\"],\"workflow\":{\"blobSha\":\"d452902e36bb144f9cb2816ced77cdd8ae629cd9\",\"path\":\".github/workflows/docs-protocol-check.yml\",\"repository\":\"agent-teams-ai/.github\",\"revision\":\"57e03681e820fd0378600b5169acfa1514d1065a\"}},\"docsScriptsDigest\":\"sha256:7a502ddeda5e3d0296b712b5c07e0905a9b7a8fcd374d37db8a02cb026a37881\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"skillPath\":\"assets/history/sha256-7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e/skill.md\"},{\"agentsRouteDigest\":\"sha256:08ca6c0782dbc36ace6359c8fe36807810f9668d999c7d9e8ead6bf281d9bf30\",\"callerWorkflowDigest\":\"sha256:fd633c3c6337e5cfe51a9f36989bb654381634c5ab4add9e4da71fe40ab4e0dd\",\"callerWorkflowPath\":\"assets/history/sha256-fd633c3c6337e5cfe51a9f36989bb654381634c5ab4add9e4da71fe40ab4e0dd/caller.yml\",\"cohort\":{\"assets\":{\"assetCatalogDigest\":\"sha256:b156dba1b2b88aa53bd9196dd49e93c0a153f6fb155ed2ce89c5dc1a0bf8eeb6\",\"callerWorkflowDigest\":\"sha256:fd633c3c6337e5cfe51a9f36989bb654381634c5ab4add9e4da71fe40ab4e0dd\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"transitionCatalogDigest\":\"sha256:3c97ac8f2131d8578b865114161daff9391a3759bd432c3cd0e5fa179ff9d110\"},\"channel\":\"rc\",\"cohortId\":\"docs-2026-08-18-rc1\",\"eligibleAfter\":\"2026-08-18T23:44:26Z\",\"packages\":{\"docsProtocol\":{\"integrity\":\"sha512-5s7lzL4mesiaxfb+IaI6A2BOuZxPDORIr5O2yFZTQXVXpBR1N45wxyAtS4f/0WBUmAwKnf+NgE9ln1GuMWV7PA==\",\"version\":\"0.1.0-rc.10\"},\"engineeringFoundation\":{\"integrity\":\"sha512-Z2kPryDLikB5rmcQOzTQSA6JboU2Hn2ZBotI8PIN0mYZ2HuADunowY6GBgSQ1o7Xb1EIrWNq4i7HEkbhOE1XMw==\",\"version\":\"0.17.0-rc.7\"}},\"qualificationEventDigest\":\"sha256:78440bff3be4beec3c40a87bd3d65156ab9367a25650050945dc535d294e7139\",\"recordDigest\":\"sha256:b034d870526169f77ce2b454b58313df5d674f1af0ad8a5931be269d303a6dc2\",\"rollbackTo\":[\"docs-2026-08-17-rc9\"],\"runtime\":{\"node\":\">=24.18.0 <25\",\"pnpm\":\">=11.17.0 <12\",\"runtimeClosureDigest\":\"sha256:ad074f5f983f04649383cd2c2db55fd29536f3784eaf77b7b4927e4d691046bf\"},\"schemas\":{\"consumerIntegration\":1,\"docsProtocol\":1,\"managedState\":1},\"schemaVersion\":1,\"upgradeFrom\":[\"docs-2026-08-17-rc9\"],\"workflow\":{\"blobSha\":\"d452902e36bb144f9cb2816ced77cdd8ae629cd9\",\"path\":\".github/workflows/docs-protocol-check.yml\",\"repository\":\"agent-teams-ai/.github\",\"revision\":\"66f14ef062656f9c2d10cc211f814e8a7c864b25\"}},\"docsScriptsDigest\":\"sha256:7a502ddeda5e3d0296b712b5c07e0905a9b7a8fcd374d37db8a02cb026a37881\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"skillPath\":\"assets/history/sha256-7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e/skill.md\"},{\"agentsRouteDigest\":\"sha256:08ca6c0782dbc36ace6359c8fe36807810f9668d999c7d9e8ead6bf281d9bf30\",\"callerWorkflowDigest\":\"sha256:51d3f02a352ce2c3b0a4068a86b6899a57ab54b0a876c468e3fb3e536519caca\",\"callerWorkflowPath\":\"assets/history/sha256-51d3f02a352ce2c3b0a4068a86b6899a57ab54b0a876c468e3fb3e536519caca/caller.yml\",\"cohort\":{\"assets\":{\"assetCatalogDigest\":\"sha256:b156dba1b2b88aa53bd9196dd49e93c0a153f6fb155ed2ce89c5dc1a0bf8eeb6\",\"callerWorkflowDigest\":\"sha256:51d3f02a352ce2c3b0a4068a86b6899a57ab54b0a876c468e3fb3e536519caca\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"transitionCatalogDigest\":\"sha256:e9055f32a78bfba55e16c829383ec87fe2626da0ad8ee79b958753b574c441a1\"},\"channel\":\"rc\",\"cohortId\":\"docs-2026-08-18-rc2\",\"eligibleAfter\":\"2026-08-19T03:39:37Z\",\"packages\":{\"docsProtocol\":{\"integrity\":\"sha512-ZxrhOFbc8iKn167sIszuFpzyPksrPExPRRpXBXtjZ85Bvf4iNyNgxcOk3NkStl0Jsm+8J67lI12bQK/Xs/mlDQ==\",\"version\":\"0.1.0-rc.12\"},\"engineeringFoundation\":{\"integrity\":\"sha512-srrROkDs3GfHmx8L74AKq3sgl8zf1fYKGnUq8mtvhI09ZcosGZvqgQ5tXyDIrLUlWcGsIn1Yv8lOt8G1QFnuEA==\",\"version\":\"0.17.0-rc.8\"}},\"qualificationEventDigest\":\"sha256:5166d2df2cc6abfcabb7784d094668a309283d6d73d60ddbd0239ea162f6f502\",\"recordDigest\":\"sha256:02bc526540933e6ad1a1a648fa4398db199317a8de9dfa480adcf821c702bfd4\",\"rollbackTo\":[\"docs-2026-08-18-rc1\"],\"runtime\":{\"node\":\">=24.18.0 <25\",\"pnpm\":\">=11.17.0 <12\",\"runtimeClosureDigest\":\"sha256:031f8f0e946dfb8dbe17683b226bf79aeb6d0d379a37eb0124498667e0518cd8\"},\"schemas\":{\"consumerIntegration\":1,\"docsProtocol\":1,\"managedState\":1},\"schemaVersion\":1,\"upgradeFrom\":[\"docs-2026-08-18-rc1\"],\"workflow\":{\"blobSha\":\"d452902e36bb144f9cb2816ced77cdd8ae629cd9\",\"path\":\".github/workflows/docs-protocol-check.yml\",\"repository\":\"agent-teams-ai/.github\",\"revision\":\"2375b0451a54b4889addef676b4788e14ad914c5\"}},\"docsScriptsDigest\":\"sha256:7a502ddeda5e3d0296b712b5c07e0905a9b7a8fcd374d37db8a02cb026a37881\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"skillPath\":\"assets/history/sha256-7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e/skill.md\"},{\"agentsRouteDigest\":\"sha256:08ca6c0782dbc36ace6359c8fe36807810f9668d999c7d9e8ead6bf281d9bf30\",\"callerWorkflowDigest\":\"sha256:51d3f02a352ce2c3b0a4068a86b6899a57ab54b0a876c468e3fb3e536519caca\",\"callerWorkflowPath\":\"assets/history/sha256-51d3f02a352ce2c3b0a4068a86b6899a57ab54b0a876c468e3fb3e536519caca/caller.yml\",\"cohort\":{\"assets\":{\"assetCatalogDigest\":\"sha256:b156dba1b2b88aa53bd9196dd49e93c0a153f6fb155ed2ce89c5dc1a0bf8eeb6\",\"callerWorkflowDigest\":\"sha256:51d3f02a352ce2c3b0a4068a86b6899a57ab54b0a876c468e3fb3e536519caca\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"transitionCatalogDigest\":\"sha256:e9055f32a78bfba55e16c829383ec87fe2626da0ad8ee79b958753b574c441a1\"},\"channel\":\"rc\",\"cohortId\":\"docs-2026-08-18-rc3\",\"eligibleAfter\":\"2026-08-19T03:39:37Z\",\"packages\":{\"docsProtocol\":{\"integrity\":\"sha512-ZxrhOFbc8iKn167sIszuFpzyPksrPExPRRpXBXtjZ85Bvf4iNyNgxcOk3NkStl0Jsm+8J67lI12bQK/Xs/mlDQ==\",\"version\":\"0.1.0-rc.12\"},\"engineeringFoundation\":{\"integrity\":\"sha512-srrROkDs3GfHmx8L74AKq3sgl8zf1fYKGnUq8mtvhI09ZcosGZvqgQ5tXyDIrLUlWcGsIn1Yv8lOt8G1QFnuEA==\",\"version\":\"0.17.0-rc.8\"}},\"qualificationEventDigest\":\"sha256:6f734db2339220d23db616ff9c5c7bd7d040c5dfb66a3b3da8b3f70bfa6ae790\",\"recordDigest\":\"sha256:cc4585d73976aa9edae4a685bc907da010ce05752da37973932153ba0e57ef85\",\"rollbackTo\":[\"docs-2026-08-18-rc1\"],\"runtime\":{\"node\":\">=24.18.0 <25\",\"pnpm\":\">=11.17.0 <12\",\"runtimeClosureDigest\":\"sha256:031f8f0e946dfb8dbe17683b226bf79aeb6d0d379a37eb0124498667e0518cd8\"},\"schemas\":{\"consumerIntegration\":1,\"docsProtocol\":1,\"managedState\":1},\"schemaVersion\":1,\"upgradeFrom\":[\"docs-2026-08-18-rc1\"],\"workflow\":{\"blobSha\":\"d452902e36bb144f9cb2816ced77cdd8ae629cd9\",\"path\":\".github/workflows/docs-protocol-check.yml\",\"repository\":\"agent-teams-ai/.github\",\"revision\":\"2375b0451a54b4889addef676b4788e14ad914c5\"}},\"docsScriptsDigest\":\"sha256:7a502ddeda5e3d0296b712b5c07e0905a9b7a8fcd374d37db8a02cb026a37881\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"skillPath\":\"assets/history/sha256-7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e/skill.md\"},{\"agentsRouteDigest\":\"sha256:08ca6c0782dbc36ace6359c8fe36807810f9668d999c7d9e8ead6bf281d9bf30\",\"callerWorkflowDigest\":\"sha256:f21dc19277a4ba24bcef90a7071c9cf50adf144769f42d6f74ff4eac9ef117cf\",\"callerWorkflowPath\":\"assets/history/sha256-f21dc19277a4ba24bcef90a7071c9cf50adf144769f42d6f74ff4eac9ef117cf/caller.yml\",\"cohort\":{\"assets\":{\"assetCatalogDigest\":\"sha256:b156dba1b2b88aa53bd9196dd49e93c0a153f6fb155ed2ce89c5dc1a0bf8eeb6\",\"callerWorkflowDigest\":\"sha256:f21dc19277a4ba24bcef90a7071c9cf50adf144769f42d6f74ff4eac9ef117cf\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"transitionCatalogDigest\":\"sha256:3672621f9d68e7bcef74b6560e2b8f54cfa08b475b22bb82a56b9b34d96a803d\"},\"channel\":\"stable\",\"cohortId\":\"docs-2026-08-23-stable1\",\"eligibleAfter\":\"2026-08-24T14:10:53Z\",\"packages\":{\"docsProtocol\":{\"integrity\":\"sha512-Ci+UhsSUg+9K27zTbWBFUOO+DgWW80ZS4sCKK+K20W7hMDrG6ZXvDa1N/idmnbStytvWMa3baX0ppC1HwaN9FA==\",\"version\":\"0.1.1\"},\"engineeringFoundation\":{\"integrity\":\"sha512-ISF8bDrXN9ZQPtlDSGD+fE8zFaCAv1sLVddGUCJ5ysI0hnGuqrc8kNW442ly0Dxn34qvIjJ7TANZDAaNggpa9w==\",\"version\":\"0.17.0\"}},\"qualificationEventDigest\":\"sha256:1e3a7faaf9fcbed32534536914d67fecafe35e3fb5d109c531c24d935320e55c\",\"recordDigest\":\"sha256:a35177e6ff340a475440b7f38bf099962ad3b39f2c50af56d43ba3cd08e0905f\",\"rollbackTo\":[],\"runtime\":{\"node\":\">=24.18.0 <25\",\"pnpm\":\">=11.17.0 <12\",\"runtimeClosureDigest\":\"sha256:6b1a419fc7437d5d4d0744f4013d6d9349a3220d268d4c20fc788439ec5bb902\"},\"schemas\":{\"consumerIntegration\":1,\"docsProtocol\":1,\"managedState\":1},\"schemaVersion\":1,\"upgradeFrom\":[\"docs-2026-08-18-rc3\"],\"workflow\":{\"blobSha\":\"d452902e36bb144f9cb2816ced77cdd8ae629cd9\",\"path\":\".github/workflows/docs-protocol-check.yml\",\"repository\":\"agent-teams-ai/.github\",\"revision\":\"94190f4df44b536804fdef8341eab226d2b94f9c\"}},\"docsScriptsDigest\":\"sha256:7a502ddeda5e3d0296b712b5c07e0905a9b7a8fcd374d37db8a02cb026a37881\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"skillPath\":\"assets/history/sha256-7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e/skill.md\"},{\"agentsRouteDigest\":\"sha256:08ca6c0782dbc36ace6359c8fe36807810f9668d999c7d9e8ead6bf281d9bf30\",\"callerWorkflowDigest\":\"sha256:d697c5c7c9bcfccfc006fcf7e4d4cc8e7c629f9689781b9b0b50f30d82bc019e\",\"callerWorkflowPath\":\"assets/history/sha256-d697c5c7c9bcfccfc006fcf7e4d4cc8e7c629f9689781b9b0b50f30d82bc019e/caller.yml\",\"cohort\":{\"assets\":{\"assetCatalogDigest\":\"sha256:b156dba1b2b88aa53bd9196dd49e93c0a153f6fb155ed2ce89c5dc1a0bf8eeb6\",\"callerWorkflowDigest\":\"sha256:d697c5c7c9bcfccfc006fcf7e4d4cc8e7c629f9689781b9b0b50f30d82bc019e\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"transitionCatalogDigest\":\"sha256:dd76dbd4c196bff1440f3ce105ebb65656d1c59c04c7a983a6831d100e6e8bcc\"},\"channel\":\"stable\",\"cohortId\":\"docs-2026-08-24-stable2\",\"eligibleAfter\":\"2026-08-25T15:43:15Z\",\"packages\":{\"docsProtocol\":{\"integrity\":\"sha512-gSC7j0AsSwriQRQ0sVKNZjrjU7qQArAsWfDwWUw9GoSsswEJlyjpuKbe6D7+ockc/m8esLWDz/G4B4qCASgFTg==\",\"version\":\"0.1.2\"},\"engineeringFoundation\":{\"integrity\":\"sha512-n6coMdQHgTTzuUWNDqYO9S4jd4oYTu11lxKbG188Pdd4dFAYrDUtjPtL/ZtAkTgFb2jbDLvjqQkeKU70MTGoCg==\",\"version\":\"0.18.0\"}},\"qualificationEventDigest\":\"sha256:be018ba57362a06d796386707ab75da7d670c2107c0dc1e582ffe75914cff6bf\",\"recordDigest\":\"sha256:b37736f98967b8727d9f1466f165bb8a6345ec8f4677462cd19a2247372ae003\",\"rollbackTo\":[],\"runtime\":{\"node\":\">=24.18.0 <25\",\"pnpm\":\">=11.17.0 <12\",\"runtimeClosureDigest\":\"sha256:91df738a5e8b5910833b20fa8937b9b15c8c9fdb30df2ba14e4b643db2976f92\"},\"schemas\":{\"consumerIntegration\":1,\"docsProtocol\":1,\"managedState\":1},\"schemaVersion\":1,\"upgradeFrom\":[\"docs-2026-08-18-rc2\",\"docs-2026-08-23-stable1\"],\"workflow\":{\"blobSha\":\"d452902e36bb144f9cb2816ced77cdd8ae629cd9\",\"path\":\".github/workflows/docs-protocol-check.yml\",\"repository\":\"agent-teams-ai/.github\",\"revision\":\"fdfedb5f76bc74a5bec37bf3afca2290658311ae\"}},\"docsScriptsDigest\":\"sha256:7a502ddeda5e3d0296b712b5c07e0905a9b7a8fcd374d37db8a02cb026a37881\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"skillPath\":\"assets/history/sha256-7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e/skill.md\"},{\"agentsRouteDigest\":\"sha256:08ca6c0782dbc36ace6359c8fe36807810f9668d999c7d9e8ead6bf281d9bf30\",\"callerWorkflowDigest\":\"sha256:d697c5c7c9bcfccfc006fcf7e4d4cc8e7c629f9689781b9b0b50f30d82bc019e\",\"callerWorkflowPath\":\"assets/history/sha256-d697c5c7c9bcfccfc006fcf7e4d4cc8e7c629f9689781b9b0b50f30d82bc019e/caller.yml\",\"cohort\":{\"assets\":{\"assetCatalogDigest\":\"sha256:b156dba1b2b88aa53bd9196dd49e93c0a153f6fb155ed2ce89c5dc1a0bf8eeb6\",\"callerWorkflowDigest\":\"sha256:d697c5c7c9bcfccfc006fcf7e4d4cc8e7c629f9689781b9b0b50f30d82bc019e\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"transitionCatalogDigest\":\"sha256:08ca500ede528c424e8d4da21047c14e162ecc27b51ec6175d9bc5b479f6bd00\"},\"channel\":\"stable\",\"cohortId\":\"docs-2026-08-25-stable3\",\"eligibleAfter\":\"2026-08-26T22:05:43Z\",\"packages\":{\"docsProtocol\":{\"integrity\":\"sha512-BIgZBbnKTkL38wULZ6alpJKeJ+nHU2gNBP9cnDOOCSpPV3E9fZLm2RRCF9VY8rpMn3WhRFHkwoVODknu8wr+bw==\",\"version\":\"0.1.4\"},\"engineeringFoundation\":{\"integrity\":\"sha512-CeIWttZYT74jgwryA+326d21xNapep8NFQkxN9I+zAoyebEZk+apVvIndx3WC8NtJZYvzuKouEh1OB+vJPadxA==\",\"version\":\"0.19.0\"}},\"qualificationEventDigest\":\"sha256:c8879b257ceda0a53e9243e1a69c0baa5aa64ce8c5ee1c9929d659e5e3366a6f\",\"recordDigest\":\"sha256:6967adc19c521f085c2772178d170218ac4327d058f120374a87b5ba2f6b8ca5\",\"rollbackTo\":[],\"runtime\":{\"node\":\">=24.18.0 <25\",\"pnpm\":\">=11.17.0 <12\",\"runtimeClosureDigest\":\"sha256:ec928825d7093ab3d1decf58c9e9cad02c0abebc6c083641c876f9ad63f698a2\"},\"schemas\":{\"consumerIntegration\":1,\"docsProtocol\":1,\"managedState\":1},\"schemaVersion\":1,\"upgradeFrom\":[\"docs-2026-08-24-stable2\"],\"workflow\":{\"blobSha\":\"d452902e36bb144f9cb2816ced77cdd8ae629cd9\",\"path\":\".github/workflows/docs-protocol-check.yml\",\"repository\":\"agent-teams-ai/.github\",\"revision\":\"fdfedb5f76bc74a5bec37bf3afca2290658311ae\"}},\"docsScriptsDigest\":\"sha256:7a502ddeda5e3d0296b712b5c07e0905a9b7a8fcd374d37db8a02cb026a37881\",\"skillDigest\":\"sha256:7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e\",\"skillPath\":\"assets/history/sha256-7b31cd257532247f64c55a014dc926c601e4d742176cfb8513b6b0d8ab48213e/skill.md\"},{\"agentsRouteDigest\":\"sha256:08ca6c0782dbc36ace6359c8fe36807810f9668d999c7d9e8ead6bf281d9bf30\",\"callerWorkflowDigest\":\"sha256:7907195753506e4b0f0e89eb3f6e495bacbd79e9b9913c9f60fc4a07dffb22e5\",\"callerWorkflowPath\":\"assets/history/sha256-7907195753506e4b0f0e89eb3f6e495bacbd79e9b9913c9f60fc4a07dffb22e5/caller.yml\",\"cohort\":{\"assets\":{\"assetCatalogDigest\":\"sha256:74cdec4a7982588c53660e9b432fc12daa7adc7a930d147a5b0e46888e210f19\",\"callerWorkflowDigest\":\"sha256:7907195753506e4b0f0e89eb3f6e495bacbd79e9b9913c9f60fc4a07dffb22e5\",\"skillDigest\":\"sha256:641265ef9ecff59c16482fdae1bc8fc56002b5a4a1ee34b102438d0ca08a86a3\",\"transitionCatalogDigest\":\"sha256:7f8df2679785c9495a73c99362987e5d2ae63e120f4bf76801b2ad72d3b66ed4\"},\"channel\":\"stable\",\"cohortId\":\"docs-2026-08-28-stable8\",\"eligibleAfter\":\"2026-08-28T23:40:55Z\",\"packages\":{\"docsProtocol\":{\"integrity\":\"sha512-KtmILYJTQf91wU643UMRh5QuO2Jnbn5f/kBD6e3agUIWv0KpuxHqEyZZPLsp0jiTA1WV4TBJa4EyFDT0Ju1/KQ==\",\"version\":\"0.2.0\"},\"engineeringFoundation\":{\"integrity\":\"sha512-YGyNyfpxyElMUALIho+pi+xM9XHXWWEV5hBBEzcysaCO1Dgz5/3GuUjQ6fQM2sCjfPo7Pd6OoFJOSKiHaqe5ZA==\",\"version\":\"0.20.0\"}},\"qualificationEventDigest\":\"sha256:bc24797129f6fedd4d252f20deebf9762da1093ff7a5dea137c32cb52d12e471\",\"recordDigest\":\"sha256:e1ad7395b51d7b912db2181d263104067c712fc0cd13bac91aa5dccbc2590cc4\",\"rollbackTo\":[],\"runtime\":{\"node\":\">=24.18.0 <25\",\"pnpm\":\">=11.17.0 <12\",\"runtimeClosureDigest\":\"sha256:ed129c55d58c16fd38978598c49ee1716af0f2db90d7242553d39078073cc620\"},\"schemas\":{\"consumerIntegration\":1,\"docsProtocol\":1,\"managedState\":1},\"schemaVersion\":1,\"upgradeFrom\":[\"docs-2026-08-25-stable3\"],\"workflow\":{\"blobSha\":\"efb9327218d89b6959ee38fa09b0e68f1ce5fe22\",\"path\":\".github/workflows/docs-protocol-check.yml\",\"repository\":\"agent-teams-ai/.github\",\"revision\":\"07d49409cb51f6124ad17673860b812a9d7b5f5b\"}},\"docsScriptsDigest\":\"sha256:7a502ddeda5e3d0296b712b5c07e0905a9b7a8fcd374d37db8a02cb026a37881\",\"skillDigest\":\"sha256:641265ef9ecff59c16482fdae1bc8fc56002b5a4a1ee34b102438d0ca08a86a3\",\"skillPath\":\"assets/history/sha256-641265ef9ecff59c16482fdae1bc8fc56002b5a4a1ee34b102438d0ca08a86a3/skill.md\"}],\"schemaVersion\":1}\n";
36
+ export declare const CANONICAL_ASSET_CATALOG: string;
37
+ export declare function isBootstrapKnownPriorCallerWorkflow(bytes: Uint8Array): boolean;
38
+ export declare function digestBytes(value: Uint8Array): ConsumerIntegrationDigest;
39
+ export declare function canonicalCallerWorkflow(cohort: QualifiedDocsCohortBindingV1): string;
40
+ export declare function canonicalDocsScriptsDigest(profilePath: string): ConsumerIntegrationDigest;
41
+ export declare function canonicalManagedRoute(skillPath: string): string;
42
+ export declare function canonicalDocsScripts(profilePath: string): Readonly<Record<string, string>>;
43
+ export declare function canonicalConsumerIntegrationJson(value: unknown): string;
44
+ export declare function canonicalManagedState(desired: ConsumerIntegrationDesiredStateV1, assets: {
45
+ readonly skillDigest: ConsumerIntegrationDigest;
46
+ readonly callerWorkflowDigest: ConsumerIntegrationDigest;
47
+ readonly assetCatalogDigest: ConsumerIntegrationDigest;
48
+ readonly transitionCatalogDigest: ConsumerIntegrationDigest;
49
+ readonly agentsRouteDigest: ConsumerIntegrationDigest;
50
+ readonly docsScriptsDigest: ConsumerIntegrationDigest;
51
+ }): string;
52
+ export declare function describeCanonicalConsumerAssets(cohort: QualifiedDocsCohortBindingV1): {
53
+ readonly skillDigest: ConsumerIntegrationDigest;
54
+ readonly callerWorkflowDigest: ConsumerIntegrationDigest;
55
+ readonly assetCatalogDigest: ConsumerIntegrationDigest;
56
+ readonly transitionCatalogDigest: ConsumerIntegrationDigest;
57
+ };
58
+ //# sourceMappingURL=consumer-integration-assets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-integration-assets.d.ts","sourceRoot":"","sources":["../../../../src/consumer-integration/application/policies/consumer-integration-assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ import { createHash } from "node:crypto";
2
+ import { GENERATED_CALLER_WORKFLOW_TEMPLATE, GENERATED_DOCS_SKILL, GENERATED_DOCS_SKILL_V2, GENERATED_TRANSITION_CATALOG } from "../../generated/canonical-assets.js";
3
+ const CATALOG_SOURCE = Object.freeze({
4
+ skill: GENERATED_DOCS_SKILL_V2,
5
+ callerWorkflowTemplate: GENERATED_CALLER_WORKFLOW_TEMPLATE
6
+ });
7
+ const LEGACY_CATALOG_SOURCE = Object.freeze({ skill: GENERATED_DOCS_SKILL });
8
+ export const CANONICAL_DOCS_SKILL = LEGACY_CATALOG_SOURCE.skill;
9
+ export const CANONICAL_DOCS_SKILL_V2 = CATALOG_SOURCE.skill;
10
+ export const CANONICAL_CALLER_WORKFLOW_TEMPLATE = CATALOG_SOURCE.callerWorkflowTemplate;
11
+ export const BOOTSTRAP_KNOWN_PRIOR_DOCS_SKILLS = Object.freeze([
12
+ Buffer.from(CANONICAL_DOCS_SKILL, "utf8"),
13
+ Buffer.from(CANONICAL_DOCS_SKILL_V2
14
+ .replace("--type TYPE --id ID --title TITLE --owner OWNER --summary SUMMARY --dry-run", "--type TYPE --id ID --dry-run")
15
+ .replace("--type TYPE --id ID --title TITLE --owner OWNER --summary SUMMARY --apply", "--type TYPE --id ID --apply")
16
+ .replace("- For edits, preserve canonical frontmatter and sidecar ownership; use the repository's governed review flow rather than bypassing the create-only writer.\n", "")
17
+ .replace("- For accepted authority, record supersession explicitly instead of silently rewriting history.\n", "")
18
+ .replace("- Finish with the full consumer gate `pnpm docs:protocol:check` after the index is current.", "- Finish with `pnpm docs:check` after the index is current.")
19
+ .replace("## Rules\n- Never invent", "## Rules\n\n- Never invent")
20
+ .replace("- If dependencies are absent, use only `pnpm install --frozen-lockfile`; never use npx, dlx, or latest tags.\n", ""), "utf8")
21
+ ]);
22
+ export const MANAGED_ROUTE_BEGIN = "<!-- agent-teams-docs:route/v1 begin -->";
23
+ export const MANAGED_ROUTE_END = "<!-- agent-teams-docs:route/v1 end -->";
24
+ const BOOTSTRAP_WORKFLOW_REVISION = "2679c8bc1e432091271d2f68ef904694e4d5838e";
25
+ export const BOOTSTRAP_KNOWN_PRIOR_CALLER_WORKFLOWS = Object.freeze([
26
+ Buffer.from(`name: Documentation Protocol
27
+
28
+ on:
29
+ pull_request:
30
+ push:
31
+ branches:
32
+ - main
33
+
34
+ permissions:
35
+ contents: read
36
+
37
+ jobs:
38
+ docs-protocol:
39
+ uses: agent-teams-ai/.github/.github/workflows/docs-protocol-check.yml@${BOOTSTRAP_WORKFLOW_REVISION}
40
+ `, "utf8")
41
+ ]);
42
+ export const BUNDLED_KNOWN_PRIOR_COHORTS = Object.freeze([]);
43
+ export const BUNDLED_CURRENT_SOURCE_EXECUTORS = Object.freeze([]);
44
+ export const CANONICAL_TRANSITION_CATALOG = GENERATED_TRANSITION_CATALOG;
45
+ export const CANONICAL_ASSET_CATALOG = `${canonicalConsumerIntegrationJson({
46
+ schemaVersion: 1,
47
+ skillPath: "skills/docs/SKILL.md",
48
+ skillDigest: digestBytes(Buffer.from(CATALOG_SOURCE.skill, "utf8")),
49
+ callerWorkflowTemplatePath: "assets/docs-protocol.yml",
50
+ callerWorkflowTemplateDigest: digestBytes(Buffer.from(CATALOG_SOURCE.callerWorkflowTemplate, "utf8")),
51
+ routeTemplate: canonicalManagedRoute("{skillPath}"),
52
+ scriptsTemplate: canonicalDocsScripts("{profilePath}"),
53
+ })}\n`;
54
+ export function isBootstrapKnownPriorCallerWorkflow(bytes) {
55
+ let source;
56
+ try {
57
+ source = new TextDecoder("utf-8", { fatal: true }).decode(bytes);
58
+ }
59
+ catch {
60
+ return false;
61
+ }
62
+ if (source.normalize("NFC") !== source || source.includes("\u0000") || source.includes("\r")) {
63
+ return false;
64
+ }
65
+ const escapedRevision = BOOTSTRAP_WORKFLOW_REVISION.replaceAll("-", "\\-");
66
+ const match = new RegExp(`^name: Documentation Protocol\\n\\non:\\n pull_request:\\n push:\\n branches:\\n - ([A-Za-z0-9._/-]+)\\n\\npermissions:\\n contents: read\\n\\njobs:\\n docs-protocol:\\n uses: agent-teams-ai/\\.github/\\.github/workflows/docs-protocol-check\\.yml@${escapedRevision}\\n$`, "u").exec(source);
67
+ const branch = match?.[1];
68
+ return branch !== undefined && !branch.startsWith("/") && !branch.endsWith("/") &&
69
+ !branch.includes("..") && !branch.includes("//");
70
+ }
71
+ export function digestBytes(value) {
72
+ return `sha256:${createHash("sha256").update(value).digest("hex")}`;
73
+ }
74
+ export function canonicalCallerWorkflow(cohort) {
75
+ return CANONICAL_CALLER_WORKFLOW_TEMPLATE
76
+ .replace("{{REUSABLE_WORKFLOW_REPOSITORY}}", cohort.workflow.repository)
77
+ .replace("{{REUSABLE_WORKFLOW_PATH}}", cohort.workflow.path)
78
+ .replace("{{REUSABLE_WORKFLOW_REVISION}}", cohort.workflow.revision);
79
+ }
80
+ export function canonicalDocsScriptsDigest(profilePath) {
81
+ return digestBytes(Buffer.from(canonicalConsumerIntegrationJson(canonicalDocsScripts(profilePath)), "utf8"));
82
+ }
83
+ export function canonicalManagedRoute(skillPath) {
84
+ return `${MANAGED_ROUTE_BEGIN}
85
+ Use [${skillPath}](${skillPath}) for documentation.
86
+ ${MANAGED_ROUTE_END}`;
87
+ }
88
+ export function canonicalDocsScripts(profilePath) {
89
+ return Object.freeze(Object.fromEntries(["check", "doctor", "find", "info", "new", "recover"].map((command) => [
90
+ `docs:${command}`,
91
+ `agent-teams-docs ${command} --consumer . --profile ${profilePath}`
92
+ ])));
93
+ }
94
+ export function canonicalConsumerIntegrationJson(value) {
95
+ if (value === null || typeof value === "boolean" || typeof value === "string") {
96
+ return JSON.stringify(value);
97
+ }
98
+ if (typeof value === "number") {
99
+ if (!Number.isSafeInteger(value)) {
100
+ throw new TypeError("Managed state contains a non-canonical number.");
101
+ }
102
+ return JSON.stringify(value);
103
+ }
104
+ if (Array.isArray(value)) {
105
+ return `[${value.map(canonicalConsumerIntegrationJson).join(",")}]`;
106
+ }
107
+ if (typeof value !== "object" || value === undefined) {
108
+ throw new TypeError("Managed state contains a non-JSON value.");
109
+ }
110
+ return `{${Object.entries(value)
111
+ .toSorted(([left], [right]) => left < right ? -1 : left > right ? 1 : 0)
112
+ .map(([key, entry]) => `${JSON.stringify(key)}:${canonicalConsumerIntegrationJson(entry)}`)
113
+ .join(",")}}`;
114
+ }
115
+ export function canonicalManagedState(desired, assets) {
116
+ const body = {
117
+ schemaVersion: 1,
118
+ cohortId: desired.cohort.cohortId,
119
+ cohortAuthority: {
120
+ channel: desired.cohort.channel,
121
+ recordDigest: desired.cohort.recordDigest,
122
+ qualificationEventDigest: desired.cohort.qualificationEventDigest,
123
+ eligibleAfter: desired.cohort.eligibleAfter,
124
+ upgradeFrom: desired.cohort.upgradeFrom,
125
+ rollbackTo: desired.cohort.rollbackTo
126
+ },
127
+ repository: desired.repository,
128
+ packages: desired.cohort.packages,
129
+ schemas: desired.cohort.schemas,
130
+ runtime: desired.cohort.runtime,
131
+ profilePath: desired.profilePath,
132
+ skillPath: desired.skillPath,
133
+ callerWorkflowPath: desired.callerWorkflowPath,
134
+ managedStatePath: desired.managedStatePath,
135
+ assets
136
+ };
137
+ const stateDigest = digestBytes(Buffer.from(canonicalConsumerIntegrationJson({
138
+ domain: "agent-teams.docs-protocol.managed-state/v1",
139
+ body
140
+ }), "utf8"));
141
+ return `${canonicalConsumerIntegrationJson({ ...body, stateDigest })}\n`;
142
+ }
143
+ export function describeCanonicalConsumerAssets(cohort) {
144
+ const skillDigest = digestBytes(Buffer.from(CANONICAL_DOCS_SKILL_V2, "utf8"));
145
+ const callerWorkflowDigest = digestBytes(Buffer.from(canonicalCallerWorkflow(cohort), "utf8"));
146
+ const assetCatalogDigest = digestBytes(Buffer.from(CANONICAL_ASSET_CATALOG, "utf8"));
147
+ return Object.freeze({
148
+ skillDigest,
149
+ callerWorkflowDigest,
150
+ assetCatalogDigest,
151
+ transitionCatalogDigest: digestBytes(Buffer.from(CANONICAL_TRANSITION_CATALOG, "utf8"))
152
+ });
153
+ }
154
+ //# sourceMappingURL=consumer-integration-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-integration-assets.js","sourceRoot":"","sources":["../../../../src/consumer-integration/application/policies/consumer-integration-assets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { KnownFileTransactionOperationInput } from "@agent-teams/repository-mutation";
2
+ import type { ConsumerIntegrationSnapshot } from "../../domain/model.js";
3
+ export declare function consumerIntegrationAuthorityGuards(snapshot: ConsumerIntegrationSnapshot, hasManagedChanges: boolean): readonly KnownFileTransactionOperationInput[];
4
+ //# sourceMappingURL=consumer-integration-authority-guards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-integration-authority-guards.d.ts","sourceRoot":"","sources":["../../../../src/consumer-integration/application/policies/consumer-integration-authority-guards.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,kCAAkC,CAAC;AAE3F,OAAO,KAAK,EAEV,2BAA2B,EAC5B,MAAM,uBAAuB,CAAC;AAmB/B,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,2BAA2B,EACrC,iBAAiB,EAAE,OAAO,GACzB,SAAS,kCAAkC,EAAE,CAS/C"}
@@ -0,0 +1,23 @@
1
+ function guardOperation(path, observation) {
2
+ if (observation.state !== "file") {
3
+ throw new TypeError(`Required consumer authority observation is absent: ${path}.`);
4
+ }
5
+ return {
6
+ path,
7
+ precondition: {
8
+ state: "known-file",
9
+ acceptedPreimages: [{ bytes: observation.bytes, mode: observation.mode }]
10
+ },
11
+ postimage: { bytes: observation.bytes, mode: observation.mode }
12
+ };
13
+ }
14
+ export function consumerIntegrationAuthorityGuards(snapshot, hasManagedChanges) {
15
+ if (!hasManagedChanges) {
16
+ return [];
17
+ }
18
+ return [
19
+ guardOperation("architecture/foundation/docs-consumer-integration.json", snapshot.integrationProfile),
20
+ guardOperation("pnpm-lock.yaml", snapshot.lockfile)
21
+ ];
22
+ }
23
+ //# sourceMappingURL=consumer-integration-authority-guards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-integration-authority-guards.js","sourceRoot":"","sources":["../../../../src/consumer-integration/application/policies/consumer-integration-authority-guards.ts"],"names":[],"mappings":"AAOA,SAAS,cAAc,CACrB,IAAY,EACZ,WAA+C;IAE/C,IAAI,WAAW,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CAAC,sDAAsD,IAAI,GAAG,CAAC,CAAC;IACrF,CAAC;IACD,OAAO;QACL,IAAI;QACJ,YAAY,EAAE;YACZ,KAAK,EAAE,YAAY;YACnB,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC;SAC1E;QACD,SAAS,EAAE,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE;KAChE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,QAAqC,EACrC,iBAA0B;IAE1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAAA,OAAO,EAAE,CAAC;IAAA,CAAC;IACpC,OAAO;QACL,cAAc,CACZ,wDAAwD,EACxD,QAAQ,CAAC,kBAAkB,CAC5B;QACD,cAAc,CAAC,gBAAgB,EAAE,QAAQ,CAAC,QAAQ,CAAC;KACpD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ConsumerIntegrationDesiredStateV1, QualifiedDocsCohortBindingV1 } from "../../domain/model.js";
2
+ export declare function assertQualifiedDocsCohortBindingV1(cohort: QualifiedDocsCohortBindingV1): void;
3
+ export declare function assertConsumerIntegrationDesiredStateV1(desired: ConsumerIntegrationDesiredStateV1): void;
4
+ //# sourceMappingURL=consumer-integration-desired-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consumer-integration-desired-state.d.ts","sourceRoot":"","sources":["../../../../src/consumer-integration/application/policies/consumer-integration-desired-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,iCAAiC,EACjC,4BAA4B,EAC7B,MAAM,uBAAuB,CAAC;AAoG/B,wBAAgB,kCAAkC,CAChD,MAAM,EAAE,4BAA4B,GACnC,IAAI,CAgCN;AAED,wBAAgB,uCAAuC,CACrD,OAAO,EAAE,iCAAiC,GACzC,IAAI,CAwBN"}
@@ -0,0 +1,153 @@
1
+ const COHORT_ID = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/u;
2
+ const INTEGRITY = /^sha512-[A-Za-z0-9+/]{86}==$/u;
3
+ const NONZERO_SHA = /^(?!0{40}$)[0-9a-f]{40}$/u;
4
+ const NONZERO_SHA256 = /^sha256:(?!0{64}$)[0-9a-f]{64}$/u;
5
+ const REPOSITORY = /^[A-Za-z0-9_.-]+\/[A-Za-z0-9_.-]+$/u;
6
+ const REPOSITORY_ID = /^[1-9][0-9]*$/u;
7
+ const SEMVER = /^[0-9]+\.[0-9]+\.[0-9]+(?:-[0-9A-Za-z.-]+)?$/u;
8
+ const REPOSITORY_PATH = /^(?!.*(?:^|\/)\.{1,2}(?:\/|$))[A-Za-z0-9._@-]{1,255}(?:\/[A-Za-z0-9._@-]{1,255})*$/u;
9
+ const PROFILE_PATH = "architecture/foundation/docs-protocol.yaml";
10
+ const SKILL_PATH = ".agents/skills/docs-authoring/SKILL.md";
11
+ const CALLER_WORKFLOW_PATH = ".github/workflows/docs-protocol.yml";
12
+ const MANAGED_STATE_PATH = "architecture/foundation/docs-protocol-managed-state.json";
13
+ const WORKFLOW_REPOSITORY = "agent-teams-ai/.github";
14
+ const WORKFLOW_PATH = ".github/workflows/docs-protocol-check.yml";
15
+ function hasUniqueEntries(entries) {
16
+ return new Set(entries).size === entries.length;
17
+ }
18
+ function hasExactKeys(value, keys) {
19
+ return Object.keys(value).toSorted().join("\u0000") === [...keys].toSorted().join("\u0000");
20
+ }
21
+ function hasValidGovernedRoots(roots) {
22
+ return roots === undefined || (roots.length > 0 && roots.length <= 32 &&
23
+ hasUniqueEntries(roots) && roots.every((root) => REPOSITORY_PATH.test(root)));
24
+ }
25
+ function isCanonicalUtcSeconds(value) {
26
+ const milliseconds = Date.parse(value);
27
+ return Number.isFinite(milliseconds) &&
28
+ new Date(milliseconds).toISOString().replace(".000", "") === value;
29
+ }
30
+ function assertPlainBoundedJson(value) {
31
+ let remaining = 2048;
32
+ const seen = new Set();
33
+ // oxlint-disable-next-line complexity
34
+ const visit = (candidate, depth) => {
35
+ if (--remaining < 0 || depth > 16) {
36
+ throw new TypeError("Consumer input exceeds bounded JSON limits.");
37
+ }
38
+ if (candidate === null || typeof candidate === "boolean" ||
39
+ (typeof candidate === "number" && Number.isSafeInteger(candidate))) {
40
+ return;
41
+ }
42
+ if (typeof candidate === "string") {
43
+ if (candidate.length > 4096 || candidate.includes("\u0000")) {
44
+ throw new TypeError("Consumer input contains an invalid or overlong string.");
45
+ }
46
+ return;
47
+ }
48
+ if (typeof candidate !== "object" || seen.has(candidate)) {
49
+ throw new TypeError("Consumer input must be acyclic plain JSON data.");
50
+ }
51
+ seen.add(candidate);
52
+ const prototype = Object.getPrototypeOf(candidate);
53
+ if (prototype !== Object.prototype && prototype !== Array.prototype && prototype !== null) {
54
+ throw new TypeError("Consumer input must use plain JSON objects and arrays.");
55
+ }
56
+ if (Object.getOwnPropertySymbols(candidate).length > 0) {
57
+ throw new TypeError("Consumer input must not contain symbol properties.");
58
+ }
59
+ for (const [key, descriptor] of Object.entries(Object.getOwnPropertyDescriptors(candidate))) {
60
+ if (Array.isArray(candidate) && key === "length") {
61
+ continue;
62
+ }
63
+ if (descriptor.get !== undefined || descriptor.set !== undefined || descriptor.enumerable !== true) {
64
+ throw new TypeError("Consumer input must not contain accessors or hidden properties.");
65
+ }
66
+ visit(descriptor.value, depth + 1);
67
+ }
68
+ };
69
+ visit(value, 0);
70
+ }
71
+ function hasValidCohortAuthority(cohort) {
72
+ return COHORT_ID.test(cohort.cohortId) &&
73
+ NONZERO_SHA256.test(cohort.recordDigest) &&
74
+ NONZERO_SHA256.test(cohort.qualificationEventDigest) &&
75
+ isCanonicalUtcSeconds(cohort.eligibleAfter) &&
76
+ hasUniqueEntries(cohort.upgradeFrom) &&
77
+ hasUniqueEntries(cohort.rollbackTo) &&
78
+ cohort.upgradeFrom.every((entry) => COHORT_ID.test(entry)) &&
79
+ cohort.rollbackTo.every((entry) => COHORT_ID.test(entry));
80
+ }
81
+ function hasValidPackages(cohort) {
82
+ const packages = cohort.packages;
83
+ return SEMVER.test(packages.docsProtocol.version) &&
84
+ SEMVER.test(packages.engineeringFoundation.version) &&
85
+ INTEGRITY.test(packages.docsProtocol.integrity) &&
86
+ INTEGRITY.test(packages.engineeringFoundation.integrity);
87
+ }
88
+ function hasValidWorkflow(cohort) {
89
+ const workflow = cohort.workflow;
90
+ return workflow.repository === WORKFLOW_REPOSITORY &&
91
+ workflow.path === WORKFLOW_PATH &&
92
+ NONZERO_SHA.test(workflow.revision) &&
93
+ NONZERO_SHA.test(workflow.blobSha);
94
+ }
95
+ export function assertQualifiedDocsCohortBindingV1(cohort) {
96
+ assertPlainBoundedJson(cohort);
97
+ const valid = hasExactKeys(cohort, [
98
+ "schemaVersion", "cohortId", "channel", "recordDigest", "qualificationEventDigest",
99
+ "eligibleAfter", "upgradeFrom", "rollbackTo", "packages", "workflow", "assets",
100
+ "schemas", "runtime"
101
+ ]) &&
102
+ hasExactKeys(cohort.packages, ["docsProtocol", "engineeringFoundation"]) &&
103
+ hasExactKeys(cohort.packages.docsProtocol, ["version", "integrity"]) &&
104
+ hasExactKeys(cohort.packages.engineeringFoundation, ["version", "integrity"]) &&
105
+ hasExactKeys(cohort.workflow, ["repository", "path", "revision", "blobSha"]) &&
106
+ hasExactKeys(cohort.assets, [
107
+ "skillDigest", "callerWorkflowDigest", "assetCatalogDigest", "transitionCatalogDigest"
108
+ ]) &&
109
+ hasExactKeys(cohort.schemas, [
110
+ "consumerIntegration", "managedState", "docsProtocol"
111
+ ]) &&
112
+ hasExactKeys(cohort.runtime, ["node", "pnpm", "runtimeClosureDigest"]) &&
113
+ cohort.schemaVersion === 1 &&
114
+ hasValidCohortAuthority(cohort) &&
115
+ hasValidPackages(cohort) &&
116
+ hasValidWorkflow(cohort) &&
117
+ NONZERO_SHA256.test(cohort.assets.skillDigest) &&
118
+ NONZERO_SHA256.test(cohort.assets.callerWorkflowDigest) &&
119
+ NONZERO_SHA256.test(cohort.assets.assetCatalogDigest) &&
120
+ NONZERO_SHA256.test(cohort.assets.transitionCatalogDigest) &&
121
+ cohort.runtime.node === ">=24.18.0 <25" &&
122
+ cohort.runtime.pnpm === ">=11.17.0 <12" &&
123
+ NONZERO_SHA256.test(cohort.runtime.runtimeClosureDigest);
124
+ if (!valid) {
125
+ throw new TypeError("Qualified Docs Cohort binding is invalid or unsupported.");
126
+ }
127
+ }
128
+ export function assertConsumerIntegrationDesiredStateV1(desired) {
129
+ assertPlainBoundedJson(desired);
130
+ assertQualifiedDocsCohortBindingV1(desired.cohort);
131
+ const valid = hasExactKeys(desired, [
132
+ "schemaVersion", "repository", "integrationRoot", "packageManager", "profilePath",
133
+ "skillPath", "callerWorkflowPath", "managedStatePath", "cohort",
134
+ ...(desired.governedDocsRoots === undefined ? [] : ["governedDocsRoots"])
135
+ ]) &&
136
+ hasExactKeys(desired.repository, ["provider", "id", "nameWithOwner"]) &&
137
+ desired.schemaVersion === 1 &&
138
+ desired.integrationRoot === "." &&
139
+ desired.packageManager === "pnpm" &&
140
+ desired.profilePath === PROFILE_PATH &&
141
+ desired.skillPath === SKILL_PATH &&
142
+ desired.callerWorkflowPath === CALLER_WORKFLOW_PATH &&
143
+ desired.managedStatePath === MANAGED_STATE_PATH &&
144
+ desired.repository.provider === "github" &&
145
+ REPOSITORY_ID.test(desired.repository.id) &&
146
+ REPOSITORY.test(desired.repository.nameWithOwner) &&
147
+ hasValidGovernedRoots(desired.governedDocsRoots) &&
148
+ desired.cohort.schemaVersion === 1;
149
+ if (!valid) {
150
+ throw new TypeError("Consumer integration desired state is invalid or unsupported.");
151
+ }
152
+ }
153
+ //# sourceMappingURL=consumer-integration-desired-state.js.map