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,489 @@
1
+ import { deepFreeze } from './immutable.js';
2
+ import { correctiveReplanBindingManifest } from './corrective-replan-binding-manifest.js';
3
+ const v1 = (id) => ({ id, version: 1 });
4
+ const correctiveSnapshotRef = v1('projection.corrective-replan.snapshot');
5
+ const correctiveBindingRef = v1('projection.corrective-replan.bindings');
6
+ export const exactTransitionCoverageProfileRef = v1('coverage-profile.exact-transition');
7
+ export const exactMutationReleaseProfileRef = v1('release-profile.exact-mutation');
8
+ const schemas = [
9
+ schema('schema.corrective-replan-bindings', 'object', 'Exact corrective transition bindings.'),
10
+ schema('schema.corrective-replan-snapshot', 'object', 'Current corrective transition snapshot.'),
11
+ schema('schema.corrective-replan-binding', 'object', 'Exact state-bound receipt binding.'),
12
+ schema('schema.corrective-replan-plan-validation-attestation', 'object', 'Passed independent Plan Validation attestation.'),
13
+ schema('schema.corrective-replan-receipt', 'object', 'Human-confirmed execution receipt.'),
14
+ schema('schema.corrective-replan-task-transaction', 'object', 'Retained corrective-replan Task transaction journal.'),
15
+ schema('schema.expected-revision', 'integer', 'Expected Task revision.'),
16
+ schema('schema.plan-risk-audit-input', 'object', 'Replacement Plan Risk Audit input.'),
17
+ schema('schema.task-id', 'string', 'Task identity.'),
18
+ schema('schema.task-plan-input', 'object', 'Materialized replacement Task Plan input.'),
19
+ schema('schema.task-state-readback', 'object', 'Task state readback after Plan replacement.'),
20
+ ];
21
+ const manifestFields = correctiveReplanBindingManifest.rows.map(({ projection: _projection, ...entry }) => entry.fieldId);
22
+ const manifestProjectionFields = (projectionId) => correctiveReplanBindingManifest.rows
23
+ .filter((entry) => entry.projection.id === projectionId)
24
+ .map((entry) => entry.fieldId);
25
+ const executionKeyFields = correctiveReplanBindingManifest.rows.map(({ projection, fieldId }) => ({ projection, fieldId }));
26
+ const projections = [
27
+ projection('projection.corrective-replan.bindings', 'schema.corrective-replan-bindings', [
28
+ 'field.candidate-plan-hash',
29
+ 'field.candidate-step-ids',
30
+ 'field.corrective-decision-event-id',
31
+ 'field.current-plan-hash',
32
+ 'field.expected-revision',
33
+ 'field.step-id',
34
+ 'field.task-id',
35
+ ], 'Current navigation and candidate execution bindings.'),
36
+ projection('projection.corrective-replan.protocol', 'schema.corrective-replan-binding', manifestProjectionFields('projection.corrective-replan.protocol'), 'Protocol and catalog receipt bindings.'),
37
+ projection('projection.corrective-replan.state', 'schema.corrective-replan-binding', manifestProjectionFields('projection.corrective-replan.state'), 'Current Task, Knowledge, Git, and corrective posture bindings.'),
38
+ projection('projection.corrective-replan.candidate', 'schema.corrective-replan-binding', manifestProjectionFields('projection.corrective-replan.candidate'), 'Candidate Plan, Validation, and Risk Audit bindings.'),
39
+ projection('projection.corrective-replan.authority', 'schema.corrective-replan-binding', manifestProjectionFields('projection.corrective-replan.authority'), 'Actor, Human principal, and capability bindings.'),
40
+ projection('projection.corrective-replan.execution-receipt', 'schema.corrective-replan-receipt', manifestFields, 'Exact 28-field execution receipt binding.'),
41
+ projection('projection.corrective-replan.snapshot', 'schema.corrective-replan-snapshot', [
42
+ 'field.candidate-plan-hash',
43
+ 'field.candidate-step-ids',
44
+ 'field.corrective-decision-decision',
45
+ 'field.corrective-decision-event-id',
46
+ 'field.corrective-decision-plan-hash',
47
+ 'field.corrective-decision-step-id',
48
+ 'field.corrective-decision-triggering-attempt-count',
49
+ 'field.corrective-posture',
50
+ 'field.current-plan-hash',
51
+ 'field.in-progress-step-ids',
52
+ 'field.remediation-attempt-count',
53
+ 'field.step-id',
54
+ 'field.step-status',
55
+ 'field.task-id',
56
+ 'field.task-revision',
57
+ 'field.task-status',
58
+ 'field.actor-role-eligible',
59
+ 'field.c1-claim-absent',
60
+ 'field.writer-lease-absent',
61
+ 'field.plan-validation-passed',
62
+ 'field.receipt-valid',
63
+ 'field.risk-audit-passed',
64
+ ], 'Current mutation-free corrective evaluator snapshot.'),
65
+ projection('projection.input.expected-revision', 'schema.expected-revision', [
66
+ 'field.expected-revision',
67
+ ], 'Expected revision input.'),
68
+ projection('projection.input.plan-risk-audit', 'schema.plan-risk-audit-input', [
69
+ 'field.risk-audit-hash',
70
+ 'field.risk-auditor-identity-hash',
71
+ ], 'Replacement Plan Risk Audit input.'),
72
+ projection('projection.input.plan-validation', 'schema.corrective-replan-plan-validation-attestation', [
73
+ 'field.plan-validation-hash', 'field.plan-validator-identity-hash',
74
+ ], 'Independent candidate-bound Plan Validation input.'),
75
+ projection('projection.input.execution-receipt', 'schema.corrective-replan-receipt', manifestFields, 'Explicit state-bound corrective-replan receipt.'),
76
+ projection('projection.input.replacement-plan', 'schema.task-plan-input', [
77
+ 'field.candidate-plan-hash',
78
+ 'field.candidate-step-ids',
79
+ 'field.candidate-step-set-hash',
80
+ ], 'Prepared replacement Plan input.'),
81
+ projection('projection.input.task-id', 'schema.task-id', [
82
+ 'field.task-id',
83
+ ], 'Task identity input.'),
84
+ projection('projection.task-state.readback', 'schema.task-state-readback', [
85
+ 'field.task-id',
86
+ 'field.task-plan-hash',
87
+ 'field.task-revision',
88
+ 'field.task-status',
89
+ ], 'Task state post-effect readback projection.'),
90
+ projection('projection.corrective-replan.terminal-readback', 'schema.task-state-readback', [
91
+ 'field.task-id', 'field.task-revision', 'field.task-status', 'field.current-plan-hash',
92
+ 'field.plan-validation-hash', 'field.risk-audit-hash', 'field.runtime-fingerprint', 'field.catalog-hash',
93
+ ], 'Domain and retained-terminal-journal readback projection.'),
94
+ ];
95
+ const inputs = [
96
+ input('input.corrective-plan-risk-audit', 'operator-input', 'risk-audit-file', 'schema.plan-risk-audit-input', 'projection.input.plan-risk-audit', 'hash-policy.canonical-json-sha256', 'Replacement Plan Risk Audit.'),
97
+ input('input.corrective-plan-validation', 'operator-input', 'validation-file', 'schema.corrective-replan-plan-validation-attestation', 'projection.input.plan-validation', 'hash-policy.canonical-json-sha256', 'Independent passed Plan Validation.'),
98
+ input('input.corrective-execution-receipt', 'credential', 'credential-file', 'schema.corrective-replan-receipt', 'projection.input.execution-receipt', 'hash-policy.canonical-json-sha256', 'Human-confirmed exact execution receipt.'),
99
+ input('input.corrective-replacement-plan', 'operator-input', 'file', 'schema.task-plan-input', 'projection.input.replacement-plan', 'hash-policy.raw-sha256', 'Replacement Plan.'),
100
+ input('input.expected-revision', 'binding', 'expected-revision', 'schema.expected-revision', 'projection.input.expected-revision', null, 'Expected Task revision.'),
101
+ input('input.task-id', 'binding', 'id', 'schema.task-id', 'projection.input.task-id', null, 'Task identity.'),
102
+ ];
103
+ const identities = [
104
+ identity('identity.actor', { kind: 'projection', field: field('projection.corrective-replan.authority', 'field.actor-identity-hash') }, 'Receipt-bound executing actor.'),
105
+ identity('identity.human-principal', { kind: 'projection', field: field('projection.corrective-replan.authority', 'field.human-principal-identity-hash') }, 'Human confirmation principal.'),
106
+ identity('identity.plan-author', { kind: 'projection', field: field('projection.corrective-replan.candidate', 'field.plan-author-identity-hash') }, 'Replacement Plan author.'),
107
+ identity('identity.plan-validator', { kind: 'projection', field: field('projection.corrective-replan.candidate', 'field.plan-validator-identity-hash') }, 'Independent Plan validator.'),
108
+ identity('identity.risk-auditor', { kind: 'projection', field: field('projection.corrective-replan.candidate', 'field.risk-auditor-identity-hash') }, 'Replacement Plan risk auditor.'),
109
+ identity('identity.workflow-core', { kind: 'workflow-core' }, 'Workflow Core audit identity.'),
110
+ ];
111
+ const identityComparators = [
112
+ comparator('identity-comparator.corrective-replan.author-validator', 'sod.plan-author-plan-validator-distinct', 'identity.plan-author', 'identity.plan-validator', 'distinct'),
113
+ comparator('identity-comparator.corrective-replan.author-risk-auditor', 'sod.plan-author-risk-auditor-distinct', 'identity.plan-author', 'identity.risk-auditor', 'distinct'),
114
+ comparator('identity-comparator.corrective-replan.author-human-principal', 'forbidden.plan-author-human-principal-self-authorize', 'identity.plan-author', 'identity.human-principal', 'cannot-authorize'),
115
+ ];
116
+ const guardEvaluators = [
117
+ guardEvaluator('active-decision', [], 'Active corrective decision evaluator.'),
118
+ guardEvaluator('attempt-threshold', [], 'Corrective remediation threshold evaluator.'),
119
+ guardEvaluator('bindings-current', ['input.expected-revision', 'input.task-id'], 'Exact binding freshness evaluator.'),
120
+ guardEvaluator('guarded-step-retained', ['input.corrective-replacement-plan'], 'Candidate guarded Step retention evaluator.'),
121
+ guardEvaluator('no-step-in-progress', [], 'Running Step exclusion evaluator.'),
122
+ guardEvaluator('semantic-plan-change', ['input.corrective-replacement-plan'], 'Candidate Plan semantic change evaluator.'),
123
+ guardEvaluator('source-posture', [], 'Task and guarded Step source posture evaluator.'),
124
+ guardEvaluator('actor-role-eligible', ['input.corrective-execution-receipt'], 'Exact actor-role eligibility evaluator.'),
125
+ guardEvaluator('no-c1-claim', ['input.corrective-execution-receipt'], 'C1 claim absence under the Task operation lock.'),
126
+ guardEvaluator('no-writer-lease', ['input.corrective-execution-receipt'], 'Writer lease absence under the Task operation lock.'),
127
+ guardEvaluator('plan-validation-passed', ['input.corrective-plan-validation'], 'Exact Plan Validation attestation verifier.'),
128
+ guardEvaluator('receipt-valid', ['input.corrective-execution-receipt'], 'State-bound execution receipt verifier.'),
129
+ guardEvaluator('risk-audit-passed', ['input.corrective-plan-risk-audit'], 'Exact candidate-bound Risk Audit verifier.'),
130
+ ];
131
+ const limitations = [
132
+ limitation('limitation.release-profile.verified-evidence-external', 'accepted', 'Package release evidence is verified outside runtime static readiness.'),
133
+ ];
134
+ const coverageProfiles = [{
135
+ id: exactTransitionCoverageProfileRef.id,
136
+ version: exactTransitionCoverageProfileRef.version,
137
+ description: 'Exact transition positive, hostile, replay, recovery, and postcondition evidence.',
138
+ requiredEvidenceKinds: [
139
+ 'conditional-effect-false',
140
+ 'conditional-effect-true',
141
+ 'guard-negative',
142
+ 'guard-positive',
143
+ 'journal-phase',
144
+ 'postcondition',
145
+ 'recovery-phase',
146
+ 'replay-conflicting',
147
+ 'replay-identical-completed',
148
+ 'replay-identical-in-progress',
149
+ ],
150
+ }];
151
+ const readinessRuleIds = [
152
+ 'readiness.atomicity.journal-required',
153
+ 'readiness.atomicity.replay-incomplete',
154
+ 'readiness.authority.actor-unbound',
155
+ 'readiness.authority.exact-capability-missing',
156
+ 'readiness.authority.state-bound-receipt-missing',
157
+ 'readiness.catalog.coverage-profile-empty',
158
+ 'readiness.catalog.coverage-report-invalid',
159
+ 'readiness.catalog.coverage-report-missing',
160
+ 'readiness.catalog.empty',
161
+ 'readiness.definition.limitation-blocked',
162
+ 'readiness.effect.narrow-lock-missing',
163
+ 'readiness.effect.race-revalidation-incomplete',
164
+ 'readiness.evidence.coverage-incomplete',
165
+ 'readiness.guard.enforcement-incomplete',
166
+ 'readiness.input.required-not-guarded',
167
+ 'readiness.readback.postcondition-incomplete',
168
+ ];
169
+ const semanticRules = [
170
+ { id: 'semantic-rule.definition-integrity', version: 1, description: 'Definition limitations and static integrity.', obligationIds: ['obligation.definition-integrity'] },
171
+ { id: 'semantic-rule.exact-authority', version: 1, description: 'Exact actor, capability, credential, and SoD authority.', obligationIds: ['obligation.exact-authority'] },
172
+ { id: 'semantic-rule.required-inputs', version: 1, description: 'Required exact mutation inputs and guard coverage.', obligationIds: ['obligation.required-inputs'] },
173
+ { id: 'semantic-rule.admission-boundary', version: 1, description: 'Exclusive lock and under-lock race revalidation.', obligationIds: ['obligation.admission-boundary'] },
174
+ { id: 'semantic-rule.reliable-effects', version: 1, description: 'Journal, replay, recovery, and readback completeness.', obligationIds: ['obligation.reliable-effects'] },
175
+ ];
176
+ const releaseProfiles = [{
177
+ id: exactMutationReleaseProfileRef.id,
178
+ version: exactMutationReleaseProfileRef.version,
179
+ description: 'Fail-closed exact mutating transition release profile.',
180
+ coverageProfile: exactTransitionCoverageProfileRef,
181
+ allowedLimitations: [v1('limitation.release-profile.verified-evidence-external')],
182
+ requiredRules: semanticRules.map(({ id, version }) => ({ id, version })),
183
+ requireExactAuthority: true,
184
+ requireExclusiveLockForMutation: true,
185
+ requireJournalForMultiWrite: true,
186
+ }];
187
+ export const transitionSemanticRegistry = deepFreeze(validateSemanticRegistry({
188
+ inputs,
189
+ schemas,
190
+ projections,
191
+ hashPolicies: [
192
+ { id: 'hash-policy.canonical-json-sha256', version: 1, description: 'Canonical JSON SHA-256.', algorithm: 'sha256', canonicalization: 'canonical-json' },
193
+ { id: 'hash-policy.raw-sha256', version: 1, description: 'Raw byte SHA-256.', algorithm: 'sha256', canonicalization: 'raw-bytes' },
194
+ ],
195
+ identities,
196
+ identityComparators,
197
+ principalBases: [
198
+ { id: 'principal-basis.human-confirmation', version: 1, description: 'Exact Human confirmation authority basis.', principalKind: 'human', authoritySource: 'human-confirmation' },
199
+ ],
200
+ capabilities: [{
201
+ id: 'capability.task.corrective-replan', version: 1, description: 'Human-issued capability for one exact replacement candidate.',
202
+ transitionId: 'task.plan.corrective-replan', issuer: v1('identity.human-principal'),
203
+ scope: v1('projection.corrective-replan.execution-receipt'), exactCandidateBound: true,
204
+ }],
205
+ credentialPolicies: [{
206
+ id: 'credential-policy.corrective-execution-receipt', version: 1, description: 'Exact state-bound Human-confirmed receipt.',
207
+ credentialKind: 'execution-receipt', schema: v1('schema.corrective-replan-receipt'),
208
+ verifier: v1('credential-verifier.corrective-replan.receipt'), issuer: v1('identity.human-principal'),
209
+ presentation: { mode: 'explicit-input', input: v1('input.corrective-execution-receipt') },
210
+ validity: { mode: 'bounded-ttl', clock: v1('clock.workflow-core-utc'), maxTtlMs: 900_000, skewMs: 30_000, expiryFailureCode: 'CREDENTIAL_EXPIRED' },
211
+ replay: { mode: 'execution-key-bound', executionKeyPolicy: v1('execution-key-policy.corrective-replan-exact') },
212
+ binding: { projection: v1('projection.corrective-replan.execution-receipt'), fieldIds: manifestFields },
213
+ }],
214
+ credentialVerifiers: [{ id: 'credential-verifier.corrective-replan.receipt', version: 1, description: 'The invoked Core credential kernel recomputes receipt and all current bindings.', verifierKind: 'state-bound-sha256' }],
215
+ clocks: [{ id: 'clock.workflow-core-utc', version: 1, description: 'Workflow Core injected UTC clock.', clockKind: 'workflow-core-utc' }],
216
+ delegationPolicies: [
217
+ { id: 'delegation.forbidden', version: 1, description: 'Delegation is forbidden.', mode: 'forbidden', scopeBound: false, expiryRequired: false, redelegationAllowed: false },
218
+ ],
219
+ ownershipPolicies: [
220
+ { id: 'ownership.corrective-replan-clear', version: 1, description: 'No C1 claim or Writer lease may remain at replan admission.', c1Ownership: 'forbidden', writerLease: 'forbidden', ownerBinding: 'actor' },
221
+ ],
222
+ guardEvaluators,
223
+ effectAdapters: [
224
+ { id: 'effect-adapter.journaled-corrective-replan', version: 1, description: 'Receipt-bound five-target corrective-replan executor.', adapterKind: 'journaled-corrective-replan' },
225
+ ],
226
+ resources: [
227
+ { id: 'resource.plan-artifact', version: 1, description: 'Published Task Plan artifact.', resourceKind: 'artifact' },
228
+ { id: 'resource.plan-validation-sidecar', version: 1, description: 'Plan Validation evidence sidecar.', resourceKind: 'sidecar' },
229
+ { id: 'resource.plan-risk-audit-sidecar', version: 1, description: 'Plan Risk Audit sidecar.', resourceKind: 'sidecar' },
230
+ { id: 'resource.corrective-replan-execution-sidecar', version: 1, description: 'Corrective-replan execution evidence sidecar.', resourceKind: 'sidecar' },
231
+ { id: 'resource.corrective-replan-journal', version: 1, description: 'Retained Task corrective-replan journal.', resourceKind: 'journal' },
232
+ { id: 'resource.task-state', version: 1, description: 'Task state.', resourceKind: 'task-state' },
233
+ ],
234
+ lockPolicies: [
235
+ { id: 'lock-policy.corrective-replan-task-exclusive', version: 1, description: 'Same-slot exclusive Task operation lock.', lockKind: 'exclusive-task', scope: slice('projection.corrective-replan.state', ['field.task-id']) },
236
+ ],
237
+ executionKeyPolicies: [
238
+ { id: 'execution-key-policy.corrective-replan-exact', version: 1, description: 'Exact AD-16 28-field execution key.', requiredFields: executionKeyFields },
239
+ ],
240
+ journalSchemas: [{ id: 'journal-schema.corrective-replan-task', version: 1, description: 'Closed retained Task transaction journal.', schema: v1('schema.corrective-replan-task-transaction') }],
241
+ journalAdapters: [{ id: 'journal-adapter.corrective-replan-task', version: 1, description: 'Durable exact-target Task journal.', compatibleEffectAdapters: [v1('effect-adapter.journaled-corrective-replan')] }],
242
+ recoveryAdapters: [{ id: 'recovery-adapter.corrective-replan-roll-forward', version: 1, description: 'Explicit apply-or-confirm roll-forward.', compatibleJournalAdapters: [v1('journal-adapter.corrective-replan-task')] }],
243
+ readbackAdapters: [
244
+ {
245
+ id: 'readback-adapter.corrective-replan-terminal',
246
+ version: 1,
247
+ description: 'Domain readback before completion and retained-journal readback after terminal.',
248
+ compatibleEffectAdapters: [v1('effect-adapter.journaled-corrective-replan')],
249
+ wiring: 'invoked-post-effect',
250
+ implementationResult: 'projected-readback',
251
+ validationProjection: v1('projection.corrective-replan.terminal-readback'),
252
+ projectionWiring: 'invoked',
253
+ },
254
+ ],
255
+ limitations,
256
+ releaseProfiles,
257
+ coverageProfiles,
258
+ coverageProducers: [],
259
+ semanticRules,
260
+ readinessRuleIds: [...readinessRuleIds],
261
+ }));
262
+ export function validateSemanticRegistry(registry) {
263
+ const categories = [
264
+ registry.inputs,
265
+ registry.schemas,
266
+ registry.projections,
267
+ registry.hashPolicies,
268
+ registry.identities,
269
+ registry.identityComparators,
270
+ registry.principalBases,
271
+ registry.capabilities,
272
+ registry.credentialPolicies,
273
+ registry.credentialVerifiers,
274
+ registry.clocks,
275
+ registry.delegationPolicies,
276
+ registry.ownershipPolicies,
277
+ registry.guardEvaluators,
278
+ registry.effectAdapters,
279
+ registry.resources,
280
+ registry.lockPolicies,
281
+ registry.executionKeyPolicies,
282
+ registry.journalSchemas,
283
+ registry.journalAdapters,
284
+ registry.recoveryAdapters,
285
+ registry.readbackAdapters,
286
+ registry.limitations,
287
+ registry.releaseProfiles,
288
+ registry.coverageProfiles,
289
+ registry.coverageProducers,
290
+ registry.semanticRules,
291
+ ];
292
+ for (const entries of categories)
293
+ assertUniqueRegisteredEntries(entries);
294
+ assertUniqueStrings(registry.readinessRuleIds, 'readiness rule IDs');
295
+ for (const projectionEntry of registry.projections) {
296
+ resolveRegistryEntry(registry.schemas, projectionEntry.schema, 'schema');
297
+ assertUniqueStrings(projectionEntry.fieldIds, `${projectionEntry.id} fields`);
298
+ }
299
+ for (const inputEntry of registry.inputs) {
300
+ resolveRegistryEntry(registry.schemas, inputEntry.schema, 'schema');
301
+ resolveRegistryEntry(registry.projections, inputEntry.projection, 'projection');
302
+ if (inputEntry.hashPolicy)
303
+ resolveRegistryEntry(registry.hashPolicies, inputEntry.hashPolicy, 'hash policy');
304
+ }
305
+ for (const identityEntry of registry.identities) {
306
+ if (identityEntry.normalization) {
307
+ resolveRegistryEntry(registry.hashPolicies, identityEntry.normalization, 'hash policy');
308
+ }
309
+ if (identityEntry.provider.kind === 'projection')
310
+ assertProjectionField(registry, identityEntry.provider.field);
311
+ }
312
+ for (const comparator of registry.identityComparators) {
313
+ if (comparator.operands.length < 2)
314
+ throw new TypeError(`Identity comparator ${comparator.id} has fewer than two operands.`);
315
+ assertUniqueStrings(comparator.operands.map((operand) => `${operand.id}@${operand.version}`), `${comparator.id} operands`);
316
+ for (const operand of comparator.operands)
317
+ resolveRegistryEntry(registry.identities, operand, 'identity comparator operand');
318
+ }
319
+ for (const capabilityEntry of registry.capabilities) {
320
+ resolveRegistryEntry(registry.identities, capabilityEntry.issuer, 'identity');
321
+ resolveRegistryEntry(registry.projections, capabilityEntry.scope, 'projection');
322
+ }
323
+ for (const credentialEntry of registry.credentialPolicies)
324
+ validateCredentialPolicy(registry, credentialEntry);
325
+ for (const evaluator of registry.guardEvaluators) {
326
+ resolveRegistryEntry(registry.projections, evaluator.snapshot, 'projection');
327
+ resolveRegistryEntry(registry.projections, evaluator.binding, 'projection');
328
+ for (const inputRef of evaluator.allowedInputs)
329
+ resolveRegistryEntry(registry.inputs, inputRef, 'input');
330
+ }
331
+ for (const profile of registry.coverageProfiles) {
332
+ if (profile.requiredEvidenceKinds.length === 0)
333
+ throw new TypeError(`Coverage profile ${profile.id} is empty.`);
334
+ assertUniqueStrings(profile.requiredEvidenceKinds, `${profile.id} evidence kinds`);
335
+ }
336
+ for (const profile of registry.releaseProfiles)
337
+ validateReleaseProfile(registry, profile);
338
+ for (const policy of registry.executionKeyPolicies) {
339
+ if (policy.requiredFields.length === 0)
340
+ throw new TypeError(`Execution key policy ${policy.id} is empty.`);
341
+ assertUniqueStrings(policy.requiredFields.map(projectionFieldKey), `${policy.id} required fields`);
342
+ for (const requiredField of policy.requiredFields)
343
+ assertProjectionField(registry, requiredField);
344
+ }
345
+ for (const policy of registry.lockPolicies) {
346
+ if (policy.lockKind === 'none' && policy.scope !== null)
347
+ throw new TypeError(`Lock policy ${policy.id} cannot declare a scope.`);
348
+ if (policy.lockKind !== 'none' && policy.scope === null)
349
+ throw new TypeError(`Lock policy ${policy.id} requires a scope.`);
350
+ if (policy.scope)
351
+ assertProjectionSlice(registry, policy.scope);
352
+ }
353
+ for (const adapter of registry.readbackAdapters) {
354
+ resolveRegistryEntry(registry.projections, adapter.validationProjection, 'readback validation projection');
355
+ if (adapter.implementationResult === 'raw-task-state' && adapter.projectionWiring !== 'unimplemented') {
356
+ throw new TypeError(`Readback adapter ${adapter.id} cannot claim projected validation for a raw TaskState result.`);
357
+ }
358
+ }
359
+ return registry;
360
+ }
361
+ export function resolveRegistryEntry(entries, ref, label) {
362
+ const match = entries.find((entry) => entry.id === ref.id && entry.version === ref.version);
363
+ if (!match)
364
+ throw new TypeError(`Unknown registered ${label} ${ref.id}@${ref.version}.`);
365
+ return match;
366
+ }
367
+ function validateCredentialPolicy(registry, policy) {
368
+ resolveRegistryEntry(registry.schemas, policy.schema, 'credential schema');
369
+ resolveRegistryEntry(registry.credentialVerifiers, policy.verifier, 'credential verifier');
370
+ resolveRegistryEntry(registry.identities, policy.issuer, 'credential issuer');
371
+ assertProjectionSlice(registry, policy.binding);
372
+ if (policy.presentation.mode === 'explicit-input')
373
+ resolveRegistryEntry(registry.inputs, policy.presentation.input, 'credential input');
374
+ if (policy.validity.mode === 'bounded-ttl') {
375
+ resolveRegistryEntry(registry.clocks, policy.validity.clock, 'clock');
376
+ if (!Number.isInteger(policy.validity.maxTtlMs) || policy.validity.maxTtlMs <= 0) {
377
+ throw new TypeError(`Credential policy ${policy.id} has invalid maxTtlMs.`);
378
+ }
379
+ if (!Number.isInteger(policy.validity.skewMs) || policy.validity.skewMs < 0) {
380
+ throw new TypeError(`Credential policy ${policy.id} has invalid skewMs.`);
381
+ }
382
+ }
383
+ if (policy.replay.mode === 'execution-key-bound') {
384
+ resolveRegistryEntry(registry.executionKeyPolicies, policy.replay.executionKeyPolicy, 'execution key policy');
385
+ }
386
+ if (policy.id === 'credential-policy.corrective-execution-receipt' && policy.version === 1) {
387
+ const exactProjection = resolveRegistryEntry(registry.projections, v1('projection.corrective-replan.execution-receipt'), 'exact corrective receipt projection');
388
+ if (policy.binding.projection.id !== exactProjection.id
389
+ || policy.binding.projection.version !== exactProjection.version
390
+ || policy.binding.fieldIds.length !== exactProjection.fieldIds.length
391
+ || exactProjection.fieldIds.some((fieldId) => !policy.binding.fieldIds.includes(fieldId))) {
392
+ throw new TypeError('Exact corrective receipt policy must bind every registered receipt field exactly once.');
393
+ }
394
+ if (policy.presentation.mode !== 'explicit-input'
395
+ || policy.presentation.input.id !== 'input.corrective-execution-receipt'
396
+ || policy.validity.mode !== 'bounded-ttl'
397
+ || policy.replay.mode !== 'execution-key-bound'
398
+ || policy.verifier.id !== 'credential-verifier.corrective-replan.receipt') {
399
+ throw new TypeError('Exact corrective receipt policy has incomplete presentation, TTL, replay, or verifier semantics.');
400
+ }
401
+ }
402
+ }
403
+ function validateReleaseProfile(registry, profile) {
404
+ resolveRegistryEntry(registry.coverageProfiles, profile.coverageProfile, 'coverage profile');
405
+ assertUniqueStrings(profile.requiredRules.map((rule) => `${rule.id}@${rule.version}`), `${profile.id} semantic rules`);
406
+ for (const ruleRef of profile.requiredRules) {
407
+ resolveRegistryEntry(registry.semanticRules, ruleRef, 'semantic rule');
408
+ }
409
+ for (const limitationRef of profile.allowedLimitations) {
410
+ const limitationEntry = resolveRegistryEntry(registry.limitations, limitationRef, 'limitation');
411
+ if (limitationEntry.disposition !== 'accepted') {
412
+ throw new TypeError(`Release profile ${profile.id} cannot allow unresolved limitation ${limitationRef.id}@${limitationRef.version}.`);
413
+ }
414
+ }
415
+ }
416
+ function assertProjectionField(registry, field) {
417
+ const projectionEntry = resolveRegistryEntry(registry.projections, field.projection, 'projection');
418
+ if (!projectionEntry.fieldIds.includes(field.fieldId)) {
419
+ throw new TypeError(`Projection ${field.projection.id}@${field.projection.version} has no field ${field.fieldId}.`);
420
+ }
421
+ }
422
+ function assertProjectionSlice(registry, slice) {
423
+ const projectionEntry = resolveRegistryEntry(registry.projections, slice.projection, 'projection');
424
+ assertUniqueStrings(slice.fieldIds, `${slice.projection.id} slice fields`);
425
+ for (const fieldId of slice.fieldIds) {
426
+ if (!projectionEntry.fieldIds.includes(fieldId))
427
+ throw new TypeError(`Projection ${slice.projection.id} has no field ${fieldId}.`);
428
+ }
429
+ }
430
+ function assertUniqueRegisteredEntries(entries) {
431
+ assertUniqueStrings(entries.map((entry) => `${entry.id}@${entry.version}`), 'registered ID/version pairs');
432
+ }
433
+ function assertUniqueStrings(values, label) {
434
+ if (new Set(values).size !== values.length)
435
+ throw new TypeError(`Duplicate ${label}.`);
436
+ }
437
+ function schema(id, valueKind, description) {
438
+ return { id, version: 1, description, valueKind };
439
+ }
440
+ function projection(id, schemaId, fieldIds, description) {
441
+ return { id, version: 1, description, schema: v1(schemaId), fieldIds };
442
+ }
443
+ function input(id, source, cliName, schemaId, projectionId, hashPolicyId, description) {
444
+ return {
445
+ id,
446
+ version: 1,
447
+ description,
448
+ source,
449
+ cliName,
450
+ schema: v1(schemaId),
451
+ projection: v1(projectionId),
452
+ hashPolicy: hashPolicyId ? v1(hashPolicyId) : null,
453
+ };
454
+ }
455
+ function identity(id, provider, description) {
456
+ return { id, version: 1, description, provider, normalization: null };
457
+ }
458
+ function comparator(id, constraintId, left, right, relation) {
459
+ return {
460
+ id, version: 1, description: `Exact ${constraintId} identity comparison.`,
461
+ transitionId: 'task.plan.corrective-replan', constraintId,
462
+ operands: [v1(left), v1(right)], relation, missingIdentity: 'block',
463
+ };
464
+ }
465
+ function guardEvaluator(suffix, allowedInputIds, description) {
466
+ return {
467
+ id: `guard-evaluator.task.corrective-replan.${suffix}`,
468
+ version: 1,
469
+ description,
470
+ transitionId: 'task.plan.corrective-replan',
471
+ guardId: `task.corrective-replan.${suffix}`,
472
+ snapshot: correctiveSnapshotRef,
473
+ binding: correctiveBindingRef,
474
+ allowedInputs: allowedInputIds.map(v1),
475
+ };
476
+ }
477
+ function limitation(id, disposition, description) {
478
+ return { id, version: 1, description, disposition };
479
+ }
480
+ function field(projectionId, fieldId) {
481
+ return { projection: v1(projectionId), fieldId };
482
+ }
483
+ function slice(projectionId, fieldIds) {
484
+ return { projection: v1(projectionId), fieldIds };
485
+ }
486
+ function projectionFieldKey(value) {
487
+ return `${value.projection.id}@${value.projection.version}:${value.fieldId}`;
488
+ }
489
+ //# sourceMappingURL=semantic-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-registry.js","sourceRoot":"","sources":["../../../src/lifecycle/semantic-registry.ts"],"names":[],"mappings":"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"}