kiokuko 1.0.21 → 1.0.22

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.
@@ -1 +1 @@
1
- {"version":3,"file":"codex-hooks.d.ts","sourceRoot":"","sources":["../../src/assurance/codex-hooks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AASlE,eAAO,MAAM,qBAAqB,yMAAyM,CAAC;AAU5O,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAI9E;AAkBD,iGAAiG;AACjG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAG9D;AAmMD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAuBxE;AACD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAe3D"}
1
+ {"version":3,"file":"codex-hooks.d.ts","sourceRoot":"","sources":["../../src/assurance/codex-hooks.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AASlE,eAAO,MAAM,qBAAqB,yMAAyM,CAAC;AAU5O,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAI9E;AAkBD,iGAAiG;AACjG,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAG9D;AAoOD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CAuBxE;AACD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAe3D"}
@@ -49,12 +49,20 @@ export function observedExitCode(value) {
49
49
  const response = record(value);
50
50
  return typeof response.exit_code === 'number' && Number.isSafeInteger(response.exit_code) ? response.exit_code : null;
51
51
  }
52
+ const turnStopReason = 'Kiokuko stopped this turn after a policy denial. Do not retry tools or attempt preparation/recovery. Report the blocker and wait for a new user message.';
52
53
  function deny(reason) {
54
+ const message = `${reason} ${turnStopReason}`;
53
55
  return {
54
- systemMessage: `Kiokuko blocked this tool call: ${reason}`,
55
- hookSpecificOutput: { hookEventName: 'PreToolUse', permissionDecision: 'deny', permissionDecisionReason: reason },
56
+ systemMessage: `Kiokuko blocked this tool call: ${message}`,
57
+ hookSpecificOutput: { hookEventName: 'PreToolUse', permissionDecision: 'deny', permissionDecisionReason: message },
56
58
  };
57
59
  }
60
+ function stopTurn(event) {
61
+ // SubagentStart cannot stop a child with continue:false. Its tool gate still denies.
62
+ if (event === 'SubagentStart')
63
+ return context(event, turnStopReason);
64
+ return { continue: false, stopReason: turnStopReason, systemMessage: turnStopReason };
65
+ }
58
66
  function context(event, text) {
59
67
  return { hookSpecificOutput: { hookEventName: event, additionalContext: text } };
60
68
  }
@@ -69,6 +77,8 @@ function memoryStepContext(db, runId, root) {
69
77
  return context('PostToolUse', 'Memory decisions are current; ordinary tools may proceed for this active run. Adopted code memories still require passing verification before completion.');
70
78
  }
71
79
  const preparationTools = new Set(['memory_index_submit', 'memory_index_review', 'task_inspect', 'task_prepare', 'task_prepare_recover', 'task_answer', 'task_memory_review', 'task_memory_status', 'task_memory_refresh', 'task_execution_evidence', 'memory_checkpoint', 'memory_capture', 'memory_recall', 'handoff_save', 'handoff_load', 'handoff_discard', 'curator_check']);
80
+ // Exact, observed non-execution tools. Never infer safety from names or shell text.
81
+ const conversationTools = new Set(['request_user_input', 'request_user_input_async', 'clockcurr_time']);
72
82
  function kiokukoTool(name) {
73
83
  const match = /^mcp__kiokuko__(\w+)$/.exec(name);
74
84
  return match && preparationTools.has(match[1]) ? match[1] : null;
@@ -80,19 +90,41 @@ function handleCodexHookEvent(db, raw) {
80
90
  const identity = canonicalContentHash({ session: input.session_id, turn: input.turn_id, agent: input.agent_id ?? 'main', root });
81
91
  const requestId = `codex-${identity}`;
82
92
  const now = new Date().toISOString();
93
+ const denyTurn = (reason) => {
94
+ withImmediateTransaction(db, () => {
95
+ // Reuse the existing durable stop flag; exact event replay never clears it.
96
+ db.prepare(`INSERT INTO codex_hook_requests
97
+ (identity_digest, repository_root, run_id, request_id, state, stop_notified, last_event, updated_at)
98
+ VALUES (?, ?, NULL, ?, 'pending', 1, ?, ?)
99
+ ON CONFLICT(identity_digest) DO UPDATE SET stop_notified=1, last_event=excluded.last_event, updated_at=excluded.updated_at`)
100
+ .run(identity, root, requestId, input.hook_event_name, now);
101
+ const current = db.prepare('SELECT run_id FROM codex_hook_requests WHERE identity_digest=?').get(identity);
102
+ if (current?.run_id) {
103
+ const store = new LedgerStore(db);
104
+ const run = store.readRun(current.run_id);
105
+ if (run && (run.status === 'active' || run.status === 'intake'))
106
+ store.updateRunStatusInTransaction(run.runId, 'failed', now);
107
+ }
108
+ });
109
+ return deny(reason);
110
+ };
83
111
  let request = db.prepare('SELECT * FROM codex_hook_requests WHERE identity_digest = ?').get(identity);
84
112
  if (input.hook_event_name === 'UserPromptSubmit' || input.hook_event_name === 'SubagentStart') {
113
+ if (request?.stop_notified)
114
+ return stopTurn(input.hook_event_name);
85
115
  withImmediateTransaction(db, () => {
86
116
  db.prepare("INSERT INTO codex_hook_requests VALUES (?, ?, NULL, ?, 'pending', 0, ?, ?) ON CONFLICT(identity_digest) DO UPDATE SET last_event=excluded.last_event, updated_at=excluded.updated_at")
87
117
  .run(identity, root, requestId, input.hook_event_name, now);
88
118
  });
89
- return context(input.hook_event_name, `Kiokuko request ${requestId}. Before project work, call task_inspect with {"cwd":${JSON.stringify(root)},"operation":"skill"} (omit path to read kiokuko-soul). Read memory-reasoning through task_inspect before advertising it, then call task_prepare with this requestId and soulRead=true. Use task_inspect for all preparation reads and bundled Skills, including natural-japanese-output; do not read Skills through shell commands. After intake, resolve every pending or stale memory decision before ordinary tools, code search or execution. Follow nextAction; use task_memory_status and sequential task_memory_review calls with the latest revision. Ordinary conversation needs no project run. ${CODEX_HOOK_LIMITATION}`);
119
+ if (db.prepare('SELECT stop_notified FROM codex_hook_requests WHERE identity_digest=?').get(identity)?.stop_notified)
120
+ return stopTurn(input.hook_event_name);
121
+ return context(input.hook_event_name, `Kiokuko request ${requestId}. Before project work, call task_inspect with {"cwd":${JSON.stringify(root)},"operation":"skill"} (omit path to read kiokuko-soul). Read memory-reasoning through task_inspect before advertising it, then call task_prepare with this requestId and soulRead=true. Use task_inspect for all preparation reads and bundled Skills, including natural-japanese-output; do not read Skills through shell commands. After intake, resolve every pending or stale memory decision before ordinary tools, code search or execution. Follow nextAction; use task_memory_status and sequential task_memory_review calls with the latest revision. User clarification tools request_user_input and request_user_input_async, and the clockcurr_time read, remain available before preparation and memory review. A policy denial ends this turn: do not retry or recover within it; report the blocker and wait for a new user message. Ordinary conversation needs no project run. ${CODEX_HOOK_LIMITATION}`);
90
122
  }
91
123
  if (!request) {
92
124
  if (input.hook_event_name === 'Interrupt' || input.hook_event_name === 'SubagentStop')
93
125
  return {};
94
126
  if (input.hook_event_name === 'PreToolUse')
95
- return deny('Kiokuko has not observed this request start. Parent-agent preparation is not inherited.');
127
+ return denyTurn('Kiokuko has not observed this request start. Parent-agent preparation is not inherited.');
96
128
  throw new KiokukoError('CONFLICT', 'Hook request start was not observed');
97
129
  }
98
130
  db.prepare('UPDATE codex_hook_requests SET last_event = ?, updated_at = ? WHERE identity_digest = ?').run(input.hook_event_name, now, identity);
@@ -109,7 +141,9 @@ function handleCodexHookEvent(db, raw) {
109
141
  return {}; // Never request continuation after cancellation.
110
142
  }
111
143
  if (request.state === 'cancelled')
112
- return input.hook_event_name === 'PreToolUse' ? deny('Request was interrupted') : {};
144
+ return input.hook_event_name === 'PreToolUse' ? denyTurn('Request was interrupted') : {};
145
+ if (request.stop_notified)
146
+ return input.hook_event_name === 'PreToolUse' ? deny('This turn already had a policy denial.') : stopTurn(input.hook_event_name);
113
147
  if (input.hook_event_name === 'Stop' || input.hook_event_name === 'SubagentStop') {
114
148
  if (!request.run_id)
115
149
  return {}; // Ordinary conversation never required a run.
@@ -126,18 +160,20 @@ function handleCodexHookEvent(db, raw) {
126
160
  }
127
161
  if (!input.tool_name || !input.tool_use_id)
128
162
  throw new KiokukoError('VALIDATION_ERROR', 'Hook tool identity is missing');
163
+ if (conversationTools.has(input.tool_name))
164
+ return {};
129
165
  const operation = kiokukoTool(input.tool_name);
130
166
  const args = record(input.tool_input);
131
167
  if (input.hook_event_name === 'PreToolUse') {
132
168
  if (['spawn_agent', 'Agent'].includes(input.tool_name))
133
- return deny('Delegation requires a client adapter that supplies distinct agent identity on every child tool event.');
169
+ return denyTurn('Delegation requires a client adapter that supplies distinct agent identity on every child tool event.');
134
170
  if (operation === 'task_prepare_recover') {
135
171
  const receipt = db.prepare('SELECT successor_run_id FROM task_preparation_recoveries WHERE predecessor_run_id=?')
136
172
  .get(String(args.runId));
137
173
  if (args.requestId !== requestId
138
174
  || (args.runId !== request.run_id && receipt?.successor_run_id !== request.run_id)
139
175
  || typeof args.cwd !== 'string' || realpathSync(args.cwd) !== root) {
140
- return deny('Recovery must match the pending client request and predecessor');
176
+ return denyTurn('Recovery must match the pending client request and predecessor');
141
177
  }
142
178
  return {};
143
179
  }
@@ -145,24 +181,24 @@ function handleCodexHookEvent(db, raw) {
145
181
  // Validate rather than rewrite: MCP updatedInput can trigger client approval.
146
182
  // The model must supply its own read attestation and request binding.
147
183
  if (args.requestId !== requestId || typeof args.cwd !== 'string' || realpathSync(args.cwd) !== root)
148
- return deny(`Use requestId ${requestId} and cwd ${root} for this request.`);
184
+ return denyTurn(`Use requestId ${requestId} and cwd ${root} for this request.`);
149
185
  return {};
150
186
  }
151
187
  if (operation) {
152
188
  if (args.runId !== undefined && args.runId !== request.run_id)
153
- return deny('Tool run is not bound to this client request');
189
+ return denyTurn('Tool run is not bound to this client request');
154
190
  return {};
155
191
  }
156
192
  if (!request.run_id)
157
- return deny(`Read kiokuko-soul with task_inspect {"cwd":${JSON.stringify(root)},"operation":"skill"} (omit path), then complete task_prepare. task_inspect also permits bounded preparation reads.`);
193
+ return denyTurn(`Preparation was missing: read kiokuko-soul with task_inspect {"cwd":${JSON.stringify(root)},"operation":"skill"} (omit path), then complete task_prepare in a new turn. task_inspect also permits bounded preparation reads.`);
158
194
  if (request.state !== 'bound')
159
- return deny('Kiokuko preparation has not permitted progress; resolve the current intake or required capability gate.');
195
+ return denyTurn('Kiokuko preparation has not permitted progress; the current intake or required capability gate is unresolved.');
160
196
  const run = new LedgerStore(db).readRun(request.run_id);
161
197
  if (!run || run.status !== 'active')
162
- return deny('Kiokuko intake is unfinished or the run is terminal');
198
+ return denyTurn('Kiokuko intake is unfinished or the run is terminal');
163
199
  const report = taskAssuranceReport(db, request.run_id, false);
164
200
  if (report.pending.length || report.stale.length)
165
- return deny(`Memory review is incomplete (${report.pending.length} pending, ${report.stale.length} stale). The agent must call task_memory_status, ${report.stale.length ? 'then task_memory_refresh on the same run for stale entries,' : ''} then task_memory_review for each unresolved entry using the current revision returned by the latest response. Use task_inspect for bounded reads while reviews are pending. This tool call did not execute.`);
201
+ return denyTurn(`Memory review is incomplete (${report.pending.length} pending, ${report.stale.length} stale). Required order: task_memory_status, ${report.stale.length ? 'then task_memory_refresh for stale entries,' : ''} then task_memory_review for each unresolved entry using the latest revision. Use task_inspect for bounded reads before attempting ordinary tools. This tool call did not execute.`);
166
202
  const state = assuranceState(db, request.run_id);
167
203
  const inputDigest = canonicalContentHash(input.tool_input ?? null);
168
204
  let stateDigest;
@@ -176,7 +212,7 @@ function handleCodexHookEvent(db, raw) {
176
212
  const current = db.prepare('SELECT * FROM codex_hook_requests WHERE identity_digest = ?').get(identity);
177
213
  const currentRun = current?.run_id ? new LedgerStore(db).readRun(current.run_id) : null;
178
214
  const currentState = current?.run_id ? assuranceState(db, current.run_id) : null;
179
- if (!current || current.state !== 'bound' || current.run_id !== request.run_id || currentRun?.status !== 'active'
215
+ if (!current || current.stop_notified || current.state !== 'bound' || current.run_id !== request.run_id || currentRun?.status !== 'active'
180
216
  || currentState?.delivery_id !== state.delivery_id)
181
217
  return 'stale';
182
218
  const prior = db.prepare('SELECT input_digest FROM codex_hook_tools WHERE identity_digest = ? AND call_id = ?').get(identity, input.tool_use_id);
@@ -187,9 +223,9 @@ function handleCodexHookEvent(db, raw) {
187
223
  return 'accepted';
188
224
  });
189
225
  if (admission === 'stale')
190
- return deny('Task state changed before tool admission');
226
+ return denyTurn('Task state changed before tool admission');
191
227
  if (admission === 'conflict')
192
- return deny('Tool call identity was reused with different input');
228
+ return denyTurn('Tool call identity was reused with different input');
193
229
  return {};
194
230
  }
195
231
  if (operation === 'task_prepare_recover') {
@@ -207,8 +243,10 @@ function handleCodexHookEvent(db, raw) {
207
243
  throw new KiokukoError('CONFLICT', 'Recovery response does not match durable client binding');
208
244
  }
209
245
  const admitted = ['proceed', 'review_memory_application', 'refresh_memory'].includes(String(result.nextAction));
210
- db.prepare('UPDATE codex_hook_requests SET run_id=?,state=? WHERE identity_digest=?')
211
- .run(successor, admitted ? 'bound' : 'pending', identity);
246
+ const updated = db.prepare('UPDATE codex_hook_requests SET run_id=?,state=? WHERE identity_digest=? AND stop_notified=0 RETURNING identity_digest')
247
+ .get(successor, admitted ? 'bound' : 'pending', identity);
248
+ if (!updated)
249
+ return stopTurn('PostToolUse');
212
250
  return admitted ? memoryStepContext(db, successor, root) : {};
213
251
  }
214
252
  if (operation === 'task_prepare' || operation === 'task_answer') {
@@ -225,7 +263,9 @@ function handleCodexHookEvent(db, raw) {
225
263
  // Intake binding and memory admission are separate: reviews must be able to
226
264
  // unlock a prepared run without replaying task_prepare or task_answer.
227
265
  const prepared = ['proceed', 'review_memory_application', 'refresh_memory'].includes(String(result.nextAction));
228
- db.prepare('UPDATE codex_hook_requests SET run_id = ?, state = ? WHERE identity_digest = ?').run(runId, prepared ? 'bound' : 'pending', identity);
266
+ const updated = db.prepare('UPDATE codex_hook_requests SET run_id = ?, state = ? WHERE identity_digest = ? AND stop_notified=0 RETURNING identity_digest').get(runId, prepared ? 'bound' : 'pending', identity);
267
+ if (!updated)
268
+ return stopTurn('PostToolUse');
229
269
  return prepared ? memoryStepContext(db, runId, root) : {};
230
270
  }
231
271
  if (['task_memory_review', 'task_memory_refresh'].includes(operation ?? '') && request.state === 'bound'
@@ -241,6 +281,8 @@ function handleCodexHookEvent(db, raw) {
241
281
  // the writer lock. A different call may have advanced that revision already.
242
282
  return withImmediateTransaction(db, () => {
243
283
  const current = db.prepare('SELECT * FROM codex_hook_requests WHERE identity_digest = ?').get(identity);
284
+ if (current?.stop_notified)
285
+ return stopTurn('PostToolUse');
244
286
  const call = db.prepare('SELECT * FROM codex_hook_tools WHERE identity_digest = ? AND call_id = ?').get(identity, input.tool_use_id);
245
287
  if (!current || current.run_id !== request.run_id || current.state !== 'bound')
246
288
  throw new KiokukoError('CONFLICT', 'Tool completion binding changed');
@@ -1 +1 @@
1
- {"version":3,"file":"codex-hooks.js","sourceRoot":"","sources":["../../src/assurance/codex-hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-hooks.js","sourceRoot":"","sources":["../../src/assurance/codex-hooks.ts"],"names":[],"mappings":"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"}
@@ -111,8 +111,25 @@ on paths where distinct child tool identities cannot be established.
111
111
 
112
112
  Policy denials include the reason in `systemMessage` for the Codex UI warning,
113
113
  in `permissionDecisionReason` for the blocked tool, and on stderr for hook
114
- diagnostics. Pending-memory blocks show pending/stale counts and direct the agent
115
- to `task_memory_status` and `task_memory_review` with the latest returned revision;
114
+ diagnostics. **The first policy denial stops that client turn.** The existing
115
+ durable `stop_notified` flag latches before the denial is returned, and any bound
116
+ active/intake run becomes failed. Every later tool call for the same client
117
+ request is denied, including `task_inspect`, preparation, recovery and checkpoint.
118
+ Delayed completions cannot reopen the binding or supply verification evidence.
119
+ Hook-process restarts and replaying the same prompt event do not clear the latch;
120
+ a new user turn with a new client turn ID starts a fresh request. `Stop` and
121
+ supported completion events return `continue: false` without requesting recovery.
122
+
123
+ Before a denial, the exact user clarification tools `request_user_input` and
124
+ `request_user_input_async`, and the observed time-read tool `clockcurr_time`,
125
+ remain usable during preparation and pending memory reviews. This permits asking
126
+ an intake question or checking the time without granting shell, file, network
127
+ or other execution access. These calls do not produce execution evidence.
128
+ Once a turn is stopped, they are denied too. Other clock tools, such as sleep,
129
+ are not exempted.
130
+
131
+ Pending-memory blocks show pending/stale counts and the required ordering of
132
+ `task_memory_status` and `task_memory_review` with the latest returned revision;
116
133
  reusing an old `expectedRevision` produces a conflict. Allowed tool calls stay
117
134
  quiet. Preparation, review and refresh completions proactively report the current
118
135
  next step before another ordinary tool is attempted. The initial prompt directs
@@ -124,6 +141,11 @@ history is not rewritten; the new messages require the updated Kiokuko executabl
124
141
  Hooks are not execution isolation. Unsupported tool paths, disabled/untrusted
125
142
  hooks, adapter startup failures and already running processes remain outside
126
143
  complete enforcement. In particular, `write_stdin` does not repeat PreToolUse.
144
+ `PreToolUse` does not support `continue: false` or `stopReason`; returning those
145
+ fields can fail the hook and let the tool execute. The adapter therefore uses
146
+ the supported deny response and a durable latch, with stop output only on events
147
+ that support it. This prevents further supported tool admissions; it cannot
148
+ guarantee that Codex immediately stops generating text or trying denied calls.
127
149
  Stop cannot retract text already emitted; an incomplete report stops with an
128
150
  explicit message instead of generating unlimited continuation turns. Interrupt
129
151
  never requests continuation. Unknown execution result formats stay unknown.
@@ -136,6 +158,11 @@ deterministic adapter fixture with structured exit metadata passes; it is not
136
158
  evidence that the installed CLI or desktop exposes that metadata.
137
159
  See the [official Codex hook protocol](https://developers.openai.com/ja-JP/docs/hooks).
138
160
 
161
+ To exercise only the denial/stop path with an installed Codex CLI, run
162
+ `node scripts/run-memory-assurance-live.mjs --hard-stop-only` after building.
163
+ The full live check uses a separate fresh client request for successful
164
+ preparation and execution; it never attempts recovery in the denied turn.
165
+
139
166
  ## Validation
140
167
 
141
168
  `tests/integration/memory-assurance.test.ts` exercises the next-migration
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kiokuko",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "description": "Model-agnostic external memory for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {