kiokuko-dsh 0.1.64 → 0.1.66

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 (116) hide show
  1. package/PERMISSIONS.md +18 -1
  2. package/README.ja.md +2 -0
  3. package/README.ko.md +3 -0
  4. package/README.md +2 -0
  5. package/README.zh-CN.md +3 -0
  6. package/dist/akinator/memory-probe-types.d.ts +2 -2
  7. package/dist/context/continuity-view.d.ts +1 -1
  8. package/dist/deep-thinker/memory-finalizer.d.ts.map +1 -1
  9. package/dist/deep-thinker/memory-finalizer.js +7 -1
  10. package/dist/deep-thinker/memory-finalizer.js.map +1 -1
  11. package/dist/dsh/auto-memory-review.d.ts +63 -0
  12. package/dist/dsh/auto-memory-review.d.ts.map +1 -0
  13. package/dist/dsh/auto-memory-review.js +254 -0
  14. package/dist/dsh/auto-memory-review.js.map +1 -0
  15. package/dist/dsh/composition.d.ts +5 -0
  16. package/dist/dsh/composition.d.ts.map +1 -1
  17. package/dist/dsh/composition.js +30 -0
  18. package/dist/dsh/composition.js.map +1 -1
  19. package/dist/dsh/config.d.ts +23 -3
  20. package/dist/dsh/config.d.ts.map +1 -1
  21. package/dist/dsh/config.js +3 -0
  22. package/dist/dsh/config.js.map +1 -1
  23. package/dist/dsh/enno-memory-refresh.d.ts +2 -0
  24. package/dist/dsh/enno-memory-refresh.d.ts.map +1 -1
  25. package/dist/dsh/enno-memory-refresh.js +6 -1
  26. package/dist/dsh/enno-memory-refresh.js.map +1 -1
  27. package/dist/dsh/host-adapter.d.ts +2 -0
  28. package/dist/dsh/host-adapter.d.ts.map +1 -1
  29. package/dist/dsh/host-adapter.js +131 -5
  30. package/dist/dsh/host-adapter.js.map +1 -1
  31. package/dist/dsh/index.d.ts.map +1 -1
  32. package/dist/dsh/index.js +2 -1
  33. package/dist/dsh/index.js.map +1 -1
  34. package/dist/dsh/lisp/ci.d.ts +4 -1
  35. package/dist/dsh/lisp/ci.d.ts.map +1 -1
  36. package/dist/dsh/lisp/ci.js +23 -14
  37. package/dist/dsh/lisp/ci.js.map +1 -1
  38. package/dist/dsh/lisp/files.d.ts +6 -0
  39. package/dist/dsh/lisp/files.d.ts.map +1 -1
  40. package/dist/dsh/lisp/files.js +19 -0
  41. package/dist/dsh/lisp/files.js.map +1 -1
  42. package/dist/dsh/lisp/inspection.d.ts +2 -2
  43. package/dist/dsh/lisp/manager.d.ts +1 -1
  44. package/dist/dsh/lisp/manager.d.ts.map +1 -1
  45. package/dist/dsh/lisp/manager.js +8 -3
  46. package/dist/dsh/lisp/manager.js.map +1 -1
  47. package/dist/dsh/lisp/request-surface.d.ts +8 -0
  48. package/dist/dsh/lisp/request-surface.d.ts.map +1 -0
  49. package/dist/dsh/lisp/request-surface.js +2 -0
  50. package/dist/dsh/lisp/request-surface.js.map +1 -0
  51. package/dist/dsh/lisp/sandbox.d.ts +1 -1
  52. package/dist/dsh/lisp/sandbox.d.ts.map +1 -1
  53. package/dist/dsh/lisp/sandbox.js +10 -4
  54. package/dist/dsh/lisp/sandbox.js.map +1 -1
  55. package/dist/dsh/lisp/surface.d.ts.map +1 -1
  56. package/dist/dsh/lisp/surface.js +26 -2
  57. package/dist/dsh/lisp/surface.js.map +1 -1
  58. package/dist/dsh/lisp/worker.js +2 -2
  59. package/dist/dsh/lisp/worker.js.map +1 -1
  60. package/dist/dsh/model-routing.d.ts +1 -1
  61. package/dist/dsh/model-routing.d.ts.map +1 -1
  62. package/dist/dsh/model-routing.js +1 -2
  63. package/dist/dsh/model-routing.js.map +1 -1
  64. package/dist/dsh/session-log-mirror.d.ts +9 -0
  65. package/dist/dsh/session-log-mirror.d.ts.map +1 -1
  66. package/dist/dsh/session-log-mirror.js +68 -0
  67. package/dist/dsh/session-log-mirror.js.map +1 -1
  68. package/dist/dsh/session-memory-finalizer.d.ts.map +1 -1
  69. package/dist/dsh/session-memory-finalizer.js +99 -23
  70. package/dist/dsh/session-memory-finalizer.js.map +1 -1
  71. package/dist/dsh/skill-prompts.json +1 -1
  72. package/dist/dsh/task-intake.d.ts +8 -0
  73. package/dist/dsh/task-intake.d.ts.map +1 -1
  74. package/dist/dsh/task-intake.js +21 -0
  75. package/dist/dsh/task-intake.js.map +1 -1
  76. package/dist/enno-oduno/schemas.d.ts +11 -11
  77. package/dist/ledger/checkpoint-contract.d.ts +6 -6
  78. package/dist/memory/capture-policy.d.ts +16 -0
  79. package/dist/memory/capture-policy.d.ts.map +1 -0
  80. package/dist/memory/capture-policy.js +51 -0
  81. package/dist/memory/capture-policy.js.map +1 -0
  82. package/dist/memory/checkpoint-contract.d.ts +15 -15
  83. package/dist/memory/evolution/contracts.d.ts +2 -2
  84. package/dist/memory/evolution/store.d.ts.map +1 -1
  85. package/dist/memory/evolution/store.js +3 -0
  86. package/dist/memory/evolution/store.js.map +1 -1
  87. package/dist/memory/evolution/worker.d.ts.map +1 -1
  88. package/dist/memory/evolution/worker.js +18 -0
  89. package/dist/memory/evolution/worker.js.map +1 -1
  90. package/dist/memory/review/adoption.d.ts +29 -0
  91. package/dist/memory/review/adoption.d.ts.map +1 -0
  92. package/dist/memory/review/adoption.js +154 -0
  93. package/dist/memory/review/adoption.js.map +1 -0
  94. package/dist/memory/review/contracts.d.ts +246 -0
  95. package/dist/memory/review/contracts.d.ts.map +1 -0
  96. package/dist/memory/review/contracts.js +28 -0
  97. package/dist/memory/review/contracts.js.map +1 -0
  98. package/dist/memory/review/evidence.d.ts +31 -0
  99. package/dist/memory/review/evidence.d.ts.map +1 -0
  100. package/dist/memory/review/evidence.js +116 -0
  101. package/dist/memory/review/evidence.js.map +1 -0
  102. package/dist/memory/review/store.d.ts +37 -0
  103. package/dist/memory/review/store.d.ts.map +1 -0
  104. package/dist/memory/review/store.js +191 -0
  105. package/dist/memory/review/store.js.map +1 -0
  106. package/dist/memory/review/worker.d.ts +27 -0
  107. package/dist/memory/review/worker.d.ts.map +1 -0
  108. package/dist/memory/review/worker.js +197 -0
  109. package/dist/memory/review/worker.js.map +1 -0
  110. package/dist/model-tools/contracts.d.ts +8 -8
  111. package/docs/auto-memory-review.md +178 -0
  112. package/docs/lisp.md +58 -4
  113. package/lisp/tools.lisp +50 -23
  114. package/migrations/020_dsh_memory_review.sql +68 -0
  115. package/package.json +6 -3
  116. package/skills/kiokuko-lisp/SKILL.md +133 -98
