@cortexkit/opencode-magic-context 0.49.31 → 0.49.32
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 +1 -1
- package/dist/{compartment-chunk-embedding-qgp0tbf7.js → compartment-chunk-embedding-5q5gj67r.js} +1 -1
- package/dist/{context-9a0f8mzh.js → context-n27jdyyh.js} +12 -10
- package/dist/{embedding-backfill-mms9nb0h.js → embedding-backfill-0jgtqxen.js} +3 -3
- package/dist/features/magic-context/chunk-scope-repair-revision.d.ts +4 -0
- package/dist/features/magic-context/chunk-scope-repair-revision.d.ts.map +1 -0
- package/dist/features/magic-context/compartment-chunk-embedding.d.ts.map +1 -1
- package/dist/features/magic-context/dreamer/task-gates.d.ts +2 -0
- package/dist/features/magic-context/dreamer/task-gates.d.ts.map +1 -1
- package/dist/features/magic-context/message-index-async.d.ts +3 -0
- package/dist/features/magic-context/message-index-async.d.ts.map +1 -1
- package/dist/features/magic-context/project-embedding-registry.d.ts.map +1 -1
- package/dist/features/magic-context/search.d.ts.map +1 -1
- package/dist/hooks/magic-context/auto-search-branch-index.fixture.d.ts +2 -0
- package/dist/hooks/magic-context/auto-search-branch-index.fixture.d.ts.map +1 -0
- package/dist/hooks/magic-context/auto-search-worker-client.d.ts.map +1 -1
- package/dist/hooks/magic-context/command-handler.d.ts.map +1 -1
- package/dist/{index-gxkhzmjq.js → index-2743x98y.js} +65 -2
- package/dist/{index-y6ynjghv.js → index-2agkcr3y.js} +2 -2
- package/dist/{index-22e7khnr.js → index-3drcgsnf.js} +56 -372
- package/dist/index-94ef0qe2.js +429 -0
- package/dist/{index-pe6b4bhs.js → index-as2amvn3.js} +1 -1
- package/dist/{index-kmayq4kq.js → index-bzwh06cp.js} +3 -3
- package/dist/{index-qathsvz2.js → index-g0kqnc6y.js} +11 -4
- package/dist/{index-vtz789ex.js → index-qr2mb02j.js} +16 -5
- package/dist/{index-vnn5405n.js → index-rfxzazzy.js} +1 -1
- package/dist/{index-0bjktrjt.js → index-t6b3px80.js} +2 -2
- package/dist/{index-mm93m7y6.js → index-v7287tzq.js} +47 -7
- package/dist/index.js +16 -14
- package/dist/plugin/rpc-handlers.d.ts.map +1 -1
- package/dist/{project-embedding-registry-cg281d9j.js → project-embedding-registry-6yex0r9f.js} +2 -2
- package/dist/{recomp-orchestrator-ynehxbya.js → recomp-orchestrator-6ncc6wrw.js} +6 -6
- package/dist/{search-fbaz1m8r.js → search-040pac3a.js} +6 -5
- package/dist/{transform-postprocess-phase-50h70ft8.js → transform-postprocess-phase-wvt1k03d.js} +7 -6
- package/dist/v2/auto-search-worker.js +4 -4
- package/dist/v2/chunk-embedding-write-worker.js +1 -1
- package/dist/v2/{compartment-chunk-embedding-63dzs31c.js → compartment-chunk-embedding-rc31e6md.js} +1 -1
- package/dist/v2/{context-cdqw9jex.js → context-ehews84p.js} +71 -264
- package/dist/v2/{embedding-backfill-35k6czrr.js → embedding-backfill-f43hd8y6.js} +3 -3
- package/dist/v2/{project-embedding-registry-p1p10ks7.js → project-embedding-registry-1x5qe2fy.js} +2 -2
- package/dist/v2/{recomp-orchestrator-kdxr4tx8.js → recomp-orchestrator-3r9kcs61.js} +5 -5
- package/dist/v2/{search-q3jjw6zp.js → search-q3wkpe8t.js} +5 -5
- package/dist/v2/{server-p0snacz3.js → server-2aasmpsp.js} +1 -1
- package/dist/v2/{server-rdjgz95f.js → server-4n176b5m.js} +3 -3
- package/dist/v2/{server-zh3esb0z.js → server-ab8017gw.js} +65 -2
- package/dist/v2/{server-4sn3at8p.js → server-h1byrhwx.js} +47 -7
- package/dist/v2/{server-42nebt63.js → server-n14edf07.js} +336 -25
- package/dist/v2/{server-ph300d6m.js → server-tkdabx8q.js} +1 -1
- package/dist/v2/server.js +2 -2
- package/dist/v2/{wrapup-orchestrator-prfvyqbb.js → wrapup-orchestrator-ddmvbkra.js} +5 -5
- package/dist/{wrapup-orchestrator-4zhkcsz0.js → wrapup-orchestrator-fyvyzcbm.js} +7 -7
- package/package.json +1 -1
|
@@ -46,15 +46,13 @@ import {
|
|
|
46
46
|
import {
|
|
47
47
|
inRootAsyncContext2,
|
|
48
48
|
Database2,
|
|
49
|
-
getSqliteDatabasePath2,
|
|
50
49
|
getSqliteMemoryStats2,
|
|
51
50
|
withSqliteBackgroundWriter2,
|
|
52
51
|
withSqliteTransformPass2,
|
|
53
52
|
withoutSqliteTransformPass2,
|
|
54
53
|
isTransientSqliteError2,
|
|
55
54
|
SqliteAcquisitionBusyError2,
|
|
56
|
-
withAsyncPrivilegedWriter2
|
|
57
|
-
indexCoordinationInput2
|
|
55
|
+
withAsyncPrivilegedWriter2
|
|
58
56
|
} from "./index-gzy5w8ya.js";
|
|
59
57
|
import {
|
|
60
58
|
pruneMissingProjectIdentities,
|
|
@@ -266,7 +264,7 @@ import {
|
|
|
266
264
|
snapRangeToCompartments,
|
|
267
265
|
getActiveCompartmentRun,
|
|
268
266
|
startCompartmentAgent
|
|
269
|
-
} from "./index-
|
|
267
|
+
} from "./index-bzwh06cp.js";
|
|
270
268
|
import {
|
|
271
269
|
hasTrustedAbsoluteWall,
|
|
272
270
|
applyProvenInputFloor,
|
|
@@ -352,8 +350,7 @@ import {
|
|
|
352
350
|
isRawCompactionSummaryInfo2,
|
|
353
351
|
extractInMemoryMessageViews2,
|
|
354
352
|
buildInMemoryTailRawMessages2,
|
|
355
|
-
RawOrdinalsNotReady2
|
|
356
|
-
runSessionWarmupWorker
|
|
353
|
+
RawOrdinalsNotReady2
|
|
357
354
|
} from "./index-rverk2vz.js";
|
|
358
355
|
import {
|
|
359
356
|
openCodeDbExists,
|
|
@@ -556,7 +553,7 @@ import {
|
|
|
556
553
|
embedSessionCompartmentChunks2,
|
|
557
554
|
getEmbeddingCoverageStatus2,
|
|
558
555
|
getAutoEmbeddingSessionCoverage2
|
|
559
|
-
} from "./index-
|
|
556
|
+
} from "./index-2743x98y.js";
|
|
560
557
|
import {
|
|
561
558
|
SubcClient,
|
|
562
559
|
connectionFileExists,
|
|
@@ -566,14 +563,7 @@ import {
|
|
|
566
563
|
SynapseEmbeddingProvider
|
|
567
564
|
} from "./index-wfybj1dw.js";
|
|
568
565
|
import {
|
|
569
|
-
|
|
570
|
-
isMessageIndexSourceCurrent,
|
|
571
|
-
getLastIndexedOrdinal,
|
|
572
|
-
getMessageIndexReconciliationStartOrdinal,
|
|
573
|
-
isMessageIndexReconciledThrough,
|
|
574
|
-
clearIndexedMessages,
|
|
575
|
-
indexSingleMessage,
|
|
576
|
-
indexMessagesAfterOrdinal
|
|
566
|
+
getLastIndexedOrdinal
|
|
577
567
|
} from "./index-4s4zq97n.js";
|
|
578
568
|
import {
|
|
579
569
|
renderUserFacingFailure,
|
|
@@ -618,7 +608,7 @@ import {
|
|
|
618
608
|
readGitFileChangeTimesSince,
|
|
619
609
|
verificationFileExists,
|
|
620
610
|
normalizeVerificationFiles
|
|
621
|
-
} from "./index-
|
|
611
|
+
} from "./index-as2amvn3.js";
|
|
622
612
|
import {
|
|
623
613
|
registerNotificationSink2,
|
|
624
614
|
pushNotification2,
|
|
@@ -638,7 +628,7 @@ import {
|
|
|
638
628
|
} from "./index-4dhv7mqz.js";
|
|
639
629
|
import {
|
|
640
630
|
cosineSimilarity
|
|
641
|
-
} from "./index-
|
|
631
|
+
} from "./index-rfxzazzy.js";
|
|
642
632
|
import {
|
|
643
633
|
computeCueContentHash,
|
|
644
634
|
hasMuralCueColumns,
|
|
@@ -684,7 +674,13 @@ import {
|
|
|
684
674
|
resolveMemoriesByIdsForSearch2,
|
|
685
675
|
unifiedSearch2,
|
|
686
676
|
formatSearchResults2
|
|
687
|
-
} from "./index-
|
|
677
|
+
} from "./index-qr2mb02j.js";
|
|
678
|
+
import {
|
|
679
|
+
scheduleReconciliation,
|
|
680
|
+
scheduleIncrementalIndex,
|
|
681
|
+
getMessageIndexQueueHeapStats,
|
|
682
|
+
clearSessionTracking
|
|
683
|
+
} from "./index-94ef0qe2.js";
|
|
688
684
|
import {
|
|
689
685
|
flushIgnoredMessages2,
|
|
690
686
|
clearIgnoredMessages2,
|
|
@@ -694,7 +690,7 @@ import {
|
|
|
694
690
|
import {
|
|
695
691
|
setRecompStarting2,
|
|
696
692
|
setRecompTerminal2
|
|
697
|
-
} from "./index-
|
|
693
|
+
} from "./index-2agkcr3y.js";
|
|
698
694
|
import {
|
|
699
695
|
makeToolCompositeKey,
|
|
700
696
|
searchMessageHistoryOffThread,
|
|
@@ -757,7 +753,7 @@ import {
|
|
|
757
753
|
abortSessionFailClosed2,
|
|
758
754
|
evaluateEmergencyFailClosed2,
|
|
759
755
|
runPostTransformPhase2
|
|
760
|
-
} from "./index-
|
|
756
|
+
} from "./index-g0kqnc6y.js";
|
|
761
757
|
import {
|
|
762
758
|
ANNOUNCEMENT_VERSION2,
|
|
763
759
|
ANNOUNCEMENT_FEATURES2,
|
|
@@ -8582,16 +8578,47 @@ function getDreamTaskBacklog(db, projectPath, task, options = {}) {
|
|
|
8582
8578
|
}
|
|
8583
8579
|
}
|
|
8584
8580
|
var backlogCaches = new WeakMap;
|
|
8581
|
+
var displayBacklogCaches = new WeakMap;
|
|
8582
|
+
var DISPLAY_BACKLOG_MAX_AGE_MS = 60000;
|
|
8585
8583
|
function getDreamTaskBacklogs(db, projectPath, tasks = CANONICAL_DREAM_TASKS, options = {}) {
|
|
8586
8584
|
if (tasks.length === 0)
|
|
8587
8585
|
return {};
|
|
8588
8586
|
if (!isKnownAutocommit(db)) {
|
|
8589
8587
|
backlogCaches.delete(db);
|
|
8588
|
+
displayBacklogCaches.delete(db);
|
|
8590
8589
|
const result = {};
|
|
8591
8590
|
for (const task of tasks)
|
|
8592
8591
|
result[task] = getDreamTaskBacklog(db, projectPath, task, options);
|
|
8593
8592
|
return result;
|
|
8594
8593
|
}
|
|
8594
|
+
if (options.display) {
|
|
8595
|
+
let entries = displayBacklogCaches.get(db);
|
|
8596
|
+
if (!entries) {
|
|
8597
|
+
entries = new Map;
|
|
8598
|
+
displayBacklogCaches.set(db, entries);
|
|
8599
|
+
}
|
|
8600
|
+
const optionKey = (value) => value === undefined ? "omitted" : value === null ? "null" : `number:${value}`;
|
|
8601
|
+
const key = JSON.stringify([
|
|
8602
|
+
projectPath,
|
|
8603
|
+
tasks,
|
|
8604
|
+
optionKey(options.lastRunAt),
|
|
8605
|
+
optionKey(options.retrospectiveWatermarkMs)
|
|
8606
|
+
]);
|
|
8607
|
+
const now = Date.now();
|
|
8608
|
+
const cached = entries.get(key);
|
|
8609
|
+
if (cached && now < cached.expiresAt && now >= cached.expiresAt - DISPLAY_BACKLOG_MAX_AGE_MS)
|
|
8610
|
+
return structuredClone(cached.value);
|
|
8611
|
+
const value = {};
|
|
8612
|
+
for (const task of tasks)
|
|
8613
|
+
value[task] = getDreamTaskBacklog(db, projectPath, task, options);
|
|
8614
|
+
if (entries.size >= 256)
|
|
8615
|
+
entries.delete(entries.keys().next().value);
|
|
8616
|
+
entries.set(key, {
|
|
8617
|
+
expiresAt: now + DISPLAY_BACKLOG_MAX_AGE_MS,
|
|
8618
|
+
value: structuredClone(value)
|
|
8619
|
+
});
|
|
8620
|
+
return value;
|
|
8621
|
+
}
|
|
8595
8622
|
let cache = backlogCaches.get(db);
|
|
8596
8623
|
if (!cache) {
|
|
8597
8624
|
cache = {
|
|
@@ -12811,349 +12838,6 @@ function getActiveMemoryImportanceHistogram(db, projectPath) {
|
|
|
12811
12838
|
};
|
|
12812
12839
|
}
|
|
12813
12840
|
|
|
12814
|
-
// src/features/magic-context/message-index-async.ts
|
|
12815
|
-
var indexCancellations = new Map;
|
|
12816
|
-
var sessionEpochs = new Map;
|
|
12817
|
-
var workerMeasurements = new WeakMap;
|
|
12818
|
-
function isDatabaseLockedError(error) {
|
|
12819
|
-
if (!error || typeof error !== "object")
|
|
12820
|
-
return false;
|
|
12821
|
-
const e = error;
|
|
12822
|
-
if (typeof e.code === "string") {
|
|
12823
|
-
if (e.code === "SQLITE_BUSY" || e.code === "SQLITE_LOCKED")
|
|
12824
|
-
return true;
|
|
12825
|
-
}
|
|
12826
|
-
if (typeof e.message === "string") {
|
|
12827
|
-
if (/database is locked/i.test(e.message))
|
|
12828
|
-
return true;
|
|
12829
|
-
if (/sqlite_(busy|locked)/i.test(e.message))
|
|
12830
|
-
return true;
|
|
12831
|
-
}
|
|
12832
|
-
return false;
|
|
12833
|
-
}
|
|
12834
|
-
var INCREMENTAL_DEBOUNCE_MS = 100;
|
|
12835
|
-
var RECONCILIATION_BATCH_SIZE = 100;
|
|
12836
|
-
|
|
12837
|
-
class MagicContextMessageIndexHeapHolder {
|
|
12838
|
-
reconciledSessions = new Set;
|
|
12839
|
-
reconciledSnapshots = new Map;
|
|
12840
|
-
stalledSessions = new Set;
|
|
12841
|
-
reconciliationScheduledSessions = new Set;
|
|
12842
|
-
clearAndReindexScheduledSessions = new Map;
|
|
12843
|
-
sessionLocks = new Map;
|
|
12844
|
-
incrementalTimers = new Map;
|
|
12845
|
-
pendingIncrementalKeys = new Set;
|
|
12846
|
-
completedIncrementalKeys = new Set;
|
|
12847
|
-
activeReconcilerBuffers = new Map;
|
|
12848
|
-
}
|
|
12849
|
-
var heapHolder = new MagicContextMessageIndexHeapHolder;
|
|
12850
|
-
function clearCompletedIncrementalKeys(sessionId) {
|
|
12851
|
-
const prefix = `${sessionId}\x00`;
|
|
12852
|
-
for (const key of heapHolder.completedIncrementalKeys) {
|
|
12853
|
-
if (key.startsWith(prefix))
|
|
12854
|
-
heapHolder.completedIncrementalKeys.delete(key);
|
|
12855
|
-
}
|
|
12856
|
-
}
|
|
12857
|
-
var PREPARE_RETRY_MS = 60000;
|
|
12858
|
-
async function sourceReady(source, sessionId) {
|
|
12859
|
-
const prepare = source?.prepare;
|
|
12860
|
-
return typeof prepare === "function" ? prepare(sessionId) : true;
|
|
12861
|
-
}
|
|
12862
|
-
function defer(fn) {
|
|
12863
|
-
const immediate = globalThis.setImmediate;
|
|
12864
|
-
if (typeof immediate === "function") {
|
|
12865
|
-
inRootAsyncContext2(() => immediate(fn));
|
|
12866
|
-
return;
|
|
12867
|
-
}
|
|
12868
|
-
inRootAsyncContext2(() => setTimeout(fn, 0));
|
|
12869
|
-
}
|
|
12870
|
-
function yieldToEventLoop() {
|
|
12871
|
-
return new Promise((resolve) => defer(resolve));
|
|
12872
|
-
}
|
|
12873
|
-
function runWithSessionLock(sessionId, operation) {
|
|
12874
|
-
const previous = heapHolder.sessionLocks.get(sessionId) ?? Promise.resolve();
|
|
12875
|
-
const run = previous.catch(() => {
|
|
12876
|
-
return;
|
|
12877
|
-
}).then(async () => {
|
|
12878
|
-
await operation();
|
|
12879
|
-
});
|
|
12880
|
-
heapHolder.sessionLocks.set(sessionId, run);
|
|
12881
|
-
run.finally(() => {
|
|
12882
|
-
if (heapHolder.sessionLocks.get(sessionId) === run) {
|
|
12883
|
-
heapHolder.sessionLocks.delete(sessionId);
|
|
12884
|
-
}
|
|
12885
|
-
}).catch(() => {
|
|
12886
|
-
return;
|
|
12887
|
-
});
|
|
12888
|
-
return run;
|
|
12889
|
-
}
|
|
12890
|
-
function logIndexingError(sessionId, action, error) {
|
|
12891
|
-
if (isDatabaseLockedError(error)) {
|
|
12892
|
-
sessionLog2(sessionId, `message FTS async ${action} skipped (database busy; will retry on next reconciliation)`);
|
|
12893
|
-
return;
|
|
12894
|
-
}
|
|
12895
|
-
sessionLog2(sessionId, `message FTS async ${action} failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
12896
|
-
log2(`[message-index-async] ${action} failed for ${sessionId}:`, error);
|
|
12897
|
-
}
|
|
12898
|
-
function serializedMessageBytes(messages) {
|
|
12899
|
-
try {
|
|
12900
|
-
return Buffer.byteLength(JSON.stringify(messages));
|
|
12901
|
-
} catch {
|
|
12902
|
-
return 0;
|
|
12903
|
-
}
|
|
12904
|
-
}
|
|
12905
|
-
function logReconciliationStall(sessionId, reason) {
|
|
12906
|
-
if (heapHolder.stalledSessions.has(sessionId))
|
|
12907
|
-
return;
|
|
12908
|
-
heapHolder.stalledSessions.add(sessionId);
|
|
12909
|
-
sessionLog2(sessionId, `message FTS reconciliation stalled: ${reason}; will retry`);
|
|
12910
|
-
}
|
|
12911
|
-
async function reconcileSessionIndex(db, sessionId, readMessages) {
|
|
12912
|
-
if (!await sourceReady(readMessages, sessionId)) {
|
|
12913
|
-
logReconciliationStall(sessionId, "raw message reader is not ready");
|
|
12914
|
-
return false;
|
|
12915
|
-
}
|
|
12916
|
-
await runWithSessionLock(sessionId, async () => {
|
|
12917
|
-
if (!readMessages.getRevision && heapHolder.reconciledSessions.has(sessionId))
|
|
12918
|
-
return;
|
|
12919
|
-
let fallbackSnapshot = null;
|
|
12920
|
-
try {
|
|
12921
|
-
const fullReader = typeof readMessages === "function" ? readMessages : null;
|
|
12922
|
-
const revision = readMessages.getRevision?.(sessionId);
|
|
12923
|
-
const previous = heapHolder.reconciledSnapshots.get(sessionId);
|
|
12924
|
-
const finalWatermark = previous && revision === previous.revision ? previous.count : revision !== undefined && readMessages.getCountAfterRevision ? previous && revision > previous.revision ? previous.count + readMessages.getCountAfterRevision(sessionId, previous.revision, revision) : readMessages.getCountAfterRevision(sessionId, -1, revision) : readMessages.getCount ? readMessages.getCount(sessionId) : (fallbackSnapshot = fullReader?.(sessionId) ?? []).length;
|
|
12925
|
-
let cursor = getMessageIndexReconciliationStartOrdinal(db, sessionId);
|
|
12926
|
-
let after = cursor === previous?.count ? previous.after : undefined;
|
|
12927
|
-
while (cursor < finalWatermark) {
|
|
12928
|
-
const pageEnd = Math.min(finalWatermark, cursor + RECONCILIATION_BATCH_SIZE);
|
|
12929
|
-
const messages = readMessages.readPage ? readMessages.readPage(sessionId, cursor, RECONCILIATION_BATCH_SIZE, finalWatermark, after) : (fallbackSnapshot ?? []).filter((message) => message.ordinal > cursor && message.ordinal <= pageEnd);
|
|
12930
|
-
const retainedMessages = fallbackSnapshot ?? messages;
|
|
12931
|
-
heapHolder.activeReconcilerBuffers.set(sessionId, retainedMessages);
|
|
12932
|
-
withSqliteBackgroundWriter2(() => indexMessagesAfterOrdinal(db, sessionId, messages, cursor, pageEnd));
|
|
12933
|
-
const nextCursor = getMessageIndexReconciliationStartOrdinal(db, sessionId);
|
|
12934
|
-
if (nextCursor <= cursor)
|
|
12935
|
-
break;
|
|
12936
|
-
cursor = nextCursor;
|
|
12937
|
-
const last = messages.at(-1);
|
|
12938
|
-
after = last?.ordinal === cursor && typeof last.createdAt === "number" ? { timeCreated: last.createdAt, id: last.id } : undefined;
|
|
12939
|
-
if (cursor < finalWatermark) {
|
|
12940
|
-
await yieldToEventLoop();
|
|
12941
|
-
}
|
|
12942
|
-
}
|
|
12943
|
-
if (isMessageIndexReconciledThrough(db, sessionId, finalWatermark)) {
|
|
12944
|
-
heapHolder.reconciledSessions.add(sessionId);
|
|
12945
|
-
if (revision !== undefined) {
|
|
12946
|
-
if (!after && finalWatermark > 0 && readMessages.readPage) {
|
|
12947
|
-
const last = readMessages.readPage(sessionId, finalWatermark - 1, 1, finalWatermark).at(-1);
|
|
12948
|
-
if (last?.ordinal === finalWatermark && typeof last.createdAt === "number")
|
|
12949
|
-
after = { timeCreated: last.createdAt, id: last.id };
|
|
12950
|
-
}
|
|
12951
|
-
heapHolder.reconciledSnapshots.set(sessionId, {
|
|
12952
|
-
revision,
|
|
12953
|
-
count: finalWatermark,
|
|
12954
|
-
after
|
|
12955
|
-
});
|
|
12956
|
-
}
|
|
12957
|
-
} else {
|
|
12958
|
-
logReconciliationStall(sessionId, `gap after ordinal ${cursor} (store count ${finalWatermark})`);
|
|
12959
|
-
}
|
|
12960
|
-
} finally {
|
|
12961
|
-
heapHolder.activeReconcilerBuffers.delete(sessionId);
|
|
12962
|
-
}
|
|
12963
|
-
});
|
|
12964
|
-
return true;
|
|
12965
|
-
}
|
|
12966
|
-
function scheduleReconciliation(db, sessionId, readMessages) {
|
|
12967
|
-
if (!readMessages.getRevision && heapHolder.reconciledSessions.has(sessionId) || heapHolder.reconciliationScheduledSessions.has(sessionId)) {
|
|
12968
|
-
return;
|
|
12969
|
-
}
|
|
12970
|
-
heapHolder.reconciliationScheduledSessions.add(sessionId);
|
|
12971
|
-
scheduleAfterBootQuiet(() => {
|
|
12972
|
-
defer(() => {
|
|
12973
|
-
let appendedDuringReconciliation = false;
|
|
12974
|
-
const previousSnapshot = heapHolder.reconciledSnapshots.get(sessionId);
|
|
12975
|
-
reconcileSessionIndex(db, sessionId, readMessages).then((ran) => {
|
|
12976
|
-
if (ran) {
|
|
12977
|
-
const snapshot = heapHolder.reconciledSnapshots.get(sessionId);
|
|
12978
|
-
appendedDuringReconciliation = snapshot !== undefined && snapshot !== previousSnapshot && readMessages.getRevision !== undefined && readMessages.getRevision(sessionId) !== snapshot.revision;
|
|
12979
|
-
return;
|
|
12980
|
-
}
|
|
12981
|
-
inRootAsyncContext2(() => setTimeout(() => {
|
|
12982
|
-
heapHolder.reconciliationScheduledSessions.delete(sessionId);
|
|
12983
|
-
scheduleReconciliation(db, sessionId, readMessages);
|
|
12984
|
-
}, PREPARE_RETRY_MS)).unref?.();
|
|
12985
|
-
}).catch((error) => {
|
|
12986
|
-
logReconciliationStall(sessionId, error instanceof Error ? error.message : String(error));
|
|
12987
|
-
if (isDatabaseLockedError(error))
|
|
12988
|
-
inRootAsyncContext2(() => setTimeout(() => scheduleReconciliation(db, sessionId, readMessages), 1000)).unref();
|
|
12989
|
-
}).finally(() => {
|
|
12990
|
-
heapHolder.reconciliationScheduledSessions.delete(sessionId);
|
|
12991
|
-
if (appendedDuringReconciliation)
|
|
12992
|
-
scheduleReconciliation(db, sessionId, readMessages);
|
|
12993
|
-
});
|
|
12994
|
-
});
|
|
12995
|
-
});
|
|
12996
|
-
}
|
|
12997
|
-
function scheduleIncrementalIndex(db, sessionId, messageId, messageSource) {
|
|
12998
|
-
const schedulingKey = `${sessionId}\x00${messageId}`;
|
|
12999
|
-
const epoch = sessionEpochs.get(sessionId) ?? 0;
|
|
13000
|
-
if (heapHolder.pendingIncrementalKeys.has(schedulingKey))
|
|
13001
|
-
return;
|
|
13002
|
-
const activeTimer = heapHolder.incrementalTimers.get(schedulingKey);
|
|
13003
|
-
if (activeTimer)
|
|
13004
|
-
clearTimeout(activeTimer);
|
|
13005
|
-
const timer = inRootAsyncContext2(() => setTimeout(() => {
|
|
13006
|
-
heapHolder.incrementalTimers.delete(schedulingKey);
|
|
13007
|
-
heapHolder.pendingIncrementalKeys.add(schedulingKey);
|
|
13008
|
-
const indexMessage = async () => {
|
|
13009
|
-
if ((sessionEpochs.get(sessionId) ?? 0) !== epoch || !heapHolder.pendingIncrementalKeys.has(schedulingKey))
|
|
13010
|
-
return;
|
|
13011
|
-
const message = typeof messageSource === "function" ? messageSource(sessionId, messageId) : messageSource;
|
|
13012
|
-
if (!message)
|
|
13013
|
-
return;
|
|
13014
|
-
const revisionKey = `${schedulingKey}\x00${getMessageIndexSourceIdentity(message)}`;
|
|
13015
|
-
if (heapHolder.completedIncrementalKeys.has(revisionKey))
|
|
13016
|
-
return;
|
|
13017
|
-
const currentWatermark = getLastIndexedOrdinal(db, sessionId);
|
|
13018
|
-
if (message.ordinal <= currentWatermark && isMessageIndexSourceCurrent(db, sessionId, message)) {
|
|
13019
|
-
heapHolder.completedIncrementalKeys.add(revisionKey);
|
|
13020
|
-
return;
|
|
13021
|
-
}
|
|
13022
|
-
const wasReconciled = heapHolder.reconciledSessions.delete(sessionId);
|
|
13023
|
-
await indexSingleMessageOffThread(db, sessionId, message);
|
|
13024
|
-
if ((sessionEpochs.get(sessionId) ?? 0) !== epoch || !heapHolder.pendingIncrementalKeys.has(schedulingKey))
|
|
13025
|
-
return;
|
|
13026
|
-
const finalWatermark = getLastIndexedOrdinal(db, sessionId);
|
|
13027
|
-
if (wasReconciled && isMessageIndexReconciledThrough(db, sessionId, finalWatermark)) {
|
|
13028
|
-
heapHolder.reconciledSessions.add(sessionId);
|
|
13029
|
-
}
|
|
13030
|
-
heapHolder.completedIncrementalKeys.add(revisionKey);
|
|
13031
|
-
};
|
|
13032
|
-
sourceReady(messageSource, sessionId).then((ready) => {
|
|
13033
|
-
if ((sessionEpochs.get(sessionId) ?? 0) !== epoch)
|
|
13034
|
-
return;
|
|
13035
|
-
if (ready)
|
|
13036
|
-
return runWithSessionLock(sessionId, indexMessage);
|
|
13037
|
-
setTimeout(() => scheduleIncrementalIndex(db, sessionId, messageId, messageSource), PREPARE_RETRY_MS).unref?.();
|
|
13038
|
-
}).catch((error) => {
|
|
13039
|
-
if ((sessionEpochs.get(sessionId) ?? 0) !== epoch)
|
|
13040
|
-
return;
|
|
13041
|
-
heapHolder.reconciledSessions.delete(sessionId);
|
|
13042
|
-
logIndexingError(sessionId, `incremental index for ${messageId}`, error);
|
|
13043
|
-
if (isDatabaseLockedError(error))
|
|
13044
|
-
setTimeout(() => scheduleIncrementalIndex(db, sessionId, messageId, messageSource), 1000).unref();
|
|
13045
|
-
}).finally(() => {
|
|
13046
|
-
if ((sessionEpochs.get(sessionId) ?? 0) === epoch)
|
|
13047
|
-
heapHolder.pendingIncrementalKeys.delete(schedulingKey);
|
|
13048
|
-
});
|
|
13049
|
-
}, INCREMENTAL_DEBOUNCE_MS));
|
|
13050
|
-
heapHolder.incrementalTimers.set(schedulingKey, timer);
|
|
13051
|
-
}
|
|
13052
|
-
async function indexSingleMessageOffThread(db, sessionId, message) {
|
|
13053
|
-
const path = getSqliteDatabasePath2(db);
|
|
13054
|
-
if (!path)
|
|
13055
|
-
return withSqliteBackgroundWriter2(() => indexSingleMessage(db, sessionId, message));
|
|
13056
|
-
const cancellation = new Int32Array(new SharedArrayBuffer(4));
|
|
13057
|
-
const active = indexCancellations.get(sessionId) ?? new Set;
|
|
13058
|
-
active.add(cancellation);
|
|
13059
|
-
indexCancellations.set(sessionId, active);
|
|
13060
|
-
const result = await runSessionWarmupWorker({
|
|
13061
|
-
path,
|
|
13062
|
-
sessionId,
|
|
13063
|
-
indexMessage: message,
|
|
13064
|
-
harness: getHarness2(),
|
|
13065
|
-
indexCancellation: cancellation.buffer,
|
|
13066
|
-
...indexCoordinationInput2()
|
|
13067
|
-
}, {}).finally(() => {
|
|
13068
|
-
active.delete(cancellation);
|
|
13069
|
-
if (active.size === 0)
|
|
13070
|
-
indexCancellations.delete(sessionId);
|
|
13071
|
-
});
|
|
13072
|
-
if (!("inserted" in result))
|
|
13073
|
-
throw new Error("failure" in result ? result.detail : "unexpected indexing worker reply");
|
|
13074
|
-
if (result.measurements) {
|
|
13075
|
-
const sessions = workerMeasurements.get(db) ?? new Map;
|
|
13076
|
-
sessions.set(sessionId, result.measurements);
|
|
13077
|
-
workerMeasurements.set(db, sessions);
|
|
13078
|
-
if (result.measurements.skipped)
|
|
13079
|
-
log2(`[magic-context] incremental FTS skipped oversized source ${message.id} (${result.measurements.sourceBytes} bytes); identity and progress persisted`);
|
|
13080
|
-
}
|
|
13081
|
-
return result.inserted;
|
|
13082
|
-
}
|
|
13083
|
-
function scheduleClearAndReindex(db, sessionId, readMessages) {
|
|
13084
|
-
heapHolder.reconciledSessions.delete(sessionId);
|
|
13085
|
-
heapHolder.reconciledSnapshots.delete(sessionId);
|
|
13086
|
-
heapHolder.reconciliationScheduledSessions.delete(sessionId);
|
|
13087
|
-
clearCompletedIncrementalKeys(sessionId);
|
|
13088
|
-
const existing = heapHolder.clearAndReindexScheduledSessions.get(sessionId);
|
|
13089
|
-
if (existing) {
|
|
13090
|
-
existing.source = readMessages;
|
|
13091
|
-
return;
|
|
13092
|
-
}
|
|
13093
|
-
const pending = { source: readMessages };
|
|
13094
|
-
heapHolder.clearAndReindexScheduledSessions.set(sessionId, pending);
|
|
13095
|
-
scheduleAfterBootQuiet(() => {
|
|
13096
|
-
defer(() => {
|
|
13097
|
-
let cleared = false;
|
|
13098
|
-
runWithSessionLock(sessionId, () => {
|
|
13099
|
-
if (heapHolder.clearAndReindexScheduledSessions.get(sessionId) !== pending)
|
|
13100
|
-
return;
|
|
13101
|
-
heapHolder.clearAndReindexScheduledSessions.delete(sessionId);
|
|
13102
|
-
heapHolder.reconciledSessions.delete(sessionId);
|
|
13103
|
-
heapHolder.reconciledSnapshots.delete(sessionId);
|
|
13104
|
-
clearCompletedIncrementalKeys(sessionId);
|
|
13105
|
-
clearIndexedMessages(db, sessionId);
|
|
13106
|
-
cleared = true;
|
|
13107
|
-
}).then(() => cleared ? reconcileSessionIndex(db, sessionId, pending.source) : undefined).catch((error) => {
|
|
13108
|
-
heapHolder.reconciledSessions.delete(sessionId);
|
|
13109
|
-
if (heapHolder.clearAndReindexScheduledSessions.get(sessionId) === pending)
|
|
13110
|
-
heapHolder.clearAndReindexScheduledSessions.delete(sessionId);
|
|
13111
|
-
logIndexingError(sessionId, "clear and reindex", error);
|
|
13112
|
-
});
|
|
13113
|
-
});
|
|
13114
|
-
});
|
|
13115
|
-
}
|
|
13116
|
-
function getMessageIndexQueueHeapStats() {
|
|
13117
|
-
return {
|
|
13118
|
-
queueLength: heapHolder.reconciliationScheduledSessions.size + heapHolder.incrementalTimers.size + heapHolder.pendingIncrementalKeys.size,
|
|
13119
|
-
reconciliationScheduled: heapHolder.reconciliationScheduledSessions.size,
|
|
13120
|
-
incrementalTimers: heapHolder.incrementalTimers.size,
|
|
13121
|
-
pendingIncremental: heapHolder.pendingIncrementalKeys.size,
|
|
13122
|
-
activeSessionLocks: heapHolder.sessionLocks.size,
|
|
13123
|
-
completedIncrementalKeys: heapHolder.completedIncrementalKeys.size,
|
|
13124
|
-
activeBufferMessages: [...heapHolder.activeReconcilerBuffers.values()].reduce((sum, messages) => sum + messages.length, 0),
|
|
13125
|
-
activeBufferBytes: [...heapHolder.activeReconcilerBuffers.values()].reduce((sum, messages) => sum + serializedMessageBytes(messages), 0)
|
|
13126
|
-
};
|
|
13127
|
-
}
|
|
13128
|
-
function clearSessionTracking(sessionId) {
|
|
13129
|
-
sessionEpochs.set(sessionId, (sessionEpochs.get(sessionId) ?? 0) + 1);
|
|
13130
|
-
for (const cancellation of indexCancellations.get(sessionId) ?? [])
|
|
13131
|
-
Atomics.store(cancellation, 0, 1);
|
|
13132
|
-
heapHolder.clearAndReindexScheduledSessions.delete(sessionId);
|
|
13133
|
-
heapHolder.reconciledSessions.delete(sessionId);
|
|
13134
|
-
heapHolder.reconciledSnapshots.delete(sessionId);
|
|
13135
|
-
heapHolder.stalledSessions.delete(sessionId);
|
|
13136
|
-
heapHolder.reconciliationScheduledSessions.delete(sessionId);
|
|
13137
|
-
heapHolder.sessionLocks.delete(sessionId);
|
|
13138
|
-
heapHolder.activeReconcilerBuffers.delete(sessionId);
|
|
13139
|
-
const prefix = `${sessionId}\x00`;
|
|
13140
|
-
for (const [key, timer] of heapHolder.incrementalTimers) {
|
|
13141
|
-
if (key.startsWith(prefix)) {
|
|
13142
|
-
clearTimeout(timer);
|
|
13143
|
-
heapHolder.incrementalTimers.delete(key);
|
|
13144
|
-
}
|
|
13145
|
-
}
|
|
13146
|
-
for (const key of heapHolder.pendingIncrementalKeys) {
|
|
13147
|
-
if (key.startsWith(prefix)) {
|
|
13148
|
-
heapHolder.pendingIncrementalKeys.delete(key);
|
|
13149
|
-
}
|
|
13150
|
-
}
|
|
13151
|
-
for (const key of heapHolder.completedIncrementalKeys) {
|
|
13152
|
-
if (key.startsWith(prefix))
|
|
13153
|
-
heapHolder.completedIncrementalKeys.delete(key);
|
|
13154
|
-
}
|
|
13155
|
-
}
|
|
13156
|
-
|
|
13157
12841
|
// src/features/magic-context/session-cache-ttl.ts
|
|
13158
12842
|
function readSessionCacheTtl(db, sessionId) {
|
|
13159
12843
|
const saved = readReplayEnvelope(db, sessionId).cacheTtlPolicy;
|
|
@@ -14755,9 +14439,9 @@ Nothing to upgrade: this session has no legacy compartments.`;
|
|
|
14755
14439
|
].join(`
|
|
14756
14440
|
`);
|
|
14757
14441
|
}
|
|
14758
|
-
function readDreamTaskBacklogsSafely(db, projectPath, tasks) {
|
|
14442
|
+
function readDreamTaskBacklogsSafely(db, projectPath, tasks, display = false) {
|
|
14759
14443
|
try {
|
|
14760
|
-
return getDreamTaskBacklogs(db, projectPath, tasks);
|
|
14444
|
+
return getDreamTaskBacklogs(db, projectPath, tasks, { display });
|
|
14761
14445
|
} catch {
|
|
14762
14446
|
return {};
|
|
14763
14447
|
}
|
|
@@ -14965,7 +14649,7 @@ ${renderUserFacingFailure("status_unavailable")}`;
|
|
|
14965
14649
|
const rustTailHygiene = rustStatus?.tail_hygiene;
|
|
14966
14650
|
const tailHygiene = resolveTailHygieneStatus(deps.getTailHygiene?.(sessionId), rustTailHygiene && typeof rustTailHygiene === "object" ? rustTailHygiene : undefined);
|
|
14967
14651
|
const statusOutput = executeStatus(deps.db, sessionId, deps.executeThresholdPercentage, liveModelKey, deps.historyBudgetPercentage, deps.sampleCommitClusterTrigger?.() ?? deps.commitClusterTrigger, deps.executeThresholdTokens, liveContextLimit, deps.dreamer ? {
|
|
14968
|
-
backlog: readDreamTaskBacklogsSafely(deps.db, deps.dreamer.projectPath, CANONICAL_DREAM_TASKS.filter((task) => deps.smartNotesEnabled !== false || task !== "evaluate-smart-notes")),
|
|
14652
|
+
backlog: readDreamTaskBacklogsSafely(deps.db, deps.dreamer.projectPath, CANONICAL_DREAM_TASKS.filter((task) => deps.smartNotesEnabled !== false || task !== "evaluate-smart-notes"), true),
|
|
14969
14653
|
progress: deps.getDreamerProgress?.() ?? null,
|
|
14970
14654
|
skipped: readSkippedDreamTasksSafely(deps.db, deps.dreamer.projectPath).filter((task) => deps.smartNotesEnabled !== false || task !== "evaluate-smart-notes"),
|
|
14971
14655
|
failures: readFailingDreamTasksSafely(deps.db, deps.dreamer.projectPath).filter((state) => deps.smartNotesEnabled !== false || state.task !== "evaluate-smart-notes")
|
|
@@ -15769,7 +15453,7 @@ function buildSidebarSnapshot(db, sessionId, directory, liveSessionState, inject
|
|
|
15769
15453
|
const dreamerProgress = projectIdentity ? liveSessionState?.dreamerProgressByProject?.get(projectIdentity) ?? null : null;
|
|
15770
15454
|
if (projectIdentity) {
|
|
15771
15455
|
try {
|
|
15772
|
-
dreamerBacklog = getDreamTaskBacklogs(db, projectIdentity, CANONICAL_DREAM_TASKS.filter((task) => smartNotesEnabled || task !== "evaluate-smart-notes"));
|
|
15456
|
+
dreamerBacklog = getDreamTaskBacklogs(db, projectIdentity, CANONICAL_DREAM_TASKS.filter((task) => smartNotesEnabled || task !== "evaluate-smart-notes"), { display: true });
|
|
15773
15457
|
} catch {}
|
|
15774
15458
|
}
|
|
15775
15459
|
if (projectIdentity) {
|
|
@@ -16521,7 +16205,7 @@ function registerRpcHandlers(rpcServer, args) {
|
|
|
16521
16205
|
const db = readDatabase();
|
|
16522
16206
|
if (!db)
|
|
16523
16207
|
return { ok: false, error: "db unavailable" };
|
|
16524
|
-
const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-
|
|
16208
|
+
const { runManagedRecomp } = await importPluginModule(() => import("./recomp-orchestrator-6ncc6wrw.js"));
|
|
16525
16209
|
const { sendIgnoredMessage } = await importPluginModule(() => import("./send-session-notification-vz86nt79.js"));
|
|
16526
16210
|
log2(`[rpc] recomp requested for session ${sessionId}`);
|
|
16527
16211
|
if (!args.client && !args.hiddenCompletionExecutor) {
|
|
@@ -16606,7 +16290,7 @@ function registerRpcHandlers(rpcServer, args) {
|
|
|
16606
16290
|
const db = readDatabase();
|
|
16607
16291
|
if (!db)
|
|
16608
16292
|
return { ok: false, error: "db unavailable" };
|
|
16609
|
-
const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-
|
|
16293
|
+
const { runManagedWrapup } = await importPluginModule(() => import("./wrapup-orchestrator-fyvyzcbm.js"));
|
|
16610
16294
|
const model = liveSessionState.liveModelBySession.get(sessionId);
|
|
16611
16295
|
const contextLimit = model ? resolveContextLimit(model.providerID, model.modelID, { db, sessionID: sessionId }) : 128000;
|
|
16612
16296
|
const ctx = {
|
|
@@ -18389,7 +18073,7 @@ var MODULE_PAGE_MAX_BYTES = SUBC_MAX_FRAME_BODY_BYTES - MODULE_PAGE_ENVELOPE_HEA
|
|
|
18389
18073
|
var MODULE_ITEM_CONTINUATION_CHUNK_BYTES = 64 * 1024;
|
|
18390
18074
|
var MODULE_ITEM_CONTINUATION_KEY = "__shadow_item_continuation";
|
|
18391
18075
|
var MODULE_ORDINAL_PAGE_SIZE = 500;
|
|
18392
|
-
function
|
|
18076
|
+
function yieldToEventLoop() {
|
|
18393
18077
|
return new Promise((resolve) => setTimeout(resolve, 0));
|
|
18394
18078
|
}
|
|
18395
18079
|
function canonicalJson(value) {
|
|
@@ -18479,7 +18163,7 @@ async function resolveOrdinalsForModule(args) {
|
|
|
18479
18163
|
pageEnds.push({ anchor: pageAnchor, entryCount: entries.length });
|
|
18480
18164
|
if (page.length < MODULE_ORDINAL_PAGE_SIZE)
|
|
18481
18165
|
break;
|
|
18482
|
-
await
|
|
18166
|
+
await yieldToEventLoop();
|
|
18483
18167
|
}
|
|
18484
18168
|
return { entries, end: pageAnchor, pageEnds };
|
|
18485
18169
|
};
|
|
@@ -29870,4 +29554,4 @@ function applyHiddenSubagentTemperature(input, output, log) {
|
|
|
29870
29554
|
output.temperature = temperature;
|
|
29871
29555
|
}
|
|
29872
29556
|
|
|
29873
|
-
export { logConfigDependencyNotesOnce, openOpenCodeDb, DREAMER_SYSTEM_PROMPT, runSessionProjectBackfill, SMART_NOTE_COMPILER_SYSTEM_PROMPT, createLiveSessionState, RETROSPECTIVE_MAX_USER_MESSAGE_CHARS, RETROSPECTIVE_MESSAGE_TRUNCATION_MARKER, OpenCodeRetrospectiveRawProvider, createDreamTaskExecutor, runManualDream, runDueTasksForProject, startDreamScheduleTimer, createDreamTimerModuleClient, ensureProjectRegisteredFromOpenCodeDirectory, recordOpenCodeProvenInputFloor, resolveOpenCodeProvenInputFloor, resolveContextWindowGeometry, resolveContextLimit, resolveExecuteThresholdDetail, resolveModelKey, resolveSessionId, createScheduler, describeStorageUnavailability,
|
|
29557
|
+
export { logConfigDependencyNotesOnce, openOpenCodeDb, DREAMER_SYSTEM_PROMPT, runSessionProjectBackfill, SMART_NOTE_COMPILER_SYSTEM_PROMPT, createLiveSessionState, RETROSPECTIVE_MAX_USER_MESSAGE_CHARS, RETROSPECTIVE_MESSAGE_TRUNCATION_MARKER, OpenCodeRetrospectiveRawProvider, createDreamTaskExecutor, runManualDream, runDueTasksForProject, startDreamScheduleTimer, createDreamTimerModuleClient, ensureProjectRegisteredFromOpenCodeDirectory, recordOpenCodeProvenInputFloor, resolveOpenCodeProvenInputFloor, resolveContextWindowGeometry, resolveContextLimit, resolveExecuteThresholdDetail, resolveModelKey, resolveSessionId, createScheduler, describeStorageUnavailability, resolveSessionCacheTtl, runEmbedHistoryDrain, pauseEmbedHistoryDrain, formatEmbedStatusText, getSessionProperties, getSessionCreatedInfo, getMessageUpdatedAssistantInfo, getMessageUpdatedInfo, getSessionErrorInfo, getMessageRemovedInfo, summarizeManualDream, createMagicContextCommandHandler, getLiveNotificationParams, createChatMessageHook, createEventHook, createCommandExecuteBeforeHook, createToolExecuteAfterHook, recordHiddenVariantWarning, buildStatusDetail, isDebugRpcEnabled, registerRpcHandlers, maybeAutoEmbedSessionBackfill, clearTransformDecisionSession, scheduleOpenCodeTransformDecisionWrite, stageOpenCodeV2TransformDecision, bindOpenCodeV2TransformDecision, maybeDeliverChannel2, armLatestThinkingRecovery, armBindingRecoverySafely, armLatestThinkingRecoveryFromError, createM0RenderOptions, lkgReplayLimit, measureLkgReplay, STORAGE_BUSY_MESSAGE, StorageBusyRefusalError, bindSystemDateRequestIdentity, bindSystemDateOutput, registerSystemDateRefresh, rustWrapupHistorianFields, UnmanagedOverWindowError, UnresolvedHistoryBoundaryError, clearMessageTokensCache, createTransform, createSubcModuleClient, createModuleToolBackends, createRustRefusalRecovery, createSystemPromptHashHandler, tryMessagesTransformLkgReplay, createMessagesTransformHandler, primaryOnlyToolIds, subagentToolRefusal, guardSubagentTools, hideSubagentTools, removePrimaryOnlyTools, storedSubagentMode, createCtxExpandTools, CTX_MEMORY_LIST_TOOL_NAME, CTX_MEMORY_ACTIONS, createCtxMemoryTools, createCtxMemoryListTools, CTX_NOTE_DESCRIPTION, withoutSmartNoteText, createCtxNoteTools, createCtxReduceTools, createCtxSearchTools, parameterDescriptionsFor, applyJsonSchemaParameterDescriptions, MagicContextRpcServer, subagentTemperature, applyHiddenSubagentTemperature };
|