@wolfx/pi-magic-context 0.23.0 → 0.23.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/index.js CHANGED
@@ -142200,9 +142200,8 @@ function persistCachedM0(db, sessionId, payload) {
142200
142200
  cached_m0_session_facts_version = ?,
142201
142201
  cached_m0_upgrade_state = ?,
142202
142202
  cached_m0_system_hash = ?,
142203
- cached_m0_tool_set_hash = ?,
142204
142203
  cached_m0_model_key = ?
142205
- WHERE session_id = ?`).run(Buffer2.from(payload.m0Bytes), payload.projectMemoryEpoch, payload.projectUserProfileVersion, payload.maxCompartmentSeq, payload.maxMemoryId, payload.maxMutationId, payload.maxMemoryMutationId ?? null, payload.m1Bytes ? Buffer2.from(payload.m1Bytes) : null, payload.projectDocsHash, payload.materializedAt, payload.sessionFactsVersion, payload.upgradeState, payload.systemHash ?? "", payload.toolSetHash ?? "", payload.modelKey ?? "", sessionId);
142204
+ WHERE session_id = ?`).run(Buffer2.from(payload.m0Bytes), payload.projectMemoryEpoch, payload.projectUserProfileVersion, payload.maxCompartmentSeq, payload.maxMemoryId, payload.maxMutationId, payload.maxMemoryMutationId ?? null, payload.m1Bytes ? Buffer2.from(payload.m1Bytes) : null, payload.projectDocsHash, payload.materializedAt, payload.sessionFactsVersion, payload.upgradeState, payload.systemHash ?? "", payload.modelKey ?? "", sessionId);
142206
142205
  }
