@cortexkit/aft-pi 0.54.0 → 0.55.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bash-wait-detach.d.ts.map +1 -1
- package/dist/bg-notifications.d.ts +1 -0
- package/dist/bg-notifications.d.ts.map +1 -1
- package/dist/config.d.ts +11 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/index.js +503 -86
- package/dist/lsp-auto-install.d.ts.map +1 -1
- package/dist/lsp-cache.d.ts +9 -6
- package/dist/lsp-cache.d.ts.map +1 -1
- package/dist/tools/hoisted.d.ts.map +1 -1
- package/dist/tools/inspect.d.ts.map +1 -1
- package/dist/tools/semantic.d.ts.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bash-wait-detach.d.ts","sourceRoot":"","sources":["../src/bash-wait-detach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,KAAK,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;AAEzE,eAAO,MAAM,8BAA8B,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"bash-wait-detach.d.ts","sourceRoot":"","sources":["../src/bash-wait-detach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAM7C,KAAK,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;AAEzE,eAAO,MAAM,8BAA8B,YAAY,CAAC;AAcxD,4GAA4G;AAC5G,wBAAgB,6BAA6B,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAIzE;AAED,iFAAiF;AACjF,wBAAgB,iCAAiC,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAIjG;AAaD,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,gBAAgB,EACtB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,OAAO,CAAC,IAAI,CAAC,CAWf"}
|
|
@@ -175,6 +175,7 @@ export declare function handleSubcBgEventsNudge(drainContext: DrainContext & {
|
|
|
175
175
|
export declare function formatSystemReminder(completions: readonly BgCompletion[]): string;
|
|
176
176
|
export declare function formatLongRunningReminder(reminders: readonly BgLongRunningReminder[]): string;
|
|
177
177
|
export declare function formatPatternMatchReminder(matches: readonly PatternMatchEntry[]): string;
|
|
178
|
+
export declare function __setBgNotificationHopTimeoutForTests(timeoutMs: number): void;
|
|
178
179
|
export declare function __resetBgNotificationStateForTests(): void;
|
|
179
180
|
export declare function cleanupIdleSessionStates(now?: number): void;
|
|
180
181
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bg-notifications.d.ts","sourceRoot":"","sources":["../src/bg-notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,UAAU,EAEhB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAG3B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,eAAe,GAAG,WAAW,CAAC;IACvC,qFAAqF;IACrF,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;CACjC;AAED,KAAK,cAAc,GAAG;IACpB,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,kBAAkB,EAAE,YAAY,EAAE,CAAC;IACnC,kBAAkB,EAAE,qBAAqB,EAAE,CAAC;IAC5C,qBAAqB,EAAE,iBAAiB,EAAE,CAAC;IAC3C,oBAAoB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;IACrC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,wBAAwB,EAAE,MAAM,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,kBAAkB,EAAE,KAAK,CAAC;QAAE,UAAU,EAAE,YAAY,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5E;;;;OAIG;IACH,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC;;;;;;;;OAQG;IACH,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B;;;;;OAKG;IACH,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B;;;;;;;;OAQG;IACH,2BAA2B,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAUF,KAAK,WAAW,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAC1E,KAAK,YAAY,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AACtE,KAAK,YAAY,GAAG,WAAW,GAAG,YAAY,CAAC;AAC/C,KAAK,sBAAsB,GAAG;IAC5B,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5F,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAa,CAAC;AAGtE,eAAO,MAAM,4BAA4B,QAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"bg-notifications.d.ts","sourceRoot":"","sources":["../src/bg-notifications.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -27,6 +27,10 @@ export interface GhShimConfig {
|
|
|
27
27
|
/** User-tier AFT image used by the managed `gh` entry. Defaults to the running image. */
|
|
28
28
|
binary_path?: string;
|
|
29
29
|
}
|
|
30
|
+
export interface GhReadConfig {
|
|
31
|
+
/** User-tier operator opt-in for structured issue:// and pr:// reads. Default: false. */
|
|
32
|
+
enabled?: boolean;
|
|
33
|
+
}
|
|
30
34
|
export interface GitConfig {
|
|
31
35
|
/** "off" (default), "auto", or an explicit "Name <email>" identity. */
|
|
32
36
|
co_author?: string;
|
|
@@ -210,6 +214,7 @@ export interface AftConfig {
|
|
|
210
214
|
bridge?: BridgeConfig;
|
|
211
215
|
subc?: SubcConfig;
|
|
212
216
|
gh_shim?: GhShimConfig;
|
|
217
|
+
gh_read?: GhReadConfig;
|
|
213
218
|
git?: GitConfig;
|
|
214
219
|
/** Per-harness config overrides; nested harnesses are ignored. */
|
|
215
220
|
harnesses?: Record<string, Omit<AftConfig, "harnesses">>;
|
|
@@ -421,6 +426,9 @@ export declare const AftConfigSchema: z.ZodPreprocess<z.ZodObject<{
|
|
|
421
426
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
422
427
|
binary_path: z.ZodOptional<z.ZodString>;
|
|
423
428
|
}, z.core.$strip>>;
|
|
429
|
+
gh_read: z.ZodOptional<z.ZodObject<{
|
|
430
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
431
|
+
}, z.core.$strip>>;
|
|
424
432
|
git: z.ZodOptional<z.ZodObject<{
|
|
425
433
|
co_author: z.ZodOptional<z.ZodString>;
|
|
426
434
|
}, z.core.$strip>>;
|
|
@@ -586,6 +594,9 @@ export declare const AftConfigSchema: z.ZodPreprocess<z.ZodObject<{
|
|
|
586
594
|
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
587
595
|
binary_path: z.ZodOptional<z.ZodString>;
|
|
588
596
|
}, z.core.$strip>>;
|
|
597
|
+
gh_read: z.ZodOptional<z.ZodObject<{
|
|
598
|
+
enabled: z.ZodOptional<z.ZodBoolean>;
|
|
599
|
+
}, z.core.$strip>>;
|
|
589
600
|
git: z.ZodOptional<z.ZodObject<{
|
|
590
601
|
co_author: z.ZodOptional<z.ZodString>;
|
|
591
602
|
}, z.core.$strip>>;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8923,6 +8923,21 @@ class BinaryBridge {
|
|
|
8923
8923
|
}
|
|
8924
8924
|
return this.sendWithVersionMismatchRetry(command, dispatchParams, options, true);
|
|
8925
8925
|
}
|
|
8926
|
+
listenForRequestAbort(requestId, signal) {
|
|
8927
|
+
if (!signal)
|
|
8928
|
+
return () => {};
|
|
8929
|
+
let fired = false;
|
|
8930
|
+
const onAbort = () => {
|
|
8931
|
+
if (fired)
|
|
8932
|
+
return;
|
|
8933
|
+
fired = true;
|
|
8934
|
+
this.send("cancel_request", { id: requestId }, { keepBridgeOnTimeout: true }).catch(() => {});
|
|
8935
|
+
};
|
|
8936
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
8937
|
+
if (signal.aborted)
|
|
8938
|
+
onAbort();
|
|
8939
|
+
return () => signal.removeEventListener("abort", onAbort);
|
|
8940
|
+
}
|
|
8926
8941
|
async toolCall(sessionId, name, rawArgs = {}, options) {
|
|
8927
8942
|
const params = { name, arguments: rawArgs };
|
|
8928
8943
|
if (sessionId)
|
|
@@ -8945,7 +8960,7 @@ class BinaryBridge {
|
|
|
8945
8960
|
if (this._shuttingDown) {
|
|
8946
8961
|
throw new BridgeTransportUnavailableError(`${this.errorPrefix} Bridge is shutting down, cannot send "${command}"`);
|
|
8947
8962
|
}
|
|
8948
|
-
if (Object.hasOwn(params, "id")) {
|
|
8963
|
+
if (Object.hasOwn(params, "id") && command !== "cancel_request") {
|
|
8949
8964
|
throw new Error("params cannot contain reserved key 'id'");
|
|
8950
8965
|
}
|
|
8951
8966
|
const requestSessionId = typeof params.session_id === "string" && params.session_id.length > 0 ? params.session_id : undefined;
|
|
@@ -8999,7 +9014,7 @@ class BinaryBridge {
|
|
|
8999
9014
|
}
|
|
9000
9015
|
const id = String(this.nextId++);
|
|
9001
9016
|
let request;
|
|
9002
|
-
if (Object.hasOwn(params, "command") || Object.hasOwn(params, "method")) {
|
|
9017
|
+
if (command === "cancel_request" || Object.hasOwn(params, "command") || Object.hasOwn(params, "method")) {
|
|
9003
9018
|
const nested = { ...params };
|
|
9004
9019
|
const reserved = {};
|
|
9005
9020
|
for (const key of ["session_id", "lsp_hints"]) {
|
|
@@ -9019,11 +9034,12 @@ class BinaryBridge {
|
|
|
9019
9034
|
const child = this.process;
|
|
9020
9035
|
const response = await new Promise((resolve3, reject) => {
|
|
9021
9036
|
const timer = setTimeout(() => {
|
|
9022
|
-
const
|
|
9023
|
-
if (!
|
|
9037
|
+
const entry2 = this.pending.get(id);
|
|
9038
|
+
if (!entry2)
|
|
9024
9039
|
return;
|
|
9025
9040
|
this.pending.delete(id);
|
|
9026
|
-
clearTimeout(
|
|
9041
|
+
clearTimeout(entry2.timer);
|
|
9042
|
+
entry2.onSettled?.();
|
|
9027
9043
|
if (keepBridgeOnTimeout) {
|
|
9028
9044
|
const timeoutMsg2 = `Request "${command}" (id=${id}) timed out after ${effectiveTimeoutMs}ms`;
|
|
9029
9045
|
if (requestSessionId) {
|
|
@@ -9031,7 +9047,7 @@ class BinaryBridge {
|
|
|
9031
9047
|
} else {
|
|
9032
9048
|
this.warnVia(timeoutMsg2);
|
|
9033
9049
|
}
|
|
9034
|
-
|
|
9050
|
+
entry2.reject(new BridgeTransportTimeoutError(command, effectiveTimeoutMs, `${this.errorPrefix} Request "${command}" (id=${id}) timed out after ${effectiveTimeoutMs}ms`));
|
|
9035
9051
|
return;
|
|
9036
9052
|
}
|
|
9037
9053
|
const childActiveSinceRequest = this.lastChildActivityAt > requestSentAt;
|
|
@@ -9046,13 +9062,20 @@ class BinaryBridge {
|
|
|
9046
9062
|
this.warnVia(timeoutMsg);
|
|
9047
9063
|
}
|
|
9048
9064
|
if (keepWarm) {
|
|
9049
|
-
|
|
9065
|
+
entry2.reject(new Error(`${this.errorPrefix} request "${command}" timed out after ${effectiveTimeoutMs}ms (bridge busy/under load); bridge kept warm — retry`));
|
|
9050
9066
|
return;
|
|
9051
9067
|
}
|
|
9052
|
-
|
|
9068
|
+
entry2.reject(new Error(`${this.errorPrefix} Request "${command}" (id=${id}) timed out after ${effectiveTimeoutMs}ms`));
|
|
9053
9069
|
this.handleTimeout(requestSessionId);
|
|
9054
9070
|
}, effectiveTimeoutMs);
|
|
9055
|
-
|
|
9071
|
+
const entry = {
|
|
9072
|
+
resolve: resolve3,
|
|
9073
|
+
reject,
|
|
9074
|
+
timer,
|
|
9075
|
+
onProgress: options?.onProgress,
|
|
9076
|
+
command
|
|
9077
|
+
};
|
|
9078
|
+
this.pending.set(id, entry);
|
|
9056
9079
|
if (!child?.stdin?.writable) {
|
|
9057
9080
|
this.pending.delete(id);
|
|
9058
9081
|
clearTimeout(timer);
|
|
@@ -9066,11 +9089,12 @@ class BinaryBridge {
|
|
|
9066
9089
|
const handleWriteFailure = (cause) => {
|
|
9067
9090
|
const writeError = cause instanceof Error ? cause : new Error(String(cause));
|
|
9068
9091
|
const error2 = new BridgeTransportUnknownOutcomeError(`${this.errorPrefix} Failed to write to stdin: ${writeError.message}`, { cause: writeError });
|
|
9069
|
-
const
|
|
9070
|
-
if (
|
|
9092
|
+
const entry2 = this.pending.get(id);
|
|
9093
|
+
if (entry2) {
|
|
9071
9094
|
this.pending.delete(id);
|
|
9072
|
-
clearTimeout(
|
|
9073
|
-
|
|
9095
|
+
clearTimeout(entry2.timer);
|
|
9096
|
+
entry2.onSettled?.();
|
|
9097
|
+
entry2.reject(error2);
|
|
9074
9098
|
}
|
|
9075
9099
|
if (this.process === child)
|
|
9076
9100
|
this.invalidateTransportProcess(error2);
|
|
@@ -9083,6 +9107,9 @@ class BinaryBridge {
|
|
|
9083
9107
|
} catch (err) {
|
|
9084
9108
|
handleWriteFailure(err);
|
|
9085
9109
|
}
|
|
9110
|
+
if (this.pending.has(id)) {
|
|
9111
|
+
entry.onSettled = this.listenForRequestAbort(id, options?.abortSignal);
|
|
9112
|
+
}
|
|
9086
9113
|
});
|
|
9087
9114
|
if (command === "configure" && response.success === true && options?.markConfiguredOnSuccess !== false) {
|
|
9088
9115
|
this.configured = true;
|
|
@@ -9451,6 +9478,7 @@ class BinaryBridge {
|
|
|
9451
9478
|
if (requestId && entry) {
|
|
9452
9479
|
this.pending.delete(requestId);
|
|
9453
9480
|
clearTimeout(entry.timer);
|
|
9481
|
+
entry.onSettled?.();
|
|
9454
9482
|
entry.resolve({
|
|
9455
9483
|
success: false,
|
|
9456
9484
|
code: "permission_required",
|
|
@@ -9492,6 +9520,7 @@ class BinaryBridge {
|
|
|
9492
9520
|
return;
|
|
9493
9521
|
this.pending.delete(id);
|
|
9494
9522
|
clearTimeout(entry.timer);
|
|
9523
|
+
entry.onSettled?.();
|
|
9495
9524
|
this.consecutiveRequestTimeouts = 0;
|
|
9496
9525
|
this.scheduleRestartCountReset();
|
|
9497
9526
|
this.accountForBashTaskResponse(entry.command, response);
|
|
@@ -9582,6 +9611,7 @@ class BinaryBridge {
|
|
|
9582
9611
|
rejectAllPending(error2) {
|
|
9583
9612
|
for (const [_id, entry] of this.pending) {
|
|
9584
9613
|
clearTimeout(entry.timer);
|
|
9614
|
+
entry.onSettled?.();
|
|
9585
9615
|
entry.reject(error2);
|
|
9586
9616
|
}
|
|
9587
9617
|
this.pending.clear();
|
|
@@ -14686,6 +14716,7 @@ async function ensureStorageMigrated(opts) {
|
|
|
14686
14716
|
throw new Error(`AFT storage migration failed (${detail}). ` + `Harness: ${opts.harness}. Legacy: ${legacyRoot}. Target: ${newRoot}. ` + `See log: ${logPath}. ` + `Plugin load aborted to prevent legacy/new state divergence.` + (stderrTail ? ` Stderr tail: ${stderrTail}` : "") + (stdoutTail ? ` Stdout tail: ${stdoutTail}` : ""));
|
|
14687
14717
|
}
|
|
14688
14718
|
// ../aft-bridge/dist/npm-resolver.js
|
|
14719
|
+
import { spawn as spawn3, spawnSync as spawnSync3 } from "node:child_process";
|
|
14689
14720
|
import { readdirSync as readdirSync2, statSync as statSync5 } from "node:fs";
|
|
14690
14721
|
import { homedir as homedir9 } from "node:os";
|
|
14691
14722
|
import { delimiter as delimiter2, dirname as dirname4, isAbsolute as isAbsolute3, join as join10 } from "node:path";
|
|
@@ -14792,6 +14823,189 @@ function resolveNpm(deps = defaultDeps()) {
|
|
|
14792
14823
|
}
|
|
14793
14824
|
return null;
|
|
14794
14825
|
}
|
|
14826
|
+
function quoteCmdArgument(value) {
|
|
14827
|
+
if (/[\0\r\n"%]/.test(value)) {
|
|
14828
|
+
throw new Error(`npm argument cannot be represented safely for cmd.exe: ${JSON.stringify(value)}`);
|
|
14829
|
+
}
|
|
14830
|
+
return `"${value}"`;
|
|
14831
|
+
}
|
|
14832
|
+
function npmInvocation(resolved, npmArgs, platform = process.platform, env = process.env) {
|
|
14833
|
+
if (platform !== "win32" || !/\.(?:cmd|bat)$/i.test(resolved.command)) {
|
|
14834
|
+
return { command: resolved.command, args: [...npmArgs] };
|
|
14835
|
+
}
|
|
14836
|
+
if (/[\0\r\n"]/.test(resolved.command)) {
|
|
14837
|
+
throw new Error(`npm command cannot be represented safely for cmd.exe: ${JSON.stringify(resolved.command)}`);
|
|
14838
|
+
}
|
|
14839
|
+
const commandEnvName = "AFT_NPM_COMMAND";
|
|
14840
|
+
const quotedArgs = npmArgs.map(quoteCmdArgument);
|
|
14841
|
+
const commandLine = `""%${commandEnvName}%"${quotedArgs.length > 0 ? ` ${quotedArgs.join(" ")}` : ""}"`;
|
|
14842
|
+
return {
|
|
14843
|
+
command: env.ComSpec ?? env.COMSPEC ?? "cmd.exe",
|
|
14844
|
+
args: ["/d", "/s", "/v:off", "/c", commandLine],
|
|
14845
|
+
env: { [commandEnvName]: resolved.command },
|
|
14846
|
+
windowsVerbatimArguments: true,
|
|
14847
|
+
windowsCmdShim: true
|
|
14848
|
+
};
|
|
14849
|
+
}
|
|
14850
|
+
|
|
14851
|
+
class NpmTerminationUnknownError extends Error {
|
|
14852
|
+
code = "npm_termination_unknown";
|
|
14853
|
+
constructor(detail) {
|
|
14854
|
+
super(`npm process-tree termination could not be confirmed: ${detail}`);
|
|
14855
|
+
this.name = "NpmTerminationUnknownError";
|
|
14856
|
+
}
|
|
14857
|
+
}
|
|
14858
|
+
function terminateDirectNpmChild(child, gracePeriodMs) {
|
|
14859
|
+
if (child.exitCode !== null || child.signalCode !== null)
|
|
14860
|
+
return Promise.resolve();
|
|
14861
|
+
return new Promise((resolve7, reject) => {
|
|
14862
|
+
let settled = false;
|
|
14863
|
+
let forceTimer = null;
|
|
14864
|
+
let confirmationTimer = null;
|
|
14865
|
+
let signalFailure = null;
|
|
14866
|
+
const cleanup = () => {
|
|
14867
|
+
if (forceTimer)
|
|
14868
|
+
clearTimeout(forceTimer);
|
|
14869
|
+
if (confirmationTimer)
|
|
14870
|
+
clearTimeout(confirmationTimer);
|
|
14871
|
+
child.removeListener("exit", finish);
|
|
14872
|
+
child.removeListener("error", onChildError);
|
|
14873
|
+
};
|
|
14874
|
+
const finish = () => {
|
|
14875
|
+
if (settled)
|
|
14876
|
+
return;
|
|
14877
|
+
settled = true;
|
|
14878
|
+
cleanup();
|
|
14879
|
+
resolve7();
|
|
14880
|
+
};
|
|
14881
|
+
const fail = () => {
|
|
14882
|
+
if (settled)
|
|
14883
|
+
return;
|
|
14884
|
+
if (child.exitCode !== null || child.signalCode !== null) {
|
|
14885
|
+
finish();
|
|
14886
|
+
return;
|
|
14887
|
+
}
|
|
14888
|
+
settled = true;
|
|
14889
|
+
cleanup();
|
|
14890
|
+
reject(new NpmTerminationUnknownError(signalFailure ?? `direct npm child did not exit after SIGKILL within ${gracePeriodMs}ms`));
|
|
14891
|
+
};
|
|
14892
|
+
const onChildError = (error2) => {
|
|
14893
|
+
signalFailure = `direct npm child error during termination: ${String(error2)}`;
|
|
14894
|
+
};
|
|
14895
|
+
const signal = (value) => {
|
|
14896
|
+
try {
|
|
14897
|
+
if (!child.kill(value)) {
|
|
14898
|
+
signalFailure = `direct npm child rejected ${value ?? "SIGTERM"}`;
|
|
14899
|
+
}
|
|
14900
|
+
} catch (error2) {
|
|
14901
|
+
signalFailure = `direct npm child ${value ?? "SIGTERM"} failed: ${String(error2)}`;
|
|
14902
|
+
}
|
|
14903
|
+
};
|
|
14904
|
+
child.once("exit", finish);
|
|
14905
|
+
child.on("error", onChildError);
|
|
14906
|
+
forceTimer = setTimeout(() => {
|
|
14907
|
+
signal("SIGKILL");
|
|
14908
|
+
confirmationTimer = setTimeout(fail, gracePeriodMs);
|
|
14909
|
+
}, gracePeriodMs);
|
|
14910
|
+
signal();
|
|
14911
|
+
if (child.exitCode !== null || child.signalCode !== null)
|
|
14912
|
+
finish();
|
|
14913
|
+
});
|
|
14914
|
+
}
|
|
14915
|
+
function terminateNpmProcessTree(child, invocation, env = process.env, gracePeriodMs = 5000) {
|
|
14916
|
+
if (!invocation.windowsCmdShim)
|
|
14917
|
+
return terminateDirectNpmChild(child, gracePeriodMs);
|
|
14918
|
+
const exitedSuccessfully = () => child.exitCode === 0 && child.signalCode === null;
|
|
14919
|
+
if (exitedSuccessfully())
|
|
14920
|
+
return Promise.resolve();
|
|
14921
|
+
if (child.pid === undefined) {
|
|
14922
|
+
return Promise.reject(new NpmTerminationUnknownError("cmd.exe child has no process ID"));
|
|
14923
|
+
}
|
|
14924
|
+
return new Promise((resolve7, reject) => {
|
|
14925
|
+
let settled = false;
|
|
14926
|
+
let childExited = child.exitCode !== null || child.signalCode !== null;
|
|
14927
|
+
let treeKillConfirmed = false;
|
|
14928
|
+
let treeKillFailure = null;
|
|
14929
|
+
let killer = null;
|
|
14930
|
+
const timeout = setTimeout(() => {
|
|
14931
|
+
try {
|
|
14932
|
+
killer?.kill();
|
|
14933
|
+
} catch {}
|
|
14934
|
+
if (treeKillConfirmed || exitedSuccessfully()) {
|
|
14935
|
+
settled = true;
|
|
14936
|
+
cleanup();
|
|
14937
|
+
resolve7();
|
|
14938
|
+
return;
|
|
14939
|
+
}
|
|
14940
|
+
fail(treeKillFailure ?? `taskkill.exe did not finish within ${gracePeriodMs}ms`);
|
|
14941
|
+
}, gracePeriodMs);
|
|
14942
|
+
const cleanup = () => {
|
|
14943
|
+
clearTimeout(timeout);
|
|
14944
|
+
child.removeListener("exit", onChildExit);
|
|
14945
|
+
};
|
|
14946
|
+
const succeedIfConfirmed = () => {
|
|
14947
|
+
if (settled || !childExited || !treeKillConfirmed)
|
|
14948
|
+
return;
|
|
14949
|
+
settled = true;
|
|
14950
|
+
cleanup();
|
|
14951
|
+
resolve7();
|
|
14952
|
+
};
|
|
14953
|
+
const fail = (detail) => {
|
|
14954
|
+
if (settled)
|
|
14955
|
+
return;
|
|
14956
|
+
settled = true;
|
|
14957
|
+
cleanup();
|
|
14958
|
+
reject(new NpmTerminationUnknownError(detail));
|
|
14959
|
+
};
|
|
14960
|
+
function onChildExit() {
|
|
14961
|
+
childExited = true;
|
|
14962
|
+
if (treeKillFailure !== null) {
|
|
14963
|
+
if (exitedSuccessfully()) {
|
|
14964
|
+
settled = true;
|
|
14965
|
+
cleanup();
|
|
14966
|
+
resolve7();
|
|
14967
|
+
} else {
|
|
14968
|
+
fail(treeKillFailure);
|
|
14969
|
+
}
|
|
14970
|
+
return;
|
|
14971
|
+
}
|
|
14972
|
+
succeedIfConfirmed();
|
|
14973
|
+
}
|
|
14974
|
+
const recordTreeKillFailure = (detail) => {
|
|
14975
|
+
if (settled)
|
|
14976
|
+
return;
|
|
14977
|
+
if (exitedSuccessfully()) {
|
|
14978
|
+
settled = true;
|
|
14979
|
+
cleanup();
|
|
14980
|
+
resolve7();
|
|
14981
|
+
return;
|
|
14982
|
+
}
|
|
14983
|
+
treeKillFailure = detail;
|
|
14984
|
+
if (childExited)
|
|
14985
|
+
fail(detail);
|
|
14986
|
+
};
|
|
14987
|
+
child.once("exit", onChildExit);
|
|
14988
|
+
const systemRoot = env.SystemRoot ?? env.SYSTEMROOT;
|
|
14989
|
+
const taskkill = systemRoot ? join10(systemRoot, "System32", "taskkill.exe") : "taskkill.exe";
|
|
14990
|
+
try {
|
|
14991
|
+
killer = spawn3(taskkill, ["/pid", String(child.pid), "/t", "/f"], {
|
|
14992
|
+
stdio: "ignore",
|
|
14993
|
+
windowsHide: true
|
|
14994
|
+
});
|
|
14995
|
+
killer.once("error", (error2) => recordTreeKillFailure(`taskkill.exe failed to start: ${String(error2)}`));
|
|
14996
|
+
killer.once("exit", (code) => {
|
|
14997
|
+
if (code !== 0) {
|
|
14998
|
+
recordTreeKillFailure(`taskkill.exe exited with code ${code ?? "unknown"}`);
|
|
14999
|
+
return;
|
|
15000
|
+
}
|
|
15001
|
+
treeKillConfirmed = true;
|
|
15002
|
+
succeedIfConfirmed();
|
|
15003
|
+
});
|
|
15004
|
+
} catch (error2) {
|
|
15005
|
+
recordTreeKillFailure(`taskkill.exe failed to start: ${String(error2)}`);
|
|
15006
|
+
}
|
|
15007
|
+
});
|
|
15008
|
+
}
|
|
14795
15009
|
function npmSpawnEnv(resolved, baseEnv = process.env) {
|
|
14796
15010
|
if (!resolved.binDir)
|
|
14797
15011
|
return { ...baseEnv };
|
|
@@ -15538,6 +15752,10 @@ function pathValue(record, property) {
|
|
|
15538
15752
|
return value;
|
|
15539
15753
|
}
|
|
15540
15754
|
function normalizeAliasPair(record, canonical, legacy, required) {
|
|
15755
|
+
if (isNullOrEmptyString(record[canonical]))
|
|
15756
|
+
delete record[canonical];
|
|
15757
|
+
if (isNullOrEmptyString(record[legacy]))
|
|
15758
|
+
delete record[legacy];
|
|
15541
15759
|
const hasCanonical = hasOwn(record, canonical);
|
|
15542
15760
|
const hasLegacy = hasOwn(record, legacy);
|
|
15543
15761
|
if (!hasCanonical && !hasLegacy) {
|
|
@@ -15569,8 +15787,13 @@ function normalizeAliasPair(record, canonical, legacy, required) {
|
|
|
15569
15787
|
delete record[legacy];
|
|
15570
15788
|
}
|
|
15571
15789
|
function validateOptionalCanonicalPath(record, property) {
|
|
15572
|
-
if (hasOwn(record, property))
|
|
15573
|
-
|
|
15790
|
+
if (!hasOwn(record, property))
|
|
15791
|
+
return;
|
|
15792
|
+
if (isNullOrEmptyString(record[property])) {
|
|
15793
|
+
delete record[property];
|
|
15794
|
+
return;
|
|
15795
|
+
}
|
|
15796
|
+
pathValue(record, property);
|
|
15574
15797
|
}
|
|
15575
15798
|
function normalizeZoomTargets(record) {
|
|
15576
15799
|
if (!hasOwn(record, "targets"))
|
|
@@ -15726,6 +15949,10 @@ function prepareCanonicalEditArguments(toolName, rawArguments) {
|
|
|
15726
15949
|
return record;
|
|
15727
15950
|
}
|
|
15728
15951
|
function normalizeEditPathAlias(record) {
|
|
15952
|
+
if (isNullOrEmptyString(record.path))
|
|
15953
|
+
delete record.path;
|
|
15954
|
+
if (isNullOrEmptyString(record.filePath))
|
|
15955
|
+
delete record.filePath;
|
|
15729
15956
|
const hasCanonical = hasOwn(record, "path");
|
|
15730
15957
|
const hasLegacy = hasOwn(record, "filePath");
|
|
15731
15958
|
if (!hasCanonical && !hasLegacy)
|
|
@@ -15751,7 +15978,7 @@ function normalizeEditPathAlias(record) {
|
|
|
15751
15978
|
}
|
|
15752
15979
|
}
|
|
15753
15980
|
function validateEditPath(record) {
|
|
15754
|
-
if (!hasOwn(record, "path")) {
|
|
15981
|
+
if (!hasOwn(record, "path") || isNullOrEmptyString(record.path)) {
|
|
15755
15982
|
throw new InvalidRequestError("'path' is required");
|
|
15756
15983
|
}
|
|
15757
15984
|
pathValue(record, "path");
|
|
@@ -15812,10 +16039,13 @@ function isEditSentinelItem(item) {
|
|
|
15812
16039
|
if (record.oldString === null && ["startLine", "endLine"].some((key) => hasOwn(record, key) && record[key] !== null)) {
|
|
15813
16040
|
return false;
|
|
15814
16041
|
}
|
|
15815
|
-
|
|
15816
|
-
|
|
15817
|
-
|
|
15818
|
-
return
|
|
16042
|
+
return (!hasOwn(record, "newString") || isNullOrEmptyString(record.newString)) && (!hasOwn(record, "content") || isNullOrEmptyString(record.content)) && (!hasOwn(record, "replaceAll") || record.replaceAll === null || record.replaceAll === false) && isDefaultOccurrence(record.occurrence);
|
|
16043
|
+
}
|
|
16044
|
+
function hasMeaningfulFindPayload(item) {
|
|
16045
|
+
return isNonEmptyString(item.oldString);
|
|
16046
|
+
}
|
|
16047
|
+
function isDefaultOccurrence(value) {
|
|
16048
|
+
return value === undefined || value === null || value === 1;
|
|
15819
16049
|
}
|
|
15820
16050
|
function normalizeEditArraySentinels(record) {
|
|
15821
16051
|
const value = record.edits;
|
|
@@ -15868,8 +16098,8 @@ function parseEditArray(value) {
|
|
|
15868
16098
|
}
|
|
15869
16099
|
return value;
|
|
15870
16100
|
}
|
|
15871
|
-
function
|
|
15872
|
-
const
|
|
16101
|
+
function normalizeEditItemSentinels(item) {
|
|
16102
|
+
const hadRangeFields = ["startLine", "endLine", "content"].some((key) => hasOwn(item, key));
|
|
15873
16103
|
for (const key of [
|
|
15874
16104
|
"oldString",
|
|
15875
16105
|
"newString",
|
|
@@ -15882,7 +16112,19 @@ function stripLineRangeSentinels(item) {
|
|
|
15882
16112
|
if (item[key] === null)
|
|
15883
16113
|
delete item[key];
|
|
15884
16114
|
}
|
|
15885
|
-
|
|
16115
|
+
const contentIsEmpty = item.content === "";
|
|
16116
|
+
if (hasMeaningfulFindPayload(item) && (!hasOwn(item, "content") || contentIsEmpty)) {
|
|
16117
|
+
for (const key of ["startLine", "endLine", "content"])
|
|
16118
|
+
delete item[key];
|
|
16119
|
+
if (hadRangeFields) {
|
|
16120
|
+
if (item.replaceAll === false)
|
|
16121
|
+
delete item.replaceAll;
|
|
16122
|
+
if (hasOwn(item, "occurrence") && isDefaultOccurrence(item.occurrence))
|
|
16123
|
+
delete item.occurrence;
|
|
16124
|
+
}
|
|
16125
|
+
return;
|
|
16126
|
+
}
|
|
16127
|
+
if (!isNonEmptyString(item.content))
|
|
15886
16128
|
return;
|
|
15887
16129
|
if (item.oldString === "")
|
|
15888
16130
|
delete item.oldString;
|
|
@@ -15890,7 +16132,7 @@ function stripLineRangeSentinels(item) {
|
|
|
15890
16132
|
delete item.newString;
|
|
15891
16133
|
if (item.replaceAll === false)
|
|
15892
16134
|
delete item.replaceAll;
|
|
15893
|
-
if (item
|
|
16135
|
+
if (hasOwn(item, "occurrence") && isDefaultOccurrence(item.occurrence))
|
|
15894
16136
|
delete item.occurrence;
|
|
15895
16137
|
}
|
|
15896
16138
|
function normalizeEditItem(value, index) {
|
|
@@ -15901,7 +16143,7 @@ function normalizeEditItem(value, index) {
|
|
|
15901
16143
|
const item = copyOwnProperties(source);
|
|
15902
16144
|
normalizeItemAlias(item, "oldString", "oldText");
|
|
15903
16145
|
normalizeItemAlias(item, "newString", "newText");
|
|
15904
|
-
|
|
16146
|
+
normalizeEditItemSentinels(item);
|
|
15905
16147
|
const hasFindField = ["oldString", "newString", "replaceAll", "occurrence"].some((key) => hasOwn(item, key));
|
|
15906
16148
|
const hasRangeField = ["startLine", "endLine", "content"].some((key) => hasOwn(item, key));
|
|
15907
16149
|
if (hasFindField && hasRangeField) {
|
|
@@ -16789,6 +17031,8 @@ var UNKNOWN_COMPLETION_CAP = 32;
|
|
|
16789
17031
|
var DEFAULT_SESSION_ID2 = "__default__";
|
|
16790
17032
|
var LOG_PREFIX = "[aft-pi] bg-notifications:";
|
|
16791
17033
|
var SUBC_NUDGE_LOG_INTERVAL_MS = 60000;
|
|
17034
|
+
var DEFAULT_BG_HOP_TIMEOUT_MS = 15000;
|
|
17035
|
+
var bgHopTimeoutMs = DEFAULT_BG_HOP_TIMEOUT_MS;
|
|
16792
17036
|
var subcNudgesInFlight = new Map;
|
|
16793
17037
|
var subcNudgeLogState = new Map;
|
|
16794
17038
|
function normalizeSessionID(sessionID) {
|
|
@@ -17012,11 +17256,21 @@ function handleSubcBgEventsNudge(drainContext) {
|
|
|
17012
17256
|
}
|
|
17013
17257
|
async function handleSubcBgEventsNudgeOnce(drainContext) {
|
|
17014
17258
|
bridgeForDrain(drainContext);
|
|
17015
|
-
stateFor(drainContext.sessionID)
|
|
17259
|
+
const state = stateFor(drainContext.sessionID);
|
|
17260
|
+
state.wakeDeferredTaskIds.clear();
|
|
17261
|
+
rearmHardStoppedWake(state, drainContext);
|
|
17016
17262
|
await triggerWakeIfPending(drainContext, false, true, true);
|
|
17017
17263
|
}
|
|
17018
17264
|
function logSubcNudgeLifecycle(drainContext, kind, message) {
|
|
17019
|
-
|
|
17265
|
+
logDeliveryHop(drainContext, kind, message, {
|
|
17266
|
+
event: "subc_bg_nudge_delivery",
|
|
17267
|
+
cause: kind
|
|
17268
|
+
});
|
|
17269
|
+
}
|
|
17270
|
+
function logDeliveryHop(drainContext, kind, message, data, level = "info") {
|
|
17271
|
+
const sessionID = normalizeSessionID(drainContext.sessionID);
|
|
17272
|
+
const taskKey = typeof data.task_id === "string" ? data.task_id : Array.isArray(data.task_ids) ? data.task_ids.join(",") : "";
|
|
17273
|
+
const key = `${kind}\x00${taskKey}\x00${drainContext.directory}\x00${sessionID}`;
|
|
17020
17274
|
const now = Date.now();
|
|
17021
17275
|
const state = subcNudgeLogState.get(key);
|
|
17022
17276
|
if (state && now - state.lastEmittedAt < SUBC_NUDGE_LOG_INTERVAL_MS) {
|
|
@@ -17025,13 +17279,48 @@ function logSubcNudgeLifecycle(drainContext, kind, message) {
|
|
|
17025
17279
|
}
|
|
17026
17280
|
const suppressed = state?.suppressed ?? 0;
|
|
17027
17281
|
subcNudgeLogState.set(key, { lastEmittedAt: now, suppressed: 0 });
|
|
17028
|
-
|
|
17029
|
-
|
|
17030
|
-
cause: kind,
|
|
17282
|
+
const payload = {
|
|
17283
|
+
...data,
|
|
17031
17284
|
canonical_root: drainContext.directory,
|
|
17032
17285
|
suppressed
|
|
17286
|
+
};
|
|
17287
|
+
if (level === "warn") {
|
|
17288
|
+
sessionWarn(sessionID, `${LOG_PREFIX} ${message}`, payload);
|
|
17289
|
+
} else {
|
|
17290
|
+
sessionLog(sessionID, `${LOG_PREFIX} ${message}`, payload);
|
|
17291
|
+
}
|
|
17292
|
+
}
|
|
17293
|
+
function logPerTaskDeliveryHop(drainContext, kind, message, taskIDs, data, level = "info") {
|
|
17294
|
+
for (const taskID of taskIDs) {
|
|
17295
|
+
logDeliveryHop(drainContext, kind, message, { ...data, task_id: taskID, task_ids: taskIDs }, level);
|
|
17296
|
+
}
|
|
17297
|
+
}
|
|
17298
|
+
function rearmHardStoppedWake(state, drainContext) {
|
|
17299
|
+
if (!state.wakeHardStopped)
|
|
17300
|
+
return;
|
|
17301
|
+
state.wakeHardStopped = false;
|
|
17302
|
+
state.wakeRetryAttempts = 0;
|
|
17303
|
+
state.retryDelayMs = null;
|
|
17304
|
+
logDeliveryHop(drainContext, "inject-rearmed", "delivery retry re-armed", {
|
|
17305
|
+
event: "bash_completion_inject_rearmed",
|
|
17306
|
+
task_ids: state.pendingCompletions.map((completion) => completion.task_id)
|
|
17033
17307
|
});
|
|
17034
17308
|
}
|
|
17309
|
+
async function withBgHopTimeout(operation, label) {
|
|
17310
|
+
let timer;
|
|
17311
|
+
try {
|
|
17312
|
+
return await Promise.race([
|
|
17313
|
+
operation,
|
|
17314
|
+
new Promise((_, reject) => {
|
|
17315
|
+
timer = setTimeout(() => reject(new Error(`${label} timed out after ${bgHopTimeoutMs}ms`)), bgHopTimeoutMs);
|
|
17316
|
+
timer.unref?.();
|
|
17317
|
+
})
|
|
17318
|
+
]);
|
|
17319
|
+
} finally {
|
|
17320
|
+
if (timer)
|
|
17321
|
+
clearTimeout(timer);
|
|
17322
|
+
}
|
|
17323
|
+
}
|
|
17035
17324
|
async function triggerWakeIfPending(drainContext, skipDrain, includeDeferredCompletions = true, forceDrain = false) {
|
|
17036
17325
|
const state = stateFor(drainContext.sessionID);
|
|
17037
17326
|
if (!skipDrain && (forceDrain || state.outstandingTaskIds.size > 0 || !state.forcedDrainCompleted)) {
|
|
@@ -17041,8 +17330,25 @@ async function triggerWakeIfPending(drainContext, skipDrain, includeDeferredComp
|
|
|
17041
17330
|
if (!hasWakeEligiblePending(state, includeDeferredCompletions))
|
|
17042
17331
|
return;
|
|
17043
17332
|
scheduleWake(state, async (reminder, deliveredCompletions) => {
|
|
17044
|
-
drainContext.runtime.sendUserMessage(reminder, { deliverAs: "steer" });
|
|
17045
17333
|
const ackTargetIds = deliveredCompletions.map((completion) => completion.task_id);
|
|
17334
|
+
logPerTaskDeliveryHop(drainContext, "inject-start", "session inject start", ackTargetIds, {
|
|
17335
|
+
event: "bash_completion_wake_send_user_message_start",
|
|
17336
|
+
attempt: state.wakeRetryAttempts + 1
|
|
17337
|
+
});
|
|
17338
|
+
try {
|
|
17339
|
+
drainContext.runtime.sendUserMessage(reminder, { deliverAs: "steer" });
|
|
17340
|
+
} catch (err) {
|
|
17341
|
+
logPerTaskDeliveryHop(drainContext, "inject-error", "session inject failed", ackTargetIds, {
|
|
17342
|
+
event: "bash_completion_wake_send_user_message_error",
|
|
17343
|
+
attempt: state.wakeRetryAttempts + 1,
|
|
17344
|
+
cause: err instanceof Error ? err.message : String(err)
|
|
17345
|
+
}, "warn");
|
|
17346
|
+
throw err;
|
|
17347
|
+
}
|
|
17348
|
+
logPerTaskDeliveryHop(drainContext, "inject-ok", "session inject ok", ackTargetIds, {
|
|
17349
|
+
event: "bash_completion_wake_send_user_message_ok",
|
|
17350
|
+
attempt: state.wakeRetryAttempts + 1
|
|
17351
|
+
});
|
|
17046
17352
|
markDeliveredAwaitingAck(state, ackTargetIds);
|
|
17047
17353
|
const acked = await ackCompletions(drainContext, deliveredCompletions);
|
|
17048
17354
|
if (acked)
|
|
@@ -17058,7 +17364,12 @@ async function triggerWakeIfPending(drainContext, skipDrain, includeDeferredComp
|
|
|
17058
17364
|
});
|
|
17059
17365
|
return;
|
|
17060
17366
|
}
|
|
17061
|
-
|
|
17367
|
+
if (hardStopped) {
|
|
17368
|
+
logDeliveryHop(drainContext, "inject-hard-stopped", "delivery retries paused", {
|
|
17369
|
+
event: "bash_completion_inject_hard_stopped",
|
|
17370
|
+
cause: err instanceof Error ? err.message : String(err)
|
|
17371
|
+
});
|
|
17372
|
+
}
|
|
17062
17373
|
}, includeDeferredCompletions);
|
|
17063
17374
|
}
|
|
17064
17375
|
function formatSystemReminder(completions) {
|
|
@@ -17128,12 +17439,21 @@ async function drainCompletions(drainContext) {
|
|
|
17128
17439
|
const bridge = bridgeForDrain(drainContext);
|
|
17129
17440
|
const state = stateFor(drainContext.sessionID);
|
|
17130
17441
|
const params = drainContext.sessionID ? { session_id: drainContext.sessionID } : {};
|
|
17131
|
-
const response = await bridge.send("bash_drain_completions", params);
|
|
17442
|
+
const response = await withBgHopTimeout(bridge.send("bash_drain_completions", params, { timeoutMs: bgHopTimeoutMs }), "bash_drain_completions");
|
|
17132
17443
|
if (response.success === false) {
|
|
17133
|
-
|
|
17444
|
+
logDeliveryHop(drainContext, "drain-error", "drain failed", {
|
|
17445
|
+
event: "bash_completion_drain_error",
|
|
17446
|
+
cause: String(response.message ?? "unknown error")
|
|
17447
|
+
}, "warn");
|
|
17134
17448
|
return;
|
|
17135
17449
|
}
|
|
17136
17450
|
state.forcedDrainCompleted = true;
|
|
17451
|
+
const drainedTaskIds = Array.isArray(response.bg_completions) ? response.bg_completions.filter(isBgCompletion).map((completion) => completion.task_id) : [];
|
|
17452
|
+
logDeliveryHop(drainContext, "drain-ok", "drain ok", {
|
|
17453
|
+
event: "bash_completion_drain_ok",
|
|
17454
|
+
count: drainedTaskIds.length,
|
|
17455
|
+
task_ids: drainedTaskIds
|
|
17456
|
+
});
|
|
17137
17457
|
const reackTaskIds = reconcileAwaitingAck(state, response.bg_completions);
|
|
17138
17458
|
ingestDrainedBgCompletions(drainContext.sessionID, response.bg_completions);
|
|
17139
17459
|
if (reackTaskIds.length > 0) {
|
|
@@ -17149,7 +17469,10 @@ async function drainCompletions(drainContext) {
|
|
|
17149
17469
|
} catch (err) {
|
|
17150
17470
|
if (drainContext.nudgeRef && isTerminalNudgeError(err))
|
|
17151
17471
|
throw err;
|
|
17152
|
-
|
|
17472
|
+
logDeliveryHop(drainContext, "drain-error", "drain failed", {
|
|
17473
|
+
event: "bash_completion_drain_error",
|
|
17474
|
+
cause: err instanceof Error ? err.message : String(err)
|
|
17475
|
+
}, "warn");
|
|
17153
17476
|
}
|
|
17154
17477
|
}
|
|
17155
17478
|
async function ackCompletions(drainContext, completions) {
|
|
@@ -17159,16 +17482,25 @@ async function ackCompletions(drainContext, completions) {
|
|
|
17159
17482
|
try {
|
|
17160
17483
|
const bridge = bridgeForDrain(drainContext);
|
|
17161
17484
|
const params = drainContext.sessionID ? { session_id: drainContext.sessionID, task_ids: taskIds } : { task_ids: taskIds };
|
|
17162
|
-
const response = await bridge.send("bash_ack_completions", params);
|
|
17485
|
+
const response = await withBgHopTimeout(bridge.send("bash_ack_completions", params, { timeoutMs: bgHopTimeoutMs }), "bash_ack_completions");
|
|
17163
17486
|
if (response.success === false) {
|
|
17164
|
-
|
|
17487
|
+
logPerTaskDeliveryHop(drainContext, "ack-error", "ack failed", taskIds, {
|
|
17488
|
+
event: "bash_completion_ack_error",
|
|
17489
|
+
cause: String(response.message ?? "unknown error")
|
|
17490
|
+
}, "warn");
|
|
17165
17491
|
return false;
|
|
17166
17492
|
}
|
|
17493
|
+
logPerTaskDeliveryHop(drainContext, "ack-ok", "ack ok", taskIds, {
|
|
17494
|
+
event: "bash_completion_ack_ok"
|
|
17495
|
+
});
|
|
17167
17496
|
return true;
|
|
17168
17497
|
} catch (err) {
|
|
17169
17498
|
if (drainContext.nudgeRef && isTerminalNudgeError(err))
|
|
17170
17499
|
throw err;
|
|
17171
|
-
|
|
17500
|
+
logPerTaskDeliveryHop(drainContext, "ack-error", "ack failed", taskIds, {
|
|
17501
|
+
event: "bash_completion_ack_error",
|
|
17502
|
+
cause: err instanceof Error ? err.message : String(err)
|
|
17503
|
+
}, "warn");
|
|
17172
17504
|
return false;
|
|
17173
17505
|
}
|
|
17174
17506
|
}
|
|
@@ -17499,7 +17831,7 @@ import {
|
|
|
17499
17831
|
// package.json
|
|
17500
17832
|
var package_default = {
|
|
17501
17833
|
name: "@cortexkit/aft-pi",
|
|
17502
|
-
version: "0.
|
|
17834
|
+
version: "0.55.1",
|
|
17503
17835
|
type: "module",
|
|
17504
17836
|
description: "Pi coding agent extension for Agent File Tools (AFT) — tree-sitter and LSP-powered code analysis",
|
|
17505
17837
|
main: "dist/index.js",
|
|
@@ -17522,19 +17854,19 @@ var package_default = {
|
|
|
17522
17854
|
"test:unit": "bun test src/__tests__ --path-ignore-patterns 'src/__tests__/e2e/**'"
|
|
17523
17855
|
},
|
|
17524
17856
|
dependencies: {
|
|
17525
|
-
"@cortexkit/aft-bridge": "0.
|
|
17857
|
+
"@cortexkit/aft-bridge": "0.55.1",
|
|
17526
17858
|
"comment-json": "^5.0.0",
|
|
17527
17859
|
diff: "^8.0.4",
|
|
17528
17860
|
typebox: "1.1.38",
|
|
17529
17861
|
zod: "^4.4.3"
|
|
17530
17862
|
},
|
|
17531
17863
|
optionalDependencies: {
|
|
17532
|
-
"@cortexkit/aft-darwin-arm64": "0.
|
|
17533
|
-
"@cortexkit/aft-darwin-x64": "0.
|
|
17534
|
-
"@cortexkit/aft-linux-arm64": "0.
|
|
17535
|
-
"@cortexkit/aft-linux-x64": "0.
|
|
17536
|
-
"@cortexkit/aft-win32-arm64": "0.
|
|
17537
|
-
"@cortexkit/aft-win32-x64": "0.
|
|
17864
|
+
"@cortexkit/aft-darwin-arm64": "0.55.1",
|
|
17865
|
+
"@cortexkit/aft-darwin-x64": "0.55.1",
|
|
17866
|
+
"@cortexkit/aft-linux-arm64": "0.55.1",
|
|
17867
|
+
"@cortexkit/aft-linux-x64": "0.55.1",
|
|
17868
|
+
"@cortexkit/aft-win32-arm64": "0.55.1",
|
|
17869
|
+
"@cortexkit/aft-win32-x64": "0.55.1"
|
|
17538
17870
|
},
|
|
17539
17871
|
devDependencies: {
|
|
17540
17872
|
"@earendil-works/pi-coding-agent": "^0.80.2",
|
|
@@ -32683,6 +33015,9 @@ var GhShimConfigSchema = exports_external.object({
|
|
|
32683
33015
|
enabled: exports_external.boolean().optional(),
|
|
32684
33016
|
binary_path: exports_external.string().trim().refine(isAbsolute6, "gh_shim.binary_path must be absolute").optional()
|
|
32685
33017
|
});
|
|
33018
|
+
var GhReadConfigSchema = exports_external.object({
|
|
33019
|
+
enabled: exports_external.boolean().optional()
|
|
33020
|
+
});
|
|
32686
33021
|
var GitCoAuthorSchema = exports_external.string().trim().refine((value) => value === "off" || value === "auto" || /^[^<>\r\n]+\s+<[^<>\s@]+@[^<>\s@]+>$/.test(value), "git.co_author must be 'off', 'auto', or an explicit 'Name <email>' identity");
|
|
32687
33022
|
var GitConfigSchema = exports_external.object({
|
|
32688
33023
|
co_author: GitCoAuthorSchema.optional()
|
|
@@ -32737,6 +33072,7 @@ var AftConfigFieldsSchema = exports_external.object({
|
|
|
32737
33072
|
bridge: BridgeConfigSchema.optional(),
|
|
32738
33073
|
subc: SubcConfigSchema.optional(),
|
|
32739
33074
|
gh_shim: GhShimConfigSchema.optional(),
|
|
33075
|
+
gh_read: GhReadConfigSchema.optional(),
|
|
32740
33076
|
git: GitConfigSchema.optional()
|
|
32741
33077
|
});
|
|
32742
33078
|
var HarnessOverrideSchema = exports_external.preprocess((value) => {
|
|
@@ -33139,6 +33475,8 @@ function getStrippedTopLevelKeys(override) {
|
|
|
33139
33475
|
stripped.push("subc");
|
|
33140
33476
|
if (override.gh_shim !== undefined)
|
|
33141
33477
|
stripped.push("gh_shim");
|
|
33478
|
+
if (override.gh_read !== undefined)
|
|
33479
|
+
stripped.push("gh_read");
|
|
33142
33480
|
if (override.disabled_tools?.includes("aft_safety"))
|
|
33143
33481
|
stripped.push("disabled_tools.aft_safety");
|
|
33144
33482
|
return stripped;
|
|
@@ -33252,7 +33590,7 @@ function loadAftConfig(projectDirectory) {
|
|
|
33252
33590
|
}
|
|
33253
33591
|
|
|
33254
33592
|
// src/lsp-auto-install.ts
|
|
33255
|
-
import { spawn as
|
|
33593
|
+
import { spawn as spawn4 } from "node:child_process";
|
|
33256
33594
|
import { createHash as createHash4 } from "node:crypto";
|
|
33257
33595
|
import {
|
|
33258
33596
|
createReadStream,
|
|
@@ -33267,6 +33605,7 @@ import {
|
|
|
33267
33605
|
import { join as join15 } from "node:path";
|
|
33268
33606
|
|
|
33269
33607
|
// src/lsp-cache.ts
|
|
33608
|
+
import { randomUUID as randomUUID2 } from "node:crypto";
|
|
33270
33609
|
import {
|
|
33271
33610
|
closeSync as closeSync5,
|
|
33272
33611
|
mkdirSync as mkdirSync6,
|
|
@@ -33348,27 +33687,46 @@ var STALE_LOCK_MS2 = 30 * 60 * 1000;
|
|
|
33348
33687
|
function acquireInstallLock(lockKey) {
|
|
33349
33688
|
mkdirSync6(lspPackageDir(lockKey), { recursive: true });
|
|
33350
33689
|
const lock = lockPath(lockKey);
|
|
33690
|
+
const token = randomUUID2();
|
|
33351
33691
|
const tryClaim = () => {
|
|
33352
33692
|
try {
|
|
33353
33693
|
const fd = openSync5(lock, "wx");
|
|
33354
33694
|
try {
|
|
33355
33695
|
writeFileSync5(fd, `${process.pid}
|
|
33356
33696
|
${new Date().toISOString()}
|
|
33697
|
+
${token}
|
|
33357
33698
|
`);
|
|
33358
33699
|
} finally {
|
|
33359
33700
|
closeSync5(fd);
|
|
33360
33701
|
}
|
|
33361
|
-
|
|
33702
|
+
let retained = false;
|
|
33703
|
+
let released = false;
|
|
33704
|
+
return {
|
|
33705
|
+
retain() {
|
|
33706
|
+
retained = true;
|
|
33707
|
+
},
|
|
33708
|
+
release() {
|
|
33709
|
+
if (released)
|
|
33710
|
+
return;
|
|
33711
|
+
released = true;
|
|
33712
|
+
if (retained) {
|
|
33713
|
+
warn2(`[lsp] retaining install lock for ${lockKey} after unconfirmed npm termination; ` + `cross-process retries remain blocked until stale-lock recovery`);
|
|
33714
|
+
return;
|
|
33715
|
+
}
|
|
33716
|
+
releaseInstallLock(lockKey, token);
|
|
33717
|
+
}
|
|
33718
|
+
};
|
|
33362
33719
|
} catch (err) {
|
|
33363
33720
|
const code = err.code;
|
|
33364
33721
|
if (code === "EEXIST")
|
|
33365
|
-
return
|
|
33722
|
+
return null;
|
|
33366
33723
|
warn2(`[lsp] unexpected error acquiring install lock for ${lockKey}: ${err}`);
|
|
33367
|
-
return
|
|
33724
|
+
return null;
|
|
33368
33725
|
}
|
|
33369
33726
|
};
|
|
33370
|
-
|
|
33371
|
-
|
|
33727
|
+
const claimed = tryClaim();
|
|
33728
|
+
if (claimed)
|
|
33729
|
+
return claimed;
|
|
33372
33730
|
let owningPid = null;
|
|
33373
33731
|
let lockMtimeMs = 0;
|
|
33374
33732
|
try {
|
|
@@ -33386,7 +33744,7 @@ ${new Date().toISOString()}
|
|
|
33386
33744
|
const skipLiveness = process.platform === "win32";
|
|
33387
33745
|
const ownerAlive = !skipLiveness && owningPid !== null && isProcessAlive3(owningPid);
|
|
33388
33746
|
if (skipLiveness ? ageWithinFresh : ownerAlive && ageWithinFresh) {
|
|
33389
|
-
return
|
|
33747
|
+
return null;
|
|
33390
33748
|
}
|
|
33391
33749
|
log2(`[lsp] reclaiming install lock for ${lockKey} (owner_pid=${owningPid ?? "unknown"}, alive=${ownerAlive}, age_ms=${age})`);
|
|
33392
33750
|
try {
|
|
@@ -33405,16 +33763,18 @@ function isProcessAlive3(pid) {
|
|
|
33405
33763
|
return true;
|
|
33406
33764
|
}
|
|
33407
33765
|
}
|
|
33408
|
-
function releaseInstallLock(lockKey) {
|
|
33766
|
+
function releaseInstallLock(lockKey, acquisitionToken) {
|
|
33409
33767
|
const lock = lockPath(lockKey);
|
|
33410
33768
|
try {
|
|
33411
33769
|
let owningPid = null;
|
|
33770
|
+
let owningToken = "";
|
|
33412
33771
|
try {
|
|
33413
33772
|
const raw = readFileSync8(lock, "utf8");
|
|
33414
|
-
const
|
|
33415
|
-
const parsed = Number.parseInt(
|
|
33773
|
+
const lines = raw.split(/\r?\n/);
|
|
33774
|
+
const parsed = Number.parseInt(lines[0]?.trim() ?? "", 10);
|
|
33416
33775
|
if (Number.isFinite(parsed) && parsed > 0)
|
|
33417
33776
|
owningPid = parsed;
|
|
33777
|
+
owningToken = lines[2]?.trim() ?? "";
|
|
33418
33778
|
} catch (readErr) {
|
|
33419
33779
|
const code = readErr.code;
|
|
33420
33780
|
if (code === "ENOENT")
|
|
@@ -33422,8 +33782,8 @@ function releaseInstallLock(lockKey) {
|
|
|
33422
33782
|
warn2(`[lsp] could not read install lock for ${lockKey} during release: ${readErr}`);
|
|
33423
33783
|
return;
|
|
33424
33784
|
}
|
|
33425
|
-
if (owningPid !== process.pid) {
|
|
33426
|
-
log2(`[lsp] not releasing install lock for ${lockKey}:
|
|
33785
|
+
if (owningPid !== process.pid || owningToken !== acquisitionToken) {
|
|
33786
|
+
log2(`[lsp] not releasing install lock for ${lockKey}: acquisition ownership changed`);
|
|
33427
33787
|
return;
|
|
33428
33788
|
}
|
|
33429
33789
|
try {
|
|
@@ -33439,12 +33799,13 @@ function releaseInstallLock(lockKey) {
|
|
|
33439
33799
|
}
|
|
33440
33800
|
}
|
|
33441
33801
|
async function withInstallLock(lockKey, task) {
|
|
33442
|
-
|
|
33802
|
+
const lease = acquireInstallLock(lockKey);
|
|
33803
|
+
if (!lease)
|
|
33443
33804
|
return null;
|
|
33444
33805
|
try {
|
|
33445
|
-
return await task();
|
|
33806
|
+
return await task(lease);
|
|
33446
33807
|
} finally {
|
|
33447
|
-
|
|
33808
|
+
lease.release();
|
|
33448
33809
|
}
|
|
33449
33810
|
}
|
|
33450
33811
|
var VERSION_CHECK_FILE = ".aft-version-check";
|
|
@@ -33789,6 +34150,7 @@ function buildExtensionMap(specs) {
|
|
|
33789
34150
|
return byExt;
|
|
33790
34151
|
}
|
|
33791
34152
|
var inFlightAutoInstalls = new Set;
|
|
34153
|
+
var quarantinedNpmInstalls = new Set;
|
|
33792
34154
|
function trackInFlightAutoInstall(controller, promise2) {
|
|
33793
34155
|
const entry = { controller, promise: promise2 };
|
|
33794
34156
|
inFlightAutoInstalls.add(entry);
|
|
@@ -33836,7 +34198,7 @@ function ensureInstallAnchor(cwd) {
|
|
|
33836
34198
|
warn2(`[lsp] could not write package.json stub in ${cwd}: ${err}`);
|
|
33837
34199
|
}
|
|
33838
34200
|
}
|
|
33839
|
-
function runInstall(spec, version2, cwd, signal) {
|
|
34201
|
+
function runInstall(spec, version2, cwd, installLock, signal) {
|
|
33840
34202
|
return new Promise((resolve8) => {
|
|
33841
34203
|
const target = `${spec.npm}@${version2}`;
|
|
33842
34204
|
log2(`[lsp] installing ${target} to ${cwd}`);
|
|
@@ -33852,19 +34214,25 @@ function runInstall(spec, version2, cwd, signal) {
|
|
|
33852
34214
|
return;
|
|
33853
34215
|
}
|
|
33854
34216
|
ensureInstallAnchor(cwd);
|
|
33855
|
-
const
|
|
34217
|
+
const invocation = npmInvocation(npm, [
|
|
34218
|
+
"install",
|
|
34219
|
+
"--no-save",
|
|
34220
|
+
"--ignore-scripts",
|
|
34221
|
+
"--silent",
|
|
34222
|
+
target
|
|
34223
|
+
]);
|
|
34224
|
+
const child = spawn4(invocation.command, invocation.args, {
|
|
33856
34225
|
stdio: ["ignore", "pipe", "pipe"],
|
|
33857
34226
|
cwd,
|
|
33858
|
-
env: npmSpawnEnv(npm)
|
|
34227
|
+
env: { ...npmSpawnEnv(npm), ...invocation.env },
|
|
34228
|
+
windowsVerbatimArguments: invocation.windowsVerbatimArguments
|
|
33859
34229
|
});
|
|
33860
34230
|
child.unref();
|
|
33861
34231
|
let stderrBuf = "";
|
|
33862
34232
|
let settled = false;
|
|
33863
|
-
let
|
|
34233
|
+
let terminationPromise = null;
|
|
33864
34234
|
const cleanup = () => {
|
|
33865
34235
|
signal?.removeEventListener("abort", onAbort);
|
|
33866
|
-
if (killTimer)
|
|
33867
|
-
clearTimeout(killTimer);
|
|
33868
34236
|
};
|
|
33869
34237
|
const finish = (ok) => {
|
|
33870
34238
|
if (settled)
|
|
@@ -33873,14 +34241,31 @@ function runInstall(spec, version2, cwd, signal) {
|
|
|
33873
34241
|
cleanup();
|
|
33874
34242
|
resolve8(ok);
|
|
33875
34243
|
};
|
|
34244
|
+
const childCompletedSuccessfully = () => child.exitCode === 0 && child.signalCode === null;
|
|
34245
|
+
const finishAfterConfirmedTermination = () => {
|
|
34246
|
+
const completedSuccessfully = childCompletedSuccessfully();
|
|
34247
|
+
if (completedSuccessfully)
|
|
34248
|
+
log2(`[lsp] installed ${target}`);
|
|
34249
|
+
finish(completedSuccessfully);
|
|
34250
|
+
};
|
|
33876
34251
|
const onAbort = () => {
|
|
34252
|
+
if (childCompletedSuccessfully()) {
|
|
34253
|
+
finishAfterConfirmedTermination();
|
|
34254
|
+
return;
|
|
34255
|
+
}
|
|
33877
34256
|
warn2(`[lsp] install ${target} aborted during shutdown`);
|
|
33878
|
-
child
|
|
33879
|
-
|
|
33880
|
-
if (
|
|
33881
|
-
|
|
33882
|
-
|
|
33883
|
-
|
|
34257
|
+
terminationPromise ??= terminateNpmProcessTree(child, invocation);
|
|
34258
|
+
terminationPromise.then(finishAfterConfirmedTermination, (terminationError) => {
|
|
34259
|
+
if (child.pid === undefined) {
|
|
34260
|
+
error2(`[lsp] install ${target} failed to spawn during shutdown: ${terminationError}`);
|
|
34261
|
+
finish(false);
|
|
34262
|
+
return;
|
|
34263
|
+
}
|
|
34264
|
+
quarantinedNpmInstalls.add(spec.npm);
|
|
34265
|
+
installLock.retain();
|
|
34266
|
+
error2(`[lsp] install ${target} termination outcome unknown; quarantining retries for this session: ${String(terminationError)}`);
|
|
34267
|
+
finish(false);
|
|
34268
|
+
});
|
|
33884
34269
|
};
|
|
33885
34270
|
signal?.addEventListener("abort", onAbort, { once: true });
|
|
33886
34271
|
if (signal?.aborted)
|
|
@@ -33894,10 +34279,16 @@ function runInstall(spec, version2, cwd, signal) {
|
|
|
33894
34279
|
}
|
|
33895
34280
|
});
|
|
33896
34281
|
child.on("error", (err) => {
|
|
33897
|
-
|
|
34282
|
+
if (settled)
|
|
34283
|
+
return;
|
|
34284
|
+
error2(`[lsp] install ${target} child-process error: ${err}`);
|
|
34285
|
+
if (terminationPromise && child.pid !== undefined)
|
|
34286
|
+
return;
|
|
33898
34287
|
finish(false);
|
|
33899
34288
|
});
|
|
33900
34289
|
child.on("exit", (code) => {
|
|
34290
|
+
if (settled || terminationPromise)
|
|
34291
|
+
return;
|
|
33901
34292
|
if (code === 0) {
|
|
33902
34293
|
log2(`[lsp] installed ${target}`);
|
|
33903
34294
|
finish(true);
|
|
@@ -33910,7 +34301,13 @@ ${stderrBuf.trim()}`);
|
|
|
33910
34301
|
});
|
|
33911
34302
|
}
|
|
33912
34303
|
async function ensureServerInstalled(spec, config2, fetchImpl, signal) {
|
|
33913
|
-
|
|
34304
|
+
if (quarantinedNpmInstalls.has(spec.npm)) {
|
|
34305
|
+
return {
|
|
34306
|
+
started: false,
|
|
34307
|
+
reason: "install blocked after unconfirmed npm termination; restart the host to retry"
|
|
34308
|
+
};
|
|
34309
|
+
}
|
|
34310
|
+
const outcome = await withInstallLock(spec.npm, async (installLock) => {
|
|
33914
34311
|
const { version: version2, probe } = await resolveTargetVersion(spec, config2, fetchImpl);
|
|
33915
34312
|
if (!version2) {
|
|
33916
34313
|
const installed = isInstalled(spec.npm, spec.binary);
|
|
@@ -33946,7 +34343,7 @@ async function ensureServerInstalled(spec, config2, fetchImpl, signal) {
|
|
|
33946
34343
|
log2(`[lsp] reinstalling ${spec.npm}@${version2}: no installed-version metadata recorded`);
|
|
33947
34344
|
}
|
|
33948
34345
|
}
|
|
33949
|
-
const ok = await runInstall(spec, version2, cachedPackageDir(spec.npm), signal).catch((err) => {
|
|
34346
|
+
const ok = await runInstall(spec, version2, cachedPackageDir(spec.npm), installLock, signal).catch((err) => {
|
|
33950
34347
|
error2(`[lsp] background install ${spec.npm} crashed: ${err}`);
|
|
33951
34348
|
return false;
|
|
33952
34349
|
});
|
|
@@ -35054,14 +35451,23 @@ function sendFeatureAnnouncement(version2, features, footer, storageDir) {
|
|
|
35054
35451
|
var BASH_TRANSPORT_TIMEOUT_MS = 30000;
|
|
35055
35452
|
var BASH_WAIT_DETACH_MAGIC_KEYWORD = "&detach";
|
|
35056
35453
|
var EMPTY_DETACH_MESSAGE = "(requested background detach)";
|
|
35454
|
+
var STANDALONE_DETACH_KEYWORD_SOURCE = `(^|[^\\p{L}\\p{N}_])${BASH_WAIT_DETACH_MAGIC_KEYWORD}(?![\\p{L}\\p{N}_])`;
|
|
35455
|
+
var STANDALONE_DETACH_KEYWORD_PATTERN = new RegExp(STANDALONE_DETACH_KEYWORD_SOURCE, "u");
|
|
35456
|
+
var STANDALONE_DETACH_KEYWORDS_PATTERN = new RegExp(STANDALONE_DETACH_KEYWORD_SOURCE, "gu");
|
|
35457
|
+
function containsStandaloneDetachKeyword(messageText) {
|
|
35458
|
+
return STANDALONE_DETACH_KEYWORD_PATTERN.test(messageText);
|
|
35459
|
+
}
|
|
35460
|
+
function stripStandaloneDetachKeywords(messageText) {
|
|
35461
|
+
return messageText.replace(STANDALONE_DETACH_KEYWORDS_PATTERN, "$1");
|
|
35462
|
+
}
|
|
35057
35463
|
function stripUserMessageDetachKeyword(messageText) {
|
|
35058
|
-
if (!messageText
|
|
35464
|
+
if (!containsStandaloneDetachKeyword(messageText))
|
|
35059
35465
|
return messageText;
|
|
35060
|
-
const stripped = messageText
|
|
35466
|
+
const stripped = stripStandaloneDetachKeywords(messageText).replace(/[ \t]{2,}/g, " ");
|
|
35061
35467
|
return stripped.trim() === "" ? EMPTY_DETACH_MESSAGE : stripped;
|
|
35062
35468
|
}
|
|
35063
35469
|
function shouldDetachBashWaitOnUserMessage(config2, messageText) {
|
|
35064
|
-
return resolveBashConfig(config2).detach_on_user_message || messageText
|
|
35470
|
+
return resolveBashConfig(config2).detach_on_user_message || containsStandaloneDetachKeyword(messageText);
|
|
35065
35471
|
}
|
|
35066
35472
|
async function sendBashWaitDetach(bridge, sessionID) {
|
|
35067
35473
|
const response = await bridge.send("bash_wait_detach", { session_id: sessionID }, { keepBridgeOnTimeout: true, transportTimeoutMs: BASH_TRANSPORT_TIMEOUT_MS });
|
|
@@ -35524,8 +35930,16 @@ function formatReadAttachmentText(attachment) {
|
|
|
35524
35930
|
}
|
|
35525
35931
|
return `Read attachment [${mime}]${size ? ` ${size}` : ""}`;
|
|
35526
35932
|
}
|
|
35933
|
+
var ISSUE_AND_PR_READ_DESCRIPTION = "GitHub issues and pull requests can be read with `issue://NUMBER` and `pr://NUMBER` (or `issue://OWNER/REPO/NUMBER` and `pr://OWNER/REPO/NUMBER`).";
|
|
35934
|
+
var READ_DESCRIPTION = "Read file contents with line numbers. Backed by AFT's indexed Rust reader — faster than the built-in `read` on large repos. Images are returned as attachments on vision-capable models; PDFs and non-vision models are not yet supported.";
|
|
35935
|
+
function readDescription(ghReadEnabled) {
|
|
35936
|
+
return ghReadEnabled ? `${READ_DESCRIPTION} ${ISSUE_AND_PR_READ_DESCRIPTION}` : READ_DESCRIPTION;
|
|
35937
|
+
}
|
|
35938
|
+
function visionCapabilityForPiModel(extCtx) {
|
|
35939
|
+
return Array.isArray(extCtx.model?.input) ? extCtx.model.input.includes("image") : undefined;
|
|
35940
|
+
}
|
|
35527
35941
|
function modelSupportsImages(extCtx) {
|
|
35528
|
-
return
|
|
35942
|
+
return visionCapabilityForPiModel(extCtx) === true;
|
|
35529
35943
|
}
|
|
35530
35944
|
var NON_VISION_IMAGE_NOTE = "[Current model does not support images. The image will be omitted from this request.]";
|
|
35531
35945
|
function containsPath(parent, child) {
|
|
@@ -35743,7 +36157,7 @@ function registerHoistedTools(pi, ctx, surface) {
|
|
|
35743
36157
|
pi.registerTool(withPathAliasPreparation({
|
|
35744
36158
|
name: readName,
|
|
35745
36159
|
label: readName,
|
|
35746
|
-
description:
|
|
36160
|
+
description: readDescription(ctx.config.gh_read?.enabled === true),
|
|
35747
36161
|
promptSnippet: "Read file contents (supports offset/limit for large files)",
|
|
35748
36162
|
promptGuidelines: [`Use ${readName} to examine files instead of cat or sed.`],
|
|
35749
36163
|
parameters: ReadParams,
|
|
@@ -35771,6 +36185,9 @@ function registerHoistedTools(pi, ctx, surface) {
|
|
|
35771
36185
|
rawArgs.offset = offset;
|
|
35772
36186
|
if (limit !== undefined)
|
|
35773
36187
|
rawArgs.limit = limit;
|
|
36188
|
+
const visionCapability = visionCapabilityForPiModel(extCtx);
|
|
36189
|
+
if (visionCapability !== undefined)
|
|
36190
|
+
rawArgs.vision_capability = visionCapability;
|
|
35774
36191
|
const response = await callToolCall(bridge, "read", rawArgs, extCtx);
|
|
35775
36192
|
if (response.success === false) {
|
|
35776
36193
|
throw new Error(response.text || response.message || "read failed");
|
|
@@ -37604,7 +38021,7 @@ var InspectParams = Type8.Object({
|
|
|
37604
38021
|
description: "Categories to include in detailed drill-down (e.g. 'todos' or ['todos', 'dead_code', 'cycles']). Use 'all' for every active category. Omit for summary-only mode. `sections` changes detail, not the categories verified."
|
|
37605
38022
|
})),
|
|
37606
38023
|
scope: Type8.Optional(Type8.Union([Type8.String(), Type8.Array(Type8.String())], {
|
|
37607
|
-
description: "Restrict returned results to paths under this scope (file or directory, absolute or relative to project root). `scope=` narrows results; it does not
|
|
38024
|
+
description: "Restrict returned results to paths under this scope (file or directory, absolute or relative to project root). `scope=` narrows results and limits Rust LSP startup to owning Cargo workspaces; it does not trigger per-file diagnostic collection. Scoped files no producer has authoritatively analyzed are reported as named gaps (complete: false), never as a clean empty result."
|
|
37608
38025
|
})),
|
|
37609
38026
|
topK: Type8.Optional(Type8.Integer({
|
|
37610
38027
|
minimum: 1,
|
|
@@ -37916,7 +38333,7 @@ function registerInspectTool(pi, ctx) {
|
|
|
37916
38333
|
pi.registerTool({
|
|
37917
38334
|
name: "aft_inspect",
|
|
37918
38335
|
label: "inspect",
|
|
37919
|
-
description: "Blocking-fresh codebase health inspection. Each call completes current analysis and produces exactly one terminal result: FRESH includes a wait-stamp and completed phases; INTERRUPTED and PHASE-FAILED retain completed phases, with PHASE-FAILED also reporting its phase attribution and failure reason. `sections` selects drill-down detail, not the categories verified.\n\n" + "Use `scope=` to narrow returned results. Scope filters rendered diagnostics; it does not
|
|
38336
|
+
description: "Blocking-fresh codebase health inspection. Each call completes current analysis and produces exactly one terminal result: FRESH includes a wait-stamp and completed phases; INTERRUPTED and PHASE-FAILED retain completed phases, with PHASE-FAILED also reporting its phase attribution and failure reason. `sections` selects drill-down detail, not the categories verified.\n\n" + "Use `scope=` to narrow returned results. Scope filters rendered diagnostics and limits Rust LSP startup to Cargo workspaces owning the scoped paths; it does not trigger per-file collection work. Scoped files no producer has authoritatively analyzed are reported as named gaps (complete: false). Passive health changes use the alert channel; do not infer inspect completion from that channel.\n\n" + `Use when: starting work on unfamiliar code, after multi-edit batches to check diagnostics, before a refactor, before review, or to verify cleanup completeness.
|
|
37920
38337
|
|
|
37921
38338
|
` + "Treat `dead_code` as a hint, not proof: reachability is call-based, so symbols reached only via method dispatch or referenced only in type position may be false positives — verify before deleting.",
|
|
37922
38339
|
parameters: InspectParams,
|
|
@@ -38866,7 +39283,7 @@ function registerSemanticTool(pi, ctx) {
|
|
|
38866
39283
|
].join(`
|
|
38867
39284
|
`),
|
|
38868
39285
|
parameters: SearchParams2,
|
|
38869
|
-
async execute(_toolCallId, params,
|
|
39286
|
+
async execute(_toolCallId, params, signal, _onUpdate, extCtx) {
|
|
38870
39287
|
if (isEmptyParam(params.query) || typeof params.query !== "string" || params.query.trim().length === 0) {
|
|
38871
39288
|
throw new Error("semantic_search: invalid params: `query` must be a non-empty string");
|
|
38872
39289
|
}
|
|
@@ -38878,7 +39295,7 @@ function registerSemanticTool(pi, ctx) {
|
|
|
38878
39295
|
req.includeTests = params.includeTests;
|
|
38879
39296
|
if (params.path !== undefined)
|
|
38880
39297
|
req.path = params.path;
|
|
38881
|
-
const response = await callToolCall(bridge, "search", req, extCtx);
|
|
39298
|
+
const response = await callToolCall(bridge, "search", req, extCtx, signal ? { abortSignal: signal } : undefined);
|
|
38882
39299
|
if (response.success === false) {
|
|
38883
39300
|
throw new Error(response.text || response.message || "search failed");
|
|
38884
39301
|
}
|
|
@@ -39178,7 +39595,7 @@ var PLUGIN_VERSION = (() => {
|
|
|
39178
39595
|
return "0.0.0";
|
|
39179
39596
|
}
|
|
39180
39597
|
})();
|
|
39181
|
-
var ANNOUNCEMENT_VERSION = "0.
|
|
39598
|
+
var ANNOUNCEMENT_VERSION = "0.55.1";
|
|
39182
39599
|
var ANNOUNCEMENT_FEATURES = [
|
|
39183
39600
|
"Callgraph stays consistent under load: edits arriving mid-rebuild can no longer be silently lost from navigation results.",
|
|
39184
39601
|
"aft_zoom handles real-world .jsonc: files with comment banners above the opening brace now resolve, and not-found errors point at the segment that actually failed (thanks @iceteaSA).",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-auto-install.d.ts","sourceRoot":"","sources":["../src/lsp-auto-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAeH,OAAO,
|
|
1
|
+
{"version":3,"file":"lsp-auto-install.d.ts","sourceRoot":"","sources":["../src/lsp-auto-install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAeH,OAAO,EACL,KAAK,gBAAgB,EAKtB,MAAM,uBAAuB,CAAC;AAwB/B,+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;IAChC,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,MAAM,EAAE,CAAC;CAClC;AAiED,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAM/D;AAyDD;;;;;GAKG;AACH;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAYrD;AA0VD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAC5B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,iBAAiB,EACzB,SAAS,GAAE,OAAO,KAAa,GAC9B,iBAAiB,CA8EnB;AAED,gFAAgF;AAChF,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,aAAa,CAAC,EACpE,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,SAAS,MAAM,EAAE,GAC/B,OAAO,CAAC,IAAI,CAAC,CAIf"}
|
package/dist/lsp-cache.d.ts
CHANGED
|
@@ -49,6 +49,10 @@ export declare function readInstalledMetaIn(installDir: string): InstalledMeta |
|
|
|
49
49
|
export declare function writeInstalledMeta(packageKey: string, version: string, sha256?: string): void;
|
|
50
50
|
/** npm install path: read installed metadata from the package cache dir. */
|
|
51
51
|
export declare function readInstalledMeta(packageKey: string): InstalledMeta | null;
|
|
52
|
+
export interface InstallLockLease {
|
|
53
|
+
retain(): void;
|
|
54
|
+
release(): void;
|
|
55
|
+
}
|
|
52
56
|
/**
|
|
53
57
|
* Acquire an install lock for `lockKey` using an atomic `O_EXCL` open.
|
|
54
58
|
*
|
|
@@ -60,13 +64,12 @@ export declare function readInstalledMeta(packageKey: string): InstalledMeta | n
|
|
|
60
64
|
* Stale-lock recovery: if the lock file exists, we read it. If the recorded
|
|
61
65
|
* PID is no longer alive OR the file is older than `STALE_LOCK_MS`, we claim
|
|
62
66
|
* the lock by atomically replacing it (unlink + create with `wx`). If that
|
|
63
|
-
* race fails (someone else just claimed it), we return
|
|
67
|
+
* race fails (someone else just claimed it), we return null honestly.
|
|
64
68
|
*
|
|
65
|
-
* The lock file content is `<pid>\n<iso-timestamp>\n` so
|
|
66
|
-
* can detect dead owners.
|
|
69
|
+
* The lock file content is `<pid>\n<iso-timestamp>\n<acquisition-token>\n` so
|
|
70
|
+
* other processes can detect dead owners while releases remain generation-safe.
|
|
67
71
|
*/
|
|
68
|
-
export declare function acquireInstallLock(lockKey: string):
|
|
69
|
-
export declare function releaseInstallLock(lockKey: string): void;
|
|
72
|
+
export declare function acquireInstallLock(lockKey: string): InstallLockLease | null;
|
|
70
73
|
/**
|
|
71
74
|
* Run `task` while holding the install lock. The lock is released only
|
|
72
75
|
* when `task` settles (resolves or rejects), not when it starts.
|
|
@@ -74,7 +77,7 @@ export declare function releaseInstallLock(lockKey: string): void;
|
|
|
74
77
|
* Returns the task's resolved value, or `null` if the lock could not be
|
|
75
78
|
* acquired (caller should treat as "another install in progress").
|
|
76
79
|
*/
|
|
77
|
-
export declare function withInstallLock<T>(lockKey: string, task: () => Promise<T>): Promise<T | null>;
|
|
80
|
+
export declare function withInstallLock<T>(lockKey: string, task: (lease: InstallLockLease) => Promise<T>): Promise<T | null>;
|
|
78
81
|
/** Last-checked metadata stored next to the install. */
|
|
79
82
|
interface VersionCheckRecord {
|
|
80
83
|
/** ISO timestamp of the last `npm registry probe`. */
|
package/dist/lsp-cache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lsp-cache.d.ts","sourceRoot":"","sources":["../src/lsp-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"lsp-cache.d.ts","sourceRoot":"","sources":["../src/lsp-cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAgBH,mHAAmH;AACnH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,qDAAqD;AACrD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wDAAwD;AACxD,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,qEAAqE;AACrE,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,6DAA6D;AAC7D,wBAAgB,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEpD;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CASvE;AAOD;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAY/F;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAiB5E;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAE7F;AAED,4EAA4E;AAC5E,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAE1E;AAeD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAqF3E;AA0DD;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,OAAO,CAAC,CAAC,CAAC,GAC5C,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,CAQnB;AAED,wDAAwD;AACxD,UAAU,kBAAkB;IAC1B,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAID,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAe9E;AAED,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAQjF;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,kBAAkB,GAAG,IAAI,EACjC,qBAAqB,SAA0B,GAC9C,OAAO,CAKT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hoisted.d.ts","sourceRoot":"","sources":["../../src/tools/hoisted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAWH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAEjB,KAAK,KAAK,EACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,SAAS,EAAqB,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAajD,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"hoisted.d.ts","sourceRoot":"","sources":["../../src/tools/hoisted.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAWH,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EAEjB,KAAK,KAAK,EACX,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,SAAS,EAAqB,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAEjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAajD,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,qBAAqB,CAAC;AA6D7B;;;;GAIG;AACH,UAAU,iBAAiB;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,SAAS,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;CAClB;AAuFD;;;;;;;;;GASG;AACH,wBAAsB,iCAAiC,CACrD,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/E,OAAO,CAAC,IAAI,CAAC,CA6Bf;AA4HD,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;;;;;;;OAWG;IACH,qBAAqB,EAAE,OAAO,CAAC;CAChC;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,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;AA8ED,wBAAgB,oBAAoB,CAClC,EAAE,EAAE,YAAY,EAChB,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,gBAAgB,GACxB,IAAI,CA2TN;AAMD;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,eAAe,CAAC,mBAAmB,CAAC,CAmFtC;AAuED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,OAAO,GAAG,MAAM,EAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,GACzB,IAAI,CAON;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,CAAC,mBAAmB,CAAC,EAC5C,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,uBAA4C,GACpD,SAAS,CA8EX;AAQD;6BAC6B;AAC7B,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS/E;AAED;;;;;;;;;;;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,CAER"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/tools/inspect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAEZ,KAAK,EACN,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAOL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAI7B,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/tools/inspect.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EAEZ,KAAK,EACN,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAOL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAI7B,MAAM,qBAAqB,CAAC;AAO7B,QAAA,MAAM,aAAa;;;;EAqBjB,CAAC;AAGH,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,aAAa,GAAG,cAAc,CAAC;AAE3E,6EAA6E;AAC7E,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAyED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,EAAE,CAmB5E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAoDlF;AAaD,mFAAmF;AACnF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CA6B5F;AAmGD,wCAAwC;AACxC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,CAkC7E;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,CAAC,OAAO,aAAa,CAAC,EAClC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,yCAe3B;AAED,wCAAwC;AACxC,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAChC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,uBAA4C,sFAqBtD;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAoC9E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../../src/tools/semantic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,OAAO,EAQL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAK7B,MAAM,qBAAqB,CAAC;AAW7B,QAAA,MAAM,YAAY;;;;;EAgCjB,CAAC;AAEF,wCAAwC;AACxC,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,EACjC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACX,MAAM,EAAE,CAuFV;AAED,wCAAwC;AACxC,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,EACjC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,yCAG3B;AAED,wCAAwC;AACxC,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAChC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,EACjC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,uBAA4C,sFAUtD;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"semantic.d.ts","sourceRoot":"","sources":["../../src/tools/semantic.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAC;AAC5F,OAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQjD,OAAO,EAQL,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAK7B,MAAM,qBAAqB,CAAC;AAW7B,QAAA,MAAM,YAAY;;;;;EAgCjB,CAAC;AAEF,wCAAwC;AACxC,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,EACjC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACX,MAAM,EAAE,CAuFV;AAED,wCAAwC;AACxC,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,EACjC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,yCAG3B;AAED,wCAAwC;AACxC,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,EAChC,IAAI,EAAE,MAAM,CAAC,OAAO,YAAY,CAAC,EACjC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,iBAAiB,EAC1B,OAAO,GAAE,uBAA4C,sFAUtD;AAED,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAqD/E"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cortexkit/aft-pi",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.55.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Pi coding agent extension for Agent File Tools (AFT) — tree-sitter and LSP-powered code analysis",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -23,19 +23,19 @@
|
|
|
23
23
|
"test:unit": "bun test src/__tests__ --path-ignore-patterns 'src/__tests__/e2e/**'"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@cortexkit/aft-bridge": "0.
|
|
26
|
+
"@cortexkit/aft-bridge": "0.55.1",
|
|
27
27
|
"comment-json": "^5.0.0",
|
|
28
28
|
"diff": "^8.0.4",
|
|
29
29
|
"typebox": "1.1.38",
|
|
30
30
|
"zod": "^4.4.3"
|
|
31
31
|
},
|
|
32
32
|
"optionalDependencies": {
|
|
33
|
-
"@cortexkit/aft-darwin-arm64": "0.
|
|
34
|
-
"@cortexkit/aft-darwin-x64": "0.
|
|
35
|
-
"@cortexkit/aft-linux-arm64": "0.
|
|
36
|
-
"@cortexkit/aft-linux-x64": "0.
|
|
37
|
-
"@cortexkit/aft-win32-arm64": "0.
|
|
38
|
-
"@cortexkit/aft-win32-x64": "0.
|
|
33
|
+
"@cortexkit/aft-darwin-arm64": "0.55.1",
|
|
34
|
+
"@cortexkit/aft-darwin-x64": "0.55.1",
|
|
35
|
+
"@cortexkit/aft-linux-arm64": "0.55.1",
|
|
36
|
+
"@cortexkit/aft-linux-x64": "0.55.1",
|
|
37
|
+
"@cortexkit/aft-win32-arm64": "0.55.1",
|
|
38
|
+
"@cortexkit/aft-win32-x64": "0.55.1"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@earendil-works/pi-coding-agent": "^0.80.2",
|