codex-workflow-v2 2.0.0-beta.2 → 2.0.0-beta.5
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.
- package/README.md +35 -2
- package/dist/src/alpha6/adoption.js +13 -3
- package/dist/src/alpha6/adoption.js.map +1 -1
- package/dist/src/alpha6/handoff.d.ts +23 -0
- package/dist/src/alpha6/handoff.js +221 -28
- package/dist/src/alpha6/handoff.js.map +1 -1
- package/dist/src/alpha6/milestone.d.ts +2 -0
- package/dist/src/alpha6/milestone.js +15 -0
- package/dist/src/alpha6/milestone.js.map +1 -1
- package/dist/src/alpha6/plan-risk.d.ts +1 -0
- package/dist/src/alpha6/plan-risk.js +15 -7
- package/dist/src/alpha6/plan-risk.js.map +1 -1
- package/dist/src/alpha6/review.d.ts +1 -0
- package/dist/src/alpha6/review.js +9 -0
- package/dist/src/alpha6/review.js.map +1 -1
- package/dist/src/cli.js +253 -67
- package/dist/src/cli.js.map +1 -1
- package/dist/src/contracts.d.ts +111 -5
- package/dist/src/contracts.js +1 -1
- package/dist/src/credential-output.d.ts +10 -0
- package/dist/src/credential-output.js +73 -0
- package/dist/src/credential-output.js.map +1 -0
- package/dist/src/errors.d.ts +1 -1
- package/dist/src/errors.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lifecycle/canonical-hash.d.ts +6 -0
- package/dist/src/lifecycle/canonical-hash.js +24 -0
- package/dist/src/lifecycle/canonical-hash.js.map +1 -0
- package/dist/src/lifecycle/catalog.d.ts +26 -0
- package/dist/src/lifecycle/catalog.js +208 -0
- package/dist/src/lifecycle/catalog.js.map +1 -0
- package/dist/src/lifecycle/compiler-inspection.d.ts +48 -0
- package/dist/src/lifecycle/compiler-inspection.js +29 -0
- package/dist/src/lifecycle/compiler-inspection.js.map +1 -0
- package/dist/src/lifecycle/core-static-readiness.d.ts +6 -0
- package/dist/src/lifecycle/core-static-readiness.js +130 -0
- package/dist/src/lifecycle/core-static-readiness.js.map +1 -0
- package/dist/src/lifecycle/corrective-replan-authority.d.ts +53 -0
- package/dist/src/lifecycle/corrective-replan-authority.js +139 -0
- package/dist/src/lifecycle/corrective-replan-authority.js.map +1 -0
- package/dist/src/lifecycle/corrective-replan-binding-manifest.d.ts +21 -0
- package/dist/src/lifecycle/corrective-replan-binding-manifest.js +35 -0
- package/dist/src/lifecycle/corrective-replan-binding-manifest.js.map +1 -0
- package/dist/src/lifecycle/corrective-replan-credential-core.d.ts +86 -0
- package/dist/src/lifecycle/corrective-replan-credential-core.js +563 -0
- package/dist/src/lifecycle/corrective-replan-credential-core.js.map +1 -0
- package/dist/src/lifecycle/corrective-replan-credential-schema.d.ts +17 -0
- package/dist/src/lifecycle/corrective-replan-credential-schema.js +44 -0
- package/dist/src/lifecycle/corrective-replan-credential-schema.js.map +1 -0
- package/dist/src/lifecycle/corrective-replan-credentials.d.ts +47 -0
- package/dist/src/lifecycle/corrective-replan-credentials.js +103 -0
- package/dist/src/lifecycle/corrective-replan-credentials.js.map +1 -0
- package/dist/src/lifecycle/corrective-replan.d.ts +64 -0
- package/dist/src/lifecycle/corrective-replan.js +548 -0
- package/dist/src/lifecycle/corrective-replan.js.map +1 -0
- package/dist/src/lifecycle/evaluator.d.ts +2 -0
- package/dist/src/lifecycle/evaluator.js +35 -0
- package/dist/src/lifecycle/evaluator.js.map +1 -0
- package/dist/src/lifecycle/fingerprint.d.ts +31 -0
- package/dist/src/lifecycle/fingerprint.js +388 -0
- package/dist/src/lifecycle/fingerprint.js.map +1 -0
- package/dist/src/lifecycle/immutable.d.ts +1 -0
- package/dist/src/lifecycle/immutable.js +10 -0
- package/dist/src/lifecycle/immutable.js.map +1 -0
- package/dist/src/lifecycle/implementation-table.d.ts +29 -0
- package/dist/src/lifecycle/implementation-table.js +87 -0
- package/dist/src/lifecycle/implementation-table.js.map +1 -0
- package/dist/src/lifecycle/index.d.ts +4 -0
- package/dist/src/lifecycle/index.js +5 -0
- package/dist/src/lifecycle/index.js.map +1 -0
- package/dist/src/lifecycle/schema-artifact.d.ts +12 -0
- package/dist/src/lifecycle/schema-artifact.js +214 -0
- package/dist/src/lifecycle/schema-artifact.js.map +1 -0
- package/dist/src/lifecycle/semantic-registry.d.ts +6 -0
- package/dist/src/lifecycle/semantic-registry.js +489 -0
- package/dist/src/lifecycle/semantic-registry.js.map +1 -0
- package/dist/src/lifecycle/types.d.ts +718 -0
- package/dist/src/lifecycle/types.js +4 -0
- package/dist/src/lifecycle/types.js.map +1 -0
- package/dist/src/observation.d.ts +20 -0
- package/dist/src/observation.js +171 -0
- package/dist/src/observation.js.map +1 -0
- package/dist/src/reviewer.d.ts +39 -1
- package/dist/src/reviewer.js +179 -43
- package/dist/src/reviewer.js.map +1 -1
- package/dist/src/state/corrective-replan-executor.d.ts +64 -0
- package/dist/src/state/corrective-replan-executor.js +608 -0
- package/dist/src/state/corrective-replan-executor.js.map +1 -0
- package/dist/src/state/corrective-replan-public-schema.d.ts +3 -0
- package/dist/src/state/corrective-replan-public-schema.js +43 -0
- package/dist/src/state/corrective-replan-public-schema.js.map +1 -0
- package/dist/src/state/corrective-replan-public.d.ts +95 -0
- package/dist/src/state/corrective-replan-public.js +665 -0
- package/dist/src/state/corrective-replan-public.js.map +1 -0
- package/dist/src/state/corrective-replan-transaction.d.ts +160 -0
- package/dist/src/state/corrective-replan-transaction.js +730 -0
- package/dist/src/state/corrective-replan-transaction.js.map +1 -0
- package/dist/src/state/corrective-yield-executor.d.ts +31 -0
- package/dist/src/state/corrective-yield-executor.js +236 -0
- package/dist/src/state/corrective-yield-executor.js.map +1 -0
- package/dist/src/state/corrective-yield-transaction.d.ts +97 -0
- package/dist/src/state/corrective-yield-transaction.js +591 -0
- package/dist/src/state/corrective-yield-transaction.js.map +1 -0
- package/dist/src/state/lock.d.ts +76 -3
- package/dist/src/state/lock.js +611 -30
- package/dist/src/state/lock.js.map +1 -1
- package/dist/src/state/store.d.ts +3 -0
- package/dist/src/state/store.js +65 -12
- package/dist/src/state/store.js.map +1 -1
- package/dist/src/transition-core.d.ts +67 -0
- package/dist/src/transition-core.js +318 -0
- package/dist/src/transition-core.js.map +1 -0
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/workflow.d.ts +62 -25
- package/dist/src/workflow.js +892 -183
- package/dist/src/workflow.js.map +1 -1
- package/docs/lifecycle/state-machine-stabilization.md +641 -0
- package/docs/release.md +6 -2
- package/docs/updating-existing-project.md +9 -0
- package/package.json +4 -1
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +36 -0
- package/schemas/adoption-posture-event.schema.json +1 -1
- package/schemas/context-envelope.schema.json +1 -1
- package/schemas/corrective-replan-credentials.private.schema.json +98 -0
- package/schemas/corrective-replan-execution-event.private.schema.json +53 -0
- package/schemas/corrective-replan-public.schema.json +142 -0
- package/schemas/corrective-replan-task-transaction.private.schema.json +151 -0
- package/schemas/corrective-yield-task-transaction.private.schema.json +98 -0
- package/schemas/remediation-event.schema.json +11 -1
- package/schemas/task-handoff-event.schema.json +1 -1
- package/schemas/transition-definition.schema.json +2609 -0
- package/schemas/transition-payloads.schema.json +140 -0
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
import { WorkflowService } from './workflow.js';
|
|
2
|
+
import { CoreTaskOperationLockManager } from './state/lock.js';
|
|
3
|
+
import { correctiveReplanTerminalReadback, driveCorrectiveReplanTransaction } from './state/corrective-replan-executor.js';
|
|
4
|
+
import { CorrectiveReplanTaskTransactionStore } from './state/corrective-replan-transaction.js';
|
|
5
|
+
import { GuardedTransitionCatalog, validateTransitionDefinitionSemantics } from './lifecycle/catalog.js';
|
|
6
|
+
import { installedAuthoritySemanticBindings, projectAuthoritySemanticBundle } from './lifecycle/corrective-replan-authority.js';
|
|
7
|
+
import { correctiveReplanCredentialFunctionBindings } from './lifecycle/corrective-replan-credential-core.js';
|
|
8
|
+
import { correctiveReplanCredentialSchemaArtifacts, correctiveReplanCredentialSchemaValidators } from './lifecycle/corrective-replan-credential-schema.js';
|
|
9
|
+
import { diagnoseCorrectiveReplanCredentialClosure } from './lifecycle/corrective-replan-credentials.js';
|
|
10
|
+
import { hashCorrectivePlanBytes, taskCorrectiveReplanDefinition } from './lifecycle/corrective-replan.js';
|
|
11
|
+
import { evaluateTransition } from './lifecycle/evaluator.js';
|
|
12
|
+
import { evaluateInstalledReleaseRulesForCore, installedCoreRuleBindings, projectReleaseRuleContextForCore, } from './lifecycle/core-static-readiness.js';
|
|
13
|
+
import { hashCanonical, runtimeCatalogHash, runtimeSemanticFingerprint, runtimeSemanticProjection as runtimeProjection, transitionDefinitionManifestHash } from './lifecycle/fingerprint.js';
|
|
14
|
+
import { deepFreeze } from './lifecycle/immutable.js';
|
|
15
|
+
import { createCorrectiveReplanImplementationTable } from './lifecycle/implementation-table.js';
|
|
16
|
+
import { installedPayloadSchemaArtifacts, installedPayloadSchemaValidators, installedTransitionDefinitionArtifact, installedTransitionDefinitionValidator, transitionDefinitionDocumentSha256, transitionDefinitionVocabularySha256, } from './lifecycle/schema-artifact.js';
|
|
17
|
+
import { transitionSemanticRegistry } from './lifecycle/semantic-registry.js';
|
|
18
|
+
import { LIFECYCLE_EPOCH, TRANSITION_DEFINITION_FORMAT_VERSION, } from './lifecycle/types.js';
|
|
19
|
+
const guards = taskCorrectiveReplanDefinition.guards.map((guard) => guard.evaluate);
|
|
20
|
+
const credentialReceiptVerifier = correctiveReplanCredentialFunctionBindings.find((entry) => entry.id === 'credential-verifier.corrective-replan.receipt');
|
|
21
|
+
if (!credentialReceiptVerifier)
|
|
22
|
+
throw new TypeError('Installed corrective-replan receipt verifier is missing.');
|
|
23
|
+
const credentialClosure = diagnoseCorrectiveReplanCredentialClosure();
|
|
24
|
+
if (!credentialClosure.closed)
|
|
25
|
+
throw new TypeError('Installed corrective-replan credential bundle is not closed.');
|
|
26
|
+
const executableTable = createCorrectiveReplanImplementationTable({
|
|
27
|
+
guards,
|
|
28
|
+
identityComparators: installedAuthoritySemanticBindings.filter((entry) => entry.kind === 'identity-comparator').map((entry) => entry.callable),
|
|
29
|
+
verifyReceipt: credentialReceiptVerifier.callable,
|
|
30
|
+
acquireTaskLock: CoreTaskOperationLockManager.prototype.acquire,
|
|
31
|
+
createJournalIntent: CorrectiveReplanTaskTransactionStore.prototype.createIntent,
|
|
32
|
+
recoverCorrectiveReplan: driveCorrectiveReplanTransaction,
|
|
33
|
+
executeCorrectiveReplan: WorkflowService.prototype.executeCorrectiveReplan,
|
|
34
|
+
terminalReadback: correctiveReplanTerminalReadback,
|
|
35
|
+
canonicalJsonSha256: hashCanonical, rawPlanSha256: hashCorrectivePlanBytes,
|
|
36
|
+
});
|
|
37
|
+
const installedExecutables = deepFreeze(Object.values(executableTable).flat());
|
|
38
|
+
const installedFamilySemantics = runtimeProjection(taskCorrectiveReplanDefinition.metadata).semantics;
|
|
39
|
+
const installedTransitionExecutableBinding = deepFreeze({
|
|
40
|
+
transitionId: taskCorrectiveReplanDefinition.metadata.transitionId, version: 1,
|
|
41
|
+
runtimeSemanticFingerprint: taskCorrectiveReplanDefinition.runtimeSemanticFingerprint,
|
|
42
|
+
implementationId: 'implementation.transition.task-corrective-replan', implementationVersion: 2,
|
|
43
|
+
guardCallables: taskCorrectiveReplanDefinition.guards.map((guard, index) => {
|
|
44
|
+
const binding = executable(taskCorrectiveReplanDefinition.metadata.guards[index].evaluator);
|
|
45
|
+
return { guardId: guard.metadata.guardId, semanticVersion: guard.metadata.semanticVersion,
|
|
46
|
+
implementationId: binding.semanticId, implementationVersion: binding.semanticVersion, callable: guard.evaluate };
|
|
47
|
+
}),
|
|
48
|
+
executableSlots: declaredExecutableSlots(), evaluate: evaluateTransition,
|
|
49
|
+
});
|
|
50
|
+
export const installedTransitionExecutableBindings = deepFreeze([installedTransitionExecutableBinding]);
|
|
51
|
+
const issuedCatalogs = new WeakMap();
|
|
52
|
+
export const guardedTransitionCatalog = deepFreeze(new GuardedTransitionCatalog([taskCorrectiveReplanDefinition]));
|
|
53
|
+
export function compileCoreTransitionCatalog(raw) {
|
|
54
|
+
if (!Array.isArray(raw))
|
|
55
|
+
return failed([{ diagnosticId: 'compiler.catalog.input-invalid', path: '/', message: 'Core catalog input must be an array.' }]);
|
|
56
|
+
const diagnostics = diagnoseClosure(raw, installedCoreRuleBindings, installedTransitionExecutableBindings, installedPayloadSchemaArtifacts, installedPayloadSchemaValidators);
|
|
57
|
+
if (diagnostics.length > 0)
|
|
58
|
+
return failed(diagnostics);
|
|
59
|
+
const ir = [];
|
|
60
|
+
const seen = new Set();
|
|
61
|
+
for (const candidate of raw) {
|
|
62
|
+
const definition = structuredClone(candidate);
|
|
63
|
+
if (seen.has(definition.transitionId)) {
|
|
64
|
+
diagnostics.push({ diagnosticId: 'compiler.catalog.transition-duplicate', path: '/transitionId', ref: definition.transitionId, message: 'Transition ID is duplicated.' });
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
seen.add(definition.transitionId);
|
|
68
|
+
const payloadSchemas = bindPayloadSchemas(definition, installedPayloadSchemaArtifacts, installedPayloadSchemaValidators, diagnostics);
|
|
69
|
+
const rules = installedCoreRuleBindings.map((binding) => ({ ...binding, context: projectReleaseRuleContextForCore(definition, binding.id) }));
|
|
70
|
+
const payloadSchemaClosureSha256 = hashCanonical(payloadSchemas.map(projectPayloadBinding));
|
|
71
|
+
const definitionSchema = { schema: { id: installedTransitionDefinitionArtifact.id, version: 1 },
|
|
72
|
+
artifact: installedTransitionDefinitionArtifact, validator: installedTransitionDefinitionValidator };
|
|
73
|
+
ir.push(deepFreeze({ transitionId: definition.transitionId, serializedDefinition: definition,
|
|
74
|
+
transitionExecutableBinding: installedTransitionExecutableBinding, authoritySemanticBindings: installedAuthoritySemanticBindings,
|
|
75
|
+
credentialSemanticBindings: correctiveReplanCredentialFunctionBindings,
|
|
76
|
+
credentialClosureSha256: credentialClosure.closureSha256,
|
|
77
|
+
definitionSchema, rules, payloadSchemas, payloadSchemaClosureSha256 }));
|
|
78
|
+
}
|
|
79
|
+
if (diagnostics.length > 0)
|
|
80
|
+
return failed(diagnostics);
|
|
81
|
+
ir.sort((left, right) => left.transitionId.localeCompare(right.transitionId));
|
|
82
|
+
const frozenIr = deepFreeze(ir);
|
|
83
|
+
const readiness = readinessFromIr(frozenIr);
|
|
84
|
+
const serialized = frozenIr.map((entry) => entry.serializedDefinition);
|
|
85
|
+
const order = frozenIr.map((entry) => semanticOrder(entry.serializedDefinition));
|
|
86
|
+
const canonicalIr = frozenIr.map(projectPrivateIr);
|
|
87
|
+
const provenance = {
|
|
88
|
+
compilerId: 'codex-workflow-exact-family-compiler', compilerVersion: '4.0.0',
|
|
89
|
+
compilerBuildSha256: hashCanonical({ implementation: 'corrective-replan-exact-family', version: 2 }),
|
|
90
|
+
definitionFormatVersion: TRANSITION_DEFINITION_FORMAT_VERSION, lifecycleEpoch: LIFECYCLE_EPOCH,
|
|
91
|
+
rawCatalogSha256: hashCanonical(serialized), runtimeCatalogHash: runtimeCatalogHash(serialized),
|
|
92
|
+
staticCatalogHash: hashCanonical(readiness),
|
|
93
|
+
semanticRegistryClosureSha256: hashCanonical(canonicalIr.map((entry) => entry.registryClosure)),
|
|
94
|
+
executableRegistryClosureSha256: hashCanonical(canonicalIr.map((entry) => entry.transitionExecutableBinding)),
|
|
95
|
+
transitionSchemaArtifactSha256: transitionDefinitionDocumentSha256,
|
|
96
|
+
transitionSchemaVocabularySha256: transitionDefinitionVocabularySha256,
|
|
97
|
+
transitionSchemaValidatorSha256: hashCanonical(projectPayloadValidator(installedTransitionDefinitionValidator)),
|
|
98
|
+
payloadSchemaClosureSha256: frozenIr[0]?.payloadSchemaClosureSha256 ?? hashCanonical([]),
|
|
99
|
+
officialProfileSha256: hashCanonical({}),
|
|
100
|
+
ruleSetSha256: hashCanonical(installedCoreRuleBindings.map(projectRule)),
|
|
101
|
+
canonicalOrderSha256: hashCanonical(order), irSha256: hashCanonical({ transitions: canonicalIr, order, readiness }),
|
|
102
|
+
};
|
|
103
|
+
const catalog = deepFreeze({ kind: 'core-compiled-transition-catalog', provenance,
|
|
104
|
+
transitions: frozenIr.map((entry) => ({ transitionId: entry.transitionId,
|
|
105
|
+
runtimeSemanticFingerprint: entry.serializedDefinition.runtimeSemanticFingerprint,
|
|
106
|
+
definitionManifestHash: entry.serializedDefinition.definitionManifestHash })) });
|
|
107
|
+
issuedCatalogs.set(catalog, deepFreeze({ ir: frozenIr, readiness }));
|
|
108
|
+
return { ok: true, catalog, diagnostics: [], diagnosticsHash: hashCanonical([]) };
|
|
109
|
+
}
|
|
110
|
+
export function evaluateCoreStaticReadiness(catalog) {
|
|
111
|
+
return requireRecord(catalog).readiness;
|
|
112
|
+
}
|
|
113
|
+
export function inspectCorePrivateIr(catalog) {
|
|
114
|
+
return requireRecord(catalog).ir;
|
|
115
|
+
}
|
|
116
|
+
export function diagnoseCoreIssuanceClosure(input) {
|
|
117
|
+
const diagnostics = diagnoseClosure(input.definitions, input.ruleBindings ?? installedCoreRuleBindings, input.transitionExecutableBindings ?? installedTransitionExecutableBindings, input.schemaArtifacts ?? installedPayloadSchemaArtifacts, input.schemaValidators ?? installedPayloadSchemaValidators, input.authoritySemanticBindings ?? installedAuthoritySemanticBindings);
|
|
118
|
+
const ordered = orderDiagnostics(diagnostics);
|
|
119
|
+
return deepFreeze({ issuable: ordered.length === 0, diagnostics: ordered, diagnosticsHash: hashCanonical(ordered) });
|
|
120
|
+
}
|
|
121
|
+
function diagnoseClosure(definitions, rules, transitionBindings, artifacts, validators, authorityBindings = installedAuthoritySemanticBindings) {
|
|
122
|
+
const diagnostics = [];
|
|
123
|
+
exactRules(rules, diagnostics);
|
|
124
|
+
exactTransitionBindings(transitionBindings, diagnostics);
|
|
125
|
+
exactAuthorityBindings(authorityBindings, diagnostics);
|
|
126
|
+
for (const raw of definitions) {
|
|
127
|
+
if (!installedTransitionDefinitionArtifact || !installedTransitionDefinitionValidator.callable(raw)) {
|
|
128
|
+
diagnostics.push({ diagnosticId: 'compiler.schema.document-invalid', path: '/', message: 'Definition fails the installed root schema.' });
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
const semantic = validateTransitionDefinitionSemantics(raw);
|
|
132
|
+
semantic.issues.forEach((entry) => diagnostics.push(entry.ref === undefined
|
|
133
|
+
? { diagnosticId: `compiler.semantic.${entry.ruleId.slice('validation.'.length)}`, path: entry.path, message: entry.message }
|
|
134
|
+
: { diagnosticId: `compiler.semantic.${entry.ruleId.slice('validation.'.length)}`, path: entry.path, ref: entry.ref, message: entry.message }));
|
|
135
|
+
const definition = raw;
|
|
136
|
+
if (definition.transitionId !== 'task.plan.corrective-replan')
|
|
137
|
+
diagnostics.push({ diagnosticId: 'compiler.family.unsupported', path: '/transitionId', ref: definition.transitionId, message: 'No installed exact family compiler.' });
|
|
138
|
+
try {
|
|
139
|
+
const metadata = stripHashes(definition);
|
|
140
|
+
const mismatch = firstDifferencePath(installedFamilySemantics, runtimeProjection(metadata).semantics);
|
|
141
|
+
if (mismatch)
|
|
142
|
+
diagnostics.push({ diagnosticId: 'core.transition-binding.semantic-mismatch', path: mismatch, ref: definition.transitionId, message: `Definition semantics differ from the installed exact family at ${mismatch}.` });
|
|
143
|
+
if (runtimeSemanticFingerprint(metadata) !== definition.runtimeSemanticFingerprint)
|
|
144
|
+
diagnostics.push({ diagnosticId: 'compiler.fingerprint.runtime-mismatch', path: '/runtimeSemanticFingerprint', message: 'Runtime fingerprint is stale.' });
|
|
145
|
+
if (transitionDefinitionManifestHash(metadata, definition.runtimeSemanticFingerprint) !== definition.definitionManifestHash)
|
|
146
|
+
diagnostics.push({ diagnosticId: 'compiler.fingerprint.manifest-mismatch', path: '/definitionManifestHash', message: 'Manifest hash is stale.' });
|
|
147
|
+
}
|
|
148
|
+
catch (error) {
|
|
149
|
+
const ref = error.ref;
|
|
150
|
+
diagnostics.push(ref === undefined
|
|
151
|
+
? { diagnosticId: 'compiler.registry.reference-unresolved', path: '/', message: error instanceof Error ? error.message : String(error) }
|
|
152
|
+
: { diagnosticId: 'compiler.registry.reference-unresolved', path: '/', ref, message: error instanceof Error ? error.message : String(error) });
|
|
153
|
+
}
|
|
154
|
+
bindPayloadSchemas(definition, artifacts, validators, diagnostics);
|
|
155
|
+
}
|
|
156
|
+
return diagnostics;
|
|
157
|
+
}
|
|
158
|
+
function exactRules(candidate, diagnostics) {
|
|
159
|
+
for (const installed of installedCoreRuleBindings) {
|
|
160
|
+
const matches = candidate.filter((entry) => sameRef(entry, installed));
|
|
161
|
+
if (matches.length !== 1)
|
|
162
|
+
diagnostics.push({ diagnosticId: matches.length === 0 ? 'core.rule-binding.missing' : 'core.rule-binding.duplicate', path: `/ruleBindings/${installed.id}`, ref: refKey(installed), message: `${installed.id} must be bound exactly once.` });
|
|
163
|
+
else if (matches[0] !== installed || matches[0].callable !== installed.callable
|
|
164
|
+
|| matches[0].implementationId !== installed.implementationId || matches[0].implementationVersion !== installed.implementationVersion) {
|
|
165
|
+
diagnostics.push({ diagnosticId: 'core.rule-binding.callable-substituted', path: `/ruleBindings/${installed.id}`, ref: refKey(installed), message: `${installed.id} callable differs from installed Core identity.` });
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
function exactAuthorityBindings(candidate, diagnostics) {
|
|
170
|
+
const issue = (id, installed) => diagnostics.push({ diagnosticId: `core.authority-binding.${id}`,
|
|
171
|
+
path: `/authoritySemanticBindings/${installed.id}`, ref: installed.id, message: `${installed.id} authority callable differs from Core.` });
|
|
172
|
+
for (const installed of installedAuthoritySemanticBindings) {
|
|
173
|
+
const matches = candidate.filter((entry) => sameRef(entry, installed));
|
|
174
|
+
if (matches.length !== 1)
|
|
175
|
+
issue(matches.length === 0 ? 'missing' : 'duplicate', installed);
|
|
176
|
+
else if (typeof matches[0].callable !== 'function')
|
|
177
|
+
issue('callable-missing', installed);
|
|
178
|
+
else if (matches[0] !== installed || matches[0].callable !== installed.callable)
|
|
179
|
+
issue('callable-substituted', installed);
|
|
180
|
+
}
|
|
181
|
+
candidate.filter((entry) => !installedAuthoritySemanticBindings.some((installed) => sameRef(entry, installed)))
|
|
182
|
+
.forEach((entry) => issue('extra', entry));
|
|
183
|
+
}
|
|
184
|
+
function exactTransitionBindings(candidate, diagnostics) {
|
|
185
|
+
const expected = installedTransitionExecutableBinding;
|
|
186
|
+
const matches = candidate.filter((entry) => entry.transitionId === expected.transitionId);
|
|
187
|
+
const issue = (id, path, ref) => diagnostics.push({ diagnosticId: `core.transition-binding.${id}`, path, ref, message: `Exact transition binding mismatch: ${ref}.` });
|
|
188
|
+
if (matches.length !== 1)
|
|
189
|
+
issue(matches.length === 0 ? 'missing' : 'duplicate', `/transitionExecutableBindings/${expected.transitionId}`, expected.transitionId);
|
|
190
|
+
candidate.filter((entry) => entry.transitionId !== expected.transitionId).forEach((entry) => issue('extra', '/transitionExecutableBindings', entry.transitionId));
|
|
191
|
+
if (matches.length !== 1 || matches[0] === expected)
|
|
192
|
+
return;
|
|
193
|
+
const actual = matches[0];
|
|
194
|
+
expected.guardCallables.filter((guard) => !actual.guardCallables.some((entry) => entry.guardId === guard.guardId)).forEach((guard) => issue('guard-missing', '/transitionExecutableBindings/guards', guard.guardId));
|
|
195
|
+
actual.guardCallables.filter((guard) => !expected.guardCallables.some((entry) => entry.guardId === guard.guardId) || actual.guardCallables.filter((entry) => entry.guardId === guard.guardId).length > 1).forEach((guard) => issue('guard-extra', '/transitionExecutableBindings/guards', guard.guardId));
|
|
196
|
+
if (actual.guardCallables.map((entry) => entry.guardId).join('\0') !== expected.guardCallables.map((entry) => entry.guardId).join('\0'))
|
|
197
|
+
issue('guard-order-mismatch', '/transitionExecutableBindings/guards', expected.transitionId);
|
|
198
|
+
expected.guardCallables.forEach((guard, index) => { const entry = actual.guardCallables[index]; if (entry?.guardId === guard.guardId && (entry.callable !== guard.callable || entry.semanticVersion !== guard.semanticVersion || entry.implementationId !== guard.implementationId || entry.implementationVersion !== guard.implementationVersion))
|
|
199
|
+
issue('guard-callable-substituted', `/transitionExecutableBindings/guards/${index}`, guard.guardId); });
|
|
200
|
+
if (actual.version !== expected.version)
|
|
201
|
+
issue('semantic-mismatch', '/transitionExecutableBindings/version', expected.transitionId);
|
|
202
|
+
if (actual.runtimeSemanticFingerprint !== expected.runtimeSemanticFingerprint || actual.evaluate !== expected.evaluate || actual.implementationId !== expected.implementationId || actual.implementationVersion !== expected.implementationVersion || actual.executableSlots !== expected.executableSlots)
|
|
203
|
+
issue('semantic-mismatch', '/transitionExecutableBindings', expected.transitionId);
|
|
204
|
+
}
|
|
205
|
+
function bindPayloadSchemas(definition, artifacts, validators, diagnostics) {
|
|
206
|
+
let schemaRefs = [];
|
|
207
|
+
try {
|
|
208
|
+
const closure = runtimeSemanticProjectionForCore(stripHashes(definition));
|
|
209
|
+
schemaRefs = closure.filter((entry) => entry.category === 'schemas').map((entry) => entry.entry);
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
return [];
|
|
213
|
+
}
|
|
214
|
+
return schemaRefs.map((schema) => {
|
|
215
|
+
const installedArtifact = onlyInstalled(installedPayloadSchemaArtifacts, schema);
|
|
216
|
+
const installedValidator = onlyInstalled(installedPayloadSchemaValidators, schema);
|
|
217
|
+
const artifactMatches = artifacts.filter((entry) => sameRef(entry, schema));
|
|
218
|
+
const validatorMatches = validators.filter((entry) => sameRef(entry, schema));
|
|
219
|
+
if (artifactMatches.length !== 1)
|
|
220
|
+
diagnostics.push({ diagnosticId: artifactMatches.length === 0 ? 'core.payload-artifact.missing' : 'core.payload-artifact.duplicate', path: `/schemaArtifacts/${schema.id}`, ref: refKey(schema), message: `${schema.id} artifact must occur exactly once.` });
|
|
221
|
+
else if (artifactMatches[0] !== installedArtifact)
|
|
222
|
+
diagnostics.push({ diagnosticId: 'core.payload-artifact.subschema-substituted', path: `/schemaArtifacts/${schema.id}`, ref: refKey(schema), message: `${schema.id} artifact identity or subschema differs from Core.` });
|
|
223
|
+
if (validatorMatches.length !== 1)
|
|
224
|
+
diagnostics.push({ diagnosticId: validatorMatches.length === 0 ? 'core.payload-validator.missing' : 'core.payload-validator.duplicate', path: `/schemaValidators/${schema.id}`, ref: refKey(schema), message: `${schema.id} validator must occur exactly once.` });
|
|
225
|
+
else if (validatorMatches[0] !== installedValidator || validatorMatches[0].callable !== installedValidator.callable)
|
|
226
|
+
diagnostics.push({ diagnosticId: 'core.payload-validator.callable-substituted', path: `/schemaValidators/${schema.id}`, ref: refKey(schema), message: `${schema.id} validator differs from Core.` });
|
|
227
|
+
return { schema, artifact: installedArtifact, validator: installedValidator };
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
function runtimeSemanticProjectionForCore(metadata) {
|
|
231
|
+
return runtimeProjection(metadata).resolvedRegistryEntries;
|
|
232
|
+
}
|
|
233
|
+
function readinessFromIr(ir) {
|
|
234
|
+
const transitions = ir.map((entry) => ({ transitionId: entry.transitionId,
|
|
235
|
+
blockers: [...evaluateInstalledReleaseRulesForCore(entry.rules)] }));
|
|
236
|
+
const content = { staticReady: ir.length > 0 && transitions.every((entry) => entry.blockers.length === 0),
|
|
237
|
+
catalogBlockers: ir.length === 0 ? ['static.catalog.empty'] : [], transitions };
|
|
238
|
+
return deepFreeze({ ...content, reportHash: hashCanonical(content) });
|
|
239
|
+
}
|
|
240
|
+
function semanticOrder(definition) {
|
|
241
|
+
return { transitionId: definition.transitionId, guards: definition.guards.map((entry) => entry.guardId),
|
|
242
|
+
effects: definition.effects.orderedNodes.map((entry) => ({ id: entry.effectId, ordinal: entry.ordinal, dependsOn: entry.dependsOn })),
|
|
243
|
+
revalidations: definition.admissionBoundary.orderedRevalidations.map((entry) => ({ id: entry.revalidationId, ordinal: entry.ordinal })) };
|
|
244
|
+
}
|
|
245
|
+
function projectPrivateIr(ir) {
|
|
246
|
+
const runtime = runtimeProjection(stripHashes(ir.serializedDefinition));
|
|
247
|
+
return { transitionId: ir.transitionId, semantics: runtime.semantics, registryClosure: runtime.resolvedRegistryEntries,
|
|
248
|
+
transitionExecutableBinding: projectTransitionBinding(ir.transitionExecutableBinding), authoritySemanticBundle: projectAuthoritySemanticBundle(ir.authoritySemanticBindings),
|
|
249
|
+
credentialSemanticBundle: {
|
|
250
|
+
manifestSha256: credentialClosure.manifestSha256,
|
|
251
|
+
closureSha256: ir.credentialClosureSha256,
|
|
252
|
+
artifacts: correctiveReplanCredentialSchemaArtifacts.map(({ document: _document, ...entry }) => entry),
|
|
253
|
+
validators: correctiveReplanCredentialSchemaValidators.map(({ callable: _callable, ...entry }) => entry),
|
|
254
|
+
functions: ir.credentialSemanticBindings.map(({ callable: _callable, ...entry }) => entry),
|
|
255
|
+
},
|
|
256
|
+
definitionSchema: projectPayloadBinding(ir.definitionSchema), rules: ir.rules.map(projectRule),
|
|
257
|
+
payloadSchemas: ir.payloadSchemas.map(projectPayloadBinding), blockers: evaluateInstalledReleaseRulesForCore(ir.rules) };
|
|
258
|
+
}
|
|
259
|
+
function projectTransitionBinding(entry) { return { transitionId: entry.transitionId, version: entry.version, runtimeSemanticFingerprint: entry.runtimeSemanticFingerprint, implementationId: entry.implementationId, implementationVersion: entry.implementationVersion, guards: entry.guardCallables.map(({ callable: _callable, ...guard }) => guard), executableSlots: entry.executableSlots.map((slot) => ({ path: slot.path, binding: projectExecutable(slot.binding) })) }; }
|
|
260
|
+
function projectExecutable(entry) { return { id: entry.id, version: entry.version, semanticId: entry.semanticId, semanticVersion: entry.semanticVersion, wiring: entry.wiring ?? null, implementationResult: entry.implementationResult ?? null, projectionWiring: entry.projectionWiring ?? null }; }
|
|
261
|
+
function projectRule(entry) { return { id: entry.id, version: entry.version, implementationId: entry.implementationId, implementationVersion: entry.implementationVersion }; }
|
|
262
|
+
function projectPayloadBinding(entry) { return { schema: entry.schema, artifact: projectPayloadArtifact(entry.artifact), validator: projectPayloadValidator(entry.validator) }; }
|
|
263
|
+
function projectPayloadArtifact(entry) { return { id: entry.id, version: entry.version, implementationId: entry.implementationId, implementationVersion: entry.implementationVersion, documentSha256: entry.documentSha256, schemaPointer: entry.schemaPointer, subschemaSha256: entry.subschemaSha256 }; }
|
|
264
|
+
function projectPayloadValidator(entry) { return { id: entry.id, version: entry.version, implementationId: entry.implementationId, implementationVersion: entry.implementationVersion, artifactSha256: entry.artifactSha256, subschemaSha256: entry.subschemaSha256 }; }
|
|
265
|
+
function stripHashes(definition) { const { runtimeSemanticFingerprint: _r, semanticFingerprint: _s, definitionManifestHash: _m, ...metadata } = definition; return metadata; }
|
|
266
|
+
function onlyInstalled(entries, ref) { const matches = entries.filter((entry) => sameRef(entry, ref)); return matches.length === 1 ? matches[0] : undefined; }
|
|
267
|
+
function sameRef(left, right) { return left.id === right.id && left.version === right.version; }
|
|
268
|
+
function refKey(ref) { return `${ref.id}@${ref.version}`; }
|
|
269
|
+
function executable(ref) { const matches = installedExecutables.filter((entry) => sameRef(entry, ref)); if (matches.length !== 1)
|
|
270
|
+
throw new TypeError(`Installed executable ${refKey(ref)} is not exact-one.`); return matches[0]; }
|
|
271
|
+
function declaredExecutableSlots() {
|
|
272
|
+
const metadata = taskCorrectiveReplanDefinition.metadata;
|
|
273
|
+
const refs = [
|
|
274
|
+
...metadata.guards.map((guard, index) => [`/guards/${index}/evaluator`, guard.evaluator]),
|
|
275
|
+
...metadata.effects.orderedNodes.map((effect, index) => [`/effects/orderedNodes/${index}/adapter`, effect.adapter]),
|
|
276
|
+
...metadata.admissionBoundary.orderedRevalidations.map((entry, index) => [`/admissionBoundary/orderedRevalidations/${index}/evaluator`, entry.evaluator]),
|
|
277
|
+
...metadata.authority.separationOfDuty.map((constraint, index) => [`/authority/separationOfDuty/${index}/comparator`, constraint.comparator]),
|
|
278
|
+
...metadata.authority.forbiddenCombinations.map((constraint, index) => [`/authority/forbiddenCombinations/${index}/comparator`, constraint.comparator]),
|
|
279
|
+
['/authority/credentialVerifier', { id: 'credential-verifier.corrective-replan.receipt', version: 1 }],
|
|
280
|
+
['/admissionBoundary/lock/policy', metadata.admissionBoundary.lock.policy],
|
|
281
|
+
['/atomicity/journal/adapter', metadata.atomicity.journal.mode === 'required' ? metadata.atomicity.journal.adapter : { id: 'journal-adapter.unreachable', version: 1 }],
|
|
282
|
+
['/atomicity/recovery/adapter', metadata.atomicity.recovery.mode !== 'manual-integrity-stop' ? metadata.atomicity.recovery.adapter : { id: 'recovery-adapter.unreachable', version: 1 }],
|
|
283
|
+
['/executorAdapter', metadata.executorAdapter], ['/atomicity/executionKey/hashPolicy', metadata.atomicity.executionKey.hashPolicy],
|
|
284
|
+
['/atomicity/readback/adapter', metadata.atomicity.readback.adapter], ['/atomicity/readback/resultDigestPolicy', metadata.atomicity.readback.resultDigestPolicy],
|
|
285
|
+
];
|
|
286
|
+
metadata.inputContract.forEach((contract, index) => { const input = transitionSemanticRegistry.inputs.find((entry) => sameRef(entry, contract.input)); if (input?.hashPolicy)
|
|
287
|
+
refs.push([`/inputContract/${index}/hashPolicy`, input.hashPolicy]); });
|
|
288
|
+
return refs.map(([path, ref]) => ({ path, binding: executable(ref) }));
|
|
289
|
+
}
|
|
290
|
+
function firstDifferencePath(left, right, path = '') {
|
|
291
|
+
if (Object.is(left, right))
|
|
292
|
+
return null;
|
|
293
|
+
if (Array.isArray(left) && Array.isArray(right)) {
|
|
294
|
+
for (let index = 0; index < Math.max(left.length, right.length); index += 1) {
|
|
295
|
+
const mismatch = firstDifferencePath(left[index], right[index], `${path}/${index}`);
|
|
296
|
+
if (mismatch)
|
|
297
|
+
return mismatch;
|
|
298
|
+
}
|
|
299
|
+
return null;
|
|
300
|
+
}
|
|
301
|
+
if (left !== null && right !== null && typeof left === 'object' && typeof right === 'object') {
|
|
302
|
+
for (const key of [...new Set([...Object.keys(left), ...Object.keys(right)])].filter((entry) => entry !== 'description').sort()) {
|
|
303
|
+
const mismatch = firstDifferencePath(left[key], right[key], `${path}/${key}`);
|
|
304
|
+
if (mismatch)
|
|
305
|
+
return mismatch;
|
|
306
|
+
}
|
|
307
|
+
return null;
|
|
308
|
+
}
|
|
309
|
+
return path || '/';
|
|
310
|
+
}
|
|
311
|
+
function requireRecord(catalog) { const record = catalog !== null && typeof catalog === 'object' ? issuedCatalogs.get(catalog) : undefined; if (!record) {
|
|
312
|
+
const error = new TypeError('Invalid compiled provenance: catalog was not issued by Workflow Core.');
|
|
313
|
+
Object.assign(error, { code: 'INVALID_COMPILED_PROVENANCE' });
|
|
314
|
+
throw error;
|
|
315
|
+
} return record; }
|
|
316
|
+
function failed(diagnostics) { const ordered = orderDiagnostics(diagnostics); return { ok: false, diagnostics: ordered, diagnosticsHash: hashCanonical(ordered) }; }
|
|
317
|
+
function orderDiagnostics(diagnostics) { return [...diagnostics].sort((left, right) => `${left.path}\0${left.diagnosticId}\0${left.ref ?? ''}`.localeCompare(`${right.path}\0${right.diagnosticId}\0${right.ref ?? ''}`)); }
|
|
318
|
+
//# sourceMappingURL=transition-core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transition-core.js","sourceRoot":"","sources":["../../src/transition-core.ts"],"names":[],"mappings":"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"}
|
package/dist/src/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare const PACKAGE_NAME = "codex-workflow-v2";
|
|
2
|
-
export declare const PACKAGE_VERSION = "2.0.0-beta.
|
|
2
|
+
export declare const PACKAGE_VERSION = "2.0.0-beta.5";
|
package/dist/src/version.js
CHANGED
package/dist/src/workflow.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { type AdoptionPostureEvent, type ContextEnvelope, type CorrectivePlanAuditInput, type DelegationGrant, type DelegationGrantGate, type DelegationPolicyInput, type DiscoveryState, type MilestonePlanInput, type MilestoneState, type KnowledgeSelection, type GraphBinding, type GraphKind, type GraphMode, type GraphRefreshEvidence, type GraphRefreshRequest, type PlanRiskAuditEvent, type ProjectKnowledgeMap, type ReviewInput, type TaskPlanInput, type TaskContextRefreshResult, type TaskState, type UpdatePreflightResult, type
|
|
1
|
+
import { type AdoptionPostureEvent, type ContextEnvelope, type CorrectivePlanAuditInput, type DelegationGrant, type DelegationGrantGate, type DelegationPolicyInput, type DiscoveryState, type MilestonePlanInput, type MilestoneState, type KnowledgeSelection, type GraphBinding, type GraphKind, type GraphMode, type GraphRefreshEvidence, type GraphRefreshRequest, type PlanRiskAuditEvent, type PublicWriterLease, type PublicWriterLeaseDiagnostic, type PublicWriterLeaseRepairResult, type ProjectKnowledgeMap, type ReviewInput, type TaskPlanInput, type TaskContextRefreshResult, type TaskState, type UpdatePreflightResult, type WriterCredentialResult, type WriterCredentialStatus, type WorkflowObservation, type WorkflowRole, type WorkspaceOwner } from './contracts.js';
|
|
2
2
|
import { appendTaskClaim, appendTaskHandback, readTaskC1Posture } from './alpha6/handoff.js';
|
|
3
3
|
import { type AdoptionPreparation } from './alpha6/adoption.js';
|
|
4
4
|
import { type RecordPlanRiskAuditInput } from './alpha6/plan-risk.js';
|
|
5
5
|
import { type ActiveMilestoneAutonomy, type MilestoneAutonomyPreparation } from './alpha7/autonomy.js';
|
|
6
|
-
import { type
|
|
7
|
-
import { type ReviewerCommandRunner } from './reviewer.js';
|
|
8
|
-
import { WriterLockManager } from './state/lock.js';
|
|
6
|
+
import { type ExternalStrictStepReviewInput, type ExternalStrictTaskReviewInput, type ReviewerCommandRunner } from './reviewer.js';
|
|
9
7
|
import { FileStateStore } from './state/store.js';
|
|
8
|
+
import { type CorrectiveYieldExecutionResult } from './state/corrective-yield-executor.js';
|
|
9
|
+
import { type CorrectiveReplanHumanGate, type CorrectiveReplanHumanGateResult, type CorrectiveReplanPublicCandidate, type CorrectiveReplanPublicCredential } from './state/corrective-replan-public.js';
|
|
10
|
+
import type { CorrectiveReplanExecutionResult } from './state/corrective-replan-executor.js';
|
|
10
11
|
export interface DiscoveryInput {
|
|
11
12
|
goal: string;
|
|
12
13
|
outcome?: string;
|
|
@@ -24,10 +25,15 @@ export interface DiscoveryPatch extends Omit<DiscoveryInput, 'goal'> {
|
|
|
24
25
|
goal?: string;
|
|
25
26
|
resolveUnknowns?: string[];
|
|
26
27
|
}
|
|
27
|
-
export interface
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
export interface WorkflowStatusResult {
|
|
29
|
+
projectId: string;
|
|
30
|
+
discoveries: DiscoveryState[];
|
|
31
|
+
tasks: TaskState[];
|
|
32
|
+
milestones: MilestoneState[];
|
|
33
|
+
milestoneInitialAssembly: MilestoneInitialAssemblyNavigation[];
|
|
34
|
+
delegations: DelegationGrant[];
|
|
35
|
+
adoption: AdoptionPreparation | null;
|
|
36
|
+
observation: WorkflowObservation;
|
|
31
37
|
}
|
|
32
38
|
export interface MilestoneScopeChangePreparation {
|
|
33
39
|
milestoneId: string;
|
|
@@ -55,8 +61,8 @@ export interface Alpha6StrictReviewRescuePreflight {
|
|
|
55
61
|
projectId: string;
|
|
56
62
|
repositoryRoot: string;
|
|
57
63
|
clean: boolean;
|
|
58
|
-
activeLeases:
|
|
59
|
-
staleLeases:
|
|
64
|
+
activeLeases: PublicWriterLease[];
|
|
65
|
+
staleLeases: PublicWriterLease[];
|
|
60
66
|
candidate: {
|
|
61
67
|
taskId: string;
|
|
62
68
|
taskRevision: number;
|
|
@@ -87,10 +93,20 @@ interface MilestoneInitialAssemblyNavigation {
|
|
|
87
93
|
options: MilestoneInitialAssemblyOption[];
|
|
88
94
|
}
|
|
89
95
|
export declare class WorkflowService {
|
|
96
|
+
#private;
|
|
90
97
|
readonly store: FileStateStore;
|
|
91
98
|
private readonly now;
|
|
92
99
|
constructor(store?: FileStateStore, now?: () => Date);
|
|
93
|
-
|
|
100
|
+
inspectWriterLease(repository: string, entityId: string): PublicWriterLeaseDiagnostic | null;
|
|
101
|
+
repairStaleWriterLease(repository: string, entityId: string): PublicWriterLeaseRepairResult;
|
|
102
|
+
prepareCorrectiveReplan(repository: string, taskId: string, candidate: CorrectiveReplanPublicCandidate): CorrectiveReplanHumanGateResult;
|
|
103
|
+
confirmCorrectiveReplan(repository: string, taskId: string, candidate: CorrectiveReplanPublicCandidate, gate: CorrectiveReplanHumanGate, confirmationCode: string): CorrectiveReplanPublicCredential;
|
|
104
|
+
executeCorrectiveReplan(repository: string, taskId: string, candidate: CorrectiveReplanPublicCandidate, credential: CorrectiveReplanPublicCredential): CorrectiveReplanExecutionResult;
|
|
105
|
+
recoverCorrectiveReplan(repository: string, taskId: string, transactionId: string): CorrectiveReplanExecutionResult;
|
|
106
|
+
executeCorrectiveYield(repository: string, taskId: string, expectedTaskRevision: number, actor: string, writerToken: string, reason: string): CorrectiveYieldExecutionResult;
|
|
107
|
+
recoverCorrectiveYield(repository: string, taskId: string, transactionId: string): CorrectiveYieldExecutionResult;
|
|
108
|
+
private correctiveReplanController;
|
|
109
|
+
private observationSnapshot;
|
|
94
110
|
prepareDelegation(repository: string, input: DelegationPolicyInput): DelegationGrantGate;
|
|
95
111
|
grantDelegation(repository: string, input: DelegationPolicyInput, confirmationCode: string): DelegationGrant;
|
|
96
112
|
revokeDelegation(repository: string, grantId: string, expectedRevision: number, actor: string, reason: string): DelegationGrant;
|
|
@@ -132,7 +148,7 @@ export declare class WorkflowService {
|
|
|
132
148
|
posture: ReturnType<typeof readTaskC1Posture>;
|
|
133
149
|
claimTokenAvailable: false;
|
|
134
150
|
};
|
|
135
|
-
handoffTask(repository: string, taskId: string, expectedRevision: number, actor: string, targetActor: string, reason: string, writerToken?: string | null, grantId?: string | null, expiresAt?: string | null): {
|
|
151
|
+
handoffTask(repository: string, taskId: string, expectedRevision: number, actor: string, targetActor: string, reason: string, writerToken?: string | null, grantId?: string | null, expiresAt?: string | null, replacePending?: boolean): {
|
|
136
152
|
task: TaskState;
|
|
137
153
|
event: import("./contracts.js").TaskHandoffEvent;
|
|
138
154
|
bundle: import("./contracts.js").TaskHandoffBundle;
|
|
@@ -140,7 +156,15 @@ export declare class WorkflowService {
|
|
|
140
156
|
claimTask(repository: string, taskId: string, expectedRevision: number, actor: string, claimToken: string, writerToken?: string | null): {
|
|
141
157
|
task: TaskState;
|
|
142
158
|
event: ReturnType<typeof appendTaskClaim>;
|
|
143
|
-
lease:
|
|
159
|
+
lease: PublicWriterLease;
|
|
160
|
+
writerCredential: WriterCredentialResult;
|
|
161
|
+
};
|
|
162
|
+
replaceClaimedWriterCredential(repository: string, taskId: string, expectedRevision: number, actor: string): {
|
|
163
|
+
task: TaskState;
|
|
164
|
+
lease: PublicWriterLease;
|
|
165
|
+
writerCredential: Extract<WriterCredentialResult, {
|
|
166
|
+
disposition: 'issued';
|
|
167
|
+
}>;
|
|
144
168
|
};
|
|
145
169
|
handbackTask(repository: string, taskId: string, expectedRevision: number, actor: string, reason: string, writerToken?: string | null, limitations?: readonly string[], recommendedNext?: string): {
|
|
146
170
|
task: TaskState;
|
|
@@ -149,12 +173,29 @@ export declare class WorkflowService {
|
|
|
149
173
|
startTask(repository: string, taskId: string, expectedRevision: number, workspaceOwner: WorkspaceOwner): TaskState;
|
|
150
174
|
runStep(repository: string, taskId: string, stepId: string, expectedRevision: number, actor: string, writerToken: string | null): {
|
|
151
175
|
task: TaskState;
|
|
152
|
-
lease:
|
|
176
|
+
lease: PublicWriterLease;
|
|
177
|
+
writerCredential: WriterCredentialStatus;
|
|
153
178
|
envelope: ContextEnvelope;
|
|
154
179
|
};
|
|
155
180
|
taskContext(repository: string, taskId: string, role: Exclude<WorkflowRole, 'scope-lead' | 'worker'>): ContextEnvelope;
|
|
156
181
|
completeStep(repository: string, taskId: string, stepId: string, expectedRevision: number, writerToken: string, notes: string[], actor?: string): TaskState;
|
|
157
182
|
reviewStep(repository: string, taskId: string, stepId: string, expectedRevision: number, runner?: ReviewerCommandRunner, actor?: string, writerToken?: string | null): TaskState;
|
|
183
|
+
prepareExternalStepReview(repository: string, taskId: string, stepId: string, expectedRevision: number): import("./reviewer.js").ExternalStrictStepReviewPacket;
|
|
184
|
+
recordExternalStepReview(repository: string, taskId: string, stepId: string, expectedRevision: number, input: ExternalStrictStepReviewInput, actor: string, writerToken?: string | null): {
|
|
185
|
+
mode: "external-sealed";
|
|
186
|
+
packetHash: string;
|
|
187
|
+
repositorySealHash: string;
|
|
188
|
+
reviewerThreadId: string;
|
|
189
|
+
task: TaskState;
|
|
190
|
+
};
|
|
191
|
+
prepareExternalTaskReview(repository: string, taskId: string, expectedRevision: number): import("./reviewer.js").ExternalStrictTaskReviewPacket;
|
|
192
|
+
recordExternalTaskReview(repository: string, taskId: string, expectedRevision: number, input: ExternalStrictTaskReviewInput, actor: string, writerToken?: string | null): {
|
|
193
|
+
mode: "external-sealed";
|
|
194
|
+
packetHash: string;
|
|
195
|
+
repositorySealHash: string;
|
|
196
|
+
reviewerThreadId: string;
|
|
197
|
+
task: TaskState;
|
|
198
|
+
};
|
|
158
199
|
submitTask(repository: string, taskId: string, expectedRevision: number, writerToken: string, actor?: string): TaskState;
|
|
159
200
|
recordReview(repository: string, taskId: string, expectedRevision: number, review: ReviewInput, actor?: string, writerToken?: string | null): TaskState;
|
|
160
201
|
recoverStepCorrectiveDecision(repository: string, taskId: string, stepId: string, expectedRevision: number, actor: string, writerToken: string | null): import("./contracts.js").CorrectiveDecisionRecoveryEvent;
|
|
@@ -165,15 +206,7 @@ export declare class WorkflowService {
|
|
|
165
206
|
syncTaskBase(repository: string, taskId: string, expectedRevision: number): TaskState;
|
|
166
207
|
mergeTask(repository: string, taskId: string, expectedRevision: number, writerToken: string, actor?: string): TaskState;
|
|
167
208
|
confirmExternalMerge(repository: string, taskId: string, expectedRevision: number, writerToken: string, actor?: string): TaskState;
|
|
168
|
-
status(repository: string):
|
|
169
|
-
projectId: string;
|
|
170
|
-
discoveries: DiscoveryState[];
|
|
171
|
-
tasks: TaskState[];
|
|
172
|
-
milestones: MilestoneState[];
|
|
173
|
-
milestoneInitialAssembly: MilestoneInitialAssemblyNavigation[];
|
|
174
|
-
delegations: DelegationGrant[];
|
|
175
|
-
adoption: AdoptionPreparation;
|
|
176
|
-
};
|
|
209
|
+
status(repository: string): WorkflowStatusResult;
|
|
177
210
|
recoverMilestoneTransactions(repository: string): {
|
|
178
211
|
projectId: string;
|
|
179
212
|
recoveredMilestoneIds: string[];
|
|
@@ -181,7 +214,7 @@ export declare class WorkflowService {
|
|
|
181
214
|
prepareAdoption(repository: string): AdoptionPreparation;
|
|
182
215
|
applyAdoption(repository: string, actor: string, confirmationCode: string): AdoptionPostureEvent;
|
|
183
216
|
updatePreflight(repository: string): UpdatePreflightResult & {
|
|
184
|
-
adoption: AdoptionPreparation;
|
|
217
|
+
adoption: AdoptionPreparation | null;
|
|
185
218
|
};
|
|
186
219
|
alpha6StrictReviewRescuePreflight(repository: string): Alpha6StrictReviewRescuePreflight;
|
|
187
220
|
scanKnowledgeMap(repository: string): ProjectKnowledgeMap;
|
|
@@ -197,7 +230,7 @@ export declare class WorkflowService {
|
|
|
197
230
|
};
|
|
198
231
|
bindGraph(repository: string, expectedRevision: number | null, request: GraphRefreshRequest, evidence: GraphRefreshEvidence): GraphBinding;
|
|
199
232
|
recordGraphFallback(repository: string, graphKind: GraphKind, mode: GraphMode, expectedRevision: number | null, reason: string): GraphBinding;
|
|
200
|
-
next(repository: string): Record<string, unknown>;
|
|
233
|
+
next(repository: string, taskId?: string | null): Record<string, unknown>;
|
|
201
234
|
private delegatedAuthorization;
|
|
202
235
|
private assertHandoffGrant;
|
|
203
236
|
private nextForTaskWithDelegation;
|
|
@@ -207,6 +240,7 @@ export declare class WorkflowService {
|
|
|
207
240
|
private taskTerminalCorrectivePosture;
|
|
208
241
|
private delegatedApprovalOptions;
|
|
209
242
|
private delegatedContextRefreshOptions;
|
|
243
|
+
private findDelegatedContextRefreshOwner;
|
|
210
244
|
private assertPlanBoundedSupportingSourceGrant;
|
|
211
245
|
private assertDelegationScopeExists;
|
|
212
246
|
private assertExecutionAuthorizationFresh;
|
|
@@ -214,10 +248,13 @@ export declare class WorkflowService {
|
|
|
214
248
|
private readMilestoneCurrent;
|
|
215
249
|
private readMilestoneScopeChangeCurrent;
|
|
216
250
|
private listMilestonesCurrent;
|
|
251
|
+
private listMilestonesObserved;
|
|
217
252
|
private taskGitNavigationOverride;
|
|
218
253
|
private withTaskNavigationContracts;
|
|
254
|
+
private writerCredentialRecoveryActor;
|
|
219
255
|
private describeMilestoneInitialAssembly;
|
|
220
256
|
private prepareMilestoneScopeChangeCandidate;
|
|
257
|
+
private publicWriterLeaseDiagnostic;
|
|
221
258
|
private proveWriterLeaseTokenForHandoff;
|
|
222
259
|
private proveOptionalWriterLeaseToken;
|
|
223
260
|
private assertTaskMutationAllowedByHandoff;
|