kiokuko 1.0.37 → 1.0.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +14 -0
  2. package/dist/agent-file/atomic-write.js +1 -1
  3. package/dist/agent-file/atomic-write.js.map +1 -1
  4. package/dist/agent-file/plugin-comment.js +1 -1
  5. package/dist/agent-file/plugin-comment.js.map +1 -1
  6. package/dist/agent-file/render.d.ts +7 -1
  7. package/dist/agent-file/render.d.ts.map +1 -1
  8. package/dist/agent-file/render.js +37 -7
  9. package/dist/agent-file/render.js.map +1 -1
  10. package/dist/assurance/codex-hooks.d.ts.map +1 -1
  11. package/dist/assurance/codex-hooks.js +8 -7
  12. package/dist/assurance/codex-hooks.js.map +1 -1
  13. package/dist/assurance/conflicts.d.ts +1 -1
  14. package/dist/assurance/conflicts.d.ts.map +1 -1
  15. package/dist/assurance/conflicts.js +1 -1
  16. package/dist/assurance/conflicts.js.map +1 -1
  17. package/dist/assurance/doctor.d.ts +10 -2
  18. package/dist/assurance/doctor.d.ts.map +1 -1
  19. package/dist/assurance/doctor.js +12 -4
  20. package/dist/assurance/doctor.js.map +1 -1
  21. package/dist/assurance/instructions.d.ts.map +1 -1
  22. package/dist/assurance/instructions.js +1 -1
  23. package/dist/assurance/instructions.js.map +1 -1
  24. package/dist/assurance/service.d.ts.map +1 -1
  25. package/dist/assurance/service.js +1 -3
  26. package/dist/assurance/service.js.map +1 -1
  27. package/dist/cli.d.ts.map +1 -1
  28. package/dist/cli.js +26 -8
  29. package/dist/cli.js.map +1 -1
  30. package/dist/commands/doctor.d.ts +4 -1
  31. package/dist/commands/doctor.d.ts.map +1 -1
  32. package/dist/commands/doctor.js +112 -18
  33. package/dist/commands/doctor.js.map +1 -1
  34. package/dist/commands/purge.d.ts.map +1 -1
  35. package/dist/commands/purge.js +2 -0
  36. package/dist/commands/purge.js.map +1 -1
  37. package/dist/commands/replay-review.d.ts +6 -0
  38. package/dist/commands/replay-review.d.ts.map +1 -0
  39. package/dist/commands/replay-review.js +80 -0
  40. package/dist/commands/replay-review.js.map +1 -0
  41. package/dist/commands/uninstall.d.ts.map +1 -1
  42. package/dist/commands/uninstall.js +5 -2
  43. package/dist/commands/uninstall.js.map +1 -1
  44. package/dist/commands/use.d.ts.map +1 -1
  45. package/dist/commands/use.js +58 -3
  46. package/dist/commands/use.js.map +1 -1
  47. package/dist/ledger/checkpoint-contract.d.ts +1 -1
  48. package/dist/ledger/checkpoint-contract.d.ts.map +1 -1
  49. package/dist/ledger/checkpoint-contract.js +1 -1
  50. package/dist/ledger/checkpoint-contract.js.map +1 -1
  51. package/dist/mcp/replay-review.d.ts +13 -0
  52. package/dist/mcp/replay-review.d.ts.map +1 -0
  53. package/dist/mcp/replay-review.js +82 -0
  54. package/dist/mcp/replay-review.js.map +1 -0
  55. package/dist/mcp/server.d.ts.map +1 -1
  56. package/dist/mcp/server.js +28 -48
  57. package/dist/mcp/server.js.map +1 -1
  58. package/dist/memory/hook-observation-dispatch.d.ts +2 -1
  59. package/dist/memory/hook-observation-dispatch.d.ts.map +1 -1
  60. package/dist/memory/hook-observation-dispatch.js +3 -23
  61. package/dist/memory/hook-observation-dispatch.js.map +1 -1
  62. package/dist/memory/interaction-contract.d.ts +1 -1
  63. package/dist/memory/interaction-contract.d.ts.map +1 -1
  64. package/dist/memory/interaction-contract.js +1 -1
  65. package/dist/memory/interaction-contract.js.map +1 -1
  66. package/dist/memory/observation-contract.d.ts +1 -1
  67. package/dist/memory/observations.d.ts +3 -2
  68. package/dist/memory/observations.d.ts.map +1 -1
  69. package/dist/memory/observations.js +14 -192
  70. package/dist/memory/observations.js.map +1 -1
  71. package/dist/memory/replay-extract.d.ts +10 -0
  72. package/dist/memory/replay-extract.d.ts.map +1 -0
  73. package/dist/memory/replay-extract.js +166 -0
  74. package/dist/memory/replay-extract.js.map +1 -0
  75. package/dist/memory/replay-review.d.ts +90 -0
  76. package/dist/memory/replay-review.d.ts.map +1 -0
  77. package/dist/memory/replay-review.js +82 -0
  78. package/dist/memory/replay-review.js.map +1 -0
  79. package/dist/memory/replay-store.d.ts +14 -0
  80. package/dist/memory/replay-store.d.ts.map +1 -0
  81. package/dist/memory/replay-store.js +117 -0
  82. package/dist/memory/replay-store.js.map +1 -0
  83. package/dist/server/routes/passive-memory.d.ts.map +1 -1
  84. package/dist/server/routes/passive-memory.js +0 -7
  85. package/dist/server/routes/passive-memory.js.map +1 -1
  86. package/dist/setup/render.js +2 -2
  87. package/dist/setup/render.js.map +1 -1
  88. package/docs/agenticreplay.ja.md +14 -16
  89. package/docs/agenticreplay.md +16 -16
  90. package/docs/cli-contract.md +30 -0
  91. package/docs/passive-memory.md +7 -48
  92. package/docs/replay-memory-review.md +32 -0
  93. package/package.json +7 -6
  94. package/skills/kiokuko-soul/SKILL.md +5 -27
  95. package/skills/memory-reasoning/SKILL.md +10 -11
  96. package/templates/AGENTS.md +9 -9
