@duetso/agent 0.1.31 → 0.1.33

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 (35) hide show
  1. package/README.md +69 -14
  2. package/dist/package.json +1 -1
  3. package/dist/src/cli.d.ts +5 -0
  4. package/dist/src/cli.d.ts.map +1 -1
  5. package/dist/src/cli.js +15 -177
  6. package/dist/src/cli.js.map +1 -1
  7. package/dist/src/lib/sync-skills.d.ts +0 -7
  8. package/dist/src/lib/sync-skills.d.ts.map +1 -1
  9. package/dist/src/lib/sync-skills.js +9 -34
  10. package/dist/src/lib/sync-skills.js.map +1 -1
  11. package/dist/src/memory/observational-prompts.d.ts.map +1 -1
  12. package/dist/src/memory/observational-prompts.js +6 -0
  13. package/dist/src/memory/observational-prompts.js.map +1 -1
  14. package/dist/src/memory/observational.d.ts +16 -4
  15. package/dist/src/memory/observational.d.ts.map +1 -1
  16. package/dist/src/memory/observational.js +123 -61
  17. package/dist/src/memory/observational.js.map +1 -1
  18. package/dist/src/memory/storage.d.ts +5 -1
  19. package/dist/src/memory/storage.d.ts.map +1 -1
  20. package/dist/src/memory/storage.js +8 -3
  21. package/dist/src/memory/storage.js.map +1 -1
  22. package/dist/src/model-resolution/duet-gateway.d.ts +11 -4
  23. package/dist/src/model-resolution/duet-gateway.d.ts.map +1 -1
  24. package/dist/src/model-resolution/duet-gateway.js +24 -5
  25. package/dist/src/model-resolution/duet-gateway.js.map +1 -1
  26. package/dist/src/tui/app.d.ts.map +1 -1
  27. package/dist/src/tui/app.js +15 -7
  28. package/dist/src/tui/app.js.map +1 -1
  29. package/dist/src/turn-runner/turn-runner.d.ts +17 -6
  30. package/dist/src/turn-runner/turn-runner.d.ts.map +1 -1
  31. package/dist/src/turn-runner/turn-runner.js +39 -14
  32. package/dist/src/turn-runner/turn-runner.js.map +1 -1
  33. package/dist/src/types/memory.d.ts +6 -4
  34. package/dist/src/types/memory.d.ts.map +1 -1
  35. package/package.json +1 -1
@@ -7,15 +7,12 @@ import { resolveDuetAppBaseUrl } from "./duet-app-url.js";
7
7
  * Mirror of the chat-app default-skill sync, kept byte-identical so the
8
8
  * server's hash and the CLI's local hash match. The chat-app endpoint
9
9
  * already renders placeholders against the caller's org; the CLI just
10
- * verifies the returned hash, dumps the files into ~/.duet/skills/, and
11
- * registers them with the local agent harness via `skills add`.
10
+ * verifies the returned hash and dumps the files into ~/.duet/skills/,
11
+ * which the turn runner reads directly.
12
12
  *
13
13
  * The hash is used as a conditional GET ETag: we send the on-disk hash via
14
14
  * `If-None-Match` and the server returns `304 Not Modified` when it still
15
15
  * matches, so a no-op `duet login` never transfers the payload at all.
16
- *
17
- * On any kind of registration failure we leave the on-disk hash untouched
18
- * so the next login retries the write.
19
16
  */
20
17
  const DEFAULT_SKILLS_DIR = join(homedir(), ".duet", "skills");
21
18
  const DEFAULT_SKILLS_HASH_FILE = join(homedir(), ".duet", ".skills-hash");
@@ -39,7 +36,7 @@ export async function fetchDefaultSkills(options) {
39
36
  const detail = (await safeReadText(response)).slice(0, 256);
40
37
  throw new Error(`Failed to fetch default skills: ${response.status} ${response.statusText}${detail ? ` — ${detail}` : ""}`);
41
38
  }
