@cortexkit/aft-pi 0.52.2 → 0.53.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/README.md +6 -2
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/index.js +226 -170
- package/dist/shared/status.d.ts +3 -0
- package/dist/shared/status.d.ts.map +1 -1
- package/dist/tool-registration.d.ts +2 -0
- package/dist/tool-registration.d.ts.map +1 -1
- package/dist/tools/_shared.d.ts.map +1 -1
- package/dist/tools/bash.d.ts +10 -1
- package/dist/tools/bash.d.ts.map +1 -1
- package/dist/tools/diff-format.d.ts.map +1 -1
- package/dist/tools/hoisted.d.ts +2 -0
- package/dist/tools/hoisted.d.ts.map +1 -1
- package/dist/tools/render-helpers.d.ts +7 -0
- package/dist/tools/render-helpers.d.ts.map +1 -1
- package/dist/workflow-hints.d.ts +1 -0
- package/dist/workflow-hints.d.ts.map +1 -1
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -22,7 +22,7 @@ pi install npm:@cortexkit/aft-pi@0.13.1
|
|
|
22
22
|
|
|
23
23
|
### Hoisted built-in overrides
|
|
24
24
|
|
|
25
|
-
Pi's default `read`, `write`, `edit`, and `grep` are replaced with AFT-backed versions.
|
|
25
|
+
Pi's default `read`, `write`, `edit`, and `grep` are replaced with AFT-backed versions by default. Set `hoist_builtin_tools: false` to keep Pi's native tools and use `aft_read`, `aft_write`, `aft_edit`, `aft_grep`, and `aft_bash` for AFT instead; AFT background-bash companions remain `bash_status`, `bash_watch`, `bash_write`, and `bash_kill`.
|
|
26
26
|
|
|
27
27
|
| Tool | Pi built-in | AFT replacement |
|
|
28
28
|
| ------- | ------------------------ | -------------------------------------------------------------------------------------------- |
|
|
@@ -69,6 +69,10 @@ All keys are optional. Example:
|
|
|
69
69
|
// "minimal" | "recommended" (default) | "all"
|
|
70
70
|
"tool_surface": "recommended",
|
|
71
71
|
|
|
72
|
+
// Default true replaces Pi's native file and bash tools.
|
|
73
|
+
// Set false to retain Pi's tools and use aft_read/aft_write/aft_edit/aft_bash for AFT.
|
|
74
|
+
"hoist_builtin_tools": false,
|
|
75
|
+
|
|
72
76
|
// Auto-format on write/edit using project formatter config.
|
|
73
77
|
"format_on_edit": true,
|
|
74
78
|
|
|
@@ -119,7 +123,7 @@ Sensitive semantic backend fields (`backend`, `base_url`, `api_key_env`) are onl
|
|
|
119
123
|
| Tier | Tools |
|
|
120
124
|
| ----------------- | ----------------------------------------------------------------------------------------------------------------------- |
|
|
121
125
|
| `minimal` | `aft_outline`, `aft_zoom`, `aft_safety` |
|
|
122
|
-
| `recommended` (default) | `minimal` +
|
|
126
|
+
| `recommended` (default) | `minimal` + `read`/`write`/`edit` (or `aft_` alternatives when hoisting is disabled) + `aft_import` + `ast_grep_*` + `lsp_diagnostics` + `aft_conflicts` + (optional) `grep`/`aft_grep` + (optional) `aft_search` |
|
|
123
127
|
| `all` | `recommended` + `aft_callgraph` + `aft_delete` + `aft_move` + `aft_refactor` |
|
|
124
128
|
|
|
125
129
|
## Architecture
|
package/dist/config.d.ts
CHANGED
|
@@ -161,6 +161,8 @@ export interface AftConfig {
|
|
|
161
161
|
checker?: Record<string, Checker>;
|
|
162
162
|
/** Configure-time missing-tool warning delivery. Default: toast. */
|
|
163
163
|
configure_warnings_delivery?: ConfigureWarningsDelivery;
|
|
164
|
+
/** Replace host-native read/write/edit/grep/bash with AFT tools. Default: true; false registers AFT's replacements under aft_ names. */
|
|
165
|
+
hoist_builtin_tools?: boolean;
|
|
164
166
|
tool_surface?: ToolSurface;
|
|
165
167
|
disabled_tools?: string[];
|
|
166
168
|
restrict_to_project_root?: boolean;
|
|
@@ -288,6 +290,7 @@ export declare const AftConfigSchema: z.ZodPreprocess<z.ZodObject<{
|
|
|
288
290
|
log: "log";
|
|
289
291
|
chat: "chat";
|
|
290
292
|
}>>;
|
|
293
|
+
hoist_builtin_tools: z.ZodOptional<z.ZodBoolean>;
|
|
291
294
|
tool_surface: z.ZodOptional<z.ZodEnum<{
|
|
292
295
|
minimal: "minimal";
|
|
293
296
|
recommended: "recommended";
|
package/dist/config.d.ts.map
CHANGED
|
@@ -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
|
@@ -9922,7 +9922,7 @@ function isEmptyParam(value) {
|
|
|
9922
9922
|
return false;
|
|
9923
9923
|
}
|
|
9924
9924
|
// ../aft-bridge/dist/config-keys.js
|
|
9925
|
-
var OPENCODE_ONLY_KEYS = ["
|
|
9925
|
+
var OPENCODE_ONLY_KEYS = ["auto_update"];
|
|
9926
9926
|
function stripHarnessSpecificConfigKeys(value, keys) {
|
|
9927
9927
|
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
9928
9928
|
return value;
|
|
@@ -17461,7 +17461,7 @@ import {
|
|
|
17461
17461
|
// package.json
|
|
17462
17462
|
var package_default = {
|
|
17463
17463
|
name: "@cortexkit/aft-pi",
|
|
17464
|
-
version: "0.
|
|
17464
|
+
version: "0.53.0",
|
|
17465
17465
|
type: "module",
|
|
17466
17466
|
description: "Pi coding agent extension for Agent File Tools (AFT) — tree-sitter and LSP-powered code analysis",
|
|
17467
17467
|
main: "dist/index.js",
|
|
@@ -17484,19 +17484,19 @@ var package_default = {
|
|
|
17484
17484
|
"test:unit": "bun test src/__tests__ --path-ignore-patterns 'src/__tests__/e2e/**'"
|
|
17485
17485
|
},
|
|
17486
17486
|
dependencies: {
|
|
17487
|
-
"@cortexkit/aft-bridge": "0.
|
|
17487
|
+
"@cortexkit/aft-bridge": "0.53.0",
|
|
17488
17488
|
"comment-json": "^5.0.0",
|
|
17489
17489
|
diff: "^8.0.4",
|
|
17490
17490
|
typebox: "1.1.38",
|
|
17491
17491
|
zod: "^4.4.3"
|
|
17492
17492
|
},
|
|
17493
17493
|
optionalDependencies: {
|
|
17494
|
-
"@cortexkit/aft-darwin-arm64": "0.
|
|
17495
|
-
"@cortexkit/aft-darwin-x64": "0.
|
|
17496
|
-
"@cortexkit/aft-linux-arm64": "0.
|
|
17497
|
-
"@cortexkit/aft-linux-x64": "0.
|
|
17498
|
-
"@cortexkit/aft-win32-arm64": "0.
|
|
17499
|
-
"@cortexkit/aft-win32-x64": "0.
|
|
17494
|
+
"@cortexkit/aft-darwin-arm64": "0.53.0",
|
|
17495
|
+
"@cortexkit/aft-darwin-x64": "0.53.0",
|
|
17496
|
+
"@cortexkit/aft-linux-arm64": "0.53.0",
|
|
17497
|
+
"@cortexkit/aft-linux-x64": "0.53.0",
|
|
17498
|
+
"@cortexkit/aft-win32-arm64": "0.53.0",
|
|
17499
|
+
"@cortexkit/aft-win32-x64": "0.53.0"
|
|
17500
17500
|
},
|
|
17501
17501
|
devDependencies: {
|
|
17502
17502
|
"@earendil-works/pi-coding-agent": "^0.80.2",
|
|
@@ -17640,13 +17640,16 @@ function coerceAftStatus(response) {
|
|
|
17640
17640
|
project_root: readNullableString(response.project_root),
|
|
17641
17641
|
canonical_root: readNullableString(response.canonical_root),
|
|
17642
17642
|
cache_role: readString(response.cache_role, "not_initialized"),
|
|
17643
|
+
degraded: readBoolean(response.degraded),
|
|
17644
|
+
degraded_reasons: Array.isArray(response.degraded_reasons) ? response.degraded_reasons.filter((r) => typeof r === "string") : [],
|
|
17643
17645
|
message: typeof response.message === "string" ? response.message : undefined,
|
|
17644
17646
|
features: {
|
|
17645
17647
|
format_on_edit: readBoolean(features.format_on_edit),
|
|
17646
17648
|
validate_on_edit: readString(features.validate_on_edit, "off"),
|
|
17647
17649
|
restrict_to_project_root: readBoolean(features.restrict_to_project_root),
|
|
17648
17650
|
search_index: readBoolean(features.search_index ?? features.experimental_search_index),
|
|
17649
|
-
semantic_search: readBoolean(features.semantic_search ?? features.experimental_semantic_search)
|
|
17651
|
+
semantic_search: readBoolean(features.semantic_search ?? features.experimental_semantic_search),
|
|
17652
|
+
callgraph_store: readBoolean(features.callgraph_store)
|
|
17650
17653
|
},
|
|
17651
17654
|
search_index: {
|
|
17652
17655
|
status: readString(searchIndex.status, "unknown"),
|
|
@@ -17697,21 +17700,10 @@ function formatStatusDialogMessage(status) {
|
|
|
17697
17700
|
`AFT version: ${status.version}`,
|
|
17698
17701
|
`Project root: ${status.project_root ?? "(not configured)"}`,
|
|
17699
17702
|
`Canonical root: ${status.canonical_root ?? "(not configured)"}`,
|
|
17700
|
-
`Cache role: ${formatCacheRoleLabel(status.cache_role)}
|
|
17701
|
-
"",
|
|
17702
|
-
"Enabled features",
|
|
17703
|
-
`- format_on_edit: ${formatFlag(status.features.format_on_edit)}`,
|
|
17704
|
-
`- search_index: ${formatFlag(status.features.search_index)}`,
|
|
17705
|
-
`- semantic_search: ${formatFlag(status.features.semantic_search)}`,
|
|
17706
|
-
"",
|
|
17707
|
-
"Search index",
|
|
17708
|
-
`- status: ${status.search_index.status}`,
|
|
17709
|
-
`- files: ${formatCount(status.search_index.files)}`,
|
|
17710
|
-
`- trigrams: ${formatCount(status.search_index.trigrams)}`,
|
|
17711
|
-
"",
|
|
17712
|
-
"Semantic index",
|
|
17713
|
-
`- status: ${formatSemanticIndexStatus(status.semantic_index.status, status.semantic_index.stage)}`
|
|
17703
|
+
`Cache role: ${formatCacheRoleLabel(status.cache_role)}`
|
|
17714
17704
|
];
|
|
17705
|
+
appendDegradedStatus(lines, status, false);
|
|
17706
|
+
lines.push("", "Enabled features", `- format_on_edit: ${formatFlag(status.features.format_on_edit)}`, `- search_index: ${formatFlag(status.features.search_index)}`, `- semantic_search: ${formatFlag(status.features.semantic_search)}`, `- callgraph_store: ${formatFlag(status.features.callgraph_store)}`, "", "Search index", `- status: ${status.search_index.status}`, `- files: ${formatCount(status.search_index.files)}`, `- trigrams: ${formatCount(status.search_index.trigrams)}`, "", "Semantic index", `- status: ${formatSemanticIndexStatus(status.semantic_index.status, status.semantic_index.stage)}`);
|
|
17715
17707
|
const refreshing = formatSemanticRefreshing(status.semantic_index.refreshing_count);
|
|
17716
17708
|
if (refreshing) {
|
|
17717
17709
|
lines.push(`- ${refreshing}`);
|
|
@@ -17761,6 +17753,15 @@ function formatStatusDialogMessage(status) {
|
|
|
17761
17753
|
return lines.join(`
|
|
17762
17754
|
`);
|
|
17763
17755
|
}
|
|
17756
|
+
function appendDegradedStatus(lines, status, markdown) {
|
|
17757
|
+
if (!status.degraded || status.degraded_reasons.length === 0)
|
|
17758
|
+
return;
|
|
17759
|
+
lines.push("", markdown ? "### Degraded mode" : "Degraded mode");
|
|
17760
|
+
for (const reason of status.degraded_reasons) {
|
|
17761
|
+
const detail = reason === "home_root" ? "project root is your home directory; heavy indexes are disabled" : reason;
|
|
17762
|
+
lines.push(`- ${detail}`);
|
|
17763
|
+
}
|
|
17764
|
+
}
|
|
17764
17765
|
|
|
17765
17766
|
// src/tools/_shared.ts
|
|
17766
17767
|
import { existsSync as existsSync9 } from "node:fs";
|
|
@@ -17771,7 +17772,8 @@ var optionalInt = (min, max, description = "(integer)") => Type.Optional(Type.Un
|
|
|
17771
17772
|
function withPathAliasPreparation(tool) {
|
|
17772
17773
|
const existing = tool.prepareArguments;
|
|
17773
17774
|
const prepare = (args) => {
|
|
17774
|
-
const
|
|
17775
|
+
const isEditTool = tool.name === "edit" || tool.name === "aft_edit";
|
|
17776
|
+
const prepared = isEditTool ? prepareCanonicalEditArguments("edit", args) : prepareCanonicalPathArguments(tool.name, args);
|
|
17775
17777
|
return existing ? existing(prepared) : prepared;
|
|
17776
17778
|
};
|
|
17777
17779
|
return {
|
|
@@ -17998,7 +18000,7 @@ function renderInner(s, error3, theme, innerWidth) {
|
|
|
17998
18000
|
lines.push(line);
|
|
17999
18001
|
lines.push("");
|
|
18000
18002
|
lines.push(theme.fg("muted", "Features"));
|
|
18001
|
-
lines.push(` ${featureBadge("format_on_edit", s.features.format_on_edit, theme)} ${featureBadge("search_index", s.features.search_index, theme)} ${featureBadge("semantic_search", s.features.semantic_search, theme)}`);
|
|
18003
|
+
lines.push(` ${featureBadge("format_on_edit", s.features.format_on_edit, theme)} ${featureBadge("search_index", s.features.search_index, theme)} ${featureBadge("semantic_search", s.features.semantic_search, theme)} ${featureBadge("callgraph_store", s.features.callgraph_store, theme)}`);
|
|
18002
18004
|
const compressionRows = formatCompressionStatusRows(s.compression);
|
|
18003
18005
|
if (compressionRows.length > 0) {
|
|
18004
18006
|
lines.push("");
|
|
@@ -32648,6 +32650,7 @@ var AftConfigSchema = exports_external.preprocess((value) => stripHarnessSpecifi
|
|
|
32648
32650
|
formatter: exports_external.record(exports_external.string(), FormatterEnum).optional(),
|
|
32649
32651
|
checker: exports_external.record(exports_external.string(), CheckerEnum).optional(),
|
|
32650
32652
|
configure_warnings_delivery: ConfigureWarningsDeliveryEnum.optional(),
|
|
32653
|
+
hoist_builtin_tools: exports_external.boolean().optional(),
|
|
32651
32654
|
tool_surface: exports_external.enum(["minimal", "recommended", "all"]).optional(),
|
|
32652
32655
|
disabled_tools: exports_external.array(exports_external.string()).optional(),
|
|
32653
32656
|
restrict_to_project_root: exports_external.boolean().optional(),
|
|
@@ -32831,6 +32834,12 @@ function recordConfigParseFailure(configPath, errorMessage) {
|
|
|
32831
32834
|
configLoadErrors.push({ path: configPath, message: errorMessage });
|
|
32832
32835
|
warn2(formatConfigParseFailureMessage(configPath, errorMessage));
|
|
32833
32836
|
}
|
|
32837
|
+
function warnIgnoredHarnessSpecificConfigKeys(config2, configPath) {
|
|
32838
|
+
const ignored = OPENCODE_ONLY_KEYS.filter((key) => Object.hasOwn(config2, key));
|
|
32839
|
+
if (ignored.length === 0)
|
|
32840
|
+
return;
|
|
32841
|
+
warn2(`Ignoring OpenCode-only config key${ignored.length === 1 ? "" : "s"} ${ignored.map((key) => `\`${key}\``).join(", ")} in ${configPath}; ${ignored.length === 1 ? "it has" : "they have"} no effect on the Pi harness.`);
|
|
32842
|
+
}
|
|
32834
32843
|
function loadConfigFromPath(configPath) {
|
|
32835
32844
|
try {
|
|
32836
32845
|
if (!existsSync10(configPath))
|
|
@@ -32843,6 +32852,7 @@ function loadConfigFromPath(configPath) {
|
|
|
32843
32852
|
}
|
|
32844
32853
|
migrateRawConfig(rawConfig, configPath, { log: log2, warn: warn2 });
|
|
32845
32854
|
const cleanConfig = stripJsoncSymbols(rawConfig);
|
|
32855
|
+
warnIgnoredHarnessSpecificConfigKeys(cleanConfig, configPath);
|
|
32846
32856
|
const result = AftConfigSchema.safeParse(cleanConfig);
|
|
32847
32857
|
if (result.success) {
|
|
32848
32858
|
log2(`Config loaded from ${configPath}`);
|
|
@@ -33006,6 +33016,7 @@ var PROJECT_SAFE_TOP_LEVEL_FIELDS = new Set([
|
|
|
33006
33016
|
"enabled",
|
|
33007
33017
|
"edit_mode",
|
|
33008
33018
|
"tool_surface",
|
|
33019
|
+
"hoist_builtin_tools",
|
|
33009
33020
|
"format_on_edit",
|
|
33010
33021
|
"validate_on_edit",
|
|
33011
33022
|
"configure_warnings_delivery",
|
|
@@ -35087,111 +35098,31 @@ import { Type as Type2 } from "typebox";
|
|
|
35087
35098
|
|
|
35088
35099
|
// src/tools/diff-format.ts
|
|
35089
35100
|
import { diffLines } from "diff";
|
|
35090
|
-
var DEFAULT_CONTEXT_LINES = 4;
|
|
35091
|
-
function formatDiffForPi(oldContent, newContent, contextLines = DEFAULT_CONTEXT_LINES) {
|
|
35092
|
-
const parts = diffLines(oldContent, newContent);
|
|
35093
|
-
const output = [];
|
|
35094
|
-
const oldLines = oldContent.split(`
|
|
35095
|
-
`);
|
|
35096
|
-
const newLines = newContent.split(`
|
|
35097
|
-
`);
|
|
35098
|
-
const maxLineNum = Math.max(oldLines.length, newLines.length);
|
|
35099
|
-
const lineNumWidth = String(maxLineNum).length;
|
|
35100
|
-
const pad = (n) => String(n).padStart(lineNumWidth, " ");
|
|
35101
|
-
const blank = " ".repeat(lineNumWidth);
|
|
35102
|
-
let oldLineNum = 1;
|
|
35103
|
-
let newLineNum = 1;
|
|
35104
|
-
let lastWasChange = false;
|
|
35105
|
-
let firstChangedLine;
|
|
35106
|
-
for (let i = 0;i < parts.length; i++) {
|
|
35107
|
-
const part = parts[i];
|
|
35108
|
-
const raw = part.value.split(`
|
|
35109
|
-
`);
|
|
35110
|
-
if (raw[raw.length - 1] === "")
|
|
35111
|
-
raw.pop();
|
|
35112
|
-
if (part.added || part.removed) {
|
|
35113
|
-
if (firstChangedLine === undefined)
|
|
35114
|
-
firstChangedLine = newLineNum;
|
|
35115
|
-
for (const line of raw) {
|
|
35116
|
-
if (part.added) {
|
|
35117
|
-
output.push(`+${pad(newLineNum)} ${line}`);
|
|
35118
|
-
newLineNum++;
|
|
35119
|
-
} else {
|
|
35120
|
-
output.push(`-${pad(oldLineNum)} ${line}`);
|
|
35121
|
-
oldLineNum++;
|
|
35122
|
-
}
|
|
35123
|
-
}
|
|
35124
|
-
lastWasChange = true;
|
|
35125
|
-
continue;
|
|
35126
|
-
}
|
|
35127
|
-
const nextIsChange = i < parts.length - 1 && (parts[i + 1].added || parts[i + 1].removed);
|
|
35128
|
-
const hasLeading = lastWasChange;
|
|
35129
|
-
const hasTrailing = nextIsChange;
|
|
35130
|
-
if (hasLeading && hasTrailing) {
|
|
35131
|
-
if (raw.length <= contextLines * 2) {
|
|
35132
|
-
for (const line of raw) {
|
|
35133
|
-
output.push(` ${pad(oldLineNum)} ${line}`);
|
|
35134
|
-
oldLineNum++;
|
|
35135
|
-
newLineNum++;
|
|
35136
|
-
}
|
|
35137
|
-
} else {
|
|
35138
|
-
for (const line of raw.slice(0, contextLines)) {
|
|
35139
|
-
output.push(` ${pad(oldLineNum)} ${line}`);
|
|
35140
|
-
oldLineNum++;
|
|
35141
|
-
newLineNum++;
|
|
35142
|
-
}
|
|
35143
|
-
const skipped = raw.length - contextLines * 2;
|
|
35144
|
-
output.push(` ${blank} ...`);
|
|
35145
|
-
oldLineNum += skipped;
|
|
35146
|
-
newLineNum += skipped;
|
|
35147
|
-
for (const line of raw.slice(raw.length - contextLines)) {
|
|
35148
|
-
output.push(` ${pad(oldLineNum)} ${line}`);
|
|
35149
|
-
oldLineNum++;
|
|
35150
|
-
newLineNum++;
|
|
35151
|
-
}
|
|
35152
|
-
}
|
|
35153
|
-
} else if (hasLeading) {
|
|
35154
|
-
const shown = raw.slice(0, contextLines);
|
|
35155
|
-
for (const line of shown) {
|
|
35156
|
-
output.push(` ${pad(oldLineNum)} ${line}`);
|
|
35157
|
-
oldLineNum++;
|
|
35158
|
-
newLineNum++;
|
|
35159
|
-
}
|
|
35160
|
-
const skipped = raw.length - shown.length;
|
|
35161
|
-
if (skipped > 0) {
|
|
35162
|
-
output.push(` ${blank} ...`);
|
|
35163
|
-
oldLineNum += skipped;
|
|
35164
|
-
newLineNum += skipped;
|
|
35165
|
-
}
|
|
35166
|
-
} else if (hasTrailing) {
|
|
35167
|
-
const shownCount = Math.min(contextLines, raw.length);
|
|
35168
|
-
const shown = raw.slice(raw.length - shownCount);
|
|
35169
|
-
const skipped = raw.length - shown.length;
|
|
35170
|
-
if (skipped > 0) {
|
|
35171
|
-
output.push(` ${blank} ...`);
|
|
35172
|
-
oldLineNum += skipped;
|
|
35173
|
-
newLineNum += skipped;
|
|
35174
|
-
}
|
|
35175
|
-
for (const line of shown) {
|
|
35176
|
-
output.push(` ${pad(oldLineNum)} ${line}`);
|
|
35177
|
-
oldLineNum++;
|
|
35178
|
-
newLineNum++;
|
|
35179
|
-
}
|
|
35180
|
-
} else {
|
|
35181
|
-
oldLineNum += raw.length;
|
|
35182
|
-
newLineNum += raw.length;
|
|
35183
|
-
}
|
|
35184
|
-
lastWasChange = false;
|
|
35185
|
-
}
|
|
35186
|
-
return { diff: output.join(`
|
|
35187
|
-
`), firstChangedLine };
|
|
35188
|
-
}
|
|
35189
35101
|
|
|
35190
35102
|
// src/tools/render-helpers.ts
|
|
35191
35103
|
import { homedir as homedir13 } from "node:os";
|
|
35192
35104
|
import { renderDiff } from "@earendil-works/pi-coding-agent";
|
|
35193
35105
|
import { Container, Spacer, Text } from "@earendil-works/pi-tui";
|
|
35194
35106
|
var NATIVE_COLLAPSED_RESULT_MAX_LINES = 5;
|
|
35107
|
+
function normalizeTerminalText(text) {
|
|
35108
|
+
return text.replace(/\r/g, "");
|
|
35109
|
+
}
|
|
35110
|
+
|
|
35111
|
+
class TerminalSafeComponent {
|
|
35112
|
+
component;
|
|
35113
|
+
constructor(component) {
|
|
35114
|
+
this.component = component;
|
|
35115
|
+
}
|
|
35116
|
+
render(width) {
|
|
35117
|
+
return this.component.render(width).map(normalizeTerminalText);
|
|
35118
|
+
}
|
|
35119
|
+
invalidate() {
|
|
35120
|
+
this.component.invalidate?.();
|
|
35121
|
+
}
|
|
35122
|
+
handleInput(data) {
|
|
35123
|
+
this.component.handleInput?.(data);
|
|
35124
|
+
}
|
|
35125
|
+
}
|
|
35195
35126
|
function reuseText(last) {
|
|
35196
35127
|
return last instanceof Text ? last : new Text("", 0, 0);
|
|
35197
35128
|
}
|
|
@@ -35244,8 +35175,10 @@ function collapsibleResult({
|
|
|
35244
35175
|
expanded,
|
|
35245
35176
|
context
|
|
35246
35177
|
}) {
|
|
35247
|
-
|
|
35248
|
-
|
|
35178
|
+
const renderedAtCollapseWidth = full.render(200);
|
|
35179
|
+
const terminalSafeFull = renderedAtCollapseWidth.some((line) => line.includes("\r")) ? new TerminalSafeComponent(full) : full;
|
|
35180
|
+
if (expanded === true || renderedAtCollapseWidth.length <= NATIVE_COLLAPSED_RESULT_MAX_LINES) {
|
|
35181
|
+
return terminalSafeFull;
|
|
35249
35182
|
}
|
|
35250
35183
|
const text = reuseText(context.lastComponent);
|
|
35251
35184
|
text.setText(`
|
|
@@ -35356,18 +35289,122 @@ function formatUnifiedDiffForPi(unifiedDiff) {
|
|
|
35356
35289
|
if (entries.length === 0)
|
|
35357
35290
|
return "";
|
|
35358
35291
|
const width = String(entries.reduce((max, entry) => Math.max(max, entry.line), 1)).length;
|
|
35359
|
-
return entries.map((entry) => `${entry.prefix}${String(entry.line).padStart(width, " ")} ${entry.text}`).join(`
|
|
35360
|
-
`);
|
|
35292
|
+
return normalizeTerminalText(entries.map((entry) => `${entry.prefix}${String(entry.line).padStart(width, " ")} ${entry.text}`).join(`
|
|
35293
|
+
`));
|
|
35361
35294
|
}
|
|
35362
35295
|
function renderUnifiedDiff(unifiedDiff) {
|
|
35363
35296
|
const piDiff = formatUnifiedDiffForPi(unifiedDiff);
|
|
35364
35297
|
if (!piDiff)
|
|
35365
35298
|
return "";
|
|
35366
35299
|
try {
|
|
35367
|
-
return renderDiff(piDiff);
|
|
35300
|
+
return normalizeTerminalText(renderDiff(piDiff));
|
|
35368
35301
|
} catch {
|
|
35369
|
-
return piDiff;
|
|
35302
|
+
return normalizeTerminalText(piDiff);
|
|
35303
|
+
}
|
|
35304
|
+
}
|
|
35305
|
+
|
|
35306
|
+
// src/tools/diff-format.ts
|
|
35307
|
+
var DEFAULT_CONTEXT_LINES = 4;
|
|
35308
|
+
function formatDiffForPi(oldContent, newContent, contextLines = DEFAULT_CONTEXT_LINES) {
|
|
35309
|
+
const parts = diffLines(oldContent, newContent);
|
|
35310
|
+
const output = [];
|
|
35311
|
+
const oldLines = oldContent.split(`
|
|
35312
|
+
`);
|
|
35313
|
+
const newLines = newContent.split(`
|
|
35314
|
+
`);
|
|
35315
|
+
const maxLineNum = Math.max(oldLines.length, newLines.length);
|
|
35316
|
+
const lineNumWidth = String(maxLineNum).length;
|
|
35317
|
+
const pad = (n) => String(n).padStart(lineNumWidth, " ");
|
|
35318
|
+
const blank = " ".repeat(lineNumWidth);
|
|
35319
|
+
let oldLineNum = 1;
|
|
35320
|
+
let newLineNum = 1;
|
|
35321
|
+
let lastWasChange = false;
|
|
35322
|
+
let firstChangedLine;
|
|
35323
|
+
for (let i = 0;i < parts.length; i++) {
|
|
35324
|
+
const part = parts[i];
|
|
35325
|
+
const raw = part.value.split(`
|
|
35326
|
+
`);
|
|
35327
|
+
if (raw[raw.length - 1] === "")
|
|
35328
|
+
raw.pop();
|
|
35329
|
+
if (part.added || part.removed) {
|
|
35330
|
+
if (firstChangedLine === undefined)
|
|
35331
|
+
firstChangedLine = newLineNum;
|
|
35332
|
+
for (const line of raw) {
|
|
35333
|
+
if (part.added) {
|
|
35334
|
+
output.push(`+${pad(newLineNum)} ${line}`);
|
|
35335
|
+
newLineNum++;
|
|
35336
|
+
} else {
|
|
35337
|
+
output.push(`-${pad(oldLineNum)} ${line}`);
|
|
35338
|
+
oldLineNum++;
|
|
35339
|
+
}
|
|
35340
|
+
}
|
|
35341
|
+
lastWasChange = true;
|
|
35342
|
+
continue;
|
|
35343
|
+
}
|
|
35344
|
+
const nextIsChange = i < parts.length - 1 && (parts[i + 1].added || parts[i + 1].removed);
|
|
35345
|
+
const hasLeading = lastWasChange;
|
|
35346
|
+
const hasTrailing = nextIsChange;
|
|
35347
|
+
if (hasLeading && hasTrailing) {
|
|
35348
|
+
if (raw.length <= contextLines * 2) {
|
|
35349
|
+
for (const line of raw) {
|
|
35350
|
+
output.push(` ${pad(oldLineNum)} ${line}`);
|
|
35351
|
+
oldLineNum++;
|
|
35352
|
+
newLineNum++;
|
|
35353
|
+
}
|
|
35354
|
+
} else {
|
|
35355
|
+
for (const line of raw.slice(0, contextLines)) {
|
|
35356
|
+
output.push(` ${pad(oldLineNum)} ${line}`);
|
|
35357
|
+
oldLineNum++;
|
|
35358
|
+
newLineNum++;
|
|
35359
|
+
}
|
|
35360
|
+
const skipped = raw.length - contextLines * 2;
|
|
35361
|
+
output.push(` ${blank} ...`);
|
|
35362
|
+
oldLineNum += skipped;
|
|
35363
|
+
newLineNum += skipped;
|
|
35364
|
+
for (const line of raw.slice(raw.length - contextLines)) {
|
|
35365
|
+
output.push(` ${pad(oldLineNum)} ${line}`);
|
|
35366
|
+
oldLineNum++;
|
|
35367
|
+
newLineNum++;
|
|
35368
|
+
}
|
|
35369
|
+
}
|
|
35370
|
+
} else if (hasLeading) {
|
|
35371
|
+
const shown = raw.slice(0, contextLines);
|
|
35372
|
+
for (const line of shown) {
|
|
35373
|
+
output.push(` ${pad(oldLineNum)} ${line}`);
|
|
35374
|
+
oldLineNum++;
|
|
35375
|
+
newLineNum++;
|
|
35376
|
+
}
|
|
35377
|
+
const skipped = raw.length - shown.length;
|
|
35378
|
+
if (skipped > 0) {
|
|
35379
|
+
output.push(` ${blank} ...`);
|
|
35380
|
+
oldLineNum += skipped;
|
|
35381
|
+
newLineNum += skipped;
|
|
35382
|
+
}
|
|
35383
|
+
} else if (hasTrailing) {
|
|
35384
|
+
const shownCount = Math.min(contextLines, raw.length);
|
|
35385
|
+
const shown = raw.slice(raw.length - shownCount);
|
|
35386
|
+
const skipped = raw.length - shown.length;
|
|
35387
|
+
if (skipped > 0) {
|
|
35388
|
+
output.push(` ${blank} ...`);
|
|
35389
|
+
oldLineNum += skipped;
|
|
35390
|
+
newLineNum += skipped;
|
|
35391
|
+
}
|
|
35392
|
+
for (const line of shown) {
|
|
35393
|
+
output.push(` ${pad(oldLineNum)} ${line}`);
|
|
35394
|
+
oldLineNum++;
|
|
35395
|
+
newLineNum++;
|
|
35396
|
+
}
|
|
35397
|
+
} else {
|
|
35398
|
+
oldLineNum += raw.length;
|
|
35399
|
+
newLineNum += raw.length;
|
|
35400
|
+
}
|
|
35401
|
+
lastWasChange = false;
|
|
35370
35402
|
}
|
|
35403
|
+
return {
|
|
35404
|
+
diff: normalizeTerminalText(output.join(`
|
|
35405
|
+
`)),
|
|
35406
|
+
firstChangedLine
|
|
35407
|
+
};
|
|
35371
35408
|
}
|
|
35372
35409
|
|
|
35373
35410
|
// src/tools/hoisted.ts
|
|
@@ -35606,13 +35643,18 @@ function renderReadCall(args, theme, context) {
|
|
|
35606
35643
|
return text;
|
|
35607
35644
|
}
|
|
35608
35645
|
function registerHoistedTools(pi, ctx, surface) {
|
|
35646
|
+
const prefix = surface.hoistBuiltinTools === false ? "aft_" : "";
|
|
35647
|
+
const readName = `${prefix}read`;
|
|
35648
|
+
const writeName = `${prefix}write`;
|
|
35649
|
+
const editName = `${prefix}edit`;
|
|
35650
|
+
const grepName = `${prefix}grep`;
|
|
35609
35651
|
if (surface.hoistRead) {
|
|
35610
35652
|
pi.registerTool(withPathAliasPreparation({
|
|
35611
|
-
name:
|
|
35612
|
-
label:
|
|
35653
|
+
name: readName,
|
|
35654
|
+
label: readName,
|
|
35613
35655
|
description: "Read file contents with line numbers. Backed by AFT's indexed Rust reader — faster than the built-in `read` on large repos. Images are returned as attachments on vision-capable models; PDFs and non-vision models are not yet supported.",
|
|
35614
35656
|
promptSnippet: "Read file contents (supports offset/limit for large files)",
|
|
35615
|
-
promptGuidelines: [
|
|
35657
|
+
promptGuidelines: [`Use ${readName} to examine files instead of cat or sed.`],
|
|
35616
35658
|
parameters: ReadParams,
|
|
35617
35659
|
async execute(_toolCallId, params, _signal, _onUpdate, extCtx) {
|
|
35618
35660
|
const bridge = bridgeFor(ctx, extCtx.cwd);
|
|
@@ -35674,11 +35716,11 @@ PDFs aren't supported on the Pi harness yet.`, response);
|
|
|
35674
35716
|
if (surface.hoistWrite) {
|
|
35675
35717
|
const writeBackupText = ctx.config.backup?.enabled === false ? "Backup capture is disabled by user config." : "Existing files are backed up before overwriting (undo via aft_safety).";
|
|
35676
35718
|
pi.registerTool(withPathAliasPreparation({
|
|
35677
|
-
name:
|
|
35678
|
-
label:
|
|
35679
|
-
description: `Write content to a file, creating it and parent directories automatically. ${writeBackupText} Auto-formats when the project has a formatter configured. Uses \`path\`. For partial edits, use the \`
|
|
35719
|
+
name: writeName,
|
|
35720
|
+
label: writeName,
|
|
35721
|
+
description: `Write content to a file, creating it and parent directories automatically. ${writeBackupText} Auto-formats when the project has a formatter configured. Uses \`path\`. For partial edits, use the \`${editName}\` tool.`,
|
|
35680
35722
|
promptSnippet: "Create or overwrite files (uses path; auto-formats)",
|
|
35681
|
-
promptGuidelines: [
|
|
35723
|
+
promptGuidelines: [`Use ${writeName} only for new files or complete rewrites.`],
|
|
35682
35724
|
parameters: WriteParams,
|
|
35683
35725
|
async execute(_toolCallId, params, _signal, _onUpdate, extCtx) {
|
|
35684
35726
|
const filePathArg = mutationFilePathArg(params);
|
|
@@ -35710,10 +35752,10 @@ PDFs aren't supported on the Pi harness yet.`, response);
|
|
|
35710
35752
|
}
|
|
35711
35753
|
if (surface.hoistEdit && ctx.hashlineEffective === true) {
|
|
35712
35754
|
pi.registerTool({
|
|
35713
|
-
name:
|
|
35714
|
-
label:
|
|
35755
|
+
name: editName,
|
|
35756
|
+
label: editName,
|
|
35715
35757
|
description: HASHLINE_EDIT_DESCRIPTION,
|
|
35716
|
-
promptSnippet:
|
|
35758
|
+
promptSnippet: `Apply a tagged hashline patch through the ${editName} tool`,
|
|
35717
35759
|
promptGuidelines: [
|
|
35718
35760
|
"Read a file to obtain its current hashline tag before editing it.",
|
|
35719
35761
|
"Pass exactly one patch string; paths and tags belong in patch section headers."
|
|
@@ -35745,13 +35787,13 @@ PDFs aren't supported on the Pi harness yet.`, response);
|
|
|
35745
35787
|
}
|
|
35746
35788
|
if (surface.hoistEdit && ctx.hashlineEffective !== true) {
|
|
35747
35789
|
pi.registerTool(withPathAliasPreparation({
|
|
35748
|
-
name:
|
|
35749
|
-
label:
|
|
35790
|
+
name: editName,
|
|
35791
|
+
label: editName,
|
|
35750
35792
|
description: "Edit part of a file via `appendContent`, batch `edits[]`, or symbol plus `content`. Batch `{ oldString, newString, replaceAll: true }` replaces every match. Provide exactly one mode per call: appendContent, edits[], or symbol plus content (mixing modes is rejected).",
|
|
35751
35793
|
promptSnippet: "Partial file edits via appendContent, edits[], or symbol plus content (exactly one mode per call).",
|
|
35752
35794
|
promptGuidelines: [
|
|
35753
|
-
|
|
35754
|
-
|
|
35795
|
+
`Prefer ${editName} over ${writeName} when changing part of an existing file.`,
|
|
35796
|
+
`Use ${editName} with appendContent when adding text to the end of a file.`,
|
|
35755
35797
|
"Use edits[] for multiple atomic changes in one file.",
|
|
35756
35798
|
"Include enough surrounding context in an edits[] find/replace item to make the match unique, or set replaceAll/occurrence explicitly."
|
|
35757
35799
|
],
|
|
@@ -35793,11 +35835,11 @@ PDFs aren't supported on the Pi harness yet.`, response);
|
|
|
35793
35835
|
}
|
|
35794
35836
|
if (surface.hoistGrep) {
|
|
35795
35837
|
pi.registerTool(withPathAliasPreparation({
|
|
35796
|
-
name:
|
|
35797
|
-
label:
|
|
35838
|
+
name: grepName,
|
|
35839
|
+
label: grepName,
|
|
35798
35840
|
description: "Search for a regex pattern across files. Uses AFT's trigram index inside the project root for fast repeated queries, and falls back to ripgrep for paths outside the project root.",
|
|
35799
35841
|
promptSnippet: "Fast regex search across files (trigram-indexed inside the project root)",
|
|
35800
|
-
promptGuidelines: [
|
|
35842
|
+
promptGuidelines: [`Prefer ${grepName} over bash-invoked find/rg for in-project searches.`],
|
|
35801
35843
|
parameters: GrepParams,
|
|
35802
35844
|
async execute(_toolCallId, params, _signal, _onUpdate, extCtx) {
|
|
35803
35845
|
const bridge = bridgeFor(ctx, extCtx.cwd);
|
|
@@ -35980,7 +36022,7 @@ ${summary2}${suffix}`);
|
|
|
35980
36022
|
} catch {
|
|
35981
36023
|
renderedDiff = diff;
|
|
35982
36024
|
}
|
|
35983
|
-
container.addChild(new Text2(renderedDiff, 1, 0));
|
|
36025
|
+
container.addChild(new Text2(normalizeTerminalText(renderedDiff), 1, 0));
|
|
35984
36026
|
const rawPath = context.args && typeof context.args === "object" && typeof context.args.path === "string" ? context.args.path : undefined;
|
|
35985
36027
|
const summaryPath = rawPath ? ` ${shortenPath3(rawPath)}` : "";
|
|
35986
36028
|
const summary = `edited${summaryPath} (+${details?.additions ?? 0}/-${details?.deletions ?? 0})`;
|
|
@@ -36435,16 +36477,18 @@ function getBashSpawnHook(pi) {
|
|
|
36435
36477
|
}
|
|
36436
36478
|
return api2.hooks?.bashSpawn;
|
|
36437
36479
|
}
|
|
36438
|
-
function registerBashTool(pi, ctx, aftSearchRegistered = false) {
|
|
36480
|
+
function registerBashTool(pi, ctx, aftSearchRegistered = false, registeredName = "bash", registerCompanions = true) {
|
|
36439
36481
|
const spawnHook = getBashSpawnHook(pi);
|
|
36440
|
-
const
|
|
36482
|
+
const readToolName = registeredName === "bash" ? "read" : "aft_read";
|
|
36483
|
+
const grepToolName = registeredName === "bash" ? "grep" : "aft_grep";
|
|
36484
|
+
const searchSteer = aftSearchRegistered ? `use \`aft_search\` (concepts, identifiers, regex, literals), \`${readToolName}\`, \`aft_outline\`, or \`aft_zoom\` instead` : `use the \`${grepToolName}\` tool, \`${readToolName}\`, \`aft_outline\`, or \`aft_zoom\` instead`;
|
|
36441
36485
|
const bashCfg = resolveBashConfig(ctx.config);
|
|
36442
36486
|
let hostFallbackActive = false;
|
|
36443
36487
|
const compressionSentence = bashCfg.compress ? " Output is compressed by default; pass `compressed: false` for raw output. Piped commands run verbatim and show the pipeline's output; for AFT's test/build summary, run the runner without `| head`, `| tail`, or `| grep`." : "";
|
|
36444
36488
|
const tasksSentence = bashCfg.background ? ' Commands run in the foreground and return inline; `wait: true` blocks until a long command finishes instead of auto-promoting, but detaches to background if you send a new message — use it when you need the result before doing anything else; keep it off otherwise so auto-promote can remind you while you work. Use `background: true` yourself ONLY when you have other useful work to do while it runs; then `bash_watch` waits on the task (sync blocks until exit/pattern, async notifies) and `bash_status` peeks at it — never background a command and immediately `bash_watch` it (that wastes a turn for what foreground returns in one), and never loop `bash_status` to wait. `pty: true` runs interactive programs (REPLs, TUIs), implies background, and is driven with `bash_status({ output_mode: "screen" })` plus `bash_write`.' : " Commands run in the foreground to completion; `timeout` is the hard kill cap (default 30 minutes).";
|
|
36445
36489
|
pi.registerTool({
|
|
36446
|
-
name:
|
|
36447
|
-
label:
|
|
36490
|
+
name: registeredName,
|
|
36491
|
+
label: registeredName,
|
|
36448
36492
|
description: `Execute shell commands.${compressionSentence}${tasksSentence}
|
|
36449
36493
|
|
|
36450
36494
|
DO NOT use bash for code search or code exploration. If you are about to run grep, rg, sed, awk, find, or cat through bash to locate or read code: STOP — ${searchSteer}.`,
|
|
@@ -36574,12 +36618,16 @@ DO NOT use bash for code search or code exploration. If you are about to run gre
|
|
|
36574
36618
|
return renderBashResult(result, theme, context, options);
|
|
36575
36619
|
}
|
|
36576
36620
|
});
|
|
36577
|
-
if (
|
|
36578
|
-
pi
|
|
36579
|
-
|
|
36580
|
-
|
|
36581
|
-
|
|
36582
|
-
|
|
36621
|
+
if (registerCompanions)
|
|
36622
|
+
registerBashCompanionTools(pi, ctx);
|
|
36623
|
+
}
|
|
36624
|
+
function registerBashCompanionTools(pi, ctx) {
|
|
36625
|
+
if (!resolveBashConfig(ctx.config).background)
|
|
36626
|
+
return;
|
|
36627
|
+
pi.registerTool(createBashStatusTool(ctx));
|
|
36628
|
+
pi.registerTool(createBashWatchTool(ctx));
|
|
36629
|
+
pi.registerTool(createBashWriteTool(ctx));
|
|
36630
|
+
pi.registerTool(createBashKillTool(ctx));
|
|
36583
36631
|
}
|
|
36584
36632
|
function withBashHints(output, command, aftSearchRegistered, projectRoot) {
|
|
36585
36633
|
return maybeAppendGrepSearchHint(maybeAppendConflictsHint(output), command, aftSearchRegistered, projectRoot);
|
|
@@ -38702,12 +38750,15 @@ var ALL_ONLY_TOOLS = new Set(["aft_callgraph", "aft_delete", "aft_move", "aft_re
|
|
|
38702
38750
|
function resolvePiToolSurface(config2) {
|
|
38703
38751
|
const surface = config2.tool_surface ?? "recommended";
|
|
38704
38752
|
const disabled = new Set(config2.disabled_tools ?? []);
|
|
38753
|
+
const hoistBuiltinTools = config2.hoist_builtin_tools !== false;
|
|
38705
38754
|
const ok = (name) => !disabled.has(name);
|
|
38755
|
+
const builtinToolEnabled = (bareName) => ok(hoistBuiltinTools ? bareName : `aft_${bareName}`);
|
|
38706
38756
|
const allOnly = (name) => ALL_ONLY_TOOLS.has(name) && ok(name);
|
|
38707
38757
|
const restrictToProjectRoot = config2.restrict_to_project_root ?? false;
|
|
38708
38758
|
if (surface === "minimal") {
|
|
38709
38759
|
return {
|
|
38710
|
-
|
|
38760
|
+
hoistBuiltinTools,
|
|
38761
|
+
hoistBash: builtinToolEnabled("bash"),
|
|
38711
38762
|
hoistRead: false,
|
|
38712
38763
|
hoistWrite: false,
|
|
38713
38764
|
hoistEdit: false,
|
|
@@ -38729,11 +38780,12 @@ function resolvePiToolSurface(config2) {
|
|
|
38729
38780
|
};
|
|
38730
38781
|
}
|
|
38731
38782
|
const base = {
|
|
38732
|
-
|
|
38733
|
-
|
|
38734
|
-
|
|
38735
|
-
|
|
38736
|
-
|
|
38783
|
+
hoistBuiltinTools,
|
|
38784
|
+
hoistBash: builtinToolEnabled("bash"),
|
|
38785
|
+
hoistRead: builtinToolEnabled("read"),
|
|
38786
|
+
hoistWrite: builtinToolEnabled("write"),
|
|
38787
|
+
hoistEdit: builtinToolEnabled("edit"),
|
|
38788
|
+
hoistGrep: builtinToolEnabled("grep") && config2.search_index === true,
|
|
38737
38789
|
restrictToProjectRoot,
|
|
38738
38790
|
outline: ok("aft_outline"),
|
|
38739
38791
|
zoom: ok("aft_zoom"),
|
|
@@ -38762,7 +38814,8 @@ function resolvePiToolSurface(config2) {
|
|
|
38762
38814
|
}
|
|
38763
38815
|
function registerPiToolSurface(pi, ctx, surface) {
|
|
38764
38816
|
if (surface.hoistBash && resolveBashConfig(ctx.config).enabled) {
|
|
38765
|
-
registerBashTool(pi, ctx, surface.semantic);
|
|
38817
|
+
registerBashTool(pi, ctx, surface.semantic, surface.hoistBuiltinTools ? "bash" : "aft_bash", false);
|
|
38818
|
+
registerBashCompanionTools(pi, ctx);
|
|
38766
38819
|
}
|
|
38767
38820
|
registerHoistedTools(pi, ctx, surface);
|
|
38768
38821
|
if (surface.outline || surface.zoom) {
|
|
@@ -38873,6 +38926,9 @@ function buildHintsFromConfig(config2, absentTools, hoistBuiltins) {
|
|
|
38873
38926
|
});
|
|
38874
38927
|
}
|
|
38875
38928
|
function registerWorkflowHints(pi, config2, surface) {
|
|
38929
|
+
const hoistBuiltins = surface.hoistBuiltinTools;
|
|
38930
|
+
const grepName = hoistBuiltins ? "grep" : "aft_grep";
|
|
38931
|
+
const bashName = hoistBuiltins ? "bash" : "aft_bash";
|
|
38876
38932
|
const absent = new Set;
|
|
38877
38933
|
if (!surface.outline)
|
|
38878
38934
|
absent.add("aft_outline");
|
|
@@ -38885,12 +38941,12 @@ function registerWorkflowHints(pi, config2, surface) {
|
|
|
38885
38941
|
if (!surface.inspect)
|
|
38886
38942
|
absent.add("aft_inspect");
|
|
38887
38943
|
if (!surface.hoistGrep)
|
|
38888
|
-
absent.add(
|
|
38944
|
+
absent.add(grepName);
|
|
38889
38945
|
if (!surface.hoistBash) {
|
|
38890
|
-
absent.add(
|
|
38946
|
+
absent.add(bashName);
|
|
38891
38947
|
absent.add("bash_status");
|
|
38892
38948
|
}
|
|
38893
|
-
const hintsBlock = buildHintsFromConfig(config2, absent,
|
|
38949
|
+
const hintsBlock = buildHintsFromConfig(config2, absent, hoistBuiltins);
|
|
38894
38950
|
if (!hintsBlock)
|
|
38895
38951
|
return;
|
|
38896
38952
|
log2(`Workflow hints injected (${hintsBlock.length} chars)`);
|
|
@@ -38947,7 +39003,7 @@ var PLUGIN_VERSION = (() => {
|
|
|
38947
39003
|
return "0.0.0";
|
|
38948
39004
|
}
|
|
38949
39005
|
})();
|
|
38950
|
-
var ANNOUNCEMENT_VERSION = "0.
|
|
39006
|
+
var ANNOUNCEMENT_VERSION = "0.53.0";
|
|
38951
39007
|
var ANNOUNCEMENT_FEATURES = [
|
|
38952
39008
|
"Callgraph stays consistent under load: edits arriving mid-rebuild can no longer be silently lost from navigation results.",
|
|
38953
39009
|
"aft_zoom handles real-world .jsonc: files with comment banners above the opening brace now resolve, and not-found errors point at the segment that actually failed (thanks @iceteaSA).",
|
package/dist/shared/status.d.ts
CHANGED
|
@@ -27,12 +27,15 @@ export interface AftStatusSnapshot {
|
|
|
27
27
|
project_root: string | null;
|
|
28
28
|
canonical_root: string | null;
|
|
29
29
|
cache_role: string;
|
|
30
|
+
degraded: boolean;
|
|
31
|
+
degraded_reasons: string[];
|
|
30
32
|
features: {
|
|
31
33
|
format_on_edit: boolean;
|
|
32
34
|
validate_on_edit: string;
|
|
33
35
|
restrict_to_project_root: boolean;
|
|
34
36
|
search_index: boolean;
|
|
35
37
|
semantic_search: boolean;
|
|
38
|
+
callgraph_store: boolean;
|
|
36
39
|
};
|
|
37
40
|
search_index: {
|
|
38
41
|
status: string;
|
|
@@ -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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"}
|
|
@@ -2,6 +2,8 @@ import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
|
2
2
|
import type { AftConfig } from "./config.js";
|
|
3
3
|
import type { PluginContext } from "./types.js";
|
|
4
4
|
export interface PiToolSurface {
|
|
5
|
+
/** Whether AFT replaces host-native tool names instead of registering aft_ alternatives. */
|
|
6
|
+
hoistBuiltinTools: boolean;
|
|
5
7
|
hoistBash: boolean;
|
|
6
8
|
hoistRead: boolean;
|
|
7
9
|
hoistWrite: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-registration.d.ts","sourceRoot":"","sources":["../src/tool-registration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAc7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,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,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"tool-registration.d.ts","sourceRoot":"","sources":["../src/tool-registration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAEpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAc7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,4FAA4F;IAC5F,iBAAiB,EAAE,OAAO,CAAC;IAC3B,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,QAAQ,EAAE,OAAO,CAAC;CACnB;AAID,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,CAqErE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,YAAY,EAChB,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,aAAa,GACrB,IAAI,CA2BN"}
|
|
@@ -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;AAS/B,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACf,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAe,KAAK,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE1D,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,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,wEAAwE;AACxE,wBAAgB,wBAAwB,CACtC,OAAO,SAAS,OAAO,EACvB,QAAQ,GAAG,OAAO,EAClB,MAAM,GAAG,OAAO,EAChB,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/tools/_shared.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/bash.d.ts
CHANGED
|
@@ -55,7 +55,16 @@ interface BashKillDetails {
|
|
|
55
55
|
}
|
|
56
56
|
interface BashWatchDetails extends Record<string, unknown> {
|
|
57
57
|
}
|
|
58
|
-
|
|
58
|
+
/** Register AFT's primary bash tool under either the host or aft_ name. */
|
|
59
|
+
export declare function registerBashTool(pi: ExtensionAPI, ctx: PluginContext, aftSearchRegistered?: boolean, registeredName?: string, registerCompanions?: boolean): void;
|
|
60
|
+
/**
|
|
61
|
+
* Register controls for AFT-owned background task IDs.
|
|
62
|
+
*
|
|
63
|
+
* These names deliberately do not follow the primary bash tool's prefix: Pi's
|
|
64
|
+
* native bash cannot create or inspect AFT task IDs, so the controls do not
|
|
65
|
+
* replace host-native behavior and must stay discoverable for `aft_bash`.
|
|
66
|
+
*/
|
|
67
|
+
export declare function registerBashCompanionTools(pi: ExtensionAPI, ctx: PluginContext): void;
|
|
59
68
|
export declare function createBashStatusTool(ctx: PluginContext): {
|
|
60
69
|
name: string;
|
|
61
70
|
label: string;
|
package/dist/tools/bash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,gBAAgB,EAEjB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAY5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA8IjD,QAAA,MAAM,cAAc;;EAIlB,CAAC;AAEH,QAAA,MAAM,gBAAgB;;;EAUpB,CAAC;AAEH,QAAA,MAAM,eAAe;;;;;;;;EAYnB,CAAC;AAEH,QAAA,MAAM,eAAe;;;;;EA+BnB,CAAC;AAWH,UAAU,gBAAgB;IACxB,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,aAAa,CAAC;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CACpC;AAWD,UAAU,iBAAiB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,gBAAiB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAAG;AA4H7D,wBAAgB,gBAAgB,CAC9B,EAAE,EAAE,YAAY,EAChB,GAAG,EAAE,aAAa,EAClB,mBAAmB,UAAQ,
|
|
1
|
+
{"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diff-format.d.ts","sourceRoot":"","sources":["../../src/tools/diff-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"diff-format.d.ts","sourceRoot":"","sources":["../../src/tools/diff-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;CACtC;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,YAAY,SAAwB,GACnC,aAAa,CA2Gf"}
|
package/dist/tools/hoisted.d.ts
CHANGED
|
@@ -47,6 +47,8 @@ export declare function assertExternalDirectoryPermission(extCtx: {
|
|
|
47
47
|
serverValidatedRead?: boolean;
|
|
48
48
|
}): Promise<void>;
|
|
49
49
|
export interface ToolSurfaceFlags {
|
|
50
|
+
/** True keeps AFT on host-native names; false registers aft_ alternatives. */
|
|
51
|
+
hoistBuiltinTools?: boolean;
|
|
50
52
|
hoistRead: boolean;
|
|
51
53
|
hoistWrite: boolean;
|
|
52
54
|
hoistEdit: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hoisted.d.ts","sourceRoot":"","sources":["../../src/tools/hoisted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAWH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAEjB,KAAK,KAAK,EACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,SAAS,EAAqB,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWjD,OAAO,
|
|
1
|
+
{"version":3,"file":"hoisted.d.ts","sourceRoot":"","sources":["../../src/tools/hoisted.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,13 @@ export interface RenderResultOptionsLike {
|
|
|
13
13
|
expanded?: boolean;
|
|
14
14
|
isPartial?: boolean;
|
|
15
15
|
}
|
|
16
|
+
/**
|
|
17
|
+
* Remove carriage returns from strings that are about to be rendered in Pi's
|
|
18
|
+
* terminal. A CRLF line ending is two characters in a string, but the terminal
|
|
19
|
+
* interprets the carriage return as "move to column zero"; if it survives in a
|
|
20
|
+
* rendered line, later text can overprint it while the TUI still reserves the row.
|
|
21
|
+
*/
|
|
22
|
+
export declare function normalizeTerminalText(text: string): string;
|
|
16
23
|
export declare function reuseText(last: Component | undefined): Text;
|
|
17
24
|
export declare function reuseContainer(last: Component | undefined): Container;
|
|
18
25
|
export declare function shortenPath(path: string): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-helpers.d.ts","sourceRoot":"","sources":["../../src/tools/render-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,KAAK,eAAe,EAAc,KAAK,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,KAAK,SAAS,EAAE,SAAS,EAAU,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEjF,MAAM,WAAW,iBAAiB,CAAC,KAAK,GAAG,OAAO;IAChD,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,mEAAmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAID,wBAAgB,SAAS,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,IAAI,CAE3D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,CAErE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,IAAI,CAKN;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGzE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,MAAM,CAM3E;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CASlF;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAChC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,IAAI,CAKN;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,OAAO,GACR,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,iBAAiB,CAAC;CAC5B,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"render-helpers.d.ts","sourceRoot":"","sources":["../../src/tools/render-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/workflow-hints.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-hints.d.ts","sourceRoot":"","sources":["../src/workflow-hints.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,SAAS,GAAG,aAAa,GAAG,KAAK,CAAC;IAC/C,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,OAAO,CAAC;IAChC,kEAAkE;IAClE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"workflow-hints.d.ts","sourceRoot":"","sources":["../src/workflow-hints.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,SAAS,GAAG,aAAa,GAAG,KAAK,CAAC;IAC/C,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,OAAO,CAAC;IACzB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,sBAAsB,EAAE,OAAO,CAAC;IAChC,kEAAkE;IAClE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CA2GzE;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,EACxB,aAAa,EAAE,OAAO,GACrB,MAAM,GAAG,IAAI,CAYf;AAMD,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,EAAE,EAAE,YAAY,EAChB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,gBAAgB,GACxB,IAAI,CAmCN"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cortexkit/aft-pi",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.53.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",
|
|
@@ -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.
|
|
26
|
+
"@cortexkit/aft-bridge": "0.53.0",
|
|
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.
|
|
34
|
-
"@cortexkit/aft-darwin-x64": "0.
|
|
35
|
-
"@cortexkit/aft-linux-arm64": "0.
|
|
36
|
-
"@cortexkit/aft-linux-x64": "0.
|
|
37
|
-
"@cortexkit/aft-win32-arm64": "0.
|
|
38
|
-
"@cortexkit/aft-win32-x64": "0.
|
|
33
|
+
"@cortexkit/aft-darwin-arm64": "0.53.0",
|
|
34
|
+
"@cortexkit/aft-darwin-x64": "0.53.0",
|
|
35
|
+
"@cortexkit/aft-linux-arm64": "0.53.0",
|
|
36
|
+
"@cortexkit/aft-linux-x64": "0.53.0",
|
|
37
|
+
"@cortexkit/aft-win32-arm64": "0.53.0",
|
|
38
|
+
"@cortexkit/aft-win32-x64": "0.53.0"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@earendil-works/pi-coding-agent": "^0.80.2",
|