codex-workflow-v2 2.0.0-beta.1 → 2.0.0-beta.11

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 (187) hide show
  1. package/README.md +94 -12
  2. package/dist/src/alpha6/adoption.js +13 -3
  3. package/dist/src/alpha6/adoption.js.map +1 -1
  4. package/dist/src/alpha6/handoff.d.ts +26 -2
  5. package/dist/src/alpha6/handoff.js +277 -29
  6. package/dist/src/alpha6/handoff.js.map +1 -1
  7. package/dist/src/alpha6/mechanical-feasibility.d.ts +7 -0
  8. package/dist/src/alpha6/mechanical-feasibility.js +303 -0
  9. package/dist/src/alpha6/mechanical-feasibility.js.map +1 -0
  10. package/dist/src/alpha6/milestone.d.ts +37 -2
  11. package/dist/src/alpha6/milestone.js +472 -33
  12. package/dist/src/alpha6/milestone.js.map +1 -1
  13. package/dist/src/alpha6/plan-integrity.d.ts +14 -0
  14. package/dist/src/alpha6/plan-integrity.js +127 -0
  15. package/dist/src/alpha6/plan-integrity.js.map +1 -0
  16. package/dist/src/alpha6/plan-risk.d.ts +1 -0
  17. package/dist/src/alpha6/plan-risk.js +15 -7
  18. package/dist/src/alpha6/plan-risk.js.map +1 -1
  19. package/dist/src/alpha6/remediation.d.ts +2 -1
  20. package/dist/src/alpha6/remediation.js +186 -9
  21. package/dist/src/alpha6/remediation.js.map +1 -1
  22. package/dist/src/alpha6/review.d.ts +3 -0
  23. package/dist/src/alpha6/review.js +24 -0
  24. package/dist/src/alpha6/review.js.map +1 -1
  25. package/dist/src/cli.js +486 -46
  26. package/dist/src/cli.js.map +1 -1
  27. package/dist/src/contracts.d.ts +238 -6
  28. package/dist/src/contracts.js +1 -1
  29. package/dist/src/credential-output.d.ts +10 -0
  30. package/dist/src/credential-output.js +73 -0
  31. package/dist/src/credential-output.js.map +1 -0
  32. package/dist/src/dependency-provenance.d.ts +19 -0
  33. package/dist/src/dependency-provenance.js +185 -0
  34. package/dist/src/dependency-provenance.js.map +1 -0
  35. package/dist/src/errors.d.ts +1 -1
  36. package/dist/src/errors.js.map +1 -1
  37. package/dist/src/git.d.ts +1 -1
  38. package/dist/src/git.js +13 -5
  39. package/dist/src/git.js.map +1 -1
  40. package/dist/src/index.d.ts +2 -1
  41. package/dist/src/index.js +2 -1
  42. package/dist/src/index.js.map +1 -1
  43. package/dist/src/lifecycle/canonical-hash.d.ts +6 -0
  44. package/dist/src/lifecycle/canonical-hash.js +24 -0
  45. package/dist/src/lifecycle/canonical-hash.js.map +1 -0
  46. package/dist/src/lifecycle/catalog.d.ts +26 -0
  47. package/dist/src/lifecycle/catalog.js +208 -0
  48. package/dist/src/lifecycle/catalog.js.map +1 -0
  49. package/dist/src/lifecycle/compiler-inspection.d.ts +48 -0
  50. package/dist/src/lifecycle/compiler-inspection.js +29 -0
  51. package/dist/src/lifecycle/compiler-inspection.js.map +1 -0
  52. package/dist/src/lifecycle/core-static-readiness.d.ts +6 -0
  53. package/dist/src/lifecycle/core-static-readiness.js +130 -0
  54. package/dist/src/lifecycle/core-static-readiness.js.map +1 -0
  55. package/dist/src/lifecycle/corrective-replan-authority.d.ts +53 -0
  56. package/dist/src/lifecycle/corrective-replan-authority.js +139 -0
  57. package/dist/src/lifecycle/corrective-replan-authority.js.map +1 -0
  58. package/dist/src/lifecycle/corrective-replan-binding-manifest.d.ts +21 -0
  59. package/dist/src/lifecycle/corrective-replan-binding-manifest.js +35 -0
  60. package/dist/src/lifecycle/corrective-replan-binding-manifest.js.map +1 -0
  61. package/dist/src/lifecycle/corrective-replan-credential-core.d.ts +86 -0
  62. package/dist/src/lifecycle/corrective-replan-credential-core.js +563 -0
  63. package/dist/src/lifecycle/corrective-replan-credential-core.js.map +1 -0
  64. package/dist/src/lifecycle/corrective-replan-credential-schema.d.ts +17 -0
  65. package/dist/src/lifecycle/corrective-replan-credential-schema.js +44 -0
  66. package/dist/src/lifecycle/corrective-replan-credential-schema.js.map +1 -0
  67. package/dist/src/lifecycle/corrective-replan-credentials.d.ts +47 -0
  68. package/dist/src/lifecycle/corrective-replan-credentials.js +103 -0
  69. package/dist/src/lifecycle/corrective-replan-credentials.js.map +1 -0
  70. package/dist/src/lifecycle/corrective-replan.d.ts +64 -0
  71. package/dist/src/lifecycle/corrective-replan.js +553 -0
  72. package/dist/src/lifecycle/corrective-replan.js.map +1 -0
  73. package/dist/src/lifecycle/evaluator.d.ts +2 -0
  74. package/dist/src/lifecycle/evaluator.js +35 -0
  75. package/dist/src/lifecycle/evaluator.js.map +1 -0
  76. package/dist/src/lifecycle/fingerprint.d.ts +31 -0
  77. package/dist/src/lifecycle/fingerprint.js +388 -0
  78. package/dist/src/lifecycle/fingerprint.js.map +1 -0
  79. package/dist/src/lifecycle/immutable.d.ts +1 -0
  80. package/dist/src/lifecycle/immutable.js +10 -0
  81. package/dist/src/lifecycle/immutable.js.map +1 -0
  82. package/dist/src/lifecycle/implementation-table.d.ts +29 -0
  83. package/dist/src/lifecycle/implementation-table.js +87 -0
  84. package/dist/src/lifecycle/implementation-table.js.map +1 -0
  85. package/dist/src/lifecycle/index.d.ts +4 -0
  86. package/dist/src/lifecycle/index.js +5 -0
  87. package/dist/src/lifecycle/index.js.map +1 -0
  88. package/dist/src/lifecycle/schema-artifact.d.ts +12 -0
  89. package/dist/src/lifecycle/schema-artifact.js +214 -0
  90. package/dist/src/lifecycle/schema-artifact.js.map +1 -0
  91. package/dist/src/lifecycle/semantic-registry.d.ts +6 -0
  92. package/dist/src/lifecycle/semantic-registry.js +489 -0
  93. package/dist/src/lifecycle/semantic-registry.js.map +1 -0
  94. package/dist/src/lifecycle/types.d.ts +718 -0
  95. package/dist/src/lifecycle/types.js +4 -0
  96. package/dist/src/lifecycle/types.js.map +1 -0
  97. package/dist/src/observation.d.ts +20 -0
  98. package/dist/src/observation.js +171 -0
  99. package/dist/src/observation.js.map +1 -0
  100. package/dist/src/reviewer.d.ts +43 -1
  101. package/dist/src/reviewer.js +203 -50
  102. package/dist/src/reviewer.js.map +1 -1
  103. package/dist/src/state/corrective-replan-executor.d.ts +64 -0
  104. package/dist/src/state/corrective-replan-executor.js +608 -0
  105. package/dist/src/state/corrective-replan-executor.js.map +1 -0
  106. package/dist/src/state/corrective-replan-public-schema.d.ts +3 -0
  107. package/dist/src/state/corrective-replan-public-schema.js +43 -0
  108. package/dist/src/state/corrective-replan-public-schema.js.map +1 -0
  109. package/dist/src/state/corrective-replan-public.d.ts +95 -0
  110. package/dist/src/state/corrective-replan-public.js +665 -0
  111. package/dist/src/state/corrective-replan-public.js.map +1 -0
  112. package/dist/src/state/corrective-replan-transaction.d.ts +160 -0
  113. package/dist/src/state/corrective-replan-transaction.js +730 -0
  114. package/dist/src/state/corrective-replan-transaction.js.map +1 -0
  115. package/dist/src/state/corrective-yield-executor.d.ts +31 -0
  116. package/dist/src/state/corrective-yield-executor.js +236 -0
  117. package/dist/src/state/corrective-yield-executor.js.map +1 -0
  118. package/dist/src/state/corrective-yield-transaction.d.ts +97 -0
  119. package/dist/src/state/corrective-yield-transaction.js +591 -0
  120. package/dist/src/state/corrective-yield-transaction.js.map +1 -0
  121. package/dist/src/state/lock.d.ts +76 -3
  122. package/dist/src/state/lock.js +611 -30
  123. package/dist/src/state/lock.js.map +1 -1
  124. package/dist/src/state/store.d.ts +3 -0
  125. package/dist/src/state/store.js +65 -12
  126. package/dist/src/state/store.js.map +1 -1
  127. package/dist/src/transition-core.d.ts +67 -0
  128. package/dist/src/transition-core.js +318 -0
  129. package/dist/src/transition-core.js.map +1 -0
  130. package/dist/src/version.d.ts +1 -1
  131. package/dist/src/version.js +1 -1
  132. package/dist/src/version.js.map +1 -1
  133. package/dist/src/workflow.d.ts +88 -24
  134. package/dist/src/workflow.js +1647 -270
  135. package/dist/src/workflow.js.map +1 -1
  136. package/docs/autonomy-guardrails.md +61 -1
  137. package/docs/beta11-plan-integrity-recovery-brief.md +38 -0
  138. package/docs/beta2-initial-assembly-navigation-brief.md +616 -0
  139. package/docs/delegated-approval.md +26 -1
  140. package/docs/development-flow.md +63 -8
  141. package/docs/lifecycle/state-machine-stabilization.md +641 -0
  142. package/docs/pdf/README.md +24 -0
  143. package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
  144. package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
  145. package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
  146. package/docs/pdf/requirements.txt +1 -0
  147. package/docs/pdf/sources/codex-workflow-v2-architecture-ru.md +234 -0
  148. package/docs/pdf/sources/codex-workflow-v2-chat-only-guide-ru.md +334 -0
  149. package/docs/pdf/sources/codex-workflow-v2-technical-reference-ru.md +413 -0
  150. package/docs/problem-briefs/01-pre-implementation-integrity.md +478 -0
  151. package/docs/problem-briefs/02-minimal-step-integrity.md +411 -0
  152. package/docs/problem-briefs/03-minimal-agent-context-integrity.md +358 -0
  153. package/docs/problem-briefs/04-task-dependency-and-structural-replacement-integrity.md +566 -0
  154. package/docs/problem-briefs/BRIEF-TEMPLATE.md +56 -0
  155. package/docs/problem-briefs/README.md +120 -0
  156. package/docs/problem-briefs/evidence/p01-mechanical-feasibility-corpus.md +90 -0
  157. package/docs/problem-briefs/evidence/signal-v4-pre-m3-replay.md +246 -0
  158. package/docs/release.md +30 -6
  159. package/docs/split-required-recovery.md +19 -25
  160. package/docs/stable-release-defect-register.md +465 -3
  161. package/docs/updating-existing-project.md +59 -4
  162. package/docs/validation-report.md +124 -56
  163. package/package.json +9 -1
  164. package/plugins/codex-workflow-gateway/.codex-plugin/plugin.json +10 -3
  165. package/plugins/codex-workflow-gateway/references/protocol.md +92 -4
  166. package/plugins/codex-workflow-gateway/scripts/chat-registry.mjs +376 -0
  167. package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +263 -4
  168. package/references/state-machine.md +13 -6
  169. package/roles/delivery-coordinator.md +39 -0
  170. package/schemas/adoption-posture-event.schema.json +1 -1
  171. package/schemas/authorization-event.schema.json +64 -1
  172. package/schemas/context-envelope.schema.json +1 -1
  173. package/schemas/corrective-decision-event.schema.json +48 -3
  174. package/schemas/corrective-replan-credentials.private.schema.json +98 -0
  175. package/schemas/corrective-replan-execution-event.private.schema.json +53 -0
  176. package/schemas/corrective-replan-public.schema.json +142 -0
  177. package/schemas/corrective-replan-task-transaction.private.schema.json +151 -0
  178. package/schemas/corrective-yield-task-transaction.private.schema.json +98 -0
  179. package/schemas/milestone-scope-change-event.schema.json +6 -1
  180. package/schemas/milestone.schema.json +6 -1
  181. package/schemas/remediation-event.schema.json +11 -1
  182. package/schemas/task-handoff-event.schema.json +19 -3
  183. package/schemas/task.schema.json +24 -1
  184. package/schemas/transition-definition.schema.json +2609 -0
  185. package/schemas/transition-payloads.schema.json +140 -0
  186. package/scripts/generate-pdf-docs.py +512 -0
  187. package/scripts/run-pdf-docs.mjs +62 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../../src/lifecycle/evaluator.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,kBAAkB,CAChC,UAAgE,EAChE,QAA6B,EAC7B,QAA6B,EAC7B,KAAgC;IAEhC,MAAM,YAAY,GAA4B,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5E,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,KAAK,WAAW,IAAI,KAAK,KAAK,cAAc,EAAE,CAAC;YACrE,OAAO;gBACL,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;gBAC/B,MAAM,EAAE,SAAS;gBACjB,MAAM,EAAE,KAAK;gBACb,UAAU,EAAE,wBAAwB;gBACpC,OAAO,EAAE,qEAAqE;aAC/E,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC9C,MAAM,IAAI,SAAS,CACjB,SAAS,KAAK,CAAC,QAAQ,CAAC,OAAO,wBAAwB,MAAM,CAAC,OAAO,GAAG,CACzE,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC,CAAC;IACH,MAAM,gBAAgB,GAAG,YAAY;SAClC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;SAC9C,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,eAAe,GAAG,YAAY;SACjC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC;SAC/C,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnC,OAAO;QACL,YAAY,EAAE,UAAU,CAAC,QAAQ,CAAC,YAAY;QAC9C,mBAAmB,EAAE,UAAU,CAAC,mBAAmB;QACnD,KAAK;QACL,OAAO,EAAE,gBAAgB,CAAC,MAAM,KAAK,CAAC;QACtC,QAAQ;QACR,YAAY;QACZ,gBAAgB;QAChB,eAAe;KAChB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,31 @@