package/PERMISSIONS.md CHANGED
@@ -55,6 +55,17 @@ Kiokuko operation.
55
55
  - Remote embedding requests can contact the configured endpoint. Remote
56
56
  embeddings are disabled by default; local embedding state remains separate.
57
57
 
58
+ - Automatic memory review is active by default: every eight completed human
59
+ turns can send bounded session evidence and project candidate snapshots to
60
+ that session's configured DSH provider/model, with up to 12 worker dispatches
61
+ per project per UTC day. Ordinary/Deep finalization and configured Evolution
62
+ have separate calls and budgets. Provider-internal retries are not counted as
63
+ additional worker dispatches. [Controls and limits](docs/auto-memory-review.md).
64
+ - `/kioku-memory-review exclude session` persists a session-wide automatic
65
+ capture exclusion across these paths. It blocks future dispatch and adoption,
66
+ attempts local cancellation, and cannot retract already transmitted data.
67
+ Existing logs/memories and explicit memory tools are unaffected.
68
+
58
69
  ## Credentials and optional dependencies
59
70
 
60
71
  - GitHub and embedding credentials are optional user-provided environment or
@@ -154,7 +165,13 @@ environment are forwarded, and direct network/host IPC access is denied. The
154
165
  host may run repository-scoped `gh run list`/`gh run view --log-failed` reads on
155
166
  behalf of Lisp without copying credentials into the worker. Verification accepts
156
167
  only six fixed npm targets and requires native human confirmation showing the
157
- command, repository root and timeout; arbitrary shell input is not accepted.
168
+ command, package script, exact working directory and timeout. The directory may
169
+ be the workspace root, a workspace subdirectory, or a subdirectory of the current
170
+ worker's scratch. Traversal and symlink directories are refused, and directory
171
+ identity and scripts are rechecked after approval. These approved verifiers run
172
+ on the host, including npm lifecycle scripts, outside the worker sandbox;
173
+ arbitrary shell input is not accepted. Brokered worker programs can select only a
174
+ scratch-relative working directory and retain the existing OS restrictions.
158
175
 
159
176
  File deletion and replacement require the native human confirmation for the exact
160
177
  proposal. Generic operations reject databases/sidecars, credential paths, links,
package/README.ja.md CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) に、記憶・計画・検証・動作記録を追加するプラグインです。
6
6
 
7
+ 自動メモリレビューは、人間の入力を処理した8ターンごとに、開いたままの会話から有用な記憶候補を保存・更新します。標準で有効で、会話のモデルを使用します。状態は `/kioku-memory-review status`、会話の保存除外は `/kioku-memory-review exclude session` で操作できます。[設定・費用・復旧方法](docs/auto-memory-review.md)。
8
+
7
9
  ## 機能
8
10
 
9
11
  - **実行方式** — 通常実行と役小角(enno-oduno)を選べます。[詳細](docs/model-selection.ja.md)
package/README.ko.md CHANGED
@@ -7,6 +7,9 @@ OrcaReplay로 모델과 도구의 동작을 기록하고, 기록을 확인하거
7
7
 
8
8
 
9
9
  새 변경 작업에서는 일반 실행 또는 役小角(enno-oduno)를 선택할 수 있습니다. 역할별 모델은 추천 템플릿이나 DSH에 설정된 모델에서 선택합니다. [모델 선택과 연결 제한](docs/model-selection.md).
