@pi-unipi/compactor 2.1.3 → 2.2.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pi-unipi/compactor",
3
- "version": "2.1.3",
3
+ "version": "2.2.1",
4
4
  "description": "Context engine for Pi — zero-LLM compaction, session continuity, sandbox execution, and tool display optimization",
5
5
  "type": "module",
6
6
  "main": "src/index.ts",
@@ -34,8 +34,8 @@
34
34
  "access": "public"
35
35
  },
36
36
  "dependencies": {
37
- "@pi-unipi/core": "2.1.3",
38
- "@pi-unipi/info-screen": "2.1.3",
37
+ "@pi-unipi/core": "2.2.0",
38
+ "@pi-unipi/info-screen": "2.2.1",
39
39
  "@earendil-works/pi-agent-core": "^0.80.0"
40
40
  },
41
41
  "peerDependencies": {
@@ -8,13 +8,14 @@
8
8
  */
9
9
 
10
10
  import type { Component, TUI } from "@earendil-works/pi-tui";
11
- import { truncateToWidth, visibleWidth, SettingsList, type SettingItem, type SettingsListTheme } from "@earendil-works/pi-tui";
11
+ import { matchesKey, truncateToWidth, visibleWidth, SettingsList, type SettingItem, type SettingsListTheme } from "@earendil-works/pi-tui";
12
12
  import type { Theme, KeybindingsManager } from "@earendil-works/pi-coding-agent";
13
13
  import { loadConfig, saveConfig, projectConfigPath } from "../config/manager.js";
14
14
  import { applyPreset, detectPreset } from "../config/presets.js";
15
15
  import type { CompactorPreset } from "../types.js";
16
16
  import type { CompactorConfig } from "../types.js";
17
17
  import { existsSync, unlinkSync } from "node:fs";
18
+ import { boxInnerWidth } from "@pi-unipi/core";
18
19
 
19
20
  // ─── Section types ─────────────────────────────────────────────────────
20
21
 
@@ -565,7 +566,7 @@ export class CompactorSettingsOverlay implements Component {
565
566
  }
566
567
 
567
568
  // Escape cancels (but SettingsList also handles it, calling onCancel)
568
- if (data === "\x1b") {
569
+ if (matchesKey(data, "escape")) {
569
570
  this.onClose?.();
570
571
  return;
571
572
  }
@@ -577,7 +578,7 @@ export class CompactorSettingsOverlay implements Component {
577
578
  // ─── Render ────────────────────────────────────────────────────────
578
579
 
579
580
  render(width: number): string[] {
580
- const innerWidth = Math.max(22, width - 2);
581
+ const innerWidth = boxInnerWidth(width);
581
582
  const lines: string[] = [];
582
583
 
583
584
  // Header