@cortexkit/pi-magic-context 0.21.5 → 0.21.7
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.js +885 -337
- package/dist/subagent-entry.js +251 -73
- package/package.json +1 -1
package/dist/subagent-entry.js
CHANGED
|
@@ -8909,6 +8909,22 @@ var MIGRATIONS = [
|
|
|
8909
8909
|
db.exec("ALTER TABLE session_meta ADD COLUMN pending_pi_compaction_marker_state TEXT");
|
|
8910
8910
|
}
|
|
8911
8911
|
}
|
|
8912
|
+
},
|
|
8913
|
+
{
|
|
8914
|
+
version: 19,
|
|
8915
|
+
description: "Add compartment state lease table",
|
|
8916
|
+
up: (db) => {
|
|
8917
|
+
db.exec(`
|
|
8918
|
+
CREATE TABLE IF NOT EXISTS compartment_state_lease (
|
|
8919
|
+
session_id TEXT PRIMARY KEY NOT NULL,
|
|
8920
|
+
holder_id TEXT NOT NULL,
|
|
8921
|
+
acquired_at INTEGER NOT NULL,
|
|
8922
|
+
expires_at INTEGER NOT NULL
|
|
8923
|
+
);
|
|
8924
|
+
CREATE INDEX IF NOT EXISTS idx_compartment_state_lease_expires
|
|
8925
|
+
ON compartment_state_lease(expires_at);
|
|
8926
|
+
`);
|
|
8927
|
+
}
|
|
8912
8928
|
}
|
|
8913
8929
|
];
|
|
8914
8930
|
function ensureMigrationsTable(db) {
|
|
@@ -141956,6 +141972,15 @@ function initializeDatabase(db) {
|
|
|
141956
141972
|
);
|
|
141957
141973
|
CREATE INDEX IF NOT EXISTS idx_compartments_session ON compartments(session_id);
|
|
141958
141974
|
|
|
141975
|
+
CREATE TABLE IF NOT EXISTS compartment_state_lease (
|
|
141976
|
+
session_id TEXT PRIMARY KEY NOT NULL,
|
|
141977
|
+
holder_id TEXT NOT NULL,
|
|
141978
|
+
acquired_at INTEGER NOT NULL,
|
|
141979
|
+
expires_at INTEGER NOT NULL
|
|
141980
|
+
);
|
|
141981
|
+
CREATE INDEX IF NOT EXISTS idx_compartment_state_lease_expires
|
|
141982
|
+
ON compartment_state_lease(expires_at);
|
|
141983
|
+
|
|
141959
141984
|
CREATE TABLE IF NOT EXISTS compression_depth (
|
|
141960
141985
|
session_id TEXT NOT NULL,
|
|
141961
141986
|
message_ordinal INTEGER NOT NULL,
|
|
@@ -142384,6 +142409,56 @@ import { existsSync as existsSync6, readFileSync as readFileSync3 } from "node:f
|
|
|
142384
142409
|
import { homedir as homedir3 } from "node:os";
|
|
142385
142410
|
import { join as join6 } from "node:path";
|
|
142386
142411
|
|
|
142412
|
+
// ../plugin/src/config/agent-disable.ts
|
|
142413
|
+
function isDreamerRunnable(config) {
|
|
142414
|
+
return !!config.dreamer && config.dreamer.disable !== true;
|
|
142415
|
+
}
|
|
142416
|
+
function clonePlainObject(value) {
|
|
142417
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
142418
|
+
return;
|
|
142419
|
+
}
|
|
142420
|
+
return { ...value };
|
|
142421
|
+
}
|
|
142422
|
+
function migrateLegacyEnabledForAgent(args) {
|
|
142423
|
+
const agent = clonePlainObject(args.patched[args.agentName]);
|
|
142424
|
+
if (!agent || !("enabled" in agent))
|
|
142425
|
+
return;
|
|
142426
|
+
const enabled = agent.enabled;
|
|
142427
|
+
const disable = agent.disable;
|
|
142428
|
+
delete agent.enabled;
|
|
142429
|
+
if (args.agentName === "historian") {
|
|
142430
|
+
args.warnings.push('Removed invalid "historian.enabled" in-memory (run doctor to persist).');
|
|
142431
|
+
args.patched.historian = agent;
|
|
142432
|
+
return;
|
|
142433
|
+
}
|
|
142434
|
+
if (args.agentName === "dreamer") {
|
|
142435
|
+
if (disable !== true && enabled === false) {
|
|
142436
|
+
agent.disable = true;
|
|
142437
|
+
args.warnings.push('Migrated "dreamer.enabled=false" → "dreamer.disable=true" in-memory (run doctor to persist). This now also disables manual /ctx-dream; for manual-only remove disable and set schedule="".');
|
|
142438
|
+
}
|
|
142439
|
+
args.patched.dreamer = agent;
|
|
142440
|
+
return;
|
|
142441
|
+
}
|
|
142442
|
+
if (disable !== true && enabled === false) {
|
|
142443
|
+
agent.disable = true;
|
|
142444
|
+
args.warnings.push('Migrated "sidekick.enabled=false" → "sidekick.disable=true" in-memory (run doctor to persist).');
|
|
142445
|
+
}
|
|
142446
|
+
args.patched.sidekick = agent;
|
|
142447
|
+
}
|
|
142448
|
+
function migrateLegacyAgentEnabledInMemory(rawConfig, warnings) {
|
|
142449
|
+
const shouldPatch = ["dreamer", "sidekick", "historian"].some((key) => {
|
|
142450
|
+
const agent = rawConfig[key];
|
|
142451
|
+
return typeof agent === "object" && agent !== null && !Array.isArray(agent) && "enabled" in agent;
|
|
142452
|
+
});
|
|
142453
|
+
if (!shouldPatch)
|
|
142454
|
+
return rawConfig;
|
|
142455
|
+
const patched = { ...rawConfig };
|
|
142456
|
+
migrateLegacyEnabledForAgent({ patched, agentName: "dreamer", warnings });
|
|
142457
|
+
migrateLegacyEnabledForAgent({ patched, agentName: "sidekick", warnings });
|
|
142458
|
+
migrateLegacyEnabledForAgent({ patched, agentName: "historian", warnings });
|
|
142459
|
+
return patched;
|
|
142460
|
+
}
|
|
142461
|
+
|
|
142387
142462
|
// ../../node_modules/.bun/zod@4.4.3/node_modules/zod/v4/classic/external.js
|
|
142388
142463
|
var exports_external = {};
|
|
142389
142464
|
__export(exports_external, {
|
|
@@ -156723,7 +156798,6 @@ var DEFAULT_DREAMER_TASKS = [
|
|
|
156723
156798
|
];
|
|
156724
156799
|
var PiThinkingLevelSchema = exports_external.enum(["off", "minimal", "low", "medium", "high", "xhigh"]).optional();
|
|
156725
156800
|
var DreamerConfigSchema = AgentOverrideConfigSchema.merge(exports_external.object({
|
|
156726
|
-
enabled: exports_external.boolean().default(false),
|
|
156727
156801
|
schedule: exports_external.string().default("02:00-06:00"),
|
|
156728
156802
|
max_runtime_minutes: exports_external.number().min(10).default(120),
|
|
156729
156803
|
tasks: exports_external.array(DreamingTaskSchema).default(DEFAULT_DREAMER_TASKS),
|
|
@@ -156741,7 +156815,6 @@ var DreamerConfigSchema = AgentOverrideConfigSchema.merge(exports_external.objec
|
|
|
156741
156815
|
thinking_level: PiThinkingLevelSchema
|
|
156742
156816
|
}));
|
|
156743
156817
|
var SidekickConfigSchema = AgentOverrideConfigSchema.extend({
|
|
156744
|
-
enabled: exports_external.boolean().default(false),
|
|
156745
156818
|
timeout_ms: exports_external.number().default(30000),
|
|
156746
156819
|
system_prompt: exports_external.string().optional(),
|
|
156747
156820
|
thinking_level: PiThinkingLevelSchema
|
|
@@ -157131,9 +157204,11 @@ function mergeRawConfigs(base, override) {
|
|
|
157131
157204
|
return merged;
|
|
157132
157205
|
}
|
|
157133
157206
|
function parsePiConfig(rawConfig, recoveredTopLevelKeys = []) {
|
|
157134
|
-
const
|
|
157207
|
+
const preMigrationWarnings = [];
|
|
157208
|
+
const migrated = migrateLegacyAgentEnabledInMemory(rawConfig, preMigrationWarnings);
|
|
157209
|
+
const parsed = MagicContextConfigSchema.safeParse(migrated);
|
|
157135
157210
|
if (parsed.success) {
|
|
157136
|
-
return { config: parsed.data, warnings:
|
|
157211
|
+
return { config: parsed.data, warnings: preMigrationWarnings };
|
|
157137
157212
|
}
|
|
157138
157213
|
const defaults = MagicContextConfigSchema.parse({});
|
|
157139
157214
|
const errorPaths = new Set;
|
|
@@ -157143,8 +157218,8 @@ function parsePiConfig(rawConfig, recoveredTopLevelKeys = []) {
|
|
|
157143
157218
|
errorPaths.add(String(topKey));
|
|
157144
157219
|
}
|
|
157145
157220
|
}
|
|
157146
|
-
const patched = { ...
|
|
157147
|
-
const warnings = [];
|
|
157221
|
+
const patched = { ...migrated };
|
|
157222
|
+
const warnings = [...preMigrationWarnings];
|
|
157148
157223
|
for (const key of errorPaths) {
|
|
157149
157224
|
recoveredTopLevelKeys.push(key);
|
|
157150
157225
|
const isAgentConfig = key === "historian" || key === "dreamer" || key === "sidekick";
|
|
@@ -163148,7 +163223,7 @@ function convertEntriesToRawMessages(entries) {
|
|
|
163148
163223
|
if (pendingToolParts.length > 0) {
|
|
163149
163224
|
result.push({
|
|
163150
163225
|
ordinal: nextOrdinal++,
|
|
163151
|
-
id: pendingFirstRealId
|
|
163226
|
+
id: `synth-user-${pendingFirstRealId}`,
|
|
163152
163227
|
role: "user",
|
|
163153
163228
|
parts: pendingToolParts
|
|
163154
163229
|
});
|
|
@@ -163173,7 +163248,7 @@ function convertEntriesToRawMessages(entries) {
|
|
|
163173
163248
|
if (pendingToolParts.length > 0) {
|
|
163174
163249
|
result.push({
|
|
163175
163250
|
ordinal: nextOrdinal,
|
|
163176
|
-
id: pendingFirstRealId
|
|
163251
|
+
id: `synth-user-${pendingFirstRealId}`,
|
|
163177
163252
|
role: "user",
|
|
163178
163253
|
parts: pendingToolParts
|
|
163179
163254
|
});
|
|
@@ -163325,6 +163400,99 @@ function createCtxExpandTool(_deps) {
|
|
|
163325
163400
|
}
|
|
163326
163401
|
};
|
|
163327
163402
|
}
|
|
163403
|
+
// ../plugin/src/features/magic-context/compartment-lease.ts
|
|
163404
|
+
var COMPARTMENT_LEASE_TTL_MS = 5 * 60 * 1000;
|
|
163405
|
+
var COMPARTMENT_LEASE_RENEWAL_MS = 60 * 1000;
|
|
163406
|
+
function acquireCompartmentLease(db, sessionId, holderId) {
|
|
163407
|
+
const acquiredAt = Date.now();
|
|
163408
|
+
const expiresAt = acquiredAt + COMPARTMENT_LEASE_TTL_MS;
|
|
163409
|
+
const result = db.prepare(`INSERT INTO compartment_state_lease (session_id, holder_id, acquired_at, expires_at)
|
|
163410
|
+
VALUES (?, ?, ?, ?)
|
|
163411
|
+
ON CONFLICT(session_id) DO UPDATE SET
|
|
163412
|
+
holder_id = excluded.holder_id,
|
|
163413
|
+
acquired_at = excluded.acquired_at,
|
|
163414
|
+
expires_at = excluded.expires_at
|
|
163415
|
+
WHERE compartment_state_lease.holder_id = excluded.holder_id
|
|
163416
|
+
OR compartment_state_lease.expires_at <= ?`).run(sessionId, holderId, acquiredAt, expiresAt, acquiredAt);
|
|
163417
|
+
if (result.changes !== 1) {
|
|
163418
|
+
return null;
|
|
163419
|
+
}
|
|
163420
|
+
return { sessionId, holderId, acquiredAt, expiresAt };
|
|
163421
|
+
}
|
|
163422
|
+
function renewCompartmentLease(db, sessionId, holderId) {
|
|
163423
|
+
const now = Date.now();
|
|
163424
|
+
const expiresAt = now + COMPARTMENT_LEASE_TTL_MS;
|
|
163425
|
+
const result = db.prepare(`UPDATE compartment_state_lease
|
|
163426
|
+
SET expires_at = ?, acquired_at = ?
|
|
163427
|
+
WHERE session_id = ? AND holder_id = ? AND expires_at > ?`).run(expiresAt, now, sessionId, holderId, now);
|
|
163428
|
+
return result.changes === 1;
|
|
163429
|
+
}
|
|
163430
|
+
function releaseCompartmentLease(db, sessionId, holderId) {
|
|
163431
|
+
db.prepare("DELETE FROM compartment_state_lease WHERE session_id = ? AND holder_id = ?").run(sessionId, holderId);
|
|
163432
|
+
}
|
|
163433
|
+
function isCompartmentLeaseHeld(db, sessionId, holderId) {
|
|
163434
|
+
const row = db.prepare("SELECT 1 FROM compartment_state_lease WHERE session_id = ? AND holder_id = ? AND expires_at > ?").get(sessionId, holderId, Date.now());
|
|
163435
|
+
return row != null;
|
|
163436
|
+
}
|
|
163437
|
+
|
|
163438
|
+
// ../plugin/src/features/magic-context/compression-depth-storage.ts
|
|
163439
|
+
var incrementDepthStatements = new WeakMap;
|
|
163440
|
+
var totalDepthStatements = new WeakMap;
|
|
163441
|
+
var maxDepthStatements = new WeakMap;
|
|
163442
|
+
var clearDepthStatements = new WeakMap;
|
|
163443
|
+
function getIncrementDepthStatement(db) {
|
|
163444
|
+
let stmt = incrementDepthStatements.get(db);
|
|
163445
|
+
if (!stmt) {
|
|
163446
|
+
stmt = db.prepare("INSERT INTO compression_depth (session_id, message_ordinal, depth, harness) VALUES (?, ?, 1, ?) ON CONFLICT(session_id, message_ordinal) DO UPDATE SET depth = depth + 1");
|
|
163447
|
+
incrementDepthStatements.set(db, stmt);
|
|
163448
|
+
}
|
|
163449
|
+
return stmt;
|
|
163450
|
+
}
|
|
163451
|
+
function getTotalDepthStatement(db) {
|
|
163452
|
+
let stmt = totalDepthStatements.get(db);
|
|
163453
|
+
if (!stmt) {
|
|
163454
|
+
stmt = db.prepare("SELECT COALESCE(SUM(depth), 0) AS total_depth FROM compression_depth WHERE session_id = ? AND message_ordinal BETWEEN ? AND ?");
|
|
163455
|
+
totalDepthStatements.set(db, stmt);
|
|
163456
|
+
}
|
|
163457
|
+
return stmt;
|
|
163458
|
+
}
|
|
163459
|
+
function getClearDepthStatement(db) {
|
|
163460
|
+
let stmt = clearDepthStatements.get(db);
|
|
163461
|
+
if (!stmt) {
|
|
163462
|
+
stmt = db.prepare("DELETE FROM compression_depth WHERE session_id = ?");
|
|
163463
|
+
clearDepthStatements.set(db, stmt);
|
|
163464
|
+
}
|
|
163465
|
+
return stmt;
|
|
163466
|
+
}
|
|
163467
|
+
function incrementCompressionDepth(db, sessionId, startOrdinal, endOrdinal) {
|
|
163468
|
+
if (endOrdinal < startOrdinal) {
|
|
163469
|
+
return;
|
|
163470
|
+
}
|
|
163471
|
+
db.transaction(() => {
|
|
163472
|
+
const stmt = getIncrementDepthStatement(db);
|
|
163473
|
+
for (let ordinal = startOrdinal;ordinal <= endOrdinal; ordinal += 1) {
|
|
163474
|
+
stmt.run(sessionId, ordinal, getHarness());
|
|
163475
|
+
}
|
|
163476
|
+
})();
|
|
163477
|
+
}
|
|
163478
|
+
function getAverageCompressionDepth(db, sessionId, startOrdinal, endOrdinal) {
|
|
163479
|
+
if (endOrdinal < startOrdinal) {
|
|
163480
|
+
return 0;
|
|
163481
|
+
}
|
|
163482
|
+
const row = getTotalDepthStatement(db).get(sessionId, startOrdinal, endOrdinal);
|
|
163483
|
+
const totalDepth = typeof row?.total_depth === "number" ? row.total_depth : 0;
|
|
163484
|
+
const messageCount = endOrdinal - startOrdinal + 1;
|
|
163485
|
+
return totalDepth / messageCount;
|
|
163486
|
+
}
|
|
163487
|
+
function clearCompressionDepth(db, sessionId) {
|
|
163488
|
+
getClearDepthStatement(db).run(sessionId);
|
|
163489
|
+
}
|
|
163490
|
+
function clearCompressionDepthRange(db, sessionId, startOrdinal, endOrdinal) {
|
|
163491
|
+
if (endOrdinal < startOrdinal) {
|
|
163492
|
+
return;
|
|
163493
|
+
}
|
|
163494
|
+
db.prepare("DELETE FROM compression_depth WHERE session_id = ? AND message_ordinal BETWEEN ? AND ?").run(sessionId, startOrdinal, endOrdinal);
|
|
163495
|
+
}
|
|
163328
163496
|
|
|
163329
163497
|
// ../plugin/src/features/magic-context/compartment-storage.ts
|
|
163330
163498
|
var insertCompartmentStatements = new WeakMap;
|
|
@@ -163435,6 +163603,38 @@ function replaceAllCompartmentState(db, sessionId, compartments, facts) {
|
|
|
163435
163603
|
db.prepare("UPDATE session_meta SET memory_block_cache = '', memory_block_ids = '' WHERE session_id = ?").run(sessionId);
|
|
163436
163604
|
})();
|
|
163437
163605
|
}
|
|
163606
|
+
function replaceAllCompartmentStateAndBumpDepth(db, holderId, sessionId, compartments, facts, depthStartOrdinal, depthEndOrdinal) {
|
|
163607
|
+
const now = Date.now();
|
|
163608
|
+
db.exec("BEGIN IMMEDIATE");
|
|
163609
|
+
let finished = false;
|
|
163610
|
+
try {
|
|
163611
|
+
if (!isCompartmentLeaseHeld(db, sessionId, holderId)) {
|
|
163612
|
+
db.exec("ROLLBACK");
|
|
163613
|
+
finished = true;
|
|
163614
|
+
return false;
|
|
163615
|
+
}
|
|
163616
|
+
db.prepare("DELETE FROM compartments WHERE session_id = ?").run(sessionId);
|
|
163617
|
+
db.prepare("DELETE FROM session_facts WHERE session_id = ?").run(sessionId);
|
|
163618
|
+
insertCompartmentRows(db, sessionId, compartments, now);
|
|
163619
|
+
insertFactRows(db, sessionId, facts, now);
|
|
163620
|
+
db.prepare("UPDATE session_meta SET memory_block_cache = '', memory_block_ids = '' WHERE session_id = ?").run(sessionId);
|
|
163621
|
+
if (depthEndOrdinal >= depthStartOrdinal) {
|
|
163622
|
+
const stmt = getIncrementDepthStatement(db);
|
|
163623
|
+
for (let ordinal = depthStartOrdinal;ordinal <= depthEndOrdinal; ordinal += 1) {
|
|
163624
|
+
stmt.run(sessionId, ordinal, getHarness());
|
|
163625
|
+
}
|
|
163626
|
+
}
|
|
163627
|
+
db.exec("COMMIT");
|
|
163628
|
+
finished = true;
|
|
163629
|
+
return true;
|
|
163630
|
+
} finally {
|
|
163631
|
+
if (!finished) {
|
|
163632
|
+
try {
|
|
163633
|
+
db.exec("ROLLBACK");
|
|
163634
|
+
} catch {}
|
|
163635
|
+
}
|
|
163636
|
+
}
|
|
163637
|
+
}
|
|
163438
163638
|
function buildCompartmentBlock(compartments, facts, memoryBlock, dateRanges) {
|
|
163439
163639
|
const lines = [];
|
|
163440
163640
|
if (memoryBlock) {
|
|
@@ -163502,12 +163702,37 @@ function getRecompStaging(db, sessionId) {
|
|
|
163502
163702
|
lastEndMessage: lastEnd
|
|
163503
163703
|
};
|
|
163504
163704
|
}
|
|
163505
|
-
function promoteRecompStaging(db, sessionId) {
|
|
163705
|
+
function promoteRecompStaging(db, sessionId, holderId) {
|
|
163506
163706
|
const now = Date.now();
|
|
163507
|
-
|
|
163707
|
+
if (!holderId) {
|
|
163708
|
+
return db.transaction(() => {
|
|
163709
|
+
const staging = getRecompStaging(db, sessionId);
|
|
163710
|
+
if (!staging || staging.compartments.length === 0)
|
|
163711
|
+
return null;
|
|
163712
|
+
db.prepare("DELETE FROM compartments WHERE session_id = ?").run(sessionId);
|
|
163713
|
+
db.prepare("DELETE FROM session_facts WHERE session_id = ?").run(sessionId);
|
|
163714
|
+
insertCompartmentRows(db, sessionId, staging.compartments, now);
|
|
163715
|
+
insertFactRows(db, sessionId, staging.facts, now);
|
|
163716
|
+
db.prepare("DELETE FROM recomp_compartments WHERE session_id = ?").run(sessionId);
|
|
163717
|
+
db.prepare("DELETE FROM recomp_facts WHERE session_id = ?").run(sessionId);
|
|
163718
|
+
db.prepare("UPDATE session_meta SET memory_block_cache = '', memory_block_ids = '' WHERE session_id = ?").run(sessionId);
|
|
163719
|
+
return { compartments: staging.compartments, facts: staging.facts };
|
|
163720
|
+
})();
|
|
163721
|
+
}
|
|
163722
|
+
db.exec("BEGIN IMMEDIATE");
|
|
163723
|
+
let finished = false;
|
|
163724
|
+
try {
|
|
163725
|
+
if (!isCompartmentLeaseHeld(db, sessionId, holderId)) {
|
|
163726
|
+
db.exec("ROLLBACK");
|
|
163727
|
+
finished = true;
|
|
163728
|
+
return null;
|
|
163729
|
+
}
|
|
163508
163730
|
const staging = getRecompStaging(db, sessionId);
|
|
163509
|
-
if (!staging || staging.compartments.length === 0)
|
|
163731
|
+
if (!staging || staging.compartments.length === 0) {
|
|
163732
|
+
db.exec("ROLLBACK");
|
|
163733
|
+
finished = true;
|
|
163510
163734
|
return null;
|
|
163735
|
+
}
|
|
163511
163736
|
db.prepare("DELETE FROM compartments WHERE session_id = ?").run(sessionId);
|
|
163512
163737
|
db.prepare("DELETE FROM session_facts WHERE session_id = ?").run(sessionId);
|
|
163513
163738
|
insertCompartmentRows(db, sessionId, staging.compartments, now);
|
|
@@ -163515,8 +163740,16 @@ function promoteRecompStaging(db, sessionId) {
|
|
|
163515
163740
|
db.prepare("DELETE FROM recomp_compartments WHERE session_id = ?").run(sessionId);
|
|
163516
163741
|
db.prepare("DELETE FROM recomp_facts WHERE session_id = ?").run(sessionId);
|
|
163517
163742
|
db.prepare("UPDATE session_meta SET memory_block_cache = '', memory_block_ids = '' WHERE session_id = ?").run(sessionId);
|
|
163743
|
+
db.exec("COMMIT");
|
|
163744
|
+
finished = true;
|
|
163518
163745
|
return { compartments: staging.compartments, facts: staging.facts };
|
|
163519
|
-
}
|
|
163746
|
+
} finally {
|
|
163747
|
+
if (!finished) {
|
|
163748
|
+
try {
|
|
163749
|
+
db.exec("ROLLBACK");
|
|
163750
|
+
} catch {}
|
|
163751
|
+
}
|
|
163752
|
+
}
|
|
163520
163753
|
}
|
|
163521
163754
|
function invalidateAllMemoryBlockCaches(db) {
|
|
163522
163755
|
try {
|
|
@@ -164376,64 +164609,6 @@ function createCtxMemoryTool(deps) {
|
|
|
164376
164609
|
}
|
|
164377
164610
|
};
|
|
164378
164611
|
}
|
|
164379
|
-
// ../plugin/src/features/magic-context/compression-depth-storage.ts
|
|
164380
|
-
var incrementDepthStatements = new WeakMap;
|
|
164381
|
-
var totalDepthStatements = new WeakMap;
|
|
164382
|
-
var maxDepthStatements = new WeakMap;
|
|
164383
|
-
var clearDepthStatements = new WeakMap;
|
|
164384
|
-
function getIncrementDepthStatement(db) {
|
|
164385
|
-
let stmt = incrementDepthStatements.get(db);
|
|
164386
|
-
if (!stmt) {
|
|
164387
|
-
stmt = db.prepare("INSERT INTO compression_depth (session_id, message_ordinal, depth, harness) VALUES (?, ?, 1, ?) ON CONFLICT(session_id, message_ordinal) DO UPDATE SET depth = depth + 1");
|
|
164388
|
-
incrementDepthStatements.set(db, stmt);
|
|
164389
|
-
}
|
|
164390
|
-
return stmt;
|
|
164391
|
-
}
|
|
164392
|
-
function getTotalDepthStatement(db) {
|
|
164393
|
-
let stmt = totalDepthStatements.get(db);
|
|
164394
|
-
if (!stmt) {
|
|
164395
|
-
stmt = db.prepare("SELECT COALESCE(SUM(depth), 0) AS total_depth FROM compression_depth WHERE session_id = ? AND message_ordinal BETWEEN ? AND ?");
|
|
164396
|
-
totalDepthStatements.set(db, stmt);
|
|
164397
|
-
}
|
|
164398
|
-
return stmt;
|
|
164399
|
-
}
|
|
164400
|
-
function getClearDepthStatement(db) {
|
|
164401
|
-
let stmt = clearDepthStatements.get(db);
|
|
164402
|
-
if (!stmt) {
|
|
164403
|
-
stmt = db.prepare("DELETE FROM compression_depth WHERE session_id = ?");
|
|
164404
|
-
clearDepthStatements.set(db, stmt);
|
|
164405
|
-
}
|
|
164406
|
-
return stmt;
|
|
164407
|
-
}
|
|
164408
|
-
function incrementCompressionDepth(db, sessionId, startOrdinal, endOrdinal) {
|
|
164409
|
-
if (endOrdinal < startOrdinal) {
|
|
164410
|
-
return;
|
|
164411
|
-
}
|
|
164412
|
-
db.transaction(() => {
|
|
164413
|
-
const stmt = getIncrementDepthStatement(db);
|
|
164414
|
-
for (let ordinal = startOrdinal;ordinal <= endOrdinal; ordinal += 1) {
|
|
164415
|
-
stmt.run(sessionId, ordinal, getHarness());
|
|
164416
|
-
}
|
|
164417
|
-
})();
|
|
164418
|
-
}
|
|
164419
|
-
function getAverageCompressionDepth(db, sessionId, startOrdinal, endOrdinal) {
|
|
164420
|
-
if (endOrdinal < startOrdinal) {
|
|
164421
|
-
return 0;
|
|
164422
|
-
}
|
|
164423
|
-
const row = getTotalDepthStatement(db).get(sessionId, startOrdinal, endOrdinal);
|
|
164424
|
-
const totalDepth = typeof row?.total_depth === "number" ? row.total_depth : 0;
|
|
164425
|
-
const messageCount = endOrdinal - startOrdinal + 1;
|
|
164426
|
-
return totalDepth / messageCount;
|
|
164427
|
-
}
|
|
164428
|
-
function clearCompressionDepth(db, sessionId) {
|
|
164429
|
-
getClearDepthStatement(db).run(sessionId);
|
|
164430
|
-
}
|
|
164431
|
-
function clearCompressionDepthRange(db, sessionId, startOrdinal, endOrdinal) {
|
|
164432
|
-
if (endOrdinal < startOrdinal) {
|
|
164433
|
-
return;
|
|
164434
|
-
}
|
|
164435
|
-
db.prepare("DELETE FROM compression_depth WHERE session_id = ? AND message_ordinal BETWEEN ? AND ?").run(sessionId, startOrdinal, endOrdinal);
|
|
164436
|
-
}
|
|
164437
164612
|
// ../plugin/src/features/magic-context/message-index.ts
|
|
164438
164613
|
var lastIndexedStatements = new WeakMap;
|
|
164439
164614
|
var insertMessageStatements = new WeakMap;
|
|
@@ -165077,6 +165252,7 @@ function getPendingPiCompactionMarkerState(db, sessionId) {
|
|
|
165077
165252
|
return parsed;
|
|
165078
165253
|
}
|
|
165079
165254
|
} catch {}
|
|
165255
|
+
db.prepare("UPDATE session_meta SET pending_pi_compaction_marker_state = NULL WHERE session_id = ? AND pending_pi_compaction_marker_state = ?").run(sessionId, raw);
|
|
165080
165256
|
return null;
|
|
165081
165257
|
}
|
|
165082
165258
|
function setPendingPiCompactionMarkerState(db, sessionId, state) {
|
|
@@ -167367,8 +167543,7 @@ function magicContextSubagentExtension(pi) {
|
|
|
167367
167543
|
try {
|
|
167368
167544
|
const db = openDatabase();
|
|
167369
167545
|
if (!db) {
|
|
167370
|
-
|
|
167371
|
-
return;
|
|
167546
|
+
throw new Error("storage open failed; refusing to start without Magic Context tools");
|
|
167372
167547
|
}
|
|
167373
167548
|
openedDb = db;
|
|
167374
167549
|
const directory = process.cwd();
|
|
@@ -167382,7 +167557,10 @@ function magicContextSubagentExtension(pi) {
|
|
|
167382
167557
|
});
|
|
167383
167558
|
log(`[pi-subagent] registered tools: ctx_search, ctx_memory, ctx_note, ctx_expand` + ` (memory=${cfg.memory.enabled}, embedding=${cfg.embedding.provider !== "off"},` + ` git_commits=${cfg.experimental.git_commit_indexing.enabled}, dreamer_actions=${dreamerActionsEnabled})`);
|
|
167384
167559
|
} catch (err5) {
|
|
167385
|
-
|
|
167560
|
+
const message = err5 instanceof Error ? err5.message : String(err5);
|
|
167561
|
+
log(`[pi-subagent] startup failed: ${message}`);
|
|
167562
|
+
process.exitCode = 1;
|
|
167563
|
+
throw err5;
|
|
167386
167564
|
}
|
|
167387
167565
|
});
|
|
167388
167566
|
pi.on("session_shutdown", () => {
|
package/package.json
CHANGED