@cortexkit/aft-pi 0.24.0 → 0.25.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAaH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAQpE,OAAO,EACL,KAAK,SAAS,EACd,aAAa,EAGd,MAAM,aAAa,CAAC;AAgGrB,iBAAS,wBAAwB,CAC/B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,UAAU,CAAC,GACtD,OAAO,CAGT;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,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgChB;AAQD;;;;;;;;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,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,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,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAiEA;AAED;;;;GAIG;AACH,yBAA+B,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAqZ9D;AAED,eAAO,MAAM,QAAQ;;;;CAIpB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAaH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAQpE,OAAO,EACL,KAAK,SAAS,EACd,aAAa,EAGd,MAAM,aAAa,CAAC;AAgGrB,iBAAS,wBAAwB,CAC/B,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,iBAAiB,GAAG,UAAU,CAAC,GACtD,OAAO,CAGT;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,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgChB;AAQD;;;;;;;;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,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,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,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAiEA;AAED;;;;GAIG;AACH,yBAA+B,EAAE,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CA6Z9D;AAED,eAAO,MAAM,QAAQ;;;;CAIpB,CAAC"}
package/dist/index.js CHANGED
@@ -32999,7 +32999,7 @@ import {
32999
32999
  // package.json
33000
33000
  var package_default = {
33001
33001
  name: "@cortexkit/aft-pi",
33002
- version: "0.24.0",
33002
+ version: "0.25.1",
33003
33003
  type: "module",
33004
33004
  description: "Pi coding agent extension for Agent File Tools (AFT) — tree-sitter and LSP-powered code analysis",
33005
33005
  main: "dist/index.js",
@@ -33021,18 +33021,18 @@ var package_default = {
33021
33021
  prepublishOnly: "bun run build"
33022
33022
  },
33023
33023
  dependencies: {
33024
- "@cortexkit/aft-bridge": "0.24.0",
33024
+ "@cortexkit/aft-bridge": "0.25.1",
33025
33025
  typebox: "^1.1.24",
33026
33026
  "comment-json": "^5.0.0",
33027
33027
  diff: "^8.0.4",
33028
33028
  zod: "^4.1.8"
33029
33029
  },
33030
33030
  optionalDependencies: {
33031
- "@cortexkit/aft-darwin-arm64": "0.24.0",
33032
- "@cortexkit/aft-darwin-x64": "0.24.0",
33033
- "@cortexkit/aft-linux-arm64": "0.24.0",
33034
- "@cortexkit/aft-linux-x64": "0.24.0",
33035
- "@cortexkit/aft-win32-x64": "0.24.0"
33031
+ "@cortexkit/aft-darwin-arm64": "0.25.1",
33032
+ "@cortexkit/aft-darwin-x64": "0.25.1",
33033
+ "@cortexkit/aft-linux-arm64": "0.25.1",
33034
+ "@cortexkit/aft-linux-x64": "0.25.1",
33035
+ "@cortexkit/aft-win32-x64": "0.25.1"
33036
33036
  },
33037
33037
  devDependencies: {
33038
33038
  "@earendil-works/pi-coding-agent": "*",
@@ -50040,9 +50040,12 @@ function registerConflictsTool(pi, ctx) {
50040
50040
  import { Type as Type4 } from "typebox";
50041
50041
  var DeleteParams = Type4.Object({
50042
50042
  files: Type4.Array(Type4.String(), {
50043
- description: "Paths to delete (one or more). Single-file callers pass a single-element array.",
50043
+ description: "Paths to delete (one or more). May include directories when recursive=true.",
50044
50044
  minItems: 1
50045
- })
50045
+ }),
50046
+ recursive: Type4.Optional(Type4.Boolean({
50047
+ description: "Required to delete a directory and its contents. Defaults to false; passing a directory without this returns an error."
50048
+ }))
50046
50049
  });
50047
50050
  var MoveParams = Type4.Object({
50048
50051
  filePath: Type4.String({ description: "Source file path to move" }),
@@ -50090,27 +50093,19 @@ function registerFsTools(pi, ctx, surface) {
50090
50093
  pi.registerTool({
50091
50094
  name: "aft_delete",
50092
50095
  label: "delete",
50093
- description: "Delete one or more files with backup. Each file is backed up before deletion — use `aft_safety undo` to recover any of them. " + "Returns { success, complete, deleted, skipped_files }: partial success is allowed; files that fail are reported in skipped_files.",
50096
+ description: "Delete one or more files (or directories) with backup. Each file is backed up before deletion — use `aft_safety undo` to recover any of them. " + "For directories, every file inside is individually backed up before removal. Directory deletion requires recursive: true. " + "Returns { success, complete, deleted, skipped_files }: partial success is allowed; files that fail are reported in skipped_files.",
50094
50097
  parameters: DeleteParams,
50095
50098
  async execute(_toolCallId, params, _signal, _onUpdate, extCtx) {
50096
50099
  const bridge = bridgeFor(ctx, extCtx.cwd);
50097
50100
  const sessionId = resolveSessionId(extCtx);
50098
- const deleted = [];
50099
- const skipped = [];
50100
- for (const filePath of params.files) {
50101
- const response = await bridge.send("delete_file", {
50102
- file: filePath,
50103
- ...sessionId ? { session_id: sessionId } : {}
50104
- });
50105
- if (response.success === false) {
50106
- skipped.push({
50107
- file: filePath,
50108
- reason: response.message || response.code || "delete failed"
50109
- });
50110
- } else {
50111
- deleted.push(filePath);
50112
- }
50113
- }
50101
+ const response = await bridge.send("delete_file", {
50102
+ files: params.files,
50103
+ recursive: params.recursive === true,
50104
+ ...sessionId ? { session_id: sessionId } : {}
50105
+ });
50106
+ const deletedEntries = response.deleted ?? [];
50107
+ const skipped = response.skipped_files ?? [];
50108
+ const deleted = deletedEntries.map((entry) => entry.file);
50114
50109
  if (deleted.length === 0 && skipped.length > 0) {
50115
50110
  throw new Error(`delete failed for all ${skipped.length} file(s):
50116
50111
  ` + skipped.map((entry) => ` ${entry.file}: ${entry.reason}`).join(`
@@ -51365,7 +51360,7 @@ var SafetyParams = Type11.Object({
51365
51360
  op: StringEnum6(["undo", "history", "checkpoint", "restore", "list"], {
51366
51361
  description: "Safety operation"
51367
51362
  }),
51368
- filePath: Type11.Optional(Type11.String({ description: "File path (required for undo, history)" })),
51363
+ filePath: Type11.Optional(Type11.String({ description: "File path (required for history, optional for undo)" })),
51369
51364
  name: Type11.Optional(Type11.String({ description: "Checkpoint name (required for checkpoint, restore)" })),
51370
51365
  files: Type11.Optional(Type11.Array(Type11.String(), {
51371
51366
  description: "Specific files for checkpoint (optional, defaults to all tracked)"
@@ -51376,6 +51371,12 @@ function buildSafetySections(args, payload, theme) {
51376
51371
  if (!response)
51377
51372
  return [theme.fg("muted", "No safety result.")];
51378
51373
  if (args.op === "undo") {
51374
+ if (response.operation === true) {
51375
+ return [
51376
+ `${theme.fg("success", "restored operation")} ${theme.fg("accent", asString(response.op_id) ?? "(operation)")}`,
51377
+ `${theme.fg("muted", "files")} ${asNumber(response.restored_count) ?? asRecords(response.restored).length}`
51378
+ ];
51379
+ }
51379
51380
  return [
51380
51381
  `${theme.fg("success", "restored")} ${theme.fg("accent", shortenPath(asString(response.path) ?? args.filePath ?? "(file)"))}`,
51381
51382
  `${theme.fg("muted", "backup")} ${asString(response.backup_id) ?? "—"}`
@@ -51447,10 +51448,10 @@ function registerSafetyTool(pi, ctx) {
51447
51448
  pi.registerTool({
51448
51449
  name: "aft_safety",
51449
51450
  label: "safety",
51450
- description: "File safety and recovery operations. Ops: `undo` (pop latest snapshot for a file — irreversible), `history` (list snapshots for a file), `checkpoint` (save named snapshot), `restore` (restore named checkpoint), `list` (list checkpoints). Per-file undo stack is capped at 20.",
51451
+ description: "File safety and recovery operations. Ops: `undo` (omit filePath to undo the entire last tool call; pass filePath to pop latest snapshot for one file — irreversible), `history` (list snapshots for a file), `checkpoint` (save named snapshot), `restore` (restore named checkpoint), `list` (list checkpoints). Per-file undo stack is capped at 20.",
51451
51452
  parameters: SafetyParams,
51452
51453
  async execute(_toolCallId, params, _signal, _onUpdate, extCtx) {
51453
- if ((params.op === "undo" || params.op === "history") && !params.filePath) {
51454
+ if (params.op === "history" && !params.filePath) {
51454
51455
  throw new Error(`op='${params.op}' requires 'filePath'`);
51455
51456
  }
51456
51457
  if ((params.op === "checkpoint" || params.op === "restore") && !params.name) {
@@ -52099,7 +52100,10 @@ ${lines}
52099
52100
  ]);
52100
52101
  }
52101
52102
  const bridge = pool.getBridge(cwd);
52102
- await bridge.send("status", {});
52103
+ const response = await bridge.send("status", {});
52104
+ if (response.success !== false) {
52105
+ bridge.cacheStatusSnapshot(response);
52106
+ }
52103
52107
  } catch (err) {
52104
52108
  log2(`eager configure failed: ${err instanceof Error ? err.message : String(err)}`);
52105
52109
  }
@@ -8,6 +8,7 @@ import type { PluginContext } from "../types.js";
8
8
  import { type RenderContextLike } from "./render-helpers.js";
9
9
  declare const DeleteParams: Type.TObject<{
10
10
  files: Type.TArray<Type.TString>;
11
+ recursive: Type.TOptional<Type.TBoolean>;
11
12
  }>;
12
13
  declare const MoveParams: Type.TObject<{
13
14
  filePath: Type.TString;
@@ -1 +1 @@
1
- {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/tools/fs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAEL,KAAK,iBAAiB,EAKvB,MAAM,qBAAqB,CAAC;AAE7B,QAAA,MAAM,YAAY;;EAKhB,CAAC;AAEH,QAAA,MAAM,UAAU;;;EAGd,CAAC;AAEH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wCAAwC;AACxC,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,YAAY,GAAG,UAAU,EACnC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,EAC7D,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,yCAkB3B;AAED,wCAAwC;AACxC,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,YAAY,GAAG,UAAU,EACnC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,EAC7D,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAChC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,sFAsC3B;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,CAkG9F"}
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/tools/fs.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAEL,KAAK,iBAAiB,EAKvB,MAAM,qBAAqB,CAAC;AAE7B,QAAA,MAAM,YAAY;;;EAWhB,CAAC;AAEH,QAAA,MAAM,UAAU;;;EAGd,CAAC;AAEH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,wCAAwC;AACxC,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,YAAY,GAAG,UAAU,EACnC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,EAC7D,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,yCAkB3B;AAED,wCAAwC;AACxC,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,YAAY,GAAG,UAAU,EACnC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,CAAC,EAC7D,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAChC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,sFAsC3B;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,CA4F9F"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * aft_safety — per-file undo, named checkpoints, restore, list, history.
2
+ * aft_safety — operation undo, per-file history, named checkpoints, restore, list.
3
3
  */
4
4
  import type { AgentToolResult, ExtensionAPI, Theme } from "@earendil-works/pi-coding-agent";
5
5
  import { type Static, Type } from "typebox";
@@ -1 +1 @@
1
- {"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../src/tools/safety.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAQL,KAAK,iBAAiB,EAKvB,MAAM,qBAAqB,CAAC;AAE7B,QAAA,MAAM,YAAY;;;;;EAahB,CAAC;AAEH,wCAAwC;AACxC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,EACjC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACX,MAAM,EAAE,CAsEV;AAED,wCAAwC;AACxC,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,EACjC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,yCAO3B;AAED,wCAAwC;AACxC,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAChC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,EACjC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,sFAO3B;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAwD7E"}
1
+ {"version":3,"file":"safety.d.ts","sourceRoot":"","sources":["../../src/tools/safety.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EAQL,KAAK,iBAAiB,EAKvB,MAAM,qBAAqB,CAAC;AAE7B,QAAA,MAAM,YAAY;;;;;EAehB,CAAC;AAEH,wCAAwC;AACxC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,EACjC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACX,MAAM,EAAE,CA4EV;AAED,wCAAwC;AACxC,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,EACjC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,yCAO3B;AAED,wCAAwC;AACxC,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAChC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,EACjC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,sFAO3B;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAwD7E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/aft-pi",
3
- "version": "0.24.0",
3
+ "version": "0.25.1",
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",
@@ -22,18 +22,18 @@
22
22
  "prepublishOnly": "bun run build"
23
23
  },
24
24
  "dependencies": {
25
- "@cortexkit/aft-bridge": "0.24.0",
25
+ "@cortexkit/aft-bridge": "0.25.1",
26
26
  "typebox": "^1.1.24",
27
27
  "comment-json": "^5.0.0",
28
28
  "diff": "^8.0.4",
29
29
  "zod": "^4.1.8"
30
30
  },
31
31
  "optionalDependencies": {
32
- "@cortexkit/aft-darwin-arm64": "0.24.0",
33
- "@cortexkit/aft-darwin-x64": "0.24.0",
34
- "@cortexkit/aft-linux-arm64": "0.24.0",
35
- "@cortexkit/aft-linux-x64": "0.24.0",
36
- "@cortexkit/aft-win32-x64": "0.24.0"
32
+ "@cortexkit/aft-darwin-arm64": "0.25.1",
33
+ "@cortexkit/aft-darwin-x64": "0.25.1",
34
+ "@cortexkit/aft-linux-arm64": "0.25.1",
35
+ "@cortexkit/aft-linux-x64": "0.25.1",
36
+ "@cortexkit/aft-win32-x64": "0.25.1"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@earendil-works/pi-coding-agent": "*",