1
+ export { hashCanonical } from './canonical-hash.js';
2
+ export type { CanonicalJsonValue } from './canonical-hash.js';
3
+ import { type SerializedTransitionDefinition, type TransitionDefinitionMetadata, type TransitionId } from './types.js';
4
+ export interface RuntimeSemanticProjection {
5
+ readonly semantics: unknown;
6
+ readonly resolvedRegistryEntries: readonly unknown[];
7
+ readonly executableSemantics: unknown;
8
+ }
9
+ export interface DefinitionManifestProjection {
10
+ readonly runtimeSemanticFingerprint: string;
11
+ readonly readinessManifest: unknown;
12
+ readonly traceability: unknown;
13
+ readonly resolvedReadinessRegistryEntries: readonly unknown[];
14
+ }
15
+ export declare function runtimeSemanticProjection(metadata: TransitionDefinitionMetadata): RuntimeSemanticProjection;
16
+ /** @deprecated Use runtimeSemanticProjection. */
17
+ export declare const semanticTransitionProjection: typeof runtimeSemanticProjection;
18
+ export declare function runtimeSemanticFingerprint(metadata: TransitionDefinitionMetadata): string;
19
+ /** @deprecated Protocol-v1 compatibility name. */
20
+ export declare const semanticTransitionFingerprint: typeof runtimeSemanticFingerprint;
21
+ export declare function definitionManifestProjection(metadata: TransitionDefinitionMetadata, semanticFingerprint: string): DefinitionManifestProjection;
22
+ export declare function transitionDefinitionManifestHash(metadata: TransitionDefinitionMetadata, semanticFingerprint?: string): string;
23
+ export declare const definitionManifestHash: typeof transitionDefinitionManifestHash;
24
+ export interface CatalogRuntimeHashEntry {
25
+ readonly transitionId: TransitionId;
26
+ readonly runtimeSemanticFingerprint: string;
27
+ }
28
+ export declare function runtimeCatalogHash(definitions: readonly Pick<SerializedTransitionDefinition, 'runtimeSemanticFingerprint' | 'transitionId'>[]): string;
29
+ /** @deprecated Use runtimeCatalogHash. */
30
+ export declare const semanticCatalogHash: typeof runtimeCatalogHash;
31
+ export declare function catalogDefinitionManifestHash(definitions: readonly Pick<SerializedTransitionDefinition, 'definitionManifestHash' | 'transitionId'>[]): string;
@@ -0,0 +1,388 @@
1
+ import { transitionSemanticRegistry } from './semantic-registry.js';
2
+ import { hashCanonical } from './canonical-hash.js';
3
+ export { hashCanonical } from './canonical-hash.js';
4
+ import { coreReleaseRuleDescriptors, correctiveReplanExecutableSemanticIdentity } from './implementation-table.js';
5
+ import { LIFECYCLE_EPOCH, TRANSITION_CATALOG_FORMAT_VERSION, } from './types.js';
6
+ export function runtimeSemanticProjection(metadata) {
7
+ if (arguments.length !== 1)
8
+ throw new TypeError('Custom semantic registries are not accepted by installed identity helpers.');
9
+ resolveRegistryClosure(metadata.readinessManifest, readinessRegistryCategories(transitionSemanticRegistry));
10
+ const { readinessManifest: _readinessManifest, traceability: _traceability, documentation: _documentation, ...runtimeMetadata } = metadata;
11
+ const semantics = normalizeRuntimeMetadata(runtimeMetadata);
12
+ return {
13
+ semantics,
14
+ resolvedRegistryEntries: resolveRegistryClosure(semantics, runtimeRegistryCategories(transitionSemanticRegistry)),
15
+ executableSemantics: defaultExecutableSemantics(),
16
+ };
17
+ }
18
+ /** @deprecated Use runtimeSemanticProjection. */
19
+ export const semanticTransitionProjection = runtimeSemanticProjection;
20
+ export function runtimeSemanticFingerprint(metadata) {
21
+ if (arguments.length !== 1)
22
+ throw new TypeError('Custom semantic registries are not accepted by installed identity helpers.');
23
+ return hashCanonical(runtimeSemanticProjection(metadata));
24
+ }
25
+ /** @deprecated Protocol-v1 compatibility name. */
26
+ export const semanticTransitionFingerprint = runtimeSemanticFingerprint;
27
+ export function definitionManifestProjection(metadata, semanticFingerprint) {
28
+ if (arguments.length !== 2)
29
+ throw new TypeError('Installed manifest projection accepts metadata and its runtime fingerprint only.');
30
+ const readinessManifest = {
31
+ ...metadata.readinessManifest,
32
+ limitations: sortRefs(metadata.readinessManifest.limitations),
33
+ evidence: [...metadata.readinessManifest.evidence]
34
+ .sort((left, right) => left.evidenceId.localeCompare(right.evidenceId)),
35
+ };
36
+ const traceability = {
37
+ defectIds: sortedStrings(metadata.traceability.defectIds),
38
+ invariantIds: sortedStrings(metadata.traceability.invariantIds),
39
+ positiveEvidence: sortedStrings(metadata.traceability.positiveEvidence),
40
+ hostileEvidence: sortedStrings(metadata.traceability.hostileEvidence),
41
+ };
42
+ return {
43
+ runtimeSemanticFingerprint: semanticFingerprint,
44
+ readinessManifest,
45
+ traceability,
46
+ resolvedReadinessRegistryEntries: resolveRegistryClosure(readinessManifest, readinessRegistryCategories(transitionSemanticRegistry)),
47
+ };
48
+ }
49
+ export function transitionDefinitionManifestHash(metadata, semanticFingerprint = runtimeSemanticFingerprint(metadata)) {
50
+ if (arguments.length > 2)
51
+ throw new TypeError('Custom semantic registries are not accepted by installed identity helpers.');
52
+ return hashCanonical(definitionManifestProjection(metadata, semanticFingerprint));
53
+ }
54
+ export const definitionManifestHash = transitionDefinitionManifestHash;
55
+ export function runtimeCatalogHash(definitions) {
56
+ const transitions = definitions
57
+ .map((definition) => ({
58
+ transitionId: definition.transitionId,
59
+ runtimeSemanticFingerprint: definition.runtimeSemanticFingerprint,
60
+ }))
61
+ .sort((left, right) => left.transitionId.localeCompare(right.transitionId));
62
+ return hashCanonical({
63
+ catalogFormatVersion: TRANSITION_CATALOG_FORMAT_VERSION,
64
+ lifecycleEpoch: LIFECYCLE_EPOCH,
65
+ transitions,
66
+ });
67
+ }
68
+ /** @deprecated Use runtimeCatalogHash. */
69
+ export const semanticCatalogHash = runtimeCatalogHash;
70
+ export function catalogDefinitionManifestHash(definitions) {
71
+ return hashCanonical({
72
+ catalogFormatVersion: TRANSITION_CATALOG_FORMAT_VERSION,
73
+ definitions: definitions
74
+ .map((definition) => ({
75
+ transitionId: definition.transitionId,
76
+ definitionManifestHash: definition.definitionManifestHash,
77
+ }))
78
+ .sort((left, right) => left.transitionId.localeCompare(right.transitionId)),
79
+ });
80
+ }
81
+ function normalizeRuntimeMetadata(metadata) {
82
+ return {
83
+ ...metadata,
84
+ sourcePosture: {
85
+ taskStatuses: sortedStrings(metadata.sourcePosture.taskStatuses),
86
+ milestoneStatuses: sortedStrings(metadata.sourcePosture.milestoneStatuses),
87
+ stepStatuses: sortedStrings(metadata.sourcePosture.stepStatuses),
88
+ correctivePostures: sortedStrings(metadata.sourcePosture.correctivePostures),
89
+ },
90
+ inputContract: [...metadata.inputContract]
91
+ .map((input) => ({ ...input }))
92
+ .sort((left, right) => refKey(left.input).localeCompare(refKey(right.input))),
93
+ outputContract: [...metadata.outputContract]
94
+ .map((output) => ({ ...output }))
95
+ .sort((left, right) => left.outputId.localeCompare(right.outputId)),
96
+ guards: metadata.guards.map(normalizeGuard),
97
+ authority: {
98
+ ...metadata.authority,
99
+ eligibleRoles: sortedStrings(metadata.authority.eligibleRoles),
100
+ principal: {
101
+ ...metadata.authority.principal,
102
+ allowedKinds: sortedStrings(metadata.authority.principal.allowedKinds),
103
+ },
104
+ capabilities: [...metadata.authority.capabilities]
105
+ .sort((left, right) => refKey(left.capability).localeCompare(refKey(right.capability))),
106
+ credentials: sortRefs(metadata.authority.credentials),
107
+ executionBoundaries: sortedStrings(metadata.authority.executionBoundaries),
108
+ separationOfDuty: [...metadata.authority.separationOfDuty]
109
+ .sort((left, right) => left.constraintId.localeCompare(right.constraintId)),
110
+ forbiddenCombinations: [...metadata.authority.forbiddenCombinations]
111
+ .map((constraint) => ({ ...constraint, subjects: sortRefs(constraint.subjects) }))
112
+ .sort((left, right) => left.constraintId.localeCompare(right.constraintId)),
113
+ },
114
+ effects: {
115
+ ...metadata.effects,
116
+ taskStatus: { ...metadata.effects.taskStatus, from: sortedStrings(metadata.effects.taskStatus.from) },
117
+ milestoneStatus: { ...metadata.effects.milestoneStatus, from: sortedStrings(metadata.effects.milestoneStatus.from) },
118
+ stepStatus: { ...metadata.effects.stepStatus, from: sortedStrings(metadata.effects.stepStatus.from) },
119
+ orderedNodes: metadata.effects.orderedNodes.map(normalizeEffectNode),
120
+ postconditions: [...metadata.effects.postconditions]
121
+ .map(normalizePostcondition)
122
+ .sort((left, right) => left.postconditionId.localeCompare(right.postconditionId)),
123
+ },
124
+ admissionBoundary: {
125
+ ...metadata.admissionBoundary,
126
+ lock: {
127
+ ...metadata.admissionBoundary.lock,
128
+ scope: normalizeProjectionSlice(metadata.admissionBoundary.lock.scope),
129
+ },
130
+ orderedRevalidations: metadata.admissionBoundary.orderedRevalidations.map(normalizeRevalidation),
131
+ },
132
+ atomicity: {
133
+ ...metadata.atomicity,
134
+ executionKey: {
135
+ ...metadata.atomicity.executionKey,
136
+ fields: sortProjectionFields(metadata.atomicity.executionKey.fields),
137
+ },
138
+ journal: metadata.atomicity.journal.mode === 'none'
139
+ ? metadata.atomicity.journal
140
+ : {
141
+ ...metadata.atomicity.journal,
142
+ orderedPhases: metadata.atomicity.journal.orderedPhases.map(normalizeJournalPhase),
143
+ },
144
+ recovery: metadata.atomicity.recovery.mode === 'manual-integrity-stop'
145
+ ? {
146
+ ...metadata.atomicity.recovery,
147
+ fromPhaseIds: sortedStrings(metadata.atomicity.recovery.fromPhaseIds),
148
+ }
149
+ : {
150
+ ...metadata.atomicity.recovery,
151
+ fromPhaseIds: sortedStrings(metadata.atomicity.recovery.fromPhaseIds),
152
+ orderedSteps: metadata.atomicity.recovery.orderedSteps.map((step) => ({ ...step })),
153
+ },
154
+ readback: {
155
+ ...metadata.atomicity.readback,
156
+ postconditionIds: sortedStrings(metadata.atomicity.readback.postconditionIds),
157
+ },
158
+ },
159
+ racePreconditions: [...metadata.racePreconditions]
160
+ .map(normalizeRace)
161
+ .sort((left, right) => left.raceId.localeCompare(right.raceId)),
162
+ };
163
+ }
164
+ function normalizeGuard(guard) {
165
+ return {
166
+ ...guard,
167
+ reads: sortProjectionSlices(guard.reads),
168
+ requiredInputs: sortRefs(guard.requiredInputs),
169
+ };
170
+ }
171
+ function normalizeEffectNode(node) {
172
+ return {
173
+ ...node,
174
+ conditions: [...node.conditions].sort((left, right) => conditionKey(left).localeCompare(conditionKey(right))),
175
+ dependsOn: sortedStrings(node.dependsOn),
176
+ };
177
+ }
178
+ function normalizePostcondition(postcondition) {
179
+ return {
180
+ ...postcondition,
181
+ reads: sortProjectionSlices(postcondition.reads),
182
+ effectNodeIds: sortedStrings(postcondition.effectNodeIds),
183
+ };
184
+ }
185
+ function normalizeRevalidation(revalidation) {
186
+ return { ...revalidation, reads: sortProjectionSlices(revalidation.reads) };
187
+ }
188
+ function normalizeRace(race) {
189
+ return {
190
+ ...race,
191
+ reads: sortProjectionSlices(race.reads),
192
+ allowedFailureCodes: sortedStrings(race.allowedFailureCodes),
193
+ };
194
+ }
195
+ function normalizeJournalPhase(phase) {
196
+ return {
197
+ ...phase,
198
+ allowedNextPhaseIds: sortedStrings(phase.allowedNextPhaseIds),
199
+ effectNodeIds: sortedStrings(phase.effectNodeIds),
200
+ digestFields: sortProjectionFields(phase.digestFields),
201
+ };
202
+ }
203
+ function sortProjectionSlices(slices) {
204
+ const grouped = new Map();
205
+ for (const slice of slices) {
206
+ const key = refKey(slice.projection);
207
+ const current = grouped.get(key) ?? { projection: slice.projection, fieldIds: new Set() };
208
+ slice.fieldIds.forEach((fieldId) => current.fieldIds.add(fieldId));
209
+ grouped.set(key, current);
210
+ }
211
+ return [...grouped.values()]
212
+ .map((entry) => ({ projection: entry.projection, fieldIds: sortedStrings([...entry.fieldIds]) }))
213
+ .sort((left, right) => refKey(left.projection).localeCompare(refKey(right.projection)));
214
+ }
215
+ function normalizeProjectionSlice(slice) {
216
+ return { ...slice, fieldIds: sortedStrings(slice.fieldIds) };
217
+ }
218
+ function sortProjectionFields(fields) {
219
+ return [...fields].sort((left, right) => `${refKey(left.projection)}\0${left.fieldId}`.localeCompare(`${refKey(right.projection)}\0${right.fieldId}`));
220
+ }
221
+ function sortRefs(refs) {
222
+ return [...refs].sort((left, right) => refKey(left).localeCompare(refKey(right)));
223
+ }
224
+ function sortedStrings(values) {
225
+ return [...values].sort((left, right) => left.localeCompare(right));
226
+ }
227
+ function conditionKey(condition) {
228
+ return condition.kind === 'input-present'
229
+ ? `input-present\0${refKey(condition.input)}`
230
+ : `guard-passed\0${condition.guardId}`;
231
+ }
232
+ function refKey(ref) {
233
+ return `${ref.id}@${ref.version}`;
234
+ }
235
+ function runtimeRegistryCategories(registry) {
236
+ const categoryNames = [
237
+ 'inputs',
238
+ 'schemas',
239
+ 'projections',
240
+ 'hashPolicies',
241
+ 'identities',
242
+ 'identityComparators',
243
+ 'principalBases',
244
+ 'capabilities',
245
+ 'credentialPolicies',
246
+ 'credentialVerifiers',
247
+ 'clocks',
248
+ 'delegationPolicies',
249
+ 'ownershipPolicies',
250
+ 'guardEvaluators',
251
+ 'effectAdapters',
252
+ 'resources',
253
+ 'lockPolicies',
254
+ 'executionKeyPolicies',
255
+ 'journalSchemas',
256
+ 'journalAdapters',
257
+ 'recoveryAdapters',
258
+ 'readbackAdapters',
259
+ ];
260
+ return categoryNames.flatMap((category) => registry[category].map((entry) => ({ category, entry })));
261
+ }
262
+ function readinessRegistryCategories(registry) {
263
+ const categoryNames = [
264
+ 'coverageProducers',
265
+ 'coverageProfiles',
266
+ 'limitations',
267
+ 'releaseProfiles',
268
+ 'semanticRules',
269
+ ];
270
+ return categoryNames.flatMap((category) => registry[category].map((entry) => ({ category, entry })));
271
+ }
272
+ function resolveRegistryClosure(root, entries) {
273
+ const resolved = new Map();
274
+ const pending = findRegisteredRefs(root);
275
+ while (pending.length > 0) {
276
+ const ref = pending.pop();
277
+ const key = refKey(ref);
278
+ if (resolved.has(key))
279
+ continue;
280
+ const matches = entries.filter((entry) => refKey(entry.entry) === key);
281
+ if (matches.length !== 1) {
282
+ const error = new TypeError(`Unresolved semantic reference ${key}: expected exact one installed entry, got ${matches.length}.`);
283
+ Object.assign(error, { code: 'UNRESOLVED_SEMANTIC_REFERENCE', ref: key });
284
+ throw error;
285
+ }
286
+ const candidate = matches[0];
287
+ resolved.set(key, candidate);
288
+ for (const nested of findRegisteredRefs(candidate.entry)) {
289
+ if (refKey(nested) !== key)
290
+ pending.push(nested);
291
+ }
292
+ }
293
+ return [...resolved.values()]
294
+ .sort((left, right) => `${left.category}\0${refKey(left.entry)}`.localeCompare(`${right.category}\0${refKey(right.entry)}`))
295
+ .map(({ category, entry }) => ({ category, entry: normalizeRegistryEntry(category, entry) }));
296
+ }
297
+ function findRegisteredRefs(value) {
298
+ const refs = [];
299
+ visit(value);
300
+ return refs;
301
+ function visit(candidate) {
302
+ if (Array.isArray(candidate)) {
303
+ candidate.forEach(visit);
304
+ return;
305
+ }
306
+ if (candidate === null || typeof candidate !== 'object')
307
+ return;
308
+ const object = candidate;
309
+ if (typeof object.id === 'string' && Number.isInteger(object.version)) {
310
+ refs.push({ id: object.id, version: object.version });
311
+ }
312
+ Object.values(object).forEach(visit);
313
+ }
314
+ }
315
+ function normalizeRegistryEntry(category, entry) {
316
+ const record = entry;
317
+ switch (category) {
318
+ case 'projections':
319
+ return { ...record, fieldIds: sortedUnknownStrings(record.fieldIds) };
320
+ case 'guardEvaluators':
321
+ return { ...record, allowedInputs: sortUnknownRefs(record.allowedInputs) };
322
+ case 'credentialPolicies': {
323
+ const binding = record.binding;
324
+ return { ...record, binding: binding ? normalizeProjectionSlice(binding) : binding };
325
+ }
326
+ case 'identityComparators':
327
+ return { ...record, operands: sortUnknownRefs(record.operands) };
328
+ case 'executionKeyPolicies':
329
+ return { ...record, requiredFields: sortUnknownProjectionFields(record.requiredFields) };
330
+ case 'lockPolicies': {
331
+ const scope = record.scope;
332
+ return { ...record, scope: scope ? normalizeProjectionSlice(scope) : scope };
333
+ }
334
+ case 'journalAdapters':
335
+ return { ...record, compatibleEffectAdapters: sortUnknownRefs(record.compatibleEffectAdapters) };
336
+ case 'recoveryAdapters':
337
+ return { ...record, compatibleJournalAdapters: sortUnknownRefs(record.compatibleJournalAdapters) };
338
+ case 'readbackAdapters':
339
+ return { ...record, compatibleEffectAdapters: sortUnknownRefs(record.compatibleEffectAdapters) };
340
+ case 'releaseProfiles':
341
+ return {
342
+ ...record,
343
+ allowedLimitations: sortUnknownRefs(record.allowedLimitations),
344
+ requiredRules: sortUnknownRefs(record.requiredRules),
345
+ };
346
+ case 'coverageProfiles':
347
+ return { ...record, requiredEvidenceKinds: sortedUnknownStrings(record.requiredEvidenceKinds) };
348
+ default:
349
+ return record;
350
+ }
351
+ }
352
+ function defaultExecutableSemantics() {
353
+ return {
354
+ rules: coreReleaseRuleDescriptors.map(([id, suffix]) => ({
355
+ id, version: 1, implementationId: `implementation.release-rule.${suffix}`, implementationVersion: 1,
356
+ })),
357
+ bindings: [...correctiveReplanExecutableSemanticIdentity]
358
+ .sort((left, right) => `${left.category}\0${left.id}@${left.version}`.localeCompare(`${right.category}\0${right.id}@${right.version}`)),
359
+ };
360
+ }
361
+ function sortedUnknownStrings(value) {
362
+ return Array.isArray(value) && value.every((entry) => typeof entry === 'string')
363
+ ? [...value].sort((left, right) => left.localeCompare(right))
364
+ : [];
365
+ }
366
+ function sortUnknownRefs(value) {
367
+ return Array.isArray(value)
368
+ ? sortRefs(value.filter((entry) => entry !== null
369
+ && typeof entry === 'object'
370
+ && typeof entry.id === 'string'
371
+ && Number.isInteger(entry.version)))
372
+ : [];
373
+ }
374
+ function sortUnknownProjectionFields(value) {
375
+ return Array.isArray(value)
376
+ ? sortProjectionFields(value.filter((entry) => {
377
+ if (entry === null || typeof entry !== 'object')
378
+ return false;
379
+ const field = entry;
380
+ return typeof field.fieldId === 'string'
381
+ && field.projection !== null
382
+ && typeof field.projection === 'object'
383
+ && typeof field.projection.id === 'string'
384
+ && Number.isInteger(field.projection.version);
385
+ }))
386
+ : [];
387
+ }
388
+ //# sourceMappingURL=fingerprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fingerprint.js","sourceRoot":"","sources":["../../../src/lifecycle/fingerprint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,0BAA0B,EAAE,0CAA0C,EAAE,MAAM,2BAA2B,CAAC;AACnH,OAAO,EACL,eAAe,EACf,iCAAiC,GAgBlC,MAAM,YAAY,CAAC;AAmBpB,MAAM,UAAU,yBAAyB,CACvC,QAAsC;IAEtC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,4EAA4E,CAAC,CAAC;IAC9H,sBAAsB,CAAC,QAAQ,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAC5G,MAAM,EACJ,iBAAiB,EAAE,kBAAkB,EACrC,YAAY,EAAE,aAAa,EAC3B,aAAa,EAAE,cAAc,EAC7B,GAAG,eAAe,EACnB,GAAG,QAAQ,CAAC;IACb,MAAM,SAAS,GAAG,wBAAwB,CAAC,eAG1C,CAAC,CAAC;IACH,OAAO;QACL,SAAS;QACT,uBAAuB,EAAE,sBAAsB,CAAC,SAAS,EAAE,yBAAyB,CAAC,0BAA0B,CAAC,CAAC;QACjH,mBAAmB,EAAE,0BAA0B,EAAE;KAClD,CAAC;AACJ,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AAEtE,MAAM,UAAU,0BAA0B,CACxC,QAAsC;IAEtC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,4EAA4E,CAAC,CAAC;IAC9H,OAAO,aAAa,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,MAAM,6BAA6B,GAAG,0BAA0B,CAAC;AAExE,MAAM,UAAU,4BAA4B,CAC1C,QAAsC,EACtC,mBAA2B;IAE3B,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,kFAAkF,CAAC,CAAC;IACpI,MAAM,iBAAiB,GAAG;QACxB,GAAG,QAAQ,CAAC,iBAAiB;QAC7B,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC;QAC7D,QAAQ,EAAE,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC,QAAQ,CAAC;aAC/C,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAC1E,CAAC;IACF,MAAM,YAAY,GAAG;QACnB,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC;QACzD,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC;QAC/D,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,gBAAgB,CAAC;QACvE,eAAe,EAAE,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC;KACtE,CAAC;IACF,OAAO;QACL,0BAA0B,EAAE,mBAAmB;QAC/C,iBAAiB;QACjB,YAAY;QACZ,gCAAgC,EAAE,sBAAsB,CACtD,iBAAiB,EACjB,2BAA2B,CAAC,0BAA0B,CAAC,CACxD;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,QAAsC,EACtC,mBAAmB,GAAG,0BAA0B,CAAC,QAAQ,CAAC;IAE1D,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,4EAA4E,CAAC,CAAC;IAC5H,OAAO,aAAa,CAAC,4BAA4B,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,gCAAgC,CAAC;AAOvE,MAAM,UAAU,kBAAkB,CAChC,WAA2G;IAE3G,MAAM,WAAW,GAA8B,WAAW;SACvD,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QACpB,YAAY,EAAE,UAAU,CAAC,YAAY;QACrC,0BAA0B,EAAE,UAAU,CAAC,0BAA0B;KAClE,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAC9E,OAAO,aAAa,CAAC;QACnB,oBAAoB,EAAE,iCAAiC;QACvD,cAAc,EAAE,eAAe;QAC/B,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED,0CAA0C;AAC1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,kBAAkB,CAAC;AAEtD,MAAM,UAAU,6BAA6B,CAC3C,WAAuG;IAEvG,OAAO,aAAa,CAAC;QACnB,oBAAoB,EAAE,iCAAiC;QACvD,WAAW,EAAE,WAAW;aACrB,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACpB,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,sBAAsB,EAAE,UAAU,CAAC,sBAAsB;SAC1D,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;KAC9E,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB,CAC/B,QAAoG;IAEpG,OAAO;QACL,GAAG,QAAQ;QACX,aAAa,EAAE;YACb,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC;YAChE,iBAAiB,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC;YAC1E,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC;YAChE,kBAAkB,EAAE,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,kBAAkB,CAAC;SAC7E;QACD,aAAa,EAAE,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC;aACvC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;aAC9B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/E,cAAc,EAAE,CAAC,GAAG,QAAQ,CAAC,cAAc,CAAC;aACzC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;aAChC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC;QAC3C,SAAS,EAAE;YACT,GAAG,QAAQ,CAAC,SAAS;YACrB,aAAa,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC;YAC9D,SAAS,EAAE;gBACT,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS;gBAC/B,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC;aACvE;YACD,YAAY,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC;iBAC/C,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YACzF,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC;YACrD,mBAAmB,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,mBAAmB,CAAC;YAC1E,gBAAgB,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,gBAAgB,CAAC;iBACvD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAC7E,qBAAqB,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,qBAAqB,CAAC;iBACjE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;iBACjF,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;SAC9E;QACD,OAAO,EAAE;YACP,GAAG,QAAQ,CAAC,OAAO;YACnB,UAAU,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACrG,eAAe,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;YACpH,UAAU,EAAE,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACrG,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC;YACpE,cAAc,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC;iBACjD,GAAG,CAAC,sBAAsB,CAAC;iBAC3B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;SACpF;QACD,iBAAiB,EAAE;YACjB,GAAG,QAAQ,CAAC,iBAAiB;YAC7B,IAAI,EAAE;gBACJ,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI;gBAClC,KAAK,EAAE,wBAAwB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;aACvE;YACD,oBAAoB,EAAE,QAAQ,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,GAAG,CAAC,qBAAqB,CAAC;SACjG;QACD,SAAS,EAAE;YACT,GAAG,QAAQ,CAAC,SAAS;YACrB,YAAY,EAAE;gBACZ,GAAG,QAAQ,CAAC,SAAS,CAAC,YAAY;gBAClC,MAAM,EAAE,oBAAoB,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,MAAM,CAAC;aACrE;YACD,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM;gBACjD,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO;gBAC5B,CAAC,CAAC;oBACE,GAAG,QAAQ,CAAC,SAAS,CAAC,OAAO;oBAC7B,aAAa,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,qBAAqB,CAAC;iBACnF;YACL,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,KAAK,uBAAuB;gBACpE,CAAC,CAAC;oBACE,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ;oBAC9B,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;iBACtE;gBACH,CAAC,CAAC;oBACE,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ;oBAC9B,YAAY,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;oBACrE,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;iBACpF;YACL,QAAQ,EAAE;gBACR,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ;gBAC9B,gBAAgB,EAAE,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,CAAC;aAC9E;SACF;QACD,iBAAiB,EAAE,CAAC,GAAG,QAAQ,CAAC,iBAAiB,CAAC;aAC/C,GAAG,CAAC,aAAa,CAAC;aAClB,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAA8B;IACpD,OAAO;QACL,GAAG,KAAK;QACR,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC;QACxC,cAAc,EAAE,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAA0B;IACrD,OAAO;QACL,GAAG,IAAI;QACP,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7G,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,aAAsC;IACpE,OAAO;QACL,GAAG,aAAa;QAChB,KAAK,EAAE,oBAAoB,CAAC,aAAa,CAAC,KAAK,CAAC;QAChD,aAAa,EAAE,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC;KAC1D,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,YAAoC;IACjE,OAAO,EAAE,GAAG,YAAY,EAAE,KAAK,EAAE,oBAAoB,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CAAC,IAAgC;IACrD,OAAO;QACL,GAAG,IAAI;QACP,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;QACvC,mBAAmB,EAAE,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC;KAC7D,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,KAA6B;IAC1D,OAAO;QACL,GAAG,KAAK;QACR,mBAAmB,EAAE,aAAa,CAAC,KAAK,CAAC,mBAAmB,CAAC;QAC7D,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC;QACjD,YAAY,EAAE,oBAAoB,CAAC,KAAK,CAAC,YAAY,CAAC;KACvD,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAqC;IACjE,MAAM,OAAO,GAAG,IAAI,GAAG,EAAmH,CAAC;IAC3I,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;QAC1F,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;SACzB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;SAChG,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC5F,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAyB;IACzD,OAAO,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;AAC/D,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAqC;IACjE,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CACtC,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;AAClH,CAAC;AAED,SAAS,QAAQ,CAAqC,IAAqB;IACzE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,SAAS,aAAa,CAAwB,MAAyB;IACrE,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,YAAY,CAAC,SAA0B;IAC9C,OAAO,SAAS,CAAC,IAAI,KAAK,eAAe;QACvC,CAAC,CAAC,kBAAkB,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QAC7C,CAAC,CAAC,iBAAiB,SAAS,CAAC,OAAO,EAAE,CAAC;AAC3C,CAAC;AAED,SAAS,MAAM,CAAC,GAA0B;IACxC,OAAO,GAAG,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC;AAOD,SAAS,yBAAyB,CAAC,QAA0B;IAC3D,MAAM,aAAa,GAAuC;QACxD,QAAQ;QACR,SAAS;QACT,aAAa;QACb,cAAc;QACd,YAAY;QACZ,qBAAqB;QACrB,gBAAgB;QAChB,cAAc;QACd,oBAAoB;QACpB,qBAAqB;QACrB,QAAQ;QACR,oBAAoB;QACpB,mBAAmB;QACnB,iBAAiB;QACjB,gBAAgB;QAChB,WAAW;QACX,cAAc;QACd,sBAAsB;QACtB,gBAAgB;QAChB,iBAAiB;QACjB,kBAAkB;QAClB,kBAAkB;KACnB,CAAC;IACF,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,2BAA2B,CAAC,QAA0B;IAC7D,MAAM,aAAa,GAAyC;QAC1D,mBAAmB;QACnB,kBAAkB;QAClB,aAAa;QACb,iBAAiB;QACjB,eAAe;KAChB,CAAC;IACF,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACvG,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAa,EAAE,OAA4C;IACzF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC7D,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAG,CAAC;QAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAChC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;QACvE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,iCAAiC,GAAG,6CAA6C,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;YAChI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,+BAA+B,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;YAC1E,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;QAC9B,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QAC7B,KAAK,MAAM,MAAM,IAAI,kBAAkB,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,GAAG;gBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;SAC1B,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,KAAK,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SAC3H,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;AAClG,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,CAAC,KAAK,CAAC,CAAC;IACb,OAAO,IAAI,CAAC;IAEZ,SAAS,KAAK,CAAC,SAAkB;QAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzB,OAAO;QACT,CAAC;QACD,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,OAAO;QAChE,MAAM,MAAM,GAAG,SAAoC,CAAC;QACpD,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAiB,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAgB,EAAE,KAAqC;IACrF,MAAM,MAAM,GAAG,KAAiE,CAAC;IACjF,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa;YAChB,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,oBAAoB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxE,KAAK,iBAAiB;YACpB,OAAO,EAAE,GAAG,MAAM,EAAE,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QAC7E,KAAK,oBAAoB,CAAC,CAAC,CAAC;YAC1B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAyC,CAAC;YACjE,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACvF,CAAC;QACD,KAAK,qBAAqB;YACxB,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnE,KAAK,sBAAsB;YACzB,OAAO,EAAE,GAAG,MAAM,EAAE,cAAc,EAAE,2BAA2B,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAC3F,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,MAAM,CAAC,KAA8C,CAAC;YACpE,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;QAC/E,CAAC;QACD,KAAK,iBAAiB;YACpB,OAAO,EAAE,GAAG,MAAM,EAAE,wBAAwB,EAAE,eAAe,CAAC,MAAM,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACnG,KAAK,kBAAkB;YACrB,OAAO,EAAE,GAAG,MAAM,EAAE,yBAAyB,EAAE,eAAe,CAAC,MAAM,CAAC,yBAAyB,CAAC,EAAE,CAAC;QACrG,KAAK,kBAAkB;YACrB,OAAO,EAAE,GAAG,MAAM,EAAE,wBAAwB,EAAE,eAAe,CAAC,MAAM,CAAC,wBAAwB,CAAC,EAAE,CAAC;QACnG,KAAK,iBAAiB;YACpB,OAAO;gBACL,GAAG,MAAM;gBACT,kBAAkB,EAAE,eAAe,CAAC,MAAM,CAAC,kBAAkB,CAAC;gBAC9D,aAAa,EAAE,eAAe,CAAC,MAAM,CAAC,aAAa,CAAC;aACrD,CAAC;QACJ,KAAK,kBAAkB;YACrB,OAAO,EAAE,GAAG,MAAM,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,MAAM,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAClG;YACE,OAAO,MAAM,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B;IACjC,OAAO;QACL,KAAK,EAAE,0BAA0B,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACvD,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,gBAAgB,EAAE,+BAA+B,MAAM,EAAE,EAAE,qBAAqB,EAAE,CAAC;SACpG,CAAC,CAAC;QACH,QAAQ,EAAE,CAAC,GAAG,0CAA0C,CAAC;aACtD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,KAAK,KAAK,CAAC,EAAE,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;KAC1I,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;QAC9E,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC7D,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAkC,EAAE,CAC9D,KAAK,KAAK,IAAI;eACX,OAAO,KAAK,KAAK,QAAQ;eACzB,OAAQ,KAA0B,CAAC,EAAE,KAAK,QAAQ;eAClD,MAAM,CAAC,SAAS,CAAE,KAA+B,CAAC,OAAO,CAAC,CAAC,CAAC;QACnE,CAAC,CAAC,EAAE,CAAC;AACT,CAAC;AAED,SAAS,2BAA2B,CAAC,KAAc;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAA+B,EAAE;YACvE,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC9D,MAAM,KAAK,GAAG,KAAoD,CAAC;YACnE,OAAO,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;mBACnC,KAAK,CAAC,UAAU,KAAK,IAAI;mBACzB,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ;mBACpC,OAAQ,KAAK,CAAC,UAA+B,CAAC,EAAE,KAAK,QAAQ;mBAC7D,MAAM,CAAC,SAAS,CAAE,KAAK,CAAC,UAAoC,CAAC,OAAO,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;AACT,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function deepFreeze<T>(value: T): T;
@@ -0,0 +1,10 @@
1
+ export function deepFreeze(value) {
2
+ if (typeof value === 'function')
3
+ return Object.freeze(value);
4
+ if (value !== null && typeof value === 'object' && !Object.isFrozen(value)) {
5
+ Object.freeze(value);
6
+ Object.values(value).forEach(deepFreeze);
7
+ }
8
+ return value;
9
+ }
10
+ //# sourceMappingURL=immutable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"immutable.js","sourceRoot":"","sources":["../../../src/lifecycle/immutable.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,UAAU,CAAI,KAAQ;IACpC,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,KAAgC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { ExecutableSemanticBinding } from './types.js';
2
+ type Callable = (...arguments_: never[]) => unknown;
3
+ export interface CorrectiveReplanImplementationCallables {
4
+ readonly guards: readonly Callable[];
5
+ readonly identityComparators: readonly Callable[];
6
+ readonly verifyReceipt: Callable;
7
+ readonly acquireTaskLock: Callable;
8
+ readonly createJournalIntent: Callable;
9
+ readonly recoverCorrectiveReplan: Callable;
10
+ readonly executeCorrectiveReplan: Callable;
11
+ readonly terminalReadback: Callable;
12
+ readonly canonicalJsonSha256: Callable;
13
+ readonly rawPlanSha256: Callable;
14
+ }
15
+ export declare const coreReleaseRuleDescriptors: readonly [readonly ["semantic-rule.definition-integrity", "definition-integrity"], readonly ["semantic-rule.exact-authority", "exact-authority"], readonly ["semantic-rule.required-inputs", "required-inputs"], readonly ["semantic-rule.admission-boundary", "admission-boundary"], readonly ["semantic-rule.reliable-effects", "reliable-effects"]];
16
+ export declare const correctiveReplanExecutableSemanticIdentity: {
17
+ category: "guardEvaluators" | "identityComparators" | "credentialVerifiers" | "lockPolicies" | "effectAdapters" | "journalAdapters" | "recoveryAdapters" | "readbackAdapters" | "hashPolicies";
18
+ id: "hash-policy.canonical-json-sha256" | "hash-policy.raw-sha256" | "identity-comparator.corrective-replan.author-validator" | "identity-comparator.corrective-replan.author-risk-auditor" | "identity-comparator.corrective-replan.author-human-principal" | "credential-verifier.corrective-replan.receipt" | "effect-adapter.journaled-corrective-replan" | "lock-policy.corrective-replan-task-exclusive" | "journal-adapter.corrective-replan-task" | "recovery-adapter.corrective-replan-roll-forward" | "readback-adapter.corrective-replan-terminal" | "guard-evaluator.task.corrective-replan.actor-role-eligible" | "guard-evaluator.task.corrective-replan.plan-validation-passed" | "guard-evaluator.task.corrective-replan.receipt-valid" | "guard-evaluator.task.corrective-replan.risk-audit-passed" | "guard-evaluator.task.corrective-replan.active-decision" | "guard-evaluator.task.corrective-replan.attempt-threshold" | "guard-evaluator.task.corrective-replan.bindings-current" | "guard-evaluator.task.corrective-replan.guarded-step-retained" | "guard-evaluator.task.corrective-replan.no-step-in-progress" | "guard-evaluator.task.corrective-replan.semantic-plan-change" | "guard-evaluator.task.corrective-replan.source-posture" | "guard-evaluator.task.corrective-replan.no-c1-claim" | "guard-evaluator.task.corrective-replan.no-writer-lease";
19
+ version: number;
20
+ semanticId: string;
21
+ semanticVersion: number;
22
+ wiring: string | null;
23
+ implementationResult: string | null;
24
+ projectionWiring: string | null;
25
+ callableKind: "evaluate" | "compare" | "verify" | "execute" | "hash";
26
+ }[];
27
+ /** Explicit Core-owned implementation inventory. It is intentionally not derived from registry rows. */
28
+ export declare function createCorrectiveReplanImplementationTable(callables: CorrectiveReplanImplementationCallables): Readonly<Record<string, readonly ExecutableSemanticBinding[]>>;
29
+ export {};
@@ -0,0 +1,87 @@
1
+ import { deepFreeze } from './immutable.js';
2
+ export const coreReleaseRuleDescriptors = deepFreeze([
3
+ ['semantic-rule.definition-integrity', 'definition-integrity'],
4
+ ['semantic-rule.exact-authority', 'exact-authority'],
5
+ ['semantic-rule.required-inputs', 'required-inputs'],
6
+ ['semantic-rule.admission-boundary', 'admission-boundary'],
7
+ ['semantic-rule.reliable-effects', 'reliable-effects'],
8
+ ]);
9
+ const guardSuffixes = [
10
+ 'bindings-current', 'source-posture', 'no-step-in-progress', 'active-decision', 'attempt-threshold',
11
+ 'semantic-plan-change', 'guarded-step-retained', 'actor-role-eligible', 'no-c1-claim', 'no-writer-lease',
12
+ 'plan-validation-passed', 'receipt-valid', 'risk-audit-passed',
13
+ ];
14
+ const implementationDescriptors = [
15
+ ...guardSuffixes.map((suffix) => ['guardEvaluators', `guard-evaluator.task.corrective-replan.${suffix}`, `guard.${suffix}`, 'evaluate']),
16
+ ['identityComparators', 'identity-comparator.corrective-replan.author-validator', 'identity-comparator.corrective-replan.author-validator', 'compare'],
17
+ ['identityComparators', 'identity-comparator.corrective-replan.author-risk-auditor', 'identity-comparator.corrective-replan.author-risk-auditor', 'compare'],
18
+ ['identityComparators', 'identity-comparator.corrective-replan.author-human-principal', 'identity-comparator.corrective-replan.author-human-principal', 'compare'],
19
+ ['credentialVerifiers', 'credential-verifier.corrective-replan.receipt', 'credential-verifier.corrective-replan.receipt', 'verify'],
20
+ ['lockPolicies', 'lock-policy.corrective-replan-task-exclusive', 'lock.corrective-replan.task-exclusive', 'execute'],
21
+ ['effectAdapters', 'effect-adapter.journaled-corrective-replan', 'effect.journaled-corrective-replan', 'execute'],
22
+ ['journalAdapters', 'journal-adapter.corrective-replan-task', 'journal.corrective-replan.task', 'execute'],
23
+ ['recoveryAdapters', 'recovery-adapter.corrective-replan-roll-forward', 'recovery.corrective-replan.roll-forward', 'execute'],
24
+ ['readbackAdapters', 'readback-adapter.corrective-replan-terminal', 'readback.corrective-replan-terminal', 'execute'],
25
+ ['hashPolicies', 'hash-policy.canonical-json-sha256', 'hash.canonical-json-sha256', 'hash'],
26
+ ['hashPolicies', 'hash-policy.raw-sha256', 'hash.corrective-plan-raw-sha256', 'hash'],
27
+ ];
28
+ export const correctiveReplanExecutableSemanticIdentity = deepFreeze(implementationDescriptors.map(([category, id, semanticSuffix, callableKind]) => ({
29
+ category,
30
+ id,
31
+ version: 1,
32
+ semanticId: `implementation.${semanticSuffix}`,
33
+ semanticVersion: 1,
34
+ wiring: ['credentialVerifiers', 'effectAdapters', 'identityComparators', 'journalAdapters', 'lockPolicies', 'readbackAdapters', 'recoveryAdapters'].includes(category) ? 'invoked' : null,
35
+ implementationResult: category === 'readbackAdapters' ? 'projected-readback' : null,
36
+ projectionWiring: category === 'readbackAdapters' ? 'invoked' : null,
37
+ callableKind,
38
+ })));
39
+ /** Explicit Core-owned implementation inventory. It is intentionally not derived from registry rows. */
40
+ export function createCorrectiveReplanImplementationTable(callables) {
41
+ return deepFreeze({
42
+ guardEvaluators: [
43
+ ...guardSuffixes.map((suffix, index) => binding(`guard-evaluator.task.corrective-replan.${suffix}`, `guard.${suffix}`, 'evaluate', callables.guards[index])),
44
+ ],
45
+ identityComparators: callables.identityComparators.map((callable, index) => {
46
+ const suffix = ['author-validator', 'author-risk-auditor', 'author-human-principal'][index];
47
+ return binding(`identity-comparator.corrective-replan.${suffix}`, `identity-comparator.corrective-replan.${suffix}`, 'compare', callable);
48
+ }),
49
+ credentialVerifiers: [
50
+ binding('credential-verifier.corrective-replan.receipt', 'credential-verifier.corrective-replan.receipt', 'verify', callables.verifyReceipt),
51
+ ],
52
+ lockPolicies: [
53
+ { ...binding('lock-policy.corrective-replan-task-exclusive', 'lock.corrective-replan.task-exclusive', 'execute', callables.acquireTaskLock), wiring: 'invoked' },
54
+ ],
55
+ effectAdapters: [
56
+ { ...binding('effect-adapter.journaled-corrective-replan', 'effect.journaled-corrective-replan', 'execute', callables.executeCorrectiveReplan), wiring: 'invoked' },
57
+ ],
58
+ journalAdapters: [
59
+ { ...binding('journal-adapter.corrective-replan-task', 'journal.corrective-replan.task', 'execute', callables.createJournalIntent), wiring: 'invoked' },
60
+ ],
61
+ recoveryAdapters: [
62
+ { ...binding('recovery-adapter.corrective-replan-roll-forward', 'recovery.corrective-replan.roll-forward', 'execute', callables.recoverCorrectiveReplan), wiring: 'invoked' },
63
+ ],
64
+ readbackAdapters: [
65
+ {
66
+ ...binding('readback-adapter.corrective-replan-terminal', 'readback.corrective-replan-terminal', 'execute', callables.terminalReadback),
67
+ wiring: 'invoked',
68
+ implementationResult: 'projected-readback',
69
+ projectionWiring: 'invoked',
70
+ },
71
+ ],
72
+ hashPolicies: [
73
+ binding('hash-policy.canonical-json-sha256', 'hash.canonical-json-sha256', 'hash', callables.canonicalJsonSha256),
74
+ binding('hash-policy.raw-sha256', 'hash.corrective-plan-raw-sha256', 'hash', callables.rawPlanSha256),
75
+ ],
76
+ });
77
+ }
78
+ function binding(id, semanticSuffix, kind, callable) {
79
+ return {
80
+ id,
81
+ version: 1,
82
+ semanticId: `implementation.${semanticSuffix}`,
83
+ semanticVersion: 1,
84
+ [kind]: callable,
85
+ };
86
+ }
87
+ //# sourceMappingURL=implementation-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"implementation-table.js","sourceRoot":"","sources":["../../../src/lifecycle/implementation-table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './types.js';
2
+ export * from './evaluator.js';
3
+ export * from './corrective-replan.js';
4
+ export { compileCoreTransitionCatalog, evaluateCoreStaticReadiness, guardedTransitionCatalog, } from '../transition-core.js';
@@ -0,0 +1,5 @@
1
+ export * from './types.js';
2
+ export * from './evaluator.js';
3
+ export * from './corrective-replan.js';
4
+ export { compileCoreTransitionCatalog, evaluateCoreStaticReadiness, guardedTransitionCatalog, } from '../transition-core.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lifecycle/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,wBAAwB,CAAC;AACvC,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { SemanticRegistry, PayloadSchemaArtifactBinding, PayloadSchemaValidatorBinding, TransitionSchemaArtifact } from './types.js';
2
+ export declare const transitionDefinitionDocumentSha256: string;
3
+ export declare const transitionDefinitionVocabularySha256: string;
4
+ export declare const transitionPayloadDocumentSha256: string;
5
+ export declare const installedTransitionDefinitionArtifact: PayloadSchemaArtifactBinding;
6
+ export declare const installedTransitionDefinitionValidator: PayloadSchemaValidatorBinding;
7
+ export declare const installedPayloadSchemaArtifacts: readonly PayloadSchemaArtifactBinding[];
8
+ export declare const installedPayloadSchemaValidators: readonly PayloadSchemaValidatorBinding[];
9
+ export declare function createTransitionSchemaArtifact(registry: SemanticRegistry): TransitionSchemaArtifact;
10
+ export declare function registryVocabularySha256(registry: SemanticRegistry): string;
11
+ export declare function registryVocabulary(registry: SemanticRegistry): Readonly<Record<string, readonly string[]>>;
12
+ export declare function installedTransitionDefinitionVocabulary(): Readonly<Record<string, readonly string[]>>;