@agent-teams/engineering-foundation 1.4.2 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/dist/capabilities/public-api-compatibility/adapters/inbound/authority/growth-authority-contract.d.ts +10 -0
  2. package/dist/capabilities/public-api-compatibility/adapters/inbound/authority/growth-authority-contract.d.ts.map +1 -0
  3. package/dist/capabilities/public-api-compatibility/adapters/inbound/authority/growth-authority-contract.js +2 -0
  4. package/dist/capabilities/public-api-compatibility/adapters/inbound/authority/growth-authority-contract.js.map +1 -0
  5. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/load-pinned-audit-sdk.d.ts +1 -0
  6. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/load-pinned-audit-sdk.d.ts.map +1 -1
  7. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/load-pinned-audit-sdk.js +1 -0
  8. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/load-pinned-audit-sdk.js.map +1 -1
  9. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-observer.d.ts.map +1 -1
  10. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-observer.js +10 -1
  11. package/dist/capabilities/public-api-compatibility/adapters/outbound/api-extractor/microsoft-public-api-observer.js.map +1 -1
  12. package/dist/capabilities/public-api-compatibility/adapters/outbound/crypto/node-change-fingerprint.d.ts +2 -1
  13. package/dist/capabilities/public-api-compatibility/adapters/outbound/crypto/node-change-fingerprint.d.ts.map +1 -1
  14. package/dist/capabilities/public-api-compatibility/adapters/outbound/crypto/node-change-fingerprint.js +4 -1
  15. package/dist/capabilities/public-api-compatibility/adapters/outbound/crypto/node-change-fingerprint.js.map +1 -1
  16. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/artifact-public-api-evidence.d.ts +7 -1
  17. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/artifact-public-api-evidence.d.ts.map +1 -1
  18. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/artifact-public-api-evidence.js +16 -0
  19. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/artifact-public-api-evidence.js.map +1 -1
  20. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.d.ts +6 -0
  21. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.d.ts.map +1 -1
  22. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.js +22 -2
  23. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/filesystem-public-api-repository.js.map +1 -1
  24. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-invocation.d.ts +3 -1
  25. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-invocation.d.ts.map +1 -1
  26. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-invocation.js +10 -7
  27. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-invocation.js.map +1 -1
  28. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-metadata-root-sources.d.ts +13 -0
  29. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-metadata-root-sources.d.ts.map +1 -0
  30. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-metadata-root-sources.js +38 -0
  31. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-metadata-root-sources.js.map +1 -0
  32. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-report-writer.d.ts +3 -0
  33. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-report-writer.d.ts.map +1 -1
  34. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-report-writer.js +17 -0
  35. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/growth-report-writer.js.map +1 -1
  36. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.d.ts +1 -1
  37. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.d.ts.map +1 -1
  38. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.js +6 -2
  39. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-baseline-mapper.js.map +1 -1
  40. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-evidence-files.d.ts.map +1 -1
  41. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-evidence-files.js +64 -26
  42. package/dist/capabilities/public-api-compatibility/adapters/outbound/filesystem/public-api-evidence-files.js.map +1 -1
  43. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/reviewrouter-growth-authority-acl.d.ts +18 -0
  44. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/reviewrouter-growth-authority-acl.d.ts.map +1 -0
  45. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/reviewrouter-growth-authority-acl.js +51 -0
  46. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/reviewrouter-growth-authority-acl.js.map +1 -0
  47. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/strict-json-response.d.ts +5 -0
  48. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/strict-json-response.d.ts.map +1 -0
  49. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/strict-json-response.js +118 -0
  50. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/strict-json-response.js.map +1 -0
  51. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-input-context.d.ts +28 -0
  52. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-input-context.d.ts.map +1 -0
  53. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-input-context.js +163 -0
  54. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-input-context.js.map +1 -0
  55. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-observation.d.ts +8 -0
  56. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-observation.d.ts.map +1 -0
  57. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-observation.js +59 -0
  58. package/dist/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-observation.js.map +1 -0
  59. package/dist/capabilities/public-api-compatibility/api.d.ts +1 -0
  60. package/dist/capabilities/public-api-compatibility/api.d.ts.map +1 -1
  61. package/dist/capabilities/public-api-compatibility/application/model/growth-admission-context.d.ts +9 -0
  62. package/dist/capabilities/public-api-compatibility/application/model/growth-admission-context.d.ts.map +1 -1
  63. package/dist/capabilities/public-api-compatibility/application/model/growth-authority.d.ts +243 -0
  64. package/dist/capabilities/public-api-compatibility/application/model/growth-authority.d.ts.map +1 -0
  65. package/dist/capabilities/public-api-compatibility/application/model/growth-authority.js +5 -0
  66. package/dist/capabilities/public-api-compatibility/application/model/growth-authority.js.map +1 -0
  67. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-admission.d.ts +18 -2
  68. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-admission.d.ts.map +1 -1
  69. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-admission.js +35 -15
  70. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-admission.js.map +1 -1
  71. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-release-compatibility.d.ts +4 -2
  72. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-release-compatibility.d.ts.map +1 -1
  73. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-release-compatibility.js +76 -9
  74. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-growth-release-compatibility.js.map +1 -1
  75. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-initial-release.d.ts +15 -0
  76. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-initial-release.d.ts.map +1 -0
  77. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-initial-release.js +26 -0
  78. package/dist/capabilities/public-api-compatibility/application/policies/evaluate-initial-release.js.map +1 -0
  79. package/dist/capabilities/public-api-compatibility/application/policies/normalize-growth-observation.d.ts.map +1 -1
  80. package/dist/capabilities/public-api-compatibility/application/policies/normalize-growth-observation.js +2 -1
  81. package/dist/capabilities/public-api-compatibility/application/policies/normalize-growth-observation.js.map +1 -1
  82. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-report.js +47 -19
  83. package/dist/capabilities/public-api-compatibility/application/policies/project-growth-report.js.map +1 -1
  84. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority-primitives.d.ts +18 -0
  85. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority-primitives.d.ts.map +1 -0
  86. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority-primitives.js +153 -0
  87. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority-primitives.js.map +1 -0
  88. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority.d.ts +24 -0
  89. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority.d.ts.map +1 -0
  90. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority.js +610 -0
  91. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-authority.js.map +1 -0
  92. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-installed-inventory.d.ts +8 -0
  93. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-installed-inventory.d.ts.map +1 -0
  94. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-installed-inventory.js +11 -0
  95. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-installed-inventory.js.map +1 -0
  96. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-metadata-root.d.ts +13 -0
  97. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-metadata-root.d.ts.map +1 -0
  98. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-metadata-root.js +121 -0
  99. package/dist/capabilities/public-api-compatibility/application/policies/validate-growth-metadata-root.js.map +1 -0
  100. package/dist/capabilities/public-api-compatibility/application/ports/change-fingerprint.d.ts +2 -1
  101. package/dist/capabilities/public-api-compatibility/application/ports/change-fingerprint.d.ts.map +1 -1
  102. package/dist/capabilities/public-api-compatibility/application/ports/growth-authority.d.ts +17 -0
  103. package/dist/capabilities/public-api-compatibility/application/ports/growth-authority.d.ts.map +1 -0
  104. package/dist/capabilities/public-api-compatibility/application/ports/growth-authority.js +2 -0
  105. package/dist/capabilities/public-api-compatibility/application/ports/growth-authority.js.map +1 -0
  106. package/dist/capabilities/public-api-compatibility/application/ports/growth-input-context.d.ts +11 -1
  107. package/dist/capabilities/public-api-compatibility/application/ports/growth-input-context.d.ts.map +1 -1
  108. package/dist/capabilities/public-api-compatibility/application/ports/public-api-repository.d.ts +6 -0
  109. package/dist/capabilities/public-api-compatibility/application/ports/public-api-repository.d.ts.map +1 -1
  110. package/dist/capabilities/public-api-compatibility/application/use-cases/admit-sdk-growth.d.ts.map +1 -1
  111. package/dist/capabilities/public-api-compatibility/application/use-cases/admit-sdk-growth.js +31 -5
  112. package/dist/capabilities/public-api-compatibility/application/use-cases/admit-sdk-growth.js.map +1 -1
  113. package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.d.ts +11 -2
  114. package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.d.ts.map +1 -1
  115. package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.js +11 -8
  116. package/dist/capabilities/public-api-compatibility/application/use-cases/check-sdk-growth.js.map +1 -1
  117. package/dist/capabilities/public-api-compatibility/application/use-cases/preflight-public-api-promotions.d.ts +2 -1
  118. package/dist/capabilities/public-api-compatibility/application/use-cases/preflight-public-api-promotions.d.ts.map +1 -1
  119. package/dist/capabilities/public-api-compatibility/application/use-cases/preflight-public-api-promotions.js +16 -4
  120. package/dist/capabilities/public-api-compatibility/application/use-cases/preflight-public-api-promotions.js.map +1 -1
  121. package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.js +9 -7
  122. package/dist/capabilities/public-api-compatibility/application/use-cases/promote-public-api-baselines.js.map +1 -1
  123. package/dist/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.d.ts +16 -0
  124. package/dist/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.d.ts.map +1 -0
  125. package/dist/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.js +45 -0
  126. package/dist/capabilities/public-api-compatibility/application/use-cases/qualify-sdk-growth.js.map +1 -0
  127. package/dist/capabilities/public-api-compatibility/authority-module.d.ts +30 -0
  128. package/dist/capabilities/public-api-compatibility/authority-module.d.ts.map +1 -0
  129. package/dist/capabilities/public-api-compatibility/authority-module.js +142 -0
  130. package/dist/capabilities/public-api-compatibility/authority-module.js.map +1 -0
  131. package/dist/capabilities/public-api-compatibility/module.d.ts +16 -0
  132. package/dist/capabilities/public-api-compatibility/module.d.ts.map +1 -1
  133. package/dist/capabilities/public-api-compatibility/module.js +6 -6
  134. package/dist/capabilities/public-api-compatibility/module.js.map +1 -1
  135. package/dist/composition/quality-coverage.d.ts +1 -1
  136. package/dist/composition/quality-coverage.d.ts.map +1 -1
  137. package/dist/composition/sdk-growth-authority.d.ts +13 -0
  138. package/dist/composition/sdk-growth-authority.d.ts.map +1 -0
  139. package/dist/composition/sdk-growth-authority.js +19 -0
  140. package/dist/composition/sdk-growth-authority.js.map +1 -0
  141. package/dist/features/validation-reporting/api.d.ts +1 -1
  142. package/dist/features/validation-reporting/api.d.ts.map +1 -1
  143. package/dist/features/validation-reporting/api.js.map +1 -1
  144. package/dist/features/validation-reporting/application/model.d.ts +2 -3
  145. package/dist/features/validation-reporting/application/model.d.ts.map +1 -1
  146. package/dist/sdk-growth-authority.d.ts +15 -0
  147. package/dist/sdk-growth-authority.d.ts.map +1 -0
  148. package/dist/sdk-growth-authority.js +2 -0
  149. package/dist/sdk-growth-authority.js.map +1 -0
  150. package/package.json +5 -1
