codex-workflow-v2 2.0.0-beta.13.7 → 2.0.0-beta.13.8
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 +1 -1
- package/dist/reviewer-runtime-build.json +13 -9
- package/dist/src/alpha7/autonomy.d.ts +3 -0
- package/dist/src/alpha7/autonomy.js +89 -42
- package/dist/src/alpha7/autonomy.js.map +1 -1
- package/dist/src/change-explanation.d.ts +64 -0
- package/dist/src/change-explanation.js +150 -0
- package/dist/src/change-explanation.js.map +1 -0
- package/dist/src/cli-actions.d.ts +1 -0
- package/dist/src/cli-actions.js +1 -0
- package/dist/src/cli-actions.js.map +1 -1
- package/dist/src/cli.js +4 -1
- package/dist/src/cli.js.map +1 -1
- package/dist/src/state/store.d.ts +1 -1
- package/dist/src/state/store.js +17 -3
- package/dist/src/state/store.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/workflow.d.ts +49 -0
- package/dist/src/workflow.js +376 -230
- package/dist/src/workflow.js.map +1 -1
- package/docs/change-model.md +118 -0
- package/docs/delegated-approval.md +26 -0
- package/docs/pdf/codex-workflow-v2-architecture-ru.pdf +0 -0
- package/docs/pdf/codex-workflow-v2-chat-only-guide-ru.pdf +0 -0
- package/docs/pdf/codex-workflow-v2-technical-reference-ru.pdf +0 -0
- package/docs/release.md +47 -0
- package/package.json +1 -1
- package/plugins/codex-workflow-gateway/references/chat-dispatch.md +76 -0
- package/plugins/codex-workflow-gateway/scripts/chat-dispatch.mjs +116 -3
- package/plugins/codex-workflow-gateway/scripts/chat-registry.mjs +6 -1
- package/plugins/codex-workflow-gateway/skills/codex-workflow-gateway/SKILL.md +35 -6
package/README.md
CHANGED
|
@@ -82,7 +82,7 @@ cross-machine synchronization are not part of its contract.
|
|
|
82
82
|
Node.js 22 or newer is required. Consumers pin the exact package version:
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
|
-
npm install --save-dev --save-exact codex-workflow-v2@2.0.0-beta.13.
|
|
85
|
+
npm install --save-dev --save-exact codex-workflow-v2@2.0.0-beta.13.8
|
|
86
86
|
npx codex-workflow gateway handshake --repo .
|
|
87
87
|
npx codex-workflow doctor --repo .
|
|
88
88
|
```
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"protocol": "codex-workflow-runtime-build-manifest-v1",
|
|
3
3
|
"packageName": "codex-workflow-v2",
|
|
4
|
-
"packageVersion": "2.0.0-beta.13.
|
|
5
|
-
"packageManifestSha256": "
|
|
4
|
+
"packageVersion": "2.0.0-beta.13.8",
|
|
5
|
+
"packageManifestSha256": "032d1f88cbbd058d3bec809947281f8ad9d43dc210a32efb69195054a59ff2be",
|
|
6
6
|
"requiredEntrypoints": [
|
|
7
7
|
"dist/src/cli.js",
|
|
8
8
|
"dist/src/gateway-handshake.js",
|
|
@@ -80,7 +80,7 @@
|
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
"path": "dist/src/alpha7/autonomy.js",
|
|
83
|
-
"sha256": "
|
|
83
|
+
"sha256": "8f8ce97ea1d765f2884daadc0278c3532c37a6deba8b0dcafebb0e0e7719ea31"
|
|
84
84
|
},
|
|
85
85
|
{
|
|
86
86
|
"path": "dist/src/alpha7/corrective-recovery.js",
|
|
@@ -94,13 +94,17 @@
|
|
|
94
94
|
"path": "dist/src/beta1/project-transaction.js",
|
|
95
95
|
"sha256": "aca86d6baf103866ab7a4a54416e0a231bdd77eda322dae3c6fde35e7f969801"
|
|
96
96
|
},
|
|
97
|
+
{
|
|
98
|
+
"path": "dist/src/change-explanation.js",
|
|
99
|
+
"sha256": "78dcf7feeb3a0770efc6df408942dc382e65ad29853c9055505ae4230e8a0810"
|
|
100
|
+
},
|
|
97
101
|
{
|
|
98
102
|
"path": "dist/src/cli-actions.js",
|
|
99
|
-
"sha256": "
|
|
103
|
+
"sha256": "184d6bc81d09b06c4bb7b36d8e25dffeea3adf9b5f6671830a12a857b58b682a"
|
|
100
104
|
},
|
|
101
105
|
{
|
|
102
106
|
"path": "dist/src/cli.js",
|
|
103
|
-
"sha256": "
|
|
107
|
+
"sha256": "beb3c1c4114a9b09ec4b819b58d96a42637ae0830dfcb82e957933158fa353e6"
|
|
104
108
|
},
|
|
105
109
|
{
|
|
106
110
|
"path": "dist/src/contracts.js",
|
|
@@ -304,7 +308,7 @@
|
|
|
304
308
|
},
|
|
305
309
|
{
|
|
306
310
|
"path": "dist/src/state/store.js",
|
|
307
|
-
"sha256": "
|
|
311
|
+
"sha256": "575f4bdad35c49dceb2fc2318344c057a801d94788010dc9f21c36f62d61d8c8"
|
|
308
312
|
},
|
|
309
313
|
{
|
|
310
314
|
"path": "dist/src/transition-core.js",
|
|
@@ -316,11 +320,11 @@
|
|
|
316
320
|
},
|
|
317
321
|
{
|
|
318
322
|
"path": "dist/src/version.js",
|
|
319
|
-
"sha256": "
|
|
323
|
+
"sha256": "9faa0b93db373a62b9c50eb88e33f7d2bd9283271ef578da327e08ec04fd53bf"
|
|
320
324
|
},
|
|
321
325
|
{
|
|
322
326
|
"path": "dist/src/workflow.js",
|
|
323
|
-
"sha256": "
|
|
327
|
+
"sha256": "313966096d0cef5836eb3f8a801bddf1fc295f26eb1de2511fa3999c130bc984"
|
|
324
328
|
}
|
|
325
329
|
],
|
|
326
330
|
"runtimeDependencies": [
|
|
@@ -1104,5 +1108,5 @@
|
|
|
1104
1108
|
]
|
|
1105
1109
|
}
|
|
1106
1110
|
],
|
|
1107
|
-
"fingerprint": "
|
|
1111
|
+
"fingerprint": "498a099ec87cd1e2ecb3768c6840760604279780bdf9db93f22abaaf7e36fa00"
|
|
1108
1112
|
}
|
|
@@ -2,6 +2,8 @@ import type { DelegationGrant, DelegationPolicyInput, MilestonePlanInput, Milest
|
|
|
2
2
|
import type { FileStateStore } from '../state/store.js';
|
|
3
3
|
export interface MilestoneAutonomyEvent extends SidecarEventRecord {
|
|
4
4
|
eventType: 'issued';
|
|
5
|
+
confirmationCodeBindingHash?: string;
|
|
6
|
+
issuedMilestoneStatus?: MilestoneState['status'];
|
|
5
7
|
projectId: string;
|
|
6
8
|
milestoneId: string;
|
|
7
9
|
milestoneRevision: number;
|
|
@@ -33,6 +35,7 @@ export interface ActiveMilestoneAutonomy {
|
|
|
33
35
|
}
|
|
34
36
|
export declare function milestoneSemanticScopeHash(milestone: Pick<MilestoneState, 'id' | 'discoveryId' | 'baseBranch' | 'outcome' | 'successSignal' | 'acceptance' | 'checks'>): string;
|
|
35
37
|
export declare function prepareMilestoneAutonomyContract(options: {
|
|
38
|
+
store: FileStateStore;
|
|
36
39
|
projectId: string;
|
|
37
40
|
milestone: MilestoneState;
|
|
38
41
|
principal: string;
|
|
@@ -24,17 +24,31 @@ export function milestoneSemanticScopeHash(milestone) {
|
|
|
24
24
|
checks: milestone.checks,
|
|
25
25
|
}));
|
|
26
26
|
}
|
|
27
|
+
function autonomyAuthoritySnapshot(store, projectId, milestoneId) {
|
|
28
|
+
const event = readMilestoneAutonomyEvents(store, projectId, milestoneId).at(-1);
|
|
29
|
+
if (!event)
|
|
30
|
+
return null;
|
|
31
|
+
try {
|
|
32
|
+
const grant = store.readDelegation(projectId, event.delegationGrantId);
|
|
33
|
+
return { eventHash: event.eventHash, grant };
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
if (!(error instanceof WorkflowError) || error.code !== 'NOT_FOUND')
|
|
37
|
+
throw error;
|
|
38
|
+
return { eventHash: event.eventHash, grant: null };
|
|
39
|
+
}
|
|
40
|
+
}
|
|
27
41
|
export function prepareMilestoneAutonomyContract(options) {
|
|
28
42
|
const { projectId, milestone, now } = options;
|
|
29
|
-
if (milestone.status
|
|
30
|
-
throw new WorkflowError('TRANSITION_BLOCKED', 'Milestone autonomy
|
|
43
|
+
if (!['awaiting_execution_authorization', 'active'].includes(milestone.status) || !milestone.planHash) {
|
|
44
|
+
throw new WorkflowError('TRANSITION_BLOCKED', 'Milestone autonomy requires a complete Plan and an awaiting-authorization or active Milestone.', { milestoneId: milestone.id, status: milestone.status });
|
|
31
45
|
}
|
|
32
46
|
const principal = options.principal.trim();
|
|
33
47
|
const delegate = options.delegate.trim();
|
|
34
48
|
if (!principal || principal.startsWith('agent:')) {
|
|
35
49
|
throw new WorkflowError('INVALID_ARGUMENT', 'Milestone autonomy principal must be an explicit human actor.');
|
|
36
50
|
}
|
|
37
|
-
if (!delegate.startsWith('agent:') || delegate === principal) {
|
|
51
|
+
if (!delegate.startsWith('agent:') || !delegate.slice(6).trim() || delegate === principal) {
|
|
38
52
|
throw new WorkflowError('INVALID_ARGUMENT', 'Milestone autonomy delegate must be a distinct agent actor.');
|
|
39
53
|
}
|
|
40
54
|
const expiry = new Date(options.expiresAt);
|
|
@@ -55,7 +69,9 @@ export function prepareMilestoneAutonomyContract(options) {
|
|
|
55
69
|
const delegationPolicyHash = hashDelegationPolicy(projectId, delegationPolicy);
|
|
56
70
|
const semanticScopeHash = milestoneSemanticScopeHash(milestone);
|
|
57
71
|
const confirmationCodeBindingHash = sha256Hex(canonicalJsonStringify({
|
|
58
|
-
version: 'milestone-autonomy-contract-
|
|
72
|
+
version: 'milestone-autonomy-contract-v2',
|
|
73
|
+
milestoneStatus: milestone.status,
|
|
74
|
+
priorAuthority: autonomyAuthoritySnapshot(options.store, projectId, milestone.id),
|
|
59
75
|
projectId,
|
|
60
76
|
milestoneId: milestone.id,
|
|
61
77
|
milestoneRevision: milestone.revision,
|
|
@@ -80,53 +96,72 @@ export function prepareMilestoneAutonomyContract(options) {
|
|
|
80
96
|
}
|
|
81
97
|
export function applyMilestoneAutonomyContract(options) {
|
|
82
98
|
const prepared = prepareMilestoneAutonomyContract(options);
|
|
83
|
-
|
|
99
|
+
const root = options.store.milestoneRoot(options.projectId, options.milestone.id);
|
|
100
|
+
const existing = readMilestoneAutonomyEvents(options.store, options.projectId, options.milestone.id);
|
|
101
|
+
let event = existing.at(-1) ?? null;
|
|
102
|
+
// The original confirmation remains usable only for an exact successful retry or
|
|
103
|
+
// completion of its event-first interrupted write, never to undo a revocation.
|
|
104
|
+
// Legacy event-first writes retain their original v1 retry code. They can only
|
|
105
|
+
// finish at the original pre-execution revision, never reopen revoked authority.
|
|
106
|
+
const retryBindingHash = event?.confirmationCodeBindingHash ?? (event ? sha256Hex(canonicalJsonStringify({
|
|
107
|
+
version: 'milestone-autonomy-contract-v1',
|
|
108
|
+
projectId: options.projectId,
|
|
109
|
+
milestoneId: options.milestone.id,
|
|
110
|
+
milestoneRevision: options.milestone.revision,
|
|
111
|
+
planHash: options.milestone.planHash,
|
|
112
|
+
semanticScopeHash: event.semanticScopeHash,
|
|
113
|
+
delegationPolicyHash: event.delegationPolicyHash,
|
|
114
|
+
})) : null);
|
|
115
|
+
const retry = event !== null && retryBindingHash !== null
|
|
116
|
+
&& options.confirmationCode.trim() === `MAC-${retryBindingHash.slice(0, 24).toUpperCase()}`
|
|
117
|
+
&& event.delegationPolicyHash === prepared.delegationPolicyHash
|
|
118
|
+
&& event.milestoneRevision === options.milestone.revision
|
|
119
|
+
&& (event.issuedMilestoneStatus ?? 'awaiting_execution_authorization') === options.milestone.status
|
|
120
|
+
&& event.principal === options.principal.trim()
|
|
121
|
+
&& event.delegate === options.delegate.trim()
|
|
122
|
+
&& event.expiresAt === prepared.expiresAt
|
|
123
|
+
&& event.semanticScopeHash === milestoneSemanticScopeHash(options.milestone);
|
|
124
|
+
if (retry && event) {
|
|
125
|
+
if (Date.parse(event.expiresAt) <= options.now.getTime()) {
|
|
126
|
+
throw new WorkflowError('TRANSITION_BLOCKED', 'Expired autonomy confirmation cannot be replayed.');
|
|
127
|
+
}
|
|
128
|
+
try {
|
|
129
|
+
options.store.readDelegation(options.projectId, event.delegationGrantId);
|
|
130
|
+
return requireActiveMilestoneAutonomy({ ...options, actor: options.delegate });
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
if (!(error instanceof WorkflowError) || error.code !== 'NOT_FOUND')
|
|
134
|
+
throw error;
|
|
135
|
+
// Only this exact confirmed event may finish its missing grant write below.
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
if (!retry && options.confirmationCode.trim() !== prepared.confirmationCode) {
|
|
84
139
|
throw new WorkflowError('TRANSITION_BLOCKED', 'Milestone autonomy confirmation does not match the exact bounded contract.', {
|
|
85
140
|
milestoneId: options.milestone.id,
|
|
86
141
|
confirmationCodeBindingHash: prepared.confirmationCodeBindingHash,
|
|
87
142
|
});
|
|
88
143
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
let event = existing.at(-1) ?? null;
|
|
92
|
-
if (event) {
|
|
93
|
-
const exactRetry = event.milestoneRevision === options.milestone.revision
|
|
94
|
-
&& event.principal === prepared.principal
|
|
95
|
-
&& event.delegate === prepared.delegate
|
|
96
|
-
&& event.expiresAt === prepared.expiresAt
|
|
97
|
-
&& event.semanticScopeHash === prepared.semanticScopeHash
|
|
98
|
-
&& event.delegationPolicyHash === prepared.delegationPolicyHash;
|
|
144
|
+
if (event && !retry) {
|
|
145
|
+
let previousGrant = null;
|
|
99
146
|
try {
|
|
100
|
-
|
|
101
|
-
if (exactRetry && previousGrant.status === 'active') {
|
|
102
|
-
return requireActiveMilestoneAutonomy({
|
|
103
|
-
store: options.store,
|
|
104
|
-
projectId: options.projectId,
|
|
105
|
-
milestone: options.milestone,
|
|
106
|
-
actor: prepared.delegate,
|
|
107
|
-
now: options.now,
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
if (!exactRetry
|
|
111
|
-
&& previousGrant.status === 'active'
|
|
112
|
-
&& Date.parse(previousGrant.expiresAt) > options.now.getTime()
|
|
113
|
-
&& event.semanticScopeHash === milestoneSemanticScopeHash(options.milestone)) {
|
|
114
|
-
throw new WorkflowError('TRANSITION_BLOCKED', 'Milestone already has an active autonomy contract.', {
|
|
115
|
-
eventId: event.eventId,
|
|
116
|
-
delegationGrantId: event.delegationGrantId,
|
|
117
|
-
expiresAt: previousGrant.expiresAt,
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
// An expired, revoked, or semantically invalidated contract may be replaced only by
|
|
121
|
-
// another exact human-confirmed MAC binding.
|
|
122
|
-
event = null;
|
|
147
|
+
previousGrant = options.store.readDelegation(options.projectId, event.delegationGrantId);
|
|
123
148
|
}
|
|
124
149
|
catch (error) {
|
|
125
|
-
if (!(error instanceof WorkflowError) || error.code !== 'NOT_FOUND'
|
|
150
|
+
if (!(error instanceof WorkflowError) || error.code !== 'NOT_FOUND')
|
|
126
151
|
throw error;
|
|
127
|
-
//
|
|
128
|
-
//
|
|
152
|
+
// A fresh confirmation binds the missing grant and may supersede an inert
|
|
153
|
+
// interrupted issuance. Preserve its event; never recreate its authority.
|
|
154
|
+
}
|
|
155
|
+
if (previousGrant?.status === 'active'
|
|
156
|
+
&& Date.parse(previousGrant.expiresAt) > options.now.getTime()
|
|
157
|
+
&& event.semanticScopeHash === milestoneSemanticScopeHash(options.milestone)) {
|
|
158
|
+
throw new WorkflowError('TRANSITION_BLOCKED', 'Milestone already has an active autonomy contract.', {
|
|
159
|
+
eventId: event.eventId,
|
|
160
|
+
delegationGrantId: event.delegationGrantId,
|
|
161
|
+
expiresAt: previousGrant.expiresAt,
|
|
162
|
+
});
|
|
129
163
|
}
|
|
164
|
+
event = null;
|
|
130
165
|
}
|
|
131
166
|
if (!event) {
|
|
132
167
|
const grantId = createEntityId('DGR', options.now.getTime());
|
|
@@ -134,6 +169,8 @@ export function applyMilestoneAutonomyContract(options) {
|
|
|
134
169
|
eventId: `MAC-${createUlid(options.now.getTime())}`,
|
|
135
170
|
recordedAt: options.now.toISOString(),
|
|
136
171
|
eventType: 'issued',
|
|
172
|
+
confirmationCodeBindingHash: prepared.confirmationCodeBindingHash,
|
|
173
|
+
issuedMilestoneStatus: options.milestone.status,
|
|
137
174
|
projectId: options.projectId,
|
|
138
175
|
milestoneId: options.milestone.id,
|
|
139
176
|
milestoneRevision: options.milestone.revision,
|
|
@@ -149,7 +186,7 @@ export function applyMilestoneAutonomyContract(options) {
|
|
|
149
186
|
});
|
|
150
187
|
}
|
|
151
188
|
const grantId = event.delegationGrantId;
|
|
152
|
-
const timestamp =
|
|
189
|
+
const timestamp = event.issuedAt;
|
|
153
190
|
const grant = options.store.writeDelegation({
|
|
154
191
|
schemaVersion: STATE_SCHEMA_VERSION,
|
|
155
192
|
revision: 0,
|
|
@@ -199,6 +236,11 @@ export function requireActiveMilestoneAutonomy(options) {
|
|
|
199
236
|
expiresAt: grant.expiresAt,
|
|
200
237
|
});
|
|
201
238
|
if (grant.status !== 'active'
|
|
239
|
+
|| grant.principal !== contract.principal
|
|
240
|
+
|| grant.delegate !== contract.delegate
|
|
241
|
+
|| grant.expiresAt !== contract.expiresAt
|
|
242
|
+
|| grant.scope.kind !== 'milestone'
|
|
243
|
+
|| grant.scope.id !== options.milestone.id
|
|
202
244
|
|| grant.policyHash !== expectedPolicyHash
|
|
203
245
|
|| grant.policyHash !== contract.delegationPolicyHash) {
|
|
204
246
|
throw new WorkflowError('TRANSITION_BLOCKED', 'Milestone autonomy delegation is revoked or invalid.');
|
|
@@ -249,6 +291,11 @@ function validateMilestoneAutonomyEvent(event, expectedProjectId, expectedMilest
|
|
|
249
291
|
if (Date.parse(event.expiresAt) <= Date.parse(event.issuedAt)) {
|
|
250
292
|
throw new WorkflowError('STATE_CORRUPT', 'Milestone autonomy expiry must follow issuance.');
|
|
251
293
|
}
|
|
294
|
+
if (event.confirmationCodeBindingHash !== undefined
|
|
295
|
+
&& (!/^[a-f0-9]{64}$/.test(event.confirmationCodeBindingHash)
|
|
296
|
+
|| !['awaiting_execution_authorization', 'active'].includes(event.issuedMilestoneStatus ?? ''))) {
|
|
297
|
+
throw new WorkflowError('STATE_CORRUPT', 'Milestone autonomy confirmation binding is invalid.');
|
|
298
|
+
}
|
|
252
299
|
if (!Number.isInteger(event.milestoneRevision) || event.milestoneRevision < 1) {
|
|
253
300
|
throw new WorkflowError('STATE_CORRUPT', 'Milestone autonomy revision is invalid.');
|
|
254
301
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"autonomy.js","sourceRoot":"","sources":["../../../src/alpha7/autonomy.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"autonomy.js","sourceRoot":"","sources":["../../../src/alpha7/autonomy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { TaskState } from './contracts.js';
|
|
2
|
+
export interface ChangeExplanationInput {
|
|
3
|
+
reason: string;
|
|
4
|
+
paths: string[];
|
|
5
|
+
intent?: 'implementation' | 'membership' | 'semantic-scope';
|
|
6
|
+
expectedRevision?: number;
|
|
7
|
+
expectedPlanHash?: string;
|
|
8
|
+
executionContext?: {
|
|
9
|
+
cwd: string;
|
|
10
|
+
writeRoot: string;
|
|
11
|
+
expectedBranch: string;
|
|
12
|
+
};
|
|
13
|
+
externalDecision?: 'denied' | 'unknown';
|
|
14
|
+
}
|
|
15
|
+
type Blocker = {
|
|
16
|
+
layer: string;
|
|
17
|
+
code: string;
|
|
18
|
+
resolution: string;
|
|
19
|
+
};
|
|
20
|
+
/** Explanation only: never issues a credential, writes state, or grants permission to apply a patch. */
|
|
21
|
+
export declare function explainChange(input: ChangeExplanationInput, repository: string, task: TaskState | undefined, next: Record<string, unknown>): {
|
|
22
|
+
kind: string;
|
|
23
|
+
version: number;
|
|
24
|
+
readOnly: boolean;
|
|
25
|
+
authority: string;
|
|
26
|
+
changeKind: string;
|
|
27
|
+
decisionBasis: string;
|
|
28
|
+
binding: {
|
|
29
|
+
projectId: string;
|
|
30
|
+
repositoryRoot: string;
|
|
31
|
+
taskId: string | null;
|
|
32
|
+
revision: number | null;
|
|
33
|
+
planHash: string | null;
|
|
34
|
+
head: string;
|
|
35
|
+
proposedPaths: string[];
|
|
36
|
+
observedDirtyPaths: string[];
|
|
37
|
+
proposedPathBytesHash: string | null;
|
|
38
|
+
requestHash: string;
|
|
39
|
+
existingAction: string;
|
|
40
|
+
};
|
|
41
|
+
proposalHash: string;
|
|
42
|
+
executionContext: {
|
|
43
|
+
state: string;
|
|
44
|
+
externallyEnforced: boolean;
|
|
45
|
+
};
|
|
46
|
+
blockers: Blocker[];
|
|
47
|
+
existingRoute: {
|
|
48
|
+
action: string;
|
|
49
|
+
blockedByExplanation: boolean;
|
|
50
|
+
recheckNextBeforeMutation: boolean;
|
|
51
|
+
};
|
|
52
|
+
proposedPaths: string[];
|
|
53
|
+
outsideCurrentStep: string[];
|
|
54
|
+
boundedAmendment: {
|
|
55
|
+
route: string;
|
|
56
|
+
prerequisite: string | null;
|
|
57
|
+
scopeExtensions: string[];
|
|
58
|
+
effect: unknown;
|
|
59
|
+
} | null;
|
|
60
|
+
requiresUser: boolean | null;
|
|
61
|
+
validationNeeded: string[];
|
|
62
|
+
limitations: string[];
|
|
63
|
+
};
|
|
64
|
+
export {};
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { existsSync, lstatSync, realpathSync } from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { pathAllowed } from './domain/validation.js';
|
|
5
|
+
import { WorkflowError } from './errors.js';
|
|
6
|
+
import { currentBranch, headCommit, resolveRepositoryIdentity, runGit } from './repository.js';
|
|
7
|
+
import { hashDirtyWorktree } from './alpha6/downstream-proof.js';
|
|
8
|
+
const object = (value) => value !== null && typeof value === 'object'
|
|
9
|
+
&& !Array.isArray(value) ? value : {};
|
|
10
|
+
function validate(input) {
|
|
11
|
+
const keys = ['reason', 'paths', 'intent', 'expectedRevision', 'expectedPlanHash', 'executionContext', 'externalDecision'];
|
|
12
|
+
if (!input || typeof input !== 'object' || Object.keys(input).some(key => !keys.includes(key))
|
|
13
|
+
|| typeof input.reason !== 'string' || !input.reason.trim() || input.reason.length > 4000
|
|
14
|
+
|| !Array.isArray(input.paths) || input.paths.length > 256
|
|
15
|
+
|| input.paths.some(p => typeof p !== 'string' || !p || p.includes('\\') || p.includes('\0')
|
|
16
|
+
|| /[*?\[\]{}]/.test(p) || path.isAbsolute(p) || p.split('/').some(x => !x || x === '.' || x === '..'))
|
|
17
|
+
|| (input.intent !== undefined && !['implementation', 'membership', 'semantic-scope'].includes(input.intent))
|
|
18
|
+
|| (input.externalDecision !== undefined && !['denied', 'unknown'].includes(input.externalDecision))
|
|
19
|
+
|| (input.expectedRevision !== undefined && (!Number.isSafeInteger(input.expectedRevision) || input.expectedRevision < 1))
|
|
20
|
+
|| (input.expectedPlanHash !== undefined && !/^[a-f0-9]{64}$/.test(input.expectedPlanHash))) {
|
|
21
|
+
throw new WorkflowError('INVALID_ARGUMENT', 'Expected a closed change explanation with reason and normalized repository-relative paths.');
|
|
22
|
+
}
|
|
23
|
+
const ctx = input.executionContext;
|
|
24
|
+
if (ctx !== undefined && (!ctx || typeof ctx !== 'object'
|
|
25
|
+
|| Object.keys(ctx).sort().join(',') !== 'cwd,expectedBranch,writeRoot'
|
|
26
|
+
|| [ctx.cwd, ctx.writeRoot, ctx.expectedBranch].some(x => typeof x !== 'string' || !x.trim())
|
|
27
|
+
|| !path.isAbsolute(ctx.cwd) || !path.isAbsolute(ctx.writeRoot))) {
|
|
28
|
+
throw new WorkflowError('INVALID_ARGUMENT', 'executionContext requires absolute cwd/writeRoot and expectedBranch.');
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Resolve existing ancestors as well as non-existing destinations; do not read through symlinks.
|
|
32
|
+
function outsideRoot(root, file) {
|
|
33
|
+
let ancestor = path.join(root, file);
|
|
34
|
+
while (!existsSync(ancestor)) {
|
|
35
|
+
try {
|
|
36
|
+
if (lstatSync(ancestor).isSymbolicLink())
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
catch { /* missing path */ }
|
|
40
|
+
const parent = path.dirname(ancestor);
|
|
41
|
+
if (parent === ancestor)
|
|
42
|
+
return true;
|
|
43
|
+
ancestor = parent;
|
|
44
|
+
}
|
|
45
|
+
const relative = path.relative(root, realpathSync(ancestor));
|
|
46
|
+
return relative === '..' || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative);
|
|
47
|
+
}
|
|
48
|
+
/** Explanation only: never issues a credential, writes state, or grants permission to apply a patch. */
|
|
49
|
+
export function explainChange(input, repository, task, next) {
|
|
50
|
+
validate(input);
|
|
51
|
+
const identity = resolveRepositoryIdentity(repository);
|
|
52
|
+
const root = realpathSync(identity.repositoryRoot);
|
|
53
|
+
const blockers = [];
|
|
54
|
+
const add = (layer, code, resolution) => blockers.push({ layer, code, resolution });
|
|
55
|
+
const dirty = [...new Set([
|
|
56
|
+
...runGit(root, ['diff', 'HEAD', '--name-only', '-z']).split('\0'),
|
|
57
|
+
...runGit(root, ['ls-files', '--others', '--exclude-standard', '-z']).split('\0'),
|
|
58
|
+
].filter(Boolean))].sort();
|
|
59
|
+
const paths = [...new Set([...input.paths, ...dirty])].sort();
|
|
60
|
+
const escaped = paths.filter(p => outsideRoot(root, p));
|
|
61
|
+
if (escaped.length)
|
|
62
|
+
add('execution-context', 'WRITE_PATH_ESCAPES_CHECKOUT', 'Resolve the symlink or target mismatch before proposing a write.');
|
|
63
|
+
let contextState = 'not-supplied';
|
|
64
|
+
if (input.executionContext) {
|
|
65
|
+
contextState = 'matched';
|
|
66
|
+
try {
|
|
67
|
+
const ctx = input.executionContext;
|
|
68
|
+
const observed = resolveRepositoryIdentity(ctx.cwd);
|
|
69
|
+
if (realpathSync(observed.repositoryRoot) !== root || realpathSync(ctx.writeRoot) !== root
|
|
70
|
+
|| currentBranch(root) !== ctx.expectedBranch
|
|
71
|
+
|| (task?.taskBranch !== null && task?.taskBranch !== undefined && ctx.expectedBranch !== task.taskBranch)) {
|
|
72
|
+
contextState = 'mismatch';
|
|
73
|
+
add('execution-context', 'EXECUTION_CONTEXT_MISMATCH', 'Reconcile the existing Worker checkout and fresh Task branch; do not retry in another chat or silently change the target.');
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
contextState = 'unverified';
|
|
78
|
+
add('execution-context', 'EXECUTION_CONTEXT_UNVERIFIED', 'Obtain a readable current checkout observation.');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
if (input.externalDecision === 'denied')
|
|
82
|
+
add('external-approval', 'EXTERNAL_OPERATION_DENIED', 'Preserve the denial. Prepare safe evidence or obtain the exact external authorization; a Workflow grant does not override it.');
|
|
83
|
+
if (input.expectedRevision !== undefined && input.expectedRevision !== task?.revision
|
|
84
|
+
|| input.expectedPlanHash !== undefined && input.expectedPlanHash !== task?.planHash) {
|
|
85
|
+
add('integrity', 'STALE_CHANGE_BINDING', 'Refresh the proposal from the current Task revision and Plan.');
|
|
86
|
+
}
|
|
87
|
+
const action = typeof next.action === 'string' ? next.action : 'blocked';
|
|
88
|
+
if (next.status === 'observation-blocked' || next.status === 'repair-required') {
|
|
89
|
+
add('integrity', 'CORE_OBSERVATION_UNAVAILABLE', 'Complete the exact Core observation/recovery route before changing work.');
|
|
90
|
+
}
|
|
91
|
+
const step = task?.steps.find(s => s.id === next.stepId)
|
|
92
|
+
?? task?.steps.find(s => s.status === 'in_progress' || s.status === 'failed');
|
|
93
|
+
const outOfPlan = paths.filter(p => !step || !pathAllowed(p, step.allowedWrites) || pathAllowed(p, step.forbiddenScope));
|
|
94
|
+
const recovery = object(next.planIntegrityRecovery);
|
|
95
|
+
const supporting = recovery.state === 'eligible'
|
|
96
|
+
&& (action === 'task plan-integrity-recover' || next.blockedAction === 'task plan-integrity-recover')
|
|
97
|
+
&& recovery.boundedEffect === 'record-machine-derived-check-support-scope';
|
|
98
|
+
const evidence = object(recovery.evidence);
|
|
99
|
+
const scope = Array.isArray(evidence.scopeExtensions) ? evidence.scopeExtensions.filter((x) => typeof x === 'string') : [];
|
|
100
|
+
const bounded = supporting && outOfPlan.every(p => scope.includes(p));
|
|
101
|
+
let kind = 'implementation';
|
|
102
|
+
let decisionBasis = 'No automatic conclusion about semantic safety; follow the current Core route.';
|
|
103
|
+
if (input.intent === 'semantic-scope') {
|
|
104
|
+
kind = 'semantic-scope';
|
|
105
|
+
add('workflow', 'HUMAN_SEMANTIC_DECISION', 'Resolve the changed outcome or acceptance with the user through the scope-change route.');
|
|
106
|
+
}
|
|
107
|
+
else if (input.intent === 'membership' || next.auditedRemediation) {
|
|
108
|
+
kind = 'membership';
|
|
109
|
+
decisionBasis = 'Membership is separate from Step implementation. Use only the advertised bounded topology route or a separately confirmed scope change.';
|
|
110
|
+
}
|
|
111
|
+
else if (bounded) {
|
|
112
|
+
kind = 'bounded-plan-amendment';
|
|
113
|
+
decisionBasis = 'Core derived an exact check-support extension. Use its existing recovery; do not edit allowedWrites or grant authority manually.';
|
|
114
|
+
}
|
|
115
|
+
else if (/replan|corrective-yield|downstream-proof/.test(action) || recovery.boundedEffect === 'record-replan-required-decision') {
|
|
116
|
+
kind = 'corrective-plan';
|
|
117
|
+
decisionBasis = 'Core identified a Plan/recovery conflict; preserve historical evidence and the existing Task.';
|
|
118
|
+
}
|
|
119
|
+
else if (action === 'task context-refresh' || action === 'task knowledge-rebind') {
|
|
120
|
+
kind = 'context-refresh';
|
|
121
|
+
decisionBasis = 'Context refresh is independent of Plan correction and cannot acknowledge a Plan conflict.';
|
|
122
|
+
}
|
|
123
|
+
else if (outOfPlan.length) {
|
|
124
|
+
kind = 'plan-review';
|
|
125
|
+
add('workflow', 'UNPROVED_SCOPE_EXTENSION', 'Establish a Core-supported extension or revise the Plan. File count and user-declared intent are not safety evidence.');
|
|
126
|
+
}
|
|
127
|
+
const delegated = Array.isArray(next.delegatedApprovalOptions) && next.delegatedApprovalOptions.length > 0;
|
|
128
|
+
const derived = object(next.correctiveDerivedApproval).humanApprovalRequired === false;
|
|
129
|
+
const humanGate = !!next.requiredHumanGate || ['task authorize', 'task accept', 'milestone authorize', 'milestone accept', 'project-memory approve'].includes(action);
|
|
130
|
+
if (humanGate && !delegated && !derived)
|
|
131
|
+
add('workflow', 'CURRENT_HUMAN_GATE', 'Use the current exact human gate; this explanation issues no authority.');
|
|
132
|
+
const head = headCommit(root);
|
|
133
|
+
const binding = { projectId: identity.projectId, repositoryRoot: root, taskId: task?.id ?? null,
|
|
134
|
+
revision: task?.revision ?? null, planHash: task?.planHash ?? null, head,
|
|
135
|
+
proposedPaths: [...new Set(input.paths)].sort(), observedDirtyPaths: dirty, proposedPathBytesHash: escaped.length ? null : hashDirtyWorktree(root, paths),
|
|
136
|
+
requestHash: createHash('sha256').update(JSON.stringify(input)).digest('hex'), existingAction: action };
|
|
137
|
+
return { kind: 'change-explanation', version: 1, readOnly: true, authority: 'none', changeKind: kind,
|
|
138
|
+
decisionBasis, binding, proposalHash: createHash('sha256').update(JSON.stringify(binding)).digest('hex'),
|
|
139
|
+
executionContext: { state: contextState, externallyEnforced: false }, blockers,
|
|
140
|
+
existingRoute: { action, blockedByExplanation: blockers.length > 0, recheckNextBeforeMutation: true },
|
|
141
|
+
proposedPaths: paths, outsideCurrentStep: outOfPlan,
|
|
142
|
+
boundedAmendment: bounded && kind === 'bounded-plan-amendment' ? { route: 'task plan-integrity-recover', prerequisite: action === 'task plan-integrity-recover' ? null : action, scopeExtensions: scope, effect: recovery.boundedEffect } : null,
|
|
143
|
+
requiresUser: blockers.some(b => ['EXTERNAL_OPERATION_DENIED', 'HUMAN_SEMANTIC_DECISION', 'CURRENT_HUMAN_GATE'].includes(b.code)) ? true : null,
|
|
144
|
+
validationNeeded: ['Fresh status and next; current revision, Plan, HEAD and file bytes.',
|
|
145
|
+
'Current Worker checkout, branch and writer credential; external approval remains independent.',
|
|
146
|
+
'Preserve requirements, acceptance, checks and historical evidence; review the exact diff.'],
|
|
147
|
+
limitations: ['Not an apply command or proof of external permission.',
|
|
148
|
+
'Unspecified risks and blockers may remain. No inference of semantic safety from paths or diff size.'] };
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=change-explanation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"change-explanation.js","sourceRoot":"","sources":["../../src/change-explanation.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
declare const CLI_ACTIONS_LITERAL: {
|
|
8
8
|
readonly gateway: readonly ["handshake"];
|
|
9
|
+
readonly change: readonly ["explain"];
|
|
9
10
|
readonly update: readonly ["preflight", "pending-review-source-preflight", "pending-review-dependency-preflight", "pending-review-dependency-recover", "rescue-preflight", "dependency-provenance-preflight", "corrective-carryover-preflight", "dependency-provenance-recover", "historical-step-dependency-preflight", "historical-step-dependency-recover", "downstream-proof-dependency-preflight", "downstream-proof-dependency-recover", "downstream-proof-replan-update-preflight", "downstream-proof-replan-dependency-preflight", "downstream-proof-replan-dependency-recover", "plan-integrity-update-preflight", "plan-integrity-dependency-preflight", "plan-integrity-dependency-recover"];
|
|
10
11
|
readonly delegation: readonly ["prepare", "grant", "list", "show", "revoke"];
|
|
11
12
|
readonly 'project-memory': readonly ["scan", "show", "status", "approve", "reconcile"];
|
package/dist/src/cli-actions.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-actions.js","sourceRoot":"","sources":["../../src/cli-actions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG;IAC1B,OAAO,EAAE,CAAC,WAAW,CAAC;IACtB,MAAM,EAAE;QACN,WAAW;QACX,iCAAiC;QACjC,qCAAqC;QACrC,mCAAmC;QACnC,kBAAkB;QAClB,iCAAiC;QACjC,gCAAgC;QAChC,+BAA+B;QAC/B,sCAAsC;QACtC,oCAAoC;QACpC,uCAAuC;QACvC,qCAAqC;QACrC,0CAA0C;QAC1C,8CAA8C;QAC9C,4CAA4C;QAC5C,iCAAiC;QACjC,qCAAqC;QACrC,mCAAmC;KACpC;IACD,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;IAC1D,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;IACpE,KAAK,EAAE,CAAC,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;IACxD,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,UAAU,CAAC;IACnE,SAAS,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC;IACrD,IAAI,EAAE;QACJ,MAAM;QACN,yBAAyB;QACzB,qBAAqB;QACrB,UAAU;QACV,kBAAkB;QAClB,iBAAiB;QACjB,WAAW;QACX,iBAAiB;QACjB,OAAO;QACP,KAAK;QACL,eAAe;QACf,QAAQ;QACR,eAAe;QACf,eAAe;QACf,eAAe;QACf,sBAAsB;QACtB,aAAa;QACb,oBAAoB;QACpB,oBAAoB;QACpB,6BAA6B;QAC7B,0BAA0B;QAC1B,wBAAwB;QACxB,0BAA0B;QAC1B,iCAAiC;QACjC,uBAAuB;QACvB,qBAAqB;QACrB,qBAAqB;QACrB,kBAAkB;QAClB,0BAA0B;QAC1B,2BAA2B;QAC3B,2BAA2B;QAC3B,2BAA2B;QAC3B,2BAA2B;QAC3B,sCAAsC;QACtC,oCAAoC;QACpC,SAAS;QACT,iBAAiB;QACjB,iBAAiB;QACjB,cAAc;QACd,OAAO;QACP,2BAA2B;QAC3B,UAAU;QACV,iBAAiB;QACjB,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,OAAO;QACP,eAAe;KAChB;IACD,SAAS,EAAE;QACT,SAAS;QACT,MAAM;QACN,UAAU;QACV,UAAU;QACV,yBAAyB;QACzB,sBAAsB;QACtB,oBAAoB;QACpB,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;QACjB,WAAW;QACX,UAAU;QACV,QAAQ;QACR,QAAQ;KACT;IACD,KAAK,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEX,MAAM,CAAC,MAAM,WAAW,GAAgD,mBAAmB,CAAC;AAO5F,MAAM,UAAU,YAAY,CAAC,OAAe;IAC1C,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,IAAI,CAAC;IACpF,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,SAAS,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAChC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAY,CAAC;IACpD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAkC,CAAC;IACrE,OAAO,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;AAC9C,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli-actions.js","sourceRoot":"","sources":["../../src/cli-actions.ts"],"names":[],"mappings":"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"}
|