@loreai/core 0.20.2 → 0.22.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/README.md +1 -1
- 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 +13 -2
- package/dist/bun/db.d.ts.map +1 -1
- package/dist/bun/distillation.d.ts.map +1 -1
- package/dist/bun/gradient.d.ts +7 -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 +156 -23
- 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 +13 -2
- package/dist/node/db.d.ts.map +1 -1
- package/dist/node/distillation.d.ts.map +1 -1
- package/dist/node/gradient.d.ts +7 -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 +156 -23
- 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 +13 -2
- package/dist/types/db.d.ts.map +1 -1
- package/dist/types/distillation.d.ts.map +1 -1
- package/dist/types/gradient.d.ts +7 -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 +66 -14
- package/src/distillation.ts +5 -0
- package/src/gradient.ts +27 -12
- package/src/index.ts +2 -0
- package/src/ltm.ts +101 -5
- package/src/prompt.ts +31 -4
package/README.md
CHANGED
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
|
@@ -74,8 +74,9 @@ export declare function setLastImportAt(projectPath: string, timestamp: number):
|
|
|
74
74
|
*/
|
|
75
75
|
export declare function loadForceMinLayer(sessionID: string): number;
|
|
76
76
|
/**
|
|
77
|
-
* Persist forceMinLayer for a session.
|
|
78
|
-
*
|
|
77
|
+
* Persist forceMinLayer for a session. Resets to 0 when consumed.
|
|
78
|
+
* Uses INSERT OR IGNORE + UPDATE to preserve sibling columns
|
|
79
|
+
* (cost, gradient, tracking) that other writers depend on.
|
|
79
80
|
*/
|
|
80
81
|
export declare function saveForceMinLayer(sessionID: string, layer: number): void;
|
|
81
82
|
/** Persisted cost snapshot for a session. */
|
|
@@ -130,6 +131,8 @@ export type SessionTrackingState = {
|
|
|
130
131
|
lastKnownInput?: number;
|
|
131
132
|
lastTurnAt?: number;
|
|
132
133
|
lastBustAt?: number;
|
|
134
|
+
parentSessionId?: string | null;
|
|
135
|
+
isSubagent?: boolean;
|
|
133
136
|
};
|
|
134
137
|
/**
|
|
135
138
|
* Persist session tracking state. Ensures the row exists, then updates
|
|
@@ -158,6 +161,8 @@ export type LoadedSessionTracking = {
|
|
|
158
161
|
lastKnownInput: number;
|
|
159
162
|
lastTurnAt: number;
|
|
160
163
|
lastBustAt: number;
|
|
164
|
+
parentSessionId: string | null;
|
|
165
|
+
isSubagent: boolean;
|
|
161
166
|
};
|
|
162
167
|
/**
|
|
163
168
|
* Load persisted session tracking state. Returns null if no row exists.
|
|
@@ -177,6 +182,12 @@ export declare function loadHeaderSessionIndex(): Array<{
|
|
|
177
182
|
headerSessionId: string;
|
|
178
183
|
headerName: string;
|
|
179
184
|
}>;
|
|
185
|
+
/**
|
|
186
|
+
* Load parent→child session mappings from the DB.
|
|
187
|
+
* Returns a map: childSessionId → parentSessionId (Lore internal IDs).
|
|
188
|
+
* Used by the dashboard to build session trees.
|
|
189
|
+
*/
|
|
190
|
+
export declare function loadParentChildMap(): Map<string, string>;
|
|
180
191
|
/** Get a kv_meta value by key. Returns null if not found. */
|
|
181
192
|
export declare function getKV(key: string): string | null;
|
|
182
193
|
/** 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":"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"}
|
|
@@ -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
|
/**
|
|
@@ -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, getConsecutiveBusts, BUST_PRESSURE_THRESHOLD, effectiveMetaThreshold, } 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":"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"}
|
|
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() {
|
|
@@ -1022,13 +1033,11 @@ function loadForceMinLayer(sessionID) {
|
|
|
1022
1033
|
return row?.force_min_layer ?? 0;
|
|
1023
1034
|
}
|
|
1024
1035
|
function saveForceMinLayer(sessionID, layer) {
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
).run(sessionID, layer, Date.now());
|
|
1031
|
-
}
|
|
1036
|
+
const now = Date.now();
|
|
1037
|
+
db().query(
|
|
1038
|
+
"INSERT OR IGNORE INTO session_state (session_id, force_min_layer, updated_at) VALUES (?, 0, ?)"
|
|
1039
|
+
).run(sessionID, now);
|
|
1040
|
+
db().query("UPDATE session_state SET force_min_layer = ?, updated_at = ? WHERE session_id = ?").run(layer, now, sessionID);
|
|
1032
1041
|
}
|
|
1033
1042
|
function saveSessionCosts(sessionID, costs) {
|
|
1034
1043
|
db().query(
|
|
@@ -1209,6 +1218,14 @@ function saveSessionTracking(sessionID, state) {
|
|
|
1209
1218
|
sets.push("last_bust_at = ?");
|
|
1210
1219
|
vals.push(state.lastBustAt);
|
|
1211
1220
|
}
|
|
1221
|
+
if (state.parentSessionId !== void 0) {
|
|
1222
|
+
sets.push("parent_session_id = ?");
|
|
1223
|
+
vals.push(state.parentSessionId);
|
|
1224
|
+
}
|
|
1225
|
+
if (state.isSubagent !== void 0) {
|
|
1226
|
+
sets.push("is_subagent = ?");
|
|
1227
|
+
vals.push(state.isSubagent ? 1 : 0);
|
|
1228
|
+
}
|
|
1212
1229
|
db().query(
|
|
1213
1230
|
"UPDATE session_state SET " + sets.join(", ") + " WHERE session_id = ?"
|
|
1214
1231
|
).run(...vals, sessionID);
|
|
@@ -1221,7 +1238,8 @@ function loadSessionTracking(sessionID) {
|
|
|
1221
1238
|
fingerprint, header_session_id, header_name,
|
|
1222
1239
|
resolved_conversation_ttl, warmup_state,
|
|
1223
1240
|
dynamic_context_cap, bust_rate_ema, inter_bust_interval_ema,
|
|
1224
|
-
last_layer, last_known_input, last_turn_at, last_bust_at
|
|
1241
|
+
last_layer, last_known_input, last_turn_at, last_bust_at,
|
|
1242
|
+
parent_session_id, is_subagent
|
|
1225
1243
|
FROM session_state WHERE session_id = ?`
|
|
1226
1244
|
).get(sessionID);
|
|
1227
1245
|
if (!row) return null;
|
|
@@ -1245,7 +1263,9 @@ function loadSessionTracking(sessionID) {
|
|
|
1245
1263
|
lastLayer: row.last_layer,
|
|
1246
1264
|
lastKnownInput: row.last_known_input,
|
|
1247
1265
|
lastTurnAt: row.last_turn_at,
|
|
1248
|
-
lastBustAt: row.last_bust_at
|
|
1266
|
+
lastBustAt: row.last_bust_at,
|
|
1267
|
+
parentSessionId: row.parent_session_id,
|
|
1268
|
+
isSubagent: row.is_subagent === 1
|
|
1249
1269
|
};
|
|
1250
1270
|
}
|
|
1251
1271
|
function loadHeaderSessionIndex() {
|
|
@@ -1260,6 +1280,18 @@ function loadHeaderSessionIndex() {
|
|
|
1260
1280
|
headerName: row.header_name
|
|
1261
1281
|
}));
|
|
1262
1282
|
}
|
|
1283
|
+
function loadParentChildMap() {
|
|
1284
|
+
const rows = db().query(
|
|
1285
|
+
`SELECT session_id, parent_session_id
|
|
1286
|
+
FROM session_state
|
|
1287
|
+
WHERE parent_session_id IS NOT NULL`
|
|
1288
|
+
).all();
|
|
1289
|
+
const map5 = /* @__PURE__ */ new Map();
|
|
1290
|
+
for (const row of rows) {
|
|
1291
|
+
map5.set(row.session_id, row.parent_session_id);
|
|
1292
|
+
}
|
|
1293
|
+
return map5;
|
|
1294
|
+
}
|
|
1263
1295
|
function getKV(key) {
|
|
1264
1296
|
const row = db().query("SELECT value FROM kv_meta WHERE key = ?").get(key);
|
|
1265
1297
|
return row?.value ?? null;
|
|
@@ -12228,7 +12260,9 @@ var CURATOR_SYSTEM = `You are a long-term memory curator. Your job is to extract
|
|
|
12228
12260
|
Focus ONLY on knowledge that helps a coding agent work effectively on THIS codebase:
|
|
12229
12261
|
- Architectural decisions and their rationale (why something was built a certain way)
|
|
12230
12262
|
- Non-obvious implementation patterns and conventions specific to the project
|
|
12231
|
-
- Recurring gotchas, constraints, or traps in the codebase
|
|
12263
|
+
- Recurring gotchas, constraints, or traps in the codebase \u2014 always include WHY the
|
|
12264
|
+
wrong approach seems right, not just the trap and fix. Without this, a future session
|
|
12265
|
+
will re-propose the broken approach because it looks like a reasonable improvement.
|
|
12232
12266
|
- Environment/tooling setup details that affect development
|
|
12233
12267
|
- Important relationships between components that aren't obvious from reading the code
|
|
12234
12268
|
- User preferences and working style specific to how they use this project
|
|
@@ -12247,10 +12281,19 @@ Do NOT extract:
|
|
|
12247
12281
|
- Knowledge about unrelated projects or repositories unless explicitly cross-project
|
|
12248
12282
|
- Restatements of what the code obviously does (e.g. "the auth module handles authentication")
|
|
12249
12283
|
|
|
12284
|
+
INCLUDE THE "WHY" \u2014 decisions and gotchas without rationale get undone:
|
|
12285
|
+
- Every "decision" MUST include the rejected alternative and why it was rejected.
|
|
12286
|
+
Format: "Chose X over Y because Z." Without the rejected option, a future session
|
|
12287
|
+
will re-propose Y because it looks like a reasonable improvement.
|
|
12288
|
+
- Every "gotcha" MUST explain why the wrong approach seems correct, not just the trap
|
|
12289
|
+
and its fix. Format: "Trap: X looks right because [reason]. Fix: Y, because [reason]."
|
|
12290
|
+
- Any standard or rule without its rationale is vulnerable to being optimized away by
|
|
12291
|
+
a session that doesn't know what problem it was solving.
|
|
12292
|
+
|
|
12250
12293
|
BREVITY IS CRITICAL \u2014 each entry must be concise:
|
|
12251
12294
|
- content MUST be under 150 words (~600 characters). Capture ONE specific actionable
|
|
12252
12295
|
insight in 2-3 sentences. Prefer terse technical language.
|
|
12253
|
-
- Each "gotcha": one specific trap + its fix in
|
|
12296
|
+
- Each "gotcha": one specific trap + WHY it looks right + its fix in 2-3 sentences
|
|
12254
12297
|
- Each "architecture": one design decision and its key constraint
|
|
12255
12298
|
- Focus on the actionable insight, not the full story behind it
|
|
12256
12299
|
- If a pattern requires more detail, split into multiple focused entries (each under 150 words)
|
|
@@ -12276,6 +12319,20 @@ crossProject flag:
|
|
|
12276
12319
|
- Default is true \u2014 most useful knowledge is worth sharing across projects
|
|
12277
12320
|
- 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
12321
|
|
|
12322
|
+
Confidence values (0.0\u20131.0) \u2014 determines injection priority when budget is tight:
|
|
12323
|
+
- 1.0: Unconditional directive \u2014 user used "NEVER", "ALWAYS", "from now on", or similarly
|
|
12324
|
+
absolute language. These must always be respected regardless of context.
|
|
12325
|
+
- 0.9: Strong preference \u2014 explicit user preference ("I prefer", "I want", "make sure to",
|
|
12326
|
+
"don't forget to"). Clear intent but not absolute.
|
|
12327
|
+
- 0.8: Moderate preference \u2014 inferred from repeated user behavior or gentle correction across
|
|
12328
|
+
sessions. Not explicitly stated as a rule.
|
|
12329
|
+
- 0.6: Mild/contextual preference \u2014 may not apply universally. Observed once or context-dependent.
|
|
12330
|
+
- For non-preference categories (gotcha, pattern, architecture, decision), confidence reflects
|
|
12331
|
+
how well-established the knowledge is: 1.0 = verified/confirmed, 0.8 = high confidence,
|
|
12332
|
+
0.6 = probable but unverified.
|
|
12333
|
+
- Default to 1.0 for preferences with strong directive language, 0.8 for other preferences.
|
|
12334
|
+
- Always set confidence on create ops \u2014 it determines injection priority.
|
|
12335
|
+
|
|
12279
12336
|
Produce a JSON array of operations:
|
|
12280
12337
|
[
|
|
12281
12338
|
{
|
|
@@ -12284,7 +12341,8 @@ Produce a JSON array of operations:
|
|
|
12284
12341
|
"title": "Short descriptive title",
|
|
12285
12342
|
"content": "Concise knowledge entry \u2014 under 150 words",
|
|
12286
12343
|
"scope": "project" | "global",
|
|
12287
|
-
"crossProject": true
|
|
12344
|
+
"crossProject": true,
|
|
12345
|
+
"confidence": 1.0
|
|
12288
12346
|
},
|
|
12289
12347
|
{
|
|
12290
12348
|
"op": "update",
|
|
@@ -12322,7 +12380,8 @@ IMPORTANT:
|
|
|
12322
12380
|
4. Only create a new entry for genuinely distinct knowledge with no existing home.
|
|
12323
12381
|
5. Keep all entries under 150 words. If an existing entry is too long, use an update op to trim it.
|
|
12324
12382
|
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
|
|
12383
|
+
These are strong signals for "preference" entries with high confidence (1.0 for absolute
|
|
12384
|
+
directives like "never"/"always", 0.9 for explicit preferences like "I prefer").`;
|
|
12326
12385
|
}
|
|
12327
12386
|
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
12387
|
|
|
@@ -26600,8 +26659,10 @@ var LoreConfig = external_exports.object({
|
|
|
26600
26659
|
distilled: external_exports.number().min(0.05).max(0.5).default(0.25),
|
|
26601
26660
|
raw: external_exports.number().min(0.1).max(0.7).default(0.4),
|
|
26602
26661
|
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%). */
|
|
26662
|
+
/** Max fraction of usable context reserved for context-bound LTM system-prompt injection. Default: 0.05 (5%). */
|
|
26604
26663
|
ltm: external_exports.number().min(0.02).max(0.3).default(0.05),
|
|
26664
|
+
/** Fraction of usable context for stable LTM (preferences). Independent of `ltm`. Default: 0.02 (2%). */
|
|
26665
|
+
preferenceLtm: external_exports.number().min(0.01).max(0.1).default(0.02),
|
|
26605
26666
|
/** Per-turn cache-read cost target in dollars. Controls when layer 0 (full
|
|
26606
26667
|
* passthrough) escalates to layer 1 (compressed). The cap is derived as:
|
|
26607
26668
|
* maxLayer0Tokens = max(target / model.cost.cache.read, 40K).
|
|
@@ -26616,7 +26677,7 @@ var LoreConfig = external_exports.object({
|
|
|
26616
26677
|
targetBustCost: external_exports.number().min(0).default(1).optional(),
|
|
26617
26678
|
/** @deprecated Ignored. Tier-based bust-vs-continue replaces static cap. */
|
|
26618
26679
|
maxContextTokens: external_exports.number().min(0).optional()
|
|
26619
|
-
}).default({ distilled: 0.25, raw: 0.4, output: 0.25, ltm: 0.05, targetCacheReadCostPerTurn: 0.1 }),
|
|
26680
|
+
}).default({ distilled: 0.25, raw: 0.4, output: 0.25, ltm: 0.05, preferenceLtm: 0.02, targetCacheReadCostPerTurn: 0.1 }),
|
|
26620
26681
|
/**
|
|
26621
26682
|
* Cold-cache idle-resume handling.
|
|
26622
26683
|
*
|
|
@@ -27762,6 +27823,7 @@ __export(ltm_exports, {
|
|
|
27762
27823
|
recordDedupFeedback: () => recordDedupFeedback,
|
|
27763
27824
|
recordDedupResultFeedback: () => recordDedupResultFeedback,
|
|
27764
27825
|
remove: () => remove,
|
|
27826
|
+
rerankPreferences: () => rerankPreferences,
|
|
27765
27827
|
resolveRef: () => resolveRef2,
|
|
27766
27828
|
saveCalibratedThreshold: () => saveCalibratedThreshold,
|
|
27767
27829
|
search: () => search3,
|
|
@@ -28346,28 +28408,33 @@ function create(input) {
|
|
|
28346
28408
|
).get(pid, input.title) : db().query(
|
|
28347
28409
|
"SELECT id FROM knowledge WHERE project_id IS NULL AND LOWER(title) = LOWER(?) AND confidence > 0 LIMIT 1"
|
|
28348
28410
|
).get(input.title);
|
|
28411
|
+
const dedupUpdate = {
|
|
28412
|
+
content: input.content,
|
|
28413
|
+
...input.confidence != null ? { confidence: input.confidence } : {}
|
|
28414
|
+
};
|
|
28349
28415
|
if (existing) {
|
|
28350
|
-
update(existing.id,
|
|
28416
|
+
update(existing.id, dedupUpdate);
|
|
28351
28417
|
return existing.id;
|
|
28352
28418
|
}
|
|
28353
28419
|
const crossExisting = db().query(
|
|
28354
28420
|
"SELECT id FROM knowledge WHERE cross_project = 1 AND LOWER(title) = LOWER(?) AND confidence > 0 LIMIT 1"
|
|
28355
28421
|
).get(input.title);
|
|
28356
28422
|
if (crossExisting) {
|
|
28357
|
-
update(crossExisting.id,
|
|
28423
|
+
update(crossExisting.id, dedupUpdate);
|
|
28358
28424
|
return crossExisting.id;
|
|
28359
28425
|
}
|
|
28360
28426
|
const fuzzyMatch = findFuzzyDuplicate({ title: input.title, projectId: pid });
|
|
28361
28427
|
if (fuzzyMatch) {
|
|
28362
|
-
update(fuzzyMatch.id,
|
|
28428
|
+
update(fuzzyMatch.id, dedupUpdate);
|
|
28363
28429
|
return fuzzyMatch.id;
|
|
28364
28430
|
}
|
|
28365
28431
|
}
|
|
28366
28432
|
const id = input.id ?? uuidv72();
|
|
28367
28433
|
const now = Date.now();
|
|
28434
|
+
const confidence = input.confidence != null ? Math.max(0, Math.min(1, input.confidence)) : 1;
|
|
28368
28435
|
db().query(
|
|
28369
28436
|
`INSERT INTO knowledge (id, project_id, category, title, content, source_session, cross_project, confidence, created_at, updated_at)
|
|
28370
|
-
VALUES (?, ?, ?, ?, ?, ?, ?,
|
|
28437
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`
|
|
28371
28438
|
).run(
|
|
28372
28439
|
id,
|
|
28373
28440
|
pid,
|
|
@@ -28376,6 +28443,7 @@ function create(input) {
|
|
|
28376
28443
|
input.content,
|
|
28377
28444
|
input.session ?? null,
|
|
28378
28445
|
crossProject2 ? 1 : 0,
|
|
28446
|
+
confidence,
|
|
28379
28447
|
now,
|
|
28380
28448
|
now
|
|
28381
28449
|
);
|
|
@@ -28526,6 +28594,24 @@ async function forSession(projectPath2, sessionID, maxTokens, options) {
|
|
|
28526
28594
|
ORDER BY confidence DESC, updated_at DESC`
|
|
28527
28595
|
).all(...categoryParams);
|
|
28528
28596
|
if (!crossEntries.length && !projectEntries.length) return [];
|
|
28597
|
+
const isPreferenceOnly = categoryFilter?.length === 1 && categoryFilter[0] === "preference";
|
|
28598
|
+
if (isPreferenceOnly) {
|
|
28599
|
+
const allPrefs = [...projectEntries, ...crossEntries];
|
|
28600
|
+
allPrefs.sort(
|
|
28601
|
+
(a, b) => a.confidence !== b.confidence ? b.confidence - a.confidence : b.updated_at - a.updated_at
|
|
28602
|
+
);
|
|
28603
|
+
const HEADER_OVERHEAD_TOKENS2 = 15;
|
|
28604
|
+
let used2 = HEADER_OVERHEAD_TOKENS2;
|
|
28605
|
+
const result2 = [];
|
|
28606
|
+
for (const entry of allPrefs) {
|
|
28607
|
+
if (used2 >= maxTokens) break;
|
|
28608
|
+
const cost = estimateTokens3(entry.title + entry.content) + 10;
|
|
28609
|
+
if (used2 + cost > maxTokens) continue;
|
|
28610
|
+
result2.push(entry);
|
|
28611
|
+
used2 += cost;
|
|
28612
|
+
}
|
|
28613
|
+
return result2;
|
|
28614
|
+
}
|
|
28529
28615
|
let sessionContext = "";
|
|
28530
28616
|
if (sessionID) {
|
|
28531
28617
|
const distRow = db().query(
|
|
@@ -28598,10 +28684,24 @@ async function forSession(projectPath2, sessionID, maxTokens, options) {
|
|
|
28598
28684
|
const allScored = [...scoredProject, ...scoredCross];
|
|
28599
28685
|
allScored.sort((a, b) => b.score - a.score);
|
|
28600
28686
|
const HEADER_OVERHEAD_TOKENS = 15;
|
|
28687
|
+
const ARCH_BUDGET_FRACTION = 0.2;
|
|
28601
28688
|
let used = HEADER_OVERHEAD_TOKENS;
|
|
28602
28689
|
const result = [];
|
|
28690
|
+
const packedIds = /* @__PURE__ */ new Set();
|
|
28691
|
+
const archBudget = Math.floor(maxTokens * ARCH_BUDGET_FRACTION);
|
|
28692
|
+
const archEntries = allScored.filter((s) => s.entry.category === "architecture");
|
|
28693
|
+
archEntries.sort((a, b) => b.score - a.score);
|
|
28694
|
+
for (const { entry } of archEntries) {
|
|
28695
|
+
if (used >= archBudget + HEADER_OVERHEAD_TOKENS) break;
|
|
28696
|
+
const cost = estimateTokens3(entry.title + entry.content) + 10;
|
|
28697
|
+
if (used + cost > maxTokens) continue;
|
|
28698
|
+
result.push(entry);
|
|
28699
|
+
packedIds.add(entry.id);
|
|
28700
|
+
used += cost;
|
|
28701
|
+
}
|
|
28603
28702
|
for (const { entry } of allScored) {
|
|
28604
28703
|
if (used >= maxTokens) break;
|
|
28704
|
+
if (packedIds.has(entry.id)) continue;
|
|
28605
28705
|
const cost = estimateTokens3(entry.title + entry.content) + 10;
|
|
28606
28706
|
if (used + cost > maxTokens) continue;
|
|
28607
28707
|
result.push(entry);
|
|
@@ -28663,6 +28763,28 @@ function crossProject() {
|
|
|
28663
28763
|
ORDER BY confidence DESC, updated_at DESC`
|
|
28664
28764
|
).all();
|
|
28665
28765
|
}
|
|
28766
|
+
function rerankPreferences() {
|
|
28767
|
+
const prefs = db().query(`SELECT ${KNOWLEDGE_COLS} FROM knowledge WHERE category = 'preference' AND confidence = 1.0`).all();
|
|
28768
|
+
const STRONG_DIRECTIVE_RE = /\b(never|always|must not|must)\b/i;
|
|
28769
|
+
const EXPLICIT_PREF_RE = /\b(I (?:want|need|prefer|expect)|make sure to|don'?t forget)\b/i;
|
|
28770
|
+
let updated = 0;
|
|
28771
|
+
for (const entry of prefs) {
|
|
28772
|
+
const text4 = entry.title + " " + entry.content;
|
|
28773
|
+
let newConfidence;
|
|
28774
|
+
if (STRONG_DIRECTIVE_RE.test(text4)) {
|
|
28775
|
+
newConfidence = 1;
|
|
28776
|
+
} else if (EXPLICIT_PREF_RE.test(text4)) {
|
|
28777
|
+
newConfidence = 0.9;
|
|
28778
|
+
} else {
|
|
28779
|
+
newConfidence = 0.8;
|
|
28780
|
+
}
|
|
28781
|
+
if (newConfidence !== entry.confidence) {
|
|
28782
|
+
update(entry.id, { confidence: newConfidence });
|
|
28783
|
+
updated++;
|
|
28784
|
+
}
|
|
28785
|
+
}
|
|
28786
|
+
return updated;
|
|
28787
|
+
}
|
|
28666
28788
|
function searchLike2(input) {
|
|
28667
28789
|
const terms = input.query.toLowerCase().split(/\s+/).filter((t2) => t2.length > 2);
|
|
28668
28790
|
if (!terms.length) return [];
|
|
@@ -29955,13 +30077,20 @@ function getTier(tokens) {
|
|
|
29955
30077
|
function recordCacheUsage(cacheWrite, cacheRead, inputTokens, sessionID) {
|
|
29956
30078
|
if (!sessionID) return;
|
|
29957
30079
|
const state = getSessionState(sessionID);
|
|
29958
|
-
const total =
|
|
30080
|
+
const total = cacheWrite + cacheRead + inputTokens;
|
|
29959
30081
|
if (total > 0) {
|
|
29960
|
-
|
|
30082
|
+
const bustRatio = cacheWrite / total;
|
|
30083
|
+
const prev = state.consecutiveBusts;
|
|
30084
|
+
if (bustRatio > 0.5) {
|
|
29961
30085
|
state.consecutiveBusts++;
|
|
29962
30086
|
} else {
|
|
29963
30087
|
state.consecutiveBusts = 0;
|
|
29964
30088
|
}
|
|
30089
|
+
if (state.consecutiveBusts !== prev) {
|
|
30090
|
+
info(
|
|
30091
|
+
`bust-tracker: session=${sessionID.slice(0, 16)} ratio=${bustRatio.toFixed(3)} (write=${cacheWrite} read=${cacheRead} uncached=${inputTokens}) busts=${prev}\u2192${state.consecutiveBusts}`
|
|
30092
|
+
);
|
|
30093
|
+
}
|
|
29965
30094
|
}
|
|
29966
30095
|
}
|
|
29967
30096
|
var FIRST_TURN_OVERHEAD = 15e3;
|
|
@@ -29998,7 +30127,6 @@ function getSessionState(sessionID) {
|
|
|
29998
30127
|
state.lastLayer = persisted.lastLayer;
|
|
29999
30128
|
state.lastKnownInput = persisted.lastKnownInput;
|
|
30000
30129
|
state.lastTurnAt = persisted.lastTurnAt;
|
|
30001
|
-
state.consecutiveBusts = persisted.dynamicContextCap;
|
|
30002
30130
|
}
|
|
30003
30131
|
sessionStates.set(sessionID, state);
|
|
30004
30132
|
}
|
|
@@ -30057,6 +30185,7 @@ function getLtmBudget(ltmFraction) {
|
|
|
30057
30185
|
const usable = Math.max(0, contextLimit - outputReserved - overhead);
|
|
30058
30186
|
return Math.floor(usable * ltmFraction);
|
|
30059
30187
|
}
|
|
30188
|
+
var getPreferenceLtmBudget = getLtmBudget;
|
|
30060
30189
|
function calibrate(actualInput, sessionID, messageCount) {
|
|
30061
30190
|
const messageEstimate = sessionID ? getSessionState(sessionID).lastTransformEstimate : 0;
|
|
30062
30191
|
if (messageEstimate > 0 || actualInput === 0) {
|
|
@@ -31072,6 +31201,7 @@ function sliceTokens(messages, start, end) {
|
|
|
31072
31201
|
function splitSegments(messages, maxTokens) {
|
|
31073
31202
|
const totalTokens = messages.reduce((s, m) => s + m.tokens, 0);
|
|
31074
31203
|
if (totalTokens <= maxTokens) return [messages];
|
|
31204
|
+
if (messages.length <= 1) return [messages];
|
|
31075
31205
|
const splitIdx = findSplitIndex(messages, maxTokens);
|
|
31076
31206
|
const left = messages.slice(0, splitIdx);
|
|
31077
31207
|
const right = messages.slice(splitIdx);
|
|
@@ -31710,7 +31840,8 @@ function applyOps(ops, input) {
|
|
|
31710
31840
|
content: content3,
|
|
31711
31841
|
session: input.sessionID,
|
|
31712
31842
|
scope: op.scope,
|
|
31713
|
-
crossProject: op.crossProject ?? true
|
|
31843
|
+
crossProject: op.crossProject ?? true,
|
|
31844
|
+
confidence: op.confidence
|
|
31714
31845
|
});
|
|
31715
31846
|
idsToSync.push(id);
|
|
31716
31847
|
created++;
|
|
@@ -33951,6 +34082,7 @@ export {
|
|
|
33951
34082
|
getLtmBudget,
|
|
33952
34083
|
getLtmTokens,
|
|
33953
34084
|
getMeta,
|
|
34085
|
+
getPreferenceLtmBudget,
|
|
33954
34086
|
getTier,
|
|
33955
34087
|
h,
|
|
33956
34088
|
importFromFile,
|
|
@@ -33971,6 +34103,7 @@ export {
|
|
|
33971
34103
|
loadAllSessionCosts,
|
|
33972
34104
|
loadForceMinLayer,
|
|
33973
34105
|
loadHeaderSessionIndex,
|
|
34106
|
+
loadParentChildMap,
|
|
33974
34107
|
loadSessionCosts,
|
|
33975
34108
|
loadSessionTracking,
|
|
33976
34109
|
log_exports as log,
|