@cortexkit/aft-pi 0.27.1 → 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 CHANGED
@@ -52,6 +52,25 @@ 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 {
56
75
  /**
57
76
  * Optional JSON Schema URL for editor tooling. Runtime no-op — only present
@@ -70,6 +89,18 @@ export interface AftConfig {
70
89
  restrict_to_project_root?: boolean;
71
90
  search_index?: boolean;
72
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;
73
104
  experimental?: ExperimentalConfig;
74
105
  lsp?: LspConfig;
75
106
  url_fetch_allow_private?: boolean;
@@ -81,6 +112,36 @@ export interface AftConfig {
81
112
  */
82
113
  max_callgraph_files?: number;
83
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;
84
145
  export declare const LspServerSchema: z.ZodObject<{
85
146
  extensions: z.ZodArray<z.ZodString>;
86
147
  binary: z.ZodString;
@@ -129,6 +190,13 @@ export declare const AftConfigSchema: z.ZodObject<{
129
190
  restrict_to_project_root: z.ZodOptional<z.ZodBoolean>;
130
191
  search_index: z.ZodOptional<z.ZodBoolean>;
131
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>]>>;
132
200
  experimental: z.ZodOptional<z.ZodObject<{
133
201
  bash: z.ZodOptional<z.ZodObject<{
134
202
  rewrite: z.ZodOptional<z.ZodBoolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -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,EAGd,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;AAmDD,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,CAya9D;AAED,eAAO,MAAM,QAAQ;;;;;CAKpB,CAAC"}
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-x64", x64: "win32-x64" }
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
 
@@ -33425,7 +33426,7 @@ import {
33425
33426
  // package.json
33426
33427
  var package_default = {
33427
33428
  name: "@cortexkit/aft-pi",
33428
- version: "0.27.1",
33429
+ version: "0.28.0",
33429
33430
  type: "module",
33430
33431
  description: "Pi coding agent extension for Agent File Tools (AFT) — tree-sitter and LSP-powered code analysis",
33431
33432
  main: "dist/index.js",
@@ -33447,18 +33448,19 @@ var package_default = {
33447
33448
  prepublishOnly: "bun run build"
33448
33449
  },
33449
33450
  dependencies: {
33450
- "@cortexkit/aft-bridge": "0.27.1",
33451
+ "@cortexkit/aft-bridge": "0.28.0",
33451
33452
  typebox: "^1.1.24",
33452
33453
  "comment-json": "^5.0.0",
33453
33454
  diff: "^8.0.4",
33454
33455
  zod: "^4.1.8"
33455
33456
  },
33456
33457
  optionalDependencies: {
33457
- "@cortexkit/aft-darwin-arm64": "0.27.1",
33458
- "@cortexkit/aft-darwin-x64": "0.27.1",
33459
- "@cortexkit/aft-linux-arm64": "0.27.1",
33460
- "@cortexkit/aft-linux-x64": "0.27.1",
33461
- "@cortexkit/aft-win32-x64": "0.27.1"
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"
33462
33464
  },
33463
33465
  devDependencies: {
33464
33466
  "@earendil-works/pi-coding-agent": "*",
@@ -33556,6 +33558,7 @@ function coerceAftStatus(response) {
33556
33558
  project_root: readNullableString(response.project_root),
33557
33559
  canonical_root: readNullableString(response.canonical_root),
33558
33560
  cache_role: readString(response.cache_role, "not_initialized"),
33561
+ message: typeof response.message === "string" ? response.message : undefined,
33559
33562
  features: {
33560
33563
  format_on_edit: readBoolean(features.format_on_edit),
33561
33564
  validate_on_edit: readString(features.validate_on_edit, "off"),
@@ -47523,6 +47526,50 @@ function date4(params) {
47523
47526
  // ../../node_modules/.bun/zod@4.3.6/node_modules/zod/v4/classic/external.js
47524
47527
  config(en_default());
47525
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
+ }
47526
47573
  var FormatterEnum = exports_external.enum([
47527
47574
  "biome",
47528
47575
  "prettier",
@@ -47585,6 +47632,14 @@ var ExperimentalConfigSchema = exports_external.object({
47585
47632
  }).optional(),
47586
47633
  lsp_ty: exports_external.boolean().optional()
47587
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]);
47588
47643
  var AftConfigSchema = exports_external.object({
47589
47644
  $schema: exports_external.string().optional(),
47590
47645
  format_on_edit: exports_external.boolean().optional(),
@@ -47597,6 +47652,7 @@ var AftConfigSchema = exports_external.object({
47597
47652
  restrict_to_project_root: exports_external.boolean().optional(),
47598
47653
  search_index: exports_external.boolean().optional(),
47599
47654
  semantic_search: exports_external.boolean().optional(),
47655
+ bash: BashConfigSchema.optional(),
47600
47656
  experimental: ExperimentalConfigSchema.optional(),
47601
47657
  lsp: LspConfigSchema.optional(),
47602
47658
  url_fetch_allow_private: exports_external.boolean().optional(),
@@ -47652,20 +47708,15 @@ function resolveLspConfigForConfigure(config2) {
47652
47708
  }
47653
47709
  function resolveExperimentalConfigForConfigure(config2) {
47654
47710
  const overrides = {};
47655
- if (config2.experimental?.bash?.rewrite !== undefined) {
47656
- overrides.experimental_bash_rewrite = config2.experimental.bash.rewrite;
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;
47657
47717
  }
47658
- if (config2.experimental?.bash?.compress !== undefined) {
47659
- overrides.experimental_bash_compress = config2.experimental.bash.compress;
47660
- }
47661
- if (config2.experimental?.bash?.background !== undefined) {
47662
- overrides.experimental_bash_background = config2.experimental.bash.background;
47663
- }
47664
- if (config2.experimental?.bash?.long_running_reminder_enabled !== undefined) {
47665
- overrides.bash_long_running_reminder_enabled = config2.experimental.bash.long_running_reminder_enabled;
47666
- }
47667
- if (config2.experimental?.bash?.long_running_reminder_interval_ms !== undefined) {
47668
- 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;
47669
47720
  }
47670
47721
  if (config2.experimental?.lsp_ty !== undefined) {
47671
47722
  overrides.experimental_lsp_ty = config2.experimental.lsp_ty;
@@ -47736,8 +47787,51 @@ function migrateRawConfig(rawConfig, configPath, logger) {
47736
47787
  delete rawConfig[migration.oldKey];
47737
47788
  oldKeys.push(migration.oldKey);
47738
47789
  }
47790
+ oldKeys.push(...migrateExperimentalBashBlock(rawConfig, configPath, logger));
47739
47791
  return oldKeys;
47740
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
+ }
47741
47835
  function migrateAftConfigFile(configPath, logger = { log: log2, warn: warn2 }) {
47742
47836
  if (!existsSync6(configPath)) {
47743
47837
  return { migrated: false, oldKeys: [] };
@@ -47862,6 +47956,22 @@ function mergeLspConfig(base, override) {
47862
47956
  return;
47863
47957
  return Object.fromEntries(Object.entries(lsp).filter(([, v]) => v !== undefined));
47864
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
+ }
47865
47975
  function mergeExperimentalConfig(base, override) {
47866
47976
  const bash = {
47867
47977
  ...base?.bash,
@@ -47902,7 +48012,8 @@ var PROJECT_SAFE_TOP_LEVEL_FIELDS = new Set([
47902
48012
  "validate_on_edit",
47903
48013
  "search_index",
47904
48014
  "semantic_search",
47905
- "experimental"
48015
+ "experimental",
48016
+ "bash"
47906
48017
  ]);
47907
48018
  function pickProjectSafeFields(override) {
47908
48019
  const safe = {};
@@ -47930,13 +48041,16 @@ function mergeConfigs(base, override) {
47930
48041
  const semantic = mergeSemanticConfig(base.semantic, override.semantic);
47931
48042
  const lsp = mergeLspConfig(base.lsp, override.lsp);
47932
48043
  const experimental = mergeExperimentalConfig(base.experimental, override.experimental);
48044
+ const bash = mergeBashConfig(base.bash, override.bash);
47933
48045
  const safeOverride = pickProjectSafeFields(override);
48046
+ delete safeOverride.bash;
47934
48047
  return {
47935
48048
  ...base,
47936
48049
  ...safeOverride,
47937
48050
  ...Object.keys(formatter).length > 0 ? { formatter } : {},
47938
48051
  ...Object.keys(checker).length > 0 ? { checker } : {},
47939
48052
  ...lsp ? { lsp } : {},
48053
+ ...bash !== undefined ? { bash } : {},
47940
48054
  experimental,
47941
48055
  semantic,
47942
48056
  ...disabledTools.length > 0 ? { disabled_tools: [...new Set(disabledTools)] } : {}
@@ -47978,7 +48092,7 @@ function loadAftConfig(projectDirectory) {
47978
48092
  // src/lsp-auto-install.ts
47979
48093
  import { spawn as spawn2 } from "node:child_process";
47980
48094
  import { createHash as createHash4 } from "node:crypto";
47981
- import { createReadStream, mkdirSync as mkdirSync7, readFileSync as readFileSync5, renameSync as renameSync4, rmSync as rmSync3, statSync as statSync4 } from "node:fs";
48095
+ import { createReadStream, mkdirSync as mkdirSync7, readFileSync as readFileSync6, renameSync as renameSync4, rmSync as rmSync3, statSync as statSync4 } from "node:fs";
47982
48096
  import { join as join11 } from "node:path";
47983
48097
 
47984
48098
  // src/lsp-cache.ts
@@ -48312,19 +48426,33 @@ var NPM_LSP_TABLE = [
48312
48426
  id: "vue",
48313
48427
  npm: "@vue/language-server",
48314
48428
  binary: "vue-language-server",
48315
- 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"]
48316
48440
  },
48317
48441
  {
48318
48442
  id: "astro",
48319
48443
  npm: "@astrojs/language-server",
48320
48444
  binary: "astro-ls",
48321
- extensions: ["astro"]
48445
+ extensions: ["astro"],
48446
+ rootMarkers: ["astro.config.js", "astro.config.mjs", "astro.config.ts", "astro.config.cjs"],
48447
+ packageJsonDeps: ["astro"]
48322
48448
  },
48323
48449
  {
48324
48450
  id: "svelte",
48325
48451
  npm: "svelte-language-server",
48326
48452
  binary: "svelteserver",
48327
- extensions: ["svelte"]
48453
+ extensions: ["svelte"],
48454
+ rootMarkers: ["svelte.config.js", "svelte.config.mjs", "svelte.config.ts", "svelte.config.cjs"],
48455
+ packageJsonDeps: ["svelte", "@sveltejs/kit"]
48328
48456
  },
48329
48457
  {
48330
48458
  id: "php-intelephense",
@@ -48342,7 +48470,7 @@ var NPM_LSP_TABLE = [
48342
48470
  ];
48343
48471
 
48344
48472
  // src/lsp-project-relevance.ts
48345
- import { existsSync as existsSync7, readdirSync as readdirSync3 } from "node:fs";
48473
+ import { existsSync as existsSync7, readdirSync as readdirSync3, readFileSync as readFileSync5 } from "node:fs";
48346
48474
  import { join as join10 } from "node:path";
48347
48475
  var MAX_WALK_DIRS = 200;
48348
48476
  var MAX_WALK_DEPTH = 4;
@@ -48365,6 +48493,34 @@ function hasRootMarker(projectRoot, rootMarkers) {
48365
48493
  }
48366
48494
  return false;
48367
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
+ }
48368
48524
  function relevantExtensionsInProject(projectRoot, extToServer) {
48369
48525
  const wanted = new Set(Object.keys(extToServer).map((ext) => ext.toLowerCase()));
48370
48526
  const found = new Set;
@@ -48457,6 +48613,8 @@ async function probeRegistry(npmPackage, graceDays, fetchImpl2 = fetch) {
48457
48613
  function isProjectRelevant(spec, projectRoot, projectExtensions) {
48458
48614
  if (hasRootMarker(projectRoot, spec.rootMarkers))
48459
48615
  return true;
48616
+ if (hasPackageJsonDep(projectRoot, spec.packageJsonDeps))
48617
+ return true;
48460
48618
  const extensions = projectExtensions();
48461
48619
  return spec.extensions.some((ext) => extensions.has(ext.toLowerCase()));
48462
48620
  }
@@ -48680,7 +48838,7 @@ function installedBinaryPath(spec) {
48680
48838
  return null;
48681
48839
  }
48682
48840
  function sha256OfFileSync(path2) {
48683
- return createHash4("sha256").update(readFileSync5(path2)).digest("hex");
48841
+ return createHash4("sha256").update(readFileSync6(path2)).digest("hex");
48684
48842
  }
48685
48843
  function quarantineCachedNpmInstall(spec, reason) {
48686
48844
  const packageDir = lspPackageDir(spec.npm);
@@ -48774,7 +48932,7 @@ import {
48774
48932
  lstatSync as lstatSync2,
48775
48933
  mkdirSync as mkdirSync8,
48776
48934
  readdirSync as readdirSync4,
48777
- readFileSync as readFileSync6,
48935
+ readFileSync as readFileSync7,
48778
48936
  readlinkSync as readlinkSync2,
48779
48937
  realpathSync as realpathSync3,
48780
48938
  renameSync as renameSync5,
@@ -48908,7 +49066,7 @@ function readGithubInstalledMetaIn(installDir) {
48908
49066
  const path2 = join12(installDir, INSTALLED_META_FILE2);
48909
49067
  if (!statSync5(path2).isFile())
48910
49068
  return null;
48911
- const parsed = JSON.parse(readFileSync6(path2, "utf8"));
49069
+ const parsed = JSON.parse(readFileSync7(path2, "utf8"));
48912
49070
  if (typeof parsed.version !== "string" || parsed.version.length === 0)
48913
49071
  return null;
48914
49072
  return {
@@ -48949,7 +49107,7 @@ function sha256OfFile(path2) {
48949
49107
  });
48950
49108
  }
48951
49109
  function sha256OfFileSync2(path2) {
48952
- return createHash5("sha256").update(readFileSync6(path2)).digest("hex");
49110
+ return createHash5("sha256").update(readFileSync7(path2)).digest("hex");
48953
49111
  }
48954
49112
  async function fetchReleaseByTag(githubRepo, tag, fetchImpl2, signal) {
48955
49113
  const candidates = [];
@@ -49583,7 +49741,7 @@ function discoverRelevantGithubServers(projectRoot) {
49583
49741
  }
49584
49742
 
49585
49743
  // src/notifications.ts
49586
- import { existsSync as existsSync9, mkdirSync as mkdirSync9, readFileSync as readFileSync7, writeFileSync as writeFileSync6 } from "node:fs";
49744
+ import { existsSync as existsSync9, mkdirSync as mkdirSync9, readFileSync as readFileSync8, writeFileSync as writeFileSync6 } from "node:fs";
49587
49745
  import { join as join13 } from "node:path";
49588
49746
  var WARNING_MARKER = "\uD83D\uDD27 AFT: ⚠️";
49589
49747
  var FEATURE_MARKER = "\uD83D\uDD27 AFT: ✨";
@@ -49676,16 +49834,23 @@ async function deliverConfigureWarnings(opts, warnings) {
49676
49834
  await recordWarning(opts.bridge, key);
49677
49835
  }
49678
49836
  }
49679
- function sendFeatureAnnouncement(version2, features, storageDir) {
49837
+ function sendFeatureAnnouncement(version2, features, footer, storageDir) {
49680
49838
  const versionFile = join13(storageDir, "last_announced_version");
49681
49839
  try {
49682
49840
  if (existsSync9(versionFile)) {
49683
- const lastVersion = readFileSync7(versionFile, "utf-8").trim();
49841
+ const lastVersion = readFileSync8(versionFile, "utf-8").trim();
49684
49842
  if (lastVersion === version2)
49685
49843
  return;
49686
49844
  }
49687
49845
  } catch {}
49688
- log2([`${FEATURE_MARKER} v${version2}:`, ...features.map((feature) => ` • ${feature}`)].join(`
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(`
49689
49854
  `));
49690
49855
  try {
49691
49856
  mkdirSync9(storageDir, { recursive: true });
@@ -52270,7 +52435,7 @@ function buildHintsFromConfig(config2, absentTools, hoistBuiltins) {
52270
52435
  toolSurface: config2.tool_surface ?? "recommended",
52271
52436
  hoistBuiltins,
52272
52437
  semanticEnabled: config2.semantic_search === true,
52273
- bashBackgroundEnabled: config2.experimental?.bash?.background === true,
52438
+ bashBackgroundEnabled: resolveBashConfig(config2).background,
52274
52439
  absentTools
52275
52440
  });
52276
52441
  }
@@ -52347,13 +52512,13 @@ var PLUGIN_VERSION = (() => {
52347
52512
  return "0.0.0";
52348
52513
  }
52349
52514
  })();
52350
- var ANNOUNCEMENT_VERSION = "0.27.0";
52515
+ var ANNOUNCEMENT_VERSION = "0.28.0";
52351
52516
  var ANNOUNCEMENT_FEATURES = [
52352
- "Storage moved to ~/.local/share/cortexkit/aft (~/Library/Application Support/cortexkit/aft on macOS, %APPDATA%/cortexkit/aft on Windows). Your existing data migrated automatically on first launch.",
52353
- "Bash output compression now reports token savings visible in /aft-status (Session + Project totals).",
52354
- "Seven new languages supported by aft_outline / aft_zoom / aft_search / ast_grep: Java, Ruby, Kotlin, Swift, PHP, Lua, Perl.",
52355
- "Join us on Discord: https://discord.gg/F2uWxjGnU"
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."
52356
52520
  ];
52521
+ var ANNOUNCEMENT_FOOTER = "Join us on Discord: https://discord.gg/F2uWxjGnU";
52357
52522
  var ALL_ONLY_TOOLS = new Set([
52358
52523
  "aft_navigate",
52359
52524
  "aft_delete",
@@ -52653,11 +52818,10 @@ ${lines}
52653
52818
  }
52654
52819
  })();
52655
52820
  if (ANNOUNCEMENT_VERSION && ANNOUNCEMENT_FEATURES.length > 0) {
52656
- sendFeatureAnnouncement(ANNOUNCEMENT_VERSION, ANNOUNCEMENT_FEATURES, storageDir);
52821
+ sendFeatureAnnouncement(ANNOUNCEMENT_VERSION, ANNOUNCEMENT_FEATURES, ANNOUNCEMENT_FOOTER, storageDir);
52657
52822
  }
52658
52823
  const surface = resolveToolSurface(config2);
52659
- const anyBashExperimental = config2.experimental?.bash?.rewrite === true || config2.experimental?.bash?.compress === true || config2.experimental?.bash?.background === true;
52660
- if (surface.hoistBash && anyBashExperimental) {
52824
+ if (surface.hoistBash && resolveBashConfig(config2).enabled) {
52661
52825
  registerBashTool(pi, ctx);
52662
52826
  }
52663
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;AAwBH,+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;AAkDD,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"}
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"}
@@ -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;CAC1C;AAED,eAAO,MAAM,aAAa,EAAE,SAAS,aAAa,EAoEjD,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
+ {"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"}
@@ -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,CA2BN"}
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"}
@@ -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;CACjC;AAqDD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAajD;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CA8DpF;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CA+D3E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAiEtE"}
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"}
@@ -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;AAG7C,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,CAQf;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"}
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.27.1",
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.27.1",
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.27.1",
33
- "@cortexkit/aft-darwin-x64": "0.27.1",
34
- "@cortexkit/aft-linux-arm64": "0.27.1",
35
- "@cortexkit/aft-linux-x64": "0.27.1",
36
- "@cortexkit/aft-win32-x64": "0.27.1"
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": "*",