@cortexkit/aft-pi 0.47.1 → 0.47.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.
package/dist/config.d.ts CHANGED
@@ -102,6 +102,14 @@ export type ToolSurface = "minimal" | "recommended" | "all";
102
102
  * - `bash: false` → hoist disabled entirely; Pi's native bash stays
103
103
  * - `bash: { ... }` → partial override; missing sub-keys default to true
104
104
  */
105
+ export interface SandboxConfig {
106
+ /** Enable native containment for first-party bash and PTY processes. Default: false. */
107
+ enabled?: boolean;
108
+ /** Additional absolute directories where sandboxed commands may write. User config only. */
109
+ write_allow?: string[];
110
+ /** Additional absolute paths sandboxed commands may not read. Project config may add entries. */
111
+ read_deny?: string[];
112
+ }
105
113
  export interface BashConfig {
106
114
  rewrite?: boolean;
107
115
  compress?: boolean;
@@ -143,6 +151,8 @@ export interface AftConfig {
143
151
  inspect?: InspectConfig;
144
152
  /** Undo backup config. User-only: project config cannot disable or shrink a user's safety net. */
145
153
  backup?: BackupConfig;
154
+ /** Native first-party bash sandbox. Write allowances are user-only; a project may enable but never disable. */
155
+ sandbox?: SandboxConfig;
146
156
  /**
147
157
  * Bash tool family (hoist + rewrite + compress + background execution).
148
158
  * Default on for `tool_surface: recommended`/`all`, off for `minimal`.
@@ -264,6 +274,11 @@ export declare const AftConfigSchema: z.ZodPreprocess<z.ZodObject<{
264
274
  max_depth: z.ZodOptional<z.ZodNumber>;
265
275
  max_file_size: z.ZodOptional<z.ZodNumber>;
266
276
  }, z.core.$strip>>;
277
+ sandbox: z.ZodOptional<z.ZodObject<{
278
+ enabled: z.ZodOptional<z.ZodBoolean>;
279
+ write_allow: z.ZodOptional<z.ZodArray<z.ZodString>>;
280
+ read_deny: z.ZodOptional<z.ZodArray<z.ZodString>>;
281
+ }, z.core.$strip>>;
267
282
  bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
268
283
  rewrite: z.ZodOptional<z.ZodBoolean>;
269
284
  compress: z.ZodOptional<z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -9526,10 +9526,11 @@ function formatCallgraphSections(op, response, theme = PLAIN_CALLGRAPH_THEME, op
9526
9526
  const warning = depthWarning(record, theme, "max_depth_reached", "truncated_paths");
9527
9527
  const hubSummary = hubSummaryLine(record, theme);
9528
9528
  const totalPaths = asNumber(record.total_paths) ?? paths.length;
9529
+ const totalPathsIsLowerBound = asBoolean(record.total_paths_is_lower_bound) ?? false;
9529
9530
  const entryPoints = asNumber(record.entry_points_found) ?? 0;
9530
9531
  const sections2 = [
9531
9532
  joinNonEmpty([
9532
- theme.fg("success", `${totalPaths} path${totalPaths === 1 ? "" : "s"}`),
9533
+ theme.fg("success", `${totalPathsIsLowerBound ? "at least " : ""}${totalPaths} path${totalPaths === 1 ? "" : "s"}`),
9533
9534
  theme.fg("muted", `${entryPoints} entry point${entryPoints === 1 ? "" : "s"}`),
9534
9535
  warning
9535
9536
  ])
@@ -14746,6 +14747,9 @@ class SubcTransportPool {
14746
14747
  if (record.routeEntry === entry2) {
14747
14748
  entry2.closed = true;
14748
14749
  record.routeEntry = null;
14750
+ if (entry2.handle != null) {
14751
+ safeCloseRoute(entry2.client, entry2.handle);
14752
+ }
14749
14753
  }
14750
14754
  };
14751
14755
  const handleRequestFailure = (err, entry2) => {
@@ -15791,7 +15795,7 @@ import {
15791
15795
  // package.json
15792
15796
  var package_default = {
15793
15797
  name: "@cortexkit/aft-pi",
15794
- version: "0.47.1",
15798
+ version: "0.47.3",
15795
15799
  type: "module",
15796
15800
  description: "Pi coding agent extension for Agent File Tools (AFT) — tree-sitter and LSP-powered code analysis",
15797
15801
  main: "dist/index.js",
@@ -15814,19 +15818,19 @@ var package_default = {
15814
15818
  "test:unit": "bun test src/__tests__ --path-ignore-patterns 'src/__tests__/e2e/**'"
15815
15819
  },
15816
15820
  dependencies: {
15817
- "@cortexkit/aft-bridge": "0.47.1",
15821
+ "@cortexkit/aft-bridge": "0.47.3",
15818
15822
  "comment-json": "^5.0.0",
15819
15823
  diff: "^8.0.4",
15820
15824
  typebox: "1.1.38",
15821
15825
  zod: "^4.4.3"
15822
15826
  },
15823
15827
  optionalDependencies: {
15824
- "@cortexkit/aft-darwin-arm64": "0.47.1",
15825
- "@cortexkit/aft-darwin-x64": "0.47.1",
15826
- "@cortexkit/aft-linux-arm64": "0.47.1",
15827
- "@cortexkit/aft-linux-x64": "0.47.1",
15828
- "@cortexkit/aft-win32-arm64": "0.47.1",
15829
- "@cortexkit/aft-win32-x64": "0.47.1"
15828
+ "@cortexkit/aft-darwin-arm64": "0.47.3",
15829
+ "@cortexkit/aft-darwin-x64": "0.47.3",
15830
+ "@cortexkit/aft-linux-arm64": "0.47.3",
15831
+ "@cortexkit/aft-linux-x64": "0.47.3",
15832
+ "@cortexkit/aft-win32-arm64": "0.47.3",
15833
+ "@cortexkit/aft-win32-x64": "0.47.3"
15830
15834
  },
15831
15835
  devDependencies: {
15832
15836
  "@earendil-works/pi-coding-agent": "^0.80.2",
@@ -15945,6 +15949,7 @@ function coerceAftStatus(response) {
15945
15949
  };
15946
15950
  const disk = asRecord2(response.disk);
15947
15951
  const symbolCache = asRecord2(response.symbol_cache);
15952
+ const runtime = asRecord2(response.runtime);
15948
15953
  const session = asRecord2(response.session);
15949
15954
  return {
15950
15955
  version: readString(response.version, "unknown"),
@@ -15983,6 +15988,11 @@ function coerceAftStatus(response) {
15983
15988
  semantic_disk_bytes: readNumber(disk.semantic_disk_bytes)
15984
15989
  },
15985
15990
  lsp_servers: readNumber(response.lsp_servers),
15991
+ runtime: {
15992
+ live_watchers: readNumber(runtime.live_watchers),
15993
+ live_actor_roots: readNumber(runtime.live_actor_roots),
15994
+ open_routes: readNumber(runtime.open_routes)
15995
+ },
15986
15996
  symbol_cache: {
15987
15997
  local_entries: readNumber(symbolCache.local_entries),
15988
15998
  warm_entries: readNumber(symbolCache.warm_entries)
@@ -16076,10 +16086,12 @@ function resolveSessionId(extCtx) {
16076
16086
 
16077
16087
  class BridgeError extends Error {
16078
16088
  code;
16079
- constructor(message, code) {
16089
+ response;
16090
+ constructor(message, code, response) {
16080
16091
  super(message);
16081
16092
  this.name = "BridgeError";
16082
16093
  this.code = code;
16094
+ this.response = response;
16083
16095
  }
16084
16096
  }
16085
16097
  async function callBridge(bridge, command, params = {}, extCtx, options) {
@@ -16096,7 +16108,7 @@ async function callBridge(bridge, command, params = {}, extCtx, options) {
16096
16108
  };
16097
16109
  const response = await bridge.send(command, merged, Object.keys(sendOptions).length > 0 ? sendOptions : undefined);
16098
16110
  if (response.success === false) {
16099
- throw new BridgeError(formatBridgeErrorMessage(command, response, merged), typeof response.code === "string" ? response.code : "");
16111
+ throw new BridgeError(formatBridgeErrorMessage(command, response, merged), typeof response.code === "string" ? response.code : "", response);
16100
16112
  }
16101
16113
  ingestBgCompletions(sessionId, response.bg_completions);
16102
16114
  return response;
@@ -30824,6 +30836,11 @@ var BashFeaturesSchema = exports_external.object({
30824
30836
  foreground_wait_window_ms: exports_external.number().int().positive().optional()
30825
30837
  });
30826
30838
  var BashConfigSchema = exports_external.union([exports_external.boolean(), BashFeaturesSchema]);
30839
+ var SandboxConfigSchema = exports_external.object({
30840
+ enabled: exports_external.boolean().optional(),
30841
+ write_allow: exports_external.array(exports_external.string()).optional(),
30842
+ read_deny: exports_external.array(exports_external.string()).optional()
30843
+ });
30827
30844
  var BridgeConfigSchema = exports_external.object({
30828
30845
  request_timeout_ms: exports_external.number().int().min(1000, { message: "bridge.request_timeout_ms must be at least 1000" }).optional(),
30829
30846
  hang_threshold: exports_external.number().int().min(1, { message: "bridge.hang_threshold must be at least 1" }).optional()
@@ -30864,6 +30881,7 @@ var AftConfigSchema = exports_external.preprocess((value) => stripHarnessSpecifi
30864
30881
  callgraph_chunk_size: exports_external.number().optional(),
30865
30882
  inspect: InspectConfigSchema.optional(),
30866
30883
  backup: BackupConfigSchema.optional(),
30884
+ sandbox: SandboxConfigSchema.optional(),
30867
30885
  bash: BashConfigSchema.optional(),
30868
30886
  experimental: ExperimentalConfigSchema.optional(),
30869
30887
  lsp: LspConfigSchema.optional(),
@@ -31128,6 +31146,15 @@ function mergeInspectConfig(baseInspect, overrideInspect) {
31128
31146
  }
31129
31147
  return Object.fromEntries(Object.entries(inspect).filter(([, value]) => value !== undefined));
31130
31148
  }
31149
+ function mergeSandboxConfig(base, project) {
31150
+ const readDeny = [...new Set([...base?.read_deny ?? [], ...project?.read_deny ?? []])];
31151
+ const merged = {
31152
+ ...base,
31153
+ ...readDeny.length > 0 ? { read_deny: readDeny } : {},
31154
+ ...project?.enabled === true ? { enabled: true } : {}
31155
+ };
31156
+ return Object.keys(merged).length > 0 ? merged : undefined;
31157
+ }
31131
31158
  function mergeBashConfig(baseBash, overrideBash) {
31132
31159
  if (baseBash === undefined && overrideBash === undefined)
31133
31160
  return;
@@ -31211,6 +31238,10 @@ function getStrippedTopLevelKeys(override) {
31211
31238
  stripped.push("bridge");
31212
31239
  if (override.backup !== undefined)
31213
31240
  stripped.push("backup");
31241
+ if (override.sandbox?.enabled === false)
31242
+ stripped.push("sandbox.enabled");
31243
+ if (override.sandbox?.write_allow !== undefined)
31244
+ stripped.push("sandbox.write_allow");
31214
31245
  if (override.subc !== undefined)
31215
31246
  stripped.push("subc");
31216
31247
  if (override.disabled_tools?.includes("aft_safety"))
@@ -31229,6 +31260,7 @@ function mergeConfigs(base, override) {
31229
31260
  const experimental = mergeExperimentalConfig(base.experimental, override.experimental);
31230
31261
  const bash = mergeBashConfig(base.bash, override.bash);
31231
31262
  const inspect = mergeInspectConfig(base.inspect, override.inspect);
31263
+ const sandbox = mergeSandboxConfig(base.sandbox, override.sandbox);
31232
31264
  const bridge = base.bridge;
31233
31265
  const safeOverride = pickProjectSafeFields(override);
31234
31266
  delete safeOverride.bash;
@@ -31241,6 +31273,7 @@ function mergeConfigs(base, override) {
31241
31273
  ...lsp ? { lsp } : {},
31242
31274
  ...bash !== undefined ? { bash } : {},
31243
31275
  ...inspect !== undefined ? { inspect } : {},
31276
+ ...sandbox !== undefined ? { sandbox } : {},
31244
31277
  experimental,
31245
31278
  semantic,
31246
31279
  ...bridge !== undefined ? { bridge } : {},
@@ -34391,6 +34424,9 @@ var BashBaseParams = {
34391
34424
  })),
34392
34425
  wait: Type4.Optional(Type4.Boolean({
34393
34426
  description: "When true, run in the foreground without auto-promoting and wait until the command finishes or reaches its timeout; if you send a new message, the wait detaches to background. Use only when you know the result is required before doing anything else."
34427
+ })),
34428
+ sandbox: Type4.Optional(Type4.Literal("host", {
34429
+ description: "Request one-command approval to run unsandboxed on the host; use only when native sandboxing blocks required work, and note that it is a no-op when sandboxing is disabled."
34394
34430
  }))
34395
34431
  };
34396
34432
  var BashBackgroundFlagParam = {
@@ -34473,6 +34509,48 @@ async function callBashBridge(bridge, command, params = {}, extCtx, options) {
34473
34509
  keepBridgeOnTimeout: true
34474
34510
  });
34475
34511
  }
34512
+ function piEscalationAskText(ask) {
34513
+ return `This command will run UNSANDBOXED on the host.
34514
+
34515
+ Exact command:
34516
+ ${ask.command ?? ""}
34517
+
34518
+ Working directory:
34519
+ ${ask.cwd ?? ""}`;
34520
+ }
34521
+ async function callBashWithPermissionLoop(bridge, params, extCtx, options) {
34522
+ const granted = Array.isArray(params.permissions_granted) ? params.permissions_granted.filter((value) => typeof value === "string") : [];
34523
+ for (let round = 0;round < 8; round++) {
34524
+ try {
34525
+ return await callBashBridge(bridge, "bash", { ...params, ...granted.length > 0 ? { permissions_granted: granted } : {} }, extCtx, options);
34526
+ } catch (error53) {
34527
+ if (!(error53 instanceof BridgeError)) {
34528
+ if (error53 instanceof Error && error53.message.includes("permission_required")) {
34529
+ throw new Error("Permission ask reached Pi adapter — this is a bug.");
34530
+ }
34531
+ throw error53;
34532
+ }
34533
+ if (error53.code !== "permission_required")
34534
+ throw error53;
34535
+ const asks = Array.isArray(error53.response?.asks) ? error53.response.asks : [];
34536
+ if (asks.length === 0 || asks.some((ask) => ask.kind !== "escalation")) {
34537
+ throw new Error("Permission ask reached Pi adapter without a host escalation grant — this is a bug.");
34538
+ }
34539
+ if (!extCtx.hasUI || typeof extCtx.ui?.confirm !== "function") {
34540
+ throw new BridgeError("Permission denied: host escalation approval requires an interactive UI.", "permission_denied");
34541
+ }
34542
+ for (const ask of asks) {
34543
+ const approved = await extCtx.ui.confirm("Run command unsandboxed on host?", piEscalationAskText(ask), { signal: extCtx.signal });
34544
+ if (!approved) {
34545
+ throw new BridgeError("Permission denied: unsandboxed host execution was denied.", "permission_denied");
34546
+ }
34547
+ if (ask.grant_id && !granted.includes(ask.grant_id))
34548
+ granted.push(ask.grant_id);
34549
+ }
34550
+ }
34551
+ }
34552
+ throw new Error("bash permission retry failed: too many rounds");
34553
+ }
34476
34554
  function truncateToVisualLines(text, maxLines) {
34477
34555
  const lines = text.split(`
34478
34556
  `);
@@ -34548,7 +34626,7 @@ DO NOT use bash for code search or code exploration. If you are about to run gre
34548
34626
  }
34549
34627
  const bridgeCommand = spawnContext.command;
34550
34628
  let streamed = "";
34551
- const response = await callBashBridge(bridge, "bash", {
34629
+ const response = await callBashWithPermissionLoop(bridge, {
34552
34630
  command: bridgeCommand,
34553
34631
  timeout: effectiveTimeout,
34554
34632
  workdir: spawnContext.cwd ?? params.workdir,
@@ -34562,7 +34640,8 @@ DO NOT use bash for code search or code exploration. If you are about to run gre
34562
34640
  pty_cols: ptyCols,
34563
34641
  foreground_orchestrate: true,
34564
34642
  block_to_completion: blockToCompletion,
34565
- wait: requestedWait
34643
+ wait: requestedWait,
34644
+ sandbox: params.sandbox
34566
34645
  }, extCtx, {
34567
34646
  transportTimeoutMs: orchestratedTransportTimeoutMs(blockToCompletion, requestedWait, effectiveTimeout, foregroundWaitMs),
34568
34647
  onProgress: ({ text }) => {
@@ -34570,11 +34649,6 @@ DO NOT use bash for code search or code exploration. If you are about to run gre
34570
34649
  const displayText = truncateToVisualLines(streamed, 100);
34571
34650
  onUpdate?.(bashResult(displayText, { streaming: true }));
34572
34651
  }
34573
- }).catch((err) => {
34574
- if (err instanceof Error && err.message.includes("permission_required")) {
34575
- throw new Error("Permission ask reached Pi adapter — this is a bug. Pi has no permission system.");
34576
- }
34577
- throw err;
34578
34652
  });
34579
34653
  if (response.success === false) {
34580
34654
  throw new Error(response.message ?? "bash failed");
@@ -34768,9 +34842,11 @@ async function bashStatusSnapshot(bridge, extCtx, taskId, outputMode, options) {
34768
34842
  async function waitForBashStatus(ctx, bridge, extCtx, taskId, outputMode, waitFor, waitForExit, effectiveWaitMs) {
34769
34843
  const startedAt = Date.now();
34770
34844
  const deadline = startedAt + effectiveWaitMs;
34771
- let spillCursor = { output: 0, stderr: 0, combined: 0 };
34772
- let scanText = "";
34773
- let scanBaseOffset = 0;
34845
+ let spillCursor = { output: 0, stderr: 0 };
34846
+ const scanState = {
34847
+ output: { text: "", baseOffset: 0 },
34848
+ stderr: { text: "", baseOffset: 0 }
34849
+ };
34774
34850
  const bridgeOptions = {
34775
34851
  keepBridgeOnTimeout: true,
34776
34852
  transportTimeoutMs: BASH_TRANSPORT_TIMEOUT_MS2
@@ -34813,32 +34889,37 @@ async function waitForBashStatus(ctx, bridge, extCtx, taskId, outputMode, waitFo
34813
34889
  const scan = await readNewTaskOutput(data, spillCursor);
34814
34890
  if (scan) {
34815
34891
  spillCursor = scan.nextCursor;
34816
- if (scanText.length === 0)
34817
- scanBaseOffset = scan.baseOffset;
34818
- scanText += scan.text;
34819
- if (waitFor.kind === "regex") {
34820
- const trimmed = trimWaitScanBuffer(scanText, scanBaseOffset, waitFor);
34821
- scanText = trimmed.text;
34822
- scanBaseOffset = trimmed.baseOffset;
34823
- }
34824
- const match = await findWaitMatch(bridge, extCtx, scanText, waitFor);
34825
- if (match) {
34826
- if (waitForExit && terminal) {
34827
- sawTerminal = true;
34828
- consumeBgCompletion(sessionId, taskId);
34829
- await markBgCompletionDelivered({ ctx, directory: extCtx.cwd, sessionID: sessionId }, taskId);
34830
- }
34831
- return withWaited(data, {
34832
- reason: "matched",
34833
- elapsed_ms: Date.now() - startedAt,
34834
- match: match.text,
34835
- match_offset: scanBaseOffset + match.byteOffset
34836
- });
34837
- }
34838
- if (waitFor.kind === "substring") {
34839
- const trimmed = trimWaitScanBuffer(scanText, scanBaseOffset, waitFor);
34840
- scanText = trimmed.text;
34841
- scanBaseOffset = trimmed.baseOffset;
34892
+ for (const chunk of scan.chunks) {
34893
+ const state = scanState[chunk.stream];
34894
+ if (state.text.length === 0)
34895
+ state.baseOffset = chunk.baseOffset;
34896
+ state.text += chunk.text;
34897
+ if (waitFor.kind === "regex") {
34898
+ const trimmed = trimWaitScanBuffer(state.text, state.baseOffset, waitFor);
34899
+ state.text = trimmed.text;
34900
+ state.baseOffset = trimmed.baseOffset;
34901
+ }
34902
+ const match = await findWaitMatch(bridge, extCtx, state.text, waitFor);
34903
+ if (match) {
34904
+ if (waitForExit && terminal) {
34905
+ sawTerminal = true;
34906
+ consumeBgCompletion(sessionId, taskId);
34907
+ await markBgCompletionDelivered({ ctx, directory: extCtx.cwd, sessionID: sessionId }, taskId);
34908
+ }
34909
+ const matchStream = data.mode === "pty" ? undefined : chunk.stream === "output" ? "stdout" : "stderr";
34910
+ return withWaited(data, {
34911
+ reason: "matched",
34912
+ elapsed_ms: Date.now() - startedAt,
34913
+ match: match.text,
34914
+ match_offset: state.baseOffset + match.byteOffset,
34915
+ match_stream: matchStream
34916
+ });
34917
+ }
34918
+ if (waitFor.kind === "substring") {
34919
+ const trimmed = trimWaitScanBuffer(state.text, state.baseOffset, waitFor);
34920
+ state.text = trimmed.text;
34921
+ state.baseOffset = trimmed.baseOffset;
34922
+ }
34842
34923
  }
34843
34924
  }
34844
34925
  }
@@ -34873,13 +34954,26 @@ async function readNewTaskOutput(data, cursor) {
34873
34954
  const bytesRead = stdoutBytes.length + stderrBytes.length;
34874
34955
  if (bytesRead === 0)
34875
34956
  return;
34957
+ const chunks = [];
34958
+ if (stdoutBytes.length > 0) {
34959
+ chunks.push({
34960
+ stream: "output",
34961
+ text: stdoutBytes.toString("utf8"),
34962
+ baseOffset: cursor.output
34963
+ });
34964
+ }
34965
+ if (stderrBytes.length > 0) {
34966
+ chunks.push({
34967
+ stream: "stderr",
34968
+ text: stderrBytes.toString("utf8"),
34969
+ baseOffset: cursor.stderr
34970
+ });
34971
+ }
34876
34972
  return {
34877
- text: Buffer.concat([stdoutBytes, stderrBytes]).toString("utf8"),
34878
- baseOffset: cursor.combined,
34973
+ chunks,
34879
34974
  nextCursor: {
34880
34975
  output: cursor.output + stdoutBytes.length,
34881
- stderr: cursor.stderr + stderrBytes.length,
34882
- combined: cursor.combined + bytesRead
34976
+ stderr: cursor.stderr + stderrBytes.length
34883
34977
  }
34884
34978
  };
34885
34979
  }
@@ -34976,7 +35070,8 @@ function withWaited(data, waited) {
34976
35070
  }
34977
35071
  function formatWaitSummary(waited, details) {
34978
35072
  if (waited.reason === "matched") {
34979
- return `Waited ${waited.elapsed_ms}ms; matched ${JSON.stringify(waited.match ?? "")} at offset ${waited.match_offset ?? 0}.`;
35073
+ const stream = waited.match_stream ? ` in ${waited.match_stream}` : "";
35074
+ return `Waited ${waited.elapsed_ms}ms; matched ${JSON.stringify(waited.match ?? "")}${stream} at offset ${waited.match_offset ?? 0}.`;
34980
35075
  }
34981
35076
  if (waited.reason === "timeout") {
34982
35077
  return `Waited ${waited.elapsed_ms}ms; timeout reached without match.`;
@@ -36780,14 +36875,14 @@ var PLUGIN_VERSION = (() => {
36780
36875
  return "0.0.0";
36781
36876
  }
36782
36877
  })();
36783
- var ANNOUNCEMENT_VERSION = "0.47.1";
36878
+ var ANNOUNCEMENT_VERSION = "0.47.3";
36784
36879
  var ANNOUNCEMENT_FEATURES = [
36785
- "Fixed: apply_patch could delete a file when a patch moved it to its own path same-path moves are now plain in-place updates.",
36786
- "Fixed: moving a symlink across filesystems turned it into a regular file; the link itself is now preserved.",
36787
- "Fixed: a failed delete could leave a phantom undo entry, so the next undo reverted the wrong operation.",
36788
- "Fixed: a crashed process could leave a stale lock that permanently disabled update checks.",
36789
- "Paths can be given as file: URLs (#162), and reading your own background task's output files no longer prompts for permission (#161).",
36790
- "Faster hot paths: warm symbol lookups skip re-hashing unchanged files, search reads each posting list once per query, snippets stream only the needed lines, and edits no longer copy the whole undo history per mutation."
36880
+ "Fixed: aft_search could return zero results when a match existed hidden test files consumed the result cap before source files were reached.",
36881
+ "Fixed: aft_import removing one name from a comma-separated PHP use (use A, B) deleted the sibling; Java static-member removal is fixed the same way.",
36882
+ "Fixed: aft_safety restore now preserves Unix permission bits (including the executable bit); aft_conflicts keeps conflicts with non-ASCII filenames.",
36883
+ "Fixed: aft_inspect no longer counts TODO markers inside strings and now reports self-import cycles; trace_data no longer reports a flow after the variable is overwritten.",
36884
+ "Long-running daemon sessions fully reclaim idle projects (lower memory), and daemon restarts no longer trigger a re-embedding storm.",
36885
+ "Faster indexed search, tool dispatch, call trees, and duplicate scans across the board."
36791
36886
  ];
36792
36887
  var ANNOUNCEMENT_FOOTER = "Join us on Discord: https://discord.gg/DSa65w8wuf";
36793
36888
  var ALL_ONLY_TOOLS = new Set(["aft_callgraph", "aft_delete", "aft_move", "aft_refactor"]);
@@ -61,6 +61,11 @@ export interface AftStatusSnapshot {
61
61
  semantic_disk_bytes: number;
62
62
  };
63
63
  lsp_servers: number;
64
+ runtime: {
65
+ live_watchers: number;
66
+ live_actor_roots: number;
67
+ open_routes: number;
68
+ };
64
69
  symbol_cache: {
65
70
  local_entries: number;
66
71
  warm_entries: number;
@@ -1 +1 @@
1
- {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/shared/status.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/shared/status.ts"],"names":[],"mappings":"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"}
@@ -46,7 +46,8 @@ export declare function resolveSessionId(extCtx: ExtensionContext): string | und
46
46
  */
47
47
  export declare class BridgeError extends Error {
48
48
  readonly code: string;
49
- constructor(message: string, code: string);
49
+ readonly response?: Record<string, unknown>;
50
+ constructor(message: string, code: string, response?: Record<string, unknown>);
50
51
  }
51
52
  /**
52
53
  * Call a bridge command and throw a BridgeError on failure.
@@ -1 +1 @@
1
- {"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/tools/_shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACf,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACzF,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1E,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACtE,KAAK,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;AAE/C;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,oBAAyB,+DAK5E,CAAC;AAIJ,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,YAAY,EACZ,+BAA+B,EAC/B,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,gEAAgE;AAChE,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,GAAG,mBAAmB,CAQ9E;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAK7E;AAED;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,KAAK;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;CAK1C;AAED;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,mBAAmB,EAC3B,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,MAAM,CAAC,EAAE,gBAAgB,EACzB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAyBlC;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,mBAAmB,EAC3B,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACrC,MAAM,CAAC,EAAE,gBAAgB,EACzB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,cAAc,CAAC,CAgBzB;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,GAAG,OAAO,EAC3C,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,QAAQ,GACjB,eAAe,CAAC,QAAQ,CAAC,CAE3B;AAED,sEAAsE;AACtE,wBAAgB,aAAa,CAAC,QAAQ,GAAG,OAAO,EAC9C,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,CAAC,EAAE,QAAQ,GACjB,eAAe,CAAC,QAAQ,CAAC,CAK3B;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,GAAG,OAAO,EAC/C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,OAAO,CAAC,EAAE,QAAQ,GACjB,eAAe,CAAC,QAAQ,CAAC,CAE3B;AAED,8DAA8D;AAC9D,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGvF"}
1
+ {"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/tools/_shared.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,7 @@ interface BashStatusWaited {
28
28
  elapsed_ms: number;
29
29
  match?: string;
30
30
  match_offset?: number;
31
+ match_stream?: "stdout" | "stderr";
31
32
  }
32
33
  interface BashStatusDetails {
33
34
  success: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.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.47.1",
3
+ "version": "0.47.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,19 +23,19 @@
23
23
  "test:unit": "bun test src/__tests__ --path-ignore-patterns 'src/__tests__/e2e/**'"
24
24
  },
25
25
  "dependencies": {
26
- "@cortexkit/aft-bridge": "0.47.1",
26
+ "@cortexkit/aft-bridge": "0.47.3",
27
27
  "comment-json": "^5.0.0",
28
28
  "diff": "^8.0.4",
29
29
  "typebox": "1.1.38",
30
30
  "zod": "^4.4.3"
31
31
  },
32
32
  "optionalDependencies": {
33
- "@cortexkit/aft-darwin-arm64": "0.47.1",
34
- "@cortexkit/aft-darwin-x64": "0.47.1",
35
- "@cortexkit/aft-linux-arm64": "0.47.1",
36
- "@cortexkit/aft-linux-x64": "0.47.1",
37
- "@cortexkit/aft-win32-arm64": "0.47.1",
38
- "@cortexkit/aft-win32-x64": "0.47.1"
33
+ "@cortexkit/aft-darwin-arm64": "0.47.3",
34
+ "@cortexkit/aft-darwin-x64": "0.47.3",
35
+ "@cortexkit/aft-linux-arm64": "0.47.3",
36
+ "@cortexkit/aft-linux-x64": "0.47.3",
37
+ "@cortexkit/aft-win32-arm64": "0.47.3",
38
+ "@cortexkit/aft-win32-x64": "0.47.3"
39
39
  },
40
40
  "devDependencies": {
41
41
  "@earendil-works/pi-coding-agent": "^0.80.2",