@@ -0,0 +1,28 @@
1
+ import type { PublicApiSchemaAssertion } from "../../schema-validation.js";
2
+ import type { GrowthAuthorityBinding, GrowthAuthorityGrant, GrowthAuthorityRequest, ResolvedGrowthAuthority } from "../../../application/model/growth-authority.js";
3
+ import type { GrowthContextRequest, GrowthInputContext } from "../../../application/model/growth-admission-context.js";
4
+ import type { GrowthCancellation } from "../../../application/model/growth-observation.js";
5
+ import type { GrowthAuthorityPort } from "../../../application/ports/growth-authority.js";
6
+ import type { GrowthInputContextPort, GrowthPackedCandidateEvidence } from "../../../application/ports/growth-input-context.js";
7
+ import type { ChangeFingerprint } from "../../../application/ports/change-fingerprint.js";
8
+ /** Trusted context injection keeps candidate parsing/rejection in the original
9
+ * filesystem adapter while replacing every authority-bearing fact with exact
10
+ * authenticated grant content. */
11
+ export declare class VerifiedGrowthInputContext implements GrowthInputContextPort {
12
+ #private;
13
+ private readonly dependencies;
14
+ constructor(dependencies: {
15
+ readonly candidate: GrowthInputContextPort;
16
+ readonly authority: GrowthAuthorityPort;
17
+ readonly binding: GrowthAuthorityBinding;
18
+ readonly operation: GrowthAuthorityRequest["operation"];
19
+ readonly admissionReceiptId?: string;
20
+ readonly fingerprint: ChangeFingerprint;
21
+ readonly assertSchema: PublicApiSchemaAssertion;
22
+ readonly assertMetadataRoots?: (roots: GrowthAuthorityGrant["metadataRoots"], cancellation: GrowthCancellation) => Promise<void>;
23
+ });
24
+ resolution(): ResolvedGrowthAuthority;
25
+ packedCandidates(): readonly GrowthPackedCandidateEvidence[];
26
+ read(selectors: GrowthContextRequest, cancellation: GrowthCancellation): Promise<GrowthInputContext>;
27
+ }
28
+ //# sourceMappingURL=verified-growth-input-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verified-growth-input-context.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-input-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,KAAK,EACV,sBAAsB,EACtB,oBAAoB,EAEpB,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,gDAAgD,CAAC;AAExD,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAyB,MAAM,wDAAwD,CAAC;AAC9I,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,kDAAkD,CAAC;AAEzG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAChI,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AA6D1F;;kCAEkC;AAClC,qBAAa,0BAA2B,YAAW,sBAAsB;;IAI3D,OAAO,CAAC,QAAQ,CAAC,YAAY;IAAzC,YAA6B,YAAY,EAAE;QACzC,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;QAC3C,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;QACxC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;QACzC,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACxD,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QACrC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAC;QACxC,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAC;QAChD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,eAAe,CAAC,EAAE,YAAY,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAClI,EAAI;IAEL,UAAU,IAAI,uBAAuB,CAGpC;IAED,gBAAgB,IAAI,SAAS,6BAA6B,EAAE,CAK3D;IAEK,IAAI,CAAC,SAAS,EAAE,oBAAoB,EAAE,YAAY,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAkEzG;CACF"}
@@ -0,0 +1,163 @@
1
+ import { growthAuthorityRequiredPhases, growthAuthoritySchemaVersion } from "../../../application/model/growth-authority.js";
2
+ import { GrowthObservationInvariantError } from "../../../application/model/growth-observation.js";
3
+ import { mapReleasedBaseline } from "../filesystem/public-api-baseline-mapper.js";
4
+ import { growthCanonicalJson, growthObservationReference, growthUniqueSorted } from "../../../application/policies/normalize-growth-observation.js";
5
+ import { growthAuthorityGrantDigest, growthAuthorityRequestDigest, growthDecisionDigest, prepareGrowthDecisions, validateGrowthAuthorityBinding } from "../../../application/policies/validate-growth-authority.js";
6
+ function invalid(reason) { throw new GrowthObservationInvariantError(reason); }
7
+ function closed(value, keys) {
8
+ if (value === null || typeof value !== "object" || Array.isArray(value)
9
+ || Object.keys(value).length !== keys.length || keys.some((key) => !Object.hasOwn(value, key))) {
10
+ invalid("growth-authority-context-invalid");
11
+ }
12
+ return value;
13
+ }
14
+ function digest(value) {
15
+ if (typeof value !== "string" || !/^sha256:[a-f0-9]{64}$/u.test(value)) {
16
+ invalid("growth-authority-context-digest-invalid");
17
+ }
18
+ return value;
19
+ }
20
+ function uniquePackageMap(values, reason) {
21
+ const result = new Map();
22
+ for (const value of values) {
23
+ if (result.has(value.packageName)) {
24
+ invalid(reason);
25
+ }
26
+ result.set(value.packageName, value);
27
+ }
28
+ return result;
29
+ }
30
+ async function mapReleasedPackage(input) {
31
+ const { row, local, grant } = input;
32
+ closed(row, ["packageName", "releaseEvidence", ...(row.observation === undefined ? [] : ["observation"]), "evidence"]);
33
+ if (local.evidence.kind !== row.evidence.kind) {
34
+ invalid("growth-authority-release-kind-mismatch");
35
+ }
36
+ if (local.releaseEvidence.status !== "available"
37
+ || growthCanonicalJson(local.releaseEvidence.value) !== growthCanonicalJson(row.releaseEvidence)) {
38
+ invalid("growth-authority-release-evidence-mismatch");
39
+ }
40
+ if (local.observation?.status === "available" && row.observation !== undefined
41
+ && growthCanonicalJson(local.observation.value) !== growthCanonicalJson(row.observation)) {
42
+ invalid("growth-authority-overlapping-observation-mismatch");
43
+ }
44
+ const common = { packageName: row.packageName, policy: local.policy,
45
+ releaseEvidence: { status: "available", value: structuredClone(local.releaseEvidence.value) },
46
+ qualification: { receiptDigest: input.grantDigest },
47
+ ...(row.observation === undefined ? {} : { observation: { status: "available", value: structuredClone(row.observation) } }) };
48
+ if (row.evidence.kind === "released") {
49
+ closed(row.evidence, ["kind", "typed", "artifact"]);
50
+ await input.assertSchema("package-public-api-baseline/v1", row.evidence.typed, "sdk-growth-authority-typed");
51
+ await input.assertSchema("package-public-api-baseline/v1", row.evidence.artifact, "sdk-growth-authority-artifact");
52
+ const typed = mapReleasedBaseline(row.evidence.typed, { packageName: row.packageName }, false, grant.binding.tool.extractorVersion);
53
+ const artifact = mapReleasedBaseline(row.evidence.artifact, { packageName: row.packageName }, false, "package-artifact-inventory/1");
54
+ return { ...common, evidence: { kind: "released", typed: { status: "available", value: typed },
55
+ artifact: { status: "available", value: artifact } } };
56
+ }
57
+ closed(row.evidence, ["kind", "historyDigest"]);
58
+ const historyDigest = digest(row.evidence.historyDigest);
59
+ if (historyDigest !== grant.binding.historyDigest) {
60
+ invalid("growth-authority-initial-history-mismatch");
61
+ }
62
+ return { ...common, evidence: { kind: "initial-unreleased", history: { status: "available", value: historyDigest } } };
63
+ }
64
+ /** Trusted context injection keeps candidate parsing/rejection in the original
65
+ * filesystem adapter while replacing every authority-bearing fact with exact
66
+ * authenticated grant content. */
67
+ export class VerifiedGrowthInputContext {
68
+ dependencies;
69
+ #state = "unused";
70
+ #resolved;
71
+ constructor(dependencies) {
72
+ this.dependencies = dependencies;
73
+ }
74
+ resolution() {
75
+ return this.#state === "resolved" && this.#resolved !== undefined
76
+ ? this.#resolved : invalid("growth-authority-not-resolved");
77
+ }
78
+ packedCandidates() {
79
+ if (this.#state !== "resolved" || this.#resolved === undefined) {
80
+ invalid("growth-authority-not-resolved");
81
+ }
82
+ return this.#resolved.grant.candidates.map(({ packageName, observation, coverage }) => ({
83
+ packageName, observation: structuredClone(observation), coverage: structuredClone(coverage)
84
+ }));
85
+ }
86
+ async read(selectors, cancellation) {
87
+ if (this.#state === "reading") {
88
+ invalid("growth-authority-read-in-progress");
89
+ }
90
+ if (this.#state !== "unused") {
91
+ invalid("growth-authority-reused");
92
+ }
93
+ this.#state = "reading";
94
+ try {
95
+ const candidate = await this.dependencies.candidate.read(selectors, cancellation);
96
+ cancellation.throwIfCancelled();
97
+ const binding = validateGrowthAuthorityBinding(this.dependencies.binding);
98
+ const prepared = prepareGrowthDecisions(candidate.decisions);
99
+ const decisionDigests = growthUniqueSorted(prepared.authorityCandidates.map((decision) => growthDecisionDigest(decision, this.dependencies.fingerprint)), (entry) => entry);
100
+ const request = { schemaVersion: growthAuthoritySchemaVersion, kind: "request",
101
+ operation: this.dependencies.operation,
102
+ admissionReceiptId: this.dependencies.operation === "check" ? null : this.dependencies.admissionReceiptId ?? invalid("growth-authority-admission-receipt-required"),
103
+ binding, contextSelectors: structuredClone(selectors), decisionDigests,
104
+ requiredPhases: growthAuthorityRequiredPhases };
105
+ const grant = await this.dependencies.authority.resolve(request, cancellation);
106
+ cancellation.throwIfCancelled();
107
+ if (grant.metadataRoots.length > 0) {
108
+ if (this.dependencies.assertMetadataRoots === undefined) {
109
+ invalid("growth-metadata-root-source-verifier-required");
110
+ }
111
+ await this.dependencies.assertMetadataRoots(grant.metadataRoots, cancellation);
112
+ }
113
+ const requestDigest = growthAuthorityRequestDigest(request, this.dependencies.fingerprint);
114
+ const grantDigest = growthAuthorityGrantDigest(grant, this.dependencies.fingerprint);
115
+ if (growthCanonicalJson(grant.binding.invocation) !== growthCanonicalJson(binding.invocation)) {
116
+ invalid("growth-authority-invocation-mismatch");
117
+ }
118
+ if (grant.binding.target.evaluation.commit !== binding.invocation.sourceCommit || grant.binding.target.evaluation.tree !== binding.invocation.sourceTree) {
119
+ invalid("growth-authority-evaluation-mismatch");
120
+ }
121
+ if (grant.binding.tool.version !== binding.invocation.tool.version || grant.binding.tool.extractorVersion !== binding.invocation.tool.extractorVersion
122
+ || grant.binding.tool.distributionDigest !== binding.invocation.tool.artifactDigest) {
123
+ invalid("growth-authority-tool-binding-mismatch");
124
+ }
125
+ const reference = growthObservationReference(grant.trustedBase, this.dependencies.fingerprint);
126
+ if (growthCanonicalJson(reference) !== growthCanonicalJson(grant.trustedBaseReference)) {
127
+ invalid("growth-authority-base-reference-mismatch");
128
+ }
129
+ const locals = uniquePackageMap(candidate.released, "growth-authority-local-release-duplicate");
130
+ const releasedRows = growthUniqueSorted(grant.released, (entry) => entry.packageName);
131
+ const selectorNames = growthUniqueSorted(selectors.released, (entry) => entry.packageName).map((entry) => entry.packageName);
132
+ if (growthCanonicalJson(selectorNames) !== growthCanonicalJson(releasedRows.map((entry) => entry.packageName))) {
133
+ invalid("growth-authority-release-scope-mismatch");
134
+ }
135
+ const released = [];
136
+ for (const row of releasedRows) {
137
+ const local = locals.get(row.packageName) ?? invalid("growth-authority-release-policy-missing");
138
+ released.push(await mapReleasedPackage({ row, local, grant, grantDigest, assertSchema: this.dependencies.assertSchema }));
139
+ }
140
+ const context = {
141
+ nonReleaseMetadataRoots: grant.metadataRoots.map((root) => ({ packageName: root.evidence.packageName, receiptDigest: grantDigest })),
142
+ trustedBase: { status: "available", value: grant.trustedBase }, trustedBaseReference: { status: "available", value: grant.trustedBaseReference },
143
+ retainedHistory: { status: "available", value: { targetSurfaceDigest: grant.retainedHistory.targetSurfaceDigest,
144
+ receiptDigest: grant.retainedHistory.receiptDigest } }, released,
145
+ decisions: candidate.decisions,
146
+ acceptedBreakingDecisions: { acceptedDecisionIds: candidate.acceptedBreakingDecisions.acceptedDecisionIds,
147
+ acceptedDecisionPaths: candidate.acceptedBreakingDecisions.acceptedDecisionPaths,
148
+ growthDecisionAuthority: { status: "available", value: growthUniqueSorted(grant.ownerEvidence.map((entry) => ({
149
+ decisionId: entry.decisionId, ownerRef: entry.ownerRef, decisionDigest: entry.decisionDigest
150
+ })), (entry) => entry.decisionId) } },
151
+ authority: { status: "verified", receiptDigest: grantDigest, workflowRef: grant.workflowRef, runRef: grant.runRef }
152
+ };
153
+ this.#resolved = { request, requestDigest, grant, grantDigest, context };
154
+ this.#state = "resolved";
155
+ return structuredClone(context);
156
+ }
157
+ catch (error) {
158
+ this.#state = "failed";
159
+ throw error;
160
+ }
161
+ }
162
+ }
163
+ //# sourceMappingURL=verified-growth-input-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verified-growth-input-context.js","sourceRoot":"","sources":["../../../../../../src/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-input-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import type { GrowthObservationPort } from "../../../application/ports/growth-observation.js";
2
+ import type { ResolvedGrowthInputContextPort } from "../../../application/ports/growth-input-context.js";
3
+ import type { ChangeFingerprint } from "../../../application/ports/change-fingerprint.js";
4
+ /** The trusted observation boundary selects independently verified archive
5
+ * observations. Workspace snapshots supply compatibility evidence only; neither
6
+ * they nor a context payload may rewrite the selected S1 observation. */
7
+ export declare function createVerifiedGrowthObservation(local: GrowthObservationPort, context: ResolvedGrowthInputContextPort, fingerprint?: ChangeFingerprint): GrowthObservationPort;
8
+ //# sourceMappingURL=verified-growth-observation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verified-growth-observation.d.ts","sourceRoot":"","sources":["../../../../../../src/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-observation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kDAAkD,CAAC;AAC9F,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AAKzG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kDAAkD,CAAC;AAE1F;;yEAEyE;AACzE,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,8BAA8B,EACnH,WAAW,CAAC,EAAE,iBAAiB,GAAG,qBAAqB,CA8CxD"}
@@ -0,0 +1,59 @@
1
+ import { GrowthObservationInvariantError } from "../../../application/model/growth-observation.js";
2
+ import { growthCanonicalJson, normalizeGrowthObservation } from "../../../application/policies/normalize-growth-observation.js";
3
+ import { validateGrowthExecution } from "../../../application/policies/validate-growth-execution.js";
4
+ import { metadataRootObservation } from "../../../application/policies/validate-growth-metadata-root.js";
5
+ /** The trusted observation boundary selects independently verified archive
6
+ * observations. Workspace snapshots supply compatibility evidence only; neither
7
+ * they nor a context payload may rewrite the selected S1 observation. */
8
+ export function createVerifiedGrowthObservation(local, context, fingerprint) {
9
+ return { async observe(invocation, cancellation) {
10
+ const workspace = await local.observe(invocation, cancellation);
11
+ validateGrowthExecution(workspace, invocation);
12
+ if (workspace.surface.status !== "available") {
13
+ return workspace;
14
+ }
15
+ const candidates = context.packedCandidates();
16
+ const roots = context.resolution().grant.metadataRoots;
17
+ if (roots.length > 0 && fingerprint === undefined) {
18
+ throw new GrowthObservationInvariantError("growth-metadata-root-fingerprint-required");
19
+ }
20
+ const metadata = roots.map((root) => metadataRootObservation(root, "candidate", invocation, fingerprint));
21
+ const packages = [...candidates.map((row) => row.packageName), ...roots.map((root) => root.evidence.packageName)].toSorted();
22
+ if (new Set(packages).size !== packages.length
23
+ || growthCanonicalJson(packages) !== growthCanonicalJson(workspace.surface.value.coverage.map((row) => row.packageName).toSorted())) {
24
+ throw new GrowthObservationInvariantError("growth-authority-candidate-scope-mismatch");
25
+ }
26
+ for (const candidate of candidates) {
27
+ validateGrowthExecution({ identity: invocation, surface: { status: "available", value: candidate.observation }, compatibilitySnapshots: workspace.compatibilitySnapshots.filter((row) => row.packageName === candidate.packageName) }, invocation);
28
+ }
29
+ const value = normalizeGrowthObservation({ ...invocation, contractRevision: "foundation:sdk-growth:c0:5",
30
+ observationVersion: "foundation:sdk-growth:observation:1",
31
+ coverage: [...candidates.flatMap((row) => row.observation.coverage), ...metadata.flatMap((row) => row.coverage)],
32
+ entries: [...candidates.flatMap((row) => row.observation.entries), ...metadata.flatMap((row) => row.entries)] });
33
+ const entries = new Map(value.entries.map((entry) => [growthCanonicalJson(entry.coordinate), entry]));
34
+ const workspaceEntries = new Map(workspace.surface.value.entries.map((entry) => [growthCanonicalJson(entry.coordinate), entry]));
35
+ const coverage = new Map(value.coverage.map((row) => [row.packageName, row]));
36
+ for (const [key, entry] of workspaceEntries) {
37
+ const candidate = entries.get(key);
38
+ if (candidate !== undefined && growthCanonicalJson(candidate.value) !== growthCanonicalJson(entry.value)) {
39
+ throw new GrowthObservationInvariantError("growth-authority-overlapping-observation-mismatch");
40
+ }
41
+ if (candidate === undefined && entry.value.state === "present"
42
+ && coverage.get(entry.coordinate.packageName)?.dimensions.some((row) => row.dimension === "packed" && row.status === "complete") === true) {
43
+ throw new GrowthObservationInvariantError("growth-authority-packed-absence-mismatch");
44
+ }
45
+ }
46
+ const compatibilitySnapshots = workspace.compatibilitySnapshots.map((row) => {
47
+ const missing = value.entries.filter((entry) => entry.coordinate.packageName === row.packageName && entry.value.state === "present"
48
+ && !workspaceEntries.has(growthCanonicalJson(entry.coordinate)));
49
+ const unavailable = { status: "unavailable", reasons: ["growth-packed-compatibility-evidence-unavailable"] };
50
+ return { ...row,
51
+ typed: missing.some((entry) => entry.coordinate.subject.kind === "typed") ? { kind: "typed", snapshot: unavailable } : row.typed,
52
+ artifact: missing.some((entry) => entry.coordinate.subject.kind === "data" || entry.coordinate.subject.kind === "wildcard-member")
53
+ ? { kind: "artifact", snapshot: unavailable } : row.artifact };
54
+ });
55
+ cancellation.throwIfCancelled();
56
+ return { identity: structuredClone(invocation), surface: { status: "available", value }, compatibilitySnapshots };
57
+ } };
58
+ }
59
+ //# sourceMappingURL=verified-growth-observation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verified-growth-observation.js","sourceRoot":"","sources":["../../../../../../src/capabilities/public-api-compatibility/adapters/outbound/reviewrouter/verified-growth-observation.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export type { PublicApiAuditRequest } from "./contract/public-api-audit.js";
2
2
  export type { PublicApiAuditReport } from "./application/model/public-api-audit-report.js";
