@retaw106/mmc-oc 2.6.0 → 2.7.1
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/{context-cfbjrr0n.js → context-9q17e52a.js} +140 -53
- package/dist/features/magic-context/auto-search-diagnostics.d.ts +27 -0
- package/dist/features/magic-context/auto-search-diagnostics.d.ts.map +1 -0
- package/dist/features/magic-context/search.d.ts +4 -0
- package/dist/features/magic-context/search.d.ts.map +1 -1
- package/dist/hooks/magic-context/auto-search-observation.d.ts +13 -0
- package/dist/hooks/magic-context/auto-search-observation.d.ts.map +1 -0
- package/dist/hooks/magic-context/auto-search-runner.d.ts.map +1 -1
- package/dist/hooks/magic-context/transform.d.ts.map +1 -1
- package/dist/{index-1np16gxq.js → index-cgjyhwdk.js} +1 -1
- package/dist/{index-xk1dz6q9.js → index-xrxpbe74.js} +34 -1
- package/dist/index.js +14 -4
- package/dist/{recomp-orchestrator-51xyaexp.js → recomp-orchestrator-gzd1at06.js} +2 -2
- package/dist/shared/search-text.d.ts +2 -0
- package/dist/shared/search-text.d.ts.map +1 -1
- package/dist/tools/ctx-expand/render.d.ts +5 -3
- package/dist/tools/ctx-expand/render.d.ts.map +1 -1
- package/dist/tools/ctx-expand/tools.d.ts +2 -0
- package/dist/tools/ctx-expand/tools.d.ts.map +1 -1
- package/dist/tools/parameter-descriptions.d.ts +6 -6
- package/dist/tools/parameter-descriptions.d.ts.map +1 -1
- package/dist/tui.js +2144 -0
- package/dist/v2/server.js +194 -54
- package/dist/v2/tui/client.d.ts +57 -0
- package/dist/v2/tui/client.d.ts.map +1 -0
- package/dist/v2/tui/context-rpc.d.ts +63 -0
- package/dist/v2/tui/context-rpc.d.ts.map +1 -0
- package/dist/v2/tui/entry.d.ts +8 -0
- package/dist/v2/tui/entry.d.ts.map +1 -0
- package/dist/v2/tui/notification-socket.d.ts +26 -0
- package/dist/v2/tui/notification-socket.d.ts.map +1 -0
- package/dist/v2/tui/session-directory.d.ts +22 -0
- package/dist/v2/tui/session-directory.d.ts.map +1 -0
- package/dist/v2/tui/types.d.ts +110 -0
- package/dist/v2/tui/types.d.ts.map +1 -0
- package/dist/{wrapup-orchestrator-g0mww1h4.js → wrapup-orchestrator-ghq4y406.js} +2 -2
- package/package.json +13 -3
- package/src/shared/prompt-surface-a1-golden.md +5 -5
- package/src/shared/search-text.test.ts +36 -1
- package/src/shared/search-text.ts +48 -0
- package/tui.js +4 -0
|
@@ -73,7 +73,7 @@ import {
|
|
|
73
73
|
queueMemoryMutation,
|
|
74
74
|
scheduleAfterBootQuiet,
|
|
75
75
|
cleanSearchText,
|
|
76
|
-
|
|
76
|
+
hintKeywordRelevance,
|
|
77
77
|
matchedSearchSnippet,
|
|
78
78
|
getLastIndexedOrdinal,
|
|
79
79
|
getIndexedMessageIdAtOrdinal,
|
|
@@ -308,7 +308,7 @@ import {
|
|
|
308
308
|
recordHighPressureNoEligibleHead,
|
|
309
309
|
getActiveCompartmentRun,
|
|
310
310
|
startCompartmentAgent
|
|
311
|
-
} from "./index-
|
|
311
|
+
} from "./index-xrxpbe74.js";
|
|
312
312
|
import {
|
|
313
313
|
getHarness,
|
|
314
314
|
getDataDir,
|
|
@@ -6592,6 +6592,38 @@ function seedSessionCacheTtlIfUnsynced(args) {
|
|
|
6592
6592
|
return true;
|
|
6593
6593
|
}
|
|
6594
6594
|
|
|
6595
|
+
// src/features/magic-context/auto-search-diagnostics.ts
|
|
6596
|
+
var memoryHintContent = new WeakMap;
|
|
6597
|
+
function withMemoryHintContent(result, fullContent) {
|
|
6598
|
+
memoryHintContent.set(result, fullContent);
|
|
6599
|
+
return result;
|
|
6600
|
+
}
|
|
6601
|
+
function createAutoSearchDiagnostics(threshold) {
|
|
6602
|
+
return {
|
|
6603
|
+
threshold,
|
|
6604
|
+
lanes: {},
|
|
6605
|
+
pool: "unknown",
|
|
6606
|
+
poolRows: null,
|
|
6607
|
+
peek: "not-run",
|
|
6608
|
+
workerStarted: false
|
|
6609
|
+
};
|
|
6610
|
+
}
|
|
6611
|
+
function autoSearchRelevance(query, result) {
|
|
6612
|
+
const content = result.source === "memory" ? memoryHintContent.get(result) ?? result.content : result.content;
|
|
6613
|
+
if (cleanSearchText(content).length === 0)
|
|
6614
|
+
return 0;
|
|
6615
|
+
return result.source === "message" || "matchType" in result ? hintKeywordRelevance(query, content) : result.score;
|
|
6616
|
+
}
|
|
6617
|
+
function recordAutoSearchLane(diagnostics, lane, query, results) {
|
|
6618
|
+
if (!diagnostics)
|
|
6619
|
+
return;
|
|
6620
|
+
const scores = results.map((result) => result.relevanceScore ?? autoSearchRelevance(query, result));
|
|
6621
|
+
diagnostics.lanes[lane] = {
|
|
6622
|
+
top: scores.length ? Math.max(...scores) : null,
|
|
6623
|
+
nearMisses: scores.filter((score) => score >= 0.5 && score < diagnostics.threshold).length
|
|
6624
|
+
};
|
|
6625
|
+
}
|
|
6626
|
+
|
|
6595
6627
|
// src/features/magic-context/literal-probes.ts
|
|
6596
6628
|
var MAX_PROBES = 5;
|
|
6597
6629
|
var MIN_PROBE_LENGTH = 3;
|
|
@@ -7064,7 +7096,7 @@ function mergeMemoryResults(args) {
|
|
|
7064
7096
|
suppressedVisibleIds.push(id);
|
|
7065
7097
|
continue;
|
|
7066
7098
|
}
|
|
7067
|
-
results.push({
|
|
7099
|
+
results.push(withMemoryHintContent({
|
|
7068
7100
|
source: "memory",
|
|
7069
7101
|
content: previewText(memory.content),
|
|
7070
7102
|
score,
|
|
@@ -7072,7 +7104,7 @@ function mergeMemoryResults(args) {
|
|
|
7072
7104
|
category: memory.category,
|
|
7073
7105
|
matchType: "fts",
|
|
7074
7106
|
sourceName: args.sourceNameByMemoryId?.get(memory.id)
|
|
7075
|
-
});
|
|
7107
|
+
}, memory.content));
|
|
7076
7108
|
}
|
|
7077
7109
|
return {
|
|
7078
7110
|
results: results.sort((left, right) => {
|
|
@@ -7669,8 +7701,12 @@ async function unifiedSearch(db, sessionId, projectPath, query, options = {}) {
|
|
|
7669
7701
|
options.diagnostics.suppressedLiveMessageMatches = outcome.suppressedLiveMessageMatches;
|
|
7670
7702
|
}
|
|
7671
7703
|
messageResults = outcome.results.filter((result) => result.messageId !== options.excludeMessageId);
|
|
7704
|
+
recordAutoSearchLane(options.autoSearchDiagnostics, "messages", trimmedQuery, messageResults);
|
|
7705
|
+
options.onAutoSearchDiagnostics?.();
|
|
7672
7706
|
}
|
|
7673
7707
|
const workspace = resolveSearchWorkspaceContext(db, projectPath);
|
|
7708
|
+
if (options.autoSearchDiagnostics)
|
|
7709
|
+
options.autoSearchDiagnostics.pool = "off";
|
|
7674
7710
|
const [memoryOutcome, primerResults, noteResults] = await Promise.all([
|
|
7675
7711
|
runMemory ? searchMemories({
|
|
7676
7712
|
db,
|
|
@@ -7705,6 +7741,10 @@ async function unifiedSearch(db, sessionId, projectPath, query, options = {}) {
|
|
|
7705
7741
|
if (options.diagnostics) {
|
|
7706
7742
|
options.diagnostics.suppressedVisibleMemoryIds = memoryOutcome.suppressedVisibleIds;
|
|
7707
7743
|
}
|
|
7744
|
+
recordAutoSearchLane(options.autoSearchDiagnostics, "memory", trimmedQuery, memoryOutcome.results);
|
|
7745
|
+
recordAutoSearchLane(options.autoSearchDiagnostics, "primers", trimmedQuery, primerResults);
|
|
7746
|
+
recordAutoSearchLane(options.autoSearchDiagnostics, "notes", trimmedQuery, noteResults);
|
|
7747
|
+
options.onAutoSearchDiagnostics?.();
|
|
7708
7748
|
const results = [...memoryOutcome.results, ...primerResults, ...messageResults, ...noteResults].sort(compareUnifiedResults).slice(0, limit);
|
|
7709
7749
|
const countRetrievals = options.countRetrievals ?? true;
|
|
7710
7750
|
if (countRetrievals) {
|
|
@@ -7726,7 +7766,7 @@ async function unifiedSearch(db, sessionId, projectPath, query, options = {}) {
|
|
|
7726
7766
|
if (options.autoHint) {
|
|
7727
7767
|
return results.map((result) => ({
|
|
7728
7768
|
...result,
|
|
7729
|
-
relevanceScore:
|
|
7769
|
+
relevanceScore: autoSearchRelevance(trimmedQuery, result)
|
|
7730
7770
|
}));
|
|
7731
7771
|
}
|
|
7732
7772
|
return results;
|
|
@@ -8402,6 +8442,32 @@ function selectAutoSearchResults(results, threshold) {
|
|
|
8402
8442
|
return results.filter((result) => relevance(result) >= threshold).sort((left, right) => relevance(right) - relevance(left));
|
|
8403
8443
|
}
|
|
8404
8444
|
|
|
8445
|
+
// src/hooks/magic-context/auto-search-observation.ts
|
|
8446
|
+
var disabledTurns = new WeakMap;
|
|
8447
|
+
function logDisabledAutoSearch(db, sessionId, messageId, threshold, startedAt) {
|
|
8448
|
+
const sessions = disabledTurns.get(db) ?? new Map;
|
|
8449
|
+
disabledTurns.set(db, sessions);
|
|
8450
|
+
if (sessions.get(sessionId) === messageId)
|
|
8451
|
+
return;
|
|
8452
|
+
sessions.set(sessionId, messageId);
|
|
8453
|
+
observeAutoSearch(sessionId, threshold, startedAt).finish("disabled");
|
|
8454
|
+
}
|
|
8455
|
+
function observeAutoSearch(sessionId, threshold, startedAt) {
|
|
8456
|
+
const diagnostics = createAutoSearchDiagnostics(threshold);
|
|
8457
|
+
let logged = false;
|
|
8458
|
+
return {
|
|
8459
|
+
diagnostics,
|
|
8460
|
+
finish(outcome, reason) {
|
|
8461
|
+
if (logged)
|
|
8462
|
+
return;
|
|
8463
|
+
logged = true;
|
|
8464
|
+
const lanes = Object.entries(diagnostics.lanes).map(([lane, value]) => `${lane}:${value.top?.toFixed(3) ?? "none"}`).join(",");
|
|
8465
|
+
const nearMisses = Object.values(diagnostics.lanes).reduce((sum, lane) => sum + lane.nearMisses, 0);
|
|
8466
|
+
sessionLog(sessionId, `auto-search: decision outcome=${outcome}${reason ? ` reason=${reason}` : ""} lanes=${lanes || "none"} nearMisses=${nearMisses} threshold=${threshold} pool=${diagnostics.pool} rows=${diagnostics.poolRows ?? "unknown"} workerStarted=${diagnostics.workerStarted ?? "unknown"} peek=${diagnostics.peek} elapsedMs=${Math.round(performance.now() - startedAt)}`);
|
|
8467
|
+
}
|
|
8468
|
+
};
|
|
8469
|
+
}
|
|
8470
|
+
|
|
8405
8471
|
// src/hooks/magic-context/transform-message-helpers.ts
|
|
8406
8472
|
function isMeaningfulUserMessage(msg) {
|
|
8407
8473
|
return msg.info.role === "user" && hasMeaningfulUserText2(msg.parts);
|
|
@@ -8592,8 +8658,12 @@ async function coalesceAutoSearchTurn(db, sessionId, messageId, operation, repla
|
|
|
8592
8658
|
async function runAutoSearchHint(args) {
|
|
8593
8659
|
const startedAt = performance.now();
|
|
8594
8660
|
const { sessionId, db, messages, options } = args;
|
|
8595
|
-
if (!options.enabled)
|
|
8661
|
+
if (!options.enabled) {
|
|
8662
|
+
const tail = findLatestMeaningfulUserMessage(messages);
|
|
8663
|
+
if (tail && typeof tail.info.id === "string" && messages.at(-1) === tail)
|
|
8664
|
+
logDisabledAutoSearch(db, sessionId, tail.info.id, options.scoreThreshold, startedAt);
|
|
8596
8665
|
return AUTO_SEARCH_OK;
|
|
8666
|
+
}
|
|
8597
8667
|
const userMsg = findLatestMeaningfulUserMessage(messages);
|
|
8598
8668
|
if (!userMsg || typeof userMsg.info.id !== "string")
|
|
8599
8669
|
return AUTO_SEARCH_OK;
|
|
@@ -8636,6 +8706,7 @@ async function runAutoSearchHint(args) {
|
|
|
8636
8706
|
} catch {}
|
|
8637
8707
|
return AUTO_SEARCH_OK;
|
|
8638
8708
|
}
|
|
8709
|
+
const observation = observeAutoSearch(sessionId, options.scoreThreshold, startedAt);
|
|
8639
8710
|
const writeNoHintAndReconcile = (reason) => {
|
|
8640
8711
|
let outcome;
|
|
8641
8712
|
try {
|
|
@@ -8647,20 +8718,23 @@ async function runAutoSearchHint(args) {
|
|
|
8647
8718
|
} catch (error) {
|
|
8648
8719
|
if (isTransientSqliteError(error)) {
|
|
8649
8720
|
rememberUnpublishedAutoSearchNoHint(sessionId, userMsgId, reason);
|
|
8721
|
+
observation.finish("error", "storage-busy");
|
|
8650
8722
|
return { ok: false, kind: "storage-busy" };
|
|
8651
8723
|
}
|
|
8652
8724
|
throw error;
|
|
8653
8725
|
}
|
|
8654
|
-
if (!outcome.ok)
|
|
8726
|
+
if (!outcome.ok) {
|
|
8727
|
+
observation.finish("error", "cas-exhausted");
|
|
8655
8728
|
return { ok: false, kind: "cas-exhaustion" };
|
|
8729
|
+
}
|
|
8656
8730
|
if (outcome.kind === "already-present" && outcome.decision.decision === "hint") {
|
|
8657
8731
|
appendReminderToUserMessageById(messages, userMsgId, outcome.decision.text);
|
|
8658
8732
|
}
|
|
8733
|
+
observation.finish(outcome.decision.decision === "hint" ? "attached" : reason === "below-threshold" ? "below-threshold" : reason === "error" ? "error" : "no-candidates", reason);
|
|
8659
8734
|
return AUTO_SEARCH_OK;
|
|
8660
8735
|
};
|
|
8661
8736
|
const rawPartsText = collectUserPromptParts(userMsg);
|
|
8662
8737
|
if (hasStackedAugmentation(rawPartsText)) {
|
|
8663
|
-
sessionLog(sessionId, "auto-search: skipping — user message already carries augmentation/hint");
|
|
8664
8738
|
return writeNoHintAndReconcile("stacked");
|
|
8665
8739
|
}
|
|
8666
8740
|
const rawPrompt = extractUserPromptText(userMsg);
|
|
@@ -8676,6 +8750,7 @@ async function runAutoSearchHint(args) {
|
|
|
8676
8750
|
if (checkDeadline())
|
|
8677
8751
|
return null;
|
|
8678
8752
|
const searchOptions = {
|
|
8753
|
+
autoSearchDiagnostics: observation.diagnostics,
|
|
8679
8754
|
limit: 10,
|
|
8680
8755
|
autoHint: true,
|
|
8681
8756
|
maxMessageOrdinal: Math.max(0, getLastCompartmentEndMessage(db, sessionId)),
|
|
@@ -8689,16 +8764,15 @@ async function runAutoSearchHint(args) {
|
|
|
8689
8764
|
countRetrievals: false
|
|
8690
8765
|
});
|
|
8691
8766
|
}, startedAt);
|
|
8692
|
-
} catch
|
|
8767
|
+
} catch {
|
|
8693
8768
|
if (lifecycleSignal.aborted)
|
|
8694
8769
|
return AUTO_SEARCH_OK;
|
|
8695
|
-
log(`[auto-search] unified search failed for session ${sessionId} (no-hint frozen for this turn): ${error instanceof Error ? error.message : String(error)}`);
|
|
8696
8770
|
const outcome = writeNoHintAndReconcile("error");
|
|
8697
8771
|
return outcome.ok ? { ok: false, kind: "search-failure" } : outcome;
|
|
8698
8772
|
}
|
|
8699
8773
|
if (results === null) {
|
|
8700
8774
|
persistAutoSearchSkip(db, sessionId, userMsgId, "timeout");
|
|
8701
|
-
|
|
8775
|
+
observation.finish("timeout");
|
|
8702
8776
|
return { ok: false, kind: "timeout" };
|
|
8703
8777
|
}
|
|
8704
8778
|
if (results.length === 0) {
|
|
@@ -8706,7 +8780,6 @@ async function runAutoSearchHint(args) {
|
|
|
8706
8780
|
}
|
|
8707
8781
|
results = selectAutoSearchResults(results, options.scoreThreshold);
|
|
8708
8782
|
if (results.length === 0) {
|
|
8709
|
-
sessionLog(sessionId, `auto-search: no fragment meets relevance threshold ${options.scoreThreshold}`);
|
|
8710
8783
|
return writeNoHintAndReconcile("below-threshold");
|
|
8711
8784
|
}
|
|
8712
8785
|
const hintText = buildAutoSearchHint(results, {
|
|
@@ -8725,13 +8798,13 @@ ${hintText}`;
|
|
|
8725
8798
|
text: payload
|
|
8726
8799
|
});
|
|
8727
8800
|
if (!outcome.ok) {
|
|
8728
|
-
|
|
8801
|
+
observation.finish("error", "cas-exhausted");
|
|
8729
8802
|
return { ok: false, kind: "cas-exhaustion" };
|
|
8730
8803
|
}
|
|
8731
8804
|
if (outcome.decision.decision === "hint") {
|
|
8732
8805
|
appendReminderToUserMessageById(messages, userMsgId, outcome.decision.text);
|
|
8733
8806
|
}
|
|
8734
|
-
|
|
8807
|
+
observation.finish(outcome.decision.decision === "hint" ? "attached" : "no-candidates");
|
|
8735
8808
|
return AUTO_SEARCH_OK;
|
|
8736
8809
|
}, replayServedDecision);
|
|
8737
8810
|
}
|
|
@@ -19243,7 +19316,7 @@ function registerRpcHandlers(rpcServer, args) {
|
|
|
19243
19316
|
const db = readDatabase();
|
|
19244
19317
|
if (!db)
|
|
19245
19318
|
return { ok: false, error: "db unavailable" };
|
|
19246
|
-
const { runManagedRecomp } = await import("./recomp-orchestrator-
|
|
19319
|
+
const { runManagedRecomp } = await import("./recomp-orchestrator-gzd1at06.js");
|
|
19247
19320
|
const { sendIgnoredMessage } = await import("./send-session-notification-vdppp5x6.js");
|
|
19248
19321
|
log(`[rpc] recomp requested for session ${sessionId}`);
|
|
19249
19322
|
if (!args.client && !args.hiddenCompletionExecutor) {
|
|
@@ -19293,7 +19366,7 @@ function registerRpcHandlers(rpcServer, args) {
|
|
|
19293
19366
|
const db = readDatabase();
|
|
19294
19367
|
if (!db)
|
|
19295
19368
|
return { ok: false, error: "db unavailable" };
|
|
19296
|
-
const { runManagedWrapup } = await import("./wrapup-orchestrator-
|
|
19369
|
+
const { runManagedWrapup } = await import("./wrapup-orchestrator-ghq4y406.js");
|
|
19297
19370
|
const model = liveSessionState.liveModelBySession.get(sessionId);
|
|
19298
19371
|
const contextLimit = model ? resolveContextLimit(model.providerID, model.modelID, { db, sessionID: sessionId }) : 128000;
|
|
19299
19372
|
const ctx = {
|
|
@@ -19997,9 +20070,9 @@ var FULL_PARAMETER_DESCRIPTIONS = {
|
|
|
19997
20070
|
},
|
|
19998
20071
|
mmc_memory: {
|
|
19999
20072
|
action: "write | update | archive | merge | get",
|
|
20000
|
-
content: "The memory text — one standalone fact (write, update, merge).",
|
|
20001
|
-
category: "Kind of fact
|
|
20002
|
-
ids: "Memory ids from <project-memory>: one for update, one or more for archive, two or more for merge, 1–20 for get.",
|
|
20073
|
+
content: "The memory text — one standalone fact (write, update, merge). Archive and get take an empty string.",
|
|
20074
|
+
category: "Kind of fact: the new fact's kind for write; on update/merge, the memory's current category to keep it. Archive and get ignore it.",
|
|
20075
|
+
ids: "Memory ids from <project-memory>: one for update, one or more for archive, two or more for merge, 1–20 for get. Write takes an empty list.",
|
|
20003
20076
|
reason: "Why it is being archived (optional)."
|
|
20004
20077
|
},
|
|
20005
20078
|
mmc_search: {
|
|
@@ -20031,9 +20104,9 @@ var LIGHT_PARAMETER_DESCRIPTIONS = {
|
|
|
20031
20104
|
},
|
|
20032
20105
|
mmc_memory: {
|
|
20033
20106
|
action: "write | update | archive | merge | get",
|
|
20034
|
-
content: "One standalone fact (write, update, merge).",
|
|
20035
|
-
category: "Kind of fact (
|
|
20036
|
-
ids: "Ids from <project-memory>: one for update, 1+ for archive, 2+ for merge, 1–20 for get.",
|
|
20107
|
+
content: "One standalone fact (write, update, merge). Archive and get: empty string.",
|
|
20108
|
+
category: "Kind of fact (write; on update/merge pass the current category to keep it). Archive and get ignore it.",
|
|
20109
|
+
ids: "Ids from <project-memory>: one for update, 1+ for archive, 2+ for merge, 1–20 for get. Write: empty list.",
|
|
20037
20110
|
reason: "Why it is archived (optional)."
|
|
20038
20111
|
},
|
|
20039
20112
|
mmc_search: {
|
|
@@ -23997,6 +24070,17 @@ function resolveCtxExpandMode(args, domain) {
|
|
|
23997
24070
|
|
|
23998
24071
|
// src/tools/ctx-expand/render.ts
|
|
23999
24072
|
import { createHash as createHash5 } from "node:crypto";
|
|
24073
|
+
function recoveryParts(sessionId, message, attachments) {
|
|
24074
|
+
return attachments ? [...message.parts, ...attachments(sessionId, message.id)] : message.parts;
|
|
24075
|
+
}
|
|
24076
|
+
function attachmentNotice(part) {
|
|
24077
|
+
const field = (value) => typeof value === "string" ? value.trim().replace(/[\r\n]+/g, " ") : "";
|
|
24078
|
+
const source = isRecord4(part.source) ? part.source : {};
|
|
24079
|
+
const location = [part.url, part.path, source.uri, source.url, source.path].map(field).find((value) => value && !/^(data|blob):/i.test(value));
|
|
24080
|
+
const name = field(part.filename) || field(part.name);
|
|
24081
|
+
const mime = field(part.mime) || field(part.mimeType) || field(part.mediaType);
|
|
24082
|
+
return `[file]${name ? ` ${name}` : ""}${mime ? ` (${mime})` : ""}` + `${location ? ` — stored location: ${location}` : ""}` + "; content not recovered. If needed, ask the user to attach it again.";
|
|
24083
|
+
}
|
|
24000
24084
|
function isRecord4(value) {
|
|
24001
24085
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
24002
24086
|
}
|
|
@@ -24103,8 +24187,8 @@ function renderPartPreview(part, expandTools) {
|
|
|
24103
24187
|
if (reasoning !== null)
|
|
24104
24188
|
return ` • [reasoning] ${truncate2(reasoning, 120)}`;
|
|
24105
24189
|
const type = typeof part.type === "string" ? part.type : "part";
|
|
24106
|
-
if (type === "file")
|
|
24107
|
-
return
|
|
24190
|
+
if (type === "file" || type === "image")
|
|
24191
|
+
return ` • ${attachmentNotice(part)}`;
|
|
24108
24192
|
if (type === "step-start" || type === "step-finish")
|
|
24109
24193
|
return null;
|
|
24110
24194
|
return ` • [${type}]`;
|
|
@@ -24134,13 +24218,11 @@ ${tool.output}`);
|
|
|
24134
24218
|
`);
|
|
24135
24219
|
}
|
|
24136
24220
|
const type = typeof part.type === "string" ? part.type : "part";
|
|
24137
|
-
if (type === "file")
|
|
24138
|
-
|
|
24139
|
-
return ` [file]${name ? ` ${name}` : ""}`;
|
|
24140
|
-
}
|
|
24221
|
+
if (type === "file" || type === "image")
|
|
24222
|
+
return ` ${attachmentNotice(part)}`;
|
|
24141
24223
|
return null;
|
|
24142
24224
|
}
|
|
24143
|
-
function renderMessageByOrdinal(sessionId, ordinal) {
|
|
24225
|
+
function renderMessageByOrdinal(sessionId, ordinal, attachments) {
|
|
24144
24226
|
const found = [];
|
|
24145
24227
|
visitRawSessionMessages2(sessionId, ordinal, ordinal, (m) => {
|
|
24146
24228
|
if (m.ordinal === ordinal)
|
|
@@ -24151,7 +24233,7 @@ function renderMessageByOrdinal(sessionId, ordinal) {
|
|
|
24151
24233
|
if (!msg) {
|
|
24152
24234
|
return `No message at ordinal ${ordinal} is currently in this session's stored history — ` + `it may have been removed by a session prune/revert, or the ordinal may be wrong. ` + `Re-run the tool if you still need the data.`;
|
|
24153
24235
|
}
|
|
24154
|
-
const rendered = msg.
|
|
24236
|
+
const rendered = recoveryParts(sessionId, msg, attachments).map(renderPartFull).filter((l) => l !== null);
|
|
24155
24237
|
const lines = [`[${msg.ordinal}] ${roleLabel(msg.role)} — full recovery:`, ""];
|
|
24156
24238
|
if (rendered.length === 0) {
|
|
24157
24239
|
lines.push(" (no recoverable content — message had only structural/reasoning parts)");
|
|
@@ -24161,14 +24243,14 @@ function renderMessageByOrdinal(sessionId, ordinal) {
|
|
|
24161
24243
|
return lines.join(`
|
|
24162
24244
|
`);
|
|
24163
24245
|
}
|
|
24164
|
-
function renderVerboseRange(sessionId, start, end, tokenBudget, expandTools) {
|
|
24246
|
+
function renderVerboseRange(sessionId, start, end, tokenBudget, expandTools, attachments) {
|
|
24165
24247
|
const out = [];
|
|
24166
24248
|
let usedTokens = 0;
|
|
24167
24249
|
let lastOrdinal = start - 1;
|
|
24168
24250
|
let truncated = false;
|
|
24169
24251
|
visitRawSessionMessages2(sessionId, start, end, (msg) => {
|
|
24170
24252
|
const header = `[${msg.ordinal}] ${verboseRoleLabel(msg)}`;
|
|
24171
|
-
const partLines = msg.
|
|
24253
|
+
const partLines = recoveryParts(sessionId, msg, attachments).map((part) => renderPartPreview(part, expandTools)).filter((l) => l !== null);
|
|
24172
24254
|
const block = partLines.length > 0 ? `${header}
|
|
24173
24255
|
${partLines.join(`
|
|
24174
24256
|
`)}` : header;
|
|
@@ -24186,7 +24268,23 @@ ${partLines.join(`
|
|
|
24186
24268
|
|
|
24187
24269
|
`), lastOrdinal, truncated };
|
|
24188
24270
|
}
|
|
24189
|
-
function
|
|
24271
|
+
function renderVerboseRangeForTool(sessionId, start, end, tokenBudget, expandTools, attachments) {
|
|
24272
|
+
const v = renderVerboseRange(sessionId, start, end, tokenBudget, expandTools, attachments);
|
|
24273
|
+
if (!v.text) {
|
|
24274
|
+
return `No messages found in range ${start}-${end}. The range may be outside this session's history.`;
|
|
24275
|
+
}
|
|
24276
|
+
const out = [
|
|
24277
|
+
`Messages ${start}-${v.lastOrdinal} (verbose). Recover any one in full with mmc_expand(message=<ordinal>):`,
|
|
24278
|
+
"",
|
|
24279
|
+
v.text
|
|
24280
|
+
];
|
|
24281
|
+
if (v.truncated) {
|
|
24282
|
+
out.push("", `Truncated at message ${v.lastOrdinal} (budget: ~${tokenBudget} tokens). Call again with start=${v.lastOrdinal + 1} end=${end} verbose=true for more.`);
|
|
24283
|
+
}
|
|
24284
|
+
return out.join(`
|
|
24285
|
+
`);
|
|
24286
|
+
}
|
|
24287
|
+
function renderItemByTag(db, sessionId, number, textIndexDomain = "part", attachments) {
|
|
24190
24288
|
const tag = getTagById(db, sessionId, number);
|
|
24191
24289
|
if (!tag)
|
|
24192
24290
|
return `no tag ${number} in this session; if ${number} came from a <session-history> heading or a ctx_search hit, it is an ordinal: use message=${number}`;
|
|
@@ -24211,17 +24309,19 @@ function renderItemByTag(db, sessionId, number, textIndexDomain = "part") {
|
|
|
24211
24309
|
return rendered.length ? rendered.join(`
|
|
24212
24310
|
`) : `Tag ${number}'s original tool call is no longer in stored history.`;
|
|
24213
24311
|
}
|
|
24214
|
-
const scoped = /^(.*):p(\d+)$/.exec(tag.messageId);
|
|
24312
|
+
const scoped = /^(.*):(?:p|file)(\d+)$/.exec(tag.messageId);
|
|
24215
24313
|
const derived = /^(.*):mc-text-v1:([a-f0-9]+):([a-f0-9]+):o(\d+)$/.exec(tag.messageId);
|
|
24216
24314
|
const owner = scoped?.[1] ?? derived?.[1] ?? tag.messageId;
|
|
24217
24315
|
const message = readRawSessionMessageById2(sessionId, owner);
|
|
24218
24316
|
if (!message)
|
|
24219
24317
|
return `Tag ${number}'s original text is no longer in stored history.`;
|
|
24220
24318
|
const index = scoped ? Number(scoped[2]) : 0;
|
|
24221
|
-
const
|
|
24222
|
-
const
|
|
24319
|
+
const attached = attachments?.(sessionId, message.id) ?? [];
|
|
24320
|
+
const parts = [...message.parts, ...attached];
|
|
24321
|
+
const piText = parts.filter((part) => isRecord4(part) && part.type === "text");
|
|
24322
|
+
const part = tag.type === "file" ? attached.find((part) => isRecord4(part) && part.partIndex === index) ?? message.parts[index] : parts[index];
|
|
24223
24323
|
const matching = derived ? piText.filter((part) => isRecord4(part) && typeof part.text === "string" && createHash5("sha256").update(part.text).digest("hex") === derived[3]) : [];
|
|
24224
|
-
const selected = derived ? matching[Number(derived[4])] : textIndexDomain === "text" ? piText[index] : part;
|
|
24324
|
+
const selected = derived ? matching[Number(derived[4])] : textIndexDomain === "text" && tag.type !== "file" ? piText[index] : part;
|
|
24225
24325
|
if (!selected)
|
|
24226
24326
|
return `Tag ${number}'s original text part is no longer in stored history.`;
|
|
24227
24327
|
const renderedPart = renderPartFull(selected);
|
|
@@ -24309,10 +24409,10 @@ function createCtxExpandTool(deps) {
|
|
|
24309
24409
|
return mode.message;
|
|
24310
24410
|
}
|
|
24311
24411
|
if (mode.kind === "tag") {
|
|
24312
|
-
return renderItemByTag(deps.db, sessionId, mode.tag);
|
|
24412
|
+
return renderItemByTag(deps.db, sessionId, mode.tag, "part", deps.recoveryAttachments);
|
|
24313
24413
|
}
|
|
24314
24414
|
if (mode.kind === "message") {
|
|
24315
|
-
return renderSearchArchive(deps.db, sessionId, mode.message, mode.message, CTX_EXPAND_TOKEN_BUDGET) ?? renderMessageByOrdinal(sessionId, mode.message);
|
|
24415
|
+
return renderSearchArchive(deps.db, sessionId, mode.message, mode.message, CTX_EXPAND_TOKEN_BUDGET) ?? renderMessageByOrdinal(sessionId, mode.message, deps.recoveryAttachments);
|
|
24316
24416
|
}
|
|
24317
24417
|
const { start, end, verbose } = mode;
|
|
24318
24418
|
const lastCompartmentEnd = getLastCompartmentEndMessage(deps.db, sessionId);
|
|
@@ -24324,20 +24424,7 @@ function createCtxExpandTool(deps) {
|
|
|
24324
24424
|
if (archived)
|
|
24325
24425
|
return archived;
|
|
24326
24426
|
if (verbose) {
|
|
24327
|
-
|
|
24328
|
-
if (!v.text) {
|
|
24329
|
-
return `No messages found in range ${start}-${effectiveEnd}. The range may be outside this session's history.`;
|
|
24330
|
-
}
|
|
24331
|
-
const out = [
|
|
24332
|
-
`Messages ${start}-${v.lastOrdinal} (verbose). Recover any one in full with mmc_expand(message=<ordinal>):`,
|
|
24333
|
-
"",
|
|
24334
|
-
v.text
|
|
24335
|
-
];
|
|
24336
|
-
if (v.truncated) {
|
|
24337
|
-
out.push("", `Truncated at message ${v.lastOrdinal} (budget: ~${CTX_EXPAND_TOKEN_BUDGET} tokens). Call again with start=${v.lastOrdinal + 1} end=${effectiveEnd} verbose=true for more.`);
|
|
24338
|
-
}
|
|
24339
|
-
return out.join(`
|
|
24340
|
-
`);
|
|
24427
|
+
return renderVerboseRangeForTool(sessionId, start, effectiveEnd, CTX_EXPAND_TOKEN_BUDGET, deps.expandTools, deps.recoveryAttachments);
|
|
24341
24428
|
}
|
|
24342
24429
|
const chunk = readSessionChunk2(sessionId, CTX_EXPAND_TOKEN_BUDGET, start, effectiveEnd + 1, { expand: false });
|
|
24343
24430
|
if (!chunk.text || chunk.messageCount === 0) {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MemorySearchResult, UnifiedSearchResult } from "./search";
|
|
2
|
+
/** Keep full memory text in a side map for hint scoring so tools still receive only the preview. */
|
|
3
|
+
export declare function withMemoryHintContent(result: MemorySearchResult, fullContent: string): MemorySearchResult;
|
|
4
|
+
export type AutoSearchLane = "memory" | "messages" | "primers" | "notes";
|
|
5
|
+
export type ChunkPoolPeek = "not-run" | "hit" | "missing" | "transaction" | "signature-changed" | "no-model";
|
|
6
|
+
/**
|
|
7
|
+
* Only numeric aggregates and enumerated state values cross the worker boundary.
|
|
8
|
+
* Fork: no chunk pool or worker exists, so pool stays "off" and the worker
|
|
9
|
+
* fields stay at their inert defaults; they are kept for upstream log parity.
|
|
10
|
+
*/
|
|
11
|
+
export interface AutoSearchDiagnostics {
|
|
12
|
+
threshold: number;
|
|
13
|
+
lanes: Partial<Record<AutoSearchLane, {
|
|
14
|
+
top: number | null;
|
|
15
|
+
nearMisses: number;
|
|
16
|
+
}>>;
|
|
17
|
+
pool: "unknown" | "cold" | "warm" | "off" | "no-vector";
|
|
18
|
+
poolRows: number | null;
|
|
19
|
+
peek: ChunkPoolPeek;
|
|
20
|
+
workerStarted: boolean | null;
|
|
21
|
+
}
|
|
22
|
+
export declare function createAutoSearchDiagnostics(threshold: number): AutoSearchDiagnostics;
|
|
23
|
+
/** The unboosted relevance used by the automatic-hint threshold. */
|
|
24
|
+
export declare function autoSearchRelevance(query: string, result: UnifiedSearchResult): number;
|
|
25
|
+
/** Sample each retrieval lane before cross-lane merging and the final result limit. */
|
|
26
|
+
export declare function recordAutoSearchLane(diagnostics: AutoSearchDiagnostics | undefined, lane: AutoSearchLane, query: string, results: UnifiedSearchResult[]): void;
|
|
27
|
+
//# sourceMappingURL=auto-search-diagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-search-diagnostics.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/auto-search-diagnostics.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAIxE,oGAAoG;AACpG,wBAAgB,qBAAqB,CACjC,MAAM,EAAE,kBAAkB,EAC1B,WAAW,EAAE,MAAM,GACpB,kBAAkB,CAGpB;AAID,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AACzE,MAAM,MAAM,aAAa,GACnB,SAAS,GACT,KAAK,GACL,SAAS,GACT,aAAa,GACb,mBAAmB,GACnB,UAAU,CAAC;AAEjB;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE;QAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACnF,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,WAAW,CAAC;IACxD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;AAED,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB,CASpF;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAWtF;AAED,uFAAuF;AACvF,wBAAgB,oBAAoB,CAChC,WAAW,EAAE,qBAAqB,GAAG,SAAS,EAC9C,IAAI,EAAE,cAAc,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,mBAAmB,EAAE,GAC/B,IAAI,CASN"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Database } from "../../shared/sqlite";
|
|
2
|
+
import { type AutoSearchDiagnostics } from "./auto-search-diagnostics";
|
|
2
3
|
import { type Note } from "./storage-notes";
|
|
3
4
|
/**
|
|
4
5
|
* Upper bound on the results one search returns. The limit comes from the
|
|
@@ -14,6 +15,9 @@ export interface UnifiedSearchDiagnostics {
|
|
|
14
15
|
}
|
|
15
16
|
export declare function createUnifiedSearchDiagnostics(): UnifiedSearchDiagnostics;
|
|
16
17
|
export interface UnifiedSearchOptions {
|
|
18
|
+
/** Privacy-safe automatic-hint aggregates, also published between search stages. */
|
|
19
|
+
autoSearchDiagnostics?: AutoSearchDiagnostics;
|
|
20
|
+
onAutoSearchDiagnostics?: () => void;
|
|
17
21
|
autoHint?: boolean;
|
|
18
22
|
excludeMessageId?: string;
|
|
19
23
|
limit?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/search.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAkC,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/features/magic-context/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type AutoSearchDiagnostics } from "../../features/magic-context/auto-search-diagnostics";
|
|
2
|
+
import type { AutoSearchHintNoHintReason } from "../../features/magic-context/storage-meta-persisted";
|
|
3
|
+
import type { Database } from "../../shared/sqlite";
|
|
4
|
+
export type AutoSearchDecisionOutcome = "attached" | "below-threshold" | "timeout" | "no-candidates" | "disabled" | "error";
|
|
5
|
+
type DecisionReason = AutoSearchHintNoHintReason | "unregistered" | "worker-busy" | "storage-busy" | "cas-exhausted";
|
|
6
|
+
/** Disabled turns have no persisted decision; deduplicate their diagnostics without writing one. */
|
|
7
|
+
export declare function logDisabledAutoSearch(db: Database, sessionId: string, messageId: string, threshold: number, startedAt: number): void;
|
|
8
|
+
export declare function observeAutoSearch(sessionId: string, threshold: number, startedAt: number): {
|
|
9
|
+
diagnostics: AutoSearchDiagnostics;
|
|
10
|
+
finish(outcome: AutoSearchDecisionOutcome, reason?: DecisionReason): void;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=auto-search-observation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-search-observation.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/auto-search-observation.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,qBAAqB,EAE7B,MAAM,sDAAsD,CAAC;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,qDAAqD,CAAC;AAEtG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,MAAM,yBAAyB,GAC/B,UAAU,GACV,iBAAiB,GACjB,SAAS,GACT,eAAe,GACf,UAAU,GACV,OAAO,CAAC;AAGd,KAAK,cAAc,GACb,0BAA0B,GAC1B,cAAc,GACd,aAAa,GACb,cAAc,GACd,eAAe,CAAC;AAEtB,oGAAoG;AACpG,wBAAgB,qBAAqB,CACjC,EAAE,EAAE,QAAQ,EACZ,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB,IAAI,CAMN;AAED,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAClB;IACC,WAAW,EAAE,qBAAqB,CAAC;IACnC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CAC7E,CAqBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-search-runner.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/auto-search-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"auto-search-runner.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/auto-search-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAqBH,OAAO,EAAE,KAAK,QAAQ,EAA0B,MAAM,qBAAqB,CAAC;AAS5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGlD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,MAAM,iBAAiB,GACvB;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,cAAc,CAAA;CAAE,CAAC;AAI5F,MAAM,WAAW,uBAAuB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,uBAAuB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;+DAC2D;IAC3D,gBAAgB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,+EAA+E;IAC/E,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAChC;AA+KD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,EAAE,EAAE,QAAQ,CAAC;IACb,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,uBAAuB,CAAC;CACpC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAsN7B;AAED,2CAA2C;AAC3C,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED,sDAAsD;AACtD,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAGjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAM5E,OAAO,EAEH,KAAK,mBAAmB,EAE3B,MAAM,yDAAyD,CAAC;AAMjE,OAAO,EACH,KAAK,2BAA2B,EAEnC,MAAM,kDAAkD,CAAC;AAI1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AAQxE,OAAO,EACH,KAAK,eAAe,EAQvB,MAAM,sCAAsC,CAAC;AAqB9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sDAAsD,CAAC;AAEjG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAQlE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAKxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAIhE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAElD,OAAO,EAA8B,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAElG,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../src/hooks/magic-context/transform.ts"],"names":[],"mappings":"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"}
|