42
- const etag = response.headers.get("ETag")?.replace(/^"|"$/g, "");
39
+ const etag = parseSkillHashEtag(response.headers.get("ETag"));
43
40
  if (!etag) {
44
41
  throw new Error("Skills response missing ETag header");
45
42
  }
@@ -63,6 +60,12 @@ export function hashSkills(skills) {
63
60
  }
64
61
  return hash.digest("hex");
65
62
  }
63
+ function parseSkillHashEtag(etag) {
64
+ if (!etag)
65
+ return null;
66
+ const match = etag.trim().match(/^(?:W\/)?"([^"]+)"$/);
67
+ return match?.[1] ?? null;
68
+ }
66
69
  /**
67
70
  * Best-effort startup sync. Skips silently when there is no API key, when
68
71
  * `~/.duet/.skills-hash` is absent (the user logged in without syncing), or
@@ -98,7 +101,6 @@ async function fileExists(path) {
98
101
  export async function syncDefaultSkills(options) {
99
102
  const skillsDir = options.skillsDir ?? DEFAULT_SKILLS_DIR;
100
103
  const hashFilePath = options.hashFilePath ?? DEFAULT_SKILLS_HASH_FILE;
101
- const register = options.registerSkills ?? true;
102
104
  const knownHash = await readExistingHash(hashFilePath);
103
105
  const fetched = await fetchDefaultSkills({
104
106
  apiKey: options.apiKey,
@@ -119,13 +121,6 @@ export async function syncDefaultSkills(options) {
119
121
  await mkdir(dirname(target), { recursive: true });
120
122
  await writeFile(target, skill.content);
121
123
  }
122
- if (register) {
123
- const runShell = options.runShell ?? defaultRunShell;
124
- const result = await runShell(`skills add ${shellQuote(skillsDir)} -g -y`);
125
- if (result.exitCode !== 0) {
126
- throw new Error(`\`skills add\` failed (exit ${result.exitCode}): ${result.stderr.trim() || "no stderr"}`);
127
- }
128
- }
129
124
  await mkdir(dirname(hashFilePath), { recursive: true });
130
125
  await writeFile(hashFilePath, fetched.hash);
131
126
  return { status: "synced", hash: fetched.hash, count: fetched.skills.length };
@@ -151,24 +146,4 @@ async function safeReadText(response) {
151
146
  return "";
152
147
  }
153
148
  }
154
- function shellQuote(value) {
155
- if (/^[A-Za-z0-9_./:=+-]+$/.test(value))
156
- return value;
157
- return `'${value.replace(/'/g, "'\\''")}'`;
158
- }
159
- async function defaultRunShell(script) {
160
- const { spawn } = await import("node:child_process");
161
- return await new Promise((resolve, reject) => {
162
- const child = spawn("bash", ["-lc", script], { stdio: ["ignore", "inherit", "pipe"] });
163
- let stderr = "";
164
- child.stderr?.on("data", (chunk) => {
165
- stderr += chunk.toString();
166
- process.stderr.write(chunk);
167
- });
168
- child.once("error", reject);
169
- child.once("exit", (code) => {
170
- resolve({ exitCode: code ?? 1, stderr });
171
- });
172
- });
173
- }
174
149
  //# sourceMappingURL=sync-skills.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sync-skills.js","sourceRoot":"","sources":["../../../src/lib/sync-skills.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync-skills.js","sourceRoot":"","sources":["../../../src/lib/sync-skills.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"observational-prompts.d.ts","sourceRoot":"","sources":["../../../src/memory/observational-prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;AAEjE,4FAA4F;AAC5F,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,gBAAgB,CAAC;IAC1B,+FAA+F;IAC/F,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,6BAA6B,QAQzC,CAAC;AAEF,eAAO,MAAM,0BAA0B,gGACwD,CAAC;AAEhG,eAAO,MAAM,gCAAgC,QAU5C,CAAC;AAyCF,eAAO,MAAM,mBAAmB,QAmB/B,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,kBAAkB,UAAQ,GAAG,MAAM,CAqC5E;AAED,wBAAgB,yBAAyB,CACvC,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,UAAQ,GACzB,MAAM,CA6BR;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,oBAAoB,EAAE,MAAM,EAC5B,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,EAChC,GAAG,OAAa,GACf,gBAAgB,CA0ClB;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,CAYxF;AAMD,wBAAgB,0BAA0B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAcvE;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAC/B,MAAM,CAgBR"}
1
+ {"version":3,"file":"observational-prompts.d.ts","sourceRoot":"","sources":["../../../src/memory/observational-prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEvE,MAAM,MAAM,gBAAgB,GAAG,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC,CAAC;AAEjE,4FAA4F;AAC5F,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAC/C,OAAO,EAAE,gBAAgB,CAAC;IAC1B,+FAA+F;IAC/F,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,6BAA6B,QAQzC,CAAC;AAEF,eAAO,MAAM,0BAA0B,gGACwD,CAAC;AAEhG,eAAO,MAAM,gCAAgC,QAU5C,CAAC;AAyCF,eAAO,MAAM,mBAAmB,QAmB/B,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,kBAAkB,UAAQ,GAAG,MAAM,CA2C5E;AAED,wBAAgB,yBAAyB,CACvC,WAAW,CAAC,EAAE,MAAM,EACpB,kBAAkB,UAAQ,GACzB,MAAM,CA6BR;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,oBAAoB,EAAE,MAAM,EAC5B,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,EAChC,GAAG,OAAa,GACf,gBAAgB,CA0ClB;AAED,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,CAYxF;AAMD,wBAAgB,0BAA0B,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAcvE;AAED,wBAAgB,oBAAoB,CAClC,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,KAAK,CAAC,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAC/B,MAAM,CAgBR"}
@@ -99,10 +99,16 @@ export function buildObserverOutputFormat(includeThreadTitle = false) {
99
99
 
100
100
  Group observations by date, then list each with 24-hour time.
101
101
 
102
+ hasMemory:
103
+ - true when the message history contains durable information worth remembering
104
+ - false when the exchange is only transient chatter, a greeting, or otherwise has no useful future context
105
+ - Always call the structured output tool. Use hasMemory=false instead of skipping the tool call.
106
+
102
107
  observations:
103
108
  Date: Dec 4, 2025
104
109
  * 🔴 (14:30) User prefers direct answers
105
110
  * 🔴 (14:31) Working on feature X
111
+ - When hasMemory=false, observations must be an empty string.
106
112
 
107
113
  currentTask:
108
114
  State the current task(s) explicitly:
@@ -1 +1 @@
1
- {"version":3,"file":"observational-prompts.js","sourceRoot":"","sources":["../../../src/memory/observational-prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observational-prompts.js","sourceRoot":"","sources":["../../../src/memory/observational-prompts.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,14 @@
1
1
  import type { AgentMessage } from "@earendil-works/pi-agent-core";
2
2
  import type { Model, Usage } from "@earendil-works/pi-ai";
3
3
  import type { MemoryStore } from "./store.js";
4
- import type { ObservationalMemoryActivityEvent, ObservationalMemorySettings, ObservationalMemorySettingsInput } from "../types/memory.js";
4
+ import type { Observation, ObservationalMemoryActivityEvent, ObservationalMemorySettings, ObservationalMemorySettingsInput } from "../types/memory.js";
5
5
  import { type RawMemoryMessage } from "./observational-prompts.js";
6
6
  export declare const OBSERVATIONAL_MEMORY_DEFAULTS: {
7
7
  readonly observation: {
8
8
  readonly messageTokens: 100000;
9
9
  readonly maxTokensPerBatch: 35000;
10
10
  readonly bufferActivation: 30000;
11
+ readonly previousObserverTokens: 4000;
11
12
  };
12
13
  readonly reflection: {
13
14
  readonly observationTokens: 60000;
@@ -15,6 +16,8 @@ export declare const OBSERVATIONAL_MEMORY_DEFAULTS: {
15
16
  };
16
17
  };
17
18
  export interface ObserverResult {
19
+ /** Whether the observer found durable information worth writing to memory. */
20
+ hasMemory: boolean;
18
21
  /** New observation log text extracted from raw messages. */
