instar 1.2.73 → 1.2.75

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.
@@ -23,11 +23,23 @@
23
23
  */
24
24
  import type { SemanticMemory } from './SemanticMemory.js';
25
25
  import type { EpisodicMemory } from './EpisodicMemory.js';
26
+ import type { TopicIntentStore } from '../core/TopicIntent.js';
26
27
  export interface WorkingMemoryConfig {
27
28
  /** SemanticMemory instance (optional — degrades gracefully) */
28
29
  semanticMemory?: SemanticMemory;
29
30
  /** EpisodicMemory instance (optional — degrades gracefully) */
30
31
  episodicMemory?: EpisodicMemory;
32
+ /**
33
+ * TopicIntentStore (rung 2) — when provided, the topic's established refs join
34
+ * the unified working-set section. Optional; absent → that source is empty.
35
+ */
36
+ topicIntentStore?: TopicIntentStore;
37
+ /**
38
+ * State dir (rung 2) — when provided, Playbook manifest items matching the
39
+ * query join the unified working-set section (read-only manifest scan, no
40
+ * Python). Optional; absent → that source is empty.
41
+ */
42
+ stateDir?: string;
31
43
  /** Token budgets per source. Defaults provided. */
32
44
  tokenBudgets?: Partial<TokenBudgets>;
33
45
  }
@@ -38,6 +50,8 @@ export interface TokenBudgets {
38
50
  episodes: number;
39
51
  /** Max tokens for relationship/people context */
40
52
  relationships: number;
53
+ /** Max tokens for the unified working set (topic-intent + Playbook) — rung 2 */
54
+ workingSet: number;
41
55
  /** Total max tokens (hard cap on entire assembly) */
42
56
  total: number;
43
57
  }
