@cortexkit/aft-pi 0.27.0 → 0.28.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/config.d.ts +75 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +236 -50
- package/dist/lsp-auto-install.d.ts.map +1 -1
- package/dist/lsp-npm-table.d.ts +14 -0
- package/dist/lsp-npm-table.d.ts.map +1 -1
- package/dist/lsp-project-relevance.d.ts +13 -0
- package/dist/lsp-project-relevance.d.ts.map +1 -1
- package/dist/notifications.d.ts +1 -1
- package/dist/notifications.d.ts.map +1 -1
- package/dist/shared/status.d.ts +5 -0
- package/dist/shared/status.d.ts.map +1 -1
- package/dist/tools/hoisted.d.ts +7 -0
- package/dist/tools/hoisted.d.ts.map +1 -1
- package/dist/workflow-hints.d.ts.map +1 -1
- package/package.json +8 -7
package/dist/config.d.ts
CHANGED
|
@@ -52,7 +52,32 @@ export interface ConfigureExperimentalOverrides {
|
|
|
52
52
|
experimental_lsp_ty?: boolean;
|
|
53
53
|
}
|
|
54
54
|
export type ToolSurface = "minimal" | "recommended" | "all";
|
|
55
|
+
/**
|
|
56
|
+
* Graduated `bash` config. Replaces `experimental.bash.*` in v0.27.2.
|
|
57
|
+
*
|
|
58
|
+
* Mirrors the OpenCode plugin's `AftConfig.bash` shape exactly so projects
|
|
59
|
+
* using both harnesses get identical resolution semantics. See
|
|
60
|
+
* `resolveBashConfig` below for precedence rules.
|
|
61
|
+
*
|
|
62
|
+
* Three shapes:
|
|
63
|
+
* - `bash: true` → all sub-features on
|
|
64
|
+
* - `bash: false` → hoist disabled entirely; Pi's native bash stays
|
|
65
|
+
* - `bash: { ... }` → partial override; missing sub-keys default to true
|
|
66
|
+
*/
|
|
67
|
+
export interface BashConfig {
|
|
68
|
+
rewrite?: boolean;
|
|
69
|
+
compress?: boolean;
|
|
70
|
+
background?: boolean;
|
|
71
|
+
long_running_reminder_enabled?: boolean;
|
|
72
|
+
long_running_reminder_interval_ms?: number;
|
|
73
|
+
}
|
|
55
74
|
export interface AftConfig {
|
|
75
|
+
/**
|
|
76
|
+
* Optional JSON Schema URL for editor tooling. Runtime no-op — only present
|
|
77
|
+
* so VS Code/Cursor/etc. pick up the published schema for autocomplete +
|
|
78
|
+
* validation. `aft setup` auto-inserts this.
|
|
79
|
+
*/
|
|
80
|
+
$schema?: string;
|
|
56
81
|
format_on_edit?: boolean;
|
|
57
82
|
/** Maximum formatter subprocess wallclock seconds. Bounded 1..=600. Default 10. */
|
|
58
83
|
formatter_timeout_secs?: number;
|
|
@@ -64,6 +89,18 @@ export interface AftConfig {
|
|
|
64
89
|
restrict_to_project_root?: boolean;
|
|
65
90
|
search_index?: boolean;
|
|
66
91
|
semantic_search?: boolean;
|
|
92
|
+
/**
|
|
93
|
+
* Bash tool family (hoist + rewrite + compress + background execution).
|
|
94
|
+
* Default on for `tool_surface: recommended`/`all`, off for `minimal`.
|
|
95
|
+
* Graduated from `experimental.bash.*` in v0.27.2; the legacy nested
|
|
96
|
+
* form is still accepted for backward compat.
|
|
97
|
+
*
|
|
98
|
+
* - `true` — all sub-features on, hoist enabled
|
|
99
|
+
* - `false` — hoist disabled entirely; Pi's native bash stays
|
|
100
|
+
* - `{ rewrite?, compress?, background?, ... }` — partial override;
|
|
101
|
+
* missing sub-keys default to `true`
|
|
102
|
+
*/
|
|
103
|
+
bash?: boolean | BashConfig;
|
|
67
104
|
experimental?: ExperimentalConfig;
|
|
68
105
|
lsp?: LspConfig;
|
|
69
106
|
url_fetch_allow_private?: boolean;
|
|
@@ -75,6 +112,36 @@ export interface AftConfig {
|
|
|
75
112
|
*/
|
|
76
113
|
max_callgraph_files?: number;
|
|
77
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Resolved bash config: every flag has an explicit boolean.
|
|
117
|
+
*/
|
|
118
|
+
export interface ResolvedBashConfig {
|
|
119
|
+
enabled: boolean;
|
|
120
|
+
rewrite: boolean;
|
|
121
|
+
compress: boolean;
|
|
122
|
+
background: boolean;
|
|
123
|
+
long_running_reminder_enabled?: boolean;
|
|
124
|
+
long_running_reminder_interval_ms?: number;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Single source of truth for bash config across the Pi plugin. Resolution
|
|
128
|
+
* order (highest priority wins):
|
|
129
|
+
*
|
|
130
|
+
* 1. Top-level `bash: false` → fully disabled (sub-features all false)
|
|
131
|
+
* 2. Top-level `bash: true` → fully enabled (sub-features all true)
|
|
132
|
+
* 3. Top-level `bash: { ... }` → enabled; each sub-feature defaults true
|
|
133
|
+
* when not specified
|
|
134
|
+
* 4. Top-level `bash` absent + any `experimental.bash.*` set → legacy
|
|
135
|
+
* fallback; sub-features take their explicit values (default false
|
|
136
|
+
* to preserve pre-v0.27.2 behavior — that block was opt-in)
|
|
137
|
+
* 5. Top-level `bash` absent + no experimental → tool_surface default:
|
|
138
|
+
* - "minimal" → disabled
|
|
139
|
+
* - "recommended" or "all" → enabled with all sub-features on
|
|
140
|
+
*
|
|
141
|
+
* Mirrors OpenCode's resolver exactly. Reminder tuning rides through from
|
|
142
|
+
* whichever surface specified it (top-level wins, legacy fills the gap).
|
|
143
|
+
*/
|
|
144
|
+
export declare function resolveBashConfig(config: AftConfig): ResolvedBashConfig;
|
|
78
145
|
export declare const LspServerSchema: z.ZodObject<{
|
|
79
146
|
extensions: z.ZodArray<z.ZodString>;
|
|
80
147
|
binary: z.ZodString;
|
|
@@ -86,6 +153,7 @@ export declare const LspServerSchema: z.ZodObject<{
|
|
|
86
153
|
id: z.ZodString;
|
|
87
154
|
}, z.core.$strip>;
|
|
88
155
|
export declare const AftConfigSchema: z.ZodObject<{
|
|
156
|
+
$schema: z.ZodOptional<z.ZodString>;
|
|
89
157
|
format_on_edit: z.ZodOptional<z.ZodBoolean>;
|
|
90
158
|
formatter_timeout_secs: z.ZodOptional<z.ZodNumber>;
|
|
91
159
|
validate_on_edit: z.ZodOptional<z.ZodEnum<{
|
|
@@ -122,6 +190,13 @@ export declare const AftConfigSchema: z.ZodObject<{
|
|
|
122
190
|
restrict_to_project_root: z.ZodOptional<z.ZodBoolean>;
|
|
123
191
|
search_index: z.ZodOptional<z.ZodBoolean>;
|
|
124
192
|
semantic_search: z.ZodOptional<z.ZodBoolean>;
|
|
193
|
+
bash: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
194
|
+
rewrite: z.ZodOptional<z.ZodBoolean>;
|
|
195
|
+
compress: z.ZodOptional<z.ZodBoolean>;
|
|
196
|
+
background: z.ZodOptional<z.ZodBoolean>;
|
|
197
|
+
long_running_reminder_enabled: z.ZodOptional<z.ZodBoolean>;
|
|
198
|
+
long_running_reminder_interval_ms: z.ZodOptional<z.ZodNumber>;
|
|
199
|
+
}, z.core.$strip>]>>;
|
|
125
200
|
experimental: z.ZodOptional<z.ZodObject<{
|
|
126
201
|
bash: z.ZodOptional<z.ZodObject<{
|
|
127
202
|
rewrite: z.ZodOptional<z.ZodBoolean>;
|
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.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAcH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAQpE,OAAO,EACL,KAAK,SAAS,EACd,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAcH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAQpE,OAAO,EACL,KAAK,SAAS,EACd,aAAa,EAId,MAAM,aAAa,CAAC;AAgDrB,KAAK,mBAAmB,GAAG;IACzB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9C,CAAC;AAEF,iBAAS,4BAA4B,CACnC,OAAO,EAAE,MAAM,mBAAmB,GAAG,SAAS,EAC9C,sBAAsB,GAAE,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAgB,IAOrE,eAAe,MAAM,EAAE,YAAY,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAyCjF;AA2DD,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,MAAM,EAAE,IAAI,CAAC,OAAO,uBAAuB,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;IACnE,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB,GAAG,OAAO,CAAC,IAAI,CAAC,CAiChB;AAED;;;;;;;;GAQG;AACH,iBAAS,kBAAkB,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,GAAG;IACrE,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,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,CA0a9D;AAED,eAAO,MAAM,QAAQ;;;;;CAKpB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -31266,13 +31266,14 @@ import { pipeline } from "node:stream/promises";
|
|
|
31266
31266
|
var PLATFORM_ARCH_MAP = {
|
|
31267
31267
|
darwin: { arm64: "darwin-arm64", x64: "darwin-x64" },
|
|
31268
31268
|
linux: { arm64: "linux-arm64", x64: "linux-x64" },
|
|
31269
|
-
win32: { arm64: "win32-
|
|
31269
|
+
win32: { arm64: "win32-arm64", x64: "win32-x64" }
|
|
31270
31270
|
};
|
|
31271
31271
|
var PLATFORM_ASSET_MAP = {
|
|
31272
31272
|
"darwin-arm64": "aft-darwin-arm64",
|
|
31273
31273
|
"darwin-x64": "aft-darwin-x64",
|
|
31274
31274
|
"linux-arm64": "aft-linux-arm64",
|
|
31275
31275
|
"linux-x64": "aft-linux-x64",
|
|
31276
|
+
"win32-arm64": "aft-win32-arm64.exe",
|
|
31276
31277
|
"win32-x64": "aft-win32-x64.exe"
|
|
31277
31278
|
};
|
|
31278
31279
|
|
|
@@ -32359,6 +32360,7 @@ class BridgePool {
|
|
|
32359
32360
|
idleTimeoutMs;
|
|
32360
32361
|
bridgeOptions;
|
|
32361
32362
|
configOverrides;
|
|
32363
|
+
projectConfigLoader;
|
|
32362
32364
|
logger;
|
|
32363
32365
|
cleanupTimer = null;
|
|
32364
32366
|
constructor(binaryPath, options = {}, configOverrides = {}) {
|
|
@@ -32366,6 +32368,7 @@ class BridgePool {
|
|
|
32366
32368
|
this.maxPoolSize = options.maxPoolSize ?? DEFAULT_MAX_POOL_SIZE;
|
|
32367
32369
|
this.idleTimeoutMs = options.idleTimeoutMs ?? DEFAULT_IDLE_TIMEOUT_MS;
|
|
32368
32370
|
this.logger = options.logger;
|
|
32371
|
+
this.projectConfigLoader = options.projectConfigLoader;
|
|
32369
32372
|
this.bridgeOptions = {
|
|
32370
32373
|
timeoutMs: options.timeoutMs,
|
|
32371
32374
|
maxRestarts: options.maxRestarts,
|
|
@@ -32401,7 +32404,17 @@ class BridgePool {
|
|
|
32401
32404
|
if (this.bridges.size >= this.maxPoolSize) {
|
|
32402
32405
|
this.evictLRU();
|
|
32403
32406
|
}
|
|
32404
|
-
|
|
32407
|
+
let projectOverrides = {};
|
|
32408
|
+
if (this.projectConfigLoader) {
|
|
32409
|
+
try {
|
|
32410
|
+
projectOverrides = this.projectConfigLoader(key) ?? {};
|
|
32411
|
+
} catch (err) {
|
|
32412
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
32413
|
+
this.error(`projectConfigLoader failed; using global overrides only: ${message}`);
|
|
32414
|
+
}
|
|
32415
|
+
}
|
|
32416
|
+
const mergedOverrides = { ...this.configOverrides, ...projectOverrides };
|
|
32417
|
+
const bridge = new BinaryBridge(this.binaryPath, key, this.bridgeOptions, mergedOverrides);
|
|
32405
32418
|
this.bridges.set(key, { bridge, lastUsed: Date.now() });
|
|
32406
32419
|
return bridge;
|
|
32407
32420
|
}
|
|
@@ -33413,7 +33426,7 @@ import {
|
|
|
33413
33426
|
// package.json
|
|
33414
33427
|
var package_default = {
|
|
33415
33428
|
name: "@cortexkit/aft-pi",
|
|
33416
|
-
version: "0.
|
|
33429
|
+
version: "0.28.0",
|
|
33417
33430
|
type: "module",
|
|
33418
33431
|
description: "Pi coding agent extension for Agent File Tools (AFT) — tree-sitter and LSP-powered code analysis",
|
|
33419
33432
|
main: "dist/index.js",
|
|
@@ -33435,18 +33448,19 @@ var package_default = {
|
|
|
33435
33448
|
prepublishOnly: "bun run build"
|
|
33436
33449
|
},
|
|
33437
33450
|
dependencies: {
|
|
33438
|
-
"@cortexkit/aft-bridge": "0.
|
|
33451
|
+
"@cortexkit/aft-bridge": "0.28.0",
|
|
33439
33452
|
typebox: "^1.1.24",
|
|
33440
33453
|
"comment-json": "^5.0.0",
|
|
33441
33454
|
diff: "^8.0.4",
|
|
33442
33455
|
zod: "^4.1.8"
|
|
33443
33456
|
},
|
|
33444
33457
|
optionalDependencies: {
|
|
33445
|
-
"@cortexkit/aft-darwin-arm64": "0.
|
|
33446
|
-
"@cortexkit/aft-darwin-x64": "0.
|
|
33447
|
-
"@cortexkit/aft-linux-arm64": "0.
|
|
33448
|
-
"@cortexkit/aft-linux-x64": "0.
|
|
33449
|
-
"@cortexkit/aft-win32-
|
|
33458
|
+
"@cortexkit/aft-darwin-arm64": "0.28.0",
|
|
33459
|
+
"@cortexkit/aft-darwin-x64": "0.28.0",
|
|
33460
|
+
"@cortexkit/aft-linux-arm64": "0.28.0",
|
|
33461
|
+
"@cortexkit/aft-linux-x64": "0.28.0",
|
|
33462
|
+
"@cortexkit/aft-win32-arm64": "0.28.0",
|
|
33463
|
+
"@cortexkit/aft-win32-x64": "0.28.0"
|
|
33450
33464
|
},
|
|
33451
33465
|
devDependencies: {
|
|
33452
33466
|
"@earendil-works/pi-coding-agent": "*",
|
|
@@ -33544,6 +33558,7 @@ function coerceAftStatus(response) {
|
|
|
33544
33558
|
project_root: readNullableString(response.project_root),
|
|
33545
33559
|
canonical_root: readNullableString(response.canonical_root),
|
|
33546
33560
|
cache_role: readString(response.cache_role, "not_initialized"),
|
|
33561
|
+
message: typeof response.message === "string" ? response.message : undefined,
|
|
33547
33562
|
features: {
|
|
33548
33563
|
format_on_edit: readBoolean(features.format_on_edit),
|
|
33549
33564
|
validate_on_edit: readString(features.validate_on_edit, "off"),
|
|
@@ -47511,6 +47526,50 @@ function date4(params) {
|
|
|
47511
47526
|
// ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/external.js
|
|
47512
47527
|
config(en_default());
|
|
47513
47528
|
// src/config.ts
|
|
47529
|
+
function resolveBashConfig(config2) {
|
|
47530
|
+
const top = config2.bash;
|
|
47531
|
+
const legacy = config2.experimental?.bash;
|
|
47532
|
+
const surface = config2.tool_surface ?? "recommended";
|
|
47533
|
+
const surfaceDefaultEnabled = surface !== "minimal";
|
|
47534
|
+
const reminderEnabled = (typeof top === "object" && top !== null ? top.long_running_reminder_enabled : undefined) ?? legacy?.long_running_reminder_enabled;
|
|
47535
|
+
const reminderInterval = (typeof top === "object" && top !== null ? top.long_running_reminder_interval_ms : undefined) ?? legacy?.long_running_reminder_interval_ms;
|
|
47536
|
+
const base = {
|
|
47537
|
+
enabled: false,
|
|
47538
|
+
rewrite: false,
|
|
47539
|
+
compress: false,
|
|
47540
|
+
background: false,
|
|
47541
|
+
long_running_reminder_enabled: reminderEnabled,
|
|
47542
|
+
long_running_reminder_interval_ms: reminderInterval
|
|
47543
|
+
};
|
|
47544
|
+
if (top === false)
|
|
47545
|
+
return base;
|
|
47546
|
+
if (top === true) {
|
|
47547
|
+
return { ...base, enabled: true, rewrite: true, compress: true, background: true };
|
|
47548
|
+
}
|
|
47549
|
+
if (typeof top === "object" && top !== null) {
|
|
47550
|
+
return {
|
|
47551
|
+
...base,
|
|
47552
|
+
enabled: true,
|
|
47553
|
+
rewrite: top.rewrite ?? true,
|
|
47554
|
+
compress: top.compress ?? true,
|
|
47555
|
+
background: top.background ?? true
|
|
47556
|
+
};
|
|
47557
|
+
}
|
|
47558
|
+
const hasLegacyFeatureFlag = legacy && (legacy.rewrite !== undefined || legacy.compress !== undefined || legacy.background !== undefined);
|
|
47559
|
+
if (hasLegacyFeatureFlag) {
|
|
47560
|
+
const rewrite = legacy.rewrite === true;
|
|
47561
|
+
const compress = legacy.compress === true;
|
|
47562
|
+
const background = legacy.background === true;
|
|
47563
|
+
return { ...base, enabled: rewrite || compress || background, rewrite, compress, background };
|
|
47564
|
+
}
|
|
47565
|
+
return {
|
|
47566
|
+
...base,
|
|
47567
|
+
enabled: surfaceDefaultEnabled,
|
|
47568
|
+
rewrite: surfaceDefaultEnabled,
|
|
47569
|
+
compress: surfaceDefaultEnabled,
|
|
47570
|
+
background: surfaceDefaultEnabled
|
|
47571
|
+
};
|
|
47572
|
+
}
|
|
47514
47573
|
var FormatterEnum = exports_external.enum([
|
|
47515
47574
|
"biome",
|
|
47516
47575
|
"prettier",
|
|
@@ -47573,7 +47632,16 @@ var ExperimentalConfigSchema = exports_external.object({
|
|
|
47573
47632
|
}).optional(),
|
|
47574
47633
|
lsp_ty: exports_external.boolean().optional()
|
|
47575
47634
|
});
|
|
47635
|
+
var BashFeaturesSchema = exports_external.object({
|
|
47636
|
+
rewrite: exports_external.boolean().optional(),
|
|
47637
|
+
compress: exports_external.boolean().optional(),
|
|
47638
|
+
background: exports_external.boolean().optional(),
|
|
47639
|
+
long_running_reminder_enabled: exports_external.boolean().optional(),
|
|
47640
|
+
long_running_reminder_interval_ms: exports_external.number().int().positive().optional()
|
|
47641
|
+
});
|
|
47642
|
+
var BashConfigSchema = exports_external.union([exports_external.boolean(), BashFeaturesSchema]);
|
|
47576
47643
|
var AftConfigSchema = exports_external.object({
|
|
47644
|
+
$schema: exports_external.string().optional(),
|
|
47577
47645
|
format_on_edit: exports_external.boolean().optional(),
|
|
47578
47646
|
formatter_timeout_secs: exports_external.number().int().min(1).max(600).optional(),
|
|
47579
47647
|
validate_on_edit: exports_external.enum(["syntax", "full"]).optional(),
|
|
@@ -47584,6 +47652,7 @@ var AftConfigSchema = exports_external.object({
|
|
|
47584
47652
|
restrict_to_project_root: exports_external.boolean().optional(),
|
|
47585
47653
|
search_index: exports_external.boolean().optional(),
|
|
47586
47654
|
semantic_search: exports_external.boolean().optional(),
|
|
47655
|
+
bash: BashConfigSchema.optional(),
|
|
47587
47656
|
experimental: ExperimentalConfigSchema.optional(),
|
|
47588
47657
|
lsp: LspConfigSchema.optional(),
|
|
47589
47658
|
url_fetch_allow_private: exports_external.boolean().optional(),
|
|
@@ -47639,20 +47708,15 @@ function resolveLspConfigForConfigure(config2) {
|
|
|
47639
47708
|
}
|
|
47640
47709
|
function resolveExperimentalConfigForConfigure(config2) {
|
|
47641
47710
|
const overrides = {};
|
|
47642
|
-
|
|
47643
|
-
|
|
47644
|
-
|
|
47645
|
-
|
|
47646
|
-
|
|
47647
|
-
|
|
47648
|
-
if (config2.experimental?.bash?.background !== undefined) {
|
|
47649
|
-
overrides.experimental_bash_background = config2.experimental.bash.background;
|
|
47711
|
+
const bash = resolveBashConfig(config2);
|
|
47712
|
+
overrides.experimental_bash_rewrite = bash.rewrite;
|
|
47713
|
+
overrides.experimental_bash_compress = bash.compress;
|
|
47714
|
+
overrides.experimental_bash_background = bash.background;
|
|
47715
|
+
if (bash.long_running_reminder_enabled !== undefined) {
|
|
47716
|
+
overrides.bash_long_running_reminder_enabled = bash.long_running_reminder_enabled;
|
|
47650
47717
|
}
|
|
47651
|
-
if (
|
|
47652
|
-
overrides.
|
|
47653
|
-
}
|
|
47654
|
-
if (config2.experimental?.bash?.long_running_reminder_interval_ms !== undefined) {
|
|
47655
|
-
overrides.bash_long_running_reminder_interval_ms = config2.experimental.bash.long_running_reminder_interval_ms;
|
|
47718
|
+
if (bash.long_running_reminder_interval_ms !== undefined) {
|
|
47719
|
+
overrides.bash_long_running_reminder_interval_ms = bash.long_running_reminder_interval_ms;
|
|
47656
47720
|
}
|
|
47657
47721
|
if (config2.experimental?.lsp_ty !== undefined) {
|
|
47658
47722
|
overrides.experimental_lsp_ty = config2.experimental.lsp_ty;
|
|
@@ -47723,8 +47787,51 @@ function migrateRawConfig(rawConfig, configPath, logger) {
|
|
|
47723
47787
|
delete rawConfig[migration.oldKey];
|
|
47724
47788
|
oldKeys.push(migration.oldKey);
|
|
47725
47789
|
}
|
|
47790
|
+
oldKeys.push(...migrateExperimentalBashBlock(rawConfig, configPath, logger));
|
|
47726
47791
|
return oldKeys;
|
|
47727
47792
|
}
|
|
47793
|
+
function migrateExperimentalBashBlock(rawConfig, configPath, logger) {
|
|
47794
|
+
const experimental = rawConfig.experimental;
|
|
47795
|
+
if (typeof experimental !== "object" || experimental === null || Array.isArray(experimental)) {
|
|
47796
|
+
return [];
|
|
47797
|
+
}
|
|
47798
|
+
const expRecord = experimental;
|
|
47799
|
+
if (!Object.hasOwn(expRecord, "bash"))
|
|
47800
|
+
return [];
|
|
47801
|
+
const legacyBash = expRecord.bash;
|
|
47802
|
+
if (typeof legacyBash !== "object" || legacyBash === null || Array.isArray(legacyBash)) {
|
|
47803
|
+
delete expRecord.bash;
|
|
47804
|
+
if (Object.keys(expRecord).length === 0)
|
|
47805
|
+
delete rawConfig.experimental;
|
|
47806
|
+
return ["experimental.bash"];
|
|
47807
|
+
}
|
|
47808
|
+
const bashRecord = legacyBash;
|
|
47809
|
+
const hasFeatureFlag = "rewrite" in bashRecord || "compress" in bashRecord || "background" in bashRecord;
|
|
47810
|
+
if (!hasFeatureFlag)
|
|
47811
|
+
return [];
|
|
47812
|
+
const movedKeys = Object.keys(bashRecord).map((k) => `experimental.bash.${k}`);
|
|
47813
|
+
if (Object.hasOwn(rawConfig, "bash")) {
|
|
47814
|
+
logger?.warn(`Config migration conflict at ${configPath}: experimental.bash dropped because top-level "bash" is already set`);
|
|
47815
|
+
} else {
|
|
47816
|
+
const migrated = {
|
|
47817
|
+
rewrite: bashRecord.rewrite === true,
|
|
47818
|
+
compress: bashRecord.compress === true,
|
|
47819
|
+
background: bashRecord.background === true
|
|
47820
|
+
};
|
|
47821
|
+
if (bashRecord.long_running_reminder_enabled !== undefined) {
|
|
47822
|
+
migrated.long_running_reminder_enabled = bashRecord.long_running_reminder_enabled;
|
|
47823
|
+
}
|
|
47824
|
+
if (bashRecord.long_running_reminder_interval_ms !== undefined) {
|
|
47825
|
+
migrated.long_running_reminder_interval_ms = bashRecord.long_running_reminder_interval_ms;
|
|
47826
|
+
}
|
|
47827
|
+
rawConfig.bash = migrated;
|
|
47828
|
+
}
|
|
47829
|
+
delete expRecord.bash;
|
|
47830
|
+
if (Object.keys(expRecord).length === 0) {
|
|
47831
|
+
delete rawConfig.experimental;
|
|
47832
|
+
}
|
|
47833
|
+
return movedKeys;
|
|
47834
|
+
}
|
|
47728
47835
|
function migrateAftConfigFile(configPath, logger = { log: log2, warn: warn2 }) {
|
|
47729
47836
|
if (!existsSync6(configPath)) {
|
|
47730
47837
|
return { migrated: false, oldKeys: [] };
|
|
@@ -47849,6 +47956,22 @@ function mergeLspConfig(base, override) {
|
|
|
47849
47956
|
return;
|
|
47850
47957
|
return Object.fromEntries(Object.entries(lsp).filter(([, v]) => v !== undefined));
|
|
47851
47958
|
}
|
|
47959
|
+
function mergeBashConfig(baseBash, overrideBash) {
|
|
47960
|
+
if (baseBash === undefined && overrideBash === undefined)
|
|
47961
|
+
return;
|
|
47962
|
+
if (baseBash === undefined)
|
|
47963
|
+
return overrideBash;
|
|
47964
|
+
if (overrideBash === undefined)
|
|
47965
|
+
return baseBash;
|
|
47966
|
+
const expand = (value) => {
|
|
47967
|
+
if (value === true)
|
|
47968
|
+
return { rewrite: true, compress: true, background: true };
|
|
47969
|
+
if (value === false)
|
|
47970
|
+
return { rewrite: false, compress: false, background: false };
|
|
47971
|
+
return { ...value ?? {} };
|
|
47972
|
+
};
|
|
47973
|
+
return { ...expand(baseBash), ...expand(overrideBash) };
|
|
47974
|
+
}
|
|
47852
47975
|
function mergeExperimentalConfig(base, override) {
|
|
47853
47976
|
const bash = {
|
|
47854
47977
|
...base?.bash,
|
|
@@ -47889,7 +48012,8 @@ var PROJECT_SAFE_TOP_LEVEL_FIELDS = new Set([
|
|
|
47889
48012
|
"validate_on_edit",
|
|
47890
48013
|
"search_index",
|
|
47891
48014
|
"semantic_search",
|
|
47892
|
-
"experimental"
|
|
48015
|
+
"experimental",
|
|
48016
|
+
"bash"
|
|
47893
48017
|
]);
|
|
47894
48018
|
function pickProjectSafeFields(override) {
|
|
47895
48019
|
const safe = {};
|
|
@@ -47917,13 +48041,16 @@ function mergeConfigs(base, override) {
|
|
|
47917
48041
|
const semantic = mergeSemanticConfig(base.semantic, override.semantic);
|
|
47918
48042
|
const lsp = mergeLspConfig(base.lsp, override.lsp);
|
|
47919
48043
|
const experimental = mergeExperimentalConfig(base.experimental, override.experimental);
|
|
48044
|
+
const bash = mergeBashConfig(base.bash, override.bash);
|
|
47920
48045
|
const safeOverride = pickProjectSafeFields(override);
|
|
48046
|
+
delete safeOverride.bash;
|
|
47921
48047
|
return {
|
|
47922
48048
|
...base,
|
|
47923
48049
|
...safeOverride,
|
|
47924
48050
|
...Object.keys(formatter).length > 0 ? { formatter } : {},
|
|
47925
48051
|
...Object.keys(checker).length > 0 ? { checker } : {},
|
|
47926
48052
|
...lsp ? { lsp } : {},
|
|
48053
|
+
...bash !== undefined ? { bash } : {},
|
|
47927
48054
|
experimental,
|
|
47928
48055
|
semantic,
|
|
47929
48056
|
...disabledTools.length > 0 ? { disabled_tools: [...new Set(disabledTools)] } : {}
|
|
@@ -47965,7 +48092,7 @@ function loadAftConfig(projectDirectory) {
|
|
|
47965
48092
|
// src/lsp-auto-install.ts
|
|
47966
48093
|
import { spawn as spawn2 } from "node:child_process";
|
|
47967
48094
|
import { createHash as createHash4 } from "node:crypto";
|
|
47968
|
-
import { createReadStream, mkdirSync as mkdirSync7, readFileSync as
|
|
48095
|
+
import { createReadStream, mkdirSync as mkdirSync7, readFileSync as readFileSync6, renameSync as renameSync4, rmSync as rmSync3, statSync as statSync4 } from "node:fs";
|
|
47969
48096
|
import { join as join11 } from "node:path";
|
|
47970
48097
|
|
|
47971
48098
|
// src/lsp-cache.ts
|
|
@@ -48299,19 +48426,33 @@ var NPM_LSP_TABLE = [
|
|
|
48299
48426
|
id: "vue",
|
|
48300
48427
|
npm: "@vue/language-server",
|
|
48301
48428
|
binary: "vue-language-server",
|
|
48302
|
-
extensions: ["vue"]
|
|
48429
|
+
extensions: ["vue"],
|
|
48430
|
+
rootMarkers: [
|
|
48431
|
+
"vue.config.js",
|
|
48432
|
+
"vue.config.mjs",
|
|
48433
|
+
"vue.config.ts",
|
|
48434
|
+
"nuxt.config.js",
|
|
48435
|
+
"nuxt.config.mjs",
|
|
48436
|
+
"nuxt.config.ts",
|
|
48437
|
+
"nuxt.config.cjs"
|
|
48438
|
+
],
|
|
48439
|
+
packageJsonDeps: ["vue", "@vue/runtime-core", "nuxt"]
|
|
48303
48440
|
},
|
|
48304
48441
|
{
|
|
48305
48442
|
id: "astro",
|
|
48306
48443
|
npm: "@astrojs/language-server",
|
|
48307
48444
|
binary: "astro-ls",
|
|
48308
|
-
extensions: ["astro"]
|
|
48445
|
+
extensions: ["astro"],
|
|
48446
|
+
rootMarkers: ["astro.config.js", "astro.config.mjs", "astro.config.ts", "astro.config.cjs"],
|
|
48447
|
+
packageJsonDeps: ["astro"]
|
|
48309
48448
|
},
|
|
48310
48449
|
{
|
|
48311
48450
|
id: "svelte",
|
|
48312
48451
|
npm: "svelte-language-server",
|
|
48313
48452
|
binary: "svelteserver",
|
|
48314
|
-
extensions: ["svelte"]
|
|
48453
|
+
extensions: ["svelte"],
|
|
48454
|
+
rootMarkers: ["svelte.config.js", "svelte.config.mjs", "svelte.config.ts", "svelte.config.cjs"],
|
|
48455
|
+
packageJsonDeps: ["svelte", "@sveltejs/kit"]
|
|
48315
48456
|
},
|
|
48316
48457
|
{
|
|
48317
48458
|
id: "php-intelephense",
|
|
@@ -48329,7 +48470,7 @@ var NPM_LSP_TABLE = [
|
|
|
48329
48470
|
];
|
|
48330
48471
|
|
|
48331
48472
|
// src/lsp-project-relevance.ts
|
|
48332
|
-
import { existsSync as existsSync7, readdirSync as readdirSync3 } from "node:fs";
|
|
48473
|
+
import { existsSync as existsSync7, readdirSync as readdirSync3, readFileSync as readFileSync5 } from "node:fs";
|
|
48333
48474
|
import { join as join10 } from "node:path";
|
|
48334
48475
|
var MAX_WALK_DIRS = 200;
|
|
48335
48476
|
var MAX_WALK_DEPTH = 4;
|
|
@@ -48352,6 +48493,34 @@ function hasRootMarker(projectRoot, rootMarkers) {
|
|
|
48352
48493
|
}
|
|
48353
48494
|
return false;
|
|
48354
48495
|
}
|
|
48496
|
+
function hasPackageJsonDep(projectRoot, depNames) {
|
|
48497
|
+
if (!depNames || depNames.length === 0)
|
|
48498
|
+
return false;
|
|
48499
|
+
const pkg = readPackageJson(projectRoot);
|
|
48500
|
+
if (!pkg)
|
|
48501
|
+
return false;
|
|
48502
|
+
const merged = {
|
|
48503
|
+
...typeof pkg.dependencies === "object" && pkg.dependencies ? pkg.dependencies : {},
|
|
48504
|
+
...typeof pkg.devDependencies === "object" && pkg.devDependencies ? pkg.devDependencies : {},
|
|
48505
|
+
...typeof pkg.peerDependencies === "object" && pkg.peerDependencies ? pkg.peerDependencies : {}
|
|
48506
|
+
};
|
|
48507
|
+
for (const name of depNames) {
|
|
48508
|
+
if (Object.hasOwn(merged, name))
|
|
48509
|
+
return true;
|
|
48510
|
+
}
|
|
48511
|
+
return false;
|
|
48512
|
+
}
|
|
48513
|
+
function readPackageJson(projectRoot) {
|
|
48514
|
+
try {
|
|
48515
|
+
const raw = readFileSync5(join10(projectRoot, "package.json"), "utf8");
|
|
48516
|
+
const parsed = JSON.parse(raw);
|
|
48517
|
+
if (typeof parsed !== "object" || parsed === null)
|
|
48518
|
+
return null;
|
|
48519
|
+
return parsed;
|
|
48520
|
+
} catch {
|
|
48521
|
+
return null;
|
|
48522
|
+
}
|
|
48523
|
+
}
|
|
48355
48524
|
function relevantExtensionsInProject(projectRoot, extToServer) {
|
|
48356
48525
|
const wanted = new Set(Object.keys(extToServer).map((ext) => ext.toLowerCase()));
|
|
48357
48526
|
const found = new Set;
|
|
@@ -48444,6 +48613,8 @@ async function probeRegistry(npmPackage, graceDays, fetchImpl2 = fetch) {
|
|
|
48444
48613
|
function isProjectRelevant(spec, projectRoot, projectExtensions) {
|
|
48445
48614
|
if (hasRootMarker(projectRoot, spec.rootMarkers))
|
|
48446
48615
|
return true;
|
|
48616
|
+
if (hasPackageJsonDep(projectRoot, spec.packageJsonDeps))
|
|
48617
|
+
return true;
|
|
48447
48618
|
const extensions = projectExtensions();
|
|
48448
48619
|
return spec.extensions.some((ext) => extensions.has(ext.toLowerCase()));
|
|
48449
48620
|
}
|
|
@@ -48667,7 +48838,7 @@ function installedBinaryPath(spec) {
|
|
|
48667
48838
|
return null;
|
|
48668
48839
|
}
|
|
48669
48840
|
function sha256OfFileSync(path2) {
|
|
48670
|
-
return createHash4("sha256").update(
|
|
48841
|
+
return createHash4("sha256").update(readFileSync6(path2)).digest("hex");
|
|
48671
48842
|
}
|
|
48672
48843
|
function quarantineCachedNpmInstall(spec, reason) {
|
|
48673
48844
|
const packageDir = lspPackageDir(spec.npm);
|
|
@@ -48761,7 +48932,7 @@ import {
|
|
|
48761
48932
|
lstatSync as lstatSync2,
|
|
48762
48933
|
mkdirSync as mkdirSync8,
|
|
48763
48934
|
readdirSync as readdirSync4,
|
|
48764
|
-
readFileSync as
|
|
48935
|
+
readFileSync as readFileSync7,
|
|
48765
48936
|
readlinkSync as readlinkSync2,
|
|
48766
48937
|
realpathSync as realpathSync3,
|
|
48767
48938
|
renameSync as renameSync5,
|
|
@@ -48895,7 +49066,7 @@ function readGithubInstalledMetaIn(installDir) {
|
|
|
48895
49066
|
const path2 = join12(installDir, INSTALLED_META_FILE2);
|
|
48896
49067
|
if (!statSync5(path2).isFile())
|
|
48897
49068
|
return null;
|
|
48898
|
-
const parsed = JSON.parse(
|
|
49069
|
+
const parsed = JSON.parse(readFileSync7(path2, "utf8"));
|
|
48899
49070
|
if (typeof parsed.version !== "string" || parsed.version.length === 0)
|
|
48900
49071
|
return null;
|
|
48901
49072
|
return {
|
|
@@ -48936,7 +49107,7 @@ function sha256OfFile(path2) {
|
|
|
48936
49107
|
});
|
|
48937
49108
|
}
|
|
48938
49109
|
function sha256OfFileSync2(path2) {
|
|
48939
|
-
return createHash5("sha256").update(
|
|
49110
|
+
return createHash5("sha256").update(readFileSync7(path2)).digest("hex");
|
|
48940
49111
|
}
|
|
48941
49112
|
async function fetchReleaseByTag(githubRepo, tag, fetchImpl2, signal) {
|
|
48942
49113
|
const candidates = [];
|
|
@@ -49570,7 +49741,7 @@ function discoverRelevantGithubServers(projectRoot) {
|
|
|
49570
49741
|
}
|
|
49571
49742
|
|
|
49572
49743
|
// src/notifications.ts
|
|
49573
|
-
import { existsSync as existsSync9, mkdirSync as mkdirSync9, readFileSync as
|
|
49744
|
+
import { existsSync as existsSync9, mkdirSync as mkdirSync9, readFileSync as readFileSync8, writeFileSync as writeFileSync6 } from "node:fs";
|
|
49574
49745
|
import { join as join13 } from "node:path";
|
|
49575
49746
|
var WARNING_MARKER = "\uD83D\uDD27 AFT: ⚠️";
|
|
49576
49747
|
var FEATURE_MARKER = "\uD83D\uDD27 AFT: ✨";
|
|
@@ -49663,16 +49834,23 @@ async function deliverConfigureWarnings(opts, warnings) {
|
|
|
49663
49834
|
await recordWarning(opts.bridge, key);
|
|
49664
49835
|
}
|
|
49665
49836
|
}
|
|
49666
|
-
function sendFeatureAnnouncement(version2, features, storageDir) {
|
|
49837
|
+
function sendFeatureAnnouncement(version2, features, footer, storageDir) {
|
|
49667
49838
|
const versionFile = join13(storageDir, "last_announced_version");
|
|
49668
49839
|
try {
|
|
49669
49840
|
if (existsSync9(versionFile)) {
|
|
49670
|
-
const lastVersion =
|
|
49841
|
+
const lastVersion = readFileSync8(versionFile, "utf-8").trim();
|
|
49671
49842
|
if (lastVersion === version2)
|
|
49672
49843
|
return;
|
|
49673
49844
|
}
|
|
49674
49845
|
} catch {}
|
|
49675
|
-
|
|
49846
|
+
const sections = [
|
|
49847
|
+
`${FEATURE_MARKER} v${version2}:`,
|
|
49848
|
+
...features.map((feature) => ` • ${feature}`)
|
|
49849
|
+
];
|
|
49850
|
+
if (typeof footer === "string" && footer.trim().length > 0) {
|
|
49851
|
+
sections.push("", footer);
|
|
49852
|
+
}
|
|
49853
|
+
log2(sections.join(`
|
|
49676
49854
|
`));
|
|
49677
49855
|
try {
|
|
49678
49856
|
mkdirSync9(storageDir, { recursive: true });
|
|
@@ -50929,6 +51107,7 @@ function buildMutationResult(filePath, response) {
|
|
|
50929
51107
|
const replacements = response.replacements;
|
|
50930
51108
|
const diagnostics = response.lsp_diagnostics;
|
|
50931
51109
|
const truncated = diffObj?.truncated === true;
|
|
51110
|
+
const noOp = response.no_op === true;
|
|
50932
51111
|
const formatted = response.formatted;
|
|
50933
51112
|
const formatSkippedReason = response.format_skipped_reason;
|
|
50934
51113
|
const globFormatSkipReasons = response.format_skip_reasons;
|
|
@@ -50949,6 +51128,11 @@ ${diffText}`;
|
|
|
50949
51128
|
text += `
|
|
50950
51129
|
|
|
50951
51130
|
(diff truncated — file too large to include before/after content)`;
|
|
51131
|
+
}
|
|
51132
|
+
if (noOp) {
|
|
51133
|
+
text += `
|
|
51134
|
+
|
|
51135
|
+
Note: no net file change — the match was found and applied, but the file content is byte-identical to before. Likely causes: oldString and newString are identical, or a formatter normalized the change away.`;
|
|
50952
51136
|
}
|
|
50953
51137
|
const skipNote = formatSkipReasonNote(formatSkippedReason);
|
|
50954
51138
|
if (skipNote)
|
|
@@ -50977,7 +51161,8 @@ ${formatDiagnosticsText(diagnostics)}`;
|
|
|
50977
51161
|
diagnostics,
|
|
50978
51162
|
truncated: truncated || undefined,
|
|
50979
51163
|
formatted,
|
|
50980
|
-
formatSkippedReason
|
|
51164
|
+
formatSkippedReason,
|
|
51165
|
+
noOp: noOp || undefined
|
|
50981
51166
|
}
|
|
50982
51167
|
};
|
|
50983
51168
|
}
|
|
@@ -51048,7 +51233,12 @@ ${theme.fg("error", errorText || "edit failed")}`);
|
|
|
51048
51233
|
const deletions = details?.deletions ?? 0;
|
|
51049
51234
|
const text = reuseText3(context.lastComponent);
|
|
51050
51235
|
const summary = theme.fg("success", `+${additions}/-${deletions}`);
|
|
51051
|
-
|
|
51236
|
+
let suffix = "";
|
|
51237
|
+
if (details?.truncated) {
|
|
51238
|
+
suffix = ` ${theme.fg("muted", "(diff truncated)")}`;
|
|
51239
|
+
} else if (details?.noOp) {
|
|
51240
|
+
suffix = ` ${theme.fg("muted", "(no net change)")}`;
|
|
51241
|
+
}
|
|
51052
51242
|
text.setText(`
|
|
51053
51243
|
${summary}${suffix}`);
|
|
51054
51244
|
return text;
|
|
@@ -52245,7 +52435,7 @@ function buildHintsFromConfig(config2, absentTools, hoistBuiltins) {
|
|
|
52245
52435
|
toolSurface: config2.tool_surface ?? "recommended",
|
|
52246
52436
|
hoistBuiltins,
|
|
52247
52437
|
semanticEnabled: config2.semantic_search === true,
|
|
52248
|
-
bashBackgroundEnabled: config2.
|
|
52438
|
+
bashBackgroundEnabled: resolveBashConfig(config2).background,
|
|
52249
52439
|
absentTools
|
|
52250
52440
|
});
|
|
52251
52441
|
}
|
|
@@ -52322,16 +52512,13 @@ var PLUGIN_VERSION = (() => {
|
|
|
52322
52512
|
return "0.0.0";
|
|
52323
52513
|
}
|
|
52324
52514
|
})();
|
|
52325
|
-
var ANNOUNCEMENT_VERSION = "0.
|
|
52515
|
+
var ANNOUNCEMENT_VERSION = "0.28.0";
|
|
52326
52516
|
var ANNOUNCEMENT_FEATURES = [
|
|
52327
|
-
`
|
|
52328
|
-
|
|
52329
|
-
|
|
52330
|
-
- Rewrite cat/grep/find/sed/ls into AFT counterparts for faster, formatted output.
|
|
52331
|
-
Check GitHub for how to enable.`,
|
|
52332
|
-
"Trigram grep/glob and semantic search (aft_search) graduated out of experimental.",
|
|
52333
|
-
"Lots of bugfixes and new end-to-end test coverage."
|
|
52517
|
+
"Bash hoisting is now default-on. Configure with top-level `bash: { rewrite, compress, background }` instead of `experimental.bash.*` — old config migrates automatically on first launch.",
|
|
52518
|
+
"Vue, Astro, and Svelte language servers now auto-install when the framework appears in your package.json (fixes #48).",
|
|
52519
|
+
"Native Windows ARM64 binary — ARM64 hosts no longer fall back to x64 under emulation."
|
|
52334
52520
|
];
|
|
52521
|
+
var ANNOUNCEMENT_FOOTER = "Join us on Discord: https://discord.gg/F2uWxjGnU";
|
|
52335
52522
|
var ALL_ONLY_TOOLS = new Set([
|
|
52336
52523
|
"aft_navigate",
|
|
52337
52524
|
"aft_delete",
|
|
@@ -52631,11 +52818,10 @@ ${lines}
|
|
|
52631
52818
|
}
|
|
52632
52819
|
})();
|
|
52633
52820
|
if (ANNOUNCEMENT_VERSION && ANNOUNCEMENT_FEATURES.length > 0) {
|
|
52634
|
-
sendFeatureAnnouncement(ANNOUNCEMENT_VERSION, ANNOUNCEMENT_FEATURES, storageDir);
|
|
52821
|
+
sendFeatureAnnouncement(ANNOUNCEMENT_VERSION, ANNOUNCEMENT_FEATURES, ANNOUNCEMENT_FOOTER, storageDir);
|
|
52635
52822
|
}
|
|
52636
52823
|
const surface = resolveToolSurface(config2);
|
|
52637
|
-
|
|
52638
|
-
if (surface.hoistBash && anyBashExperimental) {
|
|
52824
|
+
if (surface.hoistBash && resolveBashConfig(config2).enabled) {
|
|
52639
52825
|
registerBashTool(pi, ctx);
|
|
52640
52826
|
}
|
|
52641
52827
|
registerHoistedTools(pi, ctx, surface);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-auto-install.d.ts","sourceRoot":"","sources":["../src/lsp-auto-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;
|
|
1
|
+
{"version":3,"file":"lsp-auto-install.d.ts","sourceRoot":"","sources":["../src/lsp-auto-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AA4BH,+DAA+D;AAC/D,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,kGAAkG;IAClG,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,qCAAqC;AACrC,MAAM,WAAW,iBAAiB;IAChC,mFAAmF;IACnF,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,gDAAgD;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;;;OAOG;IACH,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C;;;;;;;;;OASG;IACH,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;CACjC;AA8DD,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM/D;AAyVD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,iBAAiB,EACzB,SAAS,GAAE,OAAO,KAAa,GAC9B,iBAAiB,CAwEnB"}
|
package/dist/lsp-npm-table.d.ts
CHANGED
|
@@ -22,6 +22,20 @@ export interface NpmServerSpec {
|
|
|
22
22
|
readonly extensions: readonly string[];
|
|
23
23
|
/** Project-root marker files (presence triggers install). Optional. */
|
|
24
24
|
readonly rootMarkers?: readonly string[];
|
|
25
|
+
/**
|
|
26
|
+
* Package names whose presence in `<projectRoot>/package.json` `dependencies`,
|
|
27
|
+
* `devDependencies`, or `peerDependencies` triggers auto-install. Useful for
|
|
28
|
+
* frameworks where the config file alone (`vite.config.ts`, etc.) doesn't
|
|
29
|
+
* reveal which language server is needed — e.g. a Vite project is only a
|
|
30
|
+
* Vue project if `vue` is in package.json. Optional.
|
|
31
|
+
*
|
|
32
|
+
* GitHub issue #48: Vue, Astro, and Svelte projects can have their .vue
|
|
33
|
+
* /.astro/.svelte files deep enough in a monorepo (or behind skipped
|
|
34
|
+
* directories like `apps/`) that the bounded extension walk misses them.
|
|
35
|
+
* Without rootMarkers OR this hint, auto-install never triggers and the
|
|
36
|
+
* user sees a recurring `lsp_binary_missing` warning.
|
|
37
|
+
*/
|
|
38
|
+
readonly packageJsonDeps?: readonly string[];
|
|
25
39
|
}
|
|
26
40
|
export declare const NPM_LSP_TABLE: readonly NpmServerSpec[];
|
|
27
41
|
/** Find an entry by AFT server id. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-npm-table.d.ts","sourceRoot":"","sources":["../src/lsp-npm-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,uEAAuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"lsp-npm-table.d.ts","sourceRoot":"","sources":["../src/lsp-npm-table.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,aAAa;IAC5B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,uEAAuE;IACvE,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC9C;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,aAAa,EAoFjD,CAAC;AAEF,sCAAsC;AACtC,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEvE;AAED,oCAAoC;AACpC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE/E"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
export declare function hasRootMarker(projectRoot: string, rootMarkers?: readonly string[]): boolean;
|
|
2
|
+
/**
|
|
3
|
+
* True when `<projectRoot>/package.json` lists any name from `depNames`
|
|
4
|
+
* in its `dependencies`, `devDependencies`, or `peerDependencies` maps.
|
|
5
|
+
*
|
|
6
|
+
* GitHub issue #48: Vue/Astro/Svelte projects fail the bounded extension
|
|
7
|
+
* walk for monorepo layouts. Detecting them by package.json dep name
|
|
8
|
+
* catches Vite-based setups and other frameworks where no framework-
|
|
9
|
+
* specific config file exists at the project root.
|
|
10
|
+
*
|
|
11
|
+
* Reads package.json once per call. Failures (missing file, invalid JSON,
|
|
12
|
+
* I/O error) return false — this signal is additive, never blocking.
|
|
13
|
+
*/
|
|
14
|
+
export declare function hasPackageJsonDep(projectRoot: string, depNames?: readonly string[]): boolean;
|
|
2
15
|
/**
|
|
3
16
|
* Bounded extension scan for project relevance decisions.
|
|
4
17
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-project-relevance.d.ts","sourceRoot":"","sources":["../src/lsp-project-relevance.ts"],"names":[],"mappings":"AAiBA,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAM3F;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GACvD,GAAG,CAAC,MAAM,CAAC,CAmCb"}
|
|
1
|
+
{"version":3,"file":"lsp-project-relevance.d.ts","sourceRoot":"","sources":["../src/lsp-project-relevance.ts"],"names":[],"mappings":"AAiBA,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAM3F;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAe5F;AAmBD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC,GACvD,GAAG,CAAC,MAAM,CAAC,CAmCb"}
|
package/dist/notifications.d.ts
CHANGED
|
@@ -16,5 +16,5 @@ export interface ConfigureWarningOptions {
|
|
|
16
16
|
projectRoot?: string;
|
|
17
17
|
}
|
|
18
18
|
export declare function deliverConfigureWarnings(opts: ConfigureWarningOptions, warnings: ConfigureWarning[]): Promise<void>;
|
|
19
|
-
export declare function sendFeatureAnnouncement(version: string, features: string[], storageDir: string): void;
|
|
19
|
+
export declare function sendFeatureAnnouncement(version: string, features: string[], footer: string, storageDir: string): void;
|
|
20
20
|
//# sourceMappingURL=notifications.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAM1D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,yBAAyB,GAAG,uBAAuB,GAAG,oBAAoB,CAAC;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAkGD,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,uBAAuB,EAC7B,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,EAClB,UAAU,EAAE,MAAM,GACjB,IAAI,
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAM1D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,yBAAyB,GAAG,uBAAuB,GAAG,oBAAoB,CAAC;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAkGD,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,uBAAuB,EAC7B,QAAQ,EAAE,gBAAgB,EAAE,GAC3B,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,EAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,IAAI,CAmCN"}
|
package/dist/shared/status.d.ts
CHANGED
|
@@ -58,6 +58,11 @@ export interface AftStatusSnapshot {
|
|
|
58
58
|
};
|
|
59
59
|
/** Compression aggregate passthrough; rendering is added separately. */
|
|
60
60
|
compression?: StatusCompression;
|
|
61
|
+
/**
|
|
62
|
+
* Set on synthetic "not_initialized" snapshots when no bridge has spawned
|
|
63
|
+
* yet. Renderers display this in place of empty status rows.
|
|
64
|
+
*/
|
|
65
|
+
message?: string;
|
|
61
66
|
}
|
|
62
67
|
export declare function formatBytes(bytes: number): string;
|
|
63
68
|
export declare function coerceAftStatus(response: Record<string, unknown>): AftStatusSnapshot;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/shared/status.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,0BAA0B,CAAC;IACpC,OAAO,EAAE,0BAA0B,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QACR,cAAc,EAAE,OAAO,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,wBAAwB,EAAE,OAAO,CAAC;QAClC,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IACF,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iEAAiE;IACjE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,wEAAwE;IACxE,WAAW,CAAC,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/shared/status.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,0BAA0B,CAAC;IACpC,OAAO,EAAE,0BAA0B,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QACR,cAAc,EAAE,OAAO,CAAC;QACxB,gBAAgB,EAAE,MAAM,CAAC;QACzB,wBAAwB,EAAE,OAAO,CAAC;QAClC,YAAY,EAAE,OAAO,CAAC;QACtB,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,YAAY,EAAE;QACZ,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB,CAAC;IACF,cAAc,EAAE;QACd,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACvB,CAAC;IACF,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;IACF,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,aAAa,EAAE,MAAM,CAAC;QACtB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iEAAiE;IACjE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,4DAA4D;IAC5D,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,wEAAwE;IACxE,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAqDD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAajD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CA+DpF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA+D3E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAiEtE"}
|
package/dist/tools/hoisted.d.ts
CHANGED
|
@@ -55,6 +55,13 @@ interface FileMutationDetails {
|
|
|
55
55
|
* or accept the unformatted result.
|
|
56
56
|
*/
|
|
57
57
|
formatSkippedReason?: string;
|
|
58
|
+
/**
|
|
59
|
+
* v0.27.1: Rust returns `no_op: true` when the post-write file content
|
|
60
|
+
* is byte-identical to the pre-write state. This separates "matched but
|
|
61
|
+
* produced no change" from a real `+0/-0` failure mode in the UI.
|
|
62
|
+
* See GitHub #45.
|
|
63
|
+
*/
|
|
64
|
+
noOp?: boolean;
|
|
58
65
|
}
|
|
59
66
|
export declare function registerHoistedTools(pi: ExtensionAPI, ctx: PluginContext, surface: ToolSurfaceFlags): void;
|
|
60
67
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hoisted.d.ts","sourceRoot":"","sources":["../../src/tools/hoisted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAGlB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAiFjD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,kEAAkE;AAClE,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IACxB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"hoisted.d.ts","sourceRoot":"","sources":["../../src/tools/hoisted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAGlB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAiFjD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,kEAAkE;AAClE,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IACxB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,YAAY,EAChB,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,gBAAgB,GACxB,IAAI,CAwLN;AAMD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,eAAe,CAAC,mBAAmB,CAAC,CAiGtC;AAyJD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CA0B3D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,mBAAmB,EAAE,OAAO,EAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAgBR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-hints.d.ts","sourceRoot":"","sources":["../src/workflow-hints.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"workflow-hints.d.ts","sourceRoot":"","sources":["../src/workflow-hints.ts"],"names":[],"mappings":"AAOA,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,kEAAkE;IAClE,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC1B;AAID,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,IAAI,CA2DzE;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,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,CA8BN"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cortexkit/aft-pi",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.28.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,19 @@
|
|
|
22
22
|
"prepublishOnly": "bun run build"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@cortexkit/aft-bridge": "0.
|
|
25
|
+
"@cortexkit/aft-bridge": "0.28.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-
|
|
32
|
+
"@cortexkit/aft-darwin-arm64": "0.28.0",
|
|
33
|
+
"@cortexkit/aft-darwin-x64": "0.28.0",
|
|
34
|
+
"@cortexkit/aft-linux-arm64": "0.28.0",
|
|
35
|
+
"@cortexkit/aft-linux-x64": "0.28.0",
|
|
36
|
+
"@cortexkit/aft-win32-arm64": "0.28.0",
|
|
37
|
+
"@cortexkit/aft-win32-x64": "0.28.0"
|
|
37
38
|
},
|
|
38
39
|
"devDependencies": {
|
|
39
40
|
"@earendil-works/pi-coding-agent": "*",
|