19
22
  observations: string;
20
23
  /** Current task state distilled for continuity and optional thread metadata. */
@@ -39,16 +42,24 @@ export declare class ModelByInputTokens {
39
42
  resolve(inputTokens: number): Model<any>;
40
43
  getThresholds(): number[];
41
44
  }
42
- export interface ObservationalMemoryTransformOptions {
45
+ export interface ObservationalContextTransformOptions {
43
46
  memory: MemoryStore;
44
- actorModel: string;
45
47
  settings?: ObservationalMemorySettingsInput;
48
+ }
49
+ export interface ObservationalMemoryUpdateOptions extends ObservationalContextTransformOptions {
50
+ actorModel: string;
51
+ messages: AgentMessage[];
46
52
  onUsage?: (usage: Usage) => void;
47
53
  onActivity?: (event: ObservationalMemoryActivityEvent) => void;
48
54
  }
55
+ export interface ObservationalMemoryUpdateResult {
56
+ observations: Observation[];
57
+ reflections: Observation[];
58
+ }
49
59
  export declare function resolveObservationalMemorySettings(input?: ObservationalMemorySettingsInput): ObservationalMemorySettings;
50
60
  export declare function validateObservationalMemorySettings(settings: ObservationalMemorySettings): void;
51
- export declare function createObservationalMemoryTransform(options: ObservationalMemoryTransformOptions): (messages: AgentMessage[], signal?: AbortSignal) => Promise<AgentMessage[]>;
61
+ export declare function createObservationalContextTransform(options: ObservationalContextTransformOptions): (messages: AgentMessage[]) => Promise<AgentMessage[]>;
62
+ export declare function updateObservationalMemory(options: ObservationalMemoryUpdateOptions): Promise<ObservationalMemoryUpdateResult>;
52
63
  export declare function optimizeObservationsForContext(observations: string): string;
53
64
  export declare function enforceObservationTokenBudget(options: {
54
65
  text: string;
@@ -56,6 +67,7 @@ export declare function enforceObservationTokenBudget(options: {
56
67
  retry: (actualTokens: number) => Promise<string>;
57
68
  }): Promise<string>;
58
69
  export declare function trimObservationTextToTokenBudget(text: string, targetTokens: number): string;
70
+ export declare function getUnobservedMessageTail(messages: RawMemoryMessage[], observations: Observation[]): RawMemoryMessage[];
59
71
  export declare function includeToolPairMessages(messages: AgentMessage[], retainedIds: Set<RawMemoryMessage["id"]>): void;
60
72
  export declare function agentMessagesToRaw(messages: AgentMessage[]): RawMemoryMessage[];
61
73
  export declare function agentMessageToRaw(message: AgentMessage): RawMemoryMessage | undefined;
@@ -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,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAGV,gCAAgC,EAChC,2BAA2B,EAC3B,gCAAgC,EACjC,MAAM,oBAAoB,CAAC;AAQ5B,OAAO,EAQL,KAAK,gBAAgB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,6BAA6B;;;;;;;;;;CAmBhC,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,4DAA4D;IAC5D,YAAY,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAMD,MAAM,WAAW,eAAe;IAC9B,qEAAqE;IACrE,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AA0CD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;CAClC;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8C;gBAE7D,MAAM,EAAE,wBAAwB;IAkB5C,OAAO,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;IAYxC,aAAa,IAAI,MAAM,EAAE;CAG1B;AAED,MAAM,WAAW,mCAAmC;IAClD,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,gCAAgC,CAAC;IAC5C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,IAAI,CAAC;CAChE;AAED,wBAAgB,kCAAkC,CAChD,KAAK,CAAC,EAAE,gCAAgC,GACvC,2BAA2B,CAoC7B;AAED,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,2BAA2B,GAAG,IAAI,CAwB/F;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,mCAAmC,IAI/E,UAAU,YAAY,EAAE,EAAE,SAAS,WAAW,KAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CA+EvF;AAED,wBAAgB,8BAA8B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAS3E;AA6JD,wBAAsB,6BAA6B,CAAC,OAAO,EAAE;IAC3D,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAClD,GAAG,OAAO,CAAC,MAAM,CAAC,CAclB;AAED,wBAAgB,gCAAgC,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAY3F;AA6DD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,YAAY,EAAE,EACxB,WAAW,EAAE,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,GACvC,IAAI,CA4BN;AAqBD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,gBAAgB,EAAE,CAI/E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,GAAG,gBAAgB,GAAG,SAAS,CAgBrF;AAgKD,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAWrE"}
1
+ {"version":3,"file":"observational.d.ts","sourceRoot":"","sources":["../../../src/memory/observational.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,9 @@ export const OBSERVATIONAL_MEMORY_DEFAULTS = {
14
14
  // Retain enough exact history for active tool work after older messages are
15
15
  // represented by observations.
16
16
  bufferActivation: 30_000,
17
+ // Existing observations help avoid semantic duplicates, but the observer
18
+ // should never receive the whole durable memory database.
19
+ previousObserverTokens: 4_000,
17
20
  },
18
21
  reflection: {
19
22
  // Reflect before observations become a second large prompt layer.
@@ -27,8 +30,11 @@ function createMemoryId() {
27
30
  return `mem_${nanoid(12)}`;
28
31
  }
29
32
  const observerResultSchema = Type.Object({
33
+ hasMemory: Type.Boolean({
34
+ description: "Set true when the message history contains durable information worth remembering. Set false when there is nothing useful to store.",
35
+ }),
30
36
  observations: Type.String({
31
- description: "New observation log text extracted from the raw message history. Return an empty string if there are no useful new observations.",
37
+ description: "New observation log text extracted from the raw message history. When hasMemory is false, return an empty string.",
32
38
  }),
33
39
  currentTask: Type.Optional(Type.String({ description: "Current task state distilled for continuity." })),
34
40
  suggestedContinuation: Type.Optional(Type.String({ description: "Hint for the actor's next response after context compression." })),
@@ -94,7 +100,8 @@ export function resolveObservationalMemorySettings(input) {
94
100
  bufferActivation: partial.observation?.bufferActivation ??
95
101
  OBSERVATIONAL_MEMORY_DEFAULTS.observation.bufferActivation,
96
102
  blockAfter: partial.observation?.blockAfter,
97
- previousObserverTokens: partial.observation?.previousObserverTokens,
103
+ previousObserverTokens: partial.observation?.previousObserverTokens ??
104
+ OBSERVATIONAL_MEMORY_DEFAULTS.observation.previousObserverTokens,
98
105
  instruction: partial.observation?.instruction,
99
106
  threadTitle: partial.observation?.threadTitle,
100
107
  },
@@ -127,56 +134,19 @@ export function validateObservationalMemorySettings(settings) {
127
134
  throw new Error(`reflection.bufferActivation (${settings.reflection.bufferActivation}) must be lower than reflection.observationTokens (${settings.reflection.observationTokens})`);
128
135
  }
129
136
  }
130
- export function createObservationalMemoryTransform(options) {
137
+ export function createObservationalContextTransform(options) {
131
138
  const settings = resolveObservationalMemorySettings(options.settings);
132
139
  validateObservationalMemorySettings(settings);
133
- return async (messages, signal) => {
134
- const rawMessages = agentMessagesToRaw(messages);
140
+ return async (messages) => {
141
+ const observableMessages = stripObservationalContextMessages(messages);
142
+ const rawMessages = agentMessagesToRaw(observableMessages);
135
143
  const rawTokens = estimateRawTokens(rawMessages);
136
- let retainedMessages = messages;
144
+ let retainedMessages = observableMessages;
137
145
  if (rawTokens >= settings.observation.messageTokens) {
138
- const snapshot = await options.memory.getSnapshot();
139
- const unobservedMessages = getUnobservedMessageTail(rawMessages, snapshot.observations);
140
- if (estimateRawTokens(unobservedMessages) >= settings.observation.messageTokens) {
141
- emitMemoryActivity(options.onActivity, {
142
- phase: "observation",
143
- status: "running",
144
- message: "Compacting conversation into memory...",
145
- });
146
- try {
147
- await activateObservations(options.memory, unobservedMessages, snapshot.observations, settings, options.actorModel, options.onUsage, signal);
148
- }
149
- finally {
150
- emitMemoryActivity(options.onActivity, {
151
- phase: "observation",
152
- status: "completed",
153
- message: "Memory observation complete.",
154
- });
155
- }
156
- }
157
- retainedMessages = retainAgentMessageTail(messages, retainRawTail(rawMessages, settings.observation.bufferActivation));
146
+ retainedMessages = retainAgentMessageTail(observableMessages, retainRawTail(rawMessages, settings.observation.bufferActivation));
158
147
  }
159
148
  const snapshot = await options.memory.getSnapshot();
160
- const observationTokens = snapshot.estimatedTokens.observations;
161
- if (observationTokens >= settings.reflection.observationTokens) {
162
- emitMemoryActivity(options.onActivity, {
163
- phase: "reflection",
164
- status: "running",
165
- message: "Reflecting memory observations...",
166
- });
167
- try {
168
- await reflectObservations(options.memory, settings, options.actorModel, options.onUsage, signal);
169
- }
170
- finally {
171
- emitMemoryActivity(options.onActivity, {
172
- phase: "reflection",
173
- status: "completed",
174
- message: "Memory reflection complete.",
175
- });
176
- }
177
- }
178
- const refreshed = await options.memory.getSnapshot();
179
- const observations = refreshed.observations
149
+ const observations = snapshot.observations
180
150
  .map((observation) => observation.content)
181
151
  .join("\n\n");
182
152
  if (!observations.trim()) {
@@ -189,6 +159,51 @@ export function createObservationalMemoryTransform(options) {
189
159
  ];
190
160
  };
191
161
  }
162
+ export async function updateObservationalMemory(options) {
163
+ const settings = resolveObservationalMemorySettings(options.settings);
164
+ validateObservationalMemorySettings(settings);
165
+ const rawMessages = agentMessagesToRaw(stripObservationalContextMessages(options.messages));
166
+ const snapshot = await options.memory.getSnapshot();
167
+ const unobservedMessages = getUnobservedMessageTail(rawMessages, snapshot.observations);
168
+ const result = { observations: [], reflections: [] };
169
+ if (unobservedMessages.length > 0) {
170
+ emitMemoryActivity(options.onActivity, {
171
+ phase: "observation",
172
+ status: "running",
173
+ message: "Observing conversation into memory...",
174
+ });
175
+ const observation = await activateObservations(options.memory, unobservedMessages, snapshot.observations, settings, options.actorModel, options.onUsage);
176
+ if (observation) {
177
+ result.observations.push(observation);
178
+ }
179
+ emitMemoryActivity(options.onActivity, {
180
+ phase: "observation",
181
+ status: "completed",
182
+ message: observation ? "Memory observation recorded." : "Memory observation complete.",
183
+ ...(observation ? { observations: [observation] } : {}),
184
+ });
185
+ }
186
+ const refreshed = await options.memory.getSnapshot();
187
+ const observationTokens = refreshed.estimatedTokens.observations;
188
+ if (observationTokens >= settings.reflection.observationTokens) {
189
+ emitMemoryActivity(options.onActivity, {
190
+ phase: "reflection",
191
+ status: "running",
192
+ message: "Reflecting memory observations...",
193
+ });
194
+ const reflections = await reflectObservations(options.memory, settings, options.actorModel, options.onUsage);
195
+ if (reflections) {
196
+ result.reflections.push(...reflections);
197
+ }
198
+ emitMemoryActivity(options.onActivity, {
199
+ phase: "reflection",
200
+ status: "completed",
201
+ message: reflections ? "Memory reflection recorded." : "Memory reflection complete.",
202
+ ...(reflections ? { observations: reflections } : {}),
203
+ });
204
+ }
205
+ return result;
206
+ }
192
207
  export function optimizeObservationsForContext(observations) {
193
208
  let optimized = stripObservationGroups(observations);
194
209
  optimized = optimized.replace(/🟡\s*/g, "");
@@ -217,23 +232,39 @@ function buildContinuationMessage() {
217
232
  timestamp: Date.now(),
218
233
  };
219
234
  }
220
- async function activateObservations(store, messages, previousObservations, settings, model, onUsage, _signal) {
221
- const observations = (await observe(messages, previousObservations, settings, model, onUsage, _signal)).observations;
222
- if (!observations.trim()) {
223
- return;
235
+ function stripObservationalContextMessages(messages) {
236
+ return messages.filter((message) => !isObservationalContextMessage(message));
237
+ }
238
+ function isObservationalContextMessage(message) {
239
+ if (message.role !== "user")
240
+ return false;
241
+ const text = normalizeMessageContent(message).textPreview.trim();
242
+ // Context transforms inject durable memory as synthetic user reminders for the
243
+ // actor. Observers must ignore those reminders so a tiny new exchange does not
244
+ // re-observe the entire durable memory database or send it back to the memory
245
+ // model as raw message history.
246
+ return (text.startsWith(`<system-reminder>${OBSERVATION_CONTEXT_PROMPT}`) ||
247
+ text === `<system-reminder>${OBSERVATION_CONTINUATION_HINT}</system-reminder>`);
248
+ }
249
+ async function activateObservations(store, messages, previousObservations, settings, model, onUsage) {
250
+ const observations = await observe(messages, previousObservations, settings, model, onUsage);
251
+ if (!observations.hasMemory || !observations.observations.trim()) {
252
+ // Empty observer output intentionally does not create a checkpoint. The
253
+ // same low-signal messages may become useful context for a later suffix.
254
+ return undefined;
224
255
  }
225
256
  const range = `${messages[0]?.id ?? "unknown"}:${messages[messages.length - 1]?.id ?? "unknown"}`;
226
- await store.appendObservation({
257
+ return store.appendObservation({
227
258
  observedDate: new Date().toISOString().slice(0, 10),
228
259
  timeOfDay: new Date().toISOString().slice(11, 16),
229
- priority: inferPriority(observations),
260
+ priority: inferPriority(observations.observations),
230
261
  scope: settings.scope,
231
262
  source: { kind: "system" },
232
- content: wrapInObservationGroup(observations, range),
263
+ content: wrapInObservationGroup(observations.observations, range),
233
264
  tags: ["observational-memory"],
234
265
  });
235
266
  }
236
- async function reflectObservations(store, settings, model, onUsage, _signal) {
267
+ async function reflectObservations(store, settings, model, onUsage) {
237
268
  const snapshot = await store.getSnapshot();
238
269
  const source = snapshot.observations.map((observation) => observation.content).join("\n\n");
239
270
  const rendered = renderObservationGroupsForReflection(source) ?? source;
@@ -260,7 +291,7 @@ async function reflectObservations(store, settings, model, onUsage, _signal) {
260
291
  },
261
292
  });
262
293
  if (!text) {
263
- return;
294
+ return undefined;
264
295
  }
265
296
  const reconciled = reconcileObservationGroupsFromReflection(text, source) ?? text;
266
297
  const reflected = {
@@ -275,16 +306,26 @@ async function reflectObservations(store, settings, model, onUsage, _signal) {
275
306
  tags: ["observational-memory", "reflection"],
276
307
  };
277
308
  await store.replaceObservations([reflected]);
309
+ return [reflected];
278
310
  }
279
- async function observe(messages, previousObservations, settings, model, onUsage, _signal) {
311
+ async function observe(messages, previousObservations, settings, model, onUsage) {
280
312
  const targetTokens = settings.observation.maxTokensPerBatch;
313
+ const systemPrompt = buildObserverSystemPrompt(settings.observation.instruction, settings.observation.threadTitle);
314
+ const previousObservationText = renderPreviousObservationsForObserver(previousObservations, settings.observation.previousObserverTokens);
315
+ const prompt = buildObserverPrompt(messages, previousObservationText, targetTokens);
281
316
  const result = await generateStructuredOutput({
282
317
  model,
283
318
  tool: observerResultTool,
284
- systemPrompt: buildObserverSystemPrompt(settings.observation.instruction, settings.observation.threadTitle),
285
- prompt: buildObserverPrompt(messages, previousObservations.map((observation) => observation.content).join("\n\n"), targetTokens),
319
+ systemPrompt,
320
+ prompt,
286
321
  onUsage,
287
322
  });
323
+ if (!result.hasMemory) {
324
+ return {
325
+ ...result,
326
+ observations: "",
327
+ };
328
+ }
288
329
  const observations = await enforceObservationTokenBudget({
289
330
  text: result.observations,
290
331
  targetTokens,
@@ -292,8 +333,10 @@ async function observe(messages, previousObservations, settings, model, onUsage,
292
333
  const retryResult = await generateStructuredOutput({
293
334
  model,
294
335
  tool: observerResultTool,
295
- systemPrompt: buildObserverSystemPrompt(settings.observation.instruction, settings.observation.threadTitle),
296
- prompt: buildObserverPrompt(messages, previousObservations.map((observation) => observation.content).join("\n\n"), targetTokens, { actualTokens }),
336
+ systemPrompt,
337
+ prompt: buildObserverPrompt(messages, previousObservationText, targetTokens, {
338
+ actualTokens,
339
+ }),
297
340
  onUsage,
298
341
  });
299
342
  return retryResult.observations;
@@ -304,6 +347,22 @@ async function observe(messages, previousObservations, settings, model, onUsage,
304
347
  observations,
305
348
  };
306
349
  }
350
+ function renderPreviousObservationsForObserver(observations, tokenBudget) {
351
+ if (tokenBudget === false || tokenBudget === 0)
352
+ return "";
353
+ const budget = tokenBudget ?? OBSERVATIONAL_MEMORY_DEFAULTS.observation.previousObserverTokens;
354
+ const selected = [];
355
+ let tokens = 0;
356
+ for (let index = observations.length - 1; index >= 0; index--) {
357
+ const content = observations[index].content;
358
+ const nextTokens = estimateTokens(content);
359
+ if (tokens + nextTokens > budget)
360
+ break;
361
+ selected.unshift(content);
362
+ tokens += nextTokens;
363
+ }
364
+ return selected.join("\n\n");
365
+ }
307
366
  export async function enforceObservationTokenBudget(options) {
308
367
  const first = sanitizeObservationLines(options.text.trim());
309
368
  const firstTokens = estimateTokens(first);
@@ -342,7 +401,7 @@ function retainRawTail(messages, retainTokens) {
342
401
  }
343
402
  return retained;
344
403
  }
345
- function getUnobservedMessageTail(messages, observations) {
404
+ export function getUnobservedMessageTail(messages, observations) {
346
405
  const lastObservedIndex = getLastObservedMessageIndex(messages, observations);
347
406
  if (lastObservedIndex < 0) {
348
407
  return messages;
@@ -355,6 +414,9 @@ function getLastObservedMessageIndex(messages, observations) {
355
414
  for (const observation of observations) {
356
415
  const groups = parseObservationGroups(observation.content);
357
416
  for (const group of groups) {
417
+ // Observation-group ranges are the only progress marker. No-op observer
418
+ // passes do not advance this index, preserving their messages as future
419
+ // context until an actual observation records a range.
358
420
  const endId = group.range.split(":").at(-1)?.trim();
359
421
  const endIndex = endId ? messageIndexById.get(endId) : undefined;
360
422
  if (endIndex !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"observational.js","sourceRoot":"","sources":["../../../src/memory/observational.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"observational.js","sourceRoot":"","sources":["../../../src/memory/observational.ts"],"names":[],"mappings":"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"}