@dsh-cc/memory-consolidation 0.8.0-rc.2 → 0.8.1-rc.1

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.
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Dream dispatch diagnostics: a durable "why did the dream die" breadcrumb
3
+ * inside the memory directory. The file `.dream-last-error.json` carries the
4
+ * LATEST failure (overwrite, never append — failure is a cold path and one
5
+ * fresh record beats an unbounded log):
6
+ * `{ at, pid, sessionId, phase, detail }` where phase distinguishes the death
7
+ * modes: `dispatch-started` (spawn dispatched, outcome unknown = hang when the
8
+ * file is never overwritten), `dispatch-throw` (the dispatch threw; detail
9
+ * carries the error + stack), `outcome-failed` (the job settled as failed or
10
+ * killed; detail carries the job outcome).
11
+ *
12
+ * The write mirrors lock.ts/pressure.ts byte-for-byte (`fs.writeText(target,
13
+ * content, policy)` direct write) — it MUST NOT go through `writeMemoryFiles`,
14
+ * whose FILE_NAME whitelist rejects dotfiles/`.json`. Never throws: a
15
+ * diagnostic failure must not kill the dream path it is reporting on.
16
+ * @module @dsh-cc/memory-consolidation/diagnostics
17
+ */
18
+ import type { Context } from '@deepseek-ai/cordis';
19
+ import type { FileSystem } from '@deepseek-ai/dsh-fs';
20
+ import type { MemoryWritePolicy } from '@dsh-cc/memory';
21
+ /** Diagnostic filename inside the workspace memory directory. */
22
+ export declare const DREAM_DIAGNOSTIC_FILE = ".dream-last-error.json";
23
+ /** The death mode the entry records. */
24
+ export type DreamDiagnosticPhase = 'dispatch-started' | 'dispatch-throw' | 'outcome-failed';
25
+ /** One diagnostic record; written as `{ at, pid, ...entry }` JSON. */
26
+ export interface DreamDiagnosticEntry {
27
+ /** The owning session id (`agent.session.header.id`). */
28
+ sessionId: string;
29
+ phase: DreamDiagnosticPhase;
30
+ /** Human-readable error text (error + stack, or the job outcome detail). */
31
+ detail: string;
32
+ }
33
+ /**
34
+ * Overwrite `<dir>/.dream-last-error.json` with the entry. Best-effort: any
35
+ * failure is swallowed after a single `ctx.logger.warn` so diagnostics can
36
+ * never break a dream (plan §2.1, review Minor-3).
37
+ * @param ctx - the host context (logger only).
38
+ * @param fs - the filesystem seam.
39
+ * @param dir - the workspace memory directory holding the diagnostic file.
40
+ * @param policy - per-call sandbox policy for the write (same as the lock).
41
+ * @param entry - the phase/session/detail payload.
42
+ */
43
+ export declare function recordDreamDiagnostic(ctx: Context, fs: FileSystem, dir: string, policy: MemoryWritePolicy | undefined, entry: DreamDiagnosticEntry): Promise<void>;
44
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAY,MAAM,qBAAqB,CAAA;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAEvD,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,2BAA2B,CAAA;AAE7D,wCAAwC;AACxC,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG,gBAAgB,GAAG,gBAAgB,CAAA;AAE3F,sEAAsE;AACtE,MAAM,WAAW,oBAAoB;IACnC,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,oBAAoB,CAAA;IAC3B,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,OAAO,EACZ,EAAE,EAAE,UAAU,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,iBAAiB,GAAG,SAAS,EACrC,KAAK,EAAE,oBAAoB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAQf"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Dream dispatch diagnostics: a durable "why did the dream die" breadcrumb
3
+ * inside the memory directory. The file `.dream-last-error.json` carries the
4
+ * LATEST failure (overwrite, never append — failure is a cold path and one
5
+ * fresh record beats an unbounded log):
6
+ * `{ at, pid, sessionId, phase, detail }` where phase distinguishes the death
7
+ * modes: `dispatch-started` (spawn dispatched, outcome unknown = hang when the
8
+ * file is never overwritten), `dispatch-throw` (the dispatch threw; detail
9
+ * carries the error + stack), `outcome-failed` (the job settled as failed or
10
+ * killed; detail carries the job outcome).
11
+ *
12
+ * The write mirrors lock.ts/pressure.ts byte-for-byte (`fs.writeText(target,
13
+ * content, policy)` direct write) — it MUST NOT go through `writeMemoryFiles`,
14
+ * whose FILE_NAME whitelist rejects dotfiles/`.json`. Never throws: a
15
+ * diagnostic failure must not kill the dream path it is reporting on.
16
+ * @module @dsh-cc/memory-consolidation/diagnostics
17
+ */
18
+ import { join } from 'node:path';
19
+ /** Diagnostic filename inside the workspace memory directory. */
20
+ export const DREAM_DIAGNOSTIC_FILE = '.dream-last-error.json';
21
+ /**
22
+ * Overwrite `<dir>/.dream-last-error.json` with the entry. Best-effort: any
23
+ * failure is swallowed after a single `ctx.logger.warn` so diagnostics can
24
+ * never break a dream (plan §2.1, review Minor-3).
25
+ * @param ctx - the host context (logger only).
26
+ * @param fs - the filesystem seam.
27
+ * @param dir - the workspace memory directory holding the diagnostic file.
28
+ * @param policy - per-call sandbox policy for the write (same as the lock).
29
+ * @param entry - the phase/session/detail payload.
30
+ */
31
+ export async function recordDreamDiagnostic(ctx, fs, dir, policy, entry) {
32
+ try {
33
+ const target = await fs.resolve(join(dir, DREAM_DIAGNOSTIC_FILE));
34
+ const content = `${JSON.stringify({ at: Date.now(), pid: process.pid, ...entry })}\n`;
35
+ await fs.writeText(target, content, undefined, undefined, policy);
36
+ }
37
+ catch (err) {
38
+ ctx.logger.warn(`memory-consolidation: failed to write dream diagnostic: ${String(err)}`);
39
+ }
40
+ }
41
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAKhC,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,wBAAwB,CAAA;AAc7D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAAY,EACZ,EAAc,EACd,GAAW,EACX,MAAqC,EACrC,KAA2B;IAE3B,IAAI,CAAC;QACH,MAAM,MAAM,GAAa,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,CAAA;QAC3E,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC,IAAI,CAAA;QACrF,MAAM,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IACnE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAC3F,CAAC;AACH,CAAC"}
package/lib/index.d.ts CHANGED
@@ -2,8 +2,7 @@
2
2
  * Background memory consolidation: turn-end extraction and the three-gate
