codex-workflow-v2 2.0.0-beta.2 → 2.0.0-beta.4

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 (128) hide show
  1. package/README.md +35 -2
  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 +21 -0
  5. package/dist/src/alpha6/handoff.js +100 -19
  6. package/dist/src/alpha6/handoff.js.map +1 -1
  7. package/dist/src/alpha6/milestone.d.ts +2 -0
  8. package/dist/src/alpha6/milestone.js +15 -0
  9. package/dist/src/alpha6/milestone.js.map +1 -1
  10. package/dist/src/alpha6/plan-risk.d.ts +1 -0
  11. package/dist/src/alpha6/plan-risk.js +6 -0
  12. package/dist/src/alpha6/plan-risk.js.map +1 -1
  13. package/dist/src/cli.js +188 -65
  14. package/dist/src/cli.js.map +1 -1
  15. package/dist/src/contracts.d.ts +111 -5
  16. package/dist/src/contracts.js +1 -1
  17. package/dist/src/credential-output.d.ts +10 -0
  18. package/dist/src/credential-output.js +73 -0
  19. package/dist/src/credential-output.js.map +1 -0
  20. package/dist/src/errors.d.ts +1 -1
  21. package/dist/src/errors.js.map +1 -1
  22. package/dist/src/index.d.ts +1 -1
  23. package/dist/src/index.js +1 -1
  24. package/dist/src/index.js.map +1 -1
  25. package/dist/src/lifecycle/canonical-hash.d.ts +6 -0
  26. package/dist/src/lifecycle/canonical-hash.js +24 -0
  27. package/dist/src/lifecycle/canonical-hash.js.map +1 -0
  28. package/dist/src/lifecycle/catalog.d.ts +26 -0
  29. package/dist/src/lifecycle/catalog.js +208 -0
  30. package/dist/src/lifecycle/catalog.js.map +1 -0
  31. package/dist/src/lifecycle/compiler-inspection.d.ts +48 -0
  32. package/dist/src/lifecycle/compiler-inspection.js +29 -0
  33. package/dist/src/lifecycle/compiler-inspection.js.map +1 -0
  34. package/dist/src/lifecycle/core-static-readiness.d.ts +6 -0
  35. package/dist/src/lifecycle/core-static-readiness.js +130 -0
  36. package/dist/src/lifecycle/core-static-readiness.js.map +1 -0
  37. package/dist/src/lifecycle/corrective-replan-authority.d.ts +53 -0
  38. package/dist/src/lifecycle/corrective-replan-authority.js +139 -0
  39. package/dist/src/lifecycle/corrective-replan-authority.js.map +1 -0
  40. package/dist/src/lifecycle/corrective-replan-binding-manifest.d.ts +21 -0
  41. package/dist/src/lifecycle/corrective-replan-binding-manifest.js +35 -0
  42. package/dist/src/lifecycle/corrective-replan-binding-manifest.js.map +1 -0
  43. package/dist/src/lifecycle/corrective-replan-credential-core.d.ts +86 -0
  44. package/dist/src/lifecycle/corrective-replan-credential-core.js +534 -0
  45. package/dist/src/lifecycle/corrective-replan-credential-core.js.map +1 -0
  46. package/dist/src/lifecycle/corrective-replan-credential-schema.d.ts +17 -0
  47. package/dist/src/lifecycle/corrective-replan-credential-schema.js +44 -0
  48. package/dist/src/lifecycle/corrective-replan-credential-schema.js.map +1 -0
  49. package/dist/src/lifecycle/corrective-replan-credentials.d.ts +47 -0
  50. package/dist/src/lifecycle/corrective-replan-credentials.js +103 -0
  51. package/dist/src/lifecycle/corrective-replan-credentials.js.map +1 -0
  52. package/dist/src/lifecycle/corrective-replan.d.ts +64 -0
  53. package/dist/src/lifecycle/corrective-replan.js +548 -0
  54. package/dist/src/lifecycle/corrective-replan.js.map +1 -0
  55. package/dist/src/lifecycle/evaluator.d.ts +2 -0
  56. package/dist/src/lifecycle/evaluator.js +35 -0
  57. package/dist/src/lifecycle/evaluator.js.map +1 -0
  58. package/dist/src/lifecycle/fingerprint.d.ts +31 -0
  59. package/dist/src/lifecycle/fingerprint.js +388 -0
  60. package/dist/src/lifecycle/fingerprint.js.map +1 -0
  61. package/dist/src/lifecycle/immutable.d.ts +1 -0
  62. package/dist/src/lifecycle/immutable.js +10 -0
  63. package/dist/src/lifecycle/immutable.js.map +1 -0
  64. package/dist/src/lifecycle/implementation-table.d.ts +29 -0
  65. package/dist/src/lifecycle/implementation-table.js +87 -0
  66. package/dist/src/lifecycle/implementation-table.js.map +1 -0
  67. package/dist/src/lifecycle/index.d.ts +4 -0
  68. package/dist/src/lifecycle/index.js +5 -0
  69. package/dist/src/lifecycle/index.js.map +1 -0
  70. package/dist/src/lifecycle/schema-artifact.d.ts +12 -0
  71. package/dist/src/lifecycle/schema-artifact.js +214 -0
  72. package/dist/src/lifecycle/schema-artifact.js.map +1 -0
  73. package/dist/src/lifecycle/semantic-registry.d.ts +6 -0
  74. package/dist/src/lifecycle/semantic-registry.js +489 -0
  75. package/dist/src/lifecycle/semantic-registry.js.map +1 -0
  76. package/dist/src/lifecycle/types.d.ts +718 -0
  77. package/dist/src/lifecycle/types.js +4 -0
  78. package/dist/src/lifecycle/types.js.map +1 -0
  79. package/dist/src/observation.d.ts +20 -0
  80. package/dist/src/observation.js +171 -0
  81. package/dist/src/observation.js.map +1 -0
  82. package/dist/src/state/corrective-replan-executor.d.ts +64 -0
  83. package/dist/src/state/corrective-replan-executor.js +598 -0
  84. package/dist/src/state/corrective-replan-executor.js.map +1 -0
  85. package/dist/src/state/corrective-replan-public-schema.d.ts +3 -0
  86. package/dist/src/state/corrective-replan-public-schema.js +43 -0
  87. package/dist/src/state/corrective-replan-public-schema.js.map +1 -0
  88. package/dist/src/state/corrective-replan-public.d.ts +95 -0
  89. package/dist/src/state/corrective-replan-public.js +618 -0
  90. package/dist/src/state/corrective-replan-public.js.map +1 -0
  91. package/dist/src/state/corrective-replan-transaction.d.ts +158 -0
  92. package/dist/src/state/corrective-replan-transaction.js +723 -0
  93. package/dist/src/state/corrective-replan-transaction.js.map +1 -0
  94. package/dist/src/state/corrective-yield-executor.d.ts +31 -0
  95. package/dist/src/state/corrective-yield-executor.js +236 -0
  96. package/dist/src/state/corrective-yield-executor.js.map +1 -0
  97. package/dist/src/state/corrective-yield-transaction.d.ts +97 -0
  98. package/dist/src/state/corrective-yield-transaction.js +591 -0
  99. package/dist/src/state/corrective-yield-transaction.js.map +1 -0
  100. package/dist/src/state/lock.d.ts +75 -3
  101. package/dist/src/state/lock.js +582 -30
  102. package/dist/src/state/lock.js.map +1 -1
  103. package/dist/src/state/store.d.ts +3 -0
  104. package/dist/src/state/store.js +65 -12
  105. package/dist/src/state/store.js.map +1 -1
  106. package/dist/src/transition-core.d.ts +67 -0
  107. package/dist/src/transition-core.js +318 -0
  108. package/dist/src/transition-core.js.map +1 -0
  109. package/dist/src/version.d.ts +1 -1
  110. package/dist/src/version.js +1 -1
  111. package/dist/src/workflow.d.ts +34 -22
  112. package/dist/src/workflow.js +486 -141
  113. package/dist/src/workflow.js.map +1 -1
  114. package/docs/lifecycle/state-machine-stabilization.md +641 -0
  115. package/docs/release.md +4 -2
  116. package/docs/updating-existing-project.md +9 -0
  117. package/package.json +4 -1
  118. package/schemas/adoption-posture-event.schema.json +1 -1
  119. package/schemas/context-envelope.schema.json +1 -1
  120. package/schemas/corrective-replan-credentials.private.schema.json +98 -0
  121. package/schemas/corrective-replan-execution-event.private.schema.json +53 -0
  122. package/schemas/corrective-replan-public.schema.json +142 -0
  123. package/schemas/corrective-replan-task-transaction.private.schema.json +151 -0
  124. package/schemas/corrective-yield-task-transaction.private.schema.json +98 -0
  125. package/schemas/remediation-event.schema.json +11 -1
  126. package/schemas/task-handoff-event.schema.json +1 -1
  127. package/schemas/transition-definition.schema.json +2609 -0
  128. package/schemas/transition-payloads.schema.json +140 -0
@@ -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":"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"}
@@ -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[]>>;