@@ -74,6 +88,8 @@ export interface WorkingMemoryAssembly {
74
88
  export declare class WorkingMemoryAssembler {
75
89
  private semanticMemory?;
76
90
  private episodicMemory?;
91
+ private topicIntentStore?;
92
+ private stateDir?;
77
93
  private budgets;
78
94
  constructor(config: WorkingMemoryConfig);
79
95
  /**
@@ -87,6 +103,16 @@ export declare class WorkingMemoryAssembler {
87
103
  private assembleKnowledge;
88
104
  private assembleEpisodes;
89
105
  private assembleRelationships;
106
+ /**
107
+ * Assemble the unified working set: topic-intent refs (relevance = confidence,
108
+ * recency = lastReinforcedAt) + Playbook manifest items matching the query
109
+ * (relevance = trigger/tag match + usefulness, recency = freshness), ranked
110
+ * together by blended relevance×recency-decay and rendered under budget. Both
111
+ * sources are read-only + degrade-safe — a missing/erroring source contributes
112
+ * nothing and never breaks assembly.
113
+ */
114
+ private assembleWorkingSet;
115
+ private renderWorkingSet;
90
116
  /**
91
117
  * Render entities with the tiered strategy:
92
118
  * - Top 3: Full content (name + content + confidence + connections)
@@ -1 +1 @@
1
- {"version":3,"file":"WorkingMemoryAssembler.d.ts","sourceRoot":"","sources":["../../src/memory/WorkingMemoryAssembler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAoC,MAAM,qBAAqB,CAAC;AAM5F,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+DAA+D;IAC/D,cAAc,CAAC,EAAE,cAAc,CAAC;IAEhC,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,0BAA0B;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAaD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,OAAO,CAAe;gBAElB,MAAM,EAAE,mBAAmB;IAMvC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,qBAAqB;IA4DzD,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,gBAAgB;IA8CxB,OAAO,CAAC,qBAAqB;IAuB7B;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAuDtB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,mBAAmB;IAM3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,aAAa;IAWrB;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE;IA8BrD;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAgDtB,OAAO,CAAC,YAAY;IASpB,8DAA8D;IAC9D,UAAU,IAAI,YAAY;CAG3B"}
1
+ {"version":3,"file":"WorkingMemoryAssembler.d.ts","sourceRoot":"","sources":["../../src/memory/WorkingMemoryAssembler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAoC,MAAM,qBAAqB,CAAC;AAE5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+DAA+D;IAC/D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,mDAAmD;IACnD,YAAY,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,qBAAqB;IACpC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,0BAA0B;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,+CAA+C;IAC/C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAcD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAe;gBAElB,MAAM,EAAE,mBAAmB;IAQvC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,qBAAqB;IA8EzD,OAAO,CAAC,iBAAiB;IAqBzB,OAAO,CAAC,gBAAgB;IA8CxB,OAAO,CAAC,qBAAqB;IAuB7B;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,gBAAgB;IAoBxB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAuDtB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,mBAAmB;IAM3B;;;OAGG;IACH,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,aAAa;IAYrB;;;OAGG;IACH,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,EAAE;IA8BrD;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAgDtB,OAAO,CAAC,YAAY;IASpB,8DAA8D;IAC9D,UAAU,IAAI,YAAY;CAG3B"}
@@ -21,22 +21,28 @@
21
21
  *
22
22
  * Implements Phase 4 of PROP-memory-architecture v3.1.
23
23
  */
24
+ import { rankWorkingSet, topicIntentToWorkingSet, playbookManifestToWorkingSet } from './WorkingSet.js';
24
25
  import { estimateTokens } from './Chunker.js';
25
26
  // ─── Constants ──────────────────────────────────────────────────────
26
27
  const DEFAULT_BUDGETS = {
27
28
  knowledge: 800,
28
29
  episodes: 400,
29
30
  relationships: 300,
31
+ workingSet: 500,
30
32
  total: 2000,
31
33
  };
32
34
  // ─── Assembler ──────────────────────────────────────────────────────
33
35
  export class WorkingMemoryAssembler {
34
36
  semanticMemory;
35
37
  episodicMemory;
38
+ topicIntentStore;
39
+ stateDir;
36
40
  budgets;
37
41
  constructor(config) {
38
42
  this.semanticMemory = config.semanticMemory;
39
43
  this.episodicMemory = config.episodicMemory;
44
+ this.topicIntentStore = config.topicIntentStore;
45
+ this.stateDir = config.stateDir;
40
46
  this.budgets = { ...DEFAULT_BUDGETS, ...config.tokenBudgets };
41
47
  }
42
48
  /**
@@ -81,6 +87,20 @@ export class WorkingMemoryAssembler {
81
87
  }
82
88
  }
83
89
  }
90
+ // 4. Unified working set (rung 2): topic-intent refs + Playbook items, ranked
91
+ // together by blended relevance×recency. Appended AFTER the existing
92
+ // sources and gated on the new deps, so when neither is configured the
93
+ // assembled output is byte-for-byte unchanged (regression pin).
94
+ if (this.topicIntentStore || this.stateDir) {
95
+ const remainingBudget = Math.min(this.budgets.workingSet, this.budgets.total - totalTokens);
96
+ if (remainingBudget > 50) {
97
+ const workingSetSection = this.assembleWorkingSet(trigger.topicId, queryTerms, remainingBudget);
98
+ if (workingSetSection.content) {
99
+ sections.push(workingSetSection);
100
+ totalTokens += workingSetSection.tokens;
101
+ }
102
+ }
103
+ }
84
104
  // Build final context string
85
105
  const context = this.formatAssembly(sections);
86
106
  return {
@@ -156,6 +176,41 @@ export class WorkingMemoryAssembler {
156
176
  }
157
177
  return this.renderEntities(people, budget, 'relationships');
158
178
  }
179
+ // ─── Working Set Assembly (rung 2 — unified read path) ────────────
180
+ /**
181
+ * Assemble the unified working set: topic-intent refs (relevance = confidence,
182
+ * recency = lastReinforcedAt) + Playbook manifest items matching the query
183
+ * (relevance = trigger/tag match + usefulness, recency = freshness), ranked
184
+ * together by blended relevance×recency-decay and rendered under budget. Both
185
+ * sources are read-only + degrade-safe — a missing/erroring source contributes
186
+ * nothing and never breaks assembly.
187
+ */
188
+ assembleWorkingSet(topicId, queryTerms, budget) {
189
+ const items = [
190
+ ...topicIntentToWorkingSet(this.topicIntentStore, topicId),
191
+ ...playbookManifestToWorkingSet(this.stateDir, queryTerms),
192
+ ];
193
+ if (items.length === 0) {
194
+ return { name: 'working-set', content: '', tokens: 0, count: 0 };
195
+ }
196
+ const ranked = rankWorkingSet(items);
197
+ return this.renderWorkingSet(ranked, budget);
198
+ }
199
+ renderWorkingSet(items, budget) {
200
+ const lines = [];
201
+ let tokens = 0;
202
+ let count = 0;
203
+ for (const item of items) {
204
+ const entry = `- **[${item.source}/${item.kind}]** ${item.text}`;
205
+ const entryTokens = estimateTokens(entry);
206
+ if (tokens + entryTokens > budget)
207
+ break;
208
+ lines.push(entry);
209
+ tokens += entryTokens;
210
+ count++;
211
+ }
212
+ return { name: 'working-set', content: lines.join('\n'), tokens, count };
213
+ }
159
214
  // ─── Rendering ────────────────────────────────────────────────────
160
215
  /**
161
216
  * Render entities with the tiered strategy:
@@ -293,6 +348,7 @@ export class WorkingMemoryAssembler {
293
348
  case 'knowledge': return 'Relevant Knowledge';
294
349
  case 'episodes': return 'Recent Activity';
295
350
  case 'relationships': return 'People Context';
351
+ case 'working-set': return 'Working Set (tracked context)';
296
352
  default: return name;
297
353
  }
298
354
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WorkingMemoryAssembler.js","sourceRoot":"","sources":["../../src/memory/WorkingMemoryAssembler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WorkingMemoryAssembler.js","sourceRoot":"","sources":["../../src/memory/WorkingMemoryAssembler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * WorkingSet — the lingua franca that lets the WorkingMemoryAssembler rank items
3
+ * from different stores (topic-intent, Playbook, …) in one list (rung 2 of
4
+ * continuous-working-awareness).
5
+ *
6
+ * Each store adapts its native model into a `WorkingSetItem`; `rankWorkingSet`
7
+ * blends relevance with a recency-decay factor so a single ranked reading list
8
+ * draws from all sources consistently. Decay is demotion, not deletion — a faded
9
+ * item sinks in the ranking but stays in its backing store and re-warms on
10
+ * reference. Pure functions + read-only adapters; degrade-safe (a missing/empty
11
+ * source contributes nothing). Spec: docs/specs/cwa-unify-stores.md.
12
+ */
13
+ import type { TopicIntentStore } from '../core/TopicIntent.js';
14
+ export interface WorkingSetItem {
15
+ /** Which store the item came from. */
16
+ source: 'topic-intent' | 'playbook';
17
+ /** Stable id within the source. */
18
+ id: string;
19
+ /** Short human-readable descriptor (the line shown in assembled context). */
20
+ text: string;
21
+ /** Native relevance, normalized to 0–1 (confidence, usefulness, match score). */
22
+ relevance: number;
23
+ /** ISO8601 of the item's last reinforcement / freshness (drives recency decay). */
24
+ recencyAt: string;
25
+ /** Item kind/category (for labelling). */
26
+ kind: string;
27
+ }
28
+ /** Recency half-life (days) for the blended score's decay factor. Tunable. */
29
+ export declare const RECENCY_HALF_LIFE_DAYS = 30;
30
+ /**
31
+ * Blended score = relevance × recency-decay-factor. The recency factor is
32
+ * exp(-ln2 · ageDays / halfLife): 1.0 today, 0.5 at one half-life, etc. Items
33
+ * with no parseable recency are treated as "now" (factor 1) so a source that
34
+ * doesn't track recency isn't unfairly sunk.
35
+ */
36
+ export declare function blendedScore(item: WorkingSetItem, nowMs?: number): number;
37
+ /** Rank a mixed working set by blended score (descending). Stable, pure. */
38
+ export declare function rankWorkingSet(items: WorkingSetItem[], nowMs?: number): WorkingSetItem[];
39
+ /**
40
+ * Map a topic's established refs (at/above tentative) to WorkingSetItems.
41
+ * Relevance = the confidence projection; recency = lastReinforcedAt. Read-only,
42
+ * degrade-safe (no store / no topic / error → []).
43
+ */
44
+ export declare function topicIntentToWorkingSet(store: TopicIntentStore | null | undefined, topicId: number | undefined, nowMs?: number): WorkingSetItem[];
45
+ /**
46
+ * Read Playbook manifest JSONs under {stateDir}/playbook and map matching items
47
+ * to WorkingSetItems. Relevance blends trigger/tag overlap with the query and the
48
+ * item's usefulness signal; recency = freshness. Read-only (never invokes the
49
+ * Python scripts) and degrade-safe (no dir / parse error → []). When no query
50
+ * terms are given, returns [] (Playbook items are trigger-gated, not always-on).
51
+ */
52
+ export declare function playbookManifestToWorkingSet(stateDir: string | undefined, queryTerms: string[], nowMs?: number): WorkingSetItem[];
53
+ //# sourceMappingURL=WorkingSet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkingSet.d.ts","sourceRoot":"","sources":["../../src/memory/WorkingSet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,MAAM,EAAE,cAAc,GAAG,UAAU,CAAC;IACpC,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,SAAS,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;CACd;AAED,8EAA8E;AAC9E,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAGzC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,GAAE,MAAmB,GAAG,MAAM,CAOrF;AAED,4EAA4E;AAC5E,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,KAAK,GAAE,MAAmB,GAAG,cAAc,EAAE,CAKpG;AAID;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,EAC1C,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,CAAC,EAAE,MAAM,GACb,cAAc,EAAE,CAelB;AAeD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,UAAU,EAAE,MAAM,EAAE,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,cAAc,EAAE,CAgDlB"}
@@ -0,0 +1,140 @@
1
+ /**
2
+ * WorkingSet — the lingua franca that lets the WorkingMemoryAssembler rank items
3
+ * from different stores (topic-intent, Playbook, …) in one list (rung 2 of
4
+ * continuous-working-awareness).
5
+ *
6
+ * Each store adapts its native model into a `WorkingSetItem`; `rankWorkingSet`
7
+ * blends relevance with a recency-decay factor so a single ranked reading list
8
+ * draws from all sources consistently. Decay is demotion, not deletion — a faded
9
+ * item sinks in the ranking but stays in its backing store and re-warms on
10
+ * reference. Pure functions + read-only adapters; degrade-safe (a missing/empty
11
+ * source contributes nothing). Spec: docs/specs/cwa-unify-stores.md.
12
+ */
13
+ import fs from 'node:fs';
14
+ import path from 'node:path';
15
+ /** Recency half-life (days) for the blended score's decay factor. Tunable. */
16
+ export const RECENCY_HALF_LIFE_DAYS = 30;
17
+ const MS_PER_DAY = 24 * 60 * 60 * 1000;
18
+ /**
19
+ * Blended score = relevance × recency-decay-factor. The recency factor is
20
+ * exp(-ln2 · ageDays / halfLife): 1.0 today, 0.5 at one half-life, etc. Items
21
+ * with no parseable recency are treated as "now" (factor 1) so a source that
22
+ * doesn't track recency isn't unfairly sunk.
23
+ */
24
+ export function blendedScore(item, nowMs = Date.now()) {
25
+ const rel = Number.isFinite(item.relevance) ? Math.max(0, Math.min(1, item.relevance)) : 0;
26
+ let ageDays = 0;
27
+ const t = Date.parse(item.recencyAt);
28
+ if (Number.isFinite(t))
29
+ ageDays = Math.max(0, (nowMs - t) / MS_PER_DAY);
30
+ const recencyFactor = Math.exp((-Math.LN2 * ageDays) / RECENCY_HALF_LIFE_DAYS);
31
+ return rel * recencyFactor;
32
+ }
33
+ /** Rank a mixed working set by blended score (descending). Stable, pure. */
34
+ export function rankWorkingSet(items, nowMs = Date.now()) {
35
+ return [...items]
36
+ .map((it, i) => ({ it, i, s: blendedScore(it, nowMs) }))
37
+ .sort((a, b) => (b.s - a.s) || (a.i - b.i))
38
+ .map(x => x.it);
39
+ }
40
+ // ── Source adapter: topic-intent ───────────────────────────────────────────
41
+ /**
42
+ * Map a topic's established refs (at/above tentative) to WorkingSetItems.
43
+ * Relevance = the confidence projection; recency = lastReinforcedAt. Read-only,
44
+ * degrade-safe (no store / no topic / error → []).
45
+ */
46
+ export function topicIntentToWorkingSet(store, topicId, nowMs) {
47
+ if (!store || typeof topicId !== 'number')
48
+ return [];
49
+ try {
50
+ const refs = store.getRefsAtOrAbove(topicId, 'tentative', nowMs);
51
+ return refs.map(r => ({
52
+ source: 'topic-intent',
53
+ id: r.refId,
54
+ text: r.text,
55
+ relevance: r.projection.confidence,
56
+ recencyAt: r.lastReinforcedAt,
57
+ kind: r.kind,
58
+ }));
59
+ }
60
+ catch {
61
+ return [];
62
+ }
63
+ }
64
+ /**
65
+ * Read Playbook manifest JSONs under {stateDir}/playbook and map matching items
66
+ * to WorkingSetItems. Relevance blends trigger/tag overlap with the query and the
67
+ * item's usefulness signal; recency = freshness. Read-only (never invokes the
68
+ * Python scripts) and degrade-safe (no dir / parse error → []). When no query
69
+ * terms are given, returns [] (Playbook items are trigger-gated, not always-on).
70
+ */
71
+ export function playbookManifestToWorkingSet(stateDir, queryTerms, nowMs) {
72
+ void nowMs;
73
+ if (!stateDir || queryTerms.length === 0)
74
+ return [];
75
+ const dir = path.join(stateDir, 'playbook');
76
+ let files;
77
+ try {
78
+ files = collectJsonFiles(dir);
79
+ }
80
+ catch {
81
+ return [];
82
+ }
83
+ const terms = queryTerms.map(t => t.toLowerCase()).filter(Boolean);
84
+ const out = [];
85
+ for (const file of files) {
86
+ let parsed;
87
+ try {
88
+ parsed = JSON.parse(fs.readFileSync(file, 'utf-8'));
89
+ }
90
+ catch {
91
+ continue; // skip a corrupt manifest, keep going
92
+ }
93
+ if (!parsed || !Array.isArray(parsed.items))
94
+ continue;
95
+ for (const it of parsed.items) {
96
+ if (!it || !it.id)
97
+ continue;
98
+ const haystack = [
99
+ ...(it.load_triggers ?? []),
100
+ ...(it.tags?.domains ?? []),
101
+ ...(it.tags?.qualifiers ?? []),
102
+ it.category ?? '',
103
+ it.id,
104
+ ].join(' ').toLowerCase();
105
+ const matches = terms.filter(t => haystack.includes(t)).length;
106
+ if (matches === 0)
107
+ continue; // trigger-gated: only surface items the query touches
108
+ const matchScore = Math.min(1, matches / Math.max(1, terms.length));
109
+ const help = it.usefulness?.helpful ?? 0;
110
+ const mis = it.usefulness?.misleading ?? 0;
111
+ const usefulnessBoost = help + mis > 0 ? Math.max(0, (help - mis) / (help + mis)) : 0;
112
+ // Relevance = mostly match, with a small usefulness lift (capped at 1).
113
+ const relevance = Math.min(1, matchScore * 0.8 + usefulnessBoost * 0.2);
114
+ out.push({
115
+ source: 'playbook',
116
+ id: it.id,
117
+ text: `${it.id}${it.path ? ` (${it.path})` : ''}`,
118
+ relevance,
119
+ recencyAt: it.freshness ?? new Date(0).toISOString(),
120
+ kind: it.category ?? 'playbook',
121
+ });
122
+ }
123
+ }
124
+ return out;
125
+ }
126
+ /** Recursively collect *.json files under a dir (shallow-ish; returns [] if missing). */
127
+ function collectJsonFiles(dir, depth = 3) {
128
+ if (depth < 0 || !fs.existsSync(dir))
129
+ return [];
130
+ const out = [];
131
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
132
+ const full = path.join(dir, entry.name);
133
+ if (entry.isDirectory())
134
+ out.push(...collectJsonFiles(full, depth - 1));
135
+ else if (entry.isFile() && entry.name.endsWith('.json'))
136
+ out.push(full);
137
+ }
138
+ return out;
139
+ }
140
+ //# sourceMappingURL=WorkingSet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkingSet.js","sourceRoot":"","sources":["../../src/memory/WorkingSet.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAkB7B,8EAA8E;AAC9E,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AACzC,MAAM,UAAU,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,IAAoB,EAAE,QAAgB,IAAI,CAAC,GAAG,EAAE;IAC3E,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,sBAAsB,CAAC,CAAC;IAC/E,OAAO,GAAG,GAAG,aAAa,CAAC;AAC7B,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,cAAc,CAAC,KAAuB,EAAE,QAAgB,IAAI,CAAC,GAAG,EAAE;IAChF,OAAO,CAAC,GAAG,KAAK,CAAC;SACd,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;SACvD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACpB,CAAC;AAED,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAA0C,EAC1C,OAA2B,EAC3B,KAAc;IAEd,IAAI,CAAC,KAAK,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,EAAE,CAAC;IACrD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpB,MAAM,EAAE,cAAuB;YAC/B,EAAE,EAAE,CAAC,CAAC,KAAK;YACX,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU;YAClC,SAAS,EAAE,CAAC,CAAC,gBAAgB;YAC7B,IAAI,EAAE,CAAC,CAAC,IAAI;SACb,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAeD;;;;;;GAMG;AACH,MAAM,UAAU,4BAA4B,CAC1C,QAA4B,EAC5B,UAAoB,EACpB,KAAc;IAEd,KAAK,KAAK,CAAC;IACX,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACpD,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC5C,IAAI,KAAe,CAAC;IACpB,IAAI,CAAC;QACH,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,MAAqC,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;QACtD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS,CAAC,sCAAsC;QAClD,CAAC;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;YAAE,SAAS;QACtD,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,SAAS;YAC5B,MAAM,QAAQ,GAAG;gBACf,GAAG,CAAC,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC;gBAC3B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,IAAI,EAAE,CAAC;gBAC3B,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;gBAC9B,EAAE,CAAC,QAAQ,IAAI,EAAE;gBACjB,EAAE,CAAC,EAAE;aACN,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/D,IAAI,OAAO,KAAK,CAAC;gBAAE,SAAS,CAAC,sDAAsD;YACnF,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YACpE,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,EAAE,OAAO,IAAI,CAAC,CAAC;YACzC,MAAM,GAAG,GAAG,EAAE,CAAC,UAAU,EAAE,UAAU,IAAI,CAAC,CAAC;YAC3C,MAAM,eAAe,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACtF,wEAAwE;YACxE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,GAAG,GAAG,eAAe,GAAG,GAAG,CAAC,CAAC;YACxE,GAAG,CAAC,IAAI,CAAC;gBACP,MAAM,EAAE,UAAU;gBAClB,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACjD,SAAS;gBACT,SAAS,EAAE,EAAE,CAAC,SAAS,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;gBACpD,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,UAAU;aAChC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,yFAAyF;AACzF,SAAS,gBAAgB,CAAC,GAAW,EAAE,KAAK,GAAG,CAAC;IAC9C,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAChD,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxC,IAAI,KAAK,CAAC,WAAW,EAAE;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;aACnE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1E,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1,24 +1,29 @@
1
1
  /**
2
2
  * ConversationStore — the single source of truth for a Threadline conversation.
3
3
  *
4
- * Phase 1 of the Threadline re-assessment (THREADLINE-CONVERSATION-KEYSTONE-SPEC.md).
5
- * Collapses the state previously smeared across `ThreadResumeMap`,
6
- * `ContextThreadMap`, the in-memory peer-affinity map and `inbox.jsonl` into one
7
- * durable record keyed by `threadId`. It is the ONLY place conversation turn
8
- * state lives — the one-shot reply worker provably cannot self-police a loop, so
9
- * the turn count + novelty hashes must live here, on the conversation.
4
+ * Phase 1 of the Threadline re-assessment (THREADLINE-CONVERSATION-KEYSTONE-SPEC.md)
5
+ * introduced this as a server-process in-memory store. Phase 2a
6
+ * (THREADLINE-SINGLE-STORE-SPEC.md / CMT-497) makes it **cross-process safe** so it
7
+ * can be the ONE authoritative store and the legacy `ThreadResumeMap` can become a
8
+ * view over it.
10
9
  *
11
- * Concurrency: every write goes through `mutate(threadId, fn)`, a single-writer
12
- * surface modeled on `CommitmentTracker.mutate()` — a per-threadId FIFO queue
13
- * plus optimistic CAS on the record's `version`. This is the fix for the
14
- * convergence-flagged race where two near-simultaneous inbound messages (or a
15
- * live-inject racing a resume) would clobber `turnCount`/`lastOutboundHash` under
16
- * the legacy last-writer-wins `load→mutate→persist`.
10
+ * Concurrency (Phase 2a): `conversations.json` on disk is the source of truth.
11
+ * Every write async `mutate()` and sync `mutateSync()` does reload-per-op +
12
+ * optimistic per-record version CAS + atomic tmp-write+rename, the same
13
+ * cross-process-safe pattern the legacy maps used (reload-per-op) hardened with a
14
+ * `version` token so a same-thread race loses no update (a strict improvement over
15
+ * the legacy last-writer-wins). A write reads the LATEST full file immediately
16
+ * before committing and rewrites it with only its own record changed, so a
17
+ * concurrent write to a DIFFERENT thread from another process is preserved — the
18
+ * only residual is the microsecond window between that final re-read and the
19
+ * atomic rename, which matches the (accepted, never-observed-as-a-problem) legacy
20
+ * full-file-rewrite behavior. Reads use a very-short-TTL snapshot cache so the
21
+ * loop gate's hot path doesn't re-read on every call; staleness only ever causes a
22
+ * redundant reload on the next mutate (which always re-reads), never a lost write.
17
23
  *
18
- * Storage: {stateDir}/threadline/conversations.json (server-write-only, atomic
19
- * tmp+rename). NOT relay-hosted — authoritative state stays local. The
20
- * append-only SharedStateLedger remains the audit trail; this is the live
21
- * mutable state it logs transitions from.
24
+ * Storage: {stateDir}/threadline/conversations.json. NOT relay-hosted
25
+ * authoritative state stays local. The append-only SharedStateLedger remains the
26
+ * audit trail; this is the live mutable state it logs transitions from.
22
27
  */
23
28
  /**
24
29
  * Conversation lifecycle state. Superset of the legacy `ThreadState`
@@ -90,13 +95,18 @@ export interface Conversation {
90
95
  export type ConversationMutateFn = (draft: Conversation) => Conversation | Promise<Conversation>;
91
96
  export declare class ConversationStore {
92
97
  private filePath;
93
- private store;
94
- /** Per-threadId FIFO mutate queues — serialize concurrent writers. */
98
+ /** Per-threadId FIFO mutate queues — serialize same-process concurrent writers. */
95
99
  private mutateQueues;
96
100
  private mutateRunning;
97
101
  /** Ephemeral verified-only peer-affinity hints (peerFingerprint → hint). */
98
102
  private affinity;
103
+ /** Short-TTL read snapshot cache (disk is the source of truth). */
104
+ private cache;
105
+ private cacheAt;
99
106
  constructor(stateDir: string);
107
+ /** A cached snapshot of the on-disk file (reloaded after READ_CACHE_TTL_MS). */
108
+ private snapshot;
109
+ private invalidateCache;
100
110
  /** Get a conversation by threadId. Returns null if missing or TTL-expired. */
101
111
  get(threadId: string): Conversation | null;
102
112
  /** True if a (non-expired) conversation exists for the threadId. */
@@ -109,6 +119,8 @@ export declare class ConversationStore {
109
119
  getByContextId(contextId: string, agentIdentity: string): Conversation | null;
110
120
  /** List active/idle conversations (not resolved/failed/archived). */
111
121
  listActive(): Conversation[];
122
+ /** All non-expired (or pinned) conversations, any lifecycle state. */
123
+ all(): Conversation[];
112
124
  /** Total stored conversations (for monitoring). */
113
125
  size(): number;
114
126
  /**
@@ -128,11 +140,25 @@ export declare class ConversationStore {
128
140
  private drainMutateQueue;
129
141
  private applyMutationWithCAS;
130
142
  /**
131
- * Direct upsert of a full record WITHOUT going through the CAS queue. ONLY
132
- * for migration / bulk import where there are no concurrent writers. Runtime
133
- * writers MUST use mutate().
143
+ * Synchronous single-record mutate (Phase 2a). Used by the synchronous legacy
144
+ * interfaces (the `ThreadResumeMap` view's `save`/`remove`/etc.). Same file
145
+ * version-CAS as `mutate`, but the fn is synchronous so the re-read→write
146
+ * window has no await and is atomic within this process. Cross-process safety
147
+ * is identical to `mutate` (per-record version CAS + atomic rename).
148
+ *
149
+ * The fn MAY return null to signal "delete this record".
150
+ */
151
+ mutateSync(threadId: string, fn: (draft: Conversation) => Conversation | null): Conversation | null;
152
+ /** Commit a record into the freshly-read file with version+1 (LOAD-BEARING:
153
+ * both async and sync commit paths bump version so the CAS detects races). */
154
+ private commit;
155
+ /**
156
+ * Direct upsert of a full record. Used by migration / bulk import. Now does a
157
+ * read-merge-write so it is safe even if the file changed since construction.
134
158
  */
135
159
  importDirect(conversation: Conversation): void;
160
+ /** Holds an in-flight importDirect batch until flush(). */
161
+ private pendingFile;
136
162
  /** Persist after a batch of importDirect calls. */
137
163
  flush(): void;
138
164
  /** Remove a conversation. */
@@ -150,9 +176,11 @@ export declare class ConversationStore {
150
176
  prune(): void;
151
177
  private skeleton;
152
178
  private isExpired;
153
- private pruneIfNeeded;
154
- private pruneMap;
155
- private loadStore;
156
- private saveStore;
179
+ /** Prune a conversations map in place (non-pinned expired + LRU overflow). */
180
+ private pruneMapInPlace;
181
+ /** Read + parse the on-disk store fresh (the source of truth). */
182
+ private readFileFresh;
183
+ /** Atomic write (tmp + rename) — no reader ever sees a torn file. */
184
+ private writeFileAtomic;
157
185
  }
158
186
  //# sourceMappingURL=ConversationStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationStore.d.ts","sourceRoot":"","sources":["../../src/threadline/ConversationStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConversationStore.d.ts","sourceRoot":"","sources":["../../src/threadline/ConversationStore.ts"],"names":[],"mappings":"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"}