kiokuko 1.0.21 → 1.0.23

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":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAC/G,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG,sMAAsM,CAAC;AAC5O,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC3C,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;IAChI,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;IACjF,SAAS,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACzI,gBAAgB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CACzC,CAAC,CAAC,WAAW,EAAE,CAAC;AAGjB,MAAM,UAAU,sBAAsB,CAAC,MAA+B;IACpE,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACtE,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;QACpD,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;AACpG,CAAC;AACD,SAAS,MAAM,CAAC,KAAc;IAC5B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtH,CAAC;AACD,SAAS,YAAY,CAAC,KAAc;IAClC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACtC,IAAI,KAAK,CAAC,iBAAiB;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACpE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC1D,IAAI,CAAC;oBAAC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;gBAAC,CAAC;gBAAC,MAAM,CAAC,CAAC,4CAA4C,CAAC,CAAC;YACtG,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AACD,iGAAiG;AACjG,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,OAAO,OAAO,QAAQ,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AACxH,CAAC;AACD,MAAM,cAAc,GAAG,0JAA0J,CAAC;AAClL,SAAS,IAAI,CAAC,MAAc;IAC1B,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,cAAc,EAAE,CAAC;IAC9C,OAAO;QACL,aAAa,EAAE,mCAAmC,OAAO,EAAE;QAC3D,kBAAkB,EAAE,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,wBAAwB,EAAE,OAAO,EAAE;KACnH,CAAC;AACJ,CAAC;AACD,SAAS,QAAQ,CAAC,KAAa;IAC7B,qFAAqF;IACrF,IAAI,KAAK,KAAK,eAAe;QAAE,OAAO,OAAO,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;IACrE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC;AACxF,CAAC;AACD,SAAS,OAAO,CAAC,KAAa,EAAE,IAAY;IAC1C,OAAO,EAAE,kBAAkB,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,CAAC;AACnF,CAAC;AACD,SAAS,iBAAiB,CAAC,EAAkB,EAAE,KAAa,EAAE,IAAY;IACxE,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACtD,IAAI,UAAU,KAAK,gBAAgB;QAAE,OAAO,OAAO,CAAC,aAAa,EAAE,6DAA6D,QAAQ,2LAA2L,CAAC,CAAC;IACrU,IAAI,UAAU,KAAK,2BAA2B;QAAE,OAAO,OAAO,CAAC,aAAa,EAAE,2CAA2C,MAAM,CAAC,OAAO,CAAC,MAAM,2CAA2C,QAAQ,sbAAsb,CAAC,CAAC;IACznB,OAAO,OAAO,CAAC,aAAa,EAAE,2JAA2J,CAAC,CAAC;AAC7L,CAAC;AACD,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,qBAAqB,EAAE,qBAAqB,EAAE,cAAc,EAAE,cAAc,EAAE,sBAAsB,EAAE,aAAa,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC,CAAC;AAClX,oFAAoF;AACpF,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,oBAAoB,EAAE,0BAA0B,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACxG,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,KAAK,GAAG,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjD,OAAO,KAAK,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACrE,CAAC;AACD,oHAAoH;AACpH,SAAS,oBAAoB,CAAC,EAAkB,EAAE,GAAY;IAC5D,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5J,MAAM,QAAQ,GAAG,oBAAoB,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IACjI,MAAM,SAAS,GAAG,SAAS,QAAQ,EAAE,CAAC;IACtC,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE;QAClC,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE;YAChC,4EAA4E;YAC5E,EAAE,CAAC,OAAO,CAAC;;;mIAGkH,CAAC;iBAC3H,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,CAA4B,QAAQ,CAAC,CAAC;YACtI,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;gBAClC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC;oBAAE,KAAK,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;YAChI,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,IAAI,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAAc,QAAQ,CAAC,CAAC;IACnH,IAAI,KAAK,CAAC,eAAe,KAAK,kBAAkB,IAAI,KAAK,CAAC,eAAe,KAAK,eAAe,EAAE,CAAC;QAC9F,IAAI,OAAO,EAAE,aAAa;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QACnE,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE;YAChC,EAAE,CAAC,OAAO,CAAC,sLAAsL,CAAC;iBAC/L,GAAG,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;QAChE,CAAC,CAAC,CAAC;QACH,IAAI,EAAE,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAc,QAAQ,CAAC,EAAE,aAAa;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC1K,OAAO,OAAO,CAAC,KAAK,CAAC,eAAe,EAAE,mBAAmB,SAAS,wDAAwD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,m2BAAm2B,qBAAqB,EAAE,CAAC,CAAC;IAC5gC,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,IAAI,KAAK,CAAC,eAAe,KAAK,WAAW,IAAI,KAAK,CAAC,eAAe,KAAK,cAAc;YAAE,OAAO,EAAE,CAAC;QACjG,IAAI,KAAK,CAAC,eAAe,KAAK,YAAY;YAAE,OAAO,QAAQ,CAAC,yFAAyF,CAAC,CAAC;QACvJ,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,qCAAqC,CAAC,CAAC;IAC5E,CAAC;IACD,EAAE,CAAC,OAAO,CAAC,yFAAyF,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAChJ,IAAI,KAAK,CAAC,eAAe,KAAK,WAAW,EAAE,CAAC;QAC1C,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE;YAChC,EAAE,CAAC,OAAO,CAAC,8EAA8E,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACzG,IAAI,OAAQ,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;gBAClC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAQ,CAAC,MAAM,CAAC,CAAC;gBAC3C,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ,CAAC;oBAAE,KAAK,CAAC,4BAA4B,CAAC,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;YACrI,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,CAAC,CAAC,iDAAiD;IAC9D,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW;QAAE,OAAO,KAAK,CAAC,eAAe,KAAK,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5H,IAAI,OAAO,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC,eAAe,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC5J,IAAI,KAAK,CAAC,eAAe,KAAK,MAAM,IAAI,KAAK,CAAC,eAAe,KAAK,cAAc,EAAE,CAAC;QACjF,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,EAAE,CAAC,CAAC,8CAA8C;QAC9E,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxD,+EAA+E;QAC/E,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,EAAE,CAAC;QAC/F,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,sDAAsD,EAAE,CAAC;QAC9H,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,yDAAyD,EAAE,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/J,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,KAAK,CAAC,WAAW;QAAE,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,+BAA+B,CAAC,CAAC;IACxH,IAAI,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,EAAE,CAAC;IACtD,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtC,IAAI,KAAK,CAAC,eAAe,KAAK,YAAY,EAAE,CAAC;QAC3C,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC;YAAE,OAAO,QAAQ,CAAC,uGAAuG,CAAC,CAAC;QACjL,IAAI,SAAS,KAAK,sBAAsB,EAAE,CAAC;YACzC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,qFAAqF,CAAC;iBAC9G,GAAG,CAA+B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YACzD,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;mBAC3B,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,MAAM,IAAI,OAAO,EAAE,gBAAgB,KAAK,OAAO,CAAC,MAAM,CAAC;mBAC/E,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;gBACrE,OAAO,QAAQ,CAAC,gEAAgE,CAAC,CAAC;YACpF,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;YACjC,8EAA8E;YAC9E,sEAAsE;YACtE,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI;gBAAE,OAAO,QAAQ,CAAC,iBAAiB,SAAS,YAAY,IAAI,oBAAoB,CAAC,CAAC;YACrL,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,OAAO,CAAC,MAAM;gBAAE,OAAO,QAAQ,CAAC,8CAA8C,CAAC,CAAC;YAC/H,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,uEAAuE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,mIAAmI,CAAC,CAAC;QACrQ,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO;YAAE,OAAO,QAAQ,CAAC,+GAA+G,CAAC,CAAC;QAChK,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO,QAAQ,CAAC,qDAAqD,CAAC,CAAC;QAC5G,MAAM,MAAM,GAAG,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9D,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM;YAAE,OAAO,QAAQ,CAAC,gCAAgC,MAAM,CAAC,OAAO,CAAC,MAAM,aAAa,MAAM,CAAC,KAAK,CAAC,MAAM,gDAAgD,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAAC,EAAE,oLAAoL,CAAC,CAAC;QACrc,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAE,CAAC;QAClD,MAAM,WAAW,GAAG,oBAAoB,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;QACnE,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YAAC,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAClD,MAAM,CAAC;YAAC,MAAM,IAAI,YAAY,CAAC,qBAAqB,EAAE,qCAAqC,CAAC,CAAC;QAAC,CAAC;QAC/F,MAAM,SAAS,GAAG,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE;YAClD,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAAc,QAAQ,CAAC,CAAC;YACrH,MAAM,UAAU,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACxF,MAAM,YAAY,GAAG,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YACjF,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,OAAQ,CAAC,MAAM,IAAI,UAAU,EAAE,MAAM,KAAK,QAAQ;mBACtI,YAAY,EAAE,WAAW,KAAK,KAAK,CAAC,WAAW;gBAAE,OAAO,OAAO,CAAC;YACrE,MAAM,KAAK,GAAG,EAAE,CAAC,OAAO,CAAC,qFAAqF,CAAC,CAAC,GAAG,CAA2B,QAAQ,EAAE,KAAK,CAAC,WAAY,CAAC,CAAC;YAC5K,IAAI,KAAK;gBAAE,OAAO,KAAK,CAAC,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC;YAC/E,EAAE,CAAC,OAAO,CAAC,sJAAsJ,CAAC;iBAC/J,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,WAAY,EAAE,OAAQ,CAAC,MAAM,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;YACnG,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;QACH,IAAI,SAAS,KAAK,OAAO;YAAE,OAAO,QAAQ,CAAC,0CAA0C,CAAC,CAAC;QACvF,IAAI,SAAS,KAAK,UAAU;YAAE,OAAO,QAAQ,CAAC,oDAAoD,CAAC,CAAC;QACpG,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,SAAS,KAAK,sBAAsB,EAAE,CAAC;QACzC,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3C,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,OAAO,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,sEAAsE,CAAC;aAC/F,GAAG,CAAqF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/G,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS;eACjD,OAAO,CAAC,oBAAoB,KAAK,oBAAoB,CAAC,SAAS,CAAC;eAChE,OAAO,CAAC,cAAc,KAAK,oBAAoB,CAAC,IAAI,CAAC,WAAW,CAAC;eACjE,CAAC,MAAM,CAAC,kBAAkB,KAAK,OAAO,CAAC,MAAM,IAAI,SAAS,KAAK,OAAO,CAAC,MAAM,CAAC;eAC9E,cAAc,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,eAAe,KAAK,IAAI,EAAE,CAAC;YAC7D,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,yDAAyD,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,2BAA2B,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAChH,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,uHAAuH,CAAC;aAChJ,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;IACD,IAAI,SAAS,KAAK,cAAc,IAAI,SAAS,KAAK,aAAa,EAAE,CAAC;QAChE,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACjD,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;QACvC,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,OAAO,CAAC,aAAa,EAAE,oDAAoD,CAAC,CAAC;QACnH,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI,IAAI,CAAC,SAAS,KAAK,cAAc,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC;eACzG,CAAC,SAAS,KAAK,aAAa,IAAI,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,iEAAiE,CAAC,CAAC;QACtK,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,KAAK,KAAK;YAAE,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,0CAA0C,CAAC,CAAC;QAC/H,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,2BAA2B,EAAE,gBAAgB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;QAChH,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,8HAA8H,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAChN,IAAI,CAAC,OAAO;YAAE,OAAO,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC7C,OAAO,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO;WACnG,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,OAAO,KAAK,IAAI;WAC9D,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC1H,IAAI,SAAS,IAAI,CAAC,OAAO,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACnD,iFAAiF;IACjF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IACvD,8EAA8E;IAC9E,6EAA6E;IAC7E,OAAO,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE;QACvC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,6DAA6D,CAAC,CAAC,GAAG,CAAc,QAAQ,CAAC,CAAC;QACrH,IAAI,OAAO,EAAE,aAAa;YAAE,OAAO,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,0EAA0E,CAAC,CAAC,GAAG,CAAW,QAAQ,EAAE,KAAK,CAAC,WAAY,CAAC,CAAC;QAChJ,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,OAAQ,CAAC,MAAM,IAAI,OAAO,CAAC,KAAK,KAAK,OAAO;YAC7E,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,iCAAiC,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,uCAAuC,CAAC,CAAC;QACvF,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;YAAE,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,iCAAiC,CAAC,CAAC;QAC1G,IAAI,IAAI,CAAC,YAAY,KAAK,oBAAoB,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;YACtE,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;QACtE,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;QACzD,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,QAAQ;YAAE,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,2CAA2C,CAAC,CAAC;QACrH,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,EAAE,OAAO,CAAC,MAAO,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,eAAe,KAAK,IAAI;YAAE,MAAM,IAAI,YAAY,CAAC,UAAU,EAAE,oCAAoC,CAAC,CAAC;QACvH,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW;YAAE,OAAO,OAAO,CAAC,aAAa,EAAE,+EAA+E,CAAC,CAAC;QAC3J,IAAI,IAAI,CAAC,WAAW;YAAE,OAAO,OAAO,CAAC,aAAa,EAAE,uBAAuB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/F,IAAI,MAAc,CAAC;QACnB,IAAI,CAAC;YAAC,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAAC,CAAC;QAC7C,MAAM,CAAC;YAAC,MAAM,IAAI,YAAY,CAAC,qBAAqB,EAAE,qCAAqC,CAAC,CAAC;QAAC,CAAC;QAC/F,IAAI,MAAM,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,EAAE,CAAC,OAAO,CAAC,kFAAkF,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACnH,EAAE,CAAC,OAAO,CAAC,uFAAuF,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAY,CAAC,CAAC;YAChJ,CAAC;YACD,OAAO,OAAO,CAAC,aAAa,EAAE,6HAA6H,CAAC,CAAC;QAC/J,CAAC;QACD,IAAI,CAAC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,SAAU,CAAC;YAAE,OAAO,EAAE,CAAC;QACpE,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO,OAAO,CAAC,aAAa,EAAE,sDAAsD,CAAC,CAAC;QAClJ,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACrF,MAAM,UAAU,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,MAAO,EAAE,UAAU,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI;YAChH,eAAe,EAAE,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAC/G,EAAE,CAAC,OAAO,CAAC,uFAAuF,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,WAAY,CAAC,CAAC;QAClJ,EAAE,CAAC,OAAO,CAAC,4EAA4E,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAClH,OAAO,OAAO,CAAC,aAAa,EAAE,uBAAuB,UAAU,cAAc,OAAO,oCAAoC,CAAC,CAAC;IAC5H,CAAC,CAAC,CAAC;AACL,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,EAAkB,EAAE,GAAY;IAC9D,MAAM,KAAK,GAAG,cAAc,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,KAAK,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,iBAAiB;QACxN,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,OAAO,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC;IAClH,MAAM,IAAI,GAAG,CAAC,QAAgB,EAAE,MAAe,EAAE,EAAE,CAAC,wBAAwB,CAAC,EAAE,EAAE,GAAG,EAAE;QACpF,MAAM,UAAU,GAAG,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;QAC7E,EAAE,CAAC,OAAO,CAAC,+DAA+D,CAAC;aACxE,GAAG,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,SAAS,IAAI,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;QACrI,EAAE,CAAC,OAAO,CAAC,mIAAmI,CAAC,CAAC,GAAG,EAAE,CAAC;IACxJ,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,oBAAoB,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAC3D,IAAI,CAAC;YAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,kBAAkB,KAAK,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAAC,CAAC;QAClJ,MAAM,CAAC;YAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;QAAC,CAAC;QACpG,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC;YAAC,IAAI,CAAC,KAAK,YAAY,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;QAAC,CAAC;QACxG,MAAM,CAAC,CAAC,mCAAmC,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AACD,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,KAAK,YAAY,YAAY,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,OAAO,KAAK,uCAAuC;gBAAE,OAAO,8BAA8B,CAAC;YACrG,IAAI,KAAK,CAAC,OAAO,KAAK,+BAA+B;gBAAE,OAAO,2BAA2B,CAAC;YAC1F,IAAI,KAAK,CAAC,OAAO,KAAK,iCAAiC;gBAAE,OAAO,4BAA4B,CAAC;YAC7F,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;YAAE,OAAO,eAAe,CAAC;QAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,qBAAqB,IAAI,KAAK,CAAC,OAAO,KAAK,qCAAqC;YAAE,OAAO,0BAA0B,CAAC;QACvI,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB;YAAE,OAAO,wBAAwB,CAAC;QAC3G,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAChJ,OAAO,eAAe,CAAC;AACzB,CAAC"}
@@ -0,0 +1,14 @@
1
+ interface GitProvenanceExecOptions {
2
+ cwd: string;
3
+ encoding: 'utf8';
4
+ stdio: ['ignore', 'pipe', 'pipe'];
5
+ timeout: number;
6
+ maxBuffer: number;
7
+ killSignal: 'SIGKILL';
8
+ env: NodeJS.ProcessEnv;
9
+ }
10
+ type GitProvenanceExecutor = (executable: string, args: string[], options: GitProvenanceExecOptions) => string;
11
+ /** Resolve immutable provenance; only observed non-repository/unborn states have no commit. */
12
+ export declare function resolveCheckpointSourceCommit(repositoryRoot: string, execute?: GitProvenanceExecutor): string | null;
13
+ export {};
14
+ //# sourceMappingURL=git-provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-provenance.d.ts","sourceRoot":"","sources":["../../src/memory/git-provenance.ts"],"names":[],"mappings":"AAMA,UAAU,wBAAwB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;CACxB;AACD,KAAK,qBAAqB,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,wBAAwB,KAAK,MAAM,CAAC;AAsG/G,+FAA+F;AAC/F,wBAAgB,6BAA6B,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,GAAE,qBAAkC,GAAG,MAAM,GAAG,IAAI,CAyBhI"}
@@ -0,0 +1,153 @@
1
+ import { execFileSync } from 'node:child_process';
2
+ import { lstatSync, realpathSync } from 'node:fs';
3
+ import path from 'node:path';
4
+ import { performance } from 'node:perf_hooks';
5
+ import { KiokukoError } from '../errors.js';
6
+ const executeGit = (executable, args, options) => execFileSync(executable, args, options);
7
+ const unavailable = () => new KiokukoError('SERVICE_UNAVAILABLE', 'Git checkpoint provenance could not be resolved');
8
+ function processText(error, field) {
9
+ const value = error[field];
10
+ return typeof value === 'string' ? value : Buffer.isBuffer(value) ? value.toString('utf8') : undefined;
11
+ }
12
+ function exitedWith(error, status) {
13
+ if (typeof error !== 'object' || error === null)
14
+ return false;
15
+ const failure = error;
16
+ return failure.status === status && failure.signal === null && failure.code == null
17
+ && failure.killed !== true && failure.error == null && processText(failure, 'stdout') === '';
18
+ }
19
+ function diagnostic(error) {
20
+ if (!exitedWith(error, 128))
21
+ return undefined;
22
+ return processText(error, 'stderr')?.replaceAll('\r\n', '\n').replace(/\n$/u, '');
23
+ }
24
+ function nonRepositoryBoundary(error) {
25
+ const text = diagnostic(error);
26
+ if (text === 'fatal: not a git repository (or any of the parent directories): .git')
27
+ return null;
28
+ const match = /^fatal: not a git repository \(or any parent up to mount point ([^\r\n]+)\)\nStopping at filesystem boundary \(GIT_DISCOVERY_ACROSS_FILESYSTEM not set\)\.$/u.exec(text ?? '');
29
+ return match && path.isAbsolute(match[1]) ? match[1] : undefined;
30
+ }
31
+ /** lstat also detects dangling links. Only a missing path is an expected absence. */
32
+ function pathPresent(file) {
33
+ try {
34
+ lstatSync(file);
35
+ return true;
36
+ }
37
+ catch (error) {
38
+ if (error.code === 'ENOENT')
39
+ return false;
40
+ throw error;
41
+ }
42
+ }
43
+ function assertNoRepositoryMarker(cwd, boundary, env, checkDeadline) {
44
+ // Explicit but unusable Git locations are configuration errors, not absent repositories.
45
+ if (['GIT_DIR', 'GIT_WORK_TREE', 'GIT_COMMON_DIR'].some((key) => env[key] !== undefined))
46
+ throw unavailable();
47
+ const ceilings = (env.GIT_CEILING_DIRECTORIES ?? '').split(path.delimiter).filter(path.isAbsolute).map((directory) => {
48
+ try {
49
+ return realpathSync(directory);
50
+ }
51
+ catch (error) {
52
+ if (error.code === 'ENOENT')
53
+ return directory;
54
+ throw error;
55
+ }
56
+ });
57
+ let directory = realpathSync(cwd);
58
+ for (;;) {
59
+ checkDeadline();
60
+ if (pathPresent(path.join(directory, '.git')))
61
+ throw unavailable();
62
+ const objects = pathPresent(path.join(directory, 'objects'));
63
+ const refs = pathPresent(path.join(directory, 'refs'));
64
+ // objects/refs by themselves are also ordinary application directory names.
65
+ // A bare repository has HEAD, or retains config if HEAD was damaged/deleted.
66
+ if ((objects || refs) && pathPresent(path.join(directory, 'HEAD'))
67
+ || objects && refs && pathPresent(path.join(directory, 'config')))
68
+ throw unavailable();
69
+ const parent = path.dirname(directory);
70
+ if (parent === directory || directory === boundary || ceilings.includes(parent))
71
+ return;
72
+ directory = parent;
73
+ }
74
+ }
75
+ function singleLine(output) {
76
+ const line = output.replace(/(?:\r\n|\n)$/u, '');
77
+ if (!line || /[\r\n\0]/u.test(line))
78
+ throw unavailable();
79
+ return line;
80
+ }
81
+ function confirmAbsentCommit(error, cwd, env, run, checkDeadline) {
82
+ const boundary = nonRepositoryBoundary(error);
83
+ const unborn = diagnostic(error) === 'fatal: Needed a single revision';
84
+ if (boundary === undefined && !unborn)
85
+ throw unavailable();
86
+ try {
87
+ if (!path.isAbsolute(singleLine(run(['rev-parse', '--absolute-git-dir']))))
88
+ throw unavailable();
89
+ }
90
+ catch (probeError) {
91
+ if (boundary === undefined || nonRepositoryBoundary(probeError) === undefined)
92
+ throw unavailable();
93
+ assertNoRepositoryMarker(cwd, boundary, env, checkDeadline);
94
+ return;
95
+ }
96
+ if (!unborn)
97
+ throw unavailable(); // Repository changed during the probes.
98
+ const ref = singleLine(run(['symbolic-ref', '--quiet', 'HEAD']));
99
+ if (!ref.startsWith('refs/heads/'))
100
+ throw unavailable();
101
+ run(['check-ref-format', ref]);
102
+ try {
103
+ run(['show-ref', '--verify', '--quiet', ref]);
104
+ }
105
+ catch (probeError) {
106
+ if (!exitedWith(probeError, 1) || processText(probeError, 'stderr') !== '')
107
+ throw unavailable();
108
+ // Git's quiet lookup also returns 1 for malformed/empty loose refs. Resolve the
109
+ // common-dir aware storage path (including linked worktrees) before accepting absence.
110
+ const refPath = singleLine(run(['rev-parse', '--git-path', ref]));
111
+ if (pathPresent(path.resolve(cwd, refPath)))
112
+ throw unavailable();
113
+ return;
114
+ }
115
+ throw unavailable(); // A ref exists but HEAD could not resolve to a commit.
116
+ }
117
+ /** Resolve immutable provenance; only observed non-repository/unborn states have no commit. */
118
+ export function resolveCheckpointSourceCommit(repositoryRoot, execute = executeGit) {
119
+ const deadline = performance.now() + 5_000;
120
+ const env = { ...process.env, LC_ALL: 'C', LANG: 'C' };
121
+ const remaining = () => {
122
+ const budget = Math.ceil(deadline - performance.now());
123
+ if (budget <= 0)
124
+ throw unavailable();
125
+ return budget;
126
+ };
127
+ const run = (args) => {
128
+ const output = execute('git', args, { cwd: repositoryRoot, encoding: 'utf8', stdio: ['ignore', 'pipe', 'pipe'],
129
+ timeout: remaining(), maxBuffer: 64 * 1024, killSignal: 'SIGKILL', env });
130
+ remaining();
131
+ return output;
132
+ };
133
+ let output;
134
+ try {
135
+ output = run(['rev-parse', '--verify', 'HEAD^{commit}']);
136
+ }
137
+ catch (error) {
138
+ try {
139
+ confirmAbsentCommit(error, repositoryRoot, env, run, remaining);
140
+ remaining();
141
+ return null;
142
+ }
143
+ catch {
144
+ throw unavailable();
145
+ }
146
+ }
147
+ const commit = output.replace(/(?:\r\n|\n)$/u, '');
148
+ if (!/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/u.test(commit)) {
149
+ throw new KiokukoError('INTEGRITY_ERROR', 'Git checkpoint provenance is invalid');
150
+ }
151
+ return commit;
152
+ }
153
+ //# sourceMappingURL=git-provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git-provenance.js","sourceRoot":"","sources":["../../src/memory/git-provenance.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interaction-contract.d.ts","sourceRoot":"","sources":["../../src/memory/interaction-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAS5B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2BlC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBASnC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;kBAWzB,CAAC;AAUZ,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;kBAwBxC,CAAC;AAEH,eAAO,MAAM,+BAA+B,y4FAAy4F,CAAC"}
1
+ {"version":3,"file":"interaction-contract.d.ts","sourceRoot":"","sources":["../../src/memory/interaction-contract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAS5B,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2BlC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBASnC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;kBAazB,CAAC;AAUZ,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;kBAwBxC,CAAC;AAEH,eAAO,MAAM,+BAA+B,y4FAAy4F,CAAC"}
@@ -14,7 +14,7 @@ export const interactionMemorySchema = checkpointMemorySchema.omit({ confidence:
14
14
  .describe('Use user_correction for a durable explicit correction, including its first capture when no stored entry exists.'),
15
15
  generalCommunication: z.boolean().default(false),
16
16
  replaces: z.object({ entryId: identity, expectedRevision: z.number().int().positive() }).strict().optional()
17
- .describe('Only when correcting an identified stored entry: use its actual entry ID and revision. Omit for a correction not yet stored; never invent an ID.'),
17
+ .describe('Only when correcting an identified stored entry: use its actual entry ID and revision. Omit for a correction not yet stored; never invent an ID. If the user asks to change a stored memory but lookup finds no target, clarify its identity instead of creating a competing memory.'),
18
18
  reinforces: z.object({ entryId: identity, expectedRevision: z.number().int().positive() }).strict().optional()
19
19
  .describe('An existing project lesson independently observed again in this run. Keeps its content unchanged; use replaces for corrections.'),
20
20
  }).strict().superRefine((value, ctx) => {
@@ -51,14 +51,16 @@ export const memoryCaptureInputSchema = z.object({
51
51
  export const memoryRecallInputSchema = z.object({
52
52
  soulRead: z.literal(true),
53
53
  capabilities: z.array(z.unknown()).optional(),
54
- query: z.string().trim().min(1).max(4_000),
54
+ query: z.string().trim().min(1).max(4_000)
55
+ .describe('Use concise topic words. Subject-specific preferences require literal subject wording. For cross-language recall include the original-language topic and its English wording. If empty, try one concise reformulation of the same topic; never guess exact subject filters.'),
55
56
  subjects: subjects.optional().describe('Concise topic labels, e.g. Japanese grammar, not Japanese grammar explanations. For recall, omit unless these exact stored labels are known; use query-only recall first.'),
56
57
  temporal: z.unknown().optional().transform((value) => normalizeTemporalConstraint(value))
57
58
  .describe('Optional recorded/occurred time window. Absolute bounds, anchorTime, and timezone are validated and bound for repeatable recall.'),
58
59
  relatedMode: z.enum(['off', 'observe', 'active']).optional()
59
60
  .describe('Enable bounded one-hop same-workspace related candidate discovery; off preserves the existing selection.'),
60
61
  limit: z.number().int().min(1).max(20).default(8),
61
- maxContextChars: z.number().int().min(100).max(12_000).default(4_000),
62
+ maxContextChars: z.number().int().min(100).max(12_000).default(4_000)
63
+ .describe('Total recall response budget: integer from 100 to 12000 characters. Omit to use 4000. This is not the task_prepare context-lane budget.'),
62
64
  }).strict();
63
65
  const sourceRevision = z.object({
64
66
  workspace: identity,
@@ -1 +1 @@
1
- {"version":3,"file":"interaction-contract.js","sourceRoot":"","sources":["../../src/memory/interaction-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interaction-contract.js","sourceRoot":"","sources":["../../src/memory/interaction-contract.ts"],"names":[],"mappings":"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"}
@@ -8,19 +8,9 @@ import { type FederatedScope, type FederatedRecallResult } from './federated-ret
8
8
  import type { HybridSearchRuntime } from './hybrid-retrieval.js';
9
9
  import type { RelatedSearchMode } from './hybrid-retrieval.js';
10
10
  import type { TemporalConstraint } from './temporal.js';
11
+ export { resolveCheckpointSourceCommit } from './git-provenance.js';
11
12
  import type { ProjectFingerprint } from '../repository/project-fingerprint.js';
12
13
  import { type CheckpointOutcome } from '../ledger/checkpoint-contract.js';
13
- interface GitProvenanceExecOptions {
14
- cwd: string;
15
- encoding: 'utf8';
16
- stdio: ['ignore', 'pipe', 'pipe'];
17
- timeout: number;
18
- maxBuffer: number;
19
- env: NodeJS.ProcessEnv;
20
- }
21
- type GitProvenanceExecutor = (executable: string, args: string[], options: GitProvenanceExecOptions) => string;
22
- /** Resolve immutable checkpoint provenance without treating Git failures as an absent commit. */
23
- export declare function resolveCheckpointSourceCommit(repositoryRoot: string, execute?: GitProvenanceExecutor): string | null;
24
14
  export type MemoryScope = FederatedScope;
25
15
  export interface ScopedRecallInput {
26
16
  query: string;
@@ -81,5 +71,4 @@ export interface ScopedCheckpointResult {
81
71
  }
82
72
  export declare function recallScopedMemory(database: SqliteDatabase, input: ScopedRecallInput, runtime?: HybridSearchRuntime): Promise<ScopedRecallResult>;
83
73
  export declare function checkpointScopedMemory(database: SqliteDatabase, input: ScopedCheckpointInput, signal?: AbortSignal): Promise<ScopedCheckpointResult>;
84
- export {};
85
74
  //# sourceMappingURL=scoped-memory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scoped-memory.d.ts","sourceRoot":"","sources":["../../src/memory/scoped-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scoped-memory.d.ts","sourceRoot":"","sources":["../../src/memory/scoped-memory.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,8 @@ import { canonicalJson } from '../serialization/validate.js';
8
8
  import { buildStructuredScope, hasExplicitApplicability } from './structured-memory.js';
9
9
  import { retrieveFederatedMemory } from './federated-retrieval.js';
10
10
  import { analyzePortability } from './portability.js';
11
- import { execFileSync } from 'node:child_process';
11
+ import { resolveCheckpointSourceCommit } from './git-provenance.js';
12
+ export { resolveCheckpointSourceCommit } from './git-provenance.js';
12
13
  import { randomUUID } from 'node:crypto';
13
14
  import { isProxy } from 'node:util/types';
14
15
  import { LedgerStore } from '../ledger/store.js';
@@ -18,54 +19,6 @@ import { assertContextFeedbackRecordable, recordContextFeedbackInTransaction } f
18
19
  import { readContextDelivery } from '../context/delivery.js';
19
20
  import { recordKnowledgePathsInTransaction } from '../akinator/knowledge-path.js';
20
21
  import { CHECKPOINT_COMMAND_FIELD_NAMES, CHECKPOINT_EVIDENCE_FIELD_NAMES, CHECKPOINT_FEEDBACK_FIELD_NAMES, CHECKPOINT_OUTCOMES, CHECKPOINT_RESULT_OUTCOMES, CHECKPOINT_TEST_FIELD_NAMES, CHECKPOINT_VERIFICATION_FIELD_NAMES, MAX_CHECKPOINT_EVIDENCE_ITEMS, MAX_CHECKPOINT_EXECUTABLE_CHARS, MAX_CHECKPOINT_PATHS, MAX_CHECKPOINT_SHORT_TEXT_CHARS, MAX_CHECKPOINT_SIGNALS, } from '../ledger/checkpoint-contract.js';
21
- const GIT_PROVENANCE_TIMEOUT_MS = 5_000;
22
- const GIT_PROVENANCE_MAX_BUFFER = 64 * 1024;
23
- const executeGitProvenance = (executable, args, options) => execFileSync(executable, args, options);
24
- function processFailureText(error, field) {
25
- if (typeof error !== 'object' || error === null)
26
- return undefined;
27
- const value = error[field];
28
- if (typeof value === 'string')
29
- return value;
30
- return Buffer.isBuffer(value) ? value.toString('utf8') : undefined;
31
- }
32
- function expectedMissingGitCommit(error) {
33
- if (typeof error !== 'object' || error === null)
34
- return false;
35
- const failure = error;
36
- if (failure.status !== 128 || failure.signal !== null)
37
- return false;
38
- const stderr = processFailureText(error, 'stderr')?.replaceAll('\r\n', '\n').trimEnd();
39
- return stderr === 'fatal: Needed a single revision'
40
- || stderr === 'fatal: not a git repository (or any of the parent directories): .git';
41
- }
42
- /** Resolve immutable checkpoint provenance without treating Git failures as an absent commit. */
43
- export function resolveCheckpointSourceCommit(repositoryRoot, execute = executeGitProvenance) {
44
- let output;
45
- try {
46
- output = execute('git', ['rev-parse', '--verify', 'HEAD^{commit}'], {
47
- cwd: repositoryRoot,
48
- encoding: 'utf8',
49
- stdio: ['ignore', 'pipe', 'pipe'],
50
- timeout: GIT_PROVENANCE_TIMEOUT_MS,
51
- maxBuffer: GIT_PROVENANCE_MAX_BUFFER,
52
- env: { ...process.env, LC_ALL: 'C', LANG: 'C' },
53
- });
54
- }
55
- catch (error) {
56
- if (expectedMissingGitCommit(error))
57
- return null;
58
- throw new KiokukoError('SERVICE_UNAVAILABLE', 'Git checkpoint provenance could not be resolved');
59
- }
60
- const commit = output.replace(/(?:\r\n|\n)$/u, '');
61
- if (commit !== output && output !== `${commit}\n` && output !== `${commit}\r\n`) {
62
- throw new KiokukoError('INTEGRITY_ERROR', 'Git checkpoint provenance is invalid');
63
- }
64
- if (!/^(?:[0-9a-f]{40}|[0-9a-f]{64})$/u.test(commit)) {
65
- throw new KiokukoError('INTEGRITY_ERROR', 'Git checkpoint provenance is invalid');
66
- }
67
- return commit;
68
- }
69
22
  const CHECKPOINT_MEMORY_FIELDS = new Set([
70
23
  'kind', 'title', 'body', 'summary', 'scope', 'retrievalScope', 'tags', 'confidence',
71
24
  'memoryClass', 'applicability', 'signals', 'portableReason',
@@ -1 +1 @@
1
- {"version":3,"file":"scoped-memory.js","sourceRoot":"","sources":["../../src/memory/scoped-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scoped-memory.js","sourceRoot":"","sources":["../../src/memory/scoped-memory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"detect-root.d.ts","sourceRoot":"","sources":["../../src/repository/detect-root.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,GAAG,WAAW,CAAC;AAErF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAuB5D;AA0BD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,2BAAgC,GAAG,sBAAsB,CAuBtG"}
1
+ {"version":3,"file":"detect-root.d.ts","sourceRoot":"","sources":["../../src/repository/detect-root.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,KAAK,GAAG,YAAY,GAAG,WAAW,CAAC;AAErF,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,WAAW,2BAA2B;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAuB5D;AAeD,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,2BAAgC,GAAG,sBAAsB,CAItG"}
@@ -2,6 +2,7 @@ import { execFileSync } from 'node:child_process';
2
2
  import { existsSync, realpathSync, statSync } from 'node:fs';
3
3
  import path from 'node:path';
4
4
  import { KiokukoError } from '../errors.js';
5
+ import { resolveRepositoryRoot } from './resolve-root.js';
5
6
  export function canonicalDirectory(directory) {
6
7
  if (!path.isAbsolute(directory)) {
7
8
  throw new KiokukoError('VALIDATION_ERROR', 'Directory path must be absolute');
@@ -28,17 +29,6 @@ export function canonicalDirectory(directory) {
28
29
  throw error;
29
30
  }
30
31
  }
31
- function ancestorDirectories(start) {
32
- const directories = [];
33
- let current = canonicalDirectory(start);
34
- for (;;) {
35
- directories.push(current);
36
- const parent = path.dirname(current);
37
- if (parent === current)
38
- return directories;
39
- current = parent;
40
- }
41
- }
42
32
  function gitRoot(cwd) {
43
33
  try {
44
34
  const output = execFileSync('git', ['rev-parse', '--show-toplevel'], {
@@ -54,24 +44,6 @@ function gitRoot(cwd) {
54
44
  }
55
45
  export function detectRepositoryRoot(options = {}) {
56
46
  const cwd = canonicalDirectory(options.cwd ?? process.cwd());
57
- if (options.root !== undefined) {
58
- return { root: canonicalDirectory(options.root), source: 'explicit' };
59
- }
60
- for (const directory of ancestorDirectories(cwd)) {
61
- if (existsSync(path.join(directory, '.kiokuko.json'))) {
62
- return { root: directory, source: 'binding' };
63
- }
64
- }
65
- const discoveredGitRoot = gitRoot(cwd);
66
- if (discoveredGitRoot)
67
- return { root: discoveredGitRoot, source: 'git' };
68
- for (const directory of ancestorDirectories(cwd)) {
69
- if (existsSync(path.join(directory, '.git'))) {
70
- return { root: directory, source: 'git-marker' };
71
- }
72
- }
73
- if (options.allowDirectory)
74
- return { root: cwd, source: 'directory' };
75
- throw new KiokukoError('NOT_FOUND', 'No repository root found; pass --root or --allow-directory');
47
+ return resolveRepositoryRoot(cwd, options.root === undefined ? undefined : canonicalDirectory(options.root), options.allowDirectory === true, { exists: existsSync, gitRoot });
76
48
  }
77
49
  //# sourceMappingURL=detect-root.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect-root.js","sourceRoot":"","sources":["../../src/repository/detect-root.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detect-root.js","sourceRoot":"","sources":["../../src/repository/detect-root.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAe1D,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,iCAAiC,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACtC,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,qCAAqC,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,YAAY;YAAE,MAAM,KAAK,CAAC;QAC/C,MAAM,IAAI,GAAG,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK;YACpD,CAAC,CAAE,KAA+B,CAAC,IAAI;YACvC,CAAC,CAAC,SAAS,CAAC;QACd,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,YAAY,CAAC,WAAW,EAAE,yBAAyB,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1C,MAAM,IAAI,YAAY,CAAC,kBAAkB,EAAE,6BAA6B,CAAC,CAAC;QAC5E,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,GAAW;IAC1B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE;YACnE,GAAG;YACH,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;SACpC,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAAuC,EAAE;IAC5E,MAAM,GAAG,GAAG,kBAAkB,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7D,OAAO,qBAAqB,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,CAAC,EACzG,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { DetectedRepositoryRoot } from './detect-root.js';
2
+ /** Internal decision boundary. Inputs have already been canonicalized by the filesystem adapter. */
3
+ export declare function resolveRepositoryRoot(cwd: string, explicitRoot: string | undefined, allowDirectory: boolean, observations: {
4
+ exists: (file: string) => boolean;
5
+ gitRoot: (cwd: string) => string | undefined;
6
+ }): DetectedRepositoryRoot;
7
+ //# sourceMappingURL=resolve-root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-root.d.ts","sourceRoot":"","sources":["../../src/repository/resolve-root.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,oGAAoG;AACpG,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,cAAc,EAAE,OAAO,EACvB,YAAY,EAAE;IAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAA;CAAE,GAChG,sBAAsB,CAiBxB"}
@@ -0,0 +1,28 @@
1
+ import path from 'node:path';
2
+ import { KiokukoError } from '../errors.js';
3
+ /** Internal decision boundary. Inputs have already been canonicalized by the filesystem adapter. */
4
+ export function resolveRepositoryRoot(cwd, explicitRoot, allowDirectory, observations) {
5
+ if (explicitRoot !== undefined)
6
+ return { root: explicitRoot, source: 'explicit' };
7
+ const ancestors = [];
8
+ for (let directory = cwd;; directory = path.dirname(directory)) {
9
+ ancestors.push(directory);
10
+ if (directory === path.dirname(directory))
11
+ break;
12
+ }
13
+ for (const directory of ancestors) {
14
+ if (observations.exists(path.join(directory, '.kiokuko.json')))
15
+ return { root: directory, source: 'binding' };
16
+ }
17
+ const git = observations.gitRoot(cwd);
18
+ if (git !== undefined)
19
+ return { root: git, source: 'git' };
20
+ for (const directory of ancestors) {
21
+ if (observations.exists(path.join(directory, '.git')))
22
+ return { root: directory, source: 'git-marker' };
23
+ }
24
+ if (allowDirectory)
25
+ return { root: cwd, source: 'directory' };
26
+ throw new KiokukoError('NOT_FOUND', 'No repository root found; pass --root or --allow-directory');
27
+ }
28
+ //# sourceMappingURL=resolve-root.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-root.js","sourceRoot":"","sources":["../../src/repository/resolve-root.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,oGAAoG;AACpG,MAAM,UAAU,qBAAqB,CACnC,GAAW,EACX,YAAgC,EAChC,cAAuB,EACvB,YAAiG;IAEjG,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;IAClF,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,IAAI,SAAS,GAAG,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,MAAM;IACnD,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;QAClC,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAChH,CAAC;IACD,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3D,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;QAClC,IAAI,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IAC1G,CAAC;IACD,IAAI,cAAc;QAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;IAC9D,MAAM,IAAI,YAAY,CAAC,WAAW,EAAE,4DAA4D,CAAC,CAAC;AACpG,CAAC"}
@@ -0,0 +1,147 @@
1
+ # Correction and provenance validation
2
+
3
+ This work fixes checkpoint Git provenance and removes host ancestry assumptions
4
+ from repository-root unit tests. It also adds a reproducible, real-process
5
+ correction harness. Model-selected capture, persistence, retrieval and answer
6
+ quality are separate observations.
7
+
8
+ ## Findings from the plan audit
9
+
10
+ - `fatal: Needed a single revision` also occurs when a referenced object is
11
+ missing. A malformed HEAD can produce the same diagnostic as a non-repository.
12
+ - `git show-ref --verify --quiet` returns status 1 for an absent branch **and for
13
+ empty or malformed loose refs**. Status 1 alone is not proof of an unborn HEAD.
14
+ - The resolver now checks Git directory discovery, symbolic branch identity,
15
+ ref validity and Git's resolved loose-ref path. Bare repositories and linked
16
+ worktrees are covered. Unknown failures remain `SERVICE_UNAVAILABLE`.
17
+ - The five-second budget is shared by Git subprocesses, which use `SIGKILL` on
18
+ timeout and a 64 KiB output bound. Synchronous filesystem calls cannot promise
19
+ a hard wall-clock deadline; the budget is checked around the observations.
20
+ - An unborn HEAD means that its valid symbolic target is currently absent. It
21
+ does not prove the repository has never had commits: deleting a branch can
22
+ produce the same state.
23
+ - The original external 17-assertion harness was unavailable. The table below
24
+ maps the stated contracts to checked-in tests; it does not reconstruct or
25
+ claim to rerun those unidentified assertions.
26
+ - A supersession chain retains foreign-key references. The synthetic purge
27
+ regression removes A, then B, then C before testing replay. It does not relax
28
+ deletion constraints or modify the schema.
29
+ - Capture-off disables automatic interaction capture, not explicit checkpoints.
30
+ Its live scenario therefore corrects the explanation without explicitly asking
31
+ for a save; otherwise a legitimate explicit-save path would invalidate the test.
32
+
33
+ Live baseline failures also exposed model-facing documentation gaps. A recall
34
+ request used a 16,000-character budget although recall permits 100–12,000, and
35
+ a Japanese query missed a preference stored with the English subject
36
+ `Japanese grammar`. In the same synthetic DB, `日本語文法` returned no entries
37
+ while `日本語文法 Japanese grammar` returned the expected entry. Literal subject
38
+ isolation is intentional and remains enforced. Field descriptions now state the
39
+ numeric budget and suggest a bounded, concise bilingual query reformulation.
40
+ They also distinguish an unrecorded correction from an unsuccessful lookup of
41
+ a memory the user says is already stored: the latter requires clarification
42
+ instead of adding a competing entry. These are guidance changes, not a claim
43
+ that the model will always comply; the revised live cohort measures compliance.
44
+
45
+ ## Deterministic coverage
46
+
47
+ | Contract | Checked-in verifier |
48
+ |---|---|
49
+ | Known non-repository diagnostics, malformed refs/HEAD, missing objects, bounded probes, strict SHA | `tests/unit/scoped-memory-git-provenance.test.ts` |
50
+ | Checkpoint failure leaves entries, ledger and run unchanged | `tests/integration/scoped-memory.test.ts` |
51
+ | Root precedence and hermetic no-root decisions | `tests/unit/repository-identity.test.ts` |
52
+ | Real no-root, parent marker, Git and binding in Linux container | `tests/ci/repository-root-smoke.mjs` |
53
+ | Fresh stdio process A→B→C, stale revision, old-result exclusion, exact replay, disabled capture, purge replay | `tests/integration/interaction-memory-process.test.ts` |
54
+ | Transaction rollback, ambiguous/stale/protected targets, project/client/run binding | `tests/integration/interaction-memory.test.ts` |
55
+ | ChatGPT read/read-write, policy and DB owner boundaries | `tests/integration/chatgpt-capture.test.ts`, `tests/integration/chatgpt-mcp.test.ts` |
56
+ | Real concurrent writer and dropped-response recovery in the test apparatus | `tests/ci/interaction-fault-smoke.mjs` |
57
+
58
+ The fault harness forwards original requests and results. The conflict case
59
+ updates the candidate through the real domain API in a separate writer process.
60
+ The response-loss case discards one successful response and allows the real
61
+ client to time out; it does not fabricate a tool error. A deterministic client
62
+ proves the apparatus works. Only a live model trial can prove that the model
63
+ chooses a correct retry.
64
+
65
+ The response-loss live trial explicitly authorizes one retry of the same save
66
+ in its natural user message; it does not supply an operation ID or payload.
67
+ This avoids requiring the model to violate the general instruction against
68
+ unchanged retries. Its isolated server uses the documented
69
+ [`tool_timeout_sec`](https://developers.openai.com/codex/config-reference/)
70
+ override of 10 seconds, within the existing 180-second session budget. The
71
+ baseline with an unspecified tool timeout remained pending until the harness
72
+ deadline, so it did not measure retry behavior. Normal scenarios retain the
73
+ client's timeout setting.
74
+
75
+ ## Live correction scenarios
76
+
77
+ Build first, then run with an already-authenticated compatible Codex CLI:
78
+
79
+ ```bash
80
+ KIOKUKO_SMOKE_SCENARIO=correction npm run test:interaction:live
81
+ ```
82
+
83
+ `KIOKUKO_SMOKE_CODEX` selects an existing executable. Optional
84
+ `KIOKUKO_SMOKE_MODEL` and `KIOKUKO_SMOKE_REASONING_EFFORT` pin the tested settings.
85
+ Unspecified settings are recorded as client defaults, not invented model IDs.
86
+ The CLI version, selected settings, base SHA, working-tree patch hash, untracked
87
+ source hashes and bundled Skill hashes are recorded. A server-side model
88
+ snapshot is not claimed when the client does not expose it.
89
+
90
+ `all`, `global` and `project` retain their existing selection meaning;
91
+ `correction` is an explicit additional suite. Build-dependent commands must run
92
+ serially before the live suite because builds replace `dist`.
93
+
94
+ The correction suite contains 13 independent trials: A→B and A→B→C three times
95
+ each (two fixed prompts and one paraphrase), first capture of a correction,
96
+ ambiguous target, conditional coexistence, disabled capture, revision conflict,
97
+ lost response and project isolation. Each trial uses a separate database. Each
98
+ model invocation is fresh and cannot receive previous receipts, IDs, answers or
99
+ DB snapshots from the evaluator. For ambiguity, the clarification is restated as
100
+ a self-contained new user message; this verifies target selection after an
101
+ explicit clarification, not a resumed application's conversation UX.
102
+
103
+ The model sees only normal bundled guidance, real MCP tools and natural user
104
+ messages. Native memory, plugins, web search, handoff storage and multi-agent
105
+ features are disabled in the subprocess configuration. These are test-local
106
+ settings; personal configuration and real memory are not rewritten.
107
+
108
+ The printed evidence directory contains session inputs, events, answers, final
109
+ DB snapshots and `summary.json`. The evidence excludes reasoning events.
110
+ Tool success requires a real enabled/current receipt, correct identity and
111
+ revision, candidate/untrusted storage and exclusion of superseded entries.
112
+ Responses must also be read against the recorded order/count/topic rubric.
113
+ `automatedResult=passed` alone is **not** end-to-end success: `answerReviewResult`
114
+ remains `not_run` until the independent reading is recorded. A substring match
115
+ or another LLM's unexamined verdict is insufficient.
116
+
117
+ All attempted trials remain recorded, including failures. Infrastructure
118
+ rejections such as an unsupported CLI/model combination stop the remaining
119
+ trials with `blocked`/`not_run`. Unknown execution failures remain `failed`.
120
+ No success-until-retry loop discards failed trials.
121
+
122
+ ## Verification record (2026-10-05 JST)
123
+
124
+ - Base revision: `5f8289f5edf09a3fd37252261c6886fa0f324027`, with uncommitted changes.
125
+ - Focused provenance/root/process and checkpoint tests passed; typecheck passed.
126
+ - Final full suite with loopback permission: 1,836 tests, 1,835 passed, no
127
+ failures, one pre-existing real tunnel-client skip.
128
+ - The sandboxed full run had 97 listener-related failures; it is retained
129
+ separately from the permitted full run.
130
+ - Retrieval evaluation passed (110 queries, Recall@1 0.93, Recall@5 0.99).
131
+ These are the existing synthetic-vector evaluation results, not live semantic
132
+ or answer-quality measurements.
133
+ - Bilingual index evaluation, required sqlite-vec smoke, sample DB/Web API,
134
+ package dry-run and global-install smoke passed.
135
+ - Standard `npm ci` succeeded in an isolated clone with network permission,
136
+ without `--ignore-scripts`. The initial sandboxed attempt failed DNS lookup.
137
+ - The default npm cache was sandbox-inaccessible; pack verification passed
138
+ using a writable temporary cache without changing the user's cache.
139
+ - The offline embedding command verified only the pinned manifest. Actual
140
+ embedding inference and the actual ChatGPT app are outside this validation.
141
+ - The clean Linux-container test is wired into CI. Docker is not available on
142
+ this host's PATH, so its execution here is blocked.
143
+ - Initial live attempts using CLI 0.146.0 were rejected by the API before
144
+ inference because the selected model required a newer CLI. Their original
145
+ logs are preserved; they do not measure memory behavior. The harness now
146
+ recognizes this prerequisite failure and stops subsequent trials.
147
+ - Live CLI 0.160.0 results are pending completion of the current measurement.
@@ -1,5 +1,8 @@
1
1
  # Interaction memory validation
2
2
 
3
+ See [correction and provenance validation](correction-validation.md) for the
4
+ subsequent plan audit, deterministic regressions and live correction harness.
5
+
3
6
  Validated locally on 2026-09-19, macOS arm64, Node.js 26.5.0. These are source and
4
7
  isolated-install results, not a published release or an update to a running client.
5
8
 
@@ -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.23",
4
4
  "description": "Model-agnostic external memory for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {