@cortexkit/pi-magic-context 0.43.2 → 0.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index-mea04n1j.js → index-2kj55q4e.js} +88 -26
- package/dist/{index-bkrh6jhp.js → index-8ytss1hp.js} +308 -190
- package/dist/{index-5v60m046.js → index-jscq7067.js} +1 -1
- package/dist/{index-17102c1m.js → index-mmkdxa5j.js} +1 -1
- package/dist/{index-bfd52y8p.js → index-tfzybajk.js} +22 -6
- package/dist/index.js +1142 -364
- package/dist/{message-time-backfill-f0v3yvza.js → message-time-backfill-3rp0w2z9.js} +3 -3
- package/dist/{read-session-chunk-ky2sprnf.js → read-session-chunk-2s116ah5.js} +4 -2
- package/dist/{safe-notification-target-d7f3t5qk.js → safe-notification-target-pd09ybr0.js} +2 -2
- package/dist/subagent-entry.js +4 -4
- package/package.json +4 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getHarness,
|
|
3
3
|
log
|
|
4
|
-
} from "./index-
|
|
4
|
+
} from "./index-tfzybajk.js";
|
|
5
5
|
|
|
6
6
|
// ../plugin/src/features/magic-context/reclaim-protection.ts
|
|
7
7
|
var CTX_REDUCE_KEEP = 3;
|
|
@@ -1009,7 +1009,7 @@ function buildChannel2Reminder(undroppedTokens, reclaimableToolOutputs, hint) {
|
|
|
1009
1009
|
const summary = formatReclaimableOutputSummary(reclaimableToolOutputs, undroppedTokens);
|
|
1010
1010
|
const hintText = formatOldestReclaimableHint(hint);
|
|
1011
1011
|
return `<system-reminder>
|
|
1012
|
-
` + `
|
|
1012
|
+
` + `Your next step: call ctx_reduce on the outputs you've already used (${summary}). Then continue your task.${hintText}
|
|
1013
1013
|
` + `</system-reminder>`;
|
|
1014
1014
|
}
|
|
1015
1015
|
var CHANNEL1_STICKY_REAL_USER_TURN_GAP = 5;
|
|
@@ -1020,19 +1020,19 @@ function buildChannel1Reminder(level, undroppedTokens, reclaimableToolOutputs, h
|
|
|
1020
1020
|
return `
|
|
1021
1021
|
|
|
1022
1022
|
<system-reminder>
|
|
1023
|
-
|
|
1023
|
+
Still unstamped: ${summary}. Stamp the ones you've used with ctx_reduce now.${hintText}
|
|
1024
1024
|
</system-reminder>`;
|
|
1025
1025
|
}
|
|
1026
1026
|
let body;
|
|
1027
1027
|
switch (level) {
|
|
1028
1028
|
case "gentle":
|
|
1029
|
-
body = `Housekeeping: ${summary} are reclaimable
|
|
1029
|
+
body = `Housekeeping: ${summary} are reclaimable. Stamp each output with ctx_reduce as soon as you've taken what you need from it; don't wait for the task to finish.`;
|
|
1030
1030
|
break;
|
|
1031
1031
|
case "firm":
|
|
1032
|
-
body =
|
|
1032
|
+
body = `${summary} are reclaimable. Make a ctx_reduce pass now over the outputs you've already used, then continue.`;
|
|
1033
1033
|
break;
|
|
1034
1034
|
case "urgent":
|
|
1035
|
-
body =
|
|
1035
|
+
body = `${summary} are still unstamped. Call ctx_reduce now, before your next tool call, on every output you've already used.`;
|
|
1036
1036
|
break;
|
|
1037
1037
|
}
|
|
1038
1038
|
return `
|
|
@@ -1490,7 +1490,7 @@ function toTagEntry(row) {
|
|
|
1490
1490
|
messageId: row.message_id,
|
|
1491
1491
|
type,
|
|
1492
1492
|
status,
|
|
1493
|
-
dropMode: row.drop_mode === "truncated" ? "truncated" : row.drop_mode === "edit_marker" ? "edit_marker" : "full",
|
|
1493
|
+
dropMode: row.drop_mode === "truncated" ? "truncated" : row.drop_mode === "skeleton_real" ? "skeleton_real" : row.drop_mode === "skeleton_stripped" ? "skeleton_stripped" : row.drop_mode === "edit_marker" ? "edit_marker" : row.drop_mode === "edit_marker_stripped" ? "edit_marker_stripped" : "full",
|
|
1494
1494
|
toolName: row.tool_name ?? null,
|
|
1495
1495
|
inputByteSize: row.input_byte_size ?? 0,
|
|
1496
1496
|
byteSize: row.byte_size,
|
|
@@ -1641,8 +1641,22 @@ function getPiFallbackMessageFoldTagRowsByMessageId(db, sessionId, messageId) {
|
|
|
1641
1641
|
AND type = 'message'
|
|
1642
1642
|
ORDER BY tag_number ASC`).all(sessionId, messageId).filter(isPiFallbackFoldTagRow);
|
|
1643
1643
|
}
|
|
1644
|
+
var foldStatements = new WeakMap;
|
|
1645
|
+
function foldStatement(db, sql) {
|
|
1646
|
+
let statements = foldStatements.get(db);
|
|
1647
|
+
if (!statements) {
|
|
1648
|
+
statements = new Map;
|
|
1649
|
+
foldStatements.set(db, statements);
|
|
1650
|
+
}
|
|
1651
|
+
let statement = statements.get(sql);
|
|
1652
|
+
if (!statement) {
|
|
1653
|
+
statement = db.prepare(sql);
|
|
1654
|
+
statements.set(sql, statement);
|
|
1655
|
+
}
|
|
1656
|
+
return statement;
|
|
1657
|
+
}
|
|
1644
1658
|
function mergeSizeAndTokenColumnsIntoSurvivor(db, sessionId, survivor, duplicate) {
|
|
1645
|
-
db
|
|
1659
|
+
foldStatement(db, `UPDATE tags
|
|
1646
1660
|
SET byte_size = ?,
|
|
1647
1661
|
reasoning_byte_size = ?,
|
|
1648
1662
|
input_byte_size = ?,
|
|
@@ -1662,36 +1676,38 @@ function applyDroppedStatusIfNeeded(db, sessionId, survivor, duplicate) {
|
|
|
1662
1676
|
return;
|
|
1663
1677
|
if (duplicate.status !== "dropped")
|
|
1664
1678
|
return;
|
|
1665
|
-
db
|
|
1679
|
+
foldStatement(db, "UPDATE tags SET status = 'dropped' WHERE session_id = ? AND tag_number = ?").run(sessionId, survivor.tagNumber);
|
|
1666
1680
|
survivor.status = "dropped";
|
|
1667
1681
|
}
|
|
1668
1682
|
function retargetPendingOps(db, sessionId, fromTagNumber, toTagNumber) {
|
|
1669
|
-
const rows = db
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1683
|
+
const rows = foldStatement(db, `SELECT id, operation
|
|
1684
|
+
FROM pending_ops
|
|
1685
|
+
WHERE session_id = ? AND tag_id = ?
|
|
1686
|
+
ORDER BY id ASC`).all(sessionId, fromTagNumber).filter(isPendingOpIdentityRow);
|
|
1673
1687
|
for (const row of rows) {
|
|
1674
|
-
const existing = db
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1688
|
+
const existing = foldStatement(db, `SELECT 1
|
|
1689
|
+
FROM pending_ops
|
|
1690
|
+
WHERE session_id = ? AND tag_id = ? AND operation = ?
|
|
1691
|
+
LIMIT 1`).get(sessionId, toTagNumber, row.operation);
|
|
1678
1692
|
if (existing) {
|
|
1679
|
-
db
|
|
1693
|
+
foldStatement(db, "DELETE FROM pending_ops WHERE session_id = ? AND id = ?").run(sessionId, row.id);
|
|
1680
1694
|
} else {
|
|
1681
|
-
db
|
|
1695
|
+
foldStatement(db, "UPDATE pending_ops SET tag_id = ? WHERE session_id = ? AND id = ?").run(toTagNumber, sessionId, row.id);
|
|
1682
1696
|
}
|
|
1683
1697
|
}
|
|
1684
|
-
db
|
|
1698
|
+
foldStatement(db, "DELETE FROM pending_ops WHERE session_id = ? AND tag_id = ?").run(sessionId, fromTagNumber);
|
|
1685
1699
|
}
|
|
1686
1700
|
function deleteFoldedDuplicateTag(db, sessionId, tagNumber) {
|
|
1687
|
-
db
|
|
1688
|
-
db
|
|
1689
|
-
db
|
|
1701
|
+
foldStatement(db, "DELETE FROM source_contents WHERE session_id = ? AND tag_id = ?").run(sessionId, tagNumber);
|
|
1702
|
+
foldStatement(db, "DELETE FROM tags WHERE session_id = ? AND tag_number = ?").run(sessionId, tagNumber);
|
|
1703
|
+
foldStatement(db, "DELETE FROM pending_ops WHERE session_id = ? AND tag_id = ?").run(sessionId, tagNumber);
|
|
1690
1704
|
}
|
|
1691
|
-
function foldDuplicateIntoSurvivor(db, sessionId, survivor, duplicate) {
|
|
1705
|
+
function foldDuplicateIntoSurvivor(db, sessionId, survivor, duplicate, duplicateMayHaveQueuedOps = true) {
|
|
1692
1706
|
mergeSizeAndTokenColumnsIntoSurvivor(db, sessionId, survivor, duplicate);
|
|
1693
1707
|
applyDroppedStatusIfNeeded(db, sessionId, survivor, duplicate);
|
|
1694
|
-
|
|
1708
|
+
if (duplicateMayHaveQueuedOps) {
|
|
1709
|
+
retargetPendingOps(db, sessionId, duplicate.tagNumber, survivor.tagNumber);
|
|
1710
|
+
}
|
|
1695
1711
|
deleteFoldedDuplicateTag(db, sessionId, duplicate.tagNumber);
|
|
1696
1712
|
}
|
|
1697
1713
|
function hasPiFallbackToolOwnerTags(db, sessionId) {
|
|
@@ -4030,6 +4046,28 @@ function historyLocalBudget(providerTokens, modelKey) {
|
|
|
4030
4046
|
return ratio === 1 ? providerTokens : localBudget(providerTokens, ratio);
|
|
4031
4047
|
}
|
|
4032
4048
|
|
|
4049
|
+
// ../plugin/src/hooks/magic-context/tool-input-size.ts
|
|
4050
|
+
var SKELETON_REAL_INPUT_MAX_BYTES = 1024;
|
|
4051
|
+
var encoder2 = new TextEncoder;
|
|
4052
|
+
function toolInputStringBytes(value) {
|
|
4053
|
+
const seen = new WeakSet;
|
|
4054
|
+
const visit = (candidate) => {
|
|
4055
|
+
if (typeof candidate === "string")
|
|
4056
|
+
return encoder2.encode(candidate).length;
|
|
4057
|
+
if (candidate === null || typeof candidate !== "object")
|
|
4058
|
+
return 0;
|
|
4059
|
+
if (seen.has(candidate))
|
|
4060
|
+
return 0;
|
|
4061
|
+
seen.add(candidate);
|
|
4062
|
+
let total = 0;
|
|
4063
|
+
const values = Array.isArray(candidate) ? candidate : Object.values(candidate);
|
|
4064
|
+
for (const item of values)
|
|
4065
|
+
total += visit(item);
|
|
4066
|
+
return total;
|
|
4067
|
+
};
|
|
4068
|
+
return visit(value);
|
|
4069
|
+
}
|
|
4070
|
+
|
|
4033
4071
|
// ../plugin/src/hooks/magic-context/tool-drop-target.ts
|
|
4034
4072
|
var IGNORE_PART_TYPES = new Set([
|
|
4035
4073
|
"thinking",
|
|
@@ -4337,6 +4375,30 @@ function readRawSessionMessageOrdinalById2(sessionId, messageId) {
|
|
|
4337
4375
|
return null;
|
|
4338
4376
|
return withReadOnlySessionDb((db) => readRawSessionMessageOrdinalByIdFromDb(db, sessionId, messageId));
|
|
4339
4377
|
}
|
|
4378
|
+
function compareRawSessionMessageOrder2(sessionId, leftId, rightId) {
|
|
4379
|
+
const provider = sessionProviders.get(sessionId);
|
|
4380
|
+
if (provider) {
|
|
4381
|
+
if (!provider.readMessageOrdinalById)
|
|
4382
|
+
return null;
|
|
4383
|
+
const left = provider.readMessageOrdinalById(leftId);
|
|
4384
|
+
const right = provider.readMessageOrdinalById(rightId);
|
|
4385
|
+
return left === null || right === null ? null : left - right;
|
|
4386
|
+
}
|
|
4387
|
+
if (!openCodeDbExists())
|
|
4388
|
+
return null;
|
|
4389
|
+
return withReadOnlySessionDb((db) => {
|
|
4390
|
+
const lookup = db.prepare("SELECT time_created, id FROM message WHERE session_id = ? AND id = ? LIMIT 1");
|
|
4391
|
+
const left = lookup.get(sessionId, leftId);
|
|
4392
|
+
const right = lookup.get(sessionId, rightId);
|
|
4393
|
+
if (typeof left?.time_created !== "number" || typeof right?.time_created !== "number" || typeof left.id !== "string" || typeof right.id !== "string") {
|
|
4394
|
+
return null;
|
|
4395
|
+
}
|
|
4396
|
+
if (left.time_created !== right.time_created) {
|
|
4397
|
+
return left.time_created - right.time_created;
|
|
4398
|
+
}
|
|
4399
|
+
return left.id < right.id ? -1 : left.id > right.id ? 1 : 0;
|
|
4400
|
+
});
|
|
4401
|
+
}
|
|
4340
4402
|
function readRawSessionMessageById(sessionId, messageId) {
|
|
4341
4403
|
const provider = sessionProviders.get(sessionId);
|
|
4342
4404
|
if (provider?.readMessageById) {
|
|
@@ -4715,4 +4777,4 @@ function readSessionChunk2(sessionId, tokenBudget, offset = 1, eligibleEndOrdina
|
|
|
4715
4777
|
toolResultBoundaries
|
|
4716
4778
|
};
|
|
4717
4779
|
}
|
|
4718
|
-
export { CTX_REDUCE_KEEP, newestCtxReduceTagNumbers, textMentionsRecentCommit, removeSystemReminders, hasMeaningfulUserText2, extractTexts2, extractToolCallSummaries, preloadTokenizer, estimateTokens, normalizeText, stripWellFormedLeadingTagPrefix, stripPersistedAssistantText, byteSize, stripTagPrefix, peelLeadingMcTagNotation, prependTag, isRecord, stableStringify, estimateImageTokensFromDataUrl, TODO_STATUSES, TODO_PRIORITIES, TITLE_DONE_STATUSES, normalizeTodoStateJson, buildSyntheticTodoPart, stripChannel1ReminderSpans, compareMeasuredTailPrefix, formatTailHygienePrefixMismatch, freezeTailHygieneMeasurement, effectiveTailHygiene, CHANNEL1_SENTINEL, CHANNEL1_FLOOR_TOKENS, decideChannel1, evaluateChannel2, reclaimableToolOutputCount, buildChannel2Reminder, buildChannel1Reminder, planEmergencyDrop, measureEmergencyTag, updateTagByteSize, getRecentTagOwnerMessageIds, AGE_RECLAIM_MIN_TOKENS, getOldestActiveUnprotectedToolTags, getActiveToolTagsForAgeReclaim, getTriggerTagTokenUpperBound, updateTagInputByteSize, updateTagTokenCount, getPersistedToolTagAccounting, getAllStatusTagTokenTotalsFlat, updateTagInputTokenCount, tagTokenCountIsNull, backfillTagTokenCounts, insertTag, updateTagStatus, getInertWhitespaceAssistantTags, updateTagDropMode, updateCavemanDepth, hasPiFallbackMessageTags, findAdoptableFallbackTags, hasPiFallbackToolOwnerTags, findPiFallbackToolOwnerTags, adoptPiFallbackToolOwnerTag, adoptPiFallbackMessageTag, getMaxTagNumberBySession, getTagNumberByMessageId, getAssignableTagNumberByMessageId, deriveTagLoadFloor, TAG_SELECT_COLUMNS, getTagsBySession, getActiveTagsBySession, getTagsForPendingOperations, getTagsByNumbers, getDroppedTagsByNumbers, getMaxDroppedTagNumber, getToolTagNumberByOwner, getNullOwnerToolTag, adoptNullOwnerToolTag, retreatPastHostUnservedRows, resolveOpenCodeDbPath, hasV1MessageTables, assertOpenCodeStoreGeneration, openCodeDbPathExists, getOpenCodeDbProbeDescriptions, recordOpenCodeDbReadFailure, clearOpenCodeDbReadFailure, claimOpenCodeDbDiagnosticOnce, registerSlowWriteReporter, detectSqliteRuntime, Database, withPrivilegedWriter, closeQuietly, withReadOnlySessionDb, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, droppedInputMarker, createDroppedInputGuard, isEditTool, applyEditMarkerToInput, setDatabase, loadToolDefinitionMeasurements, resolveDecisionCalibration, providerMass, localBudget, calibrationForModelKey, historyLocalBudget, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, readRawSessionMessageRange2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageIdOrdinalsForRange2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, getRawSessionMessageCount2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, readSessionChunk2 };
|
|
4780
|
+
export { CTX_REDUCE_KEEP, newestCtxReduceTagNumbers, textMentionsRecentCommit, removeSystemReminders, hasMeaningfulUserText2, extractTexts2, extractToolCallSummaries, preloadTokenizer, estimateTokens, normalizeText, stripWellFormedLeadingTagPrefix, stripPersistedAssistantText, byteSize, stripTagPrefix, peelLeadingMcTagNotation, prependTag, isRecord, stableStringify, estimateImageTokensFromDataUrl, TODO_STATUSES, TODO_PRIORITIES, TITLE_DONE_STATUSES, normalizeTodoStateJson, buildSyntheticTodoPart, stripChannel1ReminderSpans, compareMeasuredTailPrefix, formatTailHygienePrefixMismatch, freezeTailHygieneMeasurement, effectiveTailHygiene, CHANNEL1_SENTINEL, CHANNEL1_FLOOR_TOKENS, decideChannel1, evaluateChannel2, reclaimableToolOutputCount, buildChannel2Reminder, buildChannel1Reminder, planEmergencyDrop, measureEmergencyTag, updateTagByteSize, getRecentTagOwnerMessageIds, AGE_RECLAIM_MIN_TOKENS, getOldestActiveUnprotectedToolTags, getActiveToolTagsForAgeReclaim, getTriggerTagTokenUpperBound, updateTagInputByteSize, updateTagTokenCount, getPersistedToolTagAccounting, getAllStatusTagTokenTotalsFlat, updateTagInputTokenCount, tagTokenCountIsNull, backfillTagTokenCounts, insertTag, updateTagStatus, getInertWhitespaceAssistantTags, updateTagDropMode, updateCavemanDepth, hasPiFallbackMessageTags, findAdoptableFallbackTags, hasPiFallbackToolOwnerTags, findPiFallbackToolOwnerTags, adoptPiFallbackToolOwnerTag, adoptPiFallbackMessageTag, getMaxTagNumberBySession, getTagNumberByMessageId, getAssignableTagNumberByMessageId, deriveTagLoadFloor, TAG_SELECT_COLUMNS, getTagsBySession, getActiveTagsBySession, getTagsForPendingOperations, getTagsByNumbers, getDroppedTagsByNumbers, getMaxDroppedTagNumber, getToolTagNumberByOwner, getNullOwnerToolTag, adoptNullOwnerToolTag, retreatPastHostUnservedRows, resolveOpenCodeDbPath, hasV1MessageTables, assertOpenCodeStoreGeneration, openCodeDbPathExists, getOpenCodeDbProbeDescriptions, recordOpenCodeDbReadFailure, clearOpenCodeDbReadFailure, claimOpenCodeDbDiagnosticOnce, registerSlowWriteReporter, detectSqliteRuntime, Database, withPrivilegedWriter, closeQuietly, withReadOnlySessionDb, completedToolArcCrossesBoundary, estimateTrueRawMessageTokens, buildToolArcs, fenceBoundaryForCompletedToolArcs, fenceBoundaryForToolArcs, buildTrueRawTokenIndex, computeRawRangeFingerprint, invalidateTrueRawTokenCache, droppedInputMarker, createDroppedInputGuard, isEditTool, applyEditMarkerToInput, setDatabase, loadToolDefinitionMeasurements, resolveDecisionCalibration, providerMass, localBudget, calibrationForModelKey, historyLocalBudget, SKELETON_REAL_INPUT_MAX_BYTES, toolInputStringBytes, resolveHostServedBoundaryId2, hasRawMessageProvider2, setRawMessageProvider2, withRawMessageProvider2, cleanUserText2, withRawSessionMessageCache2, readRawSessionMessages2, readRawSessionMessagePage2, getRawSessionMessageOrdinalCount2, readRawSessionMessageRange2, primeTailRawMessageCache2, getCachedAbsoluteMessageCount2, primeInMemoryTailRawMessageCache2, readRawSessionMessageIdOrdinalsForRange2, hasRawSessionMessageById2, readRawSessionMessageOrdinalById2, compareRawSessionMessageOrder2, getRawSessionMessageCount2, getRawSessionTagKeysThrough2, getLegacyProtectedTailStartOrdinal2, readSessionChunk2 };
|