@cortexkit/aft-pi 0.24.0 → 0.25.0
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.d.ts.map +1 -1
- package/dist/index.js +34 -30
- package/dist/tools/fs.d.ts +1 -0
- package/dist/tools/fs.d.ts.map +1 -1
- package/dist/tools/safety.d.ts +1 -1
- package/dist/tools/safety.d.ts.map +1 -1
- package/package.json +7 -7
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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.
|
|
33002
|
+
version: "0.25.0",
|
|
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.
|
|
33024
|
+
"@cortexkit/aft-bridge": "0.25.0",
|
|
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.
|
|
33032
|
-
"@cortexkit/aft-darwin-x64": "0.
|
|
33033
|
-
"@cortexkit/aft-linux-arm64": "0.
|
|
33034
|
-
"@cortexkit/aft-linux-x64": "0.
|
|
33035
|
-
"@cortexkit/aft-win32-x64": "0.
|
|
33031
|
+
"@cortexkit/aft-darwin-arm64": "0.25.0",
|
|
33032
|
+
"@cortexkit/aft-darwin-x64": "0.25.0",
|
|
33033
|
+
"@cortexkit/aft-linux-arm64": "0.25.0",
|
|
33034
|
+
"@cortexkit/aft-linux-x64": "0.25.0",
|
|
33035
|
+
"@cortexkit/aft-win32-x64": "0.25.0"
|
|
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).
|
|
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
|
|
50099
|
-
|
|
50100
|
-
|
|
50101
|
-
|
|
50102
|
-
|
|
50103
|
-
|
|
50104
|
-
|
|
50105
|
-
|
|
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
|
|
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
|
|
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 (
|
|
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
|
}
|
package/dist/tools/fs.d.ts
CHANGED
|
@@ -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;
|
package/dist/tools/fs.d.ts.map
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/tools/safety.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* aft_safety — per-file
|
|
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;;;;;
|
|
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.
|
|
3
|
+
"version": "0.25.0",
|
|
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.
|
|
25
|
+
"@cortexkit/aft-bridge": "0.25.0",
|
|
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.
|
|
33
|
-
"@cortexkit/aft-darwin-x64": "0.
|
|
34
|
-
"@cortexkit/aft-linux-arm64": "0.
|
|
35
|
-
"@cortexkit/aft-linux-x64": "0.
|
|
36
|
-
"@cortexkit/aft-win32-x64": "0.
|
|
32
|
+
"@cortexkit/aft-darwin-arm64": "0.25.0",
|
|
33
|
+
"@cortexkit/aft-darwin-x64": "0.25.0",
|
|
34
|
+
"@cortexkit/aft-linux-arm64": "0.25.0",
|
|
35
|
+
"@cortexkit/aft-linux-x64": "0.25.0",
|
|
36
|
+
"@cortexkit/aft-win32-x64": "0.25.0"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@earendil-works/pi-coding-agent": "*",
|