instar 1.2.73 → 1.2.74
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/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +6 -2
- package/dist/commands/server.js.map +1 -1
- package/dist/memory/WorkingMemoryAssembler.d.ts +26 -0
- package/dist/memory/WorkingMemoryAssembler.d.ts.map +1 -1
- package/dist/memory/WorkingMemoryAssembler.js +56 -0
- package/dist/memory/WorkingMemoryAssembler.js.map +1 -1
- package/dist/memory/WorkingSet.d.ts +53 -0
- package/dist/memory/WorkingSet.d.ts.map +1 -0
- package/dist/memory/WorkingSet.js +140 -0
- package/dist/memory/WorkingSet.js.map +1 -0
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.2.74.md +62 -0
- package/upgrades/side-effects/cwa-unify-stores.md +83 -0
|
@@ -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;
|
|
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":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "./builtin-manifest.schema.json",
|
|
3
3
|
"schemaVersion": 1,
|
|
4
|
-
"generatedAt": "2026-05-25T09:
|
|
5
|
-
"instarVersion": "1.2.
|
|
4
|
+
"generatedAt": "2026-05-25T09:17:32.200Z",
|
|
5
|
+
"instarVersion": "1.2.74",
|
|
6
6
|
"entryCount": 191,
|
|
7
7
|
"entries": {
|
|
8
8
|
"hook:session-start": {
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Upgrade Guide — one ranked working set across the memory stores
|
|
2
|
+
|
|
3
|
+
<!-- bump: minor -->
|
|
4
|
+
<!-- minor = new features, new APIs, new capabilities (backwards-compatible) -->
|
|
5
|
+
|
|
6
|
+
## What Changed
|
|
7
|
+
|
|
8
|
+
**The memory stores now feed one ranked reading list instead of three separate ones.**
|
|
9
|
+
|
|
10
|
+
Topic-intent (conversation facts + task frame), Playbook (tagged context items),
|
|
11
|
+
and semantic/episodic memory each had their own read path and ranking. This unifies
|
|
12
|
+
the **reading**: the existing working-memory assembler — already a token-budgeted
|
|
13
|
+
multi-source context builder — now also draws from topic-intent and Playbook, and
|
|
14
|
+
ranks everything together by relevance blended with a recency-decay factor (so
|
|
15
|
+
fresher, more-relevant context floats up; stale context sinks but isn't deleted and
|
|
16
|
+
re-warms on reference).
|
|
17
|
+
|
|
18
|
+
The important design choice (ratified): this unifies the **reading, not the
|
|
19
|
+
storage**. The three stores keep their own backends and write paths; the assembler
|
|
20
|
+
is the single unified read. That makes it additive and reversible — and it's
|
|
21
|
+
guarded by a regression pin: **when the new sources are empty, the assembled
|
|
22
|
+
context is byte-for-byte what it was before.** Playbook is read straight from its
|
|
23
|
+
manifest files (no Python invoked in the hot assembly path), and every new source
|
|
24
|
+
is degrade-safe — a missing or erroring source contributes nothing and never
|
|
25
|
+
breaks assembly.
|
|
26
|
+
|
|
27
|
+
The result shows up as a "Working Set" section in the assembled context
|
|
28
|
+
(`GET /session/context/:topicId`), drawing from all sources under one budget, with
|
|
29
|
+
per-source contribution visible in the response's `sources`.
|
|
30
|
+
|
|
31
|
+
**Evidence**: 11 new tests (8 unit — blended ranking, both source adapters,
|
|
32
|
+
degrade-safety, and the regression pin; 3 boot-path route tests confirming the
|
|
33
|
+
unified read path is alive and surfaces topic-intent in a Working Set section, and
|
|
34
|
+
that a ref-less topic is unchanged). The existing 49 assembler + working-memory
|
|
35
|
+
tests stay green (the regression pin, confirmed). `tsc` + lint clean.
|
|
36
|
+
|
|
37
|
+
Spec: `docs/specs/cwa-unify-stores.md` (approved; Claude-authored + manual review —
|
|
38
|
+
this is the most architectural rung, fuller multi-model review advisable, caveat
|
|
39
|
+
ratified). ELI16: `docs/specs/cwa-unify-stores.eli16.md`. Side-effects:
|
|
40
|
+
`upgrades/side-effects/cwa-unify-stores.md`.
|
|
41
|
+
|
|
42
|
+
## What to Tell Your User
|
|
43
|
+
|
|
44
|
+
- **One sorted view of what matters**: "I used to keep 'what's relevant right now'
|
|
45
|
+
in three separate notebooks that didn't talk to each other. Now they feed one
|
|
46
|
+
ranked reading list, so when we pick something up I get a single sorted view —
|
|
47
|
+
freshest and most-relevant first — instead of three half-answers."
|
|
48
|
+
|
|
49
|
+
## Summary of New Capabilities
|
|
50
|
+
|
|
51
|
+
| Capability | How to Use |
|
|
52
|
+
|-----------|-----------|
|
|
53
|
+
| Unified working set in assembled context | Automatic — `GET /session/context/:topicId` now includes a "Working Set" section drawing from topic-intent + Playbook + memory |
|
|
54
|
+
| Blended relevance×recency ranking across sources | Automatic (the assembler ranks all sources together) |
|
|
55
|
+
|
|
56
|
+
## Evidence
|
|
57
|
+
|
|
58
|
+
Not a bug fix — a new capability over the existing assembler. Verified by 11 new
|
|
59
|
+
tests including 3 that boot the real AgentServer and confirm the assembled-context
|
|
60
|
+
route surfaces a topic-intent ref in a "Working Set" section, plus a regression pin
|
|
61
|
+
(unit + the unchanged existing 49-test suites) proving the assembled output is
|
|
62
|
+
identical when the new sources are empty. `tsc` + lint clean.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Side-effects review — unify the working-awareness stores (rung 2)
|
|
2
|
+
|
|
3
|
+
**Scope**: Give the working-awareness stores one ranked read path. Per the
|
|
4
|
+
ratified spec (`docs/specs/cwa-unify-stores.md`), this unifies the READ — extends
|
|
5
|
+
the existing `WorkingMemoryAssembler` to draw topic-intent refs + Playbook
|
|
6
|
+
manifest items into one ranked working-set section — NOT a physical store
|
|
7
|
+
migration. Additive, reversible, regression-pinned.
|
|
8
|
+
|
|
9
|
+
**Files touched**:
|
|
10
|
+
- `src/memory/WorkingSet.ts` — NEW. The `WorkingSetItem` lingua franca +
|
|
11
|
+
`blendedScore`/`rankWorkingSet` (relevance × recency-decay) + two read-only,
|
|
12
|
+
degrade-safe source adapters: `topicIntentToWorkingSet` (refs at/above tentative
|
|
13
|
+
→ items; relevance = confidence, recency = lastReinforcedAt) and
|
|
14
|
+
`playbookManifestToWorkingSet` (scans `{stateDir}/playbook/**.json` manifests,
|
|
15
|
+
trigger/tag-gated by the query, relevance = match + usefulness, recency =
|
|
16
|
+
freshness — **never invokes the Python scripts**).
|
|
17
|
+
- `src/memory/WorkingMemoryAssembler.ts` — optional `topicIntentStore` + `stateDir`
|
|
18
|
+
config; `workingSet` token budget (default 500); a new "Working Set" section
|
|
19
|
+
appended AFTER the existing knowledge/episodes/relationships sections, gated on
|
|
20
|
+
the new deps + content; `assembleWorkingSet`/`renderWorkingSet`; section header.
|
|
21
|
+
- `src/commands/server.ts` — pass `topicIntentStore` + `stateDir` to the assembler
|
|
22
|
+
and broaden its construction gate to include `topicIntentStore` (so the unified
|
|
23
|
+
read path is available even in minimal setups).
|
|
24
|
+
|
|
25
|
+
**Under-block**: None. The new section is purely additive context; it gates
|
|
26
|
+
nothing. Each new source is read-only and wrapped so an error/absence contributes
|
|
27
|
+
nothing.
|
|
28
|
+
|
|
29
|
+
**Over-block**: None. No authority anywhere — the assembler informs context, it
|
|
30
|
+
doesn't decide.
|
|
31
|
+
|
|
32
|
+
**Level-of-abstraction fit**: The stores keep their backends and write paths; only
|
|
33
|
+
the READ is unified, via the assembler that already does token-budgeted
|
|
34
|
+
multi-source assembly. The new sources speak the same `WorkingSetItem` shape and
|
|
35
|
+
flow through the same budget + render machinery. Playbook is read at the manifest
|
|
36
|
+
level (a stable JSON file), not through its Python CLI — the right seam for a fast,
|
|
37
|
+
degrade-safe assembler.
|
|
38
|
+
|
|
39
|
+
**Signal vs authority**: N/A — pure read/ranking.
|
|
40
|
+
|
|
41
|
+
**Interactions**:
|
|
42
|
+
- **REGRESSION PIN (load-bearing):** the working-set section is appended after the
|
|
43
|
+
existing three and only when `topicIntentStore || stateDir` is configured AND a
|
|
44
|
+
source returns content. With the new deps absent OR their sources empty, the
|
|
45
|
+
assembled output is byte-for-byte unchanged — verified by (a) a dedicated unit
|
|
46
|
+
test, (b) the existing 26 assembler unit tests + 9 working-memory route tests +
|
|
47
|
+
the assembler-context route tests all still green, (c) a route test asserting a
|
|
48
|
+
ref-less topic yields no working-set section.
|
|
49
|
+
- The assembler construction gate broadened to include `topicIntentStore` (always
|
|
50
|
+
present), so the assembler now constructs in more setups. This is additive —
|
|
51
|
+
callers in minimal setups gain a working-set context they didn't have; existing
|
|
52
|
+
setups' output is unchanged (pin).
|
|
53
|
+
- The new section draws only from REMAINING token budget after the existing
|
|
54
|
+
sources, so it cannot starve them.
|
|
55
|
+
- Playbook manifest scan is bounded (depth-limited, per-file try/catch) and
|
|
56
|
+
trigger-gated (empty query → no Playbook items), so it can't flood or slow
|
|
57
|
+
assembly.
|
|
58
|
+
|
|
59
|
+
**External surfaces**: New module `src/memory/WorkingSet.ts` (exports
|
|
60
|
+
`WorkingSetItem`, `blendedScore`, `rankWorkingSet`, the two adapters). New optional
|
|
61
|
+
assembler config fields + a `workingSet` budget. The assembled-context HTTP routes
|
|
62
|
+
now MAY include a "Working Set" section. No new endpoint, no config-shape change
|
|
63
|
+
for users (the assembler deps are wired server-side).
|
|
64
|
+
|
|
65
|
+
**Deferred (tracked)**: deeper cross-source blended re-ranking of the existing
|
|
66
|
+
sources (`cwa-physical-store-merge` rejected; cross-blend is implicit future work),
|
|
67
|
+
the Usher / mid-task re-surfacing (`cwa-usher`), capability+standards descriptors
|
|
68
|
+
as sources (`cwa-capability-index-context`). All in the spec's non-goals.
|
|
69
|
+
|
|
70
|
+
**Rollback cost**: Low. Drop the working-set section + the two adapter calls (or
|
|
71
|
+
just don't pass `topicIntentStore`/`stateDir`); the assembler returns to its
|
|
72
|
+
current three sources. No data migration. The regression pin guarantees the
|
|
73
|
+
revert is a no-op for existing output.
|
|
74
|
+
|
|
75
|
+
**Migration parity**: Additive assembler sources + budget default + the broadened
|
|
76
|
+
construction gate — all server-side (every agent gets it on update). No store
|
|
77
|
+
schema change, no hook/template/skill change, no user config change required.
|
|
78
|
+
|
|
79
|
+
**Convergence honesty**: Claude-authored + manual review; full multi-model
|
|
80
|
+
convergence tooling absent on host. This is the most architectural rung (touches
|
|
81
|
+
the shared assembler), so the regression pin is the primary safety and a fuller
|
|
82
|
+
multi-model review remains advisable — but the pin + the unchanged existing suites
|
|
83
|
+
bound the risk tightly.
|