3
3
  * dream rewrite.
4
4
  *
5
- * `agent/turn-stopping` fires an extraction subagent (via `ctx.jobs` +
6
- * `ctx.subagents`, tools restricted to read/search) that reports durable facts
5
+ * `agent/turn-stopping` fires an extraction subagent (via `ctx.subagents`, tools restricted to read/search) that reports durable facts
7
6
  * as structured output, and evaluates the dream gates (time, session count,
8
7
  * lock) to schedule a read-only review whose structured output rewrites
9
8
  * MEMORY.md and the topic files. The forks hold no write tools — the memory
@@ -22,11 +21,13 @@ export { LOCK_FILE, LOCK_STALE_MS, readLastConsolidatedAt, rollbackLock, tryAcqu
22
21
  export { gatesPass, timeGatePasses, sessionGatePasses } from './gates.ts';
23
22
  export type { ConsolidationGateInput } from './gates.ts';
24
23
  export { MEMORY_AGENT_TOOLS, MEMORY_TOOL_FILTER } from './tools.ts';
24
+ export { DREAM_DIAGNOSTIC_FILE, recordDreamDiagnostic } from './diagnostics.ts';
25
+ export type { DreamDiagnosticEntry, DreamDiagnosticPhase } from './diagnostics.ts';
25
26
  export { buildConsolidationPrompt, buildExtractionPrompt } from './prompts.ts';
26
27
  export { MEMORY_WRITES_SCHEMA, WRITEBACK_MAX_FILE_BYTES, WRITEBACK_MAX_FILES, WRITEBACK_MAX_TOTAL_BYTES, memoryWritePolicy, validateMemoryWrites, writeMemoryFiles, } from '@dsh-cc/memory';
27
28
  export type { MemoryWrite, MemoryWritePolicy } from '@dsh-cc/memory';
28
29
  export declare const name = "memory-consolidation";
29
- /** Services required for background jobs and the subagent provider. */
30
+ /** Services required for the subagent provider (jobs seam intentionally unused). */
30
31
  export declare const inject: string[];
31
32
  /** Memory consolidation configuration. */
32
33
  export interface Config {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AASxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AASzD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1G,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACzE,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAG9E,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAEpE,eAAO,MAAM,IAAI,yBAAyB,CAAA;AAC1C,uEAAuE;AACvE,eAAO,MAAM,MAAM,UAAwB,CAAA;AAE3C,0CAA0C;AAC1C,MAAM,WAAW,MAAM;IACrB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gDAAgD;IAChD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qEAAqE;IACrE,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,6DAA6D;IAC7D,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAU3B,CAAA;AAIF;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,MAAW,GAAG,IAAI,CAkF7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,CAAC,MAAM,0BAA0B,CAAA;AAUxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AASzD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1G,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACzE,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACxD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACnE,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC/E,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAClF,OAAO,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAG9E,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,gBAAgB,CAAA;AACvB,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAEpE,eAAO,MAAM,IAAI,yBAAyB,CAAA;AAC1C,oFAAoF;AACpF,eAAO,MAAM,MAAM,UAAgB,CAAA;AAEnC,0CAA0C;AAC1C,MAAM,WAAW,MAAM;IACrB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,gDAAgD;IAChD,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,qEAAqE;IACrE,uBAAuB,CAAC,EAAE,MAAM,CAAA;IAChC,6DAA6D;IAC7D,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,MAAM,EAAE,CAAC,CAAC,MAAM,CAU3B,CAAA;AAIF;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,MAAW,GAAG,IAAI,CAkF7D"}
package/lib/index.js CHANGED
@@ -2,8 +2,7 @@
2
2
  * Background memory consolidation: turn-end extraction and the three-gate
3
3
  * dream rewrite.
4
4
  *
5
- * `agent/turn-stopping` fires an extraction subagent (via `ctx.jobs` +
6
- * `ctx.subagents`, tools restricted to read/search) that reports durable facts
5
+ * `agent/turn-stopping` fires an extraction subagent (via `ctx.subagents`, tools restricted to read/search) that reports durable facts
7
6
  * as structured output, and evaluates the dream gates (time, session count,
8
7
  * lock) to schedule a read-only review whose structured output rewrites
9
8
  * MEMORY.md and the topic files. The forks hold no write tools — the memory
@@ -25,18 +24,20 @@ import { timeGatePasses, sessionGatePasses } from "./gates.js";
25
24
  import { gateWindow, scanSessions } from "./session-scan.js";
26
25
  import { readLastConsolidatedAt, rollbackLock, tryAcquireLock, LOCK_STALE_MS } from "./lock.js";
27
26
  import { startMemoryJob } from "./memory-job.js";
27
+ import { recordDreamDiagnostic } from "./diagnostics.js";
28
28
  export { applyEntrypointFallback } from "./memory-job.js";
29
29
  import { memoryWritePolicy, resolveWorkspaceMemoryDir, readPressure, markPressureForced, clearPressure, } from '@dsh-cc/memory';
30
30
  export { LOCK_FILE, LOCK_STALE_MS, readLastConsolidatedAt, rollbackLock, tryAcquireLock } from "./lock.js";
31
31
  export { gatesPass, timeGatePasses, sessionGatePasses } from "./gates.js";
32
32
  export { MEMORY_AGENT_TOOLS, MEMORY_TOOL_FILTER } from "./tools.js";
33
+ export { DREAM_DIAGNOSTIC_FILE, recordDreamDiagnostic } from "./diagnostics.js";
33
34
  export { buildConsolidationPrompt, buildExtractionPrompt } from "./prompts.js";
34
35
  // The write-back lives in @dsh-cc/memory (the memory directory owner);
35
36
  // re-exported here for consumers of the pre-move surface.
36
37
  export { MEMORY_WRITES_SCHEMA, WRITEBACK_MAX_FILE_BYTES, WRITEBACK_MAX_FILES, WRITEBACK_MAX_TOTAL_BYTES, memoryWritePolicy, validateMemoryWrites, writeMemoryFiles, } from '@dsh-cc/memory';
37
38
  export const name = 'memory-consolidation';
38
- /** Services required for background jobs and the subagent provider. */
39
- export const inject = ['jobs', 'subagents'];
39
+ /** Services required for the subagent provider (jobs seam intentionally unused). */
40
+ export const inject = ['subagents'];
40
41
  export const Config = z.object({
41
42
  memoryHome: z.string(),
42
43
  extractEnabled: z.boolean().default(true),
@@ -289,17 +290,67 @@ async function runDream(ctx, agent, home, provider, minHours, minSessions, press
289
290
  ctx.logger.warn(`memory-consolidation: consolidation lock held by a live holder in ${dir}`);
290
291
  return;
291
292
  }
292
- const prompt = buildConsolidationPrompt(dir, sessionsRoot, hints);
293
- const job = await startMemoryJob(ctx, agent, dir, provider, 'memory-consolidation', prompt);
294
- void job.done.then((outcome) => {
295
- ctx.logger.debug({ event: 'memory:dream-outcome', status: outcome.status, detail: outcome.status === 'failed' ? outcome.detail : undefined });
296
- if (outcome.status !== 'completed') {
297
- void rollbackLock(fs, dir, priorAt, policy);
298
- return;
299
- }
300
- // Success tombs the marker in BOTH modes: a successful periodic dream
301
- // rebuilds the index, so a stale pending marker is obsolete by definition.
302
- void clearPressure(fs, dir, now, policy);
303
- });
293
+ // Diagnostics + lock hygiene from here on: everything after the acquire can
294
+ // strand the lock (a startMemoryJob throw, an earlier silent death), so the
295
+ // whole spawn is wrapped and every failure leaves a durable breadcrumb
296
+ // before the rollback (plan §2.2, review Major-1/Major-2).
297
+ const sessionId = agent.session.header.id;
298
+ try {
299
+ await recordDreamDiagnostic(ctx, fs, dir, policy, { sessionId, phase: 'dispatch-started', detail: '' });
300
+ const prompt = buildConsolidationPrompt(dir, sessionsRoot, hints);
301
+ const job = await startMemoryJob(ctx, agent, dir, provider, 'memory-consolidation', prompt);
302
+ void job.done.then(async (outcome) => {
303
+ ctx.logger.debug({ event: 'memory:dream-outcome', status: outcome.status, detail: outcome.status === 'failed' ? outcome.detail : undefined });
304
+ if (outcome.status === 'completed') {
305
+ // Success tombs the marker in BOTH modes: a successful periodic dream
306
+ // rebuilds the index, so a stale pending marker is obsolete by definition.
307
+ void clearPressure(fs, dir, now, policy);
308
+ return;
309
+ }
310
+ await recordDreamDiagnostic(ctx, fs, dir, policy, {
311
+ sessionId,
312
+ phase: 'outcome-failed',
313
+ detail: outcome.status === 'failed' ? outcome.detail : outcome.status,
314
+ });
315
+ // One bounded retry (design 2026-09-24 §4.2): only a FAILED outcome
316
+ // respawns — `killed` is an intentional abort (session teardown /
317
+ // controller.abort) and must never respawn. The retry reuses the held
318
+ // lock (no re-acquire) and does not restamp the pressure marker. The
319
+ // whole retry block gets its OWN try/catch mirroring the dispatch-throw
320
+ // branch: a throw inside the retry must never strand the lock.
321
+ if (outcome.status !== 'failed') {
322
+ void rollbackLock(fs, dir, priorAt, policy);
323
+ return;
324
+ }
325
+ try {
326
+ const retry = await startMemoryJob(ctx, agent, dir, provider, 'memory-consolidation', prompt);
327
+ void retry.done.then(async (retryOutcome) => {
328
+ ctx.logger.debug({ event: 'memory:dream-outcome', retry: true, status: retryOutcome.status, detail: retryOutcome.status === 'failed' ? retryOutcome.detail : undefined });
329
+ if (retryOutcome.status === 'completed') {
330
+ void clearPressure(fs, dir, now, policy);
331
+ return;
332
+ }
333
+ await recordDreamDiagnostic(ctx, fs, dir, policy, {
334
+ sessionId,
335
+ phase: 'outcome-failed',
336
+ detail: `retry ${retryOutcome.status === 'failed' ? retryOutcome.detail : retryOutcome.status}`,
337
+ });
338
+ void rollbackLock(fs, dir, priorAt, policy);
339
+ });
340
+ }
341
+ catch (err) {
342
+ const detail = err instanceof Error && err.stack ? `${String(err)}\n${err.stack}` : String(err);
343
+ await recordDreamDiagnostic(ctx, fs, dir, policy, { sessionId, phase: 'outcome-failed', detail: `retry ${detail}` });
344
+ await rollbackLock(fs, dir, priorAt, policy);
345
+ ctx.logger.warn(`memory-consolidation: dream retry failed: ${detail}`);
346
+ }
347
+ });
348
+ }
349
+ catch (err) {
350
+ const detail = err instanceof Error && err.stack ? `${String(err)}\n${err.stack}` : String(err);
351
+ await recordDreamDiagnostic(ctx, fs, dir, policy, { sessionId, phase: 'dispatch-throw', detail });
352
+ await rollbackLock(fs, dir, priorAt, policy);
353
+ ctx.logger.warn(`memory-consolidation: dream dispatch failed: ${detail}`);
354
+ }
304
355
  }
305
356
  //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  /**
2
- * The jobs-seam spawn helper for memory forks (extraction and dream): starts
3
- * the one-shot subagent as a background job and maps the settled outcome onto
2
+ * The subagent spawn helper for memory forks (extraction and dream): starts
3
+ * the one-shot subagent (never registered on the jobs seam — internal memory
4
+ * work stays invisible to the model surface) and maps the settled outcome onto
4
5
  * the JobHooks contract.
5
6
  * @module @dsh-cc/memory-consolidation/memory-job
6
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"memory-job.d.ts","sourceRoot":"","sources":["../src/memory-job.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAgDnD,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAc9G;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAajE;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;CAAE,CAAC,CA6DjG"}
1
+ {"version":3,"file":"memory-job.d.ts","sourceRoot":"","sources":["../src/memory-job.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAsCnD,sEAAsE;AACtE,MAAM,MAAM,UAAU,GAAG;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAc9G;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAajE;AAED;;;;;;GAMG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,KAAK,EACZ,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,OAAO,CAAC;IAAE,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,CAAA;CAAE,CAAC,CAsEjG"}
package/lib/memory-job.js CHANGED
@@ -1,10 +1,12 @@
1
1
  /**
2
- * The jobs-seam spawn helper for memory forks (extraction and dream): starts
3
- * the one-shot subagent as a background job and maps the settled outcome onto
2
+ * The subagent spawn helper for memory forks (extraction and dream): starts
3
+ * the one-shot subagent (never registered on the jobs seam — internal memory
4
+ * work stays invisible to the model surface) and maps the settled outcome onto
4
5
  * the JobHooks contract.
5
6
  * @module @dsh-cc/memory-consolidation/memory-job
6
7
  */
7
8
  import { MEMORY_WRITES_SCHEMA, validateMemoryWrites, writeMemoryFiles, ENTRYPOINT_NAME, MAX_ENTRYPOINT_LINES, MAX_ENTRYPOINT_BYTES, truncateEntrypointContent, } from '@dsh-cc/memory';
9
+ import { startWithFilterResilience } from '@dsh-cc/memory';
8
10
  import { MEMORY_TOOL_FILTER } from "./tools.js";
9
11
  /**
10
12
  * Over-limit measurement for the entrypoint, identical to the write-side gate
@@ -53,18 +55,26 @@ export function applyEntrypointFallback(payload) {
53
55
  * the reported writes were validated and persisted).
54
56
  */
55
57
  export async function startMemoryJob(ctx, agent, dir, provider, label, prompt) {
56
- const jobs = ctx.get('jobs');
57
58
  const subagents = ctx.get('subagents');
58
- if (jobs === undefined || subagents === undefined) {
59
- return { abort: () => { }, settled: Promise.resolve(false), done: Promise.resolve({ status: 'failed', detail: 'jobs/subagents seam unavailable' }) };
59
+ if (subagents === undefined) {
60
+ return { abort: () => { }, settled: Promise.resolve(false), done: Promise.resolve({ status: 'failed', detail: 'subagents seam unavailable' }) };
60
61
  }
61
62
  const fs = ctx.get('fs');
63
+ // Same logger fallback shape as recall.ts's warnOnce; called bound so the
64
+ // host logger method keeps its `this`.
65
+ const hostLogger = ctx.logger;
66
+ const logger = { warn: (message) => {
67
+ if (typeof hostLogger?.warn === 'function')
68
+ hostLogger.warn(message);
69
+ else
70
+ console.warn(message);
71
+ } };
62
72
  const controller = new AbortController();
63
73
  // `subagents.start` is async upstream — awaiting it is what exposes the run's
64
74
  // `result` promise. Reading `run.result` on the un-awaited Promise throws
65
75
  // "Cannot read properties of undefined (reading 'then')" and poisons the
66
76
  // turn-stopping dispatch.
67
- const run = await subagents.start(provider, {
77
+ const run = await startWithFilterResilience(subagents, provider, {
68
78
  label,
69
79
  signal: controller.signal,
70
80
  prompt: [{ type: 'text', text: prompt }],
@@ -76,8 +86,7 @@ export async function startMemoryJob(ctx, agent, dir, provider, label, prompt) {
76
86
  // child resolves to 1 and passes, a grandchild to 2 is rejected.
77
87
  maxDepth: 1,
78
88
  outputSchema: MEMORY_WRITES_SCHEMA,
79
- });
80
- // Real job-done wiring: `done` maps the subagent outcome onto the JobHooks
89
+ }, logger); // Real job-done wiring: `done` maps the subagent outcome onto the JobHooks
81
90
  // contract (must never reject). Aborted → killed (rolls back the dream
82
91
  // lock); a non-completed stopReason, a missing/invalid payload, or a
83
92
  // write-back failure → failed with detail; a validated, persisted batch →
@@ -101,15 +110,20 @@ export async function startMemoryJob(ctx, agent, dir, provider, label, prompt) {
101
110
  }
102
111
  }, (err) => controller.signal.aborted ? { status: 'killed' } : { status: 'failed', detail: String(err) });
103
112
  const settled = done.then(o => o.status === 'completed');
104
- jobs.start({
105
- kind: 'subagent',
106
- label,
107
- owner: agent,
108
- run: () => ({
109
- cancel: (reason) => { controller.abort(reason); },
110
- done,
111
- }),
112
- });
113
+ // Per-agent disposal guarantee (replaces the old jobs-seam owner link):
114
+ // aborting the agent's fiber aborts this fork and awaits its settle, and a
115
+ // settled job detaches its own effect. Registered AFTER the dispatch (a
116
+ // dispatch throw must not leak an effect), wrapped so a disposing scope —
117
+ // which rejects new effects — is a no-op, never a new failure path.
118
+ let dispose;
119
+ try {
120
+ dispose = agent.ctx.effect(() => async () => {
121
+ controller.abort('agent disposed');
122
+ await done.catch(() => { });
123
+ }, 'memory-consolidation: cancel the fork on agent disposal');
124
+ }
125
+ catch { /* agent scope already disposing: the fork dies with it anyway */ }
126
+ void done.finally(() => { dispose?.(); });
113
127
  return { abort: (reason) => { controller.abort(reason); }, settled, done };
114
128
  }
115
129
  //# sourceMappingURL=memory-job.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-job.js","sourceRoot":"","sources":["../src/memory-job.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-job.js","sourceRoot":"","sources":["../src/memory-job.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,MAAM,CAeR;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,MAAM,CAgBR"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,MAAM,CAiBR;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,SAAS,MAAM,EAAE,GAC9B,MAAM,CAkBR"}
package/lib/prompts.js CHANGED
@@ -34,6 +34,8 @@ export function buildExtractionPrompt(surfaceMessageCount, memoryDir, existingIn
34
34
  '',
35
35
  'Existing topics:',
36
36
  existingIndex.length > 0 ? existingIndex : '(none yet)',
37
+ '',
38
+ 'FINAL CONTRACT: your turn is incomplete until you have called `structured_output` with the full report. Plans or findings narrated in prose without that call are discarded entirely — there is no partial credit, and no one will ask you twice.',
37
39
  ].join('\n');
38
40
  }
39
41
  /**
@@ -60,6 +62,8 @@ export function buildConsolidationPrompt(memoryDir, sessionsRoot, sessionHints)
60
62
  '',
61
63
  `Session provenance hints (ids under \`${sessionsRoot}\`):`,
62
64
  ...sessionHints.map(id => `- ${id}`),
65
+ '',
66
+ 'FINAL CONTRACT: your turn is incomplete until you have called `structured_output` with the full report. Plans or findings narrated in prose without that call are discarded entirely — there is no partial credit, and no one will ask you twice.',
63
67
  ].join('\n');
64
68
  }
65
69
  //# sourceMappingURL=prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,wEAAwE;AACxE,MAAM,eAAe,GAAG,WAAW,CAAA;AAEnC;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,mBAA2B,EAC3B,SAAiB,EACjB,aAAqB;IAErB,OAAO;QACL,0CAA0C,mBAAmB,oFAAoF;QACjJ,0GAA0G;QAC1G,sGAAsG,SAAS,iKAAiK;QAChR,mJAAmJ;QACnJ,yCAAyC,eAAe,iEAAiE;QACzH,sJAAsJ;QACtJ,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,SAAS,KAAK;QACxF,+HAA+H;QAC/H,gIAAgI;QAChI,EAAE;QACF,kBAAkB;QAClB,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;KACxD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,YAAoB,EACpB,YAA+B;IAE/B,OAAO;QACL,wHAAwH,SAAS,KAAK;QACtI,0IAA0I;QAC1I,8OAA8O;QAC9O,qBAAqB;QACrB,qBAAqB,SAAS,iBAAiB,eAAe,2EAA2E;QACzI,uUAAuU;QACvU,iHAAiH;QACjH,8LAA8L;QAC9L,+BAA+B,eAAe,mOAAmO;QACjR,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACrD,EAAE;QACF,yCAAyC,YAAY,MAAM;QAC3D,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;KACrC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,wEAAwE;AACxE,MAAM,eAAe,GAAG,WAAW,CAAA;AAEnC;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CACnC,mBAA2B,EAC3B,SAAiB,EACjB,aAAqB;IAErB,OAAO;QACL,0CAA0C,mBAAmB,oFAAoF;QACjJ,0GAA0G;QAC1G,sGAAsG,SAAS,iKAAiK;QAChR,mJAAmJ;QACnJ,yCAAyC,eAAe,iEAAiE;QACzH,sJAAsJ;QACtJ,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,wBAAwB,SAAS,KAAK;QACxF,+HAA+H;QAC/H,gIAAgI;QAChI,EAAE;QACF,kBAAkB;QAClB,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY;QACvD,EAAE;QACF,mPAAmP;KACpP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,SAAiB,EACjB,YAAoB,EACpB,YAA+B;IAE/B,OAAO;QACL,wHAAwH,SAAS,KAAK;QACtI,0IAA0I;QAC1I,8OAA8O;QAC9O,qBAAqB;QACrB,qBAAqB,SAAS,iBAAiB,eAAe,2EAA2E;QACzI,uUAAuU;QACvU,iHAAiH;QACjH,8LAA8L;QAC9L,+BAA+B,eAAe,mOAAmO;QACjR,qBAAqB,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACrD,EAAE;QACF,yCAAyC,YAAY,MAAM;QAC3D,GAAG,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC;QACpC,EAAE;QACF,mPAAmP;KACpP,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
package/lib/tools.d.ts CHANGED
@@ -6,16 +6,29 @@
6
6
  * are fenced by the fs sandbox with no escalation path from a background job.
7
7
  * Instead the forks report their file set through the driver-injected
8
8
  * `structured_output` tool and the plugin performs the writes host-side (see
9
- * `writeback.ts`). `structured_output` is allow-listed defensively: the driver
10
- * installs it AFTER the tool filter is applied, so a name-level filter must
11
- * not shadow it.
9
+ * `writeback.ts`).
10
+ *
11
+ * Invariants:
12
+ * - `tools.restrict()` validates only inherited/global tool names and THROWS
13
+ * on unknown ones (harness core/tools, src/index.ts restrict + restrictable
14
+ * names construction: inherited layers only, a scope's own registrations
15
+ * stay visible and are deliberately excluded from restrictableNames).
16
+ * - The `structured_output` tool is injected child-scoped by the in-process
17
+ * driver for `outputSchema`-declaring requests and stays visible regardless
18
+ * of the filter — so it must NOT be allow-listed (naming it here throws
19
+ * deterministically in deployments without a global StructuredOutput tool).
20
+ * - Precedent: the recall lane passes `toolFilter: { allow: ['read'] }` with
21
+ * `outputSchema` (packages/memory/memory/src/recall.ts) and its children
22
+ * still call the injected `structured_output`.
12
23
  *
13
24
  * `read_image` pairs with `read` to mirror Claude Code's `Read`, which covers
14
25
  * both text and images (the harness splits image reading into its own tool).
15
26
  * @module @dsh-cc/memory-consolidation/tools
16
27
  */
17
- /** Harness tool names a memory subagent may exercise. */
28
+ /** Prompt-facing tool vocabulary a memory subagent may exercise (feeds prompts.ts). */
18
29
  export declare const MEMORY_AGENT_TOOLS: readonly string[];
30
+ /** The tool the driver injects child-scoped per `outputSchema`; never host-global. */
31
+ export declare const DRIVER_INJECTED_TOOL = "structured_output";
19
32
  /** A `toolFilter` value usable as a subagent-start request restriction. */
20
33
  export declare const MEMORY_TOOL_FILTER: {
21
34
  allow: readonly string[];
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAM/C,CAAA;AAED,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,EAAE;IAAE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAE1D,CAAA"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,uFAAuF;AACvF,eAAO,MAAM,kBAAkB,EAAE,SAAS,MAAM,EAM/C,CAAA;AAED,sFAAsF;AACtF,eAAO,MAAM,oBAAoB,sBAAsB,CAAA;AAEvD,2EAA2E;AAC3E,eAAO,MAAM,kBAAkB,EAAE;IAAE,KAAK,EAAE,SAAS,MAAM,EAAE,CAAA;CAE1D,CAAA"}
package/lib/tools.js CHANGED
@@ -6,15 +6,26 @@
6
6
  * are fenced by the fs sandbox with no escalation path from a background job.
7
7
  * Instead the forks report their file set through the driver-injected
8
8
  * `structured_output` tool and the plugin performs the writes host-side (see
9
- * `writeback.ts`). `structured_output` is allow-listed defensively: the driver
10
- * installs it AFTER the tool filter is applied, so a name-level filter must
11
- * not shadow it.
9
+ * `writeback.ts`).
10
+ *
11
+ * Invariants:
12
+ * - `tools.restrict()` validates only inherited/global tool names and THROWS
13
+ * on unknown ones (harness core/tools, src/index.ts restrict + restrictable
14
+ * names construction: inherited layers only, a scope's own registrations
15
+ * stay visible and are deliberately excluded from restrictableNames).
16
+ * - The `structured_output` tool is injected child-scoped by the in-process
17
+ * driver for `outputSchema`-declaring requests and stays visible regardless
18
+ * of the filter — so it must NOT be allow-listed (naming it here throws
19
+ * deterministically in deployments without a global StructuredOutput tool).
20
+ * - Precedent: the recall lane passes `toolFilter: { allow: ['read'] }` with
21
+ * `outputSchema` (packages/memory/memory/src/recall.ts) and its children
22
+ * still call the injected `structured_output`.
12
23
  *
13
24
  * `read_image` pairs with `read` to mirror Claude Code's `Read`, which covers
14
25
  * both text and images (the harness splits image reading into its own tool).
15
26
  * @module @dsh-cc/memory-consolidation/tools
16
27
  */
17
- /** Harness tool names a memory subagent may exercise. */
28
+ /** Prompt-facing tool vocabulary a memory subagent may exercise (feeds prompts.ts). */
18
29
  export const MEMORY_AGENT_TOOLS = [
19
30
  'read',
20
31
  'read_image',
@@ -22,8 +33,10 @@ export const MEMORY_AGENT_TOOLS = [
22
33
  'glob',
23
34
  'structured_output',
24
35
  ];
36
+ /** The tool the driver injects child-scoped per `outputSchema`; never host-global. */
37
+ export const DRIVER_INJECTED_TOOL = 'structured_output';
25
38
  /** A `toolFilter` value usable as a subagent-start request restriction. */
26
39
  export const MEMORY_TOOL_FILTER = {
27
- allow: MEMORY_AGENT_TOOLS,
40
+ allow: MEMORY_AGENT_TOOLS.filter(name => name !== DRIVER_INJECTED_TOOL),
28
41
  };
29
42
  //# sourceMappingURL=tools.js.map
package/lib/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,yDAAyD;AACzD,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,MAAM;IACN,YAAY;IACZ,MAAM;IACN,MAAM;IACN,mBAAmB;CACpB,CAAA;AAED,2EAA2E;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D,KAAK,EAAE,kBAAkB;CAC1B,CAAA"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,uFAAuF;AACvF,MAAM,CAAC,MAAM,kBAAkB,GAAsB;IACnD,MAAM;IACN,YAAY;IACZ,MAAM;IACN,MAAM;IACN,mBAAmB;CACpB,CAAA;AAED,sFAAsF;AACtF,MAAM,CAAC,MAAM,oBAAoB,GAAG,mBAAmB,CAAA;AAEvD,2EAA2E;AAC3E,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D,KAAK,EAAE,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,oBAAoB,CAAC;CACxE,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dsh-cc/memory-consolidation",
3
3
  "description": "Background memory consolidation: turn-end extraction and three-gate dream rewrite",
4
- "version": "0.8.0-rc.2",
4
+ "version": "0.8.1-rc.1",
5
5
  "repository": {
6
6
  "type": "git",
7
7
  "url": "git+https://github.com/dsh-cc/dsh-cc.git",
@@ -36,7 +36,7 @@
36
36
  "@deepseek-ai/schemastery": "^3.18.1"
37
37
  },
38
38
  "dependencies": {
39
- "@dsh-cc/memory": "^0.8.0-rc.2"
39
+ "@dsh-cc/memory": "^0.8.1-rc.1"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@deepseek-ai/cordis": "link:../../../../deepseek-harness/vendor/cordis",
@@ -47,7 +47,13 @@
47
47
  "@deepseek-ai/dsh-home-paths": "link:../../../../deepseek-harness/packages/util/home-paths",
48
48
  "@deepseek-ai/dsh-jobs": "link:../../../../deepseek-harness/packages/jobs/jobs",
49
49
  "@deepseek-ai/dsh-session": "link:../../../../deepseek-harness/packages/core/session",
50
- "@deepseek-ai/dsh-subagent": "link:../../../../deepseek-harness/packages/subagent/subagent"
50
+ "@deepseek-ai/dsh-subagent": "link:../../../../deepseek-harness/packages/subagent/subagent",
51
+ "@deepseek-ai/dsh-agent-loop": "link:../../../../deepseek-harness/packages/core/agent-loop",
52
+ "@deepseek-ai/dsh-agent-loop-testkit": "link:../../../../deepseek-harness/packages/test-support/agent-loop-testkit",
53
+ "@deepseek-ai/dsh-session-persistence-jsonl": "link:../../../../deepseek-harness/packages/session/session-persistence-jsonl",
54
+ "@deepseek-ai/dsh-subagent-fork-in-process": "link:../../../../deepseek-harness/packages/subagent/subagent-fork-in-process",
55
+ "@dsh-cc/agent-loop-mock": "^0.1.0",
56
+ "@dsh-cc/tools": "^0.8.1-rc.1"
51
57
  },
52
58
  "publishConfig": {
53
59
  "access": "public"