kiokuko-dsh 0.2.27 → 0.2.28

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 (66) hide show
  1. package/dist/dsh/agenticreplay-host.d.ts.map +1 -1
  2. package/dist/dsh/agenticreplay-host.js +5 -1
  3. package/dist/dsh/agenticreplay-host.js.map +1 -1
  4. package/dist/dsh/agenticreplay-libraries.d.ts +1 -0
  5. package/dist/dsh/agenticreplay-libraries.d.ts.map +1 -1
  6. package/dist/dsh/agenticreplay-libraries.js.map +1 -1
  7. package/dist/dsh/agenticreplay-recorder.d.ts.map +1 -1
  8. package/dist/dsh/agenticreplay-recorder.js +22 -10
  9. package/dist/dsh/agenticreplay-recorder.js.map +1 -1
  10. package/dist/dsh/agenticreplay-security.d.ts.map +1 -1
  11. package/dist/dsh/agenticreplay-security.js +40 -6
  12. package/dist/dsh/agenticreplay-security.js.map +1 -1
  13. package/dist/dsh/agenticreplay-types.d.ts +3 -0
  14. package/dist/dsh/agenticreplay-types.d.ts.map +1 -1
  15. package/dist/dsh/agenticreplay-types.js.map +1 -1
  16. package/dist/dsh/coding-workflow/host.d.ts +1 -0
  17. package/dist/dsh/coding-workflow/host.d.ts.map +1 -1
  18. package/dist/dsh/coding-workflow/host.js +10 -0
  19. package/dist/dsh/coding-workflow/host.js.map +1 -1
  20. package/dist/dsh/coding-workflow/service.d.ts +6 -2
  21. package/dist/dsh/coding-workflow/service.d.ts.map +1 -1
  22. package/dist/dsh/coding-workflow/service.js +6 -5
  23. package/dist/dsh/coding-workflow/service.js.map +1 -1
  24. package/dist/dsh/core/host.d.ts.map +1 -1
  25. package/dist/dsh/core/host.js +10 -1
  26. package/dist/dsh/core/host.js.map +1 -1
  27. package/dist/dsh/execution-support.d.ts.map +1 -1
  28. package/dist/dsh/execution-support.js +2 -0
  29. package/dist/dsh/execution-support.js.map +1 -1
  30. package/dist/dsh/lifecycle-memory.d.ts +1 -0
  31. package/dist/dsh/lifecycle-memory.d.ts.map +1 -1
  32. package/dist/dsh/lifecycle-memory.js +7 -0
  33. package/dist/dsh/lifecycle-memory.js.map +1 -1
  34. package/dist/dsh/memory-application.d.ts +9 -9
  35. package/dist/dsh/memory-application.d.ts.map +1 -1
  36. package/dist/dsh/memory-application.js +448 -147
  37. package/dist/dsh/memory-application.js.map +1 -1
  38. package/dist/dsh/on-demand-intake.d.ts +13 -0
  39. package/dist/dsh/on-demand-intake.d.ts.map +1 -1
  40. package/dist/dsh/on-demand-intake.js +30 -7
  41. package/dist/dsh/on-demand-intake.js.map +1 -1
  42. package/dist/dsh/repository-learning-reflector.d.ts +58 -0
  43. package/dist/dsh/repository-learning-reflector.d.ts.map +1 -0
  44. package/dist/dsh/repository-learning-reflector.js +230 -0
  45. package/dist/dsh/repository-learning-reflector.js.map +1 -0
  46. package/dist/dsh/repository-learning.d.ts +34 -0
  47. package/dist/dsh/repository-learning.d.ts.map +1 -0
  48. package/dist/dsh/repository-learning.js +512 -0
  49. package/dist/dsh/repository-learning.js.map +1 -0
  50. package/dist/locale/en.json +1 -1
  51. package/dist/locale/ja.json +1 -1
  52. package/dist/locale/ko.json +1 -1
  53. package/dist/locale/zh-CN.json +1 -1
  54. package/dist/memory/forget.d.ts +2 -2
  55. package/dist/memory/forget.d.ts.map +1 -1
  56. package/dist/memory/forget.js +175 -74
  57. package/dist/memory/forget.js.map +1 -1
  58. package/dist/memory/repository-learning.d.ts +106 -0
  59. package/dist/memory/repository-learning.d.ts.map +1 -0
  60. package/dist/memory/repository-learning.js +348 -0
  61. package/dist/memory/repository-learning.js.map +1 -0
  62. package/docs/agenticreplay-recording.md +20 -2
  63. package/docs/on-demand-intake.md +8 -2
  64. package/docs/repository-learning.md +109 -0
  65. package/migrations/048_repository_learning.sql +65 -0
  66. package/package.json +5 -1
