greprag 5.59.1 → 5.59.3

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 (49) hide show
  1. package/dist/codex-chip-hooks.js +17 -2
  2. package/dist/codex-chip-hooks.js.map +1 -1
  3. package/dist/commands/codex-chip/cleanup-command.d.ts +1 -0
  4. package/dist/commands/codex-chip/cleanup-command.js +96 -0
  5. package/dist/commands/codex-chip/cleanup-command.js.map +1 -0
  6. package/dist/commands/codex-chip/command.js +44 -36
  7. package/dist/commands/codex-chip/command.js.map +1 -1
  8. package/dist/commands/codex-chip/git.js +8 -0
  9. package/dist/commands/codex-chip/git.js.map +1 -1
  10. package/dist/commands/codex-chip/goal-command.d.ts +1 -0
  11. package/dist/commands/codex-chip/goal-command.js +82 -0
  12. package/dist/commands/codex-chip/goal-command.js.map +1 -0
  13. package/dist/commands/codex-chip/goals.d.ts +51 -0
  14. package/dist/commands/codex-chip/goals.js +252 -0
  15. package/dist/commands/codex-chip/goals.js.map +1 -0
  16. package/dist/commands/codex-chip/inbox.d.ts +1 -1
  17. package/dist/commands/codex-chip/inbox.js +5 -11
  18. package/dist/commands/codex-chip/inbox.js.map +1 -1
  19. package/dist/commands/codex-chip/model.d.ts +21 -2
  20. package/dist/commands/codex-chip/model.js +9 -1
  21. package/dist/commands/codex-chip/model.js.map +1 -1
  22. package/dist/commands/codex-chip/naming.d.ts +8 -0
  23. package/dist/commands/codex-chip/naming.js +39 -0
  24. package/dist/commands/codex-chip/naming.js.map +1 -0
  25. package/dist/commands/codex-chip/native.d.ts +10 -7
  26. package/dist/commands/codex-chip/native.js +152 -61
  27. package/dist/commands/codex-chip/native.js.map +1 -1
  28. package/dist/commands/codex-chip/prompt.js +14 -6
  29. package/dist/commands/codex-chip/prompt.js.map +1 -1
  30. package/dist/commands/codex-chip/resume-command.d.ts +7 -0
  31. package/dist/commands/codex-chip/resume-command.js +105 -0
  32. package/dist/commands/codex-chip/resume-command.js.map +1 -0
  33. package/dist/commands/codex-chip/store.d.ts +1 -0
  34. package/dist/commands/codex-chip/store.js +16 -0
  35. package/dist/commands/codex-chip/store.js.map +1 -1
  36. package/dist/commands/codex-chip/worker.js +16 -1
  37. package/dist/commands/codex-chip/worker.js.map +1 -1
  38. package/dist/commands/init.js +1 -0
  39. package/dist/commands/init.js.map +1 -1
  40. package/dist/commands/load-primer-reminder.js +2 -2
  41. package/dist/commands/load-primer-reminder.js.map +1 -1
  42. package/dist/hook.js +3 -1
  43. package/dist/hook.js.map +1 -1
  44. package/dist/opencode-plugin.bundle.js +2 -2
  45. package/package.json +3 -2
  46. package/scripts/verify-publish.cjs +12 -0
  47. package/skill/greprag/docs/codex-chip.md +7 -0
  48. package/skill/templates/chip-leader.md +7 -0
  49. package/skill/templates/codex-chip-spawn.md +5 -0
@@ -1,6 +1,6 @@
1
1
  import { ChipManifest } from './model';
2
2
  export interface NativeChipHandoff {
3
- protocol: 'greprag-codex-native-v3';
3
+ protocol: 'greprag-codex-native-v3' | 'greprag-codex-native-v4';
4
4
  chipId: string;
5
5
  expectedBaseSha: string;
6
6
  title: string;
@@ -17,16 +17,18 @@ export interface NativeChipHandoff {
17
17
  };
18
18
  };
19
19
  prompt: string;
20
+ model?: string;
21
+ thinking?: string;
20
22
  };
21
- bootstrapAck: string;
23
+ bootstrapAck?: string;
22
24
  titleVerification: {
23
25
  maxAttempts: 3;
24
- settleBeforeRename: true;
25
26
  exactTitle: string;
26
27
  consecutiveReadBacks: 2;
27
28
  retryDelayMs: 750;
29
+ settleBeforeRename?: true;
28
30
  };
29
- dispatchSequence: readonly ['create', 'settle', 'rename', 'verify', 'attach', 'in-flight', 'mission'];
31
+ dispatchSequence: readonly string[];
30
32
  verifyTitleCommand?: string;
31
33
  attachCommand?: string;
32
34
  sendRequest?: {
@@ -37,8 +39,8 @@ export interface NativeChipHandoff {
37
39
  };
38
40
  instructions: string[];
39
41
  }
