@cortexkit/aft-pi 0.35.2 → 0.35.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAcH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AASpE,OAAO,EACL,KAAK,SAAS,EACd,aAAa,EAId,MAAM,aAAa,CAAC;AA8DrB,KAAK,mBAAmB,GAAG;IACzB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C,CAAC;AAEF,iBAAS,4BAA4B,CACnC,OAAO,EAAE,MAAM,mBAAmB,GAAG,SAAS,EAC9C,sBAAsB,GAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAgB,IAOrE,eAAe,MAAM,EAAE,YAAY,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyCjF;AA8DD,iBAAS,wBAAwB,CAC/B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,UAAU,CAAC,GACtD,OAAO,CAGT;AAED,iBAAS,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG9E;AASD,iBAAe,iCAAiC,CAAC,OAAO,EAAE;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC,OAAO,uBAAuB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACnE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChB;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,GAAG;IACrE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAwEA;AAED;;;;GAIG;AACH,yBAA+B,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4c9D;AAED,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAcH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AASpE,OAAO,EACL,KAAK,SAAS,EACd,aAAa,EAId,MAAM,aAAa,CAAC;AA8DrB,KAAK,mBAAmB,GAAG;IACzB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C,CAAC;AAEF,iBAAS,4BAA4B,CACnC,OAAO,EAAE,MAAM,mBAAmB,GAAG,SAAS,EAC9C,sBAAsB,GAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAgB,IAOrE,eAAe,MAAM,EAAE,YAAY,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyCjF;AA4DD,iBAAS,wBAAwB,CAC/B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,UAAU,CAAC,GACtD,OAAO,CAGT;AAED,iBAAS,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG9E;AASD,iBAAe,iCAAiC,CAAC,OAAO,EAAE;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC,OAAO,uBAAuB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACnE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChB;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,GAAG;IACrE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAwEA;AAED;;;;GAIG;AACH,yBAA+B,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA4c9D;AAED,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC"}
package/dist/index.js CHANGED
@@ -12140,7 +12140,6 @@ class BinaryBridge {
12140
12140
  if (!snapshot || typeof snapshot !== "object" || Array.isArray(snapshot))
12141
12141
  return;
12142
12142
  this.cachedStatus = snapshot;
12143
- this.logVia("Received status_changed push frame; cached AFT status snapshot");
12144
12143
  for (const listener of this.statusListeners) {
12145
12144
  this.deliverStatusSnapshot(listener, this.cachedStatus);
12146
12145
  }
@@ -14966,7 +14965,7 @@ import {
14966
14965
  // package.json
14967
14966
  var package_default = {
14968
14967
  name: "@cortexkit/aft-pi",
14969
- version: "0.35.2",
14968
+ version: "0.35.3",
14970
14969
  type: "module",
14971
14970
  description: "Pi coding agent extension for Agent File Tools (AFT) — tree-sitter and LSP-powered code analysis",
14972
14971
  main: "dist/index.js",
@@ -14989,7 +14988,7 @@ var package_default = {
14989
14988
  "test:unit": "bun test src/__tests__ --path-ignore-patterns 'src/__tests__/e2e/**'"
14990
14989
  },
14991
14990
  dependencies: {
14992
- "@cortexkit/aft-bridge": "0.35.2",
14991
+ "@cortexkit/aft-bridge": "0.35.3",
14993
14992
  "@xterm/headless": "^5.5.0",
14994
14993
  "comment-json": "^5.0.0",
14995
14994
  diff: "^8.0.4",
@@ -14997,12 +14996,12 @@ var package_default = {
14997
14996
  zod: "^4.1.8"
14998
14997
  },
14999
14998
  optionalDependencies: {
15000
- "@cortexkit/aft-darwin-arm64": "0.35.2",
15001
- "@cortexkit/aft-darwin-x64": "0.35.2",
15002
- "@cortexkit/aft-linux-arm64": "0.35.2",
15003
- "@cortexkit/aft-linux-x64": "0.35.2",
15004
- "@cortexkit/aft-win32-arm64": "0.35.2",
15005
- "@cortexkit/aft-win32-x64": "0.35.2"
14999
+ "@cortexkit/aft-darwin-arm64": "0.35.3",
15000
+ "@cortexkit/aft-darwin-x64": "0.35.3",
15001
+ "@cortexkit/aft-linux-arm64": "0.35.3",
15002
+ "@cortexkit/aft-linux-x64": "0.35.3",
15003
+ "@cortexkit/aft-win32-arm64": "0.35.3",
15004
+ "@cortexkit/aft-win32-x64": "0.35.3"
15006
15005
  },
15007
15006
  devDependencies: {
15008
15007
  "@earendil-works/pi-coding-agent": "*",
@@ -15065,6 +15064,20 @@ function readCompression(value) {
15065
15064
  session: readCompressionAggregate(compression.session)
15066
15065
  };
15067
15066
  }
15067
+ function readStatusBar(value) {
15068
+ if (typeof value !== "object" || value === null)
15069
+ return;
15070
+ const bar = asRecord(value);
15071
+ return {
15072
+ errors: readNumber(bar.errors),
15073
+ warnings: readNumber(bar.warnings),
15074
+ dead_code: readNumber(bar.dead_code),
15075
+ unused_exports: readNumber(bar.unused_exports),
15076
+ duplicates: readNumber(bar.duplicates),
15077
+ todos: readNumber(bar.todos),
15078
+ tier2_stale: readBoolean(bar.tier2_stale)
15079
+ };
15080
+ }
15068
15081
  function formatFlag(enabled) {
15069
15082
  return enabled ? "enabled" : "disabled";
15070
15083
  }
@@ -15156,7 +15169,8 @@ function coerceAftStatus(response) {
15156
15169
  tracked_files: readNumber(session.tracked_files),
15157
15170
  checkpoints: readNumber(session.checkpoints)
15158
15171
  },
15159
- compression: readCompression(response.compression)
15172
+ compression: readCompression(response.compression),
15173
+ status_bar: readStatusBar(response.status_bar)
15160
15174
  };
15161
15175
  }
15162
15176
  function formatStatusDialogMessage(status) {
@@ -15194,6 +15208,10 @@ function formatStatusDialogMessage(status) {
15194
15208
  lines.push(`- dimension: ${formatCount(status.semantic_index.dimension)}`);
15195
15209
  }
15196
15210
  lines.push("", "Disk usage", `- trigram index: ${formatBytes(status.disk.trigram_disk_bytes)}`, `- semantic index: ${formatBytes(status.disk.semantic_disk_bytes)}`, "", "Runtime", `- LSP servers: ${formatCount(status.lsp_servers)}`, `- symbol cache: ${formatCount(status.symbol_cache.local_entries)} local / ${formatCount(status.symbol_cache.warm_entries)} warm`);
15211
+ if (status.status_bar) {
15212
+ const sb = status.status_bar;
15213
+ lines.push("", `Code Health${sb.tier2_stale ? " (~ stale)" : ""}`, `- errors: ${formatCount(sb.errors)}`, `- warnings: ${formatCount(sb.warnings)}`, `- duplicates: ${formatCount(sb.duplicates)}`, `- todos: ${formatCount(sb.todos)}`);
15214
+ }
15197
15215
  if (status.storage_dir ?? status.disk.storage_dir) {
15198
15216
  lines.push(`- storage dir: ${status.storage_dir ?? status.disk.storage_dir}`);
15199
15217
  }
@@ -29819,7 +29837,16 @@ function loadAftConfig(projectDirectory) {
29819
29837
  // src/lsp-auto-install.ts
29820
29838
  import { spawn as spawn2 } from "node:child_process";
29821
29839
  import { createHash as createHash3 } from "node:crypto";
29822
- import { createReadStream, mkdirSync as mkdirSync7, readFileSync as readFileSync7, renameSync as renameSync5, rmSync as rmSync3, statSync as statSync5 } from "node:fs";
29840
+ import {
29841
+ createReadStream,
29842
+ existsSync as existsSync8,
29843
+ mkdirSync as mkdirSync7,
29844
+ readFileSync as readFileSync7,
29845
+ renameSync as renameSync5,
29846
+ rmSync as rmSync3,
29847
+ statSync as statSync5,
29848
+ writeFileSync as writeFileSync5
29849
+ } from "node:fs";
29823
29850
  import { join as join12 } from "node:path";
29824
29851
 
29825
29852
  // src/lsp-cache.ts
@@ -30394,6 +30421,17 @@ async function resolveTargetVersion(spec, config2, fetchImpl = fetch) {
30394
30421
  writeVersionCheck(spec.npm, probe.version);
30395
30422
  return { version: probe.version, pinned: false, probe };
30396
30423
  }
30424
+ function ensureInstallAnchor(cwd) {
30425
+ try {
30426
+ const stub = join12(cwd, "package.json");
30427
+ if (!existsSync8(stub)) {
30428
+ writeFileSync5(stub, `${JSON.stringify({ name: "aft-lsp-cache", version: "0.0.0", private: true })}
30429
+ `);
30430
+ }
30431
+ } catch (err) {
30432
+ warn2(`[lsp] could not write package.json stub in ${cwd}: ${err}`);
30433
+ }
30434
+ }
30397
30435
  function runInstall(spec, version2, cwd, signal) {
30398
30436
  return new Promise((resolve2) => {
30399
30437
  const target = `${spec.npm}@${version2}`;
@@ -30409,6 +30447,7 @@ function runInstall(spec, version2, cwd, signal) {
30409
30447
  resolve2(false);
30410
30448
  return;
30411
30449
  }
30450
+ ensureInstallAnchor(cwd);
30412
30451
  const child = spawn2(npm.command, ["install", "--no-save", "--ignore-scripts", "--silent", target], {
30413
30452
  stdio: ["ignore", "pipe", "pipe"],
30414
30453
  cwd,
@@ -30661,7 +30700,7 @@ import {
30661
30700
  copyFileSync as copyFileSync4,
30662
30701
  createReadStream as createReadStream2,
30663
30702
  createWriteStream as createWriteStream3,
30664
- existsSync as existsSync8,
30703
+ existsSync as existsSync9,
30665
30704
  lstatSync as lstatSync2,
30666
30705
  mkdirSync as mkdirSync8,
30667
30706
  readdirSync as readdirSync4,
@@ -30672,7 +30711,7 @@ import {
30672
30711
  rmSync as rmSync4,
30673
30712
  statSync as statSync6,
30674
30713
  unlinkSync as unlinkSync6,
30675
- writeFileSync as writeFileSync5
30714
+ writeFileSync as writeFileSync6
30676
30715
  } from "node:fs";
30677
30716
  import { dirname as dirname5, join as join13, relative as relative2, resolve as resolve2 } from "node:path";
30678
30717
  import { Readable as Readable3 } from "node:stream";
@@ -30823,7 +30862,7 @@ function writeGithubInstalledMetaIn(installDir, version2, binarySha256, archiveS
30823
30862
  binarySha256,
30824
30863
  ...archiveSha256 ? { archiveSha256 } : {}
30825
30864
  };
30826
- writeFileSync5(join13(installDir, INSTALLED_META_FILE2), JSON.stringify(meta3), "utf8");
30865
+ writeFileSync6(join13(installDir, INSTALLED_META_FILE2), JSON.stringify(meta3), "utf8");
30827
30866
  } catch (err) {
30828
30867
  warn2(`[lsp] failed to write github installed metadata in ${installDir}: ${err}`);
30829
30868
  }
@@ -31292,7 +31331,7 @@ async function downloadAndInstall(spec, tag, assets, platform, arch, fetchImpl,
31292
31331
  } catch {}
31293
31332
  }
31294
31333
  const innerBinaryPath = join13(extractDir, spec.binaryPathInArchive(platform, arch, version2));
31295
- if (!existsSync8(innerBinaryPath)) {
31334
+ if (!existsSync9(innerBinaryPath)) {
31296
31335
  error2(`[lsp] ${spec.id}: extracted binary not found at ${innerBinaryPath}`);
31297
31336
  return null;
31298
31337
  }
@@ -31376,7 +31415,7 @@ function runGithubAutoInstall(relevantServers, config2, fetchImpl = fetch) {
31376
31415
  if (!host) {
31377
31416
  for (const spec of GITHUB_LSP_TABLE) {
31378
31417
  try {
31379
- if (existsSync8(ghBinDir(spec))) {
31418
+ if (existsSync9(ghBinDir(spec))) {
31380
31419
  cachedBinDirs.push(ghBinDir(spec));
31381
31420
  }
31382
31421
  } catch {}
@@ -35361,14 +35400,12 @@ var PLUGIN_VERSION = (() => {
35361
35400
  return "0.0.0";
35362
35401
  }
35363
35402
  })();
35364
- var ANNOUNCEMENT_VERSION = "0.35.0";
35403
+ var ANNOUNCEMENT_VERSION = "0.35.3";
35365
35404
  var ANNOUNCEMENT_FEATURES = [
35366
- "Leaner semantic indexing local embedding now uses about half the CPU and a fraction of the peak memory, with no change to results and no re-index needed.",
35367
- "New IDE-style status bar on tool results live LSP errors/warnings plus dead-code, unused-export, duplicate, and TODO counts at a glance.",
35368
- "`aft_inspect` is more accurate (dead-code reachability, duplicate collapse, ranked findings) and a background scheduler keeps its counts fresh during long sessions.",
35369
- "The `aft_conflicts` and `grep` bash-output hints now fire on Pi too.",
35370
- "`npx @cortexkit/aft --version` reports CLI, binary, and per-harness versions; `doctor --issue` can scope its report to a single session.",
35371
- "New SCSS support and `.inc` files parsed as PHP."
35405
+ "Code Health in `/aft-status`: live LSP errors and warnings plus duplicate and TODO counts.",
35406
+ "The semantic index now recovers on its own from a transient embedding-backend blip (a restarted local server, or a model still loading) instead of getting stuck on `failed`.",
35407
+ "Fixed a background codebase-scan crash on very deep or minified files.",
35408
+ "More reliable LSP auto-install when a parent directory has its own `package.json`."
35372
35409
  ];
35373
35410
  var ANNOUNCEMENT_FOOTER = "Join us on Discord: https://discord.gg/DSa65w8wuf";
35374
35411
  var ALL_ONLY_TOOLS = new Set([
@@ -71,6 +71,25 @@ export interface AutoInstallResult {
71
71
  installsComplete: Promise<void>;
72
72
  }
73
73
  export declare function abortInFlightAutoInstalls(): Promise<void>;
74
+ /**
75
+ * Spawn `npm install --no-save <pkg>@<version>` in the cache dir.
76
+ *
77
+ * Uses `--ignore-scripts` to neutralize lifecycle hooks (the v0.16 audit
78
+ * hardening). Output goes to plugin log.
79
+ */
80
+ /**
81
+ * Anchor an `npm install --no-save` to `cwd` by writing a minimal package.json.
82
+ *
83
+ * Without a package.json in `cwd`, npm walks UP the directory tree; if any
84
+ * ancestor (e.g. ~/package.json) has one, npm installs into THAT package's
85
+ * node_modules instead, leaving our cache dir's node_modules/<server> missing
86
+ * while still exiting 0. The result is a silent install failure and a recurring
87
+ * lsp_binary_missing warning. The old `bun add` flow created this package.json
88
+ * implicitly; npm needs it written explicitly. GitHub #92.
89
+ *
90
+ * Idempotent: only writes when absent. Failures are non-fatal (logged).
91
+ */
92
+ export declare function ensureInstallAnchor(cwd: string): void;
74
93
  /**
75
94
  * Top-level entry point. Returns the list of bin directories that already
76
95
  * have an installed binary AND kicks off background installs for missing
@@ -1 +1 @@
1
- {"version":3,"file":"lsp-auto-install.d.ts","sourceRoot":"","sources":["../src/lsp-auto-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA6BH,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,kGAAkG;IAClG,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,qCAAqC;AACrC,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gDAAgD;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;;;OAOG;IACH,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C;;;;;;;;;OASG;IACH,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AA8DD,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM/D;AAyWD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,iBAAiB,EACzB,SAAS,GAAE,OAAO,KAAa,GAC9B,iBAAiB,CA0EnB"}
1
+ {"version":3,"file":"lsp-auto-install.d.ts","sourceRoot":"","sources":["../src/lsp-auto-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAsCH,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,kGAAkG;IAClG,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,qCAAqC;AACrC,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gDAAgD;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;;;OAOG;IACH,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C;;;;;;;;;OASG;IACH,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AA8DD,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM/D;AAyDD;;;;;GAKG;AACH;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAYrD;AA+SD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,iBAAiB,EACzB,SAAS,GAAE,OAAO,KAAa,GAC9B,iBAAiB,CA0EnB"}
@@ -8,6 +8,23 @@ export interface StatusCompression {
8
8
  project: StatusCompressionAggregate;
9
9
  session: StatusCompressionAggregate;
10
10
  }
11
+ /**
12
+ * The agent status-bar glance — `[AFT E· W· | D· U· C· | T·]`. `errors`/
13
+ * `warnings` are live LSP diagnostics for files touched this session; the
14
+ * Tier-2 trio (`dead_code`/`unused_exports`/`duplicates`) plus `todos` come
15
+ * from the last completed background scan. `tier2_stale` marks those Tier-2
16
+ * counts as predating the latest edit. Null in the snapshot until the Tier-2
17
+ * cache is populated at least once (no fabricated zeros).
18
+ */
19
+ export interface StatusBar {
20
+ errors: number;
21
+ warnings: number;
22
+ dead_code: number;
23
+ unused_exports: number;
24
+ duplicates: number;
25
+ todos: number;
26
+ tier2_stale: boolean;
27
+ }
11
28
  export interface AftStatusSnapshot {
12
29
  version: string;
13
30
  project_root: string | null;
@@ -59,6 +76,12 @@ export interface AftStatusSnapshot {
59
76
  };
60
77
  /** Compression aggregate passthrough; rendering is added separately. */
61
78
  compression?: StatusCompression;
79
+ /**
80
+ * Agent status-bar counts (E/W/D/U/C/T). Undefined until the Tier-2 cache
81
+ * is populated at least once — the overlay hides the Code Health section
82
+ * until then so it never shows fabricated zeros.
83
+ */
84
+ status_bar?: StatusBar;
62
85
  /**
63
86
  * Set on synthetic "not_initialized" snapshots when no bridge has spawned
64
87
  * yet. Renderers display this in place of empty status rows.
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/shared/status.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,0BAA0B,CAAC;IACpC,OAAO,EAAE,0BAA0B,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QACR,cAAc,EAAE,OAAO,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,wBAAwB,EAAE,OAAO,CAAC;QAClC,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IACF,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,gBAAgB,EAAE,MAAM,CAAC;QACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iEAAiE;IACjE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,wEAAwE;IACxE,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAqDD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAKvF;AAED,wBAAgB,wBAAwB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI/E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAajD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAgEpF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAmE3E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAqEtE"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/shared/status.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/aft-pi",
3
- "version": "0.35.2",
3
+ "version": "0.35.3",
4
4
  "type": "module",
5
5
  "description": "Pi coding agent extension for Agent File Tools (AFT) — tree-sitter and LSP-powered code analysis",
6
6
  "main": "dist/index.js",
@@ -23,7 +23,7 @@
23
23
  "test:unit": "bun test src/__tests__ --path-ignore-patterns 'src/__tests__/e2e/**'"
24
24
  },
25
25
  "dependencies": {
26
- "@cortexkit/aft-bridge": "0.35.2",
26
+ "@cortexkit/aft-bridge": "0.35.3",
27
27
  "@xterm/headless": "^5.5.0",
28
28
  "comment-json": "^5.0.0",
29
29
  "diff": "^8.0.4",
@@ -31,12 +31,12 @@
31
31
  "zod": "^4.1.8"
32
32
  },
33
33
  "optionalDependencies": {
34
- "@cortexkit/aft-darwin-arm64": "0.35.2",
35
- "@cortexkit/aft-darwin-x64": "0.35.2",
36
- "@cortexkit/aft-linux-arm64": "0.35.2",
37
- "@cortexkit/aft-linux-x64": "0.35.2",
38
- "@cortexkit/aft-win32-arm64": "0.35.2",
39
- "@cortexkit/aft-win32-x64": "0.35.2"
34
+ "@cortexkit/aft-darwin-arm64": "0.35.3",
35
+ "@cortexkit/aft-darwin-x64": "0.35.3",
36
+ "@cortexkit/aft-linux-arm64": "0.35.3",
37
+ "@cortexkit/aft-linux-x64": "0.35.3",
38
+ "@cortexkit/aft-win32-arm64": "0.35.3",
39
+ "@cortexkit/aft-win32-x64": "0.35.3"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@earendil-works/pi-coding-agent": "*",