@@ -1,31 +1,47 @@
1
- import { purgeReplayMemoryForEntryInTransaction } from './replay-store.js';
2
- import { withImmediateTransaction } from '../db/transaction.js';
3
- import { canonicalEntryRevisionContentHash } from '../serialization/validate.js';
4
- import { KiokukoError } from '../errors.js';
5
- import { readEntry } from './entries.js';
6
- import { readRevisionEvidence } from './evidence.js';
7
- import { provenanceSourceHash } from './forgotten.js';
1
+ import { purgeRepositoryLearningForWorkspaceInTransaction } from "./repository-learning.js";
2
+ import { purgeReplayMemoryForEntryInTransaction } from "./replay-store.js";
3
+ import { withImmediateTransaction } from "../db/transaction.js";
4
+ import { canonicalEntryRevisionContentHash, } from "../serialization/validate.js";
5
+ import { KiokukoError } from "../errors.js";
6
+ import { readEntry } from "./entries.js";
7
+ import { readRevisionEvidence } from "./evidence.js";
8
+ import { provenanceSourceHash } from "./forgotten.js";
8
9
  function references(value, ids) {
9
- if (typeof value === 'string')
10
+ if (typeof value === "string")
10
11
  return ids.has(value);
11
12
  if (Array.isArray(value))
12
- return value.some(item => references(item, ids));
13
- return !!value && typeof value === 'object' && Object.values(value).some(item => references(item, ids));
13
+ return value.some((item) => references(item, ids));
14
+ return (!!value &&
15
+ typeof value === "object" &&
16
+ Object.values(value).some((item) => references(item, ids)));
14
17
  }
15
18
  /** Dependency manifests are authoritative even when a derived revision is historical. */
