@duetso/agent 0.1.135 → 0.1.136
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/package.json +1 -1
- package/dist/src/cli/help.d.ts +1 -0
- package/dist/src/cli/help.d.ts.map +1 -1
- package/dist/src/cli/help.js +32 -0
- package/dist/src/cli/help.js.map +1 -1
- package/dist/src/cli/memory-reflect.d.ts +13 -0
- package/dist/src/cli/memory-reflect.d.ts.map +1 -0
- package/dist/src/cli/memory-reflect.js +165 -0
- package/dist/src/cli/memory-reflect.js.map +1 -0
- package/dist/src/cli/memory.d.ts.map +1 -1
- package/dist/src/cli/memory.js +8 -0
- package/dist/src/cli/memory.js.map +1 -1
- package/dist/src/cli.d.ts +1 -0
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +1 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/memory/observational.d.ts +187 -0
- package/dist/src/memory/observational.d.ts.map +1 -1
- package/dist/src/memory/observational.js +248 -5
- package/dist/src/memory/observational.js.map +1 -1
- package/dist/src/memory/storage.d.ts +16 -0
- package/dist/src/memory/storage.d.ts.map +1 -1
- package/dist/src/memory/storage.js +44 -0
- package/dist/src/memory/storage.js.map +1 -1
- package/dist/src/turn-runner/state-compaction.d.ts +49 -0
- package/dist/src/turn-runner/state-compaction.d.ts.map +1 -0
- package/dist/src/turn-runner/state-compaction.js +75 -0
- package/dist/src/turn-runner/state-compaction.js.map +1 -0
- package/dist/src/turn-runner/turn-runner.d.ts +8 -0
- package/dist/src/turn-runner/turn-runner.d.ts.map +1 -1
- package/dist/src/turn-runner/turn-runner.js +30 -1
- package/dist/src/turn-runner/turn-runner.js.map +1 -1
- package/dist/src/types/config.d.ts +19 -0
- package/dist/src/types/config.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -485,6 +485,8 @@ Observational memory thresholds (tuned for modern 200k-token windows):
|
|
|
485
485
|
- Raw-tail retention keeps about `30_000` exact message tokens after context replacement activates.
|
|
486
486
|
- Observation context is injected as reminder messages; replacing raw context with observations/reflections is the compaction path.
|
|
487
487
|
|
|
488
|
+
As a final safety net for on-disk state, `TurnRunner` also caps the size of every `TurnState` that leaves the runner via `snapshotState` — every emitted event, terminal payload, and `getState()` return is trimmed before persistence sees it. Eviction drops the oldest agent messages first while keeping tool-call/result pairs intact, so `state.json` cannot grow unbounded even if memory compaction has already run many times. This is on by default at a 100 MB ceiling; override or disable via `autoStateCompaction` on `TurnRunnerConfig` (`true` → default ceiling, `{ maxBytes }` → custom, `false` → off).
|
|
489
|
+
|
|
488
490
|
</details>
|
|
489
491
|
|
|
490
492
|
## Skills
|
package/dist/package.json
CHANGED
package/dist/src/cli/help.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export declare function printLoginHelp(): void;
|
|
|
10
10
|
export declare function printEnvHelp(): void;
|
|
11
11
|
export declare function printSkillsHelp(): void;
|
|
12
12
|
export declare function printMemoryHelp(): void;
|
|
13
|
+
export declare function printMemoryReflectHelp(): void;
|
|
13
14
|
export declare function printSendFeedbackHelp(): void;
|
|
14
15
|
export declare function printUpgradeHelp(packageName: string): void;
|
|
15
16
|
//# sourceMappingURL=help.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAoFtD;AAED,wBAAgB,cAAc,IAAI,IAAI,CA0BrC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAsBnC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAqBtC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAsBtC;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAiB5C;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAa1D"}
|
|
1
|
+
{"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAoFtD;AAED,wBAAgB,cAAc,IAAI,IAAI,CA0BrC;AAED,wBAAgB,YAAY,IAAI,IAAI,CAsBnC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAqBtC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAsBtC;AAED,wBAAgB,sBAAsB,IAAI,IAAI,CA+B7C;AAED,wBAAgB,qBAAqB,IAAI,IAAI,CAiB5C;AAED,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAa1D"}
|
package/dist/src/cli/help.js
CHANGED
|
@@ -186,6 +186,38 @@ KEYS
|
|
|
186
186
|
q / Esc Quit
|
|
187
187
|
`);
|
|
188
188
|
}
|
|
189
|
+
export function printMemoryReflectHelp() {
|
|
190
|
+
console.log(`
|
|
191
|
+
duet memory reflect — Condense old global observations into reflection rows
|
|
192
|
+
|
|
193
|
+
USAGE
|
|
194
|
+
duet memory reflect [--db <path>] [--dry-run] [--min-age-days <n>]
|
|
195
|
+
[--target-tokens <n>] [--model <name>]
|
|
196
|
+
[--effective-context <tokens>] [--wait <seconds>]
|
|
197
|
+
|
|
198
|
+
DESCRIPTION
|
|
199
|
+
Walks the durable memory store and folds raw observations older than
|
|
200
|
+
--min-age-days (default 3) into one reflection row per batch. Existing
|
|
201
|
+
reflection rows and fresh observations (younger than the cutoff) are
|
|
202
|
+
preserved verbatim so resumed sessions keep their recent local memory
|
|
203
|
+
intact. Batches are packed up to one reflection trigger's worth of
|
|
204
|
+
tokens, sequenced chronologically across sessions for cross-session
|
|
205
|
+
dedup. Use --dry-run to preview without writing.
|
|
206
|
+
|
|
207
|
+
OPTIONS
|
|
208
|
+
--db <path> Memory database path (default: ~/.duet/memory.db)
|
|
209
|
+
--dry-run Print the reflected log without writing it back
|
|
210
|
+
--min-age-days <n> Skip observations newer than this many days
|
|
211
|
+
(default: 3)
|
|
212
|
+
--target-tokens <n> Override the reflected log token budget per batch
|
|
213
|
+
--model <name> Memory model used for reflection (default: env / CLI default)
|
|
214
|
+
--effective-context <n> Effective context window used to derive memory budgets
|
|
215
|
+
(default: 200000)
|
|
216
|
+
--wait <seconds> Seconds to wait for the cross-process open-lock
|
|
217
|
+
(default: 30; 0 fails immediately)
|
|
218
|
+
-h, --help Show this help
|
|
219
|
+
`);
|
|
220
|
+
}
|
|
189
221
|
export function printSendFeedbackHelp() {
|
|
190
222
|
console.log(`
|
|
191
223
|
duet send-feedback — Send free-form markdown feedback to the Duet team
|
package/dist/src/cli/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAEjD,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;gDAmBkC,WAAW;;;;;;;;;;;;;gHAaqD,+BAA+B;;;;;oFAK3D,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CxG,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;wEAW0D,qBAAqB;;;;;;;;;;;;;CAa5F,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;yDAa2C,qBAAqB;;;;;;IAM1E,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;CAChC,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;CAmBb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;CAoBb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAeb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,OAAO,CAAC,GAAG,CAAC;oCACsB,WAAW;;;;;;;;;;CAU9C,CAAC,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAExE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AAEjD,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;gDAmBkC,WAAW;;;;;;;;;;;;;gHAaqD,+BAA+B;;;;;oFAK3D,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6CxG,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;wEAW0D,qBAAqB;;;;;;;;;;;;;CAa5F,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;yDAa2C,qBAAqB;;;;;;IAM1E,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;CAChC,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;CAmBb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;CAoBb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Bb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAeb,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,OAAO,CAAC,GAAG,CAAC;oCACsB,WAAW;;;;;;;;;;CAU9C,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
interface ReflectCommandIO {
|
|
2
|
+
stdout: NodeJS.WritableStream;
|
|
3
|
+
stderr: NodeJS.WritableStream;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Run `duet memory reflect` — read every observation in the durable store,
|
|
7
|
+
* condense them through the reflector, and replace the entire pool with one
|
|
8
|
+
* reflection row. Intended as a manual prune tool; the session-scoped
|
|
9
|
+
* reflection that runs automatically during turns is unaffected.
|
|
10
|
+
*/
|
|
11
|
+
export declare function runMemoryReflectCommand(args: string[], io?: ReflectCommandIO): Promise<void>;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=memory-reflect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-reflect.d.ts","sourceRoot":"","sources":["../../../src/cli/memory-reflect.ts"],"names":[],"mappings":"AA0BA,UAAU,gBAAgB;IACxB,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,EAAE,EACd,EAAE,GAAE,gBAAqE,GACxE,OAAO,CAAC,IAAI,CAAC,CAsFf"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { runMigrations } from "../memory/migrations.js";
|
|
2
|
+
import { DEFAULT_EFFECTIVE_CONTEXT, DEFAULT_GLOBAL_REFLECT_MIN_AGE_DAYS, reflectAllObservations, resolveObservationalMemorySettings, } from "../memory/observational.js";
|
|
3
|
+
import { MemoryLockTimeoutError } from "../memory/pglite.js";
|
|
4
|
+
import { MemorySession } from "../memory/session.js";
|
|
5
|
+
import { readAllObservations } from "../memory/storage.js";
|
|
6
|
+
import { DEFAULT_CLI_MEMORY_MODEL } from "../model-resolution/resolver.js";
|
|
7
|
+
import { DEFAULT_MEMORY_DB_PATH } from "../session/session-manager.js";
|
|
8
|
+
import { printMemoryReflectHelp } from "./help.js";
|
|
9
|
+
import { fail, resolveUserPath } from "./shared.js";
|
|
10
|
+
import { installShutdownHandlers } from "./shutdown.js";
|
|
11
|
+
/**
|
|
12
|
+
* Run `duet memory reflect` — read every observation in the durable store,
|
|
13
|
+
* condense them through the reflector, and replace the entire pool with one
|
|
14
|
+
* reflection row. Intended as a manual prune tool; the session-scoped
|
|
15
|
+
* reflection that runs automatically during turns is unaffected.
|
|
16
|
+
*/
|
|
17
|
+
export async function runMemoryReflectCommand(args, io = { stdout: process.stdout, stderr: process.stderr }) {
|
|
18
|
+
const options = parseArgs(args);
|
|
19
|
+
if (!options)
|
|
20
|
+
return;
|
|
21
|
+
const session = new MemorySession({
|
|
22
|
+
path: options.dbPath,
|
|
23
|
+
openOptions: {
|
|
24
|
+
init: async (db) => {
|
|
25
|
+
await runMigrations(db);
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
...(options.waitBudgetMs !== undefined ? { waitBudgetMs: options.waitBudgetMs } : {}),
|
|
29
|
+
idleCloseMs: 60_000,
|
|
30
|
+
});
|
|
31
|
+
const removeShutdownHandlers = installShutdownHandlers(() => session.dispose());
|
|
32
|
+
try {
|
|
33
|
+
// Eager probe so corruption / lock errors surface before the model call.
|
|
34
|
+
await session.withDb(async () => { });
|
|
35
|
+
const snapshot = await readAllObservations(session);
|
|
36
|
+
if (snapshot.observations.length === 0) {
|
|
37
|
+
io.stdout.write(`No observations to reflect at ${options.dbPath}\n`);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
const settings = resolveObservationalMemorySettings(options.effectiveContext);
|
|
41
|
+
const targetTokens = options.targetTokens ?? settings.reflection.bufferActivation;
|
|
42
|
+
const minAgeMs = options.minAgeDays * 24 * 60 * 60 * 1000;
|
|
43
|
+
io.stdout.write(`Reflecting ${snapshot.observations.length} observations (~${snapshot.estimatedObservationTokens} tokens) ` +
|
|
44
|
+
`older than ${options.minAgeDays} day(s) into <= ${targetTokens} tokens per batch using ${options.model}` +
|
|
45
|
+
(options.dryRun ? " [dry-run]" : "") +
|
|
46
|
+
"\n");
|
|
47
|
+
const result = await reflectAllObservations({
|
|
48
|
+
session,
|
|
49
|
+
snapshot,
|
|
50
|
+
settings,
|
|
51
|
+
model: options.model,
|
|
52
|
+
targetTokens,
|
|
53
|
+
minAgeMs,
|
|
54
|
+
dryRun: options.dryRun,
|
|
55
|
+
});
|
|
56
|
+
if (!result) {
|
|
57
|
+
io.stdout.write("Nothing to reflect.\n");
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
if (result.reflections.length === 0) {
|
|
61
|
+
io.stdout.write(`\nNothing eligible: ${result.preserved.length} observation(s) preserved (too fresh or already reflections).\n`);
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
for (let index = 0; index < result.reflections.length; index++) {
|
|
65
|
+
const reflection = result.reflections[index];
|
|
66
|
+
io.stdout.write(`\n--- Reflected batch ${index + 1}/${result.reflections.length} ---\n`);
|
|
67
|
+
io.stdout.write(`${reflection.content.trim()}\n`);
|
|
68
|
+
io.stdout.write("--- end ---\n");
|
|
69
|
+
}
|
|
70
|
+
if (result.written) {
|
|
71
|
+
io.stdout.write(`\nReplaced ${result.eligible.length} eligible observation(s) with ${result.reflections.length} reflection row(s); ` +
|
|
72
|
+
`${result.preserved.length} preserved verbatim.\n`);
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
io.stdout.write(`\nDry-run: ${result.before.length} observation(s) left untouched (would have folded ${result.eligible.length} into ${result.reflections.length}).\n`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
if (error instanceof MemoryLockTimeoutError) {
|
|
80
|
+
fail(`Memory database at ${error.dataDir} is still locked by duet pid ${error.holderPid} after ${error.budgetMs / 1000}s. Stop that process (or pass --wait <seconds> to wait longer) and retry.`);
|
|
81
|
+
}
|
|
82
|
+
throw error;
|
|
83
|
+
}
|
|
84
|
+
finally {
|
|
85
|
+
removeShutdownHandlers();
|
|
86
|
+
await session.dispose();
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function parseArgs(args) {
|
|
90
|
+
let dbPath = DEFAULT_MEMORY_DB_PATH;
|
|
91
|
+
let dryRun = false;
|
|
92
|
+
let targetTokens;
|
|
93
|
+
let model = process.env.DUET_MEMORY_MODEL ?? DEFAULT_CLI_MEMORY_MODEL;
|
|
94
|
+
let effectiveContext = DEFAULT_EFFECTIVE_CONTEXT;
|
|
95
|
+
let waitBudgetMs;
|
|
96
|
+
let minAgeDays = DEFAULT_GLOBAL_REFLECT_MIN_AGE_DAYS;
|
|
97
|
+
for (let i = 0; i < args.length; i++) {
|
|
98
|
+
const arg = args[i];
|
|
99
|
+
switch (arg) {
|
|
100
|
+
case "--db":
|
|
101
|
+
if (!args[i + 1] || args[i + 1]?.startsWith("-"))
|
|
102
|
+
fail(`Missing value for ${arg}`);
|
|
103
|
+
dbPath = resolveUserPath(args[++i]);
|
|
104
|
+
break;
|
|
105
|
+
case "--dry-run":
|
|
106
|
+
dryRun = true;
|
|
107
|
+
break;
|
|
108
|
+
case "--target-tokens": {
|
|
109
|
+
const raw = args[++i];
|
|
110
|
+
const n = Number(raw);
|
|
111
|
+
if (!Number.isFinite(n) || n <= 0)
|
|
112
|
+
fail(`Invalid --target-tokens value: ${raw} (expected positive number)`);
|
|
113
|
+
targetTokens = Math.floor(n);
|
|
114
|
+
break;
|
|
115
|
+
}
|
|
116
|
+
case "--model":
|
|
117
|
+
if (!args[i + 1] || args[i + 1]?.startsWith("-"))
|
|
118
|
+
fail(`Missing value for ${arg}`);
|
|
119
|
+
model = args[++i];
|
|
120
|
+
break;
|
|
121
|
+
case "--effective-context": {
|
|
122
|
+
const raw = args[++i];
|
|
123
|
+
const n = Number(raw);
|
|
124
|
+
if (!Number.isFinite(n) || n <= 0)
|
|
125
|
+
fail(`Invalid --effective-context value: ${raw} (expected positive number)`);
|
|
126
|
+
effectiveContext = Math.floor(n);
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case "--wait": {
|
|
130
|
+
const raw = args[++i];
|
|
131
|
+
const seconds = Number(raw);
|
|
132
|
+
if (!Number.isFinite(seconds) || seconds < 0) {
|
|
133
|
+
fail(`Invalid --wait value: ${raw} (expected non-negative number of seconds)`);
|
|
134
|
+
}
|
|
135
|
+
waitBudgetMs = Math.round(seconds * 1000);
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
case "--min-age-days": {
|
|
139
|
+
const raw = args[++i];
|
|
140
|
+
const n = Number(raw);
|
|
141
|
+
if (!Number.isFinite(n) || n < 0) {
|
|
142
|
+
fail(`Invalid --min-age-days value: ${raw} (expected non-negative number)`);
|
|
143
|
+
}
|
|
144
|
+
minAgeDays = n;
|
|
145
|
+
break;
|
|
146
|
+
}
|
|
147
|
+
case "--help":
|
|
148
|
+
case "-h":
|
|
149
|
+
printMemoryReflectHelp();
|
|
150
|
+
return undefined;
|
|
151
|
+
default:
|
|
152
|
+
fail(`Unknown reflect option: ${arg}`);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
dbPath,
|
|
157
|
+
dryRun,
|
|
158
|
+
...(targetTokens !== undefined ? { targetTokens } : {}),
|
|
159
|
+
model,
|
|
160
|
+
effectiveContext,
|
|
161
|
+
...(waitBudgetMs !== undefined ? { waitBudgetMs } : {}),
|
|
162
|
+
minAgeDays,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=memory-reflect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-reflect.js","sourceRoot":"","sources":["../../../src/cli/memory-reflect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/cli/memory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../src/cli/memory.ts"],"names":[],"mappings":"AASA;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DpE"}
|
package/dist/src/cli/memory.js
CHANGED
|
@@ -2,6 +2,7 @@ import { MemoryLockTimeoutError } from "../memory/pglite.js";
|
|
|
2
2
|
import { DEFAULT_MEMORY_DB_PATH } from "../session/session-manager.js";
|
|
3
3
|
import { printMemoryHelp } from "./help.js";
|
|
4
4
|
import { MemoryDb } from "./memory-db.js";
|
|
5
|
+
import { runMemoryReflectCommand } from "./memory-reflect.js";
|
|
5
6
|
import { runMemoryTui } from "./memory-tui.js";
|
|
6
7
|
import { fail, resolveUserPath } from "./shared.js";
|
|
7
8
|
import { installShutdownHandlers } from "./shutdown.js";
|
|
@@ -13,6 +14,13 @@ import { installShutdownHandlers } from "./shutdown.js";
|
|
|
13
14
|
* propagate to the next session immediately.
|
|
14
15
|
*/
|
|
15
16
|
export async function runMemoryCommand(args) {
|
|
17
|
+
// Route `duet memory reflect ...` to the cross-session reflect command.
|
|
18
|
+
// Kept as a subcommand under `memory` so the existing TUI entry stays
|
|
19
|
+
// the bare `duet memory` invocation.
|
|
20
|
+
if (args[0] === "reflect") {
|
|
21
|
+
await runMemoryReflectCommand(args.slice(1));
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
16
24
|
let dbPath = DEFAULT_MEMORY_DB_PATH;
|
|
17
25
|
// Wait budget for the cross-process open-lock, in seconds. Defaults to the shared
|
|
18
26
|
// `DEFAULT_OPEN_LOCK_WAIT_BUDGET_MS` (30s) inside `MemoryDb.open`; `--wait 0` opts out
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/cli/memory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../../src/cli/memory.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export type { LoginCommandIO } from "./cli/login.js";
|
|
|
21
21
|
export { runSkillsCommand } from "./cli/skills.js";
|
|
22
22
|
export { runUpgradeCommand } from "./cli/upgrade.js";
|
|
23
23
|
export { runMemoryCommand } from "./cli/memory.js";
|
|
24
|
+
export { runMemoryReflectCommand } from "./cli/memory-reflect.js";
|
|
24
25
|
export { runSendFeedbackCommand } from "./cli/send-feedback.js";
|
|
25
26
|
export type { SendFeedbackCommandIO } from "./cli/send-feedback.js";
|
|
26
27
|
export { cliEnvFilePaths, defaultDuetEnvFilePath, fileExists, formatEnvEntries, loadCliEnvFiles, parseResumeHistoryMessages, resolveUserPath, shellQuote, } from "./cli/shared.js";
|
package/dist/src/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAkBH,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACjG,YAAY,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAkBH,YAAY,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACjG,YAAY,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAC/F,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
package/dist/src/cli.js
CHANGED
|
@@ -29,6 +29,7 @@ export { runLoginCommand } from "./cli/login.js";
|
|
|
29
29
|
export { runSkillsCommand } from "./cli/skills.js";
|
|
30
30
|
export { runUpgradeCommand } from "./cli/upgrade.js";
|
|
31
31
|
export { runMemoryCommand } from "./cli/memory.js";
|
|
32
|
+
export { runMemoryReflectCommand } from "./cli/memory-reflect.js";
|
|
32
33
|
export { runSendFeedbackCommand } from "./cli/send-feedback.js";
|
|
33
34
|
export { cliEnvFilePaths, defaultDuetEnvFilePath, fileExists, formatEnvEntries, loadCliEnvFiles, parseResumeHistoryMessages, resolveUserPath, shellQuote, } from "./cli/shared.js";
|
|
34
35
|
export { detectPackageManagerFromContext, globalUpgradeCommand } from "./cli/package-manager.js";
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,WAAW,MAAM,iBAAiB,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oCAAoC,CAAC;AAO/E,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEhE,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,+BAA+B,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEjG,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,MAAM,gBAAgB,GAAG;IACvB,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,OAAO,EAAE,WAAW,CAAC,OAAO;CACpB,CAAC;AAEX,KAAK,UAAU,IAAI;IACjB,wEAAwE;IACxE,8EAA8E;IAC9E,oCAAoC;IACpC,yBAAyB,EAAE,CAAC;IAE5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAE3B,IAAI,CAAC;QACH,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC9D,OAAO;QACT,CAAC;QACD,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;YAC5B,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;YACzB,MAAM,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QACD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;YACzD,MAAM,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,IAAI,UAAU,KAAK,eAAe,EAAE,CAAC;YACnC,MAAM,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,0EAA0E;QAC1E,uEAAuE;QACvE,sEAAsE;QACtE,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,MAAM,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,KAAK,IAAI,EAAE,CAAC;AACd,CAAC"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export * from "./types/protocol.js";
|
|
|
13
13
|
export * from "./turn-runner/turn-runner.js";
|
|
14
14
|
export * from "./session/session.js";
|
|
15
15
|
export * from "./session/session-manager.js";
|
|
16
|
+
export * from "./turn-runner/state-compaction.js";
|
|
16
17
|
export * from "./guardrails/semantic.js";
|
|
17
18
|
export * from "./guardrails/pattern.js";
|
|
18
19
|
export * from "./guardrails/firewall.js";
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -13,6 +13,7 @@ export * from "./types/protocol.js";
|
|
|
13
13
|
export * from "./turn-runner/turn-runner.js";
|
|
14
14
|
export * from "./session/session.js";
|
|
15
15
|
export * from "./session/session-manager.js";
|
|
16
|
+
export * from "./turn-runner/state-compaction.js";
|
|
16
17
|
export * from "./guardrails/semantic.js";
|
|
17
18
|
export * from "./guardrails/pattern.js";
|
|
18
19
|
export * from "./guardrails/firewall.js";
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AAEpC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC"}
|
|
@@ -3,6 +3,7 @@ import type { Model, Usage } from "@earendil-works/pi-ai";
|
|
|
3
3
|
import { type WireGuardHorizon } from "../turn-runner/wire-shaping.js";
|
|
4
4
|
import type { MemoryContextCache } from "./store.js";
|
|
5
5
|
import type { MemorySession } from "./session.js";
|
|
6
|
+
import { type SessionObservationsSnapshot } from "./storage.js";
|
|
6
7
|
import type { Observation, ObservationalMemoryActivityEvent, ObservationalMemorySettings, ObservationalMemorySettingsInput } from "../types/memory.js";
|
|
7
8
|
import { type RawMemoryMessage } from "./observational-prompts.js";
|
|
8
9
|
/**
|
|
@@ -224,6 +225,192 @@ export declare function optimizeObservationsForContext(observations: string): st
|
|
|
224
225
|
* message list whether or not the transform has run.
|
|
225
226
|
*/
|
|
226
227
|
export declare function stripObservationalContextMessages(messages: AgentMessage[]): AgentMessage[];
|
|
228
|
+
/**
|
|
229
|
+
* Sentinel session id used by `reflectAllObservations` to stamp the
|
|
230
|
+
* reflection rows produced from the cross-session pool. Lets the
|
|
231
|
+
* loader/UI distinguish a global prune-reflection from a per-session one
|
|
232
|
+
* without needing a new column.
|
|
233
|
+
*/
|
|
234
|
+
export declare const GLOBAL_REFLECTION_SESSION_ID = "__global_reflection__";
|
|
235
|
+
/**
|
|
236
|
+
* Default minimum age, in days, that a raw observation must reach before
|
|
237
|
+
* the global reflect prune (`duet memory reflect`) is allowed to fold it
|
|
238
|
+
* into a reflection row and delete the original.
|
|
239
|
+
*
|
|
240
|
+
* --- Why a min-age gate exists (read before changing) -----------------
|
|
241
|
+
*
|
|
242
|
+
* The global prune *deletes* the eligible source rows after condensing
|
|
243
|
+
* them. If a long-lived session is later resumed and finds its own local
|
|
244
|
+
* observation rows wiped, the runner's `getUnobservedMessageTail` loses
|
|
245
|
+
* its observation-group range markers — so the next observer call treats
|
|
246
|
+
* the entire session tail as unobserved and re-observes only the newest
|
|
247
|
+
* `FIXED_OBSERVER_BUDGETS.maxTranscriptTokens` (~35k tokens) of raw
|
|
248
|
+
* messages. Everything older than that newest slice is silently dropped
|
|
249
|
+
* by `trimMessagesToTranscriptBudget`, which walks newest→oldest. For
|
|
250
|
+
* sessions that had accumulated rich local condensation, that older
|
|
251
|
+
* content is genuinely lost: the actor's wire eviction horizon already
|
|
252
|
+
* shaped those messages off-wire, so they cannot be re-observed from the
|
|
253
|
+
* raw tail. The global reflection row preserves cross-session themes,
|
|
254
|
+
* but not the session-specific specifics.
|
|
255
|
+
*
|
|
256
|
+
* 3 days is the line where the cost-of-loss flips. After ~3 days a human
|
|
257
|
+
* no longer remembers session specifics anyway, only the higher-level
|
|
258
|
+
* shape — which is what the reflection row captures. Up to 3 days, the
|
|
259
|
+
* specifics still matter for resume continuity, so we hold those rows
|
|
260
|
+
* untouched.
|
|
261
|
+
*
|
|
262
|
+
* --- Alternatives considered and rejected (May 2026) ------------------
|
|
263
|
+
*
|
|
264
|
+
* 1. *Append-only with high-water-mark watermark.* Never delete; just
|
|
265
|
+
* keep appending reflection rows tagged `global-prune`. Recall
|
|
266
|
+
* ranks them above raw rows via `reflectionBias`. Pro: zero risk of
|
|
267
|
+
* resume info loss. Con: the pool grows unbounded over time and we
|
|
268
|
+
* still pay retrieval cost over every stale raw row that the
|
|
269
|
+
* reflection already supersedes. Rejected because the user
|
|
270
|
+
* explicitly wanted the pool to stay small.
|
|
271
|
+
*
|
|
272
|
+
* 2. *Per-session reflect+replace, batched by `session_id`.* Preserves
|
|
273
|
+
* attribution. Rejected because the whole point of the global
|
|
274
|
+
* prune is *cross-session* dedup; grouping by session forfeits
|
|
275
|
+
* that. Used only by the in-session reflector
|
|
276
|
+
* (`reflectObservations`).
|
|
277
|
+
*
|
|
278
|
+
* 3. *Reflect on existing reflections too.* Pro: keeps total row count
|
|
279
|
+
* bounded across many reflect runs. Rejected because reflections
|
|
280
|
+
* of reflections collapse already-condensed text into vaguer text,
|
|
281
|
+
* losing specificity each pass. The current shape preserves rows
|
|
282
|
+
* where `kind === "reflection"` (skipped as input and skipped from
|
|
283
|
+
* the deletion set), so older reflections accumulate but never
|
|
284
|
+
* degrade. A separate `duet memory compact` can later GC stale
|
|
285
|
+
* reflections by `lastUsedAt`.
|
|
286
|
+
*
|
|
287
|
+
* 4. *Smaller min-age (e.g. 1 day) for faster pruning.* Rejected
|
|
288
|
+
* because typical bursty work patterns (a 2-day investigation, a
|
|
289
|
+
* multi-day refactor) would lose mid-thread specifics exactly when
|
|
290
|
+
* a resume is most likely to need them.
|
|
291
|
+
*/
|
|
292
|
+
export declare const DEFAULT_GLOBAL_REFLECT_MIN_AGE_DAYS = 3;
|
|
293
|
+
export declare const DEFAULT_GLOBAL_REFLECT_MIN_AGE_MS: number;
|
|
294
|
+
export interface ReflectAllOptions {
|
|
295
|
+
session: MemorySession;
|
|
296
|
+
/**
|
|
297
|
+
* The snapshot to reflect. Callers (the CLI) read the pool once so they
|
|
298
|
+
* can also print stats before the model call; passing the snapshot in
|
|
299
|
+
* avoids a redundant second `SELECT` inside this function.
|
|
300
|
+
*/
|
|
301
|
+
snapshot: SessionObservationsSnapshot;
|
|
302
|
+
settings: ObservationalMemorySettings;
|
|
303
|
+
model: string;
|
|
304
|
+
/**
|
|
305
|
+
* Override the target token budget for the reflected log produced by
|
|
306
|
+
* each batch's reflector call. Defaults to
|
|
307
|
+
* `settings.reflection.bufferActivation` so each batch behaves the
|
|
308
|
+
* same way an in-session reflection does: condense to roughly the
|
|
309
|
+
* half-trigger budget, leaving headroom before the next reflection.
|
|
310
|
+
*/
|
|
311
|
+
targetTokens?: number;
|
|
312
|
+
/**
|
|
313
|
+
* Maximum input tokens packed into a single reflector batch. Defaults
|
|
314
|
+
* to `settings.reflection.observationTokens` — the same trigger the
|
|
315
|
+
* in-session reflector uses, so each global-prune batch is the size
|
|
316
|
+
* of one natural reflection round. Multiple batches fire sequentially
|
|
317
|
+
* when the eligible pool is larger; cross-session dedup still works
|
|
318
|
+
* because batches are packed in chronological order, not grouped by
|
|
319
|
+
* `sessionId`.
|
|
320
|
+
*/
|
|
321
|
+
batchTokens?: number;
|
|
322
|
+
/**
|
|
323
|
+
* Minimum age, in milliseconds, before a non-reflection row is
|
|
324
|
+
* eligible for prune. Defaults to {@link DEFAULT_GLOBAL_REFLECT_MIN_AGE_MS}.
|
|
325
|
+
* See the {@link DEFAULT_GLOBAL_REFLECT_MIN_AGE_DAYS} doc for the
|
|
326
|
+
* tradeoffs behind this default.
|
|
327
|
+
*/
|
|
328
|
+
minAgeMs?: number;
|
|
329
|
+
/**
|
|
330
|
+
* Override of "now" for eligibility comparison. Defaults to
|
|
331
|
+
* `Date.now()`. Tests pin this so the cutoff is deterministic.
|
|
332
|
+
*/
|
|
333
|
+
now?: number;
|
|
334
|
+
/**
|
|
335
|
+
* When true, do not write the reflected rows back. The function still
|
|
336
|
+
* runs the reflector model(s) and returns the result so callers can
|
|
337
|
+
* preview the prune (`duet memory reflect --dry-run`).
|
|
338
|
+
*/
|
|
339
|
+
dryRun?: boolean;
|
|
340
|
+
onUsage?: (usage: Usage) => void;
|
|
341
|
+
}
|
|
342
|
+
export interface ReflectAllResult {
|
|
343
|
+
/** Observations as they existed before the reflect call. */
|
|
344
|
+
before: Observation[];
|
|
345
|
+
/**
|
|
346
|
+
* Rows preserved verbatim — either too fresh (younger than
|
|
347
|
+
* `minAgeMs`) or already reflection rows. These are written back
|
|
348
|
+
* untouched.
|
|
349
|
+
*/
|
|
350
|
+
preserved: Observation[];
|
|
351
|
+
/**
|
|
352
|
+
* Raw observation rows that were eligible for condensation and were
|
|
353
|
+
* folded into one of `reflections`. When `written` is true, these
|
|
354
|
+
* rows have been deleted from the durable store.
|
|
355
|
+
*/
|
|
356
|
+
eligible: Observation[];
|
|
357
|
+
/** One reflection row per batch processed. Empty if nothing was eligible. */
|
|
358
|
+
reflections: Observation[];
|
|
359
|
+
/** Whether the pool was rewritten (false on dryRun or when reflections is empty). */
|
|
360
|
+
written: boolean;
|
|
361
|
+
}
|
|
362
|
+
/** Pure-plan output of {@link planReflectionBatches}. */
|
|
363
|
+
export interface ReflectionBatch {
|
|
364
|
+
observations: Observation[];
|
|
365
|
+
estimatedTokens: number;
|
|
366
|
+
}
|
|
367
|
+
export interface PlanReflectionBatchesOptions {
|
|
368
|
+
/** Observations older than this (`createdAt <= cutoff`) are eligible. */
|
|
369
|
+
cutoff: number;
|
|
370
|
+
/** Maximum content tokens packed into a single batch. */
|
|
371
|
+
batchTokens: number;
|
|
372
|
+
}
|
|
373
|
+
/**
|
|
374
|
+
* Partition a snapshot into rows preserved verbatim vs eligible batches
|
|
375
|
+
* fed to the reflector. Pure function — no I/O, no model calls — so the
|
|
376
|
+
* batching/eligibility rules can be unit-tested without docker/LLM.
|
|
377
|
+
*
|
|
378
|
+
* Rules:
|
|
379
|
+
* - `kind === "reflection"` rows are always preserved (we never
|
|
380
|
+
* reflect on reflections; see option 3 in the
|
|
381
|
+
* {@link DEFAULT_GLOBAL_REFLECT_MIN_AGE_DAYS} comment).
|
|
382
|
+
* - Non-reflection rows with `createdAt > cutoff` are preserved (too
|
|
383
|
+
* fresh; resume-info-loss risk too high).
|
|
384
|
+
* - Everything else is eligible. Eligible rows are sorted by
|
|
385
|
+
* `createdAt` ascending and greedily packed into batches whose
|
|
386
|
+
* total `estimateTokens(content)` stays ≤ `batchTokens`. A single
|
|
387
|
+
* oversize row is allowed to occupy its own batch so we never drop
|
|
388
|
+
* rows just because they exceed the cap on their own.
|
|
389
|
+
*/
|
|
390
|
+
export declare function planReflectionBatches(observations: readonly Observation[], options: PlanReflectionBatchesOptions): {
|
|
391
|
+
preserved: Observation[];
|
|
392
|
+
batches: ReflectionBatch[];
|
|
393
|
+
};
|
|
394
|
+
/**
|
|
395
|
+
* Cross-session reflect: condense each eligible batch of raw
|
|
396
|
+
* observations through the reflector and replace the eligible rows
|
|
397
|
+
* with one reflection row per batch. Preserved rows (fresh
|
|
398
|
+
* observations and existing reflections) survive verbatim. Used by
|
|
399
|
+
* `duet memory reflect` to prune the global memory store.
|
|
400
|
+
*
|
|
401
|
+
* Unlike `reflectObservations`, this can touch rows across all
|
|
402
|
+
* sessions — the caller is asking for a global prune, not a
|
|
403
|
+
* per-session compaction. See {@link DEFAULT_GLOBAL_REFLECT_MIN_AGE_DAYS}
|
|
404
|
+
* for the resume-info-loss tradeoffs that motivated the min-age gate
|
|
405
|
+
* and the "never reflect on reflections" rule.
|
|
406
|
+
*
|
|
407
|
+
* Returns `undefined` only when there is nothing eligible *and* nothing
|
|
408
|
+
* preserved (empty store). When the store has only fresh/reflection
|
|
409
|
+
* rows, returns a result with empty `eligible`/`reflections` and
|
|
410
|
+
* `written: false` so callers can report "nothing to prune" without
|
|
411
|
+
* conflating it with an empty store.
|
|
412
|
+
*/
|
|
413
|
+
export declare function reflectAllObservations(options: ReflectAllOptions): Promise<ReflectAllResult | undefined>;
|
|
227
414
|
export declare function enforceObservationTokenBudget(options: {
|
|
228
415
|
text: string;
|
|
229
416
|
targetTokens: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observational.d.ts","sourceRoot":"","sources":["../../../src/memory/observational.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAgB,KAAK,EAAe,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAIrF,OAAO,EAQL,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"observational.d.ts","sourceRoot":"","sources":["../../../src/memory/observational.ts"],"names":[],"mappings":"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"}
|