3
+ export type { GrowthDecisionAuthority, GrowthComparison, GrowthTransition, GrowthValueRef, growthPolicyVersion } from "./application/model/growth-admission.js";
3
4
  //# sourceMappingURL=api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/capabilities/public-api-compatibility/api.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../src/capabilities/public-api-compatibility/api.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,oBAAoB,EAAE,MAAM,gDAAgD,CAAC;AAC3F,YAAY,EACV,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACpB,MAAM,yCAAyC,CAAC"}
@@ -6,6 +6,10 @@ export interface GrowthReleasedPackage {
6
6
  readonly observation?: GrowthEvidence<GrowthSurfaceObservation>;
7
7
  readonly policy: PublicApiPackagePolicy;
8
8
  readonly releaseEvidence: GrowthEvidence<PackageReleaseEvidence>;
9
+ /** Present only after trusted packed custody has qualified this row. */
10
+ readonly qualification?: {
11
+ readonly receiptDigest: GrowthDigest;
12
+ };
9
13
  readonly evidence: {
10
14
  readonly kind: "released";
11
15
  readonly typed: GrowthEvidence<PublicApiSnapshot>;
@@ -19,6 +23,11 @@ export interface GrowthReleasedPackage {
19
23
  * candidate compatibility snapshot is accepted here. Available history denotes
20
24
  * a validated exact-target retained receipt, not a caller's initial flag. */
21
25
  export interface GrowthInputContext {
26
+ /** Only the authenticated v3 adapter supplies these exact grant qualifications. */
27
+ readonly nonReleaseMetadataRoots?: readonly {
28
+ readonly packageName: string;
29
+ readonly receiptDigest: GrowthDigest;
30
+ }[];
22
31
  readonly trustedBase: GrowthEvidence<GrowthSurfaceObservation>;
23
32
  readonly trustedBaseReference: GrowthEvidence<GrowthObservationReference>;
24
33
  readonly retainedHistory: GrowthEvidence<{
@@ -1 +1 @@
1
- {"version":3,"file":"growth-admission-context.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/model/growth-admission-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAClI,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAEvF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAChE,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;IACjE,QAAQ,CAAC,QAAQ,EACb;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAA;KAAE,GACtI;QAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,CAAA;KAAE,CAAC;CAC7F;AAED;;6EAE6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAC/D,QAAQ,CAAC,oBAAoB,EAAE,cAAc,CAAC,0BAA0B,CAAC,CAAC;IAC1E,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC;QACvC,QAAQ,CAAC,mBAAmB,EAAE,YAAY,CAAC;QAC3C,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;KACtC,CAAC,CAAC;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC;IACvC,QAAQ,CAAC,yBAAyB,EAAE,wBAAwB,CAAC;IAC7D,QAAQ,CAAC,SAAS,EACd;QAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9H;QAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;CAC5E;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,CAC5D;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAC/D;QAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;QAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAC/E,CAAC,EAAE,CAAC;CACN"}
1
+ {"version":3,"file":"growth-admission-context.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/model/growth-admission-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAClI,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAEvF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAChE,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,sBAAsB,CAAC,CAAC;IACjE,wEAAwE;IACxE,QAAQ,CAAC,aAAa,CAAC,EAAE;QAAE,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAA;KAAE,CAAC;IAClE,QAAQ,CAAC,QAAQ,EACb;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC,iBAAiB,CAAC,CAAA;KAAE,GACtI;QAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC,CAAA;KAAE,CAAC;CAC7F;AAED;;6EAE6E;AAC7E,MAAM,WAAW,kBAAkB;IACjC,mFAAmF;IACnF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,SAAS;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAA;KAAE,EAAE,CAAC;IACrH,QAAQ,CAAC,WAAW,EAAE,cAAc,CAAC,wBAAwB,CAAC,CAAC;IAC/D,QAAQ,CAAC,oBAAoB,EAAE,cAAc,CAAC,0BAA0B,CAAC,CAAC;IAC1E,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC;QACvC,QAAQ,CAAC,mBAAmB,EAAE,YAAY,CAAC;QAC3C,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;KACtC,CAAC,CAAC;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACpD,QAAQ,CAAC,SAAS,EAAE,SAAS,OAAO,EAAE,CAAC;IACvC,QAAQ,CAAC,yBAAyB,EAAE,wBAAwB,CAAC;IAC7D,QAAQ,CAAC,SAAS,EACd;QAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,aAAa,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC9H;QAAE,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,CAAC;CAC5E;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC;QAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,CAC5D;QAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAA;KAAE,GAC/D;QAAE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;QAAC,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAC/E,CAAC,EAAE,CAAC;CACN"}
@@ -0,0 +1,243 @@
1
+ import type { GrowthDecisionAuthority } from "./growth-admission.js";
2
+ import type { GrowthContextRequest, GrowthInputContext } from "./growth-admission-context.js";
3
+ import type { GrowthCoverage, GrowthDigest, GrowthInvocation, GrowthObservationReference, GrowthSurfaceObservation } from "./growth-observation.js";
4
+ import type { PackageReleaseEvidence, PublicApiSnapshot } from "./public-api.js";
5
+ /** Version 3 distinguishes authenticated non-release metadata roots from
6
+ * package release obligations. Prior protocol bytes are not reinterpreted. */
7
+ export declare const growthAuthoritySchemaVersion: "reviewrouter:sdk-growth-authority:3";
8
+ export declare const growthAuthorityRequiredPhases: readonly ["topology", "observation", "packed", "decision", "trusted-base", "released", "authority"];
9
+ export interface GrowthAuthorityRepository {
10
+ readonly provider: string;
11
+ readonly repositoryId: string;
12
+ readonly owner: string;
13
+ readonly name: string;
14
+ }
15
+ export interface GrowthAuthorityOwnerEvidence extends GrowthDecisionAuthority {
16
+ readonly authenticatedSubjectId: string;
17
+ readonly authorizationEvidenceDigest: GrowthDigest;
18
+ readonly approvalEvidenceDigest: GrowthDigest;
19
+ readonly sourceBindingDigest: GrowthDigest;
20
+ }
21
+ export interface GrowthAuthoritySource {
22
+ readonly commit: string;
23
+ readonly tree: string;
24
+ }
25
+ export interface GrowthAuthorityTarget {
26
+ readonly repository: GrowthAuthorityRepository;
27
+ readonly pullRequestNumber: number;
28
+ readonly head: GrowthAuthoritySource;
29
+ readonly base: GrowthAuthoritySource;
30
+ readonly mergeBase: GrowthAuthoritySource;
31
+ readonly evaluation: GrowthAuthoritySource;
32
+ readonly evaluationKind: "head" | "merge-result" | "release-preimage";
33
+ }
34
+ export interface GrowthAuthorityBinding {
35
+ readonly invocation: GrowthInvocation;
36
+ readonly target: GrowthAuthorityTarget;
37
+ readonly verifier: {
38
+ readonly identity: string;
39
+ readonly immutableRevision: string;
40
+ readonly artifactDigest: GrowthDigest;
41
+ };
42
+ readonly tool: {
43
+ readonly packageName: "@agent-teams/engineering-foundation";
44
+ readonly version: string;
45
+ readonly archiveDigest: GrowthDigest;
46
+ readonly archiveIntegrity: string;
47
+ readonly distributionDigest: GrowthDigest;
48
+ readonly extractorVersion: string;
49
+ };
50
+ readonly policy: {
51
+ readonly contractRevision: "foundation:sdk-growth:c0:5";
52
+ readonly policyVersion: "foundation:sdk-growth:policy:1";
53
+ readonly enrollmentRevision: string;
54
+ readonly configurationDigest: GrowthDigest;
55
+ readonly scopeDigest: GrowthDigest;
56
+ readonly commandDigest: GrowthDigest;
57
+ };
58
+ readonly historyDigest: GrowthDigest;
59
+ readonly evidenceManifestDigest: GrowthDigest;
60
+ }
61
+ export interface GrowthAuthorityRequest {
62
+ readonly schemaVersion: typeof growthAuthoritySchemaVersion;
63
+ readonly kind: "request";
64
+ readonly operation: "check" | "promote-release";
65
+ readonly admissionReceiptId: string | null;
66
+ readonly binding: GrowthAuthorityBinding;
67
+ readonly contextSelectors: GrowthContextRequest;
68
+ readonly decisionDigests: readonly GrowthDigest[];
69
+ readonly requiredPhases: typeof growthAuthorityRequiredPhases;
70
+ }
71
+ export interface GrowthAuthorityReleasedEvidence {
72
+ readonly packageName: string;
73
+ readonly releaseEvidence: PackageReleaseEvidence;
74
+ readonly observation?: GrowthSurfaceObservation;
75
+ readonly evidence: {
76
+ readonly kind: "released";
77
+ readonly typed: PublicApiSnapshot;
78
+ readonly artifact: PublicApiSnapshot;
79
+ } | {
80
+ readonly kind: "initial-unreleased";
81
+ readonly historyDigest: GrowthDigest;
82
+ };
83
+ }
84
+ /** Closed evidence for bytes that were actually packed and installed. The
85
+ * observation is separately digested so API-equivalent but byte-distinct
86
+ * archives retain distinct identities. */
87
+ export interface GrowthAuthorityPackedEvidence {
88
+ readonly packageName: string;
89
+ readonly packageVersion: string;
90
+ readonly source: GrowthAuthoritySource;
91
+ readonly archiveDigest: GrowthDigest;
92
+ readonly archiveIntegrity: string;
93
+ readonly observation: GrowthSurfaceObservation;
94
+ readonly observationDigest: GrowthDigest;
95
+ readonly coverage: GrowthCoverage;
96
+ readonly custodyEvidenceDigest: GrowthDigest;
97
+ readonly custodyEvidence: {
98
+ readonly archiveDigest: GrowthDigest;
99
+ readonly archiveIntegrity: string;
100
+ readonly archivePayload: string;
101
+ readonly archiveManifest: readonly {
102
+ readonly path: string;
103
+ readonly digest: GrowthDigest;
104
+ }[];
105
+ readonly installedFiles: readonly {
106
+ readonly path: string;
107
+ readonly digest: GrowthDigest;
108
+ }[];
109
+ };
110
+ readonly installedDistribution: {
111
+ readonly packageName: string;
112
+ readonly packageVersion: string;
113
+ readonly source: GrowthAuthoritySource;
114
+ readonly archiveDigest: GrowthDigest;
115
+ readonly archiveIntegrity: string;
116
+ readonly observationDigest: GrowthDigest;
117
+ };
118
+ }
119
+ /** Consumer-owned classification, retained at both exact source checkpoints.
120
+ * These are source bytes, never a package archive or a release baseline. */
121
+ export interface GrowthAuthorityMetadataRoot {
122
+ readonly evidence: {
123
+ readonly kind: "non-release-metadata-root";
124
+ readonly packageName: string;
125
+ readonly rootPath: ".";
126
+ readonly manifestPath: "package.json";
127
+ readonly classificationPath: string;
128
+ readonly historyDigest: GrowthDigest;
129
+ readonly base: GrowthMetadataRootSource;
130
+ readonly candidate: GrowthMetadataRootSource;
131
+ };
132
+ readonly evidenceDigest: GrowthDigest;
133
+ readonly ownerEvidence: GrowthAuthorityOwnerEvidence;
134
+ }
135
+ export interface GrowthMetadataRootSource {
136
+ readonly source: GrowthAuthoritySource;
137
+ readonly manifestBytes: string;
138
+ readonly workspaceBytes: string;
139
+ readonly classificationBytes: string;
140
+ }
141
+ export interface GrowthAuthorityGrant {
142
+ readonly schemaVersion: typeof growthAuthoritySchemaVersion;
143
+ readonly kind: "grant";
144
+ readonly grantId: string;
145
+ readonly requestDigest: GrowthDigest;
146
+ readonly admissionReceipt: {
147
+ readonly kind: "none";
148
+ } | {
149
+ readonly kind: "receipt";
150
+ readonly receipt: GrowthAuthorityReceipt;
151
+ };
152
+ readonly binding: GrowthAuthorityBinding;
153
+ readonly workflowRef: string;
154
+ readonly runRef: string;
155
+ readonly issuedAt: string;
156
+ readonly expiresAt: string;
157
+ readonly trustedBase: GrowthSurfaceObservation;
158
+ readonly trustedBaseReference: GrowthObservationReference;
159
+ readonly retainedHistory: {
160
+ readonly targetSource: GrowthAuthoritySource;
161
+ readonly targetSurfaceDigest: GrowthDigest;
162
+ readonly receiptDigest: GrowthDigest;
163
+ readonly custodyEvidenceDigest: GrowthDigest;
164
+ readonly custodyEvidence: GrowthAuthorityPackedEvidence["custodyEvidence"];
165
+ };
166
+ readonly released: readonly GrowthAuthorityReleasedEvidence[];
167
+ readonly ownerEvidence: readonly GrowthAuthorityOwnerEvidence[];
168
+ /** Historical released archives. Initial-unreleased rows have no entry. */
169
+ readonly archives: readonly GrowthAuthorityPackedEvidence[];
170
+ /** Candidate archives, including every initial-unreleased package. */
171
+ readonly candidates: readonly GrowthAuthorityPackedEvidence[];
172
+ readonly metadataRoots: readonly GrowthAuthorityMetadataRoot[];
173
+ readonly requiredCoverageDigest: GrowthDigest;
174
+ readonly requiredPhases: typeof growthAuthorityRequiredPhases;
175
+ }
176
+ export interface GrowthPromotionPlan {
177
+ readonly binding: GrowthAuthorityBinding;
178
+ readonly writes: readonly {
179
+ readonly destination: string;
180
+ readonly operation: "create" | "replace";
181
+ readonly preimageDigest: GrowthDigest | null;
182
+ readonly proposedDigest: GrowthDigest;
183
+ }[];
184
+ }
185
+ export interface GrowthAuthorityCompletion {
186
+ readonly schemaVersion: typeof growthAuthoritySchemaVersion;
187
+ readonly kind: "completion";
188
+ readonly grantId: string;
189
+ readonly grantDigest: GrowthDigest;
190
+ readonly requestDigest: GrowthDigest;
191
+ readonly binding: GrowthAuthorityBinding;
192
+ readonly reportDigest: GrowthDigest;
193
+ readonly reportByteLength: number;
194
+ readonly coverageDigest: GrowthDigest;
195
+ readonly phasesDigest: GrowthDigest;
196
+ readonly verdict: "admitted" | "rejected" | "incomplete";
197
+ readonly releaseEligible: boolean;
198
+ readonly publication: "finalized";
199
+ readonly promotion: {
200
+ readonly kind: "none";
201
+ } | {
202
+ readonly kind: "plan";
203
+ readonly planDigest: GrowthDigest;
204
+ };
205
+ }
206
+ export interface GrowthAuthorityReceipt {
207
+ readonly schemaVersion: typeof growthAuthoritySchemaVersion;
208
+ readonly kind: "receipt";
209
+ readonly receiptId: string;
210
+ readonly grantId: string;
211
+ readonly grantDigest: GrowthDigest;
212
+ readonly completionDigest: GrowthDigest;
213
+ /** Digest of the exact request that originated this operation. */
214
+ readonly requestDigest: GrowthDigest;
215
+ readonly binding: GrowthAuthorityBinding;
216
+ readonly reportDigest: GrowthDigest;
217
+ readonly coverageDigest: GrowthDigest;
218
+ readonly phasesDigest: GrowthDigest;
219
+ readonly verdict: "admitted" | "rejected" | "incomplete";
220
+ readonly releaseEligible: boolean;
221
+ readonly qualification: "qualified" | "not-qualified";
222
+ readonly operation: "check" | "promote-release";
223
+ readonly promotion: {
224
+ readonly kind: "none";
225
+ } | {
226
+ readonly kind: "plan";
227
+ readonly planDigest: GrowthDigest;
228
+ };
229
+ readonly custodyRef: string;
230
+ readonly issuedAt: string;
231
+ readonly provenance?: {
232
+ readonly grant: GrowthAuthorityGrant;
233
+ readonly completion: GrowthAuthorityCompletion;
234
+ };
235
+ }
236
+ export interface ResolvedGrowthAuthority {
237
+ readonly request: GrowthAuthorityRequest;
238
+ readonly requestDigest: GrowthDigest;
239
+ readonly grant: GrowthAuthorityGrant;
240
+ readonly grantDigest: GrowthDigest;
241
+ readonly context: GrowthInputContext;
242
+ }
243
+ //# sourceMappingURL=growth-authority.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"growth-authority.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/model/growth-authority.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /** Version 3 distinguishes authenticated non-release metadata roots from
2
+ * package release obligations. Prior protocol bytes are not reinterpreted. */
3
+ export const growthAuthoritySchemaVersion = "reviewrouter:sdk-growth-authority:3";
4
+ export const growthAuthorityRequiredPhases = ["topology", "observation", "packed", "decision", "trusted-base", "released", "authority"];
5
+ //# sourceMappingURL=growth-authority.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"growth-authority.js","sourceRoot":"","sources":["../../../../../src/capabilities/public-api-compatibility/application/model/growth-authority.ts"],"names":[],"mappings":"AAKA;8EAC8E;AAC9E,MAAM,CAAC,MAAM,4BAA4B,GAAG,qCAA8C,CAAC;AAC3F,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,UAAU,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,WAAW,CAAU,CAAC"}