16
19
  function dependentEntries(db, entryId) {
17
20
  const ids = new Set([entryId]);
18
- const derived = [...db.prepare('SELECT entry_id,manifest_json FROM memory_index_facts').all(),
19
- ...db.prepare('SELECT entry_id,manifest_json FROM memory_derivations').all()];
20
- const projections = db.prepare('SELECT entry_id,global_entry_id FROM auto_global_projections').all();
21
- const manual = db.prepare("SELECT entry_id,provenance_json FROM entry_revisions WHERE json_extract(provenance_json,'$.type')='curator_globalize'")
21
+ const derived = [
22
+ ...db
23
+ .prepare("SELECT entry_id,manifest_json FROM memory_index_facts")
24
+ .all(),
25
+ ...db
26
+ .prepare("SELECT entry_id,manifest_json FROM memory_derivations")
27
+ .all(),
28
+ ];
29
+ const projections = db
30
+ .prepare("SELECT entry_id,global_entry_id FROM auto_global_projections")
31
+ .all();
32
+ const manual = db
33
+ .prepare("SELECT entry_id,provenance_json FROM entry_revisions WHERE json_extract(provenance_json,'$.type')='curator_globalize'")
34
+ .all();
35
+ const links = db
36
+ .prepare("SELECT from_entry_id,to_entry_id FROM entry_links WHERE relation='derived_from'")
22
37
  .all();
23
- const links = db.prepare("SELECT from_entry_id,to_entry_id FROM entry_links WHERE relation='derived_from'").all();
24
38
  let changed = true;
25
- const add = (id) => { if (!ids.has(id)) {
26
- ids.add(id);
27
- changed = true;
28
- } };
39
+ const add = (id) => {
40
+ if (!ids.has(id)) {
41
+ ids.add(id);
42
+ changed = true;
43
+ }
44
+ };
29
45
  while (changed) {
30
46
  changed = false;
31
47
  for (const row of derived)
@@ -39,17 +55,20 @@ function dependentEntries(db, entryId) {
39
55
  add(row.from_entry_id);
40
56
  for (const row of manual) {
41
57
  const provenance = JSON.parse(row.provenance_json);
42
- if (provenance.reference && ids.has(provenance.reference.split('@')[0]))
58
+ if (provenance.reference && ids.has(provenance.reference.split("@")[0]))
43
59
  add(row.entry_id);
44
60
  }
45
61
  }
46
62
  return ids;
47
63
  }
48
64
  function eraseEntry(db, id, retirement, now) {
49
- const entry = db.prepare('SELECT workspace,current_revision FROM entries WHERE id=?').get(id);
65
+ const entry = db
66
+ .prepare("SELECT workspace,current_revision FROM entries WHERE id=?")
67
+ .get(id);
50
68
  if (!entry)
51
- throw new KiokukoError('INTEGRITY_ERROR', 'Memory dependency points to missing entry');
52
- const revisions = db.prepare('SELECT revision,kind,content_hash,provenance_json FROM entry_revisions WHERE entry_id=?')
69
+ throw new KiokukoError("INTEGRITY_ERROR", "Memory dependency points to missing entry");
70
+ const revisions = db
71
+ .prepare("SELECT revision,kind,content_hash,provenance_json FROM entry_revisions WHERE entry_id=?")
53
72
  .all(id);
54
73
  const sources = [];
55
74
  for (const revision of revisions) {
@@ -57,76 +76,127 @@ function eraseEntry(db, id, retirement, now) {
57
76
  const hash = provenanceSourceHash(provenance);
58
77
  if (hash)
59
78
  sources.push({ provenanceHash: hash });
60
- if (typeof provenance.runId === 'string')
79
+ if (typeof provenance.runId === "string")
61
80
  retirement.runs.add(provenance.runId);
62
81
  const evidence = readRevisionEvidence(db, id, revision.revision, entry.workspace);
63
82
  if (evidence)
64
- for (const source of evidence.claims.flatMap(claim => claim.sources))
65
- sources.push({ sessionId: source.sessionId, generation: source.sourceGeneration, hash: source.sourceHash });
83
+ for (const source of evidence.claims.flatMap((claim) => claim.sources))
84
+ sources.push({
85
+ sessionId: source.sessionId,
86
+ generation: source.sourceGeneration,
87
+ hash: source.sourceHash,
88
+ });
66
89
  }
67
- for (const effect of db.prepare('SELECT job_id,run_id,session_id,source_generation,evidence_json FROM memory_review_effects WHERE entry_id=?')
90
+ for (const effect of db
91
+ .prepare("SELECT job_id,run_id,session_id,source_generation,evidence_json FROM memory_review_effects WHERE entry_id=?")
68
92
  .all(id)) {
69
93
  retirement.reviewJobs.add(effect.job_id);
70
94
  retirement.runs.add(effect.run_id);
71
95
  for (const source of JSON.parse(effect.evidence_json))
72
- sources.push({ sessionId: effect.session_id, generation: effect.source_generation, hash: source.normalizedSourceHash });
96
+ sources.push({
97
+ sessionId: effect.session_id,
98
+ generation: effect.source_generation,
99
+ hash: source.normalizedSourceHash,
100
+ });
73
101
  }
74
- for (const row of db.prepare('SELECT run_id FROM dsh_memory_finalization_entries WHERE entry_id=?').all(id))
102
+ for (const row of db
103
+ .prepare("SELECT run_id FROM dsh_memory_finalization_entries WHERE entry_id=?")
104
+ .all(id))
75
105
  retirement.runs.add(row.run_id);
76
- for (const row of db.prepare('SELECT run_id FROM dsh_task_source_entries WHERE entry_id=?').all(id))
106
+ for (const row of db
107
+ .prepare("SELECT run_id FROM dsh_task_source_entries WHERE entry_id=?")
108
+ .all(id))
77
109
  retirement.runs.add(row.run_id);
78
110
  retirement.sources.push(...sources);
79
- db.prepare('INSERT OR IGNORE INTO memory_forget_tombstones VALUES(?,?,?,?,?,?)')
80
- .run(id, entry.workspace, entry.current_revision, JSON.stringify(revisions.map(row => row.content_hash)), JSON.stringify(sources), now);
111
+ db.prepare("INSERT OR IGNORE INTO memory_forget_tombstones VALUES(?,?,?,?,?,?)").run(id, entry.workspace, entry.current_revision, JSON.stringify(revisions.map((row) => row.content_hash)), JSON.stringify(sources), now);
81
112
  for (const revision of revisions) {
82
- const provenance = { type: 'forgotten', reference: `${id}:${revision.revision}` };
83
- const hash = canonicalEntryRevisionContentHash({ kind: revision.kind, title: '[forgotten]', body: '[forgotten]', summary: null, scope: {}, provenance, tags: [] });
84
- db.prepare("UPDATE entry_revisions SET title='[forgotten]',body='[forgotten]',summary=NULL,scope_json='{}',provenance_json=?,content_hash=? WHERE entry_id=? AND revision=?")
85
- .run(JSON.stringify(provenance), hash, id, revision.revision);
113
+ const provenance = {
114
+ type: "forgotten",
115
+ reference: `${id}:${revision.revision}`,
116
+ };
117
+ const hash = canonicalEntryRevisionContentHash({
118
+ kind: revision.kind,
119
+ title: "[forgotten]",
120
+ body: "[forgotten]",
121
+ summary: null,
122
+ scope: {},
123
+ provenance,
124
+ tags: [],
125
+ });
126
+ db.prepare("UPDATE entry_revisions SET title='[forgotten]',body='[forgotten]',summary=NULL,scope_json='{}',provenance_json=?,content_hash=? WHERE entry_id=? AND revision=?").run(JSON.stringify(provenance), hash, id, revision.revision);
86
127
  }
128
+ purgeRepositoryLearningForWorkspaceInTransaction(db, entry.workspace);
87
129
  purgeReplayMemoryForEntryInTransaction(db, id);
88
130
  // Identity shells retain foreign keys and payload-free audit/usage records.
89
131
  db.prepare("UPDATE entries SET status='superseded',superseded_by=id,trust_level='untrusted',verified_at=NULL WHERE id=?").run(id);
90
- for (const table of ['memory_revision_evidence', 'entry_revision_tags', 'entry_search_documents', 'entry_search_signals', 'entry_embeddings', 'embedding_jobs', 'memory_index_sources', 'memory_index_facts', 'memory_derivations'])
132
+ for (const table of [
133
+ "memory_revision_evidence",
134
+ "entry_revision_tags",
135
+ "entry_search_documents",
136
+ "entry_search_signals",
137
+ "entry_embeddings",
138
+ "embedding_jobs",
139
+ "memory_index_sources",
140
+ "memory_index_facts",
141
+ "memory_derivations",
142
+ ])
91
143
  db.prepare(`DELETE FROM ${table} WHERE entry_id=?`).run(id);
92
144
  db.prepare("UPDATE auto_global_queue SET state='held',reason='memory_forgotten' WHERE entry_id=?").run(id);
93
145
  db.prepare("UPDATE auto_global_projections SET state='quarantined',reason='memory_forgotten' WHERE entry_id=? OR global_entry_id=?").run(id, id);
94
146
  db.prepare("UPDATE audit_events SET details_json='{}' WHERE entry_id=?").run(id);
95
- db.prepare('UPDATE context_feedback SET comment=NULL WHERE entry_id=?').run(id);
96
- db.prepare('INSERT OR IGNORE INTO memory_forget_deliveries SELECT delivery_id FROM context_delivery_entries WHERE entry_id=?').run(id);
97
- for (const binding of db.prepare('SELECT run_id,required_json FROM task_memory_bindings').all()) {
147
+ db.prepare("UPDATE context_feedback SET comment=NULL WHERE entry_id=?").run(id);
148
+ db.prepare("INSERT OR IGNORE INTO memory_forget_deliveries SELECT delivery_id FROM context_delivery_entries WHERE entry_id=?").run(id);
149
+ for (const binding of db
150
+ .prepare("SELECT run_id,required_json FROM task_memory_bindings")
151
+ .all()) {
98
152
  if (!references(JSON.parse(binding.required_json), new Set([id])))
99
153
  continue;
100
154
  db.prepare("UPDATE task_memory_executions SET outcome='stale' WHERE run_id=?").run(binding.run_id);
101
- const required = JSON.parse(binding.required_json).filter(item => item.entryId !== id);
102
- db.prepare('UPDATE task_memory_bindings SET epoch=epoch+1,required_json=? WHERE run_id=?').run(JSON.stringify(required), binding.run_id);
155
+ const required = JSON.parse(binding.required_json).filter((item) => item.entryId !== id);
156
+ db.prepare("UPDATE task_memory_bindings SET epoch=epoch+1,required_json=? WHERE run_id=?").run(JSON.stringify(required), binding.run_id);
103
157
  }
104
- db.prepare('DELETE FROM task_memory_reviews WHERE entry_id=?').run(id);
105
- db.prepare('DELETE FROM context_delivery_entries WHERE entry_id=?').run(id);
106
- db.prepare('DELETE FROM context_delivery_omissions WHERE entry_id=?').run(id);
158
+ db.prepare("DELETE FROM task_memory_reviews WHERE entry_id=?").run(id);
159
+ db.prepare("DELETE FROM context_delivery_entries WHERE entry_id=?").run(id);
160
+ db.prepare("DELETE FROM context_delivery_omissions WHERE entry_id=?").run(id);
107
161
  }
108
162
  function eraseJobs(db, retirement) {
109
163
  for (const [kind, table, columns] of [
110
- ['review', 'memory_review_jobs', ['input_json', 'result_json']],
111
- ['index', 'memory_index_jobs', ['input_json', 'peers_json', 'drafts_json', 'verdicts_json']],
112
- ['evolution', 'memory_evolution_jobs', ['input_json']],
164
+ ["review", "memory_review_jobs", ["input_json", "result_json"]],
165
+ [
166
+ "index",
167
+ "memory_index_jobs",
168
+ ["input_json", "peers_json", "drafts_json", "verdicts_json"],
169
+ ],
170
+ ["evolution", "memory_evolution_jobs", ["input_json"]],
113
171
  ]) {
114
- for (const row of db.prepare(`SELECT * FROM ${table}`).all()) {
115
- const snapshotReferences = columns.some(column => typeof row[column] === 'string' && references(JSON.parse(row[column]), retirement.ids));
116
- const retiredReviewSource = kind === 'review' && retirement.sources.some(source => source.sessionId === row.session_id && source.hash &&
117
- typeof row.input_json === 'string' && references(JSON.parse(row.input_json), new Set([source.hash])));
118
- if (!snapshotReferences && !retiredReviewSource && !(kind === 'review' && retirement.reviewJobs.has(String(row.id))))
172
+ for (const row of db
173
+ .prepare(`SELECT * FROM ${table}`)
174
+ .all()) {
175
+ const snapshotReferences = columns.some((column) => typeof row[column] === "string" &&
176
+ references(JSON.parse(row[column]), retirement.ids));
177
+ const retiredReviewSource = kind === "review" &&
178
+ retirement.sources.some((source) => source.sessionId === row.session_id &&
179
+ source.hash &&
180
+ typeof row.input_json === "string" &&
181
+ references(JSON.parse(row.input_json), new Set([source.hash])));
182
+ if (!snapshotReferences &&
183
+ !retiredReviewSource &&
184
+ !(kind === "review" && retirement.reviewJobs.has(String(row.id))))
119
185
  continue;
120
- db.prepare('INSERT OR IGNORE INTO memory_forget_jobs VALUES(?,?)').run(kind, String(row.id));
121
- const scrub = kind === 'review' ? "state='cancelled',reason='memory_forgotten',owner_nonce=NULL,input_json='{}',result_json=NULL"
122
- : kind === 'index' ? "state='held',reason='memory_forgotten',claim_token=NULL,input_json='{}',peers_json='[]',peers_digest=NULL,drafts_json='[]',verdicts_json=NULL"
186
+ db.prepare("INSERT OR IGNORE INTO memory_forget_jobs VALUES(?,?)").run(kind, String(row.id));
187
+ const scrub = kind === "review"
188
+ ? "state='cancelled',reason='memory_forgotten',owner_nonce=NULL,input_json='{}',result_json=NULL"
189
+ : kind === "index"
190
+ ? "state='held',reason='memory_forgotten',claim_token=NULL,input_json='{}',peers_json='[]',peers_digest=NULL,drafts_json='[]',verdicts_json=NULL"
123
191
  : "state='held',reason='memory_forgotten',claim_token=NULL,input_json='[]',seen_json='[]'";
124
192
  db.prepare(`UPDATE ${table} SET ${scrub} WHERE id=?`).run(String(row.id));
125
193
  }
126
194
  }
127
- for (const row of db.prepare('SELECT run_id,source_epoch,episode_json FROM memory_episodes').all()) {
195
+ for (const row of db
196
+ .prepare("SELECT run_id,source_epoch,episode_json FROM memory_episodes")
197
+ .all()) {
128
198
  if (references(JSON.parse(row.episode_json), retirement.ids))
129
- db.prepare('DELETE FROM memory_episodes WHERE run_id=? AND source_epoch=?').run(row.run_id, row.source_epoch);
199
+ db.prepare("DELETE FROM memory_episodes WHERE run_id=? AND source_epoch=?").run(row.run_id, row.source_epoch);
130
200
  }
131
201
  for (const runId of retirement.runs) {
132
202
  db.prepare("UPDATE dsh_memory_finalizations SET status='failed',claim_nonce=NULL,lease_until=NULL,last_error_code='MEMORY_FORGOTTEN',last_error_message=NULL,staged_capsule_json=NULL,staged_binding_hash=NULL WHERE run_id=?").run(runId);
@@ -141,36 +211,67 @@ function eraseJobs(db, retirement) {
141
211
  }
142
212
  /** One atomic erasure; callbacks holding old snapshots lose their claims before commit. */
143
213
  export function forgetMemory(db, input) {
144
- if (!input.operationId || !Number.isSafeInteger(input.expectedRevision) || input.expectedRevision < 1)
145
- throw new KiokukoError('VALIDATION_ERROR', 'Invalid forget identity');
214
+ if (!input.operationId ||
215
+ !Number.isSafeInteger(input.expectedRevision) ||
216
+ input.expectedRevision < 1)
217
+ throw new KiokukoError("VALIDATION_ERROR", "Invalid forget identity");
146
218
  return withImmediateTransaction(db, () => {
147
- const receipt = db.prepare('SELECT * FROM memory_forget_receipts WHERE operation_id=?')
219
+ const receipt = db
220
+ .prepare("SELECT * FROM memory_forget_receipts WHERE operation_id=?")
148
221
  .get(input.operationId);
149
222
  if (receipt) {
150
- if (receipt.workspace !== input.workspace || receipt.entry_id !== input.entryId || receipt.expected_revision !== input.expectedRevision)
151
- throw new KiokukoError('CONFLICT', 'Forget operation identity changed');
223
+ if (receipt.workspace !== input.workspace ||
224
+ receipt.entry_id !== input.entryId ||
225
+ receipt.expected_revision !== input.expectedRevision)
226
+ throw new KiokukoError("CONFLICT", "Forget operation identity changed");
152
227
  return JSON.parse(receipt.result_json);
153
228
  }
154
- const tombstone = db.prepare('SELECT workspace,revision FROM memory_forget_tombstones WHERE entry_id=?').get(input.entryId);
229
+ const tombstone = db
230
+ .prepare("SELECT workspace,revision FROM memory_forget_tombstones WHERE entry_id=?")
231
+ .get(input.entryId);
155
232
  if (tombstone) {
156
233
  if (tombstone.workspace !== input.workspace)
157
- throw new KiokukoError('NOT_FOUND', 'Memory not found');
234
+ throw new KiokukoError("NOT_FOUND", "Memory not found");
158
235
  if (tombstone.revision !== input.expectedRevision)
159
- throw new KiokukoError('CONFLICT', 'Memory revision changed');
160
- const original = db.prepare('SELECT result_json FROM memory_forget_receipts WHERE workspace=? AND entry_id=? AND expected_revision=? ORDER BY rowid LIMIT 1').get(input.workspace, input.entryId, input.expectedRevision);
161
- const result = original ? JSON.parse(original.result_json) : { forgotten: true, entryId: input.entryId, count: 0, scope: 'kiokuko_database', nativeLogsErased: false };
162
- db.prepare('INSERT INTO memory_forget_receipts VALUES(?,?,?,?,?)').run(input.operationId, input.workspace, input.entryId, input.expectedRevision, JSON.stringify(result));
236
+ throw new KiokukoError("CONFLICT", "Memory revision changed");
237
+ const original = db
238
+ .prepare("SELECT result_json FROM memory_forget_receipts WHERE workspace=? AND entry_id=? AND expected_revision=? ORDER BY rowid LIMIT 1")
239
+ .get(input.workspace, input.entryId, input.expectedRevision);
240
+ const result = original
241
+ ? JSON.parse(original.result_json)
242
+ : {
243
+ forgotten: true,
244
+ entryId: input.entryId,
245
+ count: 0,
246
+ scope: "kiokuko_database",
247
+ nativeLogsErased: false,
248
+ };
249
+ db.prepare("INSERT INTO memory_forget_receipts VALUES(?,?,?,?,?)").run(input.operationId, input.workspace, input.entryId, input.expectedRevision, JSON.stringify(result));
163
250
  return result;
164
251
  }
165
- const entry = readEntry(db, { workspace: input.workspace, entryId: input.entryId });
252
+ const entry = readEntry(db, {
253
+ workspace: input.workspace,
254
+ entryId: input.entryId,
255
+ });
166
256
  if (entry.revision !== input.expectedRevision)
167
- throw new KiokukoError('CONFLICT', 'Memory revision changed');
168
- const retirement = { ids: dependentEntries(db, entry.id), reviewJobs: new Set(), runs: new Set(), sources: [] };
257
+ throw new KiokukoError("CONFLICT", "Memory revision changed");
258
+ const retirement = {
259
+ ids: dependentEntries(db, entry.id),
260
+ reviewJobs: new Set(),
261
+ runs: new Set(),
262
+ sources: [],
263
+ };
169
264
  for (const id of retirement.ids)
170
265
  eraseEntry(db, id, retirement, new Date().toISOString());
171
266
  eraseJobs(db, retirement);
172
- const result = { forgotten: true, entryId: entry.id, count: retirement.ids.size, scope: 'kiokuko_database', nativeLogsErased: false };
173
- db.prepare('INSERT INTO memory_forget_receipts VALUES(?,?,?,?,?)').run(input.operationId, input.workspace, input.entryId, input.expectedRevision, JSON.stringify(result));
267
+ const result = {
268
+ forgotten: true,
269
+ entryId: entry.id,
270
+ count: retirement.ids.size,
271
+ scope: "kiokuko_database",
272
+ nativeLogsErased: false,
273
+ };
274
+ db.prepare("INSERT INTO memory_forget_receipts VALUES(?,?,?,?,?)").run(input.operationId, input.workspace, input.entryId, input.expectedRevision, JSON.stringify(result));
174
275
  return result;
175
276
  });
176
277
  }
@@ -1 +1 @@
1
- {"version":3,"file":"forget.js","sourceRoot":"","sources":["../../src/memory/forget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"forget.js","sourceRoot":"","sources":["../../src/memory/forget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import { z } from "zod";
2
+ import type { SqliteDatabase } from "../db/adapter.js";
3
+ declare const lessonSchema: z.ZodObject<{
4
+ hypothesis: z.ZodString;
5
+ applicability: z.ZodString;
6
+ nextAction: z.ZodString;
7
+ verifyWith: z.ZodString;
8
+ evidenceRefs: z.ZodArray<z.ZodString>;
9
+ supersedes: z.ZodOptional<z.ZodArray<z.ZodString>>;
10
+ correctionReason: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strict>;
12
+ export type RepositoryLearningLesson = z.infer<typeof lessonSchema>;
13
+ declare const turnSchema: z.ZodObject<{
14
+ repositoryRoot: z.ZodString;
15
+ workspace: z.ZodString;
16
+ captureRevision: z.ZodNumber;
17
+ admissionEpoch: z.ZodNumber;
18
+ sessionId: z.ZodString;
19
+ turnId: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
20
+ terminalSeq: z.ZodNumber;
21
+ outcome: z.ZodEnum<{
22
+ unknown: "unknown";
23
+ failed: "failed";
24
+ completed: "completed";
25
+ cancelled: "cancelled";
26
+ }>;
27
+ summary: z.ZodString;
28
+ tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
29
+ evidenceRefs: z.ZodArray<z.ZodString>;
30
+ lessons: z.ZodOptional<z.ZodArray<z.ZodObject<{
31
+ hypothesis: z.ZodString;
32
+ applicability: z.ZodString;
33
+ nextAction: z.ZodString;
34
+ verifyWith: z.ZodString;
35
+ evidenceRefs: z.ZodArray<z.ZodString>;
36
+ supersedes: z.ZodOptional<z.ZodArray<z.ZodString>>;
37
+ correctionReason: z.ZodOptional<z.ZodString>;
38
+ }, z.core.$strict>>>;
39
+ reflectionStatus: z.ZodOptional<z.ZodEnum<{
40
+ unavailable: "unavailable";
41
+ model: "model";
42
+ invalid: "invalid";
43
+ not_requested: "not_requested";
44
+ }>>;
45
+ }, z.core.$strict>;
46
+ export type RepositoryTurnLearning = z.infer<typeof turnSchema>;
47
+ export interface RepositoryLearningPoint {
48
+ id?: string;
49
+ kind: "observation" | "hypothesis";
50
+ workspace: string;
51
+ captureRevision: number;
52
+ tags: string[];
53
+ summary?: string;
54
+ lesson?: RepositoryLearningLesson;
55
+ evidenceRefs: string[];
56
+ sessionId: string;
57
+ turnId: string;
58
+ outcome: RepositoryTurnLearning["outcome"];
59
+ revision: number;
60
+ occurrences: number;
61
+ reflectionStatus: NonNullable<RepositoryTurnLearning["reflectionStatus"]>;
62
+ }
63
+ interface StoredSnapshot {
64
+ repositoryKey: string;
65
+ revision: number;
66
+ turnCount: number;
67
+ tags: string[];
68
+ points: RepositoryLearningPoint[];
69
+ outcomeCounts: Record<RepositoryTurnLearning["outcome"], number>;
70
+ omitted: number;
71
+ }
72
+ export interface RepositoryLearningAssessment {
73
+ hypotheses: "unverified_proposals";
74
+ compatibility: "unresolved" | "not_assessed";
75
+ distinctHypotheses: number;
76
+ supersession: "none" | "model_proposed_corrections";
77
+ scope: "retained_capture_allowed_projection";
78
+ }
79
+ export interface RepositoryLearningSnapshot extends StoredSnapshot {
80
+ admissionEpoch: number;
81
+ assessment: RepositoryLearningAssessment;
82
+ compact: string;
83
+ }
84
+ /** The caller supplies its verified canonical repository root; no filesystem access here. */
85
+ export declare function repositoryLearningKey(repositoryRoot: string): string;
86
+ /** Payload-free retirement is permanent across plugin restart and fresh admissions. */
87
+ export declare function isRetiredRepositoryTurn(db: SqliteDatabase, repositoryRoot: string, sessionId: string, turnId: string | number): boolean;
88
+ /** Persist identity before model dispatch, so reset also retires never-committed turns. */
89
+ export declare function admitRepositoryTurn(db: SqliteDatabase, repositoryRoot: string, sessionId: string, turnId: string | number, admissionEpoch: number): void;
90
+ /** Automatic saving is host-only. Model text cannot set outcomes, repository identity or provenance. */
91
+ export declare function saveTurn(db: SqliteDatabase, raw: RepositoryTurnLearning): {
92
+ inserted: boolean;
93
+ revision: number;
94
+ };
95
+ /** Caller owns the forget transaction. Unknown dependencies require workspace-wide invalidation. */
96
+ export declare function purgeRepositoryLearningForWorkspaceInTransaction(db: SqliteDatabase, workspace: string): void;
97
+ /** Explicit learning-only reset; does not erase native logs or unrelated repositories. */
98
+ export declare function resetRepositoryLearning(db: SqliteDatabase, repositoryRoot: string): {
99
+ admissionEpoch: number;
100
+ };
101
+ /** Repository binding is mandatory, keywords are not. Reads never initialize schema or write. */
102
+ export declare function readRepositoryLearning(db: SqliteDatabase, repositoryRoot: string, options?: {
103
+ maxChars?: number;
104
+ }): RepositoryLearningSnapshot;
105
+ export {};
106
+ //# sourceMappingURL=repository-learning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository-learning.d.ts","sourceRoot":"","sources":["../../src/memory/repository-learning.ts"],"names":[],"mappings":"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"}