kiokuko 1.0.30 → 1.0.32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-file/plugin-comment.d.ts +6 -0
- package/dist/agent-file/plugin-comment.d.ts.map +1 -0
- package/dist/agent-file/plugin-comment.js +23 -0
- package/dist/agent-file/plugin-comment.js.map +1 -0
- package/dist/agent-file/render.d.ts +1 -1
- package/dist/agent-file/render.d.ts.map +1 -1
- package/dist/agent-file/render.js +4 -3
- package/dist/agent-file/render.js.map +1 -1
- package/dist/akinator/agent-task.d.ts +2 -0
- package/dist/akinator/agent-task.d.ts.map +1 -1
- package/dist/akinator/agent-task.js +18 -2
- package/dist/akinator/agent-task.js.map +1 -1
- package/dist/akinator/capabilities.d.ts +2 -0
- package/dist/akinator/capabilities.d.ts.map +1 -1
- package/dist/akinator/capabilities.js +7 -0
- package/dist/akinator/capabilities.js.map +1 -1
- package/dist/akinator/coding-routine.d.ts +16 -0
- package/dist/akinator/coding-routine.d.ts.map +1 -0
- package/dist/akinator/coding-routine.js +19 -0
- package/dist/akinator/coding-routine.js.map +1 -0
- package/dist/akinator/instructions.d.ts +1 -1
- package/dist/akinator/instructions.d.ts.map +1 -1
- package/dist/akinator/instructions.js +1 -1
- package/dist/akinator/instructions.js.map +1 -1
- package/dist/akinator/preparation-recovery.d.ts +1 -0
- package/dist/akinator/preparation-recovery.d.ts.map +1 -1
- package/dist/akinator/skill-discovery-attempt.d.ts +1 -1
- package/dist/akinator/skill-discovery-attempt.d.ts.map +1 -1
- package/dist/akinator/skill-discovery-attempt.js +19 -3
- package/dist/akinator/skill-discovery-attempt.js.map +1 -1
- package/dist/assurance/codex-command-receipt.d.ts +21 -0
- package/dist/assurance/codex-command-receipt.d.ts.map +1 -0
- package/dist/assurance/codex-command-receipt.js +93 -0
- package/dist/assurance/codex-command-receipt.js.map +1 -0
- package/dist/assurance/codex-hooks.d.ts +2 -1
- package/dist/assurance/codex-hooks.d.ts.map +1 -1
- package/dist/assurance/codex-hooks.js +68 -30
- package/dist/assurance/codex-hooks.js.map +1 -1
- package/dist/assurance/contracts.d.ts +1 -1
- package/dist/assurance/decisions.d.ts.map +1 -1
- package/dist/assurance/decisions.js +7 -5
- package/dist/assurance/decisions.js.map +1 -1
- package/dist/assurance/hook-diagnostics.d.ts.map +1 -1
- package/dist/assurance/hook-diagnostics.js +10 -6
- package/dist/assurance/hook-diagnostics.js.map +1 -1
- package/dist/cli.js +4 -4
- package/dist/cli.js.map +1 -1
- package/dist/commands/codex-hook.d.ts.map +1 -1
- package/dist/commands/codex-hook.js +27 -9
- package/dist/commands/codex-hook.js.map +1 -1
- package/dist/commands/doctor.d.ts +4 -2
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +64 -24
- package/dist/commands/doctor.js.map +1 -1
- package/dist/mcp/cancellation-journal.d.ts +44 -0
- package/dist/mcp/cancellation-journal.d.ts.map +1 -0
- package/dist/mcp/cancellation-journal.js +58 -0
- package/dist/mcp/cancellation-journal.js.map +1 -0
- package/dist/mcp/request-deadline.d.ts +7 -1
- package/dist/mcp/request-deadline.d.ts.map +1 -1
- package/dist/mcp/request-deadline.js +12 -3
- package/dist/mcp/request-deadline.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +48 -15
- package/dist/mcp/server.js.map +1 -1
- package/dist/setup/render.d.ts.map +1 -1
- package/dist/setup/render.js +2 -1
- package/dist/setup/render.js.map +1 -1
- package/dist/setup/standard-skills.d.ts +2 -2
- package/dist/setup/standard-skills.d.ts.map +1 -1
- package/dist/setup/standard-skills.js +5 -1
- package/dist/setup/standard-skills.js.map +1 -1
- package/docs/agent-file.md +19 -0
- package/docs/getting-started.ja.md +5 -3
- package/docs/getting-started.md +6 -3
- package/docs/memory-assurance.md +77 -8
- package/package.json +1 -1
- package/skills/coding-ideal-routine-skill/SKILL.md +33 -37
- package/skills/coding-ideal-routine-skill/references/repo-contracts.md +54 -0
- package/skills/coding-ideal-routine-skill/references/verification-scenarios.md +32 -0
- package/skills/kiokuko-soul/SKILL.md +7 -0
- package/templates/AGENTS.md +6 -3
|
@@ -20,6 +20,7 @@ export declare const preparationRecoverySchema: z.ZodObject<{
|
|
|
20
20
|
/** Recover only an unexecuted capability-blocked task; retain its immutable history. */
|
|
21
21
|
export declare function recoverTaskPreparation(db: SqliteDatabase, raw: unknown, signal?: AbortSignal): Promise<{
|
|
22
22
|
recoveredFromRunId: string;
|
|
23
|
+
codingRoutine?: NonNullable<ReturnType<typeof import("./coding-routine.js").loadRequiredCodingRoutine>>;
|
|
23
24
|
project: import("../memory/workspaces.js").ResolvedProjectWorkspace;
|
|
24
25
|
executionContext: import("./agent-task.js").AgentTaskExecutionContext;
|
|
25
26
|
intake: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preparation-recovery.d.ts","sourceRoot":"","sources":["../../src/akinator/preparation-recovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAuBvD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;kBAS3B,CAAC;AA2DZ,wFAAwF;AACxF,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW
|
|
1
|
+
{"version":3,"file":"preparation-recovery.d.ts","sourceRoot":"","sources":["../../src/akinator/preparation-recovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAuBvD,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;kBAS3B,CAAC;AA2DZ,wFAAwF;AACxF,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW;;;;;;;;;;;;;mBAXzF,CAAC;;;;;;;;;;;;;;GAyFV"}
|
|
@@ -21,5 +21,5 @@ export declare function claimAgentTaskSkillDiscoveryAttempt(database: SqliteData
|
|
|
21
21
|
selectionBudget: number;
|
|
22
22
|
}): AgentTaskSkillDiscoveryAttemptClaim;
|
|
23
23
|
export declare function completeAgentTaskSkillDiscoveryAttempt(database: SqliteDatabase, identity: AgentTaskSkillDiscoveryAttemptIdentity, summary: SkillDiscoverySummary, assertBeforeComplete?: () => void): SkillDiscoverySummary;
|
|
24
|
-
export declare function failAgentTaskSkillDiscoveryAttempt(database: SqliteDatabase, identity: AgentTaskSkillDiscoveryAttemptIdentity, cause: unknown): never;
|
|
24
|
+
export declare function failAgentTaskSkillDiscoveryAttempt(database: SqliteDatabase, identity: AgentTaskSkillDiscoveryAttemptIdentity, cause: unknown, signal?: AbortSignal): never;
|
|
25
25
|
//# sourceMappingURL=skill-discovery-attempt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-discovery-attempt.d.ts","sourceRoot":"","sources":["../../src/akinator/skill-discovery-attempt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,KAAK,EAAkB,kBAAkB,EAAE,qBAAqB,EAA4B,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-discovery-attempt.d.ts","sourceRoot":"","sources":["../../src/akinator/skill-discovery-attempt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOvD,OAAO,KAAK,EAAkB,kBAAkB,EAAE,qBAAqB,EAA4B,MAAM,oBAAoB,CAAC;AAkF9H,MAAM,WAAW,sCAAsC;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED,MAAM,MAAM,mCAAmC,GAC3C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,qBAAqB,CAAA;CAAE,CAAC;AA2SvD,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sCAAsC,GAC/C,OAAO,CAAC,mCAAmC,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,GAAG,SAAS,CAG9E;AAkBD,wBAAgB,mCAAmC,CACjD,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sCAAsC,EAChD,eAAe,GAAE;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;CAIvB,GACF,mCAAmC,CAoCrC;AAED,wBAAgB,sCAAsC,CACpD,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sCAAsC,EAChD,OAAO,EAAE,qBAAqB,EAC9B,oBAAoB,CAAC,EAAE,MAAM,IAAI,GAChC,qBAAqB,CA8BvB;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,sCAAsC,EAChD,KAAK,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,WAAW,GACnB,KAAK,CAiCP"}
|
|
@@ -13,6 +13,7 @@ const SUMMARY_FIELDS = new Set(['attempted', 'mode', 'requirements', 'queries',
|
|
|
13
13
|
const SELECTED_FIELDS = new Set(['skillId', 'name', 'source', 'officialStatus', 'imported', 'updated']);
|
|
14
14
|
const SUMMARY_FAILURE_FIELDS = new Set(['stage', 'code']);
|
|
15
15
|
const KIOKUKO_FAILURE_FIELDS = new Set(['kind', 'code']);
|
|
16
|
+
const CANCELLED_FAILURE_FIELDS = new Set(['kind']);
|
|
16
17
|
const PROVIDER_FAILURE_FIELDS = new Set(['kind', 'code', 'retryAfterSeconds']);
|
|
17
18
|
const SOURCE_FAILURE_FIELDS = new Set(['kind', 'code', 'retryAfterSeconds']);
|
|
18
19
|
const ERROR_CODES = [
|
|
@@ -184,6 +185,11 @@ function validateSummary(value, mode) {
|
|
|
184
185
|
function validateFailure(value) {
|
|
185
186
|
if (!plainObject(value) || typeof value.kind !== 'string')
|
|
186
187
|
integrity();
|
|
188
|
+
if (value.kind === 'cancelled') {
|
|
189
|
+
if (!exactObject(value, CANCELLED_FAILURE_FIELDS))
|
|
190
|
+
integrity();
|
|
191
|
+
return { kind: 'cancelled' };
|
|
192
|
+
}
|
|
187
193
|
if (value.kind === 'kiokuko') {
|
|
188
194
|
if (!exactObject(value, KIOKUKO_FAILURE_FIELDS)
|
|
189
195
|
|| typeof value.code !== 'string'
|
|
@@ -330,7 +336,15 @@ function resolveExistingAttempt(existing, identity) {
|
|
|
330
336
|
summary: validateSummary(parseCanonicalStoredJson(existing.summary_json, MAX_SUMMARY_JSON_CHARS), identity.mode),
|
|
331
337
|
};
|
|
332
338
|
}
|
|
333
|
-
|
|
339
|
+
const failure = validateFailure(parseCanonicalStoredJson(existing.failure_json, MAX_FAILURE_JSON_CHARS));
|
|
340
|
+
if (failure.kind === 'cancelled') {
|
|
341
|
+
// Cancellation remains a recorded failure. Resume without repeating optional
|
|
342
|
+
// external work; its full reservation stays consumed in the run-wide budget.
|
|
343
|
+
return { kind: 'replay', summary: { mode: identity.mode, attempted: true,
|
|
344
|
+
requirements: [], queries: [], cacheHits: 0, candidates: 0, selected: [],
|
|
345
|
+
failures: [{ stage: 'search', code: 'task_request_cancelled' }] } };
|
|
346
|
+
}
|
|
347
|
+
throwStoredFailure(failure);
|
|
334
348
|
}
|
|
335
349
|
export function readAgentTaskSkillDiscoveryAttempt(database, identity) {
|
|
336
350
|
const existing = attemptRow(database, identity);
|
|
@@ -427,9 +441,11 @@ export function completeAgentTaskSkillDiscoveryAttempt(database, identity, summa
|
|
|
427
441
|
return validateSummary(parseCanonicalStoredJson(completed.summary_json, MAX_SUMMARY_JSON_CHARS), identity.mode);
|
|
428
442
|
});
|
|
429
443
|
}
|
|
430
|
-
export function failAgentTaskSkillDiscoveryAttempt(database, identity, cause) {
|
|
444
|
+
export function failAgentTaskSkillDiscoveryAttempt(database, identity, cause, signal) {
|
|
431
445
|
const normalized = normalizedFailure(cause);
|
|
432
|
-
|
|
446
|
+
// An unrelated security/integrity failure racing an abort must stay fail-closed.
|
|
447
|
+
const cancelled = signal?.aborted === true && cause === signal.reason;
|
|
448
|
+
const serialized = canonicalJson(cancelled ? { kind: 'cancelled' } : normalized.failure);
|
|
433
449
|
try {
|
|
434
450
|
withImmediateTransaction(database, () => {
|
|
435
451
|
const existing = attemptRow(database, identity);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-discovery-attempt.js","sourceRoot":"","sources":["../../src/akinator/skill-discovery-attempt.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skill-discovery-attempt.js","sourceRoot":"","sources":["../../src/akinator/skill-discovery-attempt.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
interface CommandIdentity {
|
|
2
|
+
session_id: string;
|
|
3
|
+
turn_id: string;
|
|
4
|
+
cwd: string;
|
|
5
|
+
tool_name?: string | undefined;
|
|
6
|
+
tool_use_id?: string | undefined;
|
|
7
|
+
transcript_path?: unknown;
|
|
8
|
+
tool_input?: unknown;
|
|
9
|
+
}
|
|
10
|
+
export interface CodexCommandReceipt {
|
|
11
|
+
callId: string;
|
|
12
|
+
processId: string;
|
|
13
|
+
exitCode: number;
|
|
14
|
+
}
|
|
15
|
+
/** The path comes only from the client hook, never a model-facing evidence API.
|
|
16
|
+
* Read the session header and a bounded tail; retain no transcript or stdout.
|
|
17
|
+
* Unfamiliar, missing, ambiguous or unfinished host records provide no evidence.
|
|
18
|
+
*/
|
|
19
|
+
export declare function readCodexCommandReceipt(input: CommandIdentity, repositoryRoot: string): CodexCommandReceipt | null;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=codex-command-receipt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-command-receipt.d.ts","sourceRoot":"","sources":["../../src/assurance/codex-command-receipt.ts"],"names":[],"mappings":"AAKA,UAAU,eAAe;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,mBAAmB;IAAG,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;CAAE;AAW7F;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAsDlH"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { closeSync, constants, fstatSync, lstatSync, openSync, readSync, realpathSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
function object(value) {
|
|
6
|
+
return value !== null && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
|
7
|
+
}
|
|
8
|
+
function commandDirectory(value) {
|
|
9
|
+
if (!value.startsWith('file:'))
|
|
10
|
+
return realpathSync(value);
|
|
11
|
+
const url = new URL(value);
|
|
12
|
+
if (url.search || url.hash)
|
|
13
|
+
throw new Error('Invalid command directory URL');
|
|
14
|
+
return realpathSync(fileURLToPath(url));
|
|
15
|
+
}
|
|
16
|
+
/** The path comes only from the client hook, never a model-facing evidence API.
|
|
17
|
+
* Read the session header and a bounded tail; retain no transcript or stdout.
|
|
18
|
+
* Unfamiliar, missing, ambiguous or unfinished host records provide no evidence.
|
|
19
|
+
*/
|
|
20
|
+
export function readCodexCommandReceipt(input, repositoryRoot) {
|
|
21
|
+
if (!['exec_command', 'Bash', 'write_stdin'].includes(input.tool_name ?? '') || typeof input.transcript_path !== 'string'
|
|
22
|
+
|| !path.isAbsolute(input.transcript_path))
|
|
23
|
+
return null;
|
|
24
|
+
let fd;
|
|
25
|
+
try {
|
|
26
|
+
const sessions = realpathSync(path.join(process.env.CODEX_HOME ?? path.join(homedir(), '.codex'), 'sessions'));
|
|
27
|
+
const file = realpathSync(input.transcript_path);
|
|
28
|
+
if (!file.startsWith(sessions + path.sep) || lstatSync(input.transcript_path).isSymbolicLink()
|
|
29
|
+
|| !path.basename(file).startsWith('rollout-') || !path.basename(file).endsWith(`-${input.session_id}.jsonl`))
|
|
30
|
+
return null;
|
|
31
|
+
fd = openSync(file, constants.O_RDONLY | constants.O_NOFOLLOW | constants.O_NONBLOCK);
|
|
32
|
+
const stat = fstatSync(fd);
|
|
33
|
+
if (!stat.isFile() || (process.getuid && stat.uid !== process.getuid()) || (stat.mode & 0o022) !== 0)
|
|
34
|
+
return null;
|
|
35
|
+
const head = Buffer.alloc(Math.min(stat.size, 64 * 1024));
|
|
36
|
+
readSync(fd, head, 0, head.length, 0);
|
|
37
|
+
const headEnd = head.indexOf(10);
|
|
38
|
+
if (headEnd < 0)
|
|
39
|
+
return null;
|
|
40
|
+
const header = object(JSON.parse(head.subarray(0, headEnd).toString('utf8')));
|
|
41
|
+
const session = object(header.payload);
|
|
42
|
+
if (header.type !== 'session_meta' || session.id !== input.session_id || typeof session.cwd !== 'string'
|
|
43
|
+
|| realpathSync(session.cwd) !== repositoryRoot)
|
|
44
|
+
return null;
|
|
45
|
+
const offset = Math.max(0, stat.size - 2 * 1024 * 1024);
|
|
46
|
+
const tail = Buffer.alloc(stat.size - offset);
|
|
47
|
+
readSync(fd, tail, 0, tail.length, offset);
|
|
48
|
+
if (tail[tail.length - 1] !== 10)
|
|
49
|
+
return null;
|
|
50
|
+
// Ignore only the partial first record of a bounded tail.
|
|
51
|
+
const start = offset === 0 ? 0 : tail.indexOf(10) + 1;
|
|
52
|
+
const end = tail.lastIndexOf(10);
|
|
53
|
+
if (start < 0 || end < start)
|
|
54
|
+
return null;
|
|
55
|
+
const lines = tail.subarray(start, end).toString('utf8').split('\n');
|
|
56
|
+
if (lines.length > 4096)
|
|
57
|
+
return null;
|
|
58
|
+
const args = object(input.tool_input);
|
|
59
|
+
let found = null;
|
|
60
|
+
for (const line of lines) {
|
|
61
|
+
const record = object(JSON.parse(line));
|
|
62
|
+
const event = object(record.payload);
|
|
63
|
+
const item = object(event.item);
|
|
64
|
+
if (record.type !== 'event_msg' || event.type !== 'item_completed' || event.thread_id !== input.session_id
|
|
65
|
+
|| event.turn_id !== input.turn_id || item.type !== 'CommandExecution' || item.source !== 'unified_exec_startup')
|
|
66
|
+
continue;
|
|
67
|
+
const matches = input.tool_name === 'write_stdin'
|
|
68
|
+
? (typeof args.session_id === 'number' || typeof args.session_id === 'string') && item.process_id === String(args.session_id)
|
|
69
|
+
: item.id === input.tool_use_id;
|
|
70
|
+
if (!matches)
|
|
71
|
+
continue;
|
|
72
|
+
if (typeof item.id !== 'string' || !item.id.length || typeof item.process_id !== 'string' || !item.process_id.length
|
|
73
|
+
|| typeof item.cwd !== 'string' || commandDirectory(item.cwd) !== realpathSync(input.cwd)
|
|
74
|
+
|| typeof item.exit_code !== 'number' || !Number.isSafeInteger(item.exit_code)
|
|
75
|
+
|| (item.status !== 'completed' && item.status !== 'failed')
|
|
76
|
+
|| (item.status === 'completed') !== (item.exit_code === 0))
|
|
77
|
+
return null;
|
|
78
|
+
const receipt = { callId: item.id, processId: item.process_id, exitCode: item.exit_code };
|
|
79
|
+
if (found && JSON.stringify(found) !== JSON.stringify(receipt))
|
|
80
|
+
return null;
|
|
81
|
+
found = receipt;
|
|
82
|
+
}
|
|
83
|
+
return found;
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
if (fd !== undefined)
|
|
90
|
+
closeSync(fd);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=codex-command-receipt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codex-command-receipt.js","sourceRoot":"","sources":["../../src/assurance/codex-command-receipt.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,9 +25,10 @@ export declare function parseCodexHookInput(raw: unknown): z.infer<typeof hookSc
|
|
|
25
25
|
export declare function codexHookCorrelationId(fields: Record<string, unknown>): string;
|
|
26
26
|
/** stdout strings are never completion metadata, even when they contain JSON or exit headers. */
|
|
27
27
|
export declare const CODEX_EXECUTION_ADAPTER: {
|
|
28
|
-
readonly id: "codex-hook/structured-exit-code-
|
|
28
|
+
readonly id: "codex-hook/structured-exit-code-v2";
|
|
29
29
|
readonly rawOutputExitMetadata: false;
|
|
30
30
|
readonly structuredExitMetadata: true;
|
|
31
|
+
readonly hostCommandReceiptMetadata: true;
|
|
31
32
|
};
|
|
32
33
|
export declare function observedExitCode(value: unknown): number | null;
|
|
33
34
|
/** Record protocol shape and decision only, never arguments or tool output. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codex-hooks.d.ts","sourceRoot":"","sources":["../../src/assurance/codex-hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAK5B,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"codex-hooks.d.ts","sourceRoot":"","sources":["../../src/assurance/codex-hooks.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAK5B,OAAO,KAAK,EAAE,cAAc,EAAa,MAAM,kBAAkB,CAAC;AAUlE,eAAO,MAAM,qBAAqB,yMAAyM,CAAC;AAE5O,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;iBAKA,CAAC;AAGjB,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAE5E;AACD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAI9E;AAkBD,iGAAiG;AACjG,eAAO,MAAM,uBAAuB;;;;;CAAsJ,CAAC;AAC3L,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAI9D;AAoVD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,GAAG,MAAM,CA2BxE;AACD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAe3D"}
|
|
@@ -13,6 +13,7 @@ import { KiokukoError } from '../errors.js';
|
|
|
13
13
|
import { assuranceState, taskAssuranceReport, insertTaskEvidence, memoryReviewNextAction } from './service.js';
|
|
14
14
|
import { repositoryStateDigest } from './snapshot.js';
|
|
15
15
|
import { parseAssurance } from './contracts.js';
|
|
16
|
+
import { readCodexCommandReceipt } from './codex-command-receipt.js';
|
|
16
17
|
export const CODEX_HOOK_LIMITATION = 'Hooks cover supported client paths only. They do not isolate execution, control an already running process or retract an emitted response. Configuration is not proof of active runtime enforcement.';
|
|
17
18
|
const bounded = z.string().min(1).max(500);
|
|
18
19
|
const hookSchema = z.object({
|
|
@@ -52,21 +53,24 @@ function responseData(value) {
|
|
|
52
53
|
return outer;
|
|
53
54
|
}
|
|
54
55
|
/** stdout strings are never completion metadata, even when they contain JSON or exit headers. */
|
|
55
|
-
export const CODEX_EXECUTION_ADAPTER = { id: 'codex-hook/structured-exit-code-
|
|
56
|
+
export const CODEX_EXECUTION_ADAPTER = { id: 'codex-hook/structured-exit-code-v2', rawOutputExitMetadata: false, structuredExitMetadata: true, hostCommandReceiptMetadata: true };
|
|
56
57
|
export function observedExitCode(value) {
|
|
57
58
|
const response = record(value);
|
|
58
|
-
if (response.session_id !== undefined || response.timed_out === true || response.interrupted === true || response.signal !== undefined || (response.status !== undefined && !['completed', 'finished'].includes(String(response.status))) || response.error !== undefined)
|
|
59
|
+
if (response.isError === true || response.session_id !== undefined || response.timed_out === true || response.interrupted === true || response.signal !== undefined || (response.status !== undefined && !['completed', 'finished'].includes(String(response.status))) || response.error !== undefined)
|
|
59
60
|
return null;
|
|
60
61
|
return typeof response.exit_code === 'number' && Number.isSafeInteger(response.exit_code) ? response.exit_code : null;
|
|
61
62
|
}
|
|
62
63
|
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.';
|
|
64
|
+
// Adapter metadata is private; Codex's strict stdout schema rejects extra keys.
|
|
65
|
+
const denialMetadata = new WeakMap();
|
|
63
66
|
function deny(reason, code = 'identity_violation', recoverable = false) {
|
|
64
67
|
const message = recoverable ? reason : `${reason} ${turnStopReason}`;
|
|
65
|
-
|
|
66
|
-
kiokukoDecision: { reason: code, recoverable, nextAction: recoverable ? 'repair_current_request' : 'stop_and_report' },
|
|
68
|
+
const output = {
|
|
67
69
|
systemMessage: `Kiokuko blocked this tool call: ${message}`,
|
|
68
70
|
hookSpecificOutput: { hookEventName: 'PreToolUse', permissionDecision: 'deny', permissionDecisionReason: message },
|
|
69
71
|
};
|
|
72
|
+
denialMetadata.set(output, { reason: code, recoverable, nextAction: recoverable ? 'repair_current_request' : 'stop_and_report' });
|
|
73
|
+
return output;
|
|
70
74
|
}
|
|
71
75
|
function stopTurn(event) {
|
|
72
76
|
// SubagentStart cannot stop a child with continue:false. Its tool gate still denies.
|
|
@@ -109,7 +113,7 @@ function checkoutFreeHook(input) {
|
|
|
109
113
|
return deny('Project operations require an existing Git checkout. Ordinary conversation can use global memory and bundled Skill reads.', 'repository_required', true);
|
|
110
114
|
}
|
|
111
115
|
/** stdin must come from the installed client hook. Session IDs supplied to model-facing APIs grant no authority. */
|
|
112
|
-
function handleCodexHookEvent(db, raw) {
|
|
116
|
+
function handleCodexHookEvent(db, raw, onBinding, onExitSource) {
|
|
113
117
|
const input = parseCodexHookInput(raw);
|
|
114
118
|
const cwd = realpathSync(input.cwd);
|
|
115
119
|
let root;
|
|
@@ -131,6 +135,7 @@ function handleCodexHookEvent(db, raw) {
|
|
|
131
135
|
}
|
|
132
136
|
const identity = canonicalContentHash({ session: input.session_id, turn: input.turn_id, agent: input.agent_id ?? 'main', root });
|
|
133
137
|
const requestId = `codex-${identity}`;
|
|
138
|
+
onBinding(requestId);
|
|
134
139
|
const now = new Date().toISOString();
|
|
135
140
|
const recoverableDeny = (reason, code) => deny(reason, code, true);
|
|
136
141
|
const denyTurn = (reason, code = 'identity_violation') => {
|
|
@@ -346,37 +351,75 @@ function handleCodexHookEvent(db, raw) {
|
|
|
346
351
|
return {};
|
|
347
352
|
const response = responseData(input.tool_response);
|
|
348
353
|
// Unknown or unfinished client result shapes must never become passing evidence.
|
|
349
|
-
const
|
|
354
|
+
const directExit = observedExitCode(input.tool_response);
|
|
355
|
+
const receipt = directExit === null && typeof input.tool_response === 'string' ? readCodexCommandReceipt(input, root) : null;
|
|
356
|
+
const exitCode = directExit ?? receipt?.exitCode ?? null;
|
|
357
|
+
if (exitCode !== null)
|
|
358
|
+
onExitSource(receipt ? 'host_command_receipt' : 'structured_response', exitCode);
|
|
350
359
|
// Each completion reads its own call and the current assurance revision under
|
|
351
360
|
// the writer lock. A different call may have advanced that revision already.
|
|
352
361
|
return withImmediateTransaction(db, () => {
|
|
353
362
|
const current = db.prepare('SELECT * FROM codex_hook_requests WHERE identity_digest = ?').get(identity);
|
|
354
363
|
if (current?.stop_notified)
|
|
355
364
|
return stopTurn('PostToolUse');
|
|
356
|
-
|
|
365
|
+
const admitted = db.prepare('SELECT * FROM codex_hook_tools WHERE identity_digest = ? AND call_id = ?').get(identity, input.tool_use_id);
|
|
366
|
+
let call = admitted;
|
|
357
367
|
if (!current || current.run_id !== request.run_id || current.state !== 'bound')
|
|
358
368
|
throw new KiokukoError('CONFLICT', 'Tool completion binding changed');
|
|
359
|
-
if (
|
|
360
|
-
throw new KiokukoError('CONFLICT', 'Tool completion has no matching start');
|
|
361
|
-
if (call.run_id !== current.run_id)
|
|
369
|
+
if (admitted && admitted.run_id !== current.run_id)
|
|
362
370
|
throw new KiokukoError('CONFLICT', 'Tool completion binding changed');
|
|
363
|
-
if (
|
|
371
|
+
if (admitted && admitted.input_digest !== canonicalContentHash(input.tool_input ?? null))
|
|
364
372
|
throw new KiokukoError('CONFLICT', 'Tool completion input changed');
|
|
365
373
|
if (input.tool_name === 'write_stdin' && (typeof args.session_id === 'number' || typeof args.session_id === 'string')) {
|
|
366
|
-
|
|
374
|
+
let original = db.prepare('SELECT t.* FROM codex_hook_processes p JOIN codex_hook_tools t ON t.identity_digest=p.identity_digest AND t.call_id=p.call_id WHERE p.identity_digest=? AND p.session_id=?')
|
|
367
375
|
.get(identity, String(args.session_id));
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
376
|
+
// A stdout-only yielded result cannot expose a trusted process ID. A final
|
|
377
|
+
// host receipt can bind that ID to its exact, already admitted command.
|
|
378
|
+
if (!original && receipt)
|
|
379
|
+
original = db.prepare('SELECT * FROM codex_hook_tools WHERE identity_digest=? AND call_id=?')
|
|
380
|
+
.get(identity, receipt.callId);
|
|
381
|
+
if (receipt && original?.call_id !== receipt.callId)
|
|
382
|
+
throw new KiokukoError('CONFLICT', 'Tool completion binding changed');
|
|
383
|
+
// Codex may emit only PostToolUse for write_stdin. Its authority is the
|
|
384
|
+
// original admitted execution and observed session, never a guessed call.
|
|
385
|
+
if (!original)
|
|
386
|
+
throw new KiokukoError('CONFLICT', 'Tool completion has no matching start');
|
|
387
|
+
call = original;
|
|
373
388
|
}
|
|
389
|
+
if (!call)
|
|
390
|
+
throw new KiokukoError('CONFLICT', 'Tool completion has no matching start');
|
|
391
|
+
if (call.run_id !== current.run_id)
|
|
392
|
+
throw new KiokukoError('CONFLICT', 'Tool completion binding changed');
|
|
374
393
|
const run = new LedgerStore(db).readRun(current.run_id);
|
|
375
394
|
if (!run || run.status !== 'active')
|
|
376
395
|
throw new KiokukoError('CONFLICT', 'Tool completion belongs to a terminal run');
|
|
377
396
|
const state = assuranceState(db, current.run_id);
|
|
378
397
|
if (!state || state.repository_root !== root)
|
|
379
398
|
throw new KiokukoError('CONFLICT', 'Tool completion repository changed');
|
|
399
|
+
if (input.tool_name === 'write_stdin' && receipt) {
|
|
400
|
+
db.prepare('INSERT INTO codex_hook_processes VALUES(?,?,?) ON CONFLICT DO NOTHING')
|
|
401
|
+
.run(identity, receipt.processId, call.call_id);
|
|
402
|
+
}
|
|
403
|
+
if (!admitted) {
|
|
404
|
+
// A post-only poll inherits the original admission, but its own identity
|
|
405
|
+
// and input still need a durable binding for exact replay validation.
|
|
406
|
+
db.prepare(`INSERT INTO codex_hook_tools
|
|
407
|
+
(identity_digest,call_id,run_id,delivery_id,input_digest,state_digest,evidence_id,completion_state)
|
|
408
|
+
VALUES (?,?,?,?,?,?,NULL,'unknown')`)
|
|
409
|
+
.run(identity, input.tool_use_id, call.run_id, call.delivery_id, canonicalContentHash(input.tool_input ?? null), call.state_digest);
|
|
410
|
+
}
|
|
411
|
+
// Keep process correlation even if the command changed source before yielding.
|
|
412
|
+
if (exitCode === null && ['Bash', 'exec_command'].includes(input.tool_name) && (typeof response.session_id === 'number' || typeof response.session_id === 'string')) {
|
|
413
|
+
const sessionId = String(response.session_id);
|
|
414
|
+
if (!sessionId.length || sessionId.length > 128)
|
|
415
|
+
throw new KiokukoError('VALIDATION_ERROR', 'Process session ID is invalid');
|
|
416
|
+
const prior = db.prepare('SELECT call_id FROM codex_hook_processes WHERE identity_digest=? AND session_id=?').get(identity, sessionId);
|
|
417
|
+
if (prior && prior.call_id !== call.call_id)
|
|
418
|
+
throw new KiokukoError('CONFLICT', 'Process session ID was reused');
|
|
419
|
+
db.prepare('INSERT INTO codex_hook_processes VALUES(?,?,?) ON CONFLICT DO NOTHING').run(identity, sessionId, call.call_id);
|
|
420
|
+
}
|
|
421
|
+
// Correlation belongs to the admitted process even when its delivery is old.
|
|
422
|
+
// Preserve it for subsequent polls, but never certify the replacement delivery.
|
|
380
423
|
if (call.delivery_id !== state.delivery_id)
|
|
381
424
|
return context('PostToolUse', 'Delivery changed during execution; completion cannot verify the new delivery.');
|
|
382
425
|
if (call.evidence_id && db.prepare('SELECT outcome FROM task_execution_evidence WHERE evidence_id=?').get(call.evidence_id)?.outcome !== 'unknown') {
|
|
@@ -404,15 +447,6 @@ function handleCodexHookEvent(db, raw) {
|
|
|
404
447
|
if (exitCode === null) {
|
|
405
448
|
const running = response.session_id !== undefined || response.status === 'running';
|
|
406
449
|
const next = running ? 'running' : 'unknown';
|
|
407
|
-
if (running && ['Bash', 'exec_command'].includes(input.tool_name) && (typeof response.session_id === 'number' || typeof response.session_id === 'string')) {
|
|
408
|
-
const sessionId = String(response.session_id);
|
|
409
|
-
if (sessionId.length > 128)
|
|
410
|
-
throw new KiokukoError('VALIDATION_ERROR', 'Process session ID is invalid');
|
|
411
|
-
const prior = db.prepare('SELECT call_id FROM codex_hook_processes WHERE identity_digest=? AND session_id=?').get(identity, sessionId);
|
|
412
|
-
if (prior && prior.call_id !== call.call_id)
|
|
413
|
-
throw new KiokukoError('CONFLICT', 'Process session ID was reused');
|
|
414
|
-
db.prepare('INSERT INTO codex_hook_processes VALUES(?,?,?) ON CONFLICT DO NOTHING').run(identity, sessionId, call.call_id);
|
|
415
|
-
}
|
|
416
450
|
if (call.completion_state === next || call.completion_state === 'unknown' && running)
|
|
417
451
|
return {};
|
|
418
452
|
db.prepare('INSERT INTO task_execution_observations(run_id) VALUES(?) ON CONFLICT DO NOTHING').run(current.run_id);
|
|
@@ -443,8 +477,10 @@ export function handleCodexHook(db, raw) {
|
|
|
443
477
|
const input = parseCodexHookInput(raw);
|
|
444
478
|
const response = record(input.tool_response);
|
|
445
479
|
const args = record(input.tool_input);
|
|
446
|
-
const
|
|
447
|
-
|
|
480
|
+
const hostFields = Object.fromEntries(['exit_code', 'exitCode', 'tool_execution', 'tool_result', 'tool_response_metadata', 'execution_metadata', 'transcript_path']
|
|
481
|
+
.map(key => [key, typeof input[key]]));
|
|
482
|
+
const shape = { request: null, hostFields, execution: { occurred: input.hook_event_name === 'PostToolUse', completionRecorded: false, exitCode: observedExitCode(input.tool_response) }, hasArguments: !!args.arguments, hasParameters: !!args.parameters, hasRequestId: !!args.requestId, hasSoulRead: !!args.soulRead, type: typeof input.tool_response, structured: !!response.structuredContent,
|
|
483
|
+
content: Array.isArray(response.content), exitCode: typeof response.exit_code, exitMetadata: observedExitCode(input.tool_response) === null ? 'unavailable' : 'structured', exitSource: 'unavailable', exitAdapter: CODEX_EXECUTION_ADAPTER.id, contractVersion: INTEGRATION_CONTRACT.version, contractId: INTEGRATION_CONTRACT.id, hookPackageVersion: PACKAGE_VERSION, status: typeof response.status };
|
|
448
484
|
const save = (decision, reason, recovery) => withImmediateTransaction(db, () => {
|
|
449
485
|
const diagnostic = { ...shape, reason, recoverable: recovery?.recoverable, nextAction: recovery?.nextAction, call: codexHookCorrelationId(input) };
|
|
450
486
|
db.prepare('INSERT INTO codex_hook_observations VALUES (?, ?, ?, ?, ?, ?)')
|
|
@@ -452,10 +488,12 @@ export function handleCodexHook(db, raw) {
|
|
|
452
488
|
db.prepare('DELETE FROM codex_hook_observations WHERE rowid NOT IN (SELECT rowid FROM codex_hook_observations ORDER BY rowid DESC LIMIT 1000)').run();
|
|
453
489
|
});
|
|
454
490
|
try {
|
|
455
|
-
const result = handleCodexHookEvent(db, input);
|
|
491
|
+
const result = handleCodexHookEvent(db, input, requestId => { shape.request = requestId; }, (source, exitCode) => { shape.exitSource = source; shape.exitMetadata = 'structured'; shape.execution.exitCode = exitCode; });
|
|
492
|
+
shape.execution.completionRecorded = input.hook_event_name === 'PostToolUse';
|
|
456
493
|
const specific = record(record(result).hookSpecificOutput);
|
|
494
|
+
const decision = denialMetadata.get(result);
|
|
457
495
|
try {
|
|
458
|
-
save(specific.permissionDecision === 'deny' ? 'denied' : 'handled',
|
|
496
|
+
save(specific.permissionDecision === 'deny' ? 'denied' : 'handled', decision?.reason, decision);
|
|
459
497
|
}
|
|
460
498
|
catch {
|
|
461
499
|
process.stderr.write('Kiokuko hook observation unavailable: observation_write_failed.\n');
|