10
+
11
+ 자동 메모리 검토는 기본으로 활성화되며, 사람의 입력을 처리한 여덟 턴마다 대화 모델로 유용한 프로젝트 기억 후보를 저장하거나 갱신합니다. 대화를 닫을 필요가 없습니다. `/kioku-memory-review status`로 상태를 확인하거나 `/kioku-memory-review exclude session`으로 대화 전체를 제외할 수 있습니다. [설정, 비용과 복구](docs/auto-memory-review.md).
12
+
10
13
  ## 설치 및 사용
11
14
 
12
15
  **DSH 0.1.6-alpha.1**을 지원합니다 ([검증 범위](docs/dsh-plugin.md#compatibility)).
package/README.md CHANGED
@@ -5,6 +5,8 @@
5
5
  Kiokuko adds memory, planning, verification, and observability to
6
6
  [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness).
7
7
 
8
+ Automatic memory review saves or updates useful project candidates after eight completed human turns, even while a chat remains open. It is active by default and uses the session model. Check `/kioku-memory-review status` or exclude a conversation with `/kioku-memory-review exclude session`. [Settings, costs and recovery](docs/auto-memory-review.md).
9
+
8
10
  ## Features
9
11
 
10
12
  - **Execution modes** — Choose normal execution or 役小角(enno-oduno) for role-based planning and verification. [Details](docs/model-selection.md)
package/README.zh-CN.md CHANGED
@@ -7,6 +7,9 @@ OrcaReplay 可记录模型和工具活动,查看记录并导出 HTML。
7
7
 
8
8
 
9
9
  新的修改任务可以选择普通执行或役小角(enno-oduno)。役小角支持推荐模板,也可从DSH已配置的模型中为各角色选择模型。[模型选择与连接限制](docs/model-selection.md)。
10
+
11
+ 自动记忆审查默认启用:每完成八个人类输入回合,使用会话模型保存或更新有用的项目记忆候选,无需关闭会话。使用 `/kioku-memory-review status` 查看状态,或用 `/kioku-memory-review exclude session` 排除整个会话。[设置、费用和恢复](docs/auto-memory-review.md)。
12
+
10
13
  ## 安装与使用
11
14
 
12
15
  支持 **DSH 0.1.6-alpha.1**([验证范围](docs/dsh-plugin.md#compatibility))。
@@ -32,9 +32,9 @@ export declare const ProfileEvidenceSchema: z.ZodObject<{
32
32
  export type ProfileEvidenceRef = z.infer<typeof ProfileEvidenceSchema>;
33
33
  export declare const FieldResolutionSchema: z.ZodObject<{
34
34
  field: z.ZodEnum<{
35
- taskType: "taskType";
36
35
  target: "target";
37
36
  expected: "expected";
37
+ taskType: "taskType";
38
38
  constraints: "constraints";
39
39
  }>;
40
40
  decision: z.ZodEnum<{
@@ -84,9 +84,9 @@ export declare const MemoryProbeResultSchema: z.ZodObject<{
84
84
  }>;
85
85
  resolutions: z.ZodArray<z.ZodObject<{
86
86
  field: z.ZodEnum<{
87
- taskType: "taskType";
88
87
  target: "target";
89
88
  expected: "expected";
89
+ taskType: "taskType";
90
90
  constraints: "constraints";
91
91
  }>;
92
92
  decision: z.ZodEnum<{
@@ -1,8 +1,8 @@
1
1
  import { z } from 'zod';
2
2
  export declare const ContinuityConfig: z.ZodObject<{
3
3
  mode: z.ZodDefault<z.ZodEnum<{
4
- active: "active";
5
4
  off: "off";
5
+ active: "active";
6
6
  shadow: "shadow";
7
7
  }>>;
8
8
  maxSupplementBytes: z.ZodDefault<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"memory-finalizer.d.ts","sourceRoot":"","sources":["../../src/deep-thinker/memory-finalizer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oCAAoC,CAAA;AAK9E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAQtC,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAI9B,CAAA;AAEX,gGAAgG;AAChG,qBAAa,mBAAmB;;IAGlB,QAAQ,CAAC,KAAK,EAAE,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAAE,QAAQ,CAAC,SAAS,CAAC,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,CAAC,OAAO,CAAC;IAFzI,QAAQ,CAAC,SAAS,sDAAe;gBAEZ,KAAK,EAAE,SAAS,EAAW,GAAG,EAAE,MAAM,GAAG,SAAS,EAAW,SAAS,CAAC,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,CAAC,OAAO,CAAC,aAAA;IACnI,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IA4ErC,KAAK,IAAI,IAAI;CACd"}
1
+ {"version":3,"file":"memory-finalizer.d.ts","sourceRoot":"","sources":["../../src/deep-thinker/memory-finalizer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,oCAAoC,CAAA;AAK9E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAQtC,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAI9B,CAAA;AAEX,gGAAgG;AAChG,qBAAa,mBAAmB;;IAGlB,QAAQ,CAAC,KAAK,EAAE,SAAS;IAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS;IAAE,QAAQ,CAAC,SAAS,CAAC,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,CAAC,OAAO,CAAC;IAFzI,QAAQ,CAAC,SAAS,sDAAe;gBAEZ,KAAK,EAAE,SAAS,EAAW,GAAG,EAAE,MAAM,GAAG,SAAS,EAAW,SAAS,CAAC,GAAE,CAAC,SAAS,EAAE,MAAM,KAAK,WAAW,CAAC,OAAO,CAAC,aAAA;IACnI,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAiFrC,KAAK,IAAI,IAAI;CACd"}
@@ -1,3 +1,4 @@
1
+ import { assertCaptureAllowed, watchCapture } from '../memory/capture-policy.js';
1
2
  import { randomUUID } from 'node:crypto';
2
3
  import { z } from 'zod';
3
4
  import { parseCapsule } from '../dsh/session-memory-finalizer.js';
@@ -31,7 +32,7 @@ export class DeepMemoryFinalizer {
31
32
  async processNext() {
32
33
  const job = await this.store.transaction(db => {
33
34
  db.prepare("UPDATE dsh_deep_finalizations SET status='uncertain',error='Host stopped during memory extraction; no automatic resend' WHERE status='processing' AND lease_until<=?").run(this.store.now());
34
- const row = db.prepare("SELECT run_id,source_json FROM dsh_deep_finalizations WHERE status='pending' ORDER BY rowid LIMIT 1").get();
35
+ const row = db.prepare("SELECT run_id,source_json FROM dsh_deep_finalizations WHERE status='pending' AND NOT EXISTS(SELECT 1 FROM memory_capture_exclusions x WHERE x.workspace=json_extract(source_json,'$.workspace') AND x.native_session_id=json_extract(source_json,'$.sessionId')) ORDER BY rowid LIMIT 1").get();
35
36
  if (!row)
36
37
  return undefined;
37
38
  db.prepare("UPDATE dsh_deep_finalizations SET status='processing',process_id=?,lease_until=? WHERE run_id=? AND status='pending'").run(this.processId, this.store.now() + 45_000, row.run_id);
@@ -46,8 +47,10 @@ export class DeepMemoryFinalizer {
46
47
  const heartbeat = setInterval(() => { void this.store.database(db => db.prepare("UPDATE dsh_deep_finalizations SET lease_until=? WHERE run_id=? AND process_id=? AND status='processing'").run(this.store.now() + 45_000, job.run_id, this.processId)).catch(error => abort.abort(error)); }, 10_000);
47
48
  let status = 'skipped', detail = '予算または採用済みの証拠が不足するため、記憶保存を省略しました。';
48
49
  let release;
50
+ let unwatch;
49
51
  try {
50
52
  const source = DeepFinalizationSourceSchema.parse(JSON.parse(job.source_json));
53
+ unwatch = watchCapture(source.workspace, source.sessionId, abort);
51
54
  const state = await this.store.read(job.run_id);
52
55
  if (!this.llm || !source.accepted.length || budgetProblem(state, this.store.now(), 'request'))
53
56
  return true;
@@ -69,6 +72,7 @@ export class DeepMemoryFinalizer {
69
72
  if (budgetProblem(state, this.store.now(), 'request', estimateRequestTokens(Buffer.byteLength(JSON.stringify(request)), maxTokens)))
70
73
  return true;
71
74
  release = await processDeepSlots.acquire(job.run_id, model.provider, source.configuration.localProviders.includes(model.provider), 6, abort.signal);
75
+ await this.store.transaction(db => assertCaptureAllowed(db, source.workspace, source.sessionId));
72
76
  let text = '', finished = false;
73
77
  await deepMemoryRequestScope.run({ runId: job.run_id, processId: this.processId, model, maxTokens, sessionId: source.sessionId }, async () => {
74
78
  for await (const value of abortableStream(this.llm.stream(request), abort.signal)) {
@@ -88,6 +92,7 @@ export class DeepMemoryFinalizer {
88
92
  if ((await changedSources(state.rootPath, artifacts)).length)
89
93
  throw new Error('Sources changed before memory commit');
90
94
  await this.store.transaction(db => {
95
+ assertCaptureAllowed(db, source.workspace, source.sessionId);
91
96
  const current = db.prepare('SELECT status,process_id,reservation_id FROM dsh_deep_finalizations WHERE run_id=?').get(job.run_id);
92
97
  if (current?.status !== 'processing' || current.process_id !== this.processId || !current.reservation_id)
93
98
  throw new Error('Memory extraction requires an observed budget reservation');
@@ -113,6 +118,7 @@ export class DeepMemoryFinalizer {
113
118
  detail = `記憶保存を${status === 'uncertain' ? '結果不明として停止' : '中止'}しました。回答は保存済みです。${error instanceof Error && !findSecretInValue(error.message) ? ` ${error.message.slice(0, 512)}` : ''}`;
114
119
  }
115
120
  finally {
121
+ unwatch?.();
116
122
  clearTimeout(timer);
117
123
  clearInterval(heartbeat);
118
124
  if (this.#abort === abort)
@@ -1 +1 @@
1
- {"version":3,"file":"memory-finalizer.js","sourceRoot":"","sources":["../../src/deep-thinker/memory-finalizer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-finalizer.js","sourceRoot":"","sources":["../../src/deep-thinker/memory-finalizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ import type { DshRuntime } from './runtime.js';
2
+ import type { DshLogEvent, DshLlm } from './session-memory-finalizer.js';
3
+ import type { DshSessionLogMirror } from './session-log-mirror.js';
4
+ import { type ReviewConfig, type ReviewJob, type ReviewRange } from '../memory/review/contracts.js';
5
+ import type { ReviewWorkerOptions } from '../memory/review/worker.js';
6
+ import { MemoryReviewWorker } from '../memory/review/worker.js';
7
+ export interface ReviewNativeSession {
8
+ id: string;
9
+ seq?: number;
10
+ firstLiveSeq?: number;
11
+ inheritedEventCount?: number;
12
+ header?: {
13
+ parentSession?: string;
14
+ isSeeded?: boolean;
15
+ origin?: string;
16
+ };
17
+ eventAt?: (seq: number) => DshLogEvent | undefined;
18
+ }
19
+ export interface ReviewBinding {
20
+ workspace: string;
21
+ runId: string;
22
+ session: ReviewNativeSession;
23
+ startSeq: number;
24
+ }
25
+ export declare class AutoMemoryReviewCoordinator {
26
+ #private;
27
+ readonly options: {
28
+ runtime: Pick<DshRuntime, 'withDatabase'>;
29
+ mirror: DshSessionLogMirror;
30
+ llm?: DshLlm;
31
+ config?: ReviewConfig;
32
+ onChanged?: ReviewWorkerOptions['onChanged'];
33
+ onCapturePolicy?: (sessionId: string, mode: 'held' | 'excluded') => Promise<void>;
34
+ flush?: (session: object) => PromiseLike<unknown>;
35
+ now?: () => string;
36
+ };
37
+ readonly worker: MemoryReviewWorker;
38
+ readonly now: () => string;
39
+ constructor(options: {
40
+ runtime: Pick<DshRuntime, 'withDatabase'>;
41
+ mirror: DshSessionLogMirror;
42
+ llm?: DshLlm;
43
+ config?: ReviewConfig;
44
+ onChanged?: ReviewWorkerOptions['onChanged'];
45
+ onCapturePolicy?: (sessionId: string, mode: 'held' | 'excluded') => Promise<void>;
46
+ flush?: (session: object) => PromiseLike<unknown>;
47
+ now?: () => string;
48
+ });
49
+ start(workspace: string): Promise<void>;
50
+ setMode(workspace: string, mode: ReviewConfig['mode']): Promise<void>;
51
+ configure(config: ReviewConfig): Promise<void>;
52
+ bind(binding: ReviewBinding): Promise<void>;
53
+ acceptInput(workspace: string, sessionId: string, text: string): Promise<void>;
54
+ notify(binding: ReviewBinding, throughSeq: number, origin?: 'periodic' | 'boundary'): void;
55
+ scan(binding: ReviewBinding, throughSeq: number, origin?: 'periodic' | 'manual' | 'boundary'): Promise<ReviewJob | undefined>;
56
+ reserve(range: ReviewRange, origin: ReviewJob['origin'], parent?: ReviewJob, contextStartSeq?: number): Promise<ReviewJob>;
57
+ retry(workspace: string, id: string): Promise<ReviewJob>;
58
+ status(workspace: string, sessionId: string): Promise<Record<string, unknown>>;
59
+ exclude(workspace: string, sessionId: string): Promise<void>;
60
+ whenIdle(): Promise<void>;
61
+ dispose(): Promise<void>;
62
+ }
63
+ //# sourceMappingURL=auto-memory-review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-memory-review.d.ts","sourceRoot":"","sources":["../../src/dsh/auto-memory-review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,254 @@
1
+ import { withImmediateTransaction } from '../db/transaction.js';
2
+ import { abortCapture, assertCaptureAllowed, capturePolicy, captureRefusal, excludeCapture } from '../memory/capture-policy.js';
3
+ import { memorySnapshots } from '../memory/review/adoption.js';
4
+ import { MemoryReviewConfig, REVIEW_SYSTEM } from '../memory/review/contracts.js';
5
+ import { reviewEvidenceWithContext, completedReviewTurns, reviewManifest, reviewModel } from '../memory/review/evidence.js';
6
+ import { admitReview, configureReview, recordReviewTurns, reserveReview, reviewSettings, reviewState } from '../memory/review/store.js';
7
+ import { jobRange, MemoryReviewWorker } from '../memory/review/worker.js';
8
+ export class AutoMemoryReviewCoordinator {
9
+ options;
10
+ worker;
11
+ now;
12
+ #config;
13
+ #generations = new Map();
14
+ #tails = new Map();
15
+ #closed = false;
16
+ constructor(options) {
17
+ this.options = options;
18
+ this.#config = MemoryReviewConfig.parse(options.config ?? {});
19
+ this.now = options.now ?? (() => new Date().toISOString());
20
+ this.worker = new MemoryReviewWorker({ runtime: options.runtime, source: options.mirror, ...(options.llm ? { llm: options.llm } : {}), now: this.now, ...(options.onChanged ? { onChanged: options.onChanged } : {}) });
21
+ }
22
+ async start(workspace) {
23
+ await this.options.runtime.withDatabase(db => withImmediateTransaction(db, () => {
24
+ configureReview(db, workspace, this.#config, this.now());
25
+ const current = reviewSettings(db, workspace);
26
+ // A cold host may disable capture, but cannot silently re-enable a newer setting.
27
+ if (this.#config.mode === 'off' && current.config.mode !== 'off')
28
+ configureReview(db, workspace, this.#config, this.now(), current.generation);
29
+ this.#generations.set(workspace, reviewSettings(db, workspace).generation);
30
+ }));
31
+ this.worker.kick(workspace);
32
+ }
33
+ async setMode(workspace, mode) {
34
+ await this.options.runtime.withDatabase(db => withImmediateTransaction(db, () => {
35
+ configureReview(db, workspace, this.#config, this.now());
36
+ const current = reviewSettings(db, workspace);
37
+ configureReview(db, workspace, { ...current.config, mode }, this.now(), current.generation);
38
+ this.#generations.set(workspace, reviewSettings(db, workspace).generation);
39
+ }));
40
+ this.#config = { ...this.#config, mode };
41
+ this.worker.abort();
42
+ if (mode !== 'off')
43
+ this.worker.kick(workspace);
44
+ }
45
+ async configure(config) {
46
+ const next = MemoryReviewConfig.parse(config);
47
+ await this.options.runtime.withDatabase(db => withImmediateTransaction(db, () => {
48
+ for (const [workspace, generation] of this.#generations) {
49
+ configureReview(db, workspace, next, this.now(), generation);
50
+ this.#generations.set(workspace, reviewSettings(db, workspace).generation);
51
+ }
52
+ }));
53
+ this.#config = next;
54
+ this.worker.abort();
55
+ }
56
+ async bind(binding) {
57
+ if (this.#closed || binding.session.header?.origin === 'subagent')
58
+ return;
59
+ // Only the exact native indexed API qualifies; no full-history snapshot fallback.
60
+ const first = binding.session.eventAt?.(0);
61
+ if (first)
62
+ await this.options.mirror.observe(binding.session.id, first);
63
+ const sourceGeneration = await this.options.mirror.sourceGeneration(binding.session.id);
64
+ await this.options.runtime.withDatabase(db => withImmediateTransaction(db, () => {
65
+ configureReview(db, binding.workspace, this.#config, this.now());
66
+ if (!this.#generations.has(binding.workspace))
67
+ this.#generations.set(binding.workspace, reviewSettings(db, binding.workspace).generation);
68
+ const parent = binding.session.header?.parentSession;
69
+ if (parent) {
70
+ const policy = capturePolicy(db, binding.workspace, parent);
71
+ if (policy.mode !== 'allowed')
72
+ excludeCapture(db, binding.workspace, binding.session.id, policy.mode, 'capture_lineage_excluded', this.now());
73
+ else if (!db.prepare('SELECT 1 FROM ledger_runs WHERE workspace=? AND dsh_session_id=?').get(binding.workspace, parent))
74
+ excludeCapture(db, binding.workspace, binding.session.id, 'held', 'capture_lineage_unknown', this.now());
75
+ }
76
+ else if (binding.session.header?.isSeeded || Number(binding.session.inheritedEventCount) > 0)
77
+ excludeCapture(db, binding.workspace, binding.session.id, 'held', 'capture_lineage_unknown', this.now());
78
+ admitReview(db, { workspace: binding.workspace, sessionId: binding.session.id, runId: binding.runId, sourceGeneration, startSeq: Math.max(binding.startSeq, binding.session.inheritedEventCount ?? 0), endSeq: binding.startSeq });
79
+ }));
80
+ const policy = await this.options.runtime.withDatabase(db => capturePolicy(db, binding.workspace, binding.session.id));
81
+ if (policy.mode !== 'allowed')
82
+ await this.options.onCapturePolicy?.(binding.session.id, policy.mode).catch(() => undefined);
83
+ this.worker.kick(binding.workspace);
84
+ }
85
+ async acceptInput(workspace, sessionId, text) {
86
+ const refusal = captureRefusal(text);
87
+ if (!refusal)
88
+ return;
89
+ await this.options.runtime.withDatabase(db => withImmediateTransaction(db, () => excludeCapture(db, workspace, sessionId, refusal.mode, refusal.reason, this.now())));
90
+ abortCapture(workspace, sessionId);
91
+ await this.options.onCapturePolicy?.(sessionId, refusal.mode).catch(() => undefined);
92
+ }
93
+ notify(binding, throughSeq, origin = 'periodic') {
94
+ if (this.#closed)
95
+ return;
96
+ const previous = this.#tails.get(binding.runId) ?? Promise.resolve();
97
+ const operation = previous.catch(() => undefined).then(() => this.scan(binding, throughSeq, origin)).catch(async (error) => {
98
+ const reason = error instanceof Error && ['source_unavailable', 'input_too_large', 'capture_excluded', 'run_terminal', 'host_capability_missing', 'review_off'].includes(error.message) ? error.message : 'review_deferred';
99
+ await this.options.runtime.withDatabase(db => db.prepare('UPDATE memory_review_states SET reason=? WHERE run_id=?').run(reason, binding.runId));
100
+ }).finally(() => { if (this.#tails.get(binding.runId) === operation)
101
+ this.#tails.delete(binding.runId); });
102
+ this.#tails.set(binding.runId, operation);
103
+ void operation.catch(() => undefined);
104
+ }
105
+ async scan(binding, throughSeq, origin = 'periodic') {
106
+ if (this.#closed)
107
+ return;
108
+ const { runtime, mirror } = this.options;
109
+ const state = await runtime.withDatabase(db => { assertCaptureAllowed(db, binding.workspace, binding.session.id); return reviewState(db, binding.runId); });
110
+ if (!state)
111
+ return;
112
+ if (state.terminal_outcome)
113
+ throw new Error('run_terminal');
114
+ const settings = await runtime.withDatabase(db => reviewSettings(db, binding.workspace));
115
+ if (settings.config.mode === 'off')
116
+ throw new Error('review_off');
117
+ if (!this.options.flush || !binding.session.eventAt)
118
+ throw new Error('host_capability_missing');
119
+ if (await this.options.flush(binding.session) === false)
120
+ throw new Error('host_capability_missing');
121
+ if (this.#closed)
122
+ return;
123
+ // Catch missed notifications from the exact indexed native range, never snapshot the prefix.
124
+ const checkpoint = await mirror.checkpoint(binding.session.id);
125
+ for (let seq = Math.max(state.scanned_through_seq + 1, checkpoint.mirroredThrough + 1); seq <= throughSeq; seq++) {
126
+ const event = binding.session.eventAt(seq);
127
+ if (!event)
128
+ throw new Error('source_unavailable');
129
+ await mirror.observe(binding.session.id, event);
130
+ }
131
+ const confirmed = await mirror.checkpointThroughAfterNativeFlush(binding.session, throughSeq, Math.min(throughSeq, state.scanned_through_seq + 1));
132
+ if ((confirmed.rangeConfirmedThrough ?? -1) < throughSeq || confirmed.error)
133
+ throw new Error('source_unavailable');
134
+ if (await mirror.sourceGeneration(binding.session.id) !== state.source_generation)
135
+ throw new Error('source_unavailable');
136
+ if (throughSeq > state.scanned_through_seq) {
137
+ const classified = await completedReviewTurns(mirror.streamRange(binding.session.id, state.scanned_through_seq + 1, throughSeq));
138
+ await runtime.withDatabase(db => withImmediateTransaction(db, () => recordReviewTurns(db, state, classified.turns, classified.scanned)));
139
+ }
140
+ const range = await runtime.withDatabase(db => {
141
+ const current = reviewState(db, binding.runId);
142
+ const pending = db.prepare('SELECT min(start_seq) AS start,max(end_seq) AS end,count(DISTINCT start_seq) AS n FROM memory_review_turns WHERE run_id=? AND end_seq>?')
143
+ .get(binding.runId, current.scheduled_through_seq);
144
+ const minimum = origin === 'manual' ? 1 : origin === 'boundary' ? settings.config.minimumTurns : settings.config.turnInterval;
145
+ if (pending.n < minimum || pending.start === null || pending.end === null || origin === 'boundary' && !settings.config.boundaryFlush)
146
+ return;
147
+ return { workspace: binding.workspace, sessionId: binding.session.id, runId: binding.runId, sourceGeneration: state.source_generation, startSeq: pending.start, endSeq: pending.end };
148
+ });
149
+ if (!range) {
150
+ this.worker.kick(binding.workspace);
151
+ return;
152
+ }
153
+ const job = await this.reserve(range, origin);
154
+ this.worker.kick(binding.workspace);
155
+ return job;
156
+ }
157
+ async reserve(range, origin, parent, contextStartSeq) {
158
+ if (this.#closed)
159
+ throw new Error('shutdown');
160
+ const settings = await this.options.runtime.withDatabase(db => { assertCaptureAllowed(db, range.workspace, range.sessionId); return reviewSettings(db, range.workspace); });
161
+ let evidence = [], blockedReason;
162
+ contextStartSeq ??= parent ? JSON.parse(parent.input_json).contextStartSeq : undefined;
163
+ try {
164
+ evidence = await reviewEvidenceWithContext(this.options.mirror, range, settings.config.maxInputBytes, contextStartSeq);
165
+ }
166
+ catch (error) {
167
+ if (error instanceof Error && ['input_too_large', 'secret_detected', 'insufficient_context'].includes(error.message))
168
+ blockedReason = error.message;
169
+ else
170
+ throw error;
171
+ }
172
+ // Include the complete request envelope before deciding a turn-boundary split.
173
+ const snapshot = await this.options.runtime.withDatabase(db => memorySnapshots(db, range, evidence.map(e => e.text).join('\n')));
174
+ if (Buffer.byteLength(JSON.stringify({ system: REVIEW_SYSTEM, range, evidence, ...snapshot })) + 1024 > settings.config.maxInputBytes)
175
+ blockedReason = 'input_too_large';
176
+ if (blockedReason === 'input_too_large' && !parent) {
177
+ const turns = await this.options.runtime.withDatabase(db => db.prepare('SELECT DISTINCT start_seq,end_seq FROM memory_review_turns WHERE run_id=? AND start_seq>=? AND end_seq<=? ORDER BY start_seq').all(range.runId, range.startSeq, range.endSeq));
178
+ if (turns.length > 1) {
179
+ const cut = Math.floor(turns.length / 2);
180
+ const first = await this.reserve({ ...range, endSeq: turns[cut - 1].end_seq }, origin, undefined, contextStartSeq);
181
+ // Later chunks must see candidates adopted from earlier chunks. Never
182
+ // freeze all snapshots before the first correction has been evaluated.
183
+ this.worker.kick(range.workspace);
184
+ await this.worker.whenIdle();
185
+ await this.reserve({ ...range, startSeq: turns[cut].start_seq }, origin, undefined, contextStartSeq ?? range.startSeq);
186
+ return first;
187
+ }
188
+ }
189
+ const header = await this.options.mirror.latestEvent(range.sessionId, 'request/header', range.endSeq);
190
+ const context = await this.options.mirror.latestEvent(range.sessionId, 'request/context', range.endSeq);
191
+ const model = parent ? JSON.parse(parent.input_json).model : reviewModel(header, context);
192
+ if (!model)
193
+ throw new Error('model_unavailable');
194
+ return this.options.runtime.withDatabase(db => withImmediateTransaction(db, () => {
195
+ return reserveReview(db, range, { evidence: reviewManifest(evidence), ...snapshot, model, ...(contextStartSeq === undefined ? {} : { contextStartSeq }), ...(blockedReason ? { blockedReason } : {}) }, origin, this.now(), parent);
196
+ }));
197
+ }
198
+ async retry(workspace, id) {
199
+ const parent = await this.options.runtime.withDatabase(db => {
200
+ const row = db.prepare('SELECT * FROM memory_review_jobs WHERE id=? AND workspace=?').get(id, workspace);
201
+ if (!row)
202
+ throw new Error('job_not_found');
203
+ assertCaptureAllowed(db, workspace, row.session_id);
204
+ if (reviewSettings(db, workspace)?.config.mode === 'off')
205
+ throw new Error('review_off');
206
+ return row;
207
+ });
208
+ const existing = await this.options.runtime.withDatabase(db => db.prepare('SELECT * FROM memory_review_jobs WHERE retry_parent_id=?').get(parent.id));
209
+ if (existing)
210
+ return existing;
211
+ try {
212
+ if (await this.options.mirror.sourceGeneration(parent.session_id) !== parent.source_generation)
213
+ throw new Error('source_unavailable');
214
+ const job = await this.reserve(jobRange(parent), 'retry', parent);
215
+ this.worker.kick(workspace);
216
+ return job;
217
+ }
218
+ catch (error) {
219
+ if (error instanceof Error && error.message === 'source_unavailable')
220
+ await this.options.runtime.withDatabase(db => db.prepare("UPDATE memory_review_jobs SET reason='source_unavailable' WHERE id=? AND resolved_by IS NULL").run(parent.id));
221
+ throw error;
222
+ }
223
+ }
224
+ async status(workspace, sessionId) {
225
+ return this.options.runtime.withDatabase(db => {
226
+ const settings = reviewSettings(db, workspace), policy = capturePolicy(db, workspace, sessionId);
227
+ const jobs = db.prepare(`SELECT id,run_id,state,reason,start_seq,end_seq,dispatched_at,completed_at,usage_json,duration_ms,request_bytes,adoption_wait_ms,next_eligible_at,retry_parent_id,resolved_by,
228
+ json_extract(input_json,'$.model.provider') AS provider,json_extract(input_json,'$.model.model') AS model
229
+ FROM memory_review_jobs WHERE workspace=? AND session_id=? ORDER BY created_at DESC LIMIT 50`).all(workspace, sessionId).map(row => {
230
+ const { usage_json, ...job } = row;
231
+ const held = !!db.prepare("SELECT 1 FROM memory_review_effects WHERE job_id=? AND disposition='held'").get(row.id);
232
+ const finalizer = !!db.prepare("SELECT 1 FROM dsh_memory_finalizations WHERE run_id=? AND status IN ('pending','processing')").get(row.run_id);
233
+ const child = !!db.prepare('SELECT 1 FROM memory_review_jobs WHERE retry_parent_id=?').get(row.id);
234
+ return { ...job, usage: typeof usage_json === 'string' ? JSON.parse(usage_json) : null,
235
+ retryAvailable: policy.mode === 'allowed' && settings?.config.mode !== 'off' && !row.resolved_by && !finalizer && !child && row.reason !== 'source_unavailable' && (['held', 'rejected', 'cancelled'].includes(String(row.state)) || row.state === 'completed' && held) };
236
+ });
237
+ const calls = db.prepare('SELECT count(*) AS n FROM memory_review_jobs WHERE workspace=? AND dispatch_day=?').get(workspace, this.now().slice(0, 10)).n;
238
+ return { requestedMode: this.#config.mode, effectiveMode: settings?.config.mode ?? this.#config.mode, settingsGeneration: settings?.generation ?? null, capture: policy,
239
+ dailyCalls: calls, remaining: Math.max(0, (settings?.config.dailyCalls ?? this.#config.dailyCalls) - calls),
240
+ states: db.prepare('SELECT * FROM memory_review_states WHERE workspace=? AND session_id=?').all(workspace, sessionId), jobs,
241
+ effects: db.prepare('SELECT disposition,reason,count(*) AS count FROM memory_review_effects WHERE workspace=? AND session_id=? GROUP BY disposition,reason').all(workspace, sessionId),
242
+ finalizers: db.prepare('SELECT run_id,status,attempt_count,capture_admission,last_error_code,provider,model,input_tokens,output_tokens FROM dsh_memory_finalizations WHERE workspace=? AND dsh_session_id=?').all(workspace, sessionId),
243
+ evolutionCalls: db.prepare('SELECT outcome,count(*) AS calls,sum(input_tokens) AS inputTokens,sum(output_tokens) AS outputTokens FROM memory_evolution_calls WHERE workspace=? GROUP BY outcome').all(workspace) };
244
+ });
245
+ }
246
+ async exclude(workspace, sessionId) {
247
+ await this.options.runtime.withDatabase(db => withImmediateTransaction(db, () => excludeCapture(db, workspace, sessionId, 'excluded', 'capture_excluded', this.now())));
248
+ abortCapture(workspace, sessionId);
249
+ }
250
+ async whenIdle() { while (this.#tails.size)
251
+ await Promise.allSettled(this.#tails.values()); await this.worker.whenIdle(); }
252
+ async dispose() { this.#closed = true; await this.worker.dispose(); }
253
+ }
254
+ //# sourceMappingURL=auto-memory-review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-memory-review.js","sourceRoot":"","sources":["../../src/dsh/auto-memory-review.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,11 @@ export interface DshCompositionHost {
47
47
  readonly configureSkillPrompts?: (prompts: DshSkillPrompts) => void;
48
48
  readonly configureEnnoMemory?: (config: import('./config.js').EnnoMemoryConfig) => void;
49
49
  readonly deepPlanning?: import('../deep-thinker/controller.js').DeepPlanningController;
50
+ readonly memoryReview?: {
51
+ start?: () => Promise<void>;
52
+ configure: (config: import('../memory/review/contracts.js').ReviewConfig) => Promise<void>;
53
+ command: (session: DshNativeSession, raw: string) => Promise<Record<string, unknown>>;
54
+ };
50
55
  readonly memoryEvolution?: {
51
56
  configure: (config: import('../memory/evolution/contracts.js').EvolutionConfig) => void;
52
57
  status: (sessionId: string) => Promise<Record<string, unknown>>;