142207
142206
  function clearCachedM0M1(db, sessionId) {
142208
142207
  ensureSessionMetaRow(db, sessionId);
@@ -168873,6 +168872,7 @@ function computePiWorkMetrics(sessionEntries) {
168873
168872
 
168874
168873
  // ../plugin/src/hooks/magic-context/apply-operations.ts
168875
168874
  var USER_DROP_PREVIEW_CHARS = 250;
168875
+ var RECENT_TOOL_SKELETON_WINDOW = 20;
168876
168876
  function buildReplacementContent(tagId, target) {
168877
168877
  const role = target.message?.info.role;
168878
168878
  if (role !== "user") {
@@ -168898,6 +168898,7 @@ function applyPendingOperations(sessionId, db, targets, protectedTags = 0, prelo
168898
168898
  const tagTypeById = new Map(tags.map((tag) => [tag.tagNumber, tag.type]));
168899
168899
  const protectedTagIds = protectedTags > 0 ? new Set(tags.filter((tag) => tag.status === "active").map((tag) => tag.tagNumber).sort((left, right) => right - left).slice(0, protectedTags)) : new Set;
168900
168900
  const pendingOps = preloadedPendingOps ?? getPendingOps(db, sessionId);
168901
+ const skeletonWindow = new Set(tags.filter((tag) => tag.type === "tool").map((tag) => tag.tagNumber).sort((left, right) => right - left).slice(0, RECENT_TOOL_SKELETON_WINDOW));
168901
168902
  for (const pendingOp of pendingOps) {
168902
168903
  const tagStatus = tagStatusById.get(pendingOp.tagId);
168903
168904
  if (tagStatus === "compacted" || tagStatus === "dropped") {
@@ -168910,14 +168911,25 @@ function applyPendingOperations(sessionId, db, targets, protectedTags = 0, prelo
168910
168911
  const target = targets.get(pendingOp.tagId);
168911
168912
  const isToolTag = tagTypeById.get(pendingOp.tagId) === "tool";
168912
168913
  if (isToolTag) {
168913
- const dropResult = target?.drop?.() ?? "absent";
168914
- if (dropResult === "incomplete") {
168915
- continue;
168916
- }
168917
- if (dropResult === "removed") {
168918
- didMutateMessage = true;
168914
+ if (skeletonWindow.has(pendingOp.tagId)) {
168915
+ const truncResult = target?.truncate?.() ?? "absent";
168916
+ if (truncResult === "incomplete") {
168917
+ continue;
168918
+ }
168919
+ if (truncResult === "truncated") {
168920
+ didMutateMessage = true;
168921
+ }
168922
+ updateTagDropMode(db, sessionId, pendingOp.tagId, "truncated");
168923
+ } else {
168924
+ const dropResult = target?.drop?.() ?? "absent";
168925
+ if (dropResult === "incomplete") {
168926
+ continue;
168927
+ }
168928
+ if (dropResult === "removed") {
168929
+ didMutateMessage = true;
168930
+ }
168931
+ updateTagDropMode(db, sessionId, pendingOp.tagId, "full");
168919
168932
  }
168920
- updateTagDropMode(db, sessionId, pendingOp.tagId, "full");
168921
168933
  } else if (target) {
168922
168934
  const changed = target.setContent(buildReplacementContent(pendingOp.tagId, target));
168923
168935
  if (changed)
@@ -173599,7 +173611,6 @@ function memoryProjectPath(state) {
173599
173611
  }
173600
173612
  var EMPTY_PI_HARD_SIGNALS = {
173601
173613
  systemHash: "",
173602
- toolSetHash: "",
173603
173614
  modelKey: "",
173604
173615
  cacheExpired: false,
173605
173616
  lastResponseTime: 0
@@ -173652,7 +173663,6 @@ function getCachedMarkers(db, state, compartmentsForNormalization) {
173652
173663
  upgradeState: meta3.cachedM0UpgradeState,
173653
173664
  lastBaselineEndMessageId: cachedBoundary,
173654
173665
  systemHash: meta3.cachedM0SystemHash ?? "",
173655
- toolSetHash: meta3.cachedM0ToolSetHash ?? "",
173656
173666
  modelKey: meta3.cachedM0ModelKey ?? ""
173657
173667
  };
173658
173668
  }
@@ -173681,7 +173691,6 @@ function readCurrentMarkersFromCompartments(db, state, compartments, projectDocs
173681
173691
  upgradeState: `${PI_M0_UPGRADE_STATE}:${compartments.some((c) => c.legacy === 1) ? "legacy" : "ready"}`,
173682
173692
  lastBaselineEndMessageId: lastBaselineEndMessageId(compartments),
173683
173693
  systemHash: (state.hardSignals ?? EMPTY_PI_HARD_SIGNALS).systemHash,
173684
- toolSetHash: (state.hardSignals ?? EMPTY_PI_HARD_SIGNALS).toolSetHash,
173685
173694
  modelKey: (state.hardSignals ?? EMPTY_PI_HARD_SIGNALS).modelKey
173686
173695
  };
173687
173696
  }
@@ -173706,9 +173715,6 @@ function mustMaterializePi(state, db, currentCompartmentsOverride) {
173706
173715
  if (hard.systemHash !== "" && hard.systemHash !== (meta3.cachedM0SystemHash ?? "")) {
173707
173716
  return { value: true, reason: "system_hash" };
173708
173717
  }
173709
- if (hard.toolSetHash !== "" && hard.toolSetHash !== (meta3.cachedM0ToolSetHash ?? "")) {
173710
- return { value: true, reason: "tool_set_hash" };
173711
- }
173712
173718
  if (hard.cacheExpired && hard.lastResponseTime > 0 && hard.lastResponseTime > (meta3.cachedM0MaterializedAt ?? 0)) {
173713
173719
  return { value: true, reason: "ttl_idle" };
173714
173720
  }
@@ -173807,7 +173813,6 @@ function readFrozenM0InputsPi(state, db, docs = readProjectDocsCanonical(state.p
173807
173813
  upgradeState: `${PI_M0_UPGRADE_STATE}:${compartments.some((c) => c.legacy === 1) ? "legacy" : "ready"}`,
173808
173814
  lastBaselineEndMessageId: lastBaselineEndMessageId(compartments),
173809
173815
  systemHash: (state.hardSignals ?? EMPTY_PI_HARD_SIGNALS).systemHash,
173810
- toolSetHash: (state.hardSignals ?? EMPTY_PI_HARD_SIGNALS).toolSetHash,
173811
173816
  modelKey: (state.hardSignals ?? EMPTY_PI_HARD_SIGNALS).modelKey
173812
173817
  };
173813
173818
  return { docs, markers, compartments, memories, userProfile };
@@ -173886,7 +173891,6 @@ function materializeM0Pi(state, db) {
173886
173891
  sessionFactsVersion: snapshotMarkers.sessionFactsVersion,
173887
173892
  upgradeState: snapshotMarkers.upgradeState,
173888
173893
  systemHash: snapshotMarkers.systemHash,
173889
- toolSetHash: snapshotMarkers.toolSetHash,
173890
173894
  modelKey: snapshotMarkers.modelKey
173891
173895
  });
173892
173896
  db.prepare("UPDATE session_meta SET memory_block_count = ?, memory_block_ids = ? WHERE session_id = ?").run(renderedMemoryIds.length, JSON.stringify(renderedMemoryIds), state.sessionId);
@@ -174055,7 +174059,6 @@ function readCachedPiM0M1Row(db, sessionId) {
174055
174059
  cached_m0_session_facts_version,
174056
174060
  cached_m0_upgrade_state,
174057
174061
  cached_m0_system_hash,
174058
- cached_m0_tool_set_hash,
174059
174062
  cached_m0_model_key,
174060
174063
  cached_m0_last_baseline_end_message_id,
174061
174064
  memory_block_ids
@@ -174096,7 +174099,6 @@ function markersFromCachedPiRow(row, compartmentsForNormalization) {
174096
174099
  upgradeState: row.cached_m0_upgrade_state,
174097
174100
  lastBaselineEndMessageId: typeof row.cached_m0_last_baseline_end_message_id === "string" && row.cached_m0_last_baseline_end_message_id.length > 0 ? row.cached_m0_last_baseline_end_message_id : null,
174098
174101
  systemHash: row.cached_m0_system_hash ?? "",
174099
- toolSetHash: row.cached_m0_tool_set_hash ?? "",
174100
174102
  modelKey: row.cached_m0_model_key ?? ""
174101
174103
  };
174102
174104
  }
@@ -174104,7 +174106,7 @@ function cachedPiRowMatchesSnapshot(args) {
174104
174106
  const rowMarkers = markersFromCachedPiRow(args.row, args.compartmentsForNormalization);
174105
174107
  if (!rowMarkers)
174106
174108
  return false;
174107
- return bufferEqualsNullable(args.row.cached_m0_bytes, args.m0Bytes) && rowMarkers.projectMemoryEpoch === args.markers.projectMemoryEpoch && rowMarkers.projectUserProfileVersion === args.markers.projectUserProfileVersion && rowMarkers.maxCompartmentSeq === args.markers.maxCompartmentSeq && rowMarkers.maxMemoryId === args.markers.maxMemoryId && rowMarkers.maxMutationId === args.markers.maxMutationId && rowMarkers.maxMemoryMutationId === args.markers.maxMemoryMutationId && (rowMarkers.projectDocsHash ?? "") === (args.markers.projectDocsHash ?? "") && rowMarkers.materializedAt === args.markers.materializedAt && rowMarkers.sessionFactsVersion === args.markers.sessionFactsVersion && (rowMarkers.upgradeState ?? null) === (args.markers.upgradeState ?? null) && (rowMarkers.systemHash ?? "") === (args.markers.systemHash ?? "") && (rowMarkers.toolSetHash ?? "") === (args.markers.toolSetHash ?? "") && (rowMarkers.modelKey ?? "") === (args.markers.modelKey ?? "");
174109
+ return bufferEqualsNullable(args.row.cached_m0_bytes, args.m0Bytes) && rowMarkers.projectMemoryEpoch === args.markers.projectMemoryEpoch && rowMarkers.projectUserProfileVersion === args.markers.projectUserProfileVersion && rowMarkers.maxCompartmentSeq === args.markers.maxCompartmentSeq && rowMarkers.maxMemoryId === args.markers.maxMemoryId && rowMarkers.maxMutationId === args.markers.maxMutationId && rowMarkers.maxMemoryMutationId === args.markers.maxMemoryMutationId && (rowMarkers.projectDocsHash ?? "") === (args.markers.projectDocsHash ?? "") && rowMarkers.materializedAt === args.markers.materializedAt && rowMarkers.sessionFactsVersion === args.markers.sessionFactsVersion && (rowMarkers.upgradeState ?? null) === (args.markers.upgradeState ?? null) && (rowMarkers.systemHash ?? "") === (args.markers.systemHash ?? "") && (rowMarkers.modelKey ?? "") === (args.markers.modelKey ?? "");
174108
174110
  }
174109
174111
  function decodeCachedM1(row, sessionId) {
174110
174112
  if (!row.cached_m1_bytes) {
@@ -180489,7 +180491,6 @@ async function runPipeline(args) {
180489
180491
  } catch {}
180490
180492
  const piHardSignals = {
180491
180493
  systemHash: typeof hardMeta.systemPromptHash === "string" ? hardMeta.systemPromptHash : "",
180492
- toolSetHash: "",
180493
180494
  modelKey: liveModelBySession.get(args.sessionId) ?? "",
180494
180495
  cacheExpired: hardMeta.lastResponseTime > 0 && Date.now() - hardMeta.lastResponseTime >= piTtlMs,
180495
180496
  lastResponseTime: hardMeta.lastResponseTime
@@ -183244,7 +183245,7 @@ function formatThresholdPercent(value) {
183244
183245
  // package.json
183245
183246
  var package_default = {
183246
183247
  name: "@wolfx/pi-magic-context",
183247
- version: "0.23.0",
183248
+ version: "0.23.1",
183248
183249
  type: "module",
183249
183250
  description: "Pi coding agent extension for Magic Context — cross-session memory and context management",
183250
183251
  main: "dist/index.js",
@@ -159936,9 +159936,8 @@ function persistCachedM0(db, sessionId, payload) {
159936
159936
  cached_m0_session_facts_version = ?,
159937
159937
  cached_m0_upgrade_state = ?,
159938
159938
  cached_m0_system_hash = ?,
159939
- cached_m0_tool_set_hash = ?,
159940
159939
  cached_m0_model_key = ?
159941
- WHERE session_id = ?`).run(Buffer2.from(payload.m0Bytes), payload.projectMemoryEpoch, payload.projectUserProfileVersion, payload.maxCompartmentSeq, payload.maxMemoryId, payload.maxMutationId, payload.maxMemoryMutationId ?? null, payload.m1Bytes ? Buffer2.from(payload.m1Bytes) : null, payload.projectDocsHash, payload.materializedAt, payload.sessionFactsVersion, payload.upgradeState, payload.systemHash ?? "", payload.toolSetHash ?? "", payload.modelKey ?? "", sessionId);
159940
+ WHERE session_id = ?`).run(Buffer2.from(payload.m0Bytes), payload.projectMemoryEpoch, payload.projectUserProfileVersion, payload.maxCompartmentSeq, payload.maxMemoryId, payload.maxMutationId, payload.maxMemoryMutationId ?? null, payload.m1Bytes ? Buffer2.from(payload.m1Bytes) : null, payload.projectDocsHash, payload.materializedAt, payload.sessionFactsVersion, payload.upgradeState, payload.systemHash ?? "", payload.modelKey ?? "", sessionId);
159942
159941
  }
159943
159942
  function clearCachedM0M1(db, sessionId) {
159944
159943
  ensureSessionMetaRow(db, sessionId);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wolfx/pi-magic-context",
3
- "version": "0.23.0",
3
+ "version": "0.23.1",
4
4
  "type": "module",
5
5
  "description": "Pi coding agent extension for Magic Context — cross-session memory and context management",
6
6
  "main": "dist/index.js",