@loreai/core 0.20.1 → 0.21.0
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/bun/config.d.ts +1 -0
- package/dist/bun/config.d.ts.map +1 -1
- package/dist/bun/curator.d.ts +2 -0
- package/dist/bun/curator.d.ts.map +1 -1
- package/dist/bun/db.d.ts +10 -0
- package/dist/bun/db.d.ts.map +1 -1
- package/dist/bun/distillation.d.ts +4 -0
- package/dist/bun/distillation.d.ts.map +1 -1
- package/dist/bun/gradient.d.ts +26 -4
- package/dist/bun/gradient.d.ts.map +1 -1
- package/dist/bun/index.d.ts +2 -2
- package/dist/bun/index.d.ts.map +1 -1
- package/dist/bun/index.js +150 -17
- package/dist/bun/index.js.map +3 -3
- package/dist/bun/ltm.d.ts +10 -0
- package/dist/bun/ltm.d.ts.map +1 -1
- package/dist/bun/prompt.d.ts +1 -1
- package/dist/bun/prompt.d.ts.map +1 -1
- package/dist/node/config.d.ts +1 -0
- package/dist/node/config.d.ts.map +1 -1
- package/dist/node/curator.d.ts +2 -0
- package/dist/node/curator.d.ts.map +1 -1
- package/dist/node/db.d.ts +10 -0
- package/dist/node/db.d.ts.map +1 -1
- package/dist/node/distillation.d.ts +4 -0
- package/dist/node/distillation.d.ts.map +1 -1
- package/dist/node/gradient.d.ts +26 -4
- package/dist/node/gradient.d.ts.map +1 -1
- package/dist/node/index.d.ts +2 -2
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +150 -17
- package/dist/node/index.js.map +3 -3
- package/dist/node/ltm.d.ts +10 -0
- package/dist/node/ltm.d.ts.map +1 -1
- package/dist/node/prompt.d.ts +1 -1
- package/dist/node/prompt.d.ts.map +1 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/curator.d.ts +2 -0
- package/dist/types/curator.d.ts.map +1 -1
- package/dist/types/db.d.ts +10 -0
- package/dist/types/db.d.ts.map +1 -1
- package/dist/types/distillation.d.ts +4 -0
- package/dist/types/distillation.d.ts.map +1 -1
- package/dist/types/gradient.d.ts +26 -4
- package/dist/types/gradient.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/ltm.d.ts +10 -0
- package/dist/types/ltm.d.ts.map +1 -1
- package/dist/types/prompt.d.ts +1 -1
- package/dist/types/prompt.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/config.ts +4 -2
- package/src/curator.ts +3 -0
- package/src/db.ts +52 -1
- package/src/distillation.ts +17 -1
- package/src/gradient.ts +65 -13
- package/src/index.ts +5 -0
- package/src/ltm.ts +78 -4
- package/src/prompt.ts +18 -2
package/dist/bun/config.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare const LoreConfig: z.ZodObject<{
|
|
|
13
13
|
raw: z.ZodDefault<z.ZodNumber>;
|
|
14
14
|
output: z.ZodDefault<z.ZodNumber>;
|
|
15
15
|
ltm: z.ZodDefault<z.ZodNumber>;
|
|
16
|
+
preferenceLtm: z.ZodDefault<z.ZodNumber>;
|
|
16
17
|
targetCacheReadCostPerTurn: z.ZodDefault<z.ZodNumber>;
|
|
17
18
|
maxLayer0Tokens: z.ZodOptional<z.ZodNumber>;
|
|
18
19
|
targetBustCost: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
|
package/dist/bun/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAwOrB,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAIpD,wBAAgB,MAAM,IAAI,UAAU,CAEnC;AAED,wBAAsB,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAajE"}
|
package/dist/bun/curator.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curator.d.ts","sourceRoot":"","sources":["../../src/curator.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,MAAM,MAAM,SAAS,GACjB;IACE,EAAE,EAAE,QAAQ,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"curator.d.ts","sourceRoot":"","sources":["../../src/curator.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,MAAM,MAAM,SAAS,GACjB;IACE,EAAE,EAAE,QAAQ,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACD;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAkBlD;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CACtB,GAAG,EAAE,SAAS,EAAE,EAChB,KAAK,EAAE;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,GACA;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAqDvD;AAmBD,wBAAsB,GAAG,CAAC,KAAK,EAAE;IAC/B,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAkBjE;AA2FD,wBAAgB,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,QAMtD;AAED;;;;;;GAMG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE;IACvC,GAAG,EAAE,SAAS,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACjD,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAkChD"}
|
package/dist/bun/db.d.ts
CHANGED
|
@@ -130,6 +130,8 @@ export type SessionTrackingState = {
|
|
|
130
130
|
lastKnownInput?: number;
|
|
131
131
|
lastTurnAt?: number;
|
|
132
132
|
lastBustAt?: number;
|
|
133
|
+
parentSessionId?: string | null;
|
|
134
|
+
isSubagent?: boolean;
|
|
133
135
|
};
|
|
134
136
|
/**
|
|
135
137
|
* Persist session tracking state. Ensures the row exists, then updates
|
|
@@ -158,6 +160,8 @@ export type LoadedSessionTracking = {
|
|
|
158
160
|
lastKnownInput: number;
|
|
159
161
|
lastTurnAt: number;
|
|
160
162
|
lastBustAt: number;
|
|
163
|
+
parentSessionId: string | null;
|
|
164
|
+
isSubagent: boolean;
|
|
161
165
|
};
|
|
162
166
|
/**
|
|
163
167
|
* Load persisted session tracking state. Returns null if no row exists.
|
|
@@ -177,6 +181,12 @@ export declare function loadHeaderSessionIndex(): Array<{
|
|
|
177
181
|
headerSessionId: string;
|
|
178
182
|
headerName: string;
|
|
179
183
|
}>;
|
|
184
|
+
/**
|
|
185
|
+
* Load parent→child session mappings from the DB.
|
|
186
|
+
* Returns a map: childSessionId → parentSessionId (Lore internal IDs).
|
|
187
|
+
* Used by the dashboard to build session trees.
|
|
188
|
+
*/
|
|
189
|
+
export declare function loadParentChildMap(): Map<string, string>;
|
|
180
190
|
/** Get a kv_meta value by key. Returns null if not found. */
|
|
181
191
|
export declare function getKV(key: string): string | null;
|
|
182
192
|
/** Set a kv_meta value (upsert). */
|
package/dist/bun/db.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMtC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAMvE;
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMtC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAMvE;AA8iBD,4DAA4D;AAC5D,wBAAgB,MAAM,IAAI,MAAM,CAI/B;AAID,wBAAgB,EAAE,IAAI,QAAQ,CA8C7B;AAsHD;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,IAAI,CAoCN;AAED,wBAAgB,KAAK,SAKpB;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAgFpG;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW1D;AAED;;;;GAIG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,CAAC,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,MAAM,GACZ,MAAM,GAAG,IAAI,CAWf;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrD;AAED,2DAA2D;AAC3D,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrD;AAED;;;GAGG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAKpC;AAMD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMlE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAK5E;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAYxE;AAED,6CAA6C;AAC7C,MAAM,MAAM,mBAAmB,GAAG;IAChC,gBAAgB,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,qBAAqB,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,IAAI,CA+BpF;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAsC9E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CA2CtE;AAMD,+DAA+D;AAC/D,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAiHxF;AAED,qCAAqC;AACrC,MAAM,MAAM,qBAAqB,GAAG;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,wBAAwB,EAAE,MAAM,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1B,uBAAuB,EAAE,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IAEnB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CA8DnF;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,IAAI,KAAK,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAiBD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAaxD;AAMD,6DAA6D;AAC7D,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKhD;AAED,oCAAoC;AACpC,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMtD;AAMD,8DAA8D;AAC9D,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKlD;AAED,qCAAqC;AACrC,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAMxD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAMtC"}
|
|
@@ -151,6 +151,10 @@ export declare function run(input: {
|
|
|
151
151
|
skipMeta?: boolean;
|
|
152
152
|
urgent?: boolean;
|
|
153
153
|
callType?: "batch" | "direct";
|
|
154
|
+
/** Override the meta-distillation gen-0 threshold. When set, meta-distillation
|
|
155
|
+
* triggers at this count instead of `cfg.distillation.metaThreshold`.
|
|
156
|
+
* Used by the urgent-distillation path to consolidate earlier under bust pressure. */
|
|
157
|
+
metaThresholdOverride?: number;
|
|
154
158
|
}): Promise<{
|
|
155
159
|
rounds: number;
|
|
156
160
|
distilled: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"distillation.d.ts","sourceRoot":"","sources":["../../src/distillation.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AAavC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,KAAK,eAAe,GAAG,QAAQ,CAAC,eAAe,CAAC;AAEhD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAC9B,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,GACnB,MAAM,CAGR;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAIhE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,eAAe,EAAE,EAC3B,SAAS,EAAE,MAAM,GAChB,eAAe,EAAE,EAAE,CAIrB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,MAAM,CAER;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAK/D;
|
|
1
|
+
{"version":3,"file":"distillation.d.ts","sourceRoot":"","sources":["../../src/distillation.ts"],"names":[],"mappings":"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"}
|
package/dist/bun/gradient.d.ts
CHANGED
|
@@ -33,10 +33,11 @@ export declare function getTier(tokens: number): number;
|
|
|
33
33
|
*
|
|
34
34
|
* A "bust" is when cache_write > 50% of total input tokens.
|
|
35
35
|
*
|
|
36
|
-
* @param cacheWrite
|
|
37
|
-
* @param cacheRead
|
|
38
|
-
* @param inputTokens -
|
|
39
|
-
*
|
|
36
|
+
* @param cacheWrite - cache_creation_input_tokens from the API response
|
|
37
|
+
* @param cacheRead - cache_read_input_tokens from the API response
|
|
38
|
+
* @param inputTokens - input_tokens from the API response (uncached portion only —
|
|
39
|
+
* Anthropic's input_tokens excludes both cache reads and writes)
|
|
40
|
+
* @param sessionID - session that produced this response
|
|
40
41
|
*/
|
|
41
42
|
export declare function recordCacheUsage(cacheWrite: number, cacheRead: number, inputTokens: number, sessionID?: string): void;
|
|
42
43
|
type DistillationSnapshot = {
|
|
@@ -131,6 +132,8 @@ export declare function getLtmTokens(sessionID?: string): number;
|
|
|
131
132
|
* hook to cap how many tokens formatKnowledge may use.
|
|
132
133
|
*/
|
|
133
134
|
export declare function getLtmBudget(ltmFraction: number): number;
|
|
135
|
+
/** Returns the token budget for stable LTM (preferences). Independent of context-bound LTM budget. */
|
|
136
|
+
export declare const getPreferenceLtmBudget: typeof getLtmBudget;
|
|
134
137
|
export declare function calibrate(actualInput: number, sessionID?: string, messageCount?: number): void;
|
|
135
138
|
export declare function getOverhead(): number;
|
|
136
139
|
/**
|
|
@@ -164,6 +167,25 @@ export declare function inspectSessionState(sessionID: string): {
|
|
|
164
167
|
distillationSnapshot: DistillationSnapshot | null;
|
|
165
168
|
consecutiveBusts: number;
|
|
166
169
|
} | null;
|
|
170
|
+
/**
|
|
171
|
+
* Return the consecutive-bust counter for a session (read-only).
|
|
172
|
+
* Returns 0 if the session has no in-memory state — callers treat this
|
|
173
|
+
* as "no bust pressure" which is the safe default.
|
|
174
|
+
*
|
|
175
|
+
* Uses Map.get() instead of getSessionState() to avoid creating phantom
|
|
176
|
+
* SessionState entries with zeroed calibration fields, which would cause
|
|
177
|
+
* the next transform() call to treat the session as uncalibrated.
|
|
178
|
+
*/
|
|
179
|
+
export declare function getConsecutiveBusts(sessionID: string): number;
|
|
180
|
+
/** Bust-pressure threshold for meta-distillation: consecutive busts ≥ this
|
|
181
|
+
* value trigger earlier consolidation of gen-0 segments. */
|
|
182
|
+
export declare const BUST_PRESSURE_THRESHOLD = 3;
|
|
183
|
+
/**
|
|
184
|
+
* Compute the effective meta-distillation threshold under bust pressure.
|
|
185
|
+
* When busts ≥ BUST_PRESSURE_THRESHOLD, lowers the threshold to 1/4 of the
|
|
186
|
+
* configured value (min 3) to consolidate the distilled prefix earlier.
|
|
187
|
+
*/
|
|
188
|
+
export declare function effectiveMetaThreshold(busts: number, configThreshold: number): number;
|
|
167
189
|
/**
|
|
168
190
|
* For testing only — set the session's lastTurnAt field. Used to simulate
|
|
169
191
|
* idle gaps without sleeping. Creates the session state if not present so
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gradient.d.ts","sourceRoot":"","sources":["../../src/gradient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,oBAAoB,EAAqE,MAAM,SAAS,CAAC;AAQ9I,KAAK,gBAAgB,GAAG,oBAAoB,CAAC;AAyD7C;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,QAGlE;AAED,2CAA2C;AAC3C,wBAAgB,eAAe,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAEjE;AAWD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,EACxB,gBAAgB,EAAE,MAAM,EACxB,SAAS,SAAO,GACf,OAAO,CAeT;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAI9C;AAED
|
|
1
|
+
{"version":3,"file":"gradient.d.ts","sourceRoot":"","sources":["../../src/gradient.ts"],"names":[],"mappings":"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"}
|
package/dist/bun/index.d.ts
CHANGED
|
@@ -15,10 +15,10 @@ export type { LoreMessage, LoreUserMessage, LoreAssistantMessage, LorePart, Lore
|
|
|
15
15
|
export { isTextPart, isReasoningPart, isToolPart } from "./types";
|
|
16
16
|
export { dataDir } from "./data-dir";
|
|
17
17
|
export { load, config, type LoreConfig } from "./config";
|
|
18
|
-
export { db, dbPath, ensureProject, getLastImportAt, setLastImportAt, isFirstRun, projectId, projectName, projectPath, resolveProjectByRemoteOrPath, mergeProjectInternal, loadForceMinLayer, saveForceMinLayer, saveSessionCosts, loadSessionCosts, loadAllSessionCosts, type SessionCostSnapshot, saveSessionTracking, loadSessionTracking, loadHeaderSessionIndex, type SessionTrackingState, type LoadedSessionTracking, getKV, setKV, getMeta, setMeta, getInstanceId, close, } from "./db";
|
|
18
|
+
export { db, dbPath, ensureProject, getLastImportAt, setLastImportAt, isFirstRun, projectId, projectName, projectPath, resolveProjectByRemoteOrPath, mergeProjectInternal, loadForceMinLayer, saveForceMinLayer, saveSessionCosts, loadSessionCosts, loadAllSessionCosts, type SessionCostSnapshot, saveSessionTracking, loadSessionTracking, loadHeaderSessionIndex, loadParentChildMap, type SessionTrackingState, type LoadedSessionTracking, getKV, setKV, getMeta, setMeta, getInstanceId, close, } from "./db";
|
|
19
19
|
export { normalizeRemoteUrl, getGitRemote, clearGitRemoteCache } from "./git";
|
|
20
20
|
export { enableHostedMode, isHostedMode } from "./hosted";
|
|
21
|
-
export { transform, setModelLimits, setMaxLayer0Tokens, computeLayer0Cap, setCachePricing, getCachePricing, shouldCompress, getTier, recordCacheUsage, needsUrgentDistillation, calibrate, setLtmTokens, getLtmTokens, getLtmBudget, setForceMinLayer, getLastTransformedCount, getLastTransformEstimate, getLastLayer, toolStripAnnotation, onIdleResume, getLastTurnAt, consumeCameOutOfIdle, saveGradientState, setLastTurnAtForTest, inspectSessionState, } from "./gradient";
|
|
21
|
+
export { transform, setModelLimits, setMaxLayer0Tokens, computeLayer0Cap, setCachePricing, getCachePricing, shouldCompress, getTier, recordCacheUsage, needsUrgentDistillation, calibrate, setLtmTokens, getLtmTokens, getLtmBudget, getPreferenceLtmBudget, setForceMinLayer, getLastTransformedCount, getLastTransformEstimate, getLastLayer, toolStripAnnotation, onIdleResume, getLastTurnAt, consumeCameOutOfIdle, saveGradientState, setLastTurnAtForTest, inspectSessionState, getConsecutiveBusts, BUST_PRESSURE_THRESHOLD, effectiveMetaThreshold, } from "./gradient";
|
|
22
22
|
export { formatKnowledge, formatDistillations, DISTILLATION_SYSTEM, distillationUser, RECURSIVE_SYSTEM, recursiveUser, CURATOR_SYSTEM, curatorUser, CONSOLIDATION_SYSTEM, consolidationUser, QUERY_EXPANSION_SYSTEM, COMPACT_SUMMARY_TEMPLATE, buildCompactPrompt, } from "./prompt";
|
|
23
23
|
export { shouldImport, importFromFile, exportToFile, exportLoreFile, importLoreFile, shouldImportLoreFile, loreFileExists, clearLoreFileCache, LORE_FILE, } from "./agents-file";
|
|
24
24
|
export { workerSessionIDs, isWorkerSession } from "./worker";
|
package/dist/bun/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,QAAQ,CAAC;AAC/B,OAAO,KAAK,YAAY,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,cAAc,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,iBAAiB,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,KAAK,kBAAkB,MAAM,UAAU,CAAC;AAE/C,OAAO,EACL,SAAS,EACT,YAAY,EACZ,UAAU,EACV,uBAAuB,EACvB,yBAAyB,EACzB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,UAAU,CAAC;AAElB,YAAY,EACV,WAAW,EACX,eAAe,EACf,oBAAoB,EACpB,QAAQ,EACR,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAElE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EACL,EAAE,EACF,MAAM,EACN,aAAa,EACb,eAAe,EACf,eAAe,EACf,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,EACX,4BAA4B,EAC5B,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,aAAa,EACb,KAAK,GACN,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EACL,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,cAAc,EACd,OAAO,EACP,gBAAgB,EAChB,uBAAuB,EACvB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EAGjB,oBAAoB,EACpB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/bun/index.js
CHANGED
|
@@ -799,6 +799,17 @@ var MIGRATIONS = [
|
|
|
799
799
|
);
|
|
800
800
|
CREATE INDEX IF NOT EXISTS idx_dedup_feedback_project
|
|
801
801
|
ON dedup_feedback(project_id);
|
|
802
|
+
`,
|
|
803
|
+
`
|
|
804
|
+
-- Version 26: Persist sub-agent parent\u2013child session relationships.
|
|
805
|
+
-- parent_session_id: Lore internal session ID of the parent session
|
|
806
|
+
-- (resolved from the x-parent-session-id header at detection time).
|
|
807
|
+
-- NULL for root (non-sub-agent) sessions.
|
|
808
|
+
-- is_subagent: boolean flag (1 = sub-agent) so the flag survives
|
|
809
|
+
-- gateway restarts without requiring the header again.
|
|
810
|
+
ALTER TABLE session_state ADD COLUMN parent_session_id TEXT;
|
|
811
|
+
ALTER TABLE session_state ADD COLUMN is_subagent INTEGER NOT NULL DEFAULT 0;
|
|
812
|
+
CREATE INDEX IF NOT EXISTS idx_session_state_parent ON session_state(parent_session_id);
|
|
802
813
|
`
|
|
803
814
|
];
|
|
804
815
|
function dbPath() {
|
|
@@ -1209,6 +1220,14 @@ function saveSessionTracking(sessionID, state) {
|
|
|
1209
1220
|
sets.push("last_bust_at = ?");
|
|
1210
1221
|
vals.push(state.lastBustAt);
|
|
1211
1222
|
}
|
|
1223
|
+
if (state.parentSessionId !== void 0) {
|
|
1224
|
+
sets.push("parent_session_id = ?");
|
|
1225
|
+
vals.push(state.parentSessionId);
|
|
1226
|
+
}
|
|
1227
|
+
if (state.isSubagent !== void 0) {
|
|
1228
|
+
sets.push("is_subagent = ?");
|
|
1229
|
+
vals.push(state.isSubagent ? 1 : 0);
|
|
1230
|
+
}
|
|
1212
1231
|
db().query(
|
|
1213
1232
|
"UPDATE session_state SET " + sets.join(", ") + " WHERE session_id = ?"
|
|
1214
1233
|
).run(...vals, sessionID);
|
|
@@ -1221,7 +1240,8 @@ function loadSessionTracking(sessionID) {
|
|
|
1221
1240
|
fingerprint, header_session_id, header_name,
|
|
1222
1241
|
resolved_conversation_ttl, warmup_state,
|
|
1223
1242
|
dynamic_context_cap, bust_rate_ema, inter_bust_interval_ema,
|
|
1224
|
-
last_layer, last_known_input, last_turn_at, last_bust_at
|
|
1243
|
+
last_layer, last_known_input, last_turn_at, last_bust_at,
|
|
1244
|
+
parent_session_id, is_subagent
|
|
1225
1245
|
FROM session_state WHERE session_id = ?`
|
|
1226
1246
|
).get(sessionID);
|
|
1227
1247
|
if (!row) return null;
|
|
@@ -1245,7 +1265,9 @@ function loadSessionTracking(sessionID) {
|
|
|
1245
1265
|
lastLayer: row.last_layer,
|
|
1246
1266
|
lastKnownInput: row.last_known_input,
|
|
1247
1267
|
lastTurnAt: row.last_turn_at,
|
|
1248
|
-
lastBustAt: row.last_bust_at
|
|
1268
|
+
lastBustAt: row.last_bust_at,
|
|
1269
|
+
parentSessionId: row.parent_session_id,
|
|
1270
|
+
isSubagent: row.is_subagent === 1
|
|
1249
1271
|
};
|
|
1250
1272
|
}
|
|
1251
1273
|
function loadHeaderSessionIndex() {
|
|
@@ -1260,6 +1282,18 @@ function loadHeaderSessionIndex() {
|
|
|
1260
1282
|
headerName: row.header_name
|
|
1261
1283
|
}));
|
|
1262
1284
|
}
|
|
1285
|
+
function loadParentChildMap() {
|
|
1286
|
+
const rows = db().query(
|
|
1287
|
+
`SELECT session_id, parent_session_id
|
|
1288
|
+
FROM session_state
|
|
1289
|
+
WHERE parent_session_id IS NOT NULL`
|
|
1290
|
+
).all();
|
|
1291
|
+
const map5 = /* @__PURE__ */ new Map();
|
|
1292
|
+
for (const row of rows) {
|
|
1293
|
+
map5.set(row.session_id, row.parent_session_id);
|
|
1294
|
+
}
|
|
1295
|
+
return map5;
|
|
1296
|
+
}
|
|
1263
1297
|
function getKV(key) {
|
|
1264
1298
|
const row = db().query("SELECT value FROM kv_meta WHERE key = ?").get(key);
|
|
1265
1299
|
return row?.value ?? null;
|
|
@@ -12276,6 +12310,20 @@ crossProject flag:
|
|
|
12276
12310
|
- Default is true \u2014 most useful knowledge is worth sharing across projects
|
|
12277
12311
|
- Set crossProject to false for things that are meaningless outside this specific repo (e.g. a config path, a project-local naming convention that conflicts with your usual style)
|
|
12278
12312
|
|
|
12313
|
+
Confidence values (0.0\u20131.0) \u2014 determines injection priority when budget is tight:
|
|
12314
|
+
- 1.0: Unconditional directive \u2014 user used "NEVER", "ALWAYS", "from now on", or similarly
|
|
12315
|
+
absolute language. These must always be respected regardless of context.
|
|
12316
|
+
- 0.9: Strong preference \u2014 explicit user preference ("I prefer", "I want", "make sure to",
|
|
12317
|
+
"don't forget to"). Clear intent but not absolute.
|
|
12318
|
+
- 0.8: Moderate preference \u2014 inferred from repeated user behavior or gentle correction across
|
|
12319
|
+
sessions. Not explicitly stated as a rule.
|
|
12320
|
+
- 0.6: Mild/contextual preference \u2014 may not apply universally. Observed once or context-dependent.
|
|
12321
|
+
- For non-preference categories (gotcha, pattern, architecture, decision), confidence reflects
|
|
12322
|
+
how well-established the knowledge is: 1.0 = verified/confirmed, 0.8 = high confidence,
|
|
12323
|
+
0.6 = probable but unverified.
|
|
12324
|
+
- Default to 1.0 for preferences with strong directive language, 0.8 for other preferences.
|
|
12325
|
+
- Always set confidence on create ops \u2014 it determines injection priority.
|
|
12326
|
+
|
|
12279
12327
|
Produce a JSON array of operations:
|
|
12280
12328
|
[
|
|
12281
12329
|
{
|
|
@@ -12284,7 +12332,8 @@ Produce a JSON array of operations:
|
|
|
12284
12332
|
"title": "Short descriptive title",
|
|
12285
12333
|
"content": "Concise knowledge entry \u2014 under 150 words",
|
|
12286
12334
|
"scope": "project" | "global",
|
|
12287
|
-
"crossProject": true
|
|
12335
|
+
"crossProject": true,
|
|
12336
|
+
"confidence": 1.0
|
|
12288
12337
|
},
|
|
12289
12338
|
{
|
|
12290
12339
|
"op": "update",
|
|
@@ -12322,7 +12371,8 @@ IMPORTANT:
|
|
|
12322
12371
|
4. Only create a new entry for genuinely distinct knowledge with no existing home.
|
|
12323
12372
|
5. Keep all entries under 150 words. If an existing entry is too long, use an update op to trim it.
|
|
12324
12373
|
6. Pay special attention to user instructions ("always do X", "never do Y", "make sure to X").
|
|
12325
|
-
These are strong signals for "preference" entries with high confidence
|
|
12374
|
+
These are strong signals for "preference" entries with high confidence (1.0 for absolute
|
|
12375
|
+
directives like "never"/"always", 0.9 for explicit preferences like "I prefer").`;
|
|
12326
12376
|
}
|
|
12327
12377
|
var CONSOLIDATION_SYSTEM = `You are a long-term memory curator performing a consolidation pass. The knowledge base has grown too large and needs to be trimmed.
|
|
12328
12378
|
|
|
@@ -26600,8 +26650,10 @@ var LoreConfig = external_exports.object({
|
|
|
26600
26650
|
distilled: external_exports.number().min(0.05).max(0.5).default(0.25),
|
|
26601
26651
|
raw: external_exports.number().min(0.1).max(0.7).default(0.4),
|
|
26602
26652
|
output: external_exports.number().min(0.1).max(0.5).default(0.25),
|
|
26603
|
-
/** Max fraction of usable context reserved for LTM system-prompt injection. Default: 0.05 (5%). */
|
|
26653
|
+
/** Max fraction of usable context reserved for context-bound LTM system-prompt injection. Default: 0.05 (5%). */
|
|
26604
26654
|
ltm: external_exports.number().min(0.02).max(0.3).default(0.05),
|
|
26655
|
+
/** Fraction of usable context for stable LTM (preferences). Independent of `ltm`. Default: 0.02 (2%). */
|
|
26656
|
+
preferenceLtm: external_exports.number().min(0.01).max(0.1).default(0.02),
|
|
26605
26657
|
/** Per-turn cache-read cost target in dollars. Controls when layer 0 (full
|
|
26606
26658
|
* passthrough) escalates to layer 1 (compressed). The cap is derived as:
|
|
26607
26659
|
* maxLayer0Tokens = max(target / model.cost.cache.read, 40K).
|
|
@@ -26616,7 +26668,7 @@ var LoreConfig = external_exports.object({
|
|
|
26616
26668
|
targetBustCost: external_exports.number().min(0).default(1).optional(),
|
|
26617
26669
|
/** @deprecated Ignored. Tier-based bust-vs-continue replaces static cap. */
|
|
26618
26670
|
maxContextTokens: external_exports.number().min(0).optional()
|
|
26619
|
-
}).default({ distilled: 0.25, raw: 0.4, output: 0.25, ltm: 0.05, targetCacheReadCostPerTurn: 0.1 }),
|
|
26671
|
+
}).default({ distilled: 0.25, raw: 0.4, output: 0.25, ltm: 0.05, preferenceLtm: 0.02, targetCacheReadCostPerTurn: 0.1 }),
|
|
26620
26672
|
/**
|
|
26621
26673
|
* Cold-cache idle-resume handling.
|
|
26622
26674
|
*
|
|
@@ -27762,6 +27814,7 @@ __export(ltm_exports, {
|
|
|
27762
27814
|
recordDedupFeedback: () => recordDedupFeedback,
|
|
27763
27815
|
recordDedupResultFeedback: () => recordDedupResultFeedback,
|
|
27764
27816
|
remove: () => remove,
|
|
27817
|
+
rerankPreferences: () => rerankPreferences,
|
|
27765
27818
|
resolveRef: () => resolveRef2,
|
|
27766
27819
|
saveCalibratedThreshold: () => saveCalibratedThreshold,
|
|
27767
27820
|
search: () => search3,
|
|
@@ -28346,28 +28399,33 @@ function create(input) {
|
|
|
28346
28399
|
).get(pid, input.title) : db().query(
|
|
28347
28400
|
"SELECT id FROM knowledge WHERE project_id IS NULL AND LOWER(title) = LOWER(?) AND confidence > 0 LIMIT 1"
|
|
28348
28401
|
).get(input.title);
|
|
28402
|
+
const dedupUpdate = {
|
|
28403
|
+
content: input.content,
|
|
28404
|
+
...input.confidence != null ? { confidence: input.confidence } : {}
|
|
28405
|
+
};
|
|
28349
28406
|
if (existing) {
|
|
28350
|
-
update(existing.id,
|
|
28407
|
+
update(existing.id, dedupUpdate);
|
|
28351
28408
|
return existing.id;
|
|
28352
28409
|
}
|
|
28353
28410
|
const crossExisting = db().query(
|
|
28354
28411
|
"SELECT id FROM knowledge WHERE cross_project = 1 AND LOWER(title) = LOWER(?) AND confidence > 0 LIMIT 1"
|
|
28355
28412
|
).get(input.title);
|
|
28356
28413
|
if (crossExisting) {
|
|
28357
|
-
update(crossExisting.id,
|
|
28414
|
+
update(crossExisting.id, dedupUpdate);
|
|
28358
28415
|
return crossExisting.id;
|
|
28359
28416
|
}
|
|
28360
28417
|
const fuzzyMatch = findFuzzyDuplicate({ title: input.title, projectId: pid });
|
|
28361
28418
|
if (fuzzyMatch) {
|
|
28362
|
-
update(fuzzyMatch.id,
|
|
28419
|
+
update(fuzzyMatch.id, dedupUpdate);
|
|
28363
28420
|
return fuzzyMatch.id;
|
|
28364
28421
|
}
|
|
28365
28422
|
}
|
|
28366
28423
|
const id = input.id ?? uuidv72();
|
|
28367
28424
|
const now = Date.now();
|
|
28425
|
+
const confidence = input.confidence != null ? Math.max(0, Math.min(1, input.confidence)) : 1;
|
|
28368
28426
|
db().query(
|
|
28369
28427
|
`INSERT INTO knowledge (id, project_id, category, title, content, source_session, cross_project, confidence, created_at, updated_at)
|
|
28370
|
-
VALUES (?, ?, ?, ?, ?, ?, ?,
|
|
28428
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
|
28371
28429
|
).run(
|
|
28372
28430
|
id,
|
|
28373
28431
|
pid,
|
|
@@ -28376,6 +28434,7 @@ function create(input) {
|
|
|
28376
28434
|
input.content,
|
|
28377
28435
|
input.session ?? null,
|
|
28378
28436
|
crossProject2 ? 1 : 0,
|
|
28437
|
+
confidence,
|
|
28379
28438
|
now,
|
|
28380
28439
|
now
|
|
28381
28440
|
);
|
|
@@ -28526,6 +28585,24 @@ async function forSession(projectPath2, sessionID, maxTokens, options) {
|
|
|
28526
28585
|
ORDER BY confidence DESC, updated_at DESC`
|
|
28527
28586
|
).all(...categoryParams);
|
|
28528
28587
|
if (!crossEntries.length && !projectEntries.length) return [];
|
|
28588
|
+
const isPreferenceOnly = categoryFilter?.length === 1 && categoryFilter[0] === "preference";
|
|
28589
|
+
if (isPreferenceOnly) {
|
|
28590
|
+
const allPrefs = [...projectEntries, ...crossEntries];
|
|
28591
|
+
allPrefs.sort(
|
|
28592
|
+
(a, b) => a.confidence !== b.confidence ? b.confidence - a.confidence : b.updated_at - a.updated_at
|
|
28593
|
+
);
|
|
28594
|
+
const HEADER_OVERHEAD_TOKENS2 = 15;
|
|
28595
|
+
let used2 = HEADER_OVERHEAD_TOKENS2;
|
|
28596
|
+
const result2 = [];
|
|
28597
|
+
for (const entry of allPrefs) {
|
|
28598
|
+
if (used2 >= maxTokens) break;
|
|
28599
|
+
const cost = estimateTokens3(entry.title + entry.content) + 10;
|
|
28600
|
+
if (used2 + cost > maxTokens) continue;
|
|
28601
|
+
result2.push(entry);
|
|
28602
|
+
used2 += cost;
|
|
28603
|
+
}
|
|
28604
|
+
return result2;
|
|
28605
|
+
}
|
|
28529
28606
|
let sessionContext = "";
|
|
28530
28607
|
if (sessionID) {
|
|
28531
28608
|
const distRow = db().query(
|
|
@@ -28663,6 +28740,28 @@ function crossProject() {
|
|
|
28663
28740
|
ORDER BY confidence DESC, updated_at DESC`
|
|
28664
28741
|
).all();
|
|
28665
28742
|
}
|
|
28743
|
+
function rerankPreferences() {
|
|
28744
|
+
const prefs = db().query(`SELECT ${KNOWLEDGE_COLS} FROM knowledge WHERE category = 'preference' AND confidence = 1.0`).all();
|
|
28745
|
+
const STRONG_DIRECTIVE_RE = /\b(never|always|must not|must)\b/i;
|
|
28746
|
+
const EXPLICIT_PREF_RE = /\b(I (?:want|need|prefer|expect)|make sure to|don'?t forget)\b/i;
|
|
28747
|
+
let updated = 0;
|
|
28748
|
+
for (const entry of prefs) {
|
|
28749
|
+
const text4 = entry.title + " " + entry.content;
|
|
28750
|
+
let newConfidence;
|
|
28751
|
+
if (STRONG_DIRECTIVE_RE.test(text4)) {
|
|
28752
|
+
newConfidence = 1;
|
|
28753
|
+
} else if (EXPLICIT_PREF_RE.test(text4)) {
|
|
28754
|
+
newConfidence = 0.9;
|
|
28755
|
+
} else {
|
|
28756
|
+
newConfidence = 0.8;
|
|
28757
|
+
}
|
|
28758
|
+
if (newConfidence !== entry.confidence) {
|
|
28759
|
+
update(entry.id, { confidence: newConfidence });
|
|
28760
|
+
updated++;
|
|
28761
|
+
}
|
|
28762
|
+
}
|
|
28763
|
+
return updated;
|
|
28764
|
+
}
|
|
28666
28765
|
function searchLike2(input) {
|
|
28667
28766
|
const terms = input.query.toLowerCase().split(/\s+/).filter((t2) => t2.length > 2);
|
|
28668
28767
|
if (!terms.length) return [];
|
|
@@ -29955,13 +30054,20 @@ function getTier(tokens) {
|
|
|
29955
30054
|
function recordCacheUsage(cacheWrite, cacheRead, inputTokens, sessionID) {
|
|
29956
30055
|
if (!sessionID) return;
|
|
29957
30056
|
const state = getSessionState(sessionID);
|
|
29958
|
-
const total =
|
|
30057
|
+
const total = cacheWrite + cacheRead + inputTokens;
|
|
29959
30058
|
if (total > 0) {
|
|
29960
|
-
|
|
30059
|
+
const bustRatio = cacheWrite / total;
|
|
30060
|
+
const prev = state.consecutiveBusts;
|
|
30061
|
+
if (bustRatio > 0.5) {
|
|
29961
30062
|
state.consecutiveBusts++;
|
|
29962
30063
|
} else {
|
|
29963
30064
|
state.consecutiveBusts = 0;
|
|
29964
30065
|
}
|
|
30066
|
+
if (state.consecutiveBusts !== prev) {
|
|
30067
|
+
info(
|
|
30068
|
+
`bust-tracker: session=${sessionID.slice(0, 16)} ratio=${bustRatio.toFixed(3)} (write=${cacheWrite} read=${cacheRead} uncached=${inputTokens}) busts=${prev}\u2192${state.consecutiveBusts}`
|
|
30069
|
+
);
|
|
30070
|
+
}
|
|
29965
30071
|
}
|
|
29966
30072
|
}
|
|
29967
30073
|
var FIRST_TURN_OVERHEAD = 15e3;
|
|
@@ -29998,7 +30104,6 @@ function getSessionState(sessionID) {
|
|
|
29998
30104
|
state.lastLayer = persisted.lastLayer;
|
|
29999
30105
|
state.lastKnownInput = persisted.lastKnownInput;
|
|
30000
30106
|
state.lastTurnAt = persisted.lastTurnAt;
|
|
30001
|
-
state.consecutiveBusts = persisted.dynamicContextCap;
|
|
30002
30107
|
}
|
|
30003
30108
|
sessionStates.set(sessionID, state);
|
|
30004
30109
|
}
|
|
@@ -30057,6 +30162,7 @@ function getLtmBudget(ltmFraction) {
|
|
|
30057
30162
|
const usable = Math.max(0, contextLimit - outputReserved - overhead);
|
|
30058
30163
|
return Math.floor(usable * ltmFraction);
|
|
30059
30164
|
}
|
|
30165
|
+
var getPreferenceLtmBudget = getLtmBudget;
|
|
30060
30166
|
function calibrate(actualInput, sessionID, messageCount) {
|
|
30061
30167
|
const messageEstimate = sessionID ? getSessionState(sessionID).lastTransformEstimate : 0;
|
|
30062
30168
|
if (messageEstimate > 0 || actualInput === 0) {
|
|
@@ -30108,6 +30214,13 @@ function inspectSessionState(sessionID) {
|
|
|
30108
30214
|
consecutiveBusts: state.consecutiveBusts
|
|
30109
30215
|
};
|
|
30110
30216
|
}
|
|
30217
|
+
function getConsecutiveBusts(sessionID) {
|
|
30218
|
+
return sessionStates.get(sessionID)?.consecutiveBusts ?? 0;
|
|
30219
|
+
}
|
|
30220
|
+
var BUST_PRESSURE_THRESHOLD = 3;
|
|
30221
|
+
function effectiveMetaThreshold(busts, configThreshold) {
|
|
30222
|
+
return busts >= BUST_PRESSURE_THRESHOLD ? Math.max(3, Math.floor(configThreshold / 4)) : configThreshold;
|
|
30223
|
+
}
|
|
30111
30224
|
function setLastTurnAtForTest(sessionID, ms) {
|
|
30112
30225
|
getSessionState(sessionID).lastTurnAt = ms;
|
|
30113
30226
|
}
|
|
@@ -30617,7 +30730,8 @@ function transformInner(input) {
|
|
|
30617
30730
|
usable,
|
|
30618
30731
|
distilledBudget,
|
|
30619
30732
|
rawBudget,
|
|
30620
|
-
refreshLtm: false
|
|
30733
|
+
refreshLtm: false,
|
|
30734
|
+
unsustainable: sid ? getSessionState(sid).consecutiveBusts >= 5 : false
|
|
30621
30735
|
};
|
|
30622
30736
|
}
|
|
30623
30737
|
if (effectiveMinLayer === 0 && layer0Input > layer0Ceiling && layer0Input <= maxInput && sid) {
|
|
@@ -30689,7 +30803,15 @@ function transformInner(input) {
|
|
|
30689
30803
|
if (sid && (s > 0 || cached2.tokens === 0)) {
|
|
30690
30804
|
urgentDistillationMap.set(sid, true);
|
|
30691
30805
|
}
|
|
30692
|
-
return {
|
|
30806
|
+
return {
|
|
30807
|
+
...result,
|
|
30808
|
+
layer: stageLayer,
|
|
30809
|
+
usable,
|
|
30810
|
+
distilledBudget,
|
|
30811
|
+
rawBudget,
|
|
30812
|
+
refreshLtm: false,
|
|
30813
|
+
unsustainable: sid ? getSessionState(sid).consecutiveBusts >= 5 : false
|
|
30814
|
+
};
|
|
30693
30815
|
}
|
|
30694
30816
|
}
|
|
30695
30817
|
sessState.rawWindowCache = null;
|
|
@@ -31056,6 +31178,7 @@ function sliceTokens(messages, start, end) {
|
|
|
31056
31178
|
function splitSegments(messages, maxTokens) {
|
|
31057
31179
|
const totalTokens = messages.reduce((s, m) => s + m.tokens, 0);
|
|
31058
31180
|
if (totalTokens <= maxTokens) return [messages];
|
|
31181
|
+
if (messages.length <= 1) return [messages];
|
|
31059
31182
|
const splitIdx = findSplitIndex(messages, maxTokens);
|
|
31060
31183
|
const left = messages.slice(0, splitIdx);
|
|
31061
31184
|
const right = messages.slice(splitIdx);
|
|
@@ -31311,7 +31434,11 @@ async function runInner(input) {
|
|
|
31311
31434
|
}
|
|
31312
31435
|
}
|
|
31313
31436
|
}
|
|
31314
|
-
|
|
31437
|
+
const effectiveMetaThreshold2 = Math.max(
|
|
31438
|
+
2,
|
|
31439
|
+
input.metaThresholdOverride ?? cfg.distillation.metaThreshold
|
|
31440
|
+
);
|
|
31441
|
+
if (!input.skipMeta && gen0Count(input.projectPath, input.sessionID) >= effectiveMetaThreshold2) {
|
|
31315
31442
|
await metaDistillInner({
|
|
31316
31443
|
llm: input.llm,
|
|
31317
31444
|
projectPath: input.projectPath,
|
|
@@ -31690,7 +31817,8 @@ function applyOps(ops, input) {
|
|
|
31690
31817
|
content: content3,
|
|
31691
31818
|
session: input.sessionID,
|
|
31692
31819
|
scope: op.scope,
|
|
31693
|
-
crossProject: op.crossProject ?? true
|
|
31820
|
+
crossProject: op.crossProject ?? true,
|
|
31821
|
+
confidence: op.confidence
|
|
31694
31822
|
});
|
|
31695
31823
|
idsToSync.push(id);
|
|
31696
31824
|
created++;
|
|
@@ -33874,6 +34002,7 @@ function resolveWorkerModel(_providerID, configWorkerModel, configModel, costAwa
|
|
|
33874
34002
|
return configModel;
|
|
33875
34003
|
}
|
|
33876
34004
|
export {
|
|
34005
|
+
BUST_PRESSURE_THRESHOLD,
|
|
33877
34006
|
COMPACT_SUMMARY_TEMPLATE,
|
|
33878
34007
|
CONSOLIDATION_SYSTEM,
|
|
33879
34008
|
CURATOR_SYSTEM,
|
|
@@ -33902,6 +34031,7 @@ export {
|
|
|
33902
34031
|
dbPath,
|
|
33903
34032
|
distillation_exports as distillation,
|
|
33904
34033
|
distillationUser,
|
|
34034
|
+
effectiveMetaThreshold,
|
|
33905
34035
|
embedding_exports as embedding,
|
|
33906
34036
|
embedding_vendor_exports as embeddingVendor,
|
|
33907
34037
|
enableHostedMode,
|
|
@@ -33917,6 +34047,7 @@ export {
|
|
|
33917
34047
|
ftsQueryOr,
|
|
33918
34048
|
ftsQueryRelaxed,
|
|
33919
34049
|
getCachePricing,
|
|
34050
|
+
getConsecutiveBusts,
|
|
33920
34051
|
getGitRemote,
|
|
33921
34052
|
getInstanceId,
|
|
33922
34053
|
getKV,
|
|
@@ -33928,6 +34059,7 @@ export {
|
|
|
33928
34059
|
getLtmBudget,
|
|
33929
34060
|
getLtmTokens,
|
|
33930
34061
|
getMeta,
|
|
34062
|
+
getPreferenceLtmBudget,
|
|
33931
34063
|
getTier,
|
|
33932
34064
|
h,
|
|
33933
34065
|
importFromFile,
|
|
@@ -33948,6 +34080,7 @@ export {
|
|
|
33948
34080
|
loadAllSessionCosts,
|
|
33949
34081
|
loadForceMinLayer,
|
|
33950
34082
|
loadHeaderSessionIndex,
|
|
34083
|
+
loadParentChildMap,
|
|
33951
34084
|
loadSessionCosts,
|
|
33952
34085
|
loadSessionTracking,
|
|
33953
34086
|
log_exports as log,
|