@@ -1 +1 @@
1
- {"version":3,"file":"observations.js","sourceRoot":"","sources":["../../src/memory/observations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observations.js","sourceRoot":"","sources":["../../src/memory/observations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ReplayMemoryProposal } from './replay-review.js';
2
+ /** Read only explicit user messages and public call/result fields, never reasoning or system prompts. */
3
+ export declare function extractReplayProposal(input: {
4
+ cwd: string;
5
+ traceDirectory: string;
6
+ taskId: string;
7
+ sessionId: string;
8
+ workspace: string;
9
+ }): Promise<ReplayMemoryProposal>;
10
+ //# sourceMappingURL=replay-extract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-extract.d.ts","sourceRoot":"","sources":["../../src/memory/replay-extract.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAkB/D,yGAAyG;AACzG,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CA+F/K"}
@@ -0,0 +1,166 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { readFile, realpath, stat } from 'node:fs/promises';
3
+ import path from 'node:path';
4
+ import { findSecret, findSecretInValue } from './secrets.js';
5
+ const hash = (bytes) => createHash('sha256').update(bytes).digest('hex');
6
+ const object = (v) => v && typeof v === 'object' && !Array.isArray(v) ? v : {};
7
+ const safe = (v, n = 2048) => {
8
+ if (typeof v !== 'string')
9
+ return '';
10
+ // Redact the whole bounded field when a secret is present; truncation never hides a credential suffix.
11
+ if (findSecret(v))
12
+ return '[redacted secret-bearing field]';
13
+ return v.replace(/[\p{Cc}\p{Cf}]/gu, character => character === '\n' || character === '\t' ? character : ' ').slice(0, n);
14
+ };
15
+ async function bounded(file, root, max) {
16
+ const canonical = await realpath(file);
17
+ if (!canonical.startsWith(root + path.sep))
18
+ throw new Error('replay_scope_mismatch');
19
+ const info = await stat(canonical);
20
+ if (!info.isFile() || info.size > max)
21
+ throw new Error('replay_source_bound');
22
+ const bytes = await readFile(canonical);
23
+ if (bytes.length > max)
24
+ throw new Error('replay_source_bound');
25
+ return bytes;
26
+ }
27
+ /** Read only explicit user messages and public call/result fields, never reasoning or system prompts. */
28
+ export async function extractReplayProposal(input) {
29
+ const root = await realpath(input.cwd), directory = await realpath(input.traceDirectory);
30
+ const runs = await realpath(path.join(root, '.agenticreplay', 'runs'));
31
+ if (!runs.startsWith(root + path.sep) || !directory.startsWith(runs + path.sep))
32
+ throw new Error('replay_scope_mismatch');
33
+ const manifest = object(JSON.parse((await bounded(path.join(directory, 'manifest.json'), directory, 65536)).toString('utf8')));
34
+ if (manifest.schema_version !== '0.4.0' || typeof manifest.run_id !== 'string' || !/^run_[0-9a-f]{6,32}$/u.test(manifest.run_id))
35
+ throw new Error('replay_contract_mismatch');
36
+ const candidates = [];
37
+ for (const name of ['events.jsonl', 'event.jsonl']) {
38
+ try {
39
+ candidates.push(await bounded(path.join(directory, name), directory, 8 * 1024 * 1024));
40
+ }
41
+ catch (error) {
42
+ if (error.code !== 'ENOENT')
43
+ throw error;
44
+ }
45
+ }
46
+ if (candidates.length !== 1)
47
+ throw new Error('replay_event_file_ambiguous_or_missing');
48
+ const bytes = candidates[0], digest = hash(bytes), integrity = object(manifest.integrity);
49
+ if (integrity.events_sha256 !== undefined && integrity.events_sha256 !== digest)
50
+ throw new Error('replay_integrity_mismatch');
51
+ const gaps = ['whole selected replay run; task/session labels supplied by the reviewer, not verified by the trace', ...(integrity.events_sha256 ? [] : ['unsealed trace; completeness is unknown'])];
52
+ const events = [];
53
+ let sequence = -1, blobBytes = 0;
54
+ for (const line of bytes.toString('utf8').split('\n')) {
55
+ if (!line.trim())
56
+ continue;
57
+ if (events.length >= 10000)
58
+ throw new Error('replay_event_bound');
59
+ const raw = object(JSON.parse(line));
60
+ if (!Number.isSafeInteger(raw.seq) || Number(raw.seq) <= sequence || typeof raw.type !== 'string')
61
+ throw new Error('replay_event_invalid');
62
+ sequence = Number(raw.seq);
63
+ let payload = object(raw.payload), payloadHash = hash(JSON.stringify(payload));
64
+ if ('$blob' in payload) {
65
+ const match = typeof payload.$blob === 'string' && /^sha256:([a-f0-9]{64})$/u.exec(payload.$blob);
66
+ if (!match || !Number.isSafeInteger(payload.bytes) || Number(payload.bytes) < 0)
67
+ throw new Error('replay_blob_invalid');
68
+ const data = await bounded(path.join(directory, 'blobs', match[1].slice(0, 2), match[1]), directory, 2 * 1024 * 1024);
69
+ blobBytes += data.length;
70
+ if (blobBytes > 32 * 1024 * 1024 || data.length !== payload.bytes || hash(data) !== match[1])
71
+ throw new Error('replay_blob_integrity');
72
+ payloadHash = match[1];
73
+ payload = object(JSON.parse(data.toString('utf8')));
74
+ }
75
+ events.push({ raw, payload, ref: `${manifest.run_id}:${sequence}`, payloadHash });
76
+ }
77
+ const requestTexts = new Map();
78
+ for (const event of events) {
79
+ if (event.raw.type === 'user.message') {
80
+ const text = safe(event.payload.text);
81
+ if (text)
82
+ requestTexts.set(text, event.ref);
83
+ }
84
+ if (event.raw.type !== 'model.request' || !Array.isArray(event.payload.messages))
85
+ continue;
86
+ for (const message of event.payload.messages) {
87
+ const m = object(message);
88
+ if (m.role !== 'user')
89
+ continue;
90
+ const content = typeof m.content === 'string' ? m.content : Array.isArray(m.content) ? m.content.map(p => { const b = object(p); return b.type === 'text' ? b.text : ''; }).filter(v => typeof v === 'string').join('\n') : '';
91
+ const text = safe(content);
92
+ if (text && requestTexts.size < 20)
93
+ requestTexts.set(text, event.ref);
94
+ }
95
+ }
96
+ const attempts = [];
97
+ for (const call of events.filter(e => e.raw.type === 'tool.call' || e.raw.type === 'shell.call')) {
98
+ if (attempts.length >= 100) {
99
+ gaps.push('only first 100 calls represented');
100
+ break;
101
+ }
102
+ const attrs = object(call.raw.attrs), identity = attrs.attemptId ?? attrs.callId;
103
+ if (typeof attrs.taskId === 'string' && attrs.taskId !== input.taskId)
104
+ continue;
105
+ const taskId = typeof attrs.taskId === 'string' ? attrs.taskId : null;
106
+ const calls = events.filter(e => e.raw.type === 'tool.call' || e.raw.type === 'shell.call');
107
+ const sameIdentity = calls.filter(e => { const a = object(e.raw.attrs); return identity !== undefined && (a.attemptId ?? a.callId) === identity; });
108
+ const matches = events.filter(e => {
109
+ if (!/^(tool|shell)\.result$/u.test(String(e.raw.type)) || Number(e.raw.seq) <= Number(call.raw.seq))
110
+ return false;
111
+ const resultAttrs = object(e.raw.attrs), resultIdentity = resultAttrs.attemptId ?? resultAttrs.callId;
112
+ const causes = Array.isArray(e.raw.causes) ? e.raw.causes : [];
113
+ const causedCalls = calls.filter(c => causes.includes(c.raw.seq));
114
+ if (causedCalls.length)
115
+ return causedCalls.length === 1 && causedCalls[0] === call && (identity === undefined || resultIdentity === undefined || identity === resultIdentity);
116
+ // Identity-only association is safe only if it selects one call in the whole trace.
117
+ return identity !== undefined && resultIdentity === identity && sameIdentity.length === 1;
118
+ });
119
+ const result = matches.length === 1 ? matches[0] : undefined;
120
+ const ra = object(result?.raw.attrs), rp = result?.payload ?? {};
121
+ const exit = typeof ra.exit_code === 'number' && Number.isSafeInteger(ra.exit_code) ? ra.exit_code : undefined;
122
+ const denied = ra.execution_status === 'denied' || ra.permission_decision === 'deny';
123
+ const execution = denied ? 'denied' : result && exit !== undefined ? 'completed' : ra.execution_status === 'started' ? 'started' : result ? 'unknown' : 'attempted';
124
+ const outcome = denied ? 'unknown' : ra.signal || ra.cancelled === true ? 'cancelled' : exit !== undefined ? exit === 0 ? 'succeeded' : 'failed' : ra.is_error === true ? 'failed' : 'unknown';
125
+ const limitations = [...(taskId === null ? ['unassigned session-trace evidence; not verified as belonging to the reviewed task'] : []), ...(result ? [] : [matches.length > 1 ? 'ambiguous results' : 'result missing']), ...(denied ? ['execution was denied; not an executed command failure'] : []), ...(exit === undefined ? ['structured exit metadata unavailable'] : []), 'tool outcome does not establish task success'];
126
+ const content = typeof rp.output === 'string' ? rp.output : typeof rp.stdout === 'string' ? rp.stdout : Array.isArray(rp.content) ? rp.content.map(v => { const b = object(v); return b.type === 'text' ? b.text : ''; }).filter(v => typeof v === 'string').join('\n') : '';
127
+ let argumentsValue = call.payload.arguments ?? call.payload.input ?? call.payload;
128
+ if (typeof argumentsValue === 'string' && argumentsValue.length <= 65536) {
129
+ try {
130
+ argumentsValue = JSON.parse(argumentsValue);
131
+ }
132
+ catch {
133
+ argumentsValue = {};
134
+ }
135
+ }
136
+ const argumentsObject = object(argumentsValue);
137
+ const rawCommand = argumentsObject.command ?? argumentsObject.cmd;
138
+ const command = safe(rawCommand);
139
+ if (typeof rawCommand === 'string' && rawCommand.length > 2048)
140
+ limitations.push('command excerpt truncated at 2048 characters');
141
+ if (content.length > 2048)
142
+ limitations.push('output excerpt truncated at 2048 characters');
143
+ attempts.push({ taskId, attemptId: safe(identity ?? call.ref, 256), tool: safe(attrs.name ?? 'shell', 100), ...(command ? { command } : {}), callRef: call.ref,
144
+ ...(result ? { resultRef: result.ref } : {}), outcome, execution, ...(exit === undefined ? {} : { exitCode: exit }),
145
+ ...(content ? { outputExcerpt: safe(content) } : {}), payloadHashes: [call.payloadHash, ...(result ? [result.payloadHash] : [])], limitations });
146
+ }
147
+ const languages = [];
148
+ for (const [name, pattern] of [['TypeScript', /(?:\.tsx?\b|\btsc\b)/u], ['JavaScript', /(?:\.m?js\b|\bnode\b)/u], ['Python', /(?:\.py\b|\bpython3?\b)/u], ['Rust', /(?:\.rs\b|\bcargo\b)/u]]) {
149
+ const refs = attempts.filter(a => pattern.test(a.command ?? '')).map(a => a.callRef);
150
+ if (refs.length)
151
+ languages.push({ name, basis: 'inferred', evidenceRefs: refs });
152
+ }
153
+ const text = [...requestTexts.keys()].join('\n').slice(0, 4096);
154
+ if (text)
155
+ gaps.push('request text from recorded user-role messages; current human identity and exact task binding require review');
156
+ if (!text)
157
+ gaps.push('user request unavailable');
158
+ const findings = attempts.filter(a => a.outcome === 'succeeded' || a.outcome === 'failed').map(a => ({ taskId: a.taskId ?? null, kind: a.outcome === 'succeeded' ? 'worked' : 'failed', text: `${a.tool}: ${a.command ?? 'recorded call'}; tool outcome ${a.outcome}. Task-level effectiveness remains unverified.`, basis: 'observed', evidenceRefs: [a.callRef, ...(a.resultRef ? [a.resultRef] : [])] }));
159
+ const proposal = { schemaVersion: 1, proposalId: '', revision: 1, source: { workspace: input.workspace, taskId: input.taskId, sessionId: input.sessionId,
160
+ traces: [{ runId: manifest.run_id, eventsSha256: digest, eventsRead: events.length, totalEvents: integrity.events_sha256 ? events.length : null, digestScope: 'complete', complete: gaps.length === 0, gaps }] }, request: { text, evidenceRefs: [...new Set(requestTexts.values())] }, languages, attempts, findings,
161
+ tags: ['agenticreplay', ...languages.map(l => l.name.toLowerCase())], keywords: [...new Set((text + ' ' + attempts.map(a => a.command ?? a.tool).join(' ')).toLowerCase().match(/[\p{L}\p{N}_.-]{2,64}/gu) ?? [])].slice(0, 64) };
162
+ if (findSecretInValue(proposal))
163
+ throw new Error('unsafe_extraction');
164
+ return proposal;
165
+ }
166
+ //# sourceMappingURL=replay-extract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-extract.js","sourceRoot":"","sources":["../../src/memory/replay-extract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ export interface ReplayMemoryProposal {
2
+ schemaVersion: 1;
3
+ proposalId: string;
4
+ revision: number;
5
+ source: {
6
+ taskOutcome?: 'completed' | 'failed';
7
+ workspace: string;
8
+ taskId: string;
9
+ sessionId: string;
10
+ traces: Array<{
11
+ runId: string;
12
+ eventsSha256: string;
13
+ eventsRead: number;
14
+ totalEvents: number | null;
15
+ digestScope?: 'complete' | 'observed_prefix';
16
+ complete: boolean;
17
+ gaps: string[];
18
+ }>;
19
+ };
20
+ request: {
21
+ text: string;
22
+ evidenceRefs: string[];
23
+ };
24
+ languages: Array<{
25
+ name: string;
26
+ basis: 'observed' | 'inferred';
27
+ evidenceRefs: string[];
28
+ }>;
29
+ attempts: Array<{
30
+ taskId?: string | null;
31
+ attemptId: string;
32
+ tool: string;
33
+ command?: string;
34
+ arguments?: unknown;
35
+ signal?: string;
36
+ callRef: string;
37
+ resultRef?: string;
38
+ outcome: 'succeeded' | 'failed' | 'cancelled' | 'unknown';
39
+ execution: 'attempted' | 'started' | 'completed' | 'denied' | 'unknown';
40
+ exitCode?: number;
41
+ outputExcerpt?: string;
42
+ payloadHashes: string[];
43
+ limitations: string[];
44
+ }>;
45
+ findings: Array<{
46
+ taskId?: string | null;
47
+ kind: 'worked' | 'failed' | 'key_point';
48
+ text: string;
49
+ basis: 'observed' | 'verified' | 'inferred' | 'user_corrected';
50
+ evidenceRefs: string[];
51
+ }>;
52
+ tags: string[];
53
+ keywords: string[];
54
+ }
55
+ export interface ReviewQuestion {
56
+ id: string;
57
+ phase: 'organize' | 'review';
58
+ text: string;
59
+ revision?: number;
60
+ digest?: string;
61
+ }
62
+ export interface ReviewAnswer {
63
+ questionId: string;
64
+ choice: 'organize' | 'approve' | 'revise' | 'decline';
65
+ comment?: string;
66
+ }
67
+ export interface ReviewReceipt {
68
+ status: 'saved' | 'declined' | 'unavailable' | 'not_completed';
69
+ workMayContinue: true;
70
+ approvalKey?: string;
71
+ }
72
+ export declare const proposalDigest: (value: ReplayMemoryProposal) => string;
73
+ /** Host-only adapter. Never expose ask/save or a human:true input through a model tool.
74
+ * All candidates remain local until the exact displayed revision is approved.
75
+ * A restart drops the closure. A signal/decline cannot be revived by late extraction.
76
+ */
77
+ export declare function reviewCompletedReplay(deps: {
78
+ completed: boolean;
79
+ taskOutcome?: 'completed' | 'failed';
80
+ taskId: string;
81
+ sessionId: string;
82
+ workspace: string;
83
+ extract: () => Promise<ReplayMemoryProposal>;
84
+ ask: (question: ReviewQuestion) => Promise<ReviewAnswer>;
85
+ save: (proposal: ReplayMemoryProposal, approvalKey: string) => Promise<void>;
86
+ /** Host-only ephemeral retention after exact approval, for uncertain-save reconciliation. */
87
+ onApproved?: (proposal: ReplayMemoryProposal, approvalKey: string) => void;
88
+ signal?: AbortSignal;
89
+ }): Promise<ReviewReceipt>;
90
+ //# sourceMappingURL=replay-review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-review.d.ts","sourceRoot":"","sources":["../../src/memory/replay-review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { createHash, randomUUID } from 'node:crypto';
2
+ import { canonicalJson } from '../serialization/validate.js';
3
+ import { findSecretInValue } from './secrets.js';
4
+ export const proposalDigest = (value) => createHash('sha256').update(canonicalJson(value)).digest('hex');
5
+ /** Host-only adapter. Never expose ask/save or a human:true input through a model tool.
6
+ * All candidates remain local until the exact displayed revision is approved.
7
+ * A restart drops the closure. A signal/decline cannot be revived by late extraction.
8
+ */
9
+ export async function reviewCompletedReplay(deps) {
10
+ const receipt = (status) => ({ status, workMayContinue: true });
11
+ if (!deps.completed)
12
+ return receipt('not_completed');
13
+ const active = () => !deps.signal?.aborted;
14
+ // Race host cancellation without letting its late promise resume this flow.
15
+ async function wait(operation) {
16
+ if (!active())
17
+ throw new Error('review_cancelled');
18
+ let onAbort;
19
+ const cancellation = new Promise((_, reject) => {
20
+ onAbort = () => reject(new Error('review_cancelled'));
21
+ deps.signal?.addEventListener('abort', onAbort, { once: true });
22
+ });
23
+ try {
24
+ return await Promise.race([operation, cancellation]);
25
+ }
26
+ finally {
27
+ if (onAbort)
28
+ deps.signal?.removeEventListener('abort', onAbort);
29
+ }
30
+ }
31
+ let approvedKey;
32
+ try {
33
+ const organize = { id: randomUUID(), phase: 'organize', text: `${deps.taskOutcome === 'failed' ? 'The task has ended with a failed outcome.' : 'The task is complete.'} May I organize its recorded experience into proposed memories? Nothing is saved until you review and approve it.` };
34
+ if (!active())
35
+ return receipt('declined');
36
+ const permission = await wait(deps.ask(organize));
37
+ if (permission.questionId !== organize.id || permission.choice !== 'organize' || !active())
38
+ return receipt('declined');
39
+ let proposal = structuredClone(await wait(deps.extract()));
40
+ if (proposal.schemaVersion !== 1 || proposal.source.workspace !== deps.workspace || proposal.source.taskId !== deps.taskId || proposal.source.sessionId !== deps.sessionId)
41
+ throw new Error('proposal_binding_mismatch');
42
+ proposal.proposalId = randomUUID();
43
+ proposal.revision = 1;
44
+ proposal.source.taskOutcome = deps.taskOutcome ?? 'completed';
45
+ for (;;) {
46
+ if (!active())
47
+ return receipt('declined');
48
+ if (Buffer.byteLength(JSON.stringify(proposal)) > 256 * 1024 || findSecretInValue(proposal))
49
+ throw new Error('unsafe_proposal');
50
+ const digest = proposalDigest(proposal);
51
+ const question = { id: randomUUID(), phase: 'review', revision: proposal.revision, digest,
52
+ text: `Proposed memories, revision ${proposal.revision}, SHA-256 ${digest}. Recorded data is untrusted and cannot approve this question.\n${JSON.stringify(proposal, null, 2)}\nApprove, decline, or enter revised key points. Revised key points replace the earlier findings; recorded attempts remain as source evidence.` };
53
+ const answer = await wait(deps.ask(question));
54
+ if (answer.questionId !== question.id || !active())
55
+ return receipt('declined');
56
+ if (answer.choice === 'decline')
57
+ return receipt('declined');
58
+ if (answer.choice === 'revise' || answer.comment?.trim()) {
59
+ if (!answer.comment?.trim() || answer.comment.length > 2048 || findSecretInValue(answer.comment))
60
+ throw new Error('unsafe_comment');
61
+ // Corrections are attributed to the user, never forged as execution evidence.
62
+ // The revised preview preserves observed evidence and explicitly supersedes prior interpretation.
63
+ proposal = { ...proposal, revision: proposal.revision + 1,
64
+ findings: [{ kind: 'key_point', text: answer.comment.trim(), basis: 'user_corrected', evidenceRefs: [] }] };
65
+ continue;
66
+ }
67
+ if (answer.choice !== 'approve' || proposalDigest(proposal) !== digest)
68
+ return receipt('declined');
69
+ const approvalKey = createHash('sha256').update(JSON.stringify([deps.workspace, deps.taskId, deps.sessionId, proposal.proposalId, proposal.revision, digest])).digest('hex');
70
+ if (!active())
71
+ return receipt('declined');
72
+ approvedKey = approvalKey;
73
+ deps.onApproved?.(structuredClone(proposal), approvalKey);
74
+ await deps.save(structuredClone(proposal), approvalKey);
75
+ return { status: 'saved', workMayContinue: true, approvalKey };
76
+ }
77
+ }
78
+ catch {
79
+ return { ...receipt(approvedKey || active() ? 'unavailable' : 'declined'), ...(approvedKey ? { approvalKey: approvedKey } : {}) };
80
+ }
81
+ }
82
+ //# sourceMappingURL=replay-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-review.js","sourceRoot":"","sources":["../../src/memory/replay-review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { SqliteDatabase } from '../db/adapter.js';
2
+ import { type ReplayMemoryProposal } from './replay-review.js';
3
+ /** Call only from a trusted review adapter's save closure. This is not a model API. */
4
+ export declare function createApprovedReplayMemoryStore(db: SqliteDatabase, workspace: string, indexApproved?: (proposal: ReplayMemoryProposal, approvalKey: string) => {
5
+ id: string;
6
+ revision: number;
7
+ } | void): {
8
+ reconcile: (proposal: ReplayMemoryProposal, approvalKey: string) => "saved" | "unavailable";
9
+ save(proposal: ReplayMemoryProposal, approvalKey: string): void;
10
+ query(query: string, tags?: string[], limit?: number): ReplayMemoryProposal[];
11
+ };
12
+ /** Called by the existing explicitly-confirmed purge inside its transaction. No content survives. */
13
+ export declare function purgeReplayMemoryForEntryInTransaction(db: SqliteDatabase, entryId: string): void;
14
+ //# sourceMappingURL=replay-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-store.d.ts","sourceRoot":"","sources":["../../src/memory/replay-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKvD,OAAO,EAAkB,KAAK,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE/E,uFAAuF;AACvF,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EACnF,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,KAAK;IAAC,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,EAAC,MAAM,CAAA;CAAC,GAAG,IAAI;0BAE9E,oBAAoB,eAAe,MAAM,KAAG,OAAO,GAAG,aAAa;mBAa/E,oBAAoB,eAAe,MAAM,GAAG,IAAI;iBAwClD,MAAM,SAAQ,MAAM,EAAE,mBAAoB,oBAAoB,EAAE;EAchF;AAED,qGAAqG;AACrG,wBAAgB,sCAAsC,CAAC,EAAE,EAAC,cAAc,EAAC,OAAO,EAAC,MAAM,GAAE,IAAI,CAS5F"}
@@ -0,0 +1,117 @@
1
+ import { databaseFileIdentity, openConnection } from '../db/connection.js';
2
+ import { withImmediateTransaction, TransactionCommitUncertainError } from '../db/transaction.js';
3
+ import { parseRetrievalQuery } from './retrieval-query.js';
4
+ import { findSecretInValue } from './secrets.js';
5
+ import { proposalDigest } from './replay-review.js';
6
+ /** Call only from a trusted review adapter's save closure. This is not a model API. */
7
+ export function createApprovedReplayMemoryStore(db, workspace, indexApproved) {
8
+ const fileIdentity = db.filePath === ':memory:' ? undefined : databaseFileIdentity(db.filePath);
9
+ function reconcile(proposal, approvalKey) {
10
+ if (!fileIdentity || proposal.source.workspace !== workspace || !/^[a-f0-9]{64}$/u.test(approvalKey))
11
+ return 'unavailable';
12
+ let independent;
13
+ try {
14
+ independent = openConnection(db.filePath, { readOnly: true, expectedFileIdentity: fileIdentity });
15
+ const receipt = independent.prepare('SELECT digest,workspace FROM replay_memory_receipts WHERE approval_key=?').get(approvalKey);
16
+ return receipt?.digest === proposalDigest(proposal) && receipt.workspace === workspace ? 'saved' : 'unavailable';
17
+ }
18
+ catch {
19
+ return 'unavailable';
20
+ }
21
+ finally {
22
+ independent?.close();
23
+ }
24
+ }
25
+ return {
26
+ // Reconciliation never writes or generates another approval identity.
27
+ reconcile,
28
+ save(proposal, approvalKey) {
29
+ const owned = structuredClone(proposal), digest = proposalDigest(owned);
30
+ const contentHash = proposalDigest({ ...owned, proposalId: "", revision: 0 });
31
+ if (owned.source.workspace !== workspace || owned.schemaVersion !== 1 || owned.revision < 1
32
+ || !/^[a-f0-9]{64}$/u.test(approvalKey) || findSecretInValue(owned)
33
+ || Buffer.byteLength(JSON.stringify(owned)) > 256 * 1024)
34
+ throw new Error('invalid_approved_memory');
35
+ try {
36
+ withImmediateTransaction(db, () => {
37
+ // Tables and candidate contents are created only after approval. Rollback covers indexing too.
38
+ db.exec(`CREATE TABLE IF NOT EXISTS replay_memories(approval_key TEXT PRIMARY KEY, workspace TEXT NOT NULL, task_id TEXT NOT NULL, session_id TEXT NOT NULL, proposal_id TEXT NOT NULL, revision INTEGER NOT NULL, digest TEXT NOT NULL, proposal_json TEXT NOT NULL, created_at TEXT NOT NULL);
39
+ CREATE TABLE IF NOT EXISTS replay_memory_terms(approval_key TEXT NOT NULL REFERENCES replay_memories(approval_key), term TEXT NOT NULL, kind TEXT NOT NULL, PRIMARY KEY(approval_key,term,kind));
40
+ CREATE INDEX IF NOT EXISTS replay_memory_terms_lookup ON replay_memory_terms(term);
41
+ CREATE TABLE IF NOT EXISTS replay_memory_receipts(approval_key TEXT PRIMARY KEY,workspace TEXT NOT NULL,digest TEXT NOT NULL,memory_key TEXT NOT NULL);
42
+ CREATE TABLE IF NOT EXISTS replay_memory_content(workspace TEXT NOT NULL,content_hash TEXT NOT NULL,memory_key TEXT NOT NULL,PRIMARY KEY(workspace,content_hash));
43
+ CREATE TABLE IF NOT EXISTS replay_memory_entries(memory_key TEXT PRIMARY KEY,entry_id TEXT NOT NULL,entry_revision INTEGER NOT NULL);
44
+ CREATE TABLE IF NOT EXISTS replay_memory_retired(approval_key TEXT PRIMARY KEY);`);
45
+ if (db.prepare('SELECT 1 FROM replay_memory_retired WHERE approval_key=?').get(approvalKey))
46
+ throw new Error('approval_retired');
47
+ const prior = db.prepare('SELECT digest,workspace FROM replay_memory_receipts WHERE approval_key=?').get(approvalKey);
48
+ if (prior) {
49
+ if (prior.digest !== digest || prior.workspace !== workspace)
50
+ throw new Error('approval_key_conflict');
51
+ return;
52
+ }
53
+ const duplicate = db.prepare('SELECT memory_key FROM replay_memory_content WHERE workspace=? AND content_hash=?').get(workspace, contentHash);
54
+ db.prepare('INSERT INTO replay_memory_receipts VALUES(?,?,?,?)').run(approvalKey, workspace, digest, duplicate?.memory_key ?? approvalKey);
55
+ if (duplicate)
56
+ return;
57
+ db.prepare('INSERT INTO replay_memory_content VALUES(?,?,?)').run(workspace, contentHash, approvalKey);
58
+ db.prepare('INSERT INTO replay_memories VALUES(?,?,?,?,?,?,?,?,?)').run(approvalKey, workspace, owned.source.taskId, owned.source.sessionId, owned.proposalId, owned.revision, digest, JSON.stringify(owned), new Date().toISOString());
59
+ for (const [kind, terms] of [['tag', owned.tags], ['keyword', owned.keywords]]) {
60
+ for (const term of [...new Set(terms.flatMap(t => { const parsed = parseRetrievalQuery(t); return [t.toLowerCase(), ...parsed.lexicalTerms, ...parsed.substringTerms]; }).filter(t => t.length > 0 && t.length <= 64))].slice(0, 256)) {
61
+ db.prepare('INSERT INTO replay_memory_terms VALUES(?,?,?)').run(approvalKey, term, kind);
62
+ }
63
+ }
64
+ const entry = indexApproved?.(owned, approvalKey);
65
+ if (entry)
66
+ db.prepare('INSERT INTO replay_memory_entries VALUES(?,?,?)').run(approvalKey, entry.id, entry.revision);
67
+ });
68
+ }
69
+ catch (error) {
70
+ // A lost COMMIT acknowledgment is not permission for another key or another write.
71
+ if (error instanceof TransactionCommitUncertainError) {
72
+ // The writer may still hold an uncommitted transaction. Its own reads prove nothing.
73
+ // Only a separate read-only connection to the same file can establish durability.
74
+ if (reconcile(owned, approvalKey) === 'saved')
75
+ return;
76
+ }
77
+ throw error;
78
+ }
79
+ },
80
+ query(query, tags = [], limit = 10) {
81
+ if (!db.prepare("SELECT 1 FROM sqlite_master WHERE type='table' AND name='replay_memories'").get())
82
+ return [];
83
+ const parsed = parseRetrievalQuery(query);
84
+ const terms = [...new Set([...tags, ...parsed.lexicalTerms, ...parsed.substringTerms].map(t => t.toLowerCase()))].slice(0, 64);
85
+ if (!terms.length)
86
+ return [];
87
+ const indexed = db.prepare("SELECT 1 FROM sqlite_master WHERE name='entries'").get();
88
+ const live = indexed ? "AND NOT EXISTS(SELECT 1 FROM replay_memory_entries r WHERE r.memory_key=m.approval_key AND NOT EXISTS(SELECT 1 FROM entries e WHERE e.id=r.entry_id AND e.current_revision=r.entry_revision AND e.status<>'superseded'))" : "";
89
+ const rows = db.prepare(`SELECT m.proposal_json,m.digest,COUNT(DISTINCT t.term) AS score FROM replay_memories m
90
+ JOIN replay_memory_terms t USING(approval_key) WHERE m.workspace=? ${live} AND t.term IN (${terms.map(() => '?').join(',')})
91
+ GROUP BY m.approval_key ORDER BY score DESC,m.created_at DESC LIMIT ?`).all(workspace, ...terms, Math.max(1, Math.min(50, limit)));
92
+ return rows.flatMap(row => {
93
+ try {
94
+ const p = JSON.parse(row.proposal_json);
95
+ return proposalDigest(p) === row.digest && p.source.workspace === workspace ? [p] : [];
96
+ }
97
+ catch {
98
+ return [];
99
+ }
100
+ });
101
+ },
102
+ };
103
+ }
104
+ /** Called by the existing explicitly-confirmed purge inside its transaction. No content survives. */
105
+ export function purgeReplayMemoryForEntryInTransaction(db, entryId) {
106
+ if (!db.prepare("SELECT 1 FROM sqlite_master WHERE name='replay_memory_entries'").get())
107
+ return;
108
+ const rows = db.prepare('SELECT memory_key FROM replay_memory_entries WHERE entry_id=?').all(entryId);
109
+ for (const { memory_key: key } of rows) {
110
+ db.prepare('INSERT OR IGNORE INTO replay_memory_retired SELECT approval_key FROM replay_memory_receipts WHERE memory_key=?').run(key);
111
+ for (const table of ['replay_memory_receipts', 'replay_memory_content', 'replay_memory_entries'])
112
+ db.prepare(`DELETE FROM ${table} WHERE memory_key=?`).run(key);
113
+ db.prepare('DELETE FROM replay_memory_terms WHERE approval_key=?').run(key);
114
+ db.prepare('DELETE FROM replay_memories WHERE approval_key=?').run(key);
115
+ }
116
+ }
117
+ //# sourceMappingURL=replay-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-store.js","sourceRoot":"","sources":["../../src/memory/replay-store.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"passive-memory.d.ts","sourceRoot":"","sources":["../../../src/server/routes/passive-memory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG3F;AACD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,cAAc,CAAC,GAAG,cAAc,CAkBtH"}
1
+ {"version":3,"file":"passive-memory.d.ts","sourceRoot":"","sources":["../../../src/server/routes/passive-memory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGzD,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAG3F;AACD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,UAAU,GAAG,cAAc,CAAC,GAAG,cAAc,CActH"}