@cortexkit/pi-magic-context 0.49.31 → 0.49.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auto-search-worker.js +4 -4
- package/dist/chunk-embedding-write-worker.js +4 -4
- package/dist/{compartment-chunk-embedding-pkk5beqp.js → compartment-chunk-embedding-8c85ebce.js} +1 -1
- package/dist/{embedding-backfill-v83xh6e8.js → embedding-backfill-rwfmyvze.js} +3 -3
- package/dist/{index-kmk3xpf9.js → index-0gymvr5j.js} +47 -7
- package/dist/{index-34e3mm36.js → index-87xkw8xm.js} +6 -4
- package/dist/{index-4nny4r40.js → index-9xd7qveg.js} +1 -1
- package/dist/{index-g026ztby.js → index-c474g0gj.js} +4 -18
- package/dist/{index-sr1ss4f8.js → index-d5q1q700.js} +1 -1
- package/dist/{index-v40sm8q6.js → index-drmr22ac.js} +3 -3
- package/dist/{index-bpd654bz.js → index-e59j3yq5.js} +414 -11
- package/dist/{index-0x1c054v.js → index-eqw9t2ty.js} +1 -1
- package/dist/{index-2nryd8ye.js → index-k5ya5k8r.js} +16 -12
- package/dist/index-nrzkqte4.js +18 -0
- package/dist/{index-0s14xaca.js → index-pb3ea2tq.js} +1 -1
- package/dist/{index-xvqcqg0r.js → index-r9y6tbbm.js} +6 -4
- package/dist/{index-yddeb86g.js → index-wpazxe9x.js} +64 -3
- package/dist/{index-0jykn0dw.js → index-xn5yh0pn.js} +65 -2
- package/dist/index.js +85 -314
- package/dist/{message-index-bounded-7aw556kv.js → message-index-bounded-n30vk21s.js} +4 -4
- package/dist/migration-worker.js +6 -5
- package/dist/{project-embedding-registry-wwbhm9rf.js → project-embedding-registry-acqb6be4.js} +2 -2
- package/dist/raw-ordinal-warmup-worker.js +3 -3
- package/dist/{read-session-chunk-xrymr0pp.js → read-session-chunk-ka6dhc77.js} +3 -3
- package/dist/{search-archive-5tmg1jyb.js → search-archive-msy2bczx.js} +4 -4
- package/dist/{search-dcdmpc62.js → search-qbxrnnjb.js} +9 -9
- package/dist/{storage-tags-9qaasrky.js → storage-tags-6409qq18.js} +2 -2
- package/dist/subagent-entry.js +12 -12
- package/dist/tag-snapshot-worker-pi.js +5 -5
- package/package.json +1 -1
|
@@ -41,19 +41,21 @@ import {
|
|
|
41
41
|
hasPendingMigrations,
|
|
42
42
|
getMainThreadMigrationBodyCount,
|
|
43
43
|
runMigrations
|
|
44
|
-
} from "./index-
|
|
44
|
+
} from "./index-pb3ea2tq.js";
|
|
45
45
|
import {
|
|
46
|
-
closeQuietly,
|
|
47
46
|
ensureColumn,
|
|
48
47
|
installV95PerfSchema,
|
|
49
48
|
installTagIdentityRevisionTrigger
|
|
50
|
-
} from "./index-
|
|
49
|
+
} from "./index-c474g0gj.js";
|
|
51
50
|
import {
|
|
52
51
|
resolveOpenCodeDbPath,
|
|
53
52
|
hasV1MessageTables,
|
|
54
53
|
setDatabase,
|
|
55
54
|
loadToolDefinitionMeasurements
|
|
56
55
|
} from "./index-23t8ryqw.js";
|
|
56
|
+
import {
|
|
57
|
+
closeQuietly
|
|
58
|
+
} from "./index-nrzkqte4.js";
|
|
57
59
|
import {
|
|
58
60
|
logSlowWriteTransaction
|
|
59
61
|
} from "./index-hqw0rt9k.js";
|
|
@@ -2003,7 +2005,7 @@ function finishDatabaseOpen(db, dbPath, explicitDbPath, latestSupportedVersion)
|
|
|
2003
2005
|
state.running = startMessageFtsRowidMapBackfill2(db, signal).then(async () => {
|
|
2004
2006
|
if (signal.aborted || !readsOpenCodeStore)
|
|
2005
2007
|
return;
|
|
2006
|
-
const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-
|
|
2008
|
+
const { readRawSessionMessagePage, readRawSessionMessages } = await importPluginModule(() => import("./read-session-chunk-ka6dhc77.js"));
|
|
2007
2009
|
const { startMessageTimeBackfill } = await importPluginModule(() => import("./message-time-backfill-e3r8ddh1.js"));
|
|
2008
2010
|
if (signal.aborted)
|
|
2009
2011
|
return;
|
|
@@ -9,11 +9,12 @@ import {
|
|
|
9
9
|
} from "./index-my0dn413.js";
|
|
10
10
|
import {
|
|
11
11
|
cleanUserText2
|
|
12
|
-
} from "./index-
|
|
12
|
+
} from "./index-87xkw8xm.js";
|
|
13
13
|
import {
|
|
14
14
|
recordMessageFtsRowid2,
|
|
15
15
|
recordIndexedMessageTime2,
|
|
16
|
-
messageFtsOrdinalRangeIsMapped2
|
|
16
|
+
messageFtsOrdinalRangeIsMapped2,
|
|
17
|
+
deleteUnmappedMessageFtsRows2
|
|
17
18
|
} from "./index-bvpar0bg.js";
|
|
18
19
|
import {
|
|
19
20
|
logSlowWriteTransaction
|
|
@@ -120,6 +121,14 @@ function skipStatement(db, sql) {
|
|
|
120
121
|
return statement;
|
|
121
122
|
}
|
|
122
123
|
var messageIndexSkipKey = (sessionId, messageId) => `message_index_skip:${JSON.stringify([sessionId, messageId])}`;
|
|
124
|
+
function deleteMessageIndexSkips(db, sessionId, messageId) {
|
|
125
|
+
if (messageId !== undefined) {
|
|
126
|
+
skipStatement(db, "DELETE FROM schema_migrations_meta WHERE key=?").run(messageIndexSkipKey(sessionId, messageId));
|
|
127
|
+
} else {
|
|
128
|
+
const prefix = `message_index_skip:${JSON.stringify([sessionId]).slice(0, -1)},`;
|
|
129
|
+
skipStatement(db, "DELETE FROM schema_migrations_meta WHERE substr(key,1,length(?))=?").run(prefix, prefix);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
123
132
|
function normalizeIndexText(text) {
|
|
124
133
|
return text.replace(/\s+/g, " ").trim();
|
|
125
134
|
}
|
|
@@ -155,6 +164,17 @@ function getUpsertDirtyFloorStatement(db) {
|
|
|
155
164
|
}
|
|
156
165
|
return stmt;
|
|
157
166
|
}
|
|
167
|
+
function getDeleteFtsStatement(db) {
|
|
168
|
+
let stmt = deleteFtsStatements.get(db);
|
|
169
|
+
if (!stmt) {
|
|
170
|
+
stmt = db.prepare(`DELETE FROM message_history_fts
|
|
171
|
+
WHERE rowid IN (
|
|
172
|
+
SELECT fts_rowid FROM message_fts_rowid_map WHERE session_id = ?
|
|
173
|
+
)`);
|
|
174
|
+
deleteFtsStatements.set(db, stmt);
|
|
175
|
+
}
|
|
176
|
+
return stmt;
|
|
177
|
+
}
|
|
158
178
|
function getDeleteFtsRangeStatement(db) {
|
|
159
179
|
let stmt = deleteFtsRangeStatements.get(db);
|
|
160
180
|
if (!stmt) {
|
|
@@ -168,6 +188,14 @@ function getDeleteFtsRangeStatement(db) {
|
|
|
168
188
|
}
|
|
169
189
|
return stmt;
|
|
170
190
|
}
|
|
191
|
+
function getDeleteIndexStatement(db) {
|
|
192
|
+
let stmt = deleteIndexStatements.get(db);
|
|
193
|
+
if (!stmt) {
|
|
194
|
+
stmt = db.prepare("DELETE FROM message_history_index WHERE session_id = ?");
|
|
195
|
+
deleteIndexStatements.set(db, stmt);
|
|
196
|
+
}
|
|
197
|
+
return stmt;
|
|
198
|
+
}
|
|
171
199
|
function getCountIndexedMessageStatement(db) {
|
|
172
200
|
let stmt = countIndexedMessageStatements.get(db);
|
|
173
201
|
if (!stmt) {
|
|
@@ -207,6 +235,14 @@ function getUpsertMessageSourceStatement(db) {
|
|
|
207
235
|
}
|
|
208
236
|
return stmt;
|
|
209
237
|
}
|
|
238
|
+
function getDeleteMessageSourceStatement(db) {
|
|
239
|
+
let stmt = deleteMessageSourceStatements.get(db);
|
|
240
|
+
if (!stmt) {
|
|
241
|
+
stmt = db.prepare("DELETE FROM message_history_source WHERE session_id = ?");
|
|
242
|
+
deleteMessageSourceStatements.set(db, stmt);
|
|
243
|
+
}
|
|
244
|
+
return stmt;
|
|
245
|
+
}
|
|
210
246
|
function getDeleteMessageSourceRangeStatement(db) {
|
|
211
247
|
let stmt = deleteMessageSourceRangeStatements.get(db);
|
|
212
248
|
if (!stmt) {
|
|
@@ -231,6 +267,14 @@ function getDeleteMessageFtsStatement(db) {
|
|
|
231
267
|
}
|
|
232
268
|
return stmt;
|
|
233
269
|
}
|
|
270
|
+
function getDeleteFtsMapStatement(db) {
|
|
271
|
+
let stmt = deleteFtsMapStatements.get(db);
|
|
272
|
+
if (!stmt) {
|
|
273
|
+
stmt = db.prepare("DELETE FROM message_fts_rowid_map WHERE session_id = ?");
|
|
274
|
+
deleteFtsMapStatements.set(db, stmt);
|
|
275
|
+
}
|
|
276
|
+
return stmt;
|
|
277
|
+
}
|
|
234
278
|
function getDeleteFtsMapRangeStatement(db) {
|
|
235
279
|
let stmt = deleteFtsMapRangeStatements.get(db);
|
|
236
280
|
if (!stmt) {
|
|
@@ -345,6 +389,23 @@ function isMessageIndexReconciledThrough(db, sessionId, finalWatermark) {
|
|
|
345
389
|
const dirtyFloor = getDirtyIndexFloor(db, sessionId);
|
|
346
390
|
return getLastIndexedOrdinal(db, sessionId) >= finalWatermark && dirtyFloor === null;
|
|
347
391
|
}
|
|
392
|
+
function clearIndexedMessagesInTransaction(db, sessionId) {
|
|
393
|
+
deleteMessageIndexSkips(db, sessionId);
|
|
394
|
+
getDeleteFtsStatement(db).run(sessionId);
|
|
395
|
+
deleteUnmappedMessageFtsRows2(db, [sessionId]);
|
|
396
|
+
getDeleteFtsMapStatement(db).run(sessionId);
|
|
397
|
+
getDeleteMessageSourceStatement(db).run(sessionId);
|
|
398
|
+
getDeleteIndexStatement(db).run(sessionId);
|
|
399
|
+
clearCompressionDepth(db, sessionId);
|
|
400
|
+
}
|
|
401
|
+
function clearIndexedMessages(db, sessionId) {
|
|
402
|
+
let transactionStartedAt = 0;
|
|
403
|
+
db.transaction(() => {
|
|
404
|
+
transactionStartedAt = performance.now();
|
|
405
|
+
clearIndexedMessagesInTransaction(db, sessionId);
|
|
406
|
+
}).immediate();
|
|
407
|
+
logSlowWriteTransaction("message_index_clear", transactionStartedAt);
|
|
408
|
+
}
|
|
348
409
|
function getIndexableContent(role, parts) {
|
|
349
410
|
if (role === "user") {
|
|
350
411
|
if (!hasMeaningfulUserText2(parts)) {
|
|
@@ -485,4 +546,4 @@ function indexItemsAfterOrdinal(db, sessionId, items, finalWatermark, toSource)
|
|
|
485
546
|
return inserted;
|
|
486
547
|
}
|
|
487
548
|
|
|
488
|
-
export { clearCompressionDepth, clearCompressionDepthRange, cleanSearchText, keywordRelevance, matchedSearchSnippet, MESSAGE_INDEX_MAX_FTS_BYTES, messageIndexSkipKey, getMessageIndexSourceIdentity, isMessageIndexSourceCurrent, getLastIndexedOrdinal, getIndexedMessageCorpusSize, markMessageIndexDirty, getMessageIndexReconciliationStartOrdinal, isMessageIndexReconciledThrough, getIndexableContent, indexSingleMessage, indexMessagesAfterOrdinal };
|
|
549
|
+
export { clearCompressionDepth, clearCompressionDepthRange, cleanSearchText, keywordRelevance, matchedSearchSnippet, MESSAGE_INDEX_MAX_FTS_BYTES, messageIndexSkipKey, getMessageIndexSourceIdentity, isMessageIndexSourceCurrent, getLastIndexedOrdinal, getIndexedMessageCorpusSize, markMessageIndexDirty, getMessageIndexReconciliationStartOrdinal, isMessageIndexReconciledThrough, clearIndexedMessages, getIndexableContent, indexSingleMessage, indexMessagesAfterOrdinal };
|
|
@@ -41,7 +41,7 @@ import {
|
|
|
41
41
|
countSessionCompartmentEmbedCoverage2,
|
|
42
42
|
countSessionCompartmentEmbedCoveragePolite2,
|
|
43
43
|
countUnembeddedSessionCompartmentsPolite2
|
|
44
|
-
} from "./index-
|
|
44
|
+
} from "./index-0gymvr5j.js";
|
|
45
45
|
import {
|
|
46
46
|
DEFAULT_LOCAL_EMBEDDING_MODEL
|
|
47
47
|
} from "./index-ccanzg8p.js";
|
|
@@ -74,6 +74,9 @@ import {
|
|
|
74
74
|
getMemoryEmbedCoverage,
|
|
75
75
|
invalidateProject2
|
|
76
76
|
} from "./index-yhzhdp3m.js";
|
|
77
|
+
import {
|
|
78
|
+
isKnownAutocommit
|
|
79
|
+
} from "./index-nrzkqte4.js";
|
|
77
80
|
import {
|
|
78
81
|
logSlowWriteTransaction
|
|
79
82
|
} from "./index-hqw0rt9k.js";
|
|
@@ -785,6 +788,51 @@ function createChunkEmbeddingWriter(db) {
|
|
|
785
788
|
};
|
|
786
789
|
}
|
|
787
790
|
|
|
791
|
+
// ../plugin/src/features/magic-context/chunk-scope-repair-revision.ts
|
|
792
|
+
var revisions = new WeakMap;
|
|
793
|
+
var KEY = "chunk_scope_repair_revision";
|
|
794
|
+
function readChunkScopeRepairRevision(db) {
|
|
795
|
+
if (!isKnownAutocommit(db))
|
|
796
|
+
return null;
|
|
797
|
+
let state = revisions.get(db);
|
|
798
|
+
if (!state) {
|
|
799
|
+
if (!db.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'schema_migrations_meta'").get())
|
|
800
|
+
return null;
|
|
801
|
+
const bump = `INSERT INTO schema_migrations_meta(key, value) VALUES ('${KEY}', lower(hex(randomblob(16))))
|
|
802
|
+
ON CONFLICT(key) DO UPDATE SET value = excluded.value;`;
|
|
803
|
+
db.exec(`CREATE TEMP TRIGGER IF NOT EXISTS mc_chunk_scope_binding_bi
|
|
804
|
+
BEFORE INSERT ON main.session_projects
|
|
805
|
+
WHEN NOT EXISTS (SELECT 1 FROM session_projects WHERE session_id = NEW.session_id
|
|
806
|
+
AND harness = NEW.harness AND project_path = NEW.project_path)
|
|
807
|
+
BEGIN ${bump} END;
|
|
808
|
+
CREATE TEMP TRIGGER IF NOT EXISTS mc_chunk_scope_binding_au
|
|
809
|
+
AFTER UPDATE ON main.session_projects
|
|
810
|
+
WHEN OLD.session_id IS NOT NEW.session_id OR OLD.harness IS NOT NEW.harness
|
|
811
|
+
OR OLD.project_path IS NOT NEW.project_path
|
|
812
|
+
BEGIN ${bump} END;
|
|
813
|
+
CREATE TEMP TRIGGER IF NOT EXISTS mc_chunk_scope_rows_bi
|
|
814
|
+
BEFORE INSERT ON main.compartment_chunk_embeddings BEGIN ${bump} END;
|
|
815
|
+
CREATE TEMP TRIGGER IF NOT EXISTS mc_chunk_scope_rows_au
|
|
816
|
+
AFTER UPDATE OF project_path, session_id, harness ON main.compartment_chunk_embeddings
|
|
817
|
+
WHEN NOT EXISTS (SELECT 1 FROM session_projects WHERE session_id = NEW.session_id
|
|
818
|
+
AND harness = NEW.harness AND project_path = NEW.project_path)
|
|
819
|
+
BEGIN ${bump} END;`);
|
|
820
|
+
const statement = db.prepare(`SELECT
|
|
821
|
+
(SELECT value FROM schema_migrations_meta WHERE key = '${KEY}') AS local,
|
|
822
|
+
(SELECT data_version FROM pragma_data_version) AS external,
|
|
823
|
+
(SELECT schema_version FROM pragma_schema_version) AS schemaVersion`);
|
|
824
|
+
state = { statement };
|
|
825
|
+
revisions.set(db, state);
|
|
826
|
+
}
|
|
827
|
+
const row = state.statement.get();
|
|
828
|
+
if (state.schemaVersion !== undefined && state.schemaVersion !== row.schemaVersion) {
|
|
829
|
+
revisions.delete(db);
|
|
830
|
+
return readChunkScopeRepairRevision(db);
|
|
831
|
+
}
|
|
832
|
+
state.schemaVersion = row.schemaVersion;
|
|
833
|
+
return JSON.stringify(row);
|
|
834
|
+
}
|
|
835
|
+
|
|
788
836
|
// ../plugin/src/features/magic-context/git-commits/storage-git-commit-embeddings.ts
|
|
789
837
|
var saveStatements = new WeakMap;
|
|
790
838
|
var loadProjectStatements = new WeakMap;
|
|
@@ -1439,6 +1487,7 @@ function recordScopeActiveIdentity(db, projectIdentity, scope, modelId, now) {
|
|
|
1439
1487
|
getUpsertActiveIdentityStatement(db).run(projectIdentity, scope, modelId, now);
|
|
1440
1488
|
}
|
|
1441
1489
|
var legacyDiscoveryComplete = new WeakMap;
|
|
1490
|
+
var chunkScopeRepairComplete = new WeakMap;
|
|
1442
1491
|
function recordActiveEmbeddingIdentity(db, projectIdentity, currentProviderIdentity, currentChunkIdentity, features) {
|
|
1443
1492
|
if (currentProviderIdentity === OFF_PROVIDER_IDENTITY) {
|
|
1444
1493
|
return false;
|
|
@@ -1460,7 +1509,21 @@ function recordActiveEmbeddingIdentity(db, projectIdentity, currentProviderIdent
|
|
|
1460
1509
|
model,
|
|
1461
1510
|
rows: getBackfillActiveIdentityStatement(db, scope).all(projectIdentity, projectIdentity, scope)
|
|
1462
1511
|
}));
|
|
1463
|
-
const
|
|
1512
|
+
const repairKey = JSON.stringify([projectIdentity, currentChunkIdentity]);
|
|
1513
|
+
const repairRevision = readChunkScopeRepairRevision(db);
|
|
1514
|
+
let completed = chunkScopeRepairComplete.get(db);
|
|
1515
|
+
if (!completed) {
|
|
1516
|
+
completed = new Map;
|
|
1517
|
+
chunkScopeRepairComplete.set(db, completed);
|
|
1518
|
+
}
|
|
1519
|
+
if (repairRevision === null)
|
|
1520
|
+
completed.clear();
|
|
1521
|
+
const repairIds = repairRevision !== null && completed.get(repairKey) === repairRevision ? [] : findMisScopedCompartmentChunkEmbeddingIdsForProject(db, projectIdentity);
|
|
1522
|
+
if (repairIds.length === 0 && repairRevision !== null) {
|
|
1523
|
+
if (completed.size >= 256)
|
|
1524
|
+
completed.delete(completed.keys().next().value);
|
|
1525
|
+
completed.set(repairKey, repairRevision);
|
|
1526
|
+
}
|
|
1464
1527
|
if (legacy.every(({ rows }) => rows.length === 0) && scopes.every(([scope, model]) => active.get(projectIdentity, scope, model)) && repairIds.length === 0) {
|
|
1465
1528
|
for (const { scope, model } of legacy)
|
|
1466
1529
|
discovered.add(discoveryKey(scope, model));
|