40
- /** Parent-side Desktop adapter primitive. Call only after the bootstrap turn
41
- * settles; two consecutive read-backs catch the observed auto-title race. */
42
+ /** Parent-side Desktop adapter primitive. Set early, then correct the observed
43
+ * auto-title race with two consecutive read-backs. */
42
44
  export declare function verifyDesktopTitle(expected: string, surface: {
43
45
  setTitle(title: string): Promise<void>;
44
46
  readTitle(): Promise<string>;
@@ -46,16 +48,17 @@ export declare function verifyDesktopTitle(expected: string, surface: {
46
48
  }, maxAttempts?: number): Promise<number>;
47
49
  export declare function nativeHandoff(manifest: ChipManifest): NativeChipHandoff;
48
50
  export declare function printNativeHandoff(manifest: ChipManifest, json?: boolean): void;
51
+ export declare function provisionNativeBindingFromPrompt(prompt: string, cwdParam: string, sessionId: string, model?: string): ChipManifest | null;
49
52
  export declare function verifyNativeBinding(manifest: ChipManifest, params: {
50
53
  clientThreadId: string;
51
54
  threadId: string;
52
55
  cwd: string;
53
56
  title: string;
54
- bootstrapAck: string;
55
57
  projectId: string;
56
58
  baseSha: string;
57
59
  sandbox: string;
58
60
  titleReadbacks: number;
61
+ bootstrapAck?: string;
59
62
  }): ChipManifest;
60
63
  export declare function attachNativeCheckout(manifest: ChipManifest): ChipManifest;
61
64
  export declare function assertNoLiveNativeMonitor(manifest: ChipManifest, ownerPid?: number): void;
@@ -36,6 +36,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.verifyDesktopTitle = verifyDesktopTitle;
37
37
  exports.nativeHandoff = nativeHandoff;
38
38
  exports.printNativeHandoff = printNativeHandoff;
39
+ exports.provisionNativeBindingFromPrompt = provisionNativeBindingFromPrompt;
39
40
  exports.verifyNativeBinding = verifyNativeBinding;
40
41
  exports.attachNativeCheckout = attachNativeCheckout;
41
42
  exports.assertNoLiveNativeMonitor = assertNoLiveNativeMonitor;
@@ -50,8 +51,13 @@ const store_1 = require("./store");
50
51
  const inbox_1 = require("./inbox");
51
52
  const git_1 = require("./git");
52
53
  const selection_1 = require("./selection");
53
- /** Parent-side Desktop adapter primitive. Call only after the bootstrap turn
54
- * settles; two consecutive read-backs catch the observed auto-title race. */
54
+ function expectedNativeTitle(manifest) {
55
+ if (manifest.version >= 2)
56
+ return (0, model_1.chipTitle)(manifest);
57
+ return `${manifest.codex.role === 'leader' ? 'LEAD' : 'Chip'}: ${manifest.name.replace(/^(?:Chip|LEAD):\s*/i, '')}`;
58
+ }
59
+ /** Parent-side Desktop adapter primitive. Set early, then correct the observed
60
+ * auto-title race with two consecutive read-backs. */
55
61
  async function verifyDesktopTitle(expected, surface, maxAttempts = 3) {
56
62
  for (let attempt = 1; attempt <= maxAttempts; attempt++) {
57
63
  await surface.setTitle(expected);
@@ -74,15 +80,35 @@ function nativeHandoff(manifest) {
74
80
  if (!manifest.codex.projectId)
75
81
  throw new Error('Native handoff is missing its Codex project id.');
76
82
  const threadId = manifest.codex.threadId;
77
- const nonce = manifest.codex.bindingNonce;
78
- if (!nonce)
79
- throw new Error('Native handoff is missing its binding nonce.');
80
- const title = `${manifest.codex.role === 'leader' ? 'LEAD' : 'Chip'}: ${manifest.name.replace(/^(?:Chip|LEAD):\s*/i, '')}`;
81
- const bootstrapAck = `BOOTSTRAP_READY:${nonce}`;
83
+ const title = expectedNativeTitle(manifest);
82
84
  const verified = Boolean(manifest.codex.titleVerifiedAt);
83
85
  const attached = manifest.state === 'running' && Boolean(threadId);
86
+ if (manifest.version < 2) {
87
+ const nonce = manifest.codex.bindingNonce;
88
+ if (!nonce)
89
+ throw new Error('Legacy native handoff is missing its binding nonce.');
90
+ const bootstrapAck = `BOOTSTRAP_READY:${nonce}`;
91
+ return {
92
+ protocol: 'greprag-codex-native-v3', chipId: manifest.id, expectedBaseSha: manifest.parent.baseSha, title,
93
+ createRequest: {
94
+ target: { type: 'project', projectId: manifest.codex.projectId,
95
+ environment: { type: 'worktree', startingState: { type: 'branch', branchName: manifest.worktree.branch } } },
96
+ prompt: `Bootstrap Codex chip ${manifest.id.slice(0, 8)}. Reply exactly ${bootstrapAck} and wait. Do not modify files yet.`,
97
+ },
98
+ bootstrapAck,
99
+ titleVerification: { maxAttempts: 3, settleBeforeRename: true, exactTitle: title, consecutiveReadBacks: 2, retryDelayMs: 750 },
100
+ dispatchSequence: ['create', 'settle', 'rename', 'verify', 'attach', 'in-flight', 'mission'],
101
+ verifyTitleCommand: !verified
102
+ ? `${cli} codex chip verify-title ${manifest.id} --client-thread <clientThreadId> --thread <threadId> --cwd "<actual-native-cwd>" --title ${JSON.stringify(title)} --title-readbacks 2 --bootstrap-ack ${bootstrapAck} --project-id ${manifest.codex.projectId} --base-sha ${manifest.parent.baseSha} --sandbox workspace-write`
103
+ : undefined,
104
+ attachCommand: verified && !attached ? `${cli} codex chip attach ${manifest.id}` : undefined,
105
+ sendRequest: attached ? { threadId: threadId, prompt: (0, prompt_1.chipPrompt)(manifest, cli),
106
+ model: manifest.codex.model || 'gpt-5.6-luna', thinking: (0, selection_1.resolveDesktopThinking)(manifest.codex.effort) } : undefined,
107
+ instructions: ['Legacy v1 recovery handoff: complete its recorded bootstrap/title/attach/send sequence; do not convert it in place.'],
108
+ };
109
+ }
84
110
  return {
85
- protocol: 'greprag-codex-native-v3',
111
+ protocol: 'greprag-codex-native-v4',
86
112
  chipId: manifest.id,
87
113
  expectedBaseSha: manifest.parent.baseSha,
88
114
  title,
@@ -91,34 +117,30 @@ function nativeHandoff(manifest) {
91
117
  type: 'project', projectId: manifest.codex.projectId,
92
118
  environment: { type: 'worktree', startingState: { type: 'branch', branchName: manifest.worktree.branch } },
93
119
  },
94
- prompt: `Bootstrap Codex chip ${manifest.id.slice(0, 8)}. Reply exactly ${bootstrapAck} and wait. Do not modify files yet.`,
120
+ prompt: (0, prompt_1.chipPrompt)(manifest, cli),
121
+ model: manifest.codex.model || 'gpt-5.6-luna',
122
+ thinking: (0, selection_1.resolveDesktopThinking)(manifest.codex.effort),
95
123
  },
96
- bootstrapAck,
97
124
  titleVerification: {
98
- maxAttempts: 3, settleBeforeRename: true, exactTitle: title, consecutiveReadBacks: 2, retryDelayMs: 750,
125
+ maxAttempts: 3, exactTitle: title, consecutiveReadBacks: 2, retryDelayMs: 750,
99
126
  },
100
- dispatchSequence: ['create', 'settle', 'rename', 'verify', 'attach', 'in-flight', 'mission'],
127
+ dispatchSequence: ['create-mission', 'resolve', 'rename', 'verify', 'attach', 'in-flight', 'monitor'],
101
128
  verifyTitleCommand: !verified
102
- ? `${cli} codex chip verify-title ${manifest.id} --client-thread <clientThreadId> --thread <threadId> --cwd <actual-native-cwd> --title ${JSON.stringify(title)} --title-readbacks 2 --bootstrap-ack ${bootstrapAck} --project-id ${manifest.codex.projectId} --base-sha ${manifest.parent.baseSha} --sandbox workspace-write`
129
+ ? `${cli} codex chip verify-title ${manifest.id} --client-thread <clientThreadId> --thread <threadId> --cwd "<actual-native-cwd>" --title-readbacks 2 --project-id ${manifest.codex.projectId} --base-sha ${manifest.parent.baseSha} --sandbox workspace-write`
103
130
  : undefined,
104
131
  attachCommand: verified && !attached ? `${cli} codex chip attach ${manifest.id}` : undefined,
105
- sendRequest: attached ? {
106
- threadId: threadId, prompt: (0, prompt_1.chipPrompt)(manifest, cli),
107
- model: manifest.codex.model || 'gpt-5.6-luna',
108
- thinking: (0, selection_1.resolveDesktopThinking)(manifest.codex.effort),
109
- } : undefined,
110
132
  instructions: attached ? [
111
- 'Call send_message_to_thread with sendRequest. Model/thinking are applied here because create_thread rejects high/xhigh with worktree startingState.',
133
+ 'The mission was delivered exactly once by createRequest. Do not send it again.',
112
134
  'The attached monitor validates receipts in the actual app-owned checkout.',
113
135
  ] : verified ? [
114
136
  'Run attachCommand. It installs the marker and emits IN-FLIGHT only after durable title verification.',
115
- 'Rerun this handoff after attach, then deliver sendRequest as the mission. Do not send the mission before IN-FLIGHT succeeds.',
137
+ 'Rerun this handoff after attach only to inspect state; never replay the mission.',
116
138
  ] : [
117
- 'Call create_thread with createRequest exactly. It intentionally omits title/model/thinking and returns clientThreadId while worktree setup runs.',
118
- 'Wait for the bootstrap turn to settle and verify its exact bootstrapAck. Resolve threadId and native cwd with list_threads/read_thread.',
119
- 'Call set_thread_title with titleVerification.exactTitle, then read_thread back twice with retryDelayMs between reads. Retry at most maxAttempts if auto-title overwrites it.',
139
+ 'Call create_thread with createRequest exactly. It contains the real mission, model, thinking, and native worktree; this is the only mission turn.',
140
+ 'The UserPromptSubmit chip hook provisionally binds the task/cwd before tool use so leases remain enforced while setup continues.',
141
+ 'Resolve threadId and native cwd immediately. Call set_thread_title as soon as the thread appears, then read it back twice; retry only if auto-title overwrites it.',
120
142
  'Only after read_thread returns the exact title, run verifyTitleCommand. Fail loudly if the title is not durable.',
121
- 'Rerun this handoff to obtain attachCommand. No attach, IN-FLIGHT, or mission is allowed before verification.',
143
+ 'Rerun this handoff to obtain attachCommand. Attach emits IN-FLIGHT and starts the monitor; never send a second assignment.',
122
144
  ],
123
145
  };
124
146
  }
@@ -130,13 +152,76 @@ function printNativeHandoff(manifest, json = false) {
130
152
  console.log(` title: ${handoff.title}`);
131
153
  console.log(` project: ${handoff.createRequest.target.projectId}`);
132
154
  console.log(` branch: ${handoff.createRequest.target.environment.startingState.branchName}`);
133
- console.log(` action: ${handoff.sendRequest ? 'send the mission' : handoff.attachCommand ? 'attach and emit IN-FLIGHT' : 'create, settle, durably title, then verify'}.`);
155
+ console.log(` action: ${handoff.attachCommand ? 'attach and emit IN-FLIGHT' : 'create the mission, bind, and durably title'}.`);
134
156
  if (handoff.verifyTitleCommand)
135
157
  console.log(` verify: ${handoff.verifyTitleCommand}`);
136
158
  if (handoff.attachCommand)
137
159
  console.log(` attach: ${handoff.attachCommand}`);
138
160
  console.log(` payload: greprag codex chip handoff ${manifest.id} --json`);
139
161
  }
162
+ function validateNativeCheckout(manifest, cwdParam) {
163
+ const cwd = fs.realpathSync(path.resolve(cwdParam));
164
+ if (!fs.existsSync(cwd) || (0, git_1.gitRoot)(cwd) !== cwd)
165
+ throw new Error('Native cwd must be an existing Git checkout root.');
166
+ const codexHome = fs.realpathSync(path.resolve(process.env.CODEX_HOME || path.join(os.homedir(), '.codex')));
167
+ const worktreeRoot = path.join(codexHome, 'worktrees');
168
+ const relativeToCodex = path.relative(worktreeRoot, cwd);
169
+ if (!relativeToCodex || relativeToCodex.startsWith('..') || path.isAbsolute(relativeToCodex)) {
170
+ throw new Error(`Native cwd must be beneath the Codex worktree root ${worktreeRoot}.`);
171
+ }
172
+ if (cwd.toLowerCase() === path.resolve(manifest.parent.root).toLowerCase() ||
173
+ cwd.toLowerCase() === path.resolve(manifest.worktree.path).toLowerCase()) {
174
+ throw new Error('Native cwd must be the distinct Codex-managed execution checkout, not the parent or staging path.');
175
+ }
176
+ if ((0, git_1.headCommit)(cwd) !== manifest.parent.baseSha) {
177
+ throw new Error('Native checkout HEAD does not match the recorded starting commit.');
178
+ }
179
+ const branch = (0, git_1.branchName)(cwd);
180
+ if (branch && branch !== manifest.worktree.branch) {
181
+ throw new Error(`Native checkout branch ${branch} does not match ${manifest.worktree.branch}.`);
182
+ }
183
+ return cwd;
184
+ }
185
+ function provisionNativeBindingFromPrompt(prompt, cwdParam, sessionId, model) {
186
+ const match = /durable manifest is ([0-9a-f-]{36})/i.exec(prompt);
187
+ if (!match)
188
+ return null;
189
+ const candidate = (0, store_1.readManifest)(match[1]);
190
+ if (!candidate || candidate.codex.runtime !== 'native')
191
+ return null;
192
+ const proof = /native binding proof is ([0-9a-f]{32})/i.exec(prompt)?.[1];
193
+ if (candidate.version >= 2 && (!proof || proof !== candidate.codex.bindingNonce)) {
194
+ throw new Error('Native initial mission does not contain the manifest binding proof.');
195
+ }
196
+ return (0, store_1.withProjectChipLock)(candidate.project.id, () => {
197
+ const manifest = (0, store_1.readManifest)(candidate.id);
198
+ if (!manifest || manifest.codex.runtime !== 'native')
199
+ return null;
200
+ if (manifest.state !== 'awaiting-native')
201
+ return manifest;
202
+ if (!/^[0-9a-f-]{36}$/i.test(sessionId) || sessionId === manifest.parent.sessionId) {
203
+ throw new Error('Native provisional binding requires a distinct resolved child task id.');
204
+ }
205
+ if (model && manifest.codex.model && model !== manifest.codex.model) {
206
+ throw new Error(`Native task model ${model} does not match parent selection ${manifest.codex.model}.`);
207
+ }
208
+ const cwd = validateNativeCheckout(manifest, cwdParam);
209
+ if (manifest.codex.provisionalBoundAt) {
210
+ if (manifest.codex.threadId !== sessionId || path.resolve(manifest.codex.nativeCwd || '') !== path.resolve(cwd)) {
211
+ throw new Error('Native provisional binding is already claimed by a different child task.');
212
+ }
213
+ return manifest;
214
+ }
215
+ (0, git_1.writeChipMarker)(cwd, {
216
+ id: manifest.id, branch: manifest.worktree.branch, baseSha: manifest.parent.baseSha,
217
+ mode: manifest.mode, owns: manifest.owns, detachedAllowed: true,
218
+ });
219
+ return (0, store_1.updateManifest)(manifest.id, { codex: {
220
+ ...manifest.codex, threadId: sessionId, nativeCwd: cwd, sandbox: 'workspace-write',
221
+ provisionalBoundAt: new Date().toISOString(),
222
+ } });
223
+ });
224
+ }
140
225
  function verifyNativeBinding(manifest, params) {
141
226
  if (manifest.codex.runtime !== 'native')
142
227
  throw new Error('Only a native-runtime chip can be attached.');
@@ -152,38 +237,27 @@ function verifyNativeBinding(manifest, params) {
152
237
  params.threadId.toLowerCase() === manifest.parent.sessionId?.toLowerCase()) {
153
238
  throw new Error('Native binding must identify a distinct resolved child task.');
154
239
  }
155
- const expectedTitle = `${manifest.codex.role === 'leader' ? 'LEAD' : 'Chip'}: ${manifest.name.replace(/^(?:Chip|LEAD):\s*/i, '')}`;
156
- const expectedAck = `BOOTSTRAP_READY:${manifest.codex.bindingNonce}`;
240
+ const expectedTitle = expectedNativeTitle(manifest);
157
241
  if (params.title !== expectedTitle)
158
242
  throw new Error(`Native title was not durably verified as ${expectedTitle}.`);
159
243
  if (params.titleReadbacks !== 2)
160
244
  throw new Error('Native title verification requires two consecutive read_thread confirmations.');
161
- if (params.bootstrapAck !== expectedAck)
162
- throw new Error('Native bootstrap acknowledgement does not bind this task.');
245
+ if (manifest.version < 2 && params.bootstrapAck !== `BOOTSTRAP_READY:${manifest.codex.bindingNonce}`) {
246
+ throw new Error('Native bootstrap acknowledgement does not bind this legacy task.');
247
+ }
248
+ if (manifest.version >= 2 && (!manifest.codex.provisionalBoundAt ||
249
+ !manifest.codex.threadId || !manifest.codex.nativeCwd)) {
250
+ throw new Error('Native v4 title verification requires the initial mission hook to provisionally bind the task first.');
251
+ }
163
252
  if (params.projectId !== manifest.codex.projectId || params.baseSha !== manifest.parent.baseSha) {
164
253
  throw new Error('Native project/base attestation does not match the prepared task.');
165
254
  }
166
255
  if (params.sandbox !== 'workspace-write')
167
256
  throw new Error('Native task must attest the workspace-write sandbox.');
168
- const cwd = fs.realpathSync(path.resolve(params.cwd));
169
- if (!fs.existsSync(cwd) || (0, git_1.gitRoot)(cwd) !== cwd)
170
- throw new Error('Native cwd must be an existing Git checkout root.');
171
- const codexHome = fs.realpathSync(path.resolve(process.env.CODEX_HOME || path.join(os.homedir(), '.codex')));
172
- const worktreeRoot = path.join(codexHome, 'worktrees');
173
- const relativeToCodex = path.relative(worktreeRoot, cwd);
174
- if (!relativeToCodex || relativeToCodex.startsWith('..') || path.isAbsolute(relativeToCodex)) {
175
- throw new Error(`Native cwd must be beneath the Codex worktree root ${worktreeRoot}.`);
176
- }
177
- if (cwd.toLowerCase() === path.resolve(manifest.parent.root).toLowerCase() ||
178
- cwd.toLowerCase() === path.resolve(manifest.worktree.path).toLowerCase()) {
179
- throw new Error('Native cwd must be the distinct Codex-managed execution checkout, not the parent or staging path.');
180
- }
181
- if ((0, git_1.headCommit)(cwd) !== manifest.parent.baseSha) {
182
- throw new Error('Native checkout HEAD does not match the recorded starting commit.');
183
- }
184
- const branch = (0, git_1.branchName)(cwd);
185
- if (branch && branch !== manifest.worktree.branch) {
186
- throw new Error(`Native checkout branch ${branch} does not match ${manifest.worktree.branch}.`);
257
+ const cwd = validateNativeCheckout(manifest, params.cwd);
258
+ if (manifest.codex.threadId && manifest.codex.threadId !== params.threadId ||
259
+ manifest.codex.nativeCwd && path.resolve(manifest.codex.nativeCwd) !== path.resolve(cwd)) {
260
+ throw new Error('Native title verification does not match the provisional child binding.');
187
261
  }
188
262
  return (0, store_1.updateManifest)(manifest.id, {
189
263
  codex: {
@@ -191,7 +265,6 @@ function verifyNativeBinding(manifest, params) {
191
265
  clientThreadId: params.clientThreadId,
192
266
  threadId: params.threadId,
193
267
  nativeCwd: cwd,
194
- bootstrapAck: params.bootstrapAck,
195
268
  verifiedTitle: params.title,
196
269
  titleReadbacks: params.titleReadbacks,
197
270
  titleVerifiedAt: new Date().toISOString(),
@@ -200,19 +273,22 @@ function verifyNativeBinding(manifest, params) {
200
273
  });
201
274
  }
202
275
  function attachNativeCheckout(manifest) {
203
- if (manifest.state !== 'awaiting-native' || !manifest.codex.titleVerifiedAt ||
204
- !manifest.codex.threadId || !manifest.codex.clientThreadId || !manifest.codex.nativeCwd) {
205
- throw new Error('Native attach requires a durably verified title and complete native binding.');
206
- }
207
- if (manifest.codex.titleReadbacks !== 2 ||
208
- manifest.codex.verifiedTitle !== `${manifest.codex.role === 'leader' ? 'LEAD' : 'Chip'}: ${manifest.name.replace(/^(?:Chip|LEAD):\s*/i, '')}`) {
209
- throw new Error('Native verified title no longer matches the chip role/name.');
210
- }
211
- (0, git_1.writeChipMarker)(manifest.codex.nativeCwd, {
212
- id: manifest.id, branch: manifest.worktree.branch, baseSha: manifest.parent.baseSha,
213
- mode: manifest.mode, owns: manifest.owns, detachedAllowed: true,
276
+ return (0, store_1.withProjectChipLock)(manifest.project.id, () => {
277
+ const current = (0, store_1.readManifest)(manifest.id) || manifest;
278
+ if (current.state !== 'awaiting-native' || !current.codex.titleVerifiedAt ||
279
+ !current.codex.threadId || !current.codex.clientThreadId || !current.codex.nativeCwd) {
280
+ throw new Error('Native attach requires a durably verified title and complete native binding.');
281
+ }
282
+ if (current.codex.titleReadbacks !== 2 ||
283
+ current.codex.verifiedTitle !== expectedNativeTitle(current)) {
284
+ throw new Error('Native verified title no longer matches the chip role/name.');
285
+ }
286
+ (0, git_1.writeChipMarker)(current.codex.nativeCwd, {
287
+ id: current.id, branch: current.worktree.branch, baseSha: current.parent.baseSha,
288
+ mode: current.mode, owns: current.owns, detachedAllowed: true,
289
+ });
290
+ return (0, store_1.updateManifest)(current.id, { state: 'running', error: undefined });
214
291
  });
215
- return (0, store_1.updateManifest)(manifest.id, { state: 'running', error: undefined });
216
292
  }
217
293
  function assertNoLiveNativeMonitor(manifest, ownerPid) {
218
294
  const current = (0, store_1.readManifest)(manifest.id) || manifest;
@@ -255,6 +331,14 @@ async function runNativeMonitor(id, pollMs = 2_000) {
255
331
  await (0, inbox_1.sendChipEvent)(manifest, manifest.parent.sessionId, { kind: 'failed', summary: message }, manifest.codex.threadId);
256
332
  break;
257
333
  }
334
+ const resumeDeadline = Date.parse(manifest.codex.resume?.deadlineAt || '');
335
+ if (manifest.codex.resume && !manifest.codex.resume.acknowledgedAt &&
336
+ Number.isFinite(resumeDeadline) && Date.now() >= resumeDeadline) {
337
+ const message = 'Resume delivery was not acknowledged by the interrupted chip within two minutes.';
338
+ manifest = (0, store_1.updateManifest)(id, { state: 'blocked', error: message });
339
+ await (0, inbox_1.sendChipEvent)(manifest, manifest.parent.sessionId, { kind: 'blocked', summary: message }, manifest.codex.threadId);
340
+ break;
341
+ }
258
342
  (0, store_1.updateManifest)(id, { worker: { ...manifest.worker, pid: process.pid, heartbeatAt: new Date().toISOString() } });
259
343
  const receipt = await (0, worker_1.processChipReceipt)(id);
260
344
  if (receipt && ['ready', 'blocked'].includes(receipt.state))
@@ -267,6 +351,13 @@ async function runNativeMonitor(id, pollMs = 2_000) {
267
351
  const current = (0, store_1.readManifest)(id);
268
352
  if (current?.state === 'reported')
269
353
  throw err;
354
+ if (current?.codex.resume && !current.codex.resume.acknowledgedAt) {
355
+ (0, store_1.updateManifest)(id, {
356
+ state: 'blocked',
357
+ error: `Resume breakthrough delivery failed and remains retryable: ${message}`,
358
+ });
359
+ return;
360
+ }
270
361
  manifest = (0, store_1.updateManifest)(id, { state: 'failed', error: message });
271
362
  await (0, inbox_1.sendChipEvent)(manifest, manifest.parent.sessionId, { kind: 'failed', summary: message }, manifest.codex.threadId);
272
363
  throw err;
@@ -1 +1 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/commands/codex-chip/native.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/commands/codex-chip/native.ts"],"names":[],"mappings":"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"}
@@ -2,19 +2,27 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.chipPrompt = chipPrompt;
4
4
  const model_1 = require("./model");
5
+ const goals_1 = require("./goals");
5
6
  function chipPrompt(manifest, cliCommand = 'greprag') {
6
- const executionPath = (0, model_1.chipExecutionPath)(manifest);
7
+ const executionPath = manifest.codex.runtime === 'native' && !manifest.codex.nativeCwd
8
+ ? 'the Codex-provided native worktree created for this task (the initial mission hook records its actual path before tool use)'
9
+ : (0, model_1.chipExecutionPath)(manifest);
7
10
  const ownership = manifest.mode === 'read'
8
11
  ? 'This is a read-only chip. Do not modify files.'
9
12
  : `You exclusively own these repository paths:\n${manifest.owns.map(v => `- ${v}`).join('\n')}`;
13
+ const goal = manifest.goalId ? (0, goals_1.readMissionGoal)(manifest.goalId) : null;
14
+ const criteria = goal?.criteria.filter(item => (manifest.covers || []).includes(item.id)) || [];
15
+ const evidenceFlags = criteria.map(item => ` --evidence "${item.id}:<concrete proof>"`).join('');
16
+ const goalContract = goal ? `\nParent mission goal (${goal.id}):\n- Objective: ${goal.objective}\n- Final state: ${goal.finalState}\n- This chip covers:\n${criteria.map(item => ` - ${item.id}: ${item.text}`).join('\n')}\n- Report concrete evidence against every covered criterion. The parent alone accepts the mission.\n` : '';
10
17
  const completion = manifest.mode === 'read'
11
- ? `Keep the checkout unchanged, then run:\n ${cliCommand} codex chip report ${manifest.id} --summary "<analysis result>" --check "read-only repository state verified"\nDo not stop before the report command succeeds.`
12
- : `Commit the chip's changes, then run:\n ${cliCommand} codex chip report ${manifest.id} --summary "<result>" --check "<verification>"\nDo not stop before the report command succeeds.`;
18
+ ? `Keep the checkout unchanged, then run:\n ${cliCommand} codex chip report ${manifest.id} --summary "<analysis result>" --check "read-only repository state verified"${evidenceFlags}\nDo not stop before the report command succeeds.`
19
+ : `Commit the chip's changes, then run:\n ${cliCommand} codex chip report ${manifest.id} --summary "<result>" --check "<verification>"${evidenceFlags}\nDo not stop before the report command succeeds.`;
13
20
  const blocker = `If blocked, run:\n ${cliCommand} codex chip block ${manifest.id} --reason "<specific blocker>"`;
14
- return `You are Codex chip ${manifest.name} (${manifest.id.slice(0, 8)}), an isolated child task.
21
+ return `You are ${(0, model_1.chipTitle)(manifest)} (${manifest.id.slice(0, 8)}), an isolated child task.
15
22
 
16
23
  Assignment:
17
24
  ${manifest.task}
25
+ ${goalContract}
18
26
 
19
27
  Parent-owned model selection:
20
28
  - ${manifest.codex.model} / ${manifest.codex.effort} (${manifest.codex.profile})
@@ -36,9 +44,9 @@ Completion contract:
36
44
  3. ${blocker}
37
45
 
38
46
  Parent inbox contract:
39
- - The native attach step sends IN-FLIGHT to the recorded parent immediately; do not begin work before attachment.
47
+ - The initial mission hook binds this native checkout before tool use; attach sends IN-FLIGHT to the recorded parent as soon as the parent resolves the task. Never wait for or accept a second assignment.
40
48
  - Before ending, submit exactly one terminal report: DONE via \`report\`, or BLOCKED via \`block\`.
41
49
 
42
- The durable manifest is ${manifest.id}; it is the authority for lifecycle and ownership.`;
50
+ The durable manifest is ${manifest.id}; native binding proof is ${manifest.codex.bindingNonce || 'legacy'}; it is the authority for lifecycle and ownership.`;
43
51
  }
44
52
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/commands/codex-chip/prompt.ts"],"names":[],"mappings":";;AAEA,gCAsCC;AAxCD,mCAA0D;AAE1D,SAAgB,UAAU,CAAC,QAAsB,EAAE,UAAU,GAAG,SAAS;IACvE,MAAM,aAAa,GAAG,IAAA,yBAAiB,EAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM;QACxC,CAAC,CAAC,gDAAgD;QAClD,CAAC,CAAC,gDAAgD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClG,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM;QACzC,CAAC,CAAC,8CAA8C,UAAU,sBAAsB,QAAQ,CAAC,EAAE,+HAA+H;QAC1N,CAAC,CAAC,4CAA4C,UAAU,sBAAsB,QAAQ,CAAC,EAAE,iGAAiG,CAAC;IAC7L,MAAM,OAAO,GAAG,wBAAwB,UAAU,qBAAqB,QAAQ,CAAC,EAAE,gCAAgC,CAAC;IACnH,OAAO,sBAAsB,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;;;EAGtE,QAAQ,CAAC,IAAI;;;IAGX,QAAQ,CAAC,KAAK,CAAC,KAAK,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,OAAO;YAClE,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,wBAAwB;;;;;0CAK9B,aAAa;YAC3C,QAAQ,CAAC,QAAQ,CAAC,MAAM;iBACnB,QAAQ,CAAC,MAAM,CAAC,OAAO;IACpC,SAAS;;;;;;KAMR,UAAU;KACV,OAAO;;;;;;0BAMc,QAAQ,CAAC,EAAE,oDAAoD,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/commands/codex-chip/prompt.ts"],"names":[],"mappings":";;AAGA,gCA6CC;AAhDD,mCAAqE;AACrE,mCAA0C;AAE1C,SAAgB,UAAU,CAAC,QAAsB,EAAE,UAAU,GAAG,SAAS;IACvE,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS;QACpF,CAAC,CAAC,6HAA6H;QAC/H,CAAC,CAAC,IAAA,yBAAiB,EAAC,QAAQ,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM;QACxC,CAAC,CAAC,gDAAgD;QAClD,CAAC,CAAC,gDAAgD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IAClG,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAA,uBAAe,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvE,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAChG,MAAM,aAAa,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,gBAAgB,IAAI,CAAC,EAAE,oBAAoB,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjG,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,0BAA0B,IAAI,CAAC,EAAE,oBAAoB,IAAI,CAAC,SAAS,oBAAoB,IAAI,CAAC,UAAU,0BAA0B,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,uGAAuG,CAAC,CAAC,CAAC,EAAE,CAAC;IACxU,MAAM,UAAU,GAAG,QAAQ,CAAC,IAAI,KAAK,MAAM;QACzC,CAAC,CAAC,8CAA8C,UAAU,sBAAsB,QAAQ,CAAC,EAAE,+EAA+E,aAAa,mDAAmD;QAC1O,CAAC,CAAC,4CAA4C,UAAU,sBAAsB,QAAQ,CAAC,EAAE,iDAAiD,aAAa,mDAAmD,CAAC;IAC7M,MAAM,OAAO,GAAG,wBAAwB,UAAU,qBAAqB,QAAQ,CAAC,EAAE,gCAAgC,CAAC;IACnH,OAAO,WAAW,IAAA,iBAAS,EAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;;;EAGjE,QAAQ,CAAC,IAAI;EACb,YAAY;;;IAGV,QAAQ,CAAC,KAAK,CAAC,KAAK,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,OAAO;YAClE,QAAQ,CAAC,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,wBAAwB;;;;;0CAK9B,aAAa;YAC3C,QAAQ,CAAC,QAAQ,CAAC,MAAM;iBACnB,QAAQ,CAAC,MAAM,CAAC,OAAO;IACpC,SAAS;;;;;;KAMR,UAAU;KACV,OAAO;;;;;;0BAMc,QAAQ,CAAC,EAAE,6BAA6B,QAAQ,CAAC,KAAK,CAAC,YAAY,IAAI,QAAQ,oDAAoD,CAAC;AAC9J,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ChipManifest } from './model';
2
+ export declare function prepareResume(args: string[]): {
3
+ manifest: ChipManifest;
4
+ restartMonitor: boolean;
5
+ handoff: object;
6
+ };
7
+ export declare function acknowledgeResume(args: string[]): Promise<void>;
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.prepareResume = prepareResume;
37
+ exports.acknowledgeResume = acknowledgeResume;
38
+ const crypto = __importStar(require("crypto"));
39
+ const git_1 = require("./git");
40
+ const store_1 = require("./store");
41
+ const lifecycle_1 = require("./lifecycle");
42
+ function flag(args, name) {
43
+ const index = args.indexOf(name);
44
+ return index >= 0 ? args[index + 1] : undefined;
45
+ }
46
+ function prepareResume(args) {
47
+ const ref = args[0];
48
+ if (!ref)
49
+ throw new Error('Chip id or name is required.');
50
+ let manifest = (0, store_1.findManifest)(ref);
51
+ if (!manifest)
52
+ throw new Error(`Unknown chip: ${ref}`);
53
+ if (manifest.codex.runtime !== 'native' || !manifest.codex.threadId || !['running', 'blocked'].includes(manifest.state)) {
54
+ throw new Error(`Chip ${manifest.id.slice(0, 8)} is ${manifest.state}; only an attached running/blocked native chip can resume. Relaunch a replacement for terminal chips.`);
55
+ }
56
+ const monitorAlive = Boolean(manifest.worker?.pid) && (() => {
57
+ try {
58
+ process.kill(manifest.worker.pid, 0);
59
+ return true;
60
+ }
61
+ catch {
62
+ return false;
63
+ }
64
+ })();
65
+ const restartMonitor = manifest.state === 'blocked' || Boolean(manifest.worker?.settledAt) || !monitorAlive;
66
+ const nonce = crypto.randomBytes(16).toString('hex');
67
+ const now = new Date();
68
+ const cli = manifest.codex.cliCommand || 'greprag';
69
+ const acknowledgement = `${cli} codex chip resume-ack ${manifest.id} --nonce ${nonce}`;
70
+ manifest = (0, store_1.updateManifest)(manifest.id, {
71
+ state: 'running', error: undefined,
72
+ codex: { ...manifest.codex, resume: {
73
+ nonce, requestedAt: now.toISOString(), deadlineAt: new Date(now.getTime() + 2 * 60_000).toISOString(),
74
+ } },
75
+ });
76
+ return { manifest, restartMonitor, handoff: {
77
+ protocol: 'greprag-codex-chip-resume-v1', threadId: manifest.codex.threadId,
78
+ prompt: `Resume ${manifest.codex.displayName || manifest.name} after interruption from the current worktree. Before any other work, run exactly:\n${acknowledgement}\nThen continue the existing assignment without restarting or discarding edits.`,
79
+ acknowledgement, requirement: 'Delivery is not recovery until the parent receives the RESUMED breakthrough event.',
80
+ } };
81
+ }
82
+ async function acknowledgeResume(args) {
83
+ const id = args[0];
84
+ const nonce = flag(args, '--nonce');
85
+ if (!id || !nonce)
86
+ throw new Error('resume-ack requires chip id and --nonce.');
87
+ const marker = (0, git_1.readChipMarker)(process.cwd());
88
+ if (!marker || marker.id !== id)
89
+ throw new Error('Resume acknowledgment must run from the matching managed checkout.');
90
+ const manifest = (0, store_1.findManifest)(id);
91
+ if (!manifest?.codex.resume || manifest.codex.resume.nonce !== nonce)
92
+ throw new Error('Resume acknowledgment nonce is stale or invalid.');
93
+ (0, lifecycle_1.writeChipReceipt)({ type: 'resume-ack', id, nonce, at: new Date().toISOString() });
94
+ const deadline = Date.now() + 30_000;
95
+ while (Date.now() < deadline) {
96
+ const current = (0, store_1.findManifest)(id);
97
+ if (current?.codex.resume?.nonce === nonce && current.codex.resume.acknowledgedAt) {
98
+ console.log(`Resume acknowledged to parent for chip ${id.slice(0, 8)}.`);
99
+ return;
100
+ }
101
+ await new Promise(resolve => setTimeout(resolve, 250));
102
+ }
103
+ throw new Error('Resume acknowledgment was not delivered to the parent within 30 seconds; do not continue work.');
104
+ }
105
+ //# sourceMappingURL=resume-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resume-command.js","sourceRoot":"","sources":["../../../src/commands/codex-chip/resume-command.ts"],"names":[],"mappings":"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"}
@@ -13,3 +13,4 @@ export declare function findManifestByContext(cwd: string, sessionId?: string):
13
13
  export declare function updateManifest(id: string, patch: Partial<Omit<ChipManifest, 'id' | 'version'>> & {
14
14
  state?: ChipState;
15
15
  }): ChipManifest;
16
+ export declare function recordChipEventReceipt(id: string, eventKey: string, receiptId: string): ChipManifest;