@cortexkit/aft 0.36.0 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +141 -21
- package/dist/lib/jsonc.d.ts +1 -1
- package/dist/lib/jsonc.d.ts.map +1 -1
- package/dist/lib/sanitize.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -104,6 +104,21 @@ var ACTIVE_LOGGER_SYMBOL;
|
|
|
104
104
|
var init_active_logger = __esm(() => {
|
|
105
105
|
ACTIVE_LOGGER_SYMBOL = Symbol.for("aft-bridge-active-logger");
|
|
106
106
|
});
|
|
107
|
+
// ../aft-bridge/dist/command-timeouts.js
|
|
108
|
+
var LONG_RUNNING_COMMAND_TIMEOUT_MS;
|
|
109
|
+
var init_command_timeouts = __esm(() => {
|
|
110
|
+
LONG_RUNNING_COMMAND_TIMEOUT_MS = {
|
|
111
|
+
callers: 60000,
|
|
112
|
+
trace_to: 60000,
|
|
113
|
+
trace_to_symbol: 60000,
|
|
114
|
+
trace_data: 60000,
|
|
115
|
+
impact: 60000,
|
|
116
|
+
grep: 60000,
|
|
117
|
+
glob: 60000,
|
|
118
|
+
semantic_search: 60000
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
|
|
107
122
|
// ../aft-bridge/dist/status-bar.js
|
|
108
123
|
function parseStatusBarCounts(value) {
|
|
109
124
|
if (!value || typeof value !== "object")
|
|
@@ -129,6 +144,18 @@ import { spawn } from "node:child_process";
|
|
|
129
144
|
import { homedir } from "node:os";
|
|
130
145
|
import { join } from "node:path";
|
|
131
146
|
import { StringDecoder } from "node:string_decoder";
|
|
147
|
+
function isTerminalBashStatus(status) {
|
|
148
|
+
return typeof status === "string" && TERMINAL_BASH_STATUSES.has(status);
|
|
149
|
+
}
|
|
150
|
+
function bashTaskIdFrom(response) {
|
|
151
|
+
const snakeCase = response.task_id;
|
|
152
|
+
if (typeof snakeCase === "string" && snakeCase.length > 0)
|
|
153
|
+
return snakeCase;
|
|
154
|
+
const camelCase = response.taskId;
|
|
155
|
+
if (typeof camelCase === "string" && camelCase.length > 0)
|
|
156
|
+
return camelCase;
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
132
159
|
function tagStderrLine(line) {
|
|
133
160
|
return /^\[aft(-\w+)?\] /.test(line) ? line : `[aft] ${line}`;
|
|
134
161
|
}
|
|
@@ -183,11 +210,12 @@ function clampSemanticTimeout(configOverrides, bridgeTimeoutMs) {
|
|
|
183
210
|
if (typeof timeoutMs !== "number" || !Number.isFinite(timeoutMs)) {
|
|
184
211
|
return configOverrides;
|
|
185
212
|
}
|
|
186
|
-
const
|
|
213
|
+
const semanticTransportBudgetMs = Math.max(bridgeTimeoutMs, LONG_RUNNING_COMMAND_TIMEOUT_MS.semantic_search ?? 0);
|
|
214
|
+
const maxSemanticTimeoutMs = semanticTransportBudgetMs > SEMANTIC_TIMEOUT_SAFETY_MARGIN_MS ? semanticTransportBudgetMs - SEMANTIC_TIMEOUT_SAFETY_MARGIN_MS : Math.max(1, semanticTransportBudgetMs - 1);
|
|
187
215
|
if (timeoutMs <= maxSemanticTimeoutMs) {
|
|
188
216
|
return configOverrides;
|
|
189
217
|
}
|
|
190
|
-
warn(`semantic.timeout_ms=${timeoutMs} exceeds
|
|
218
|
+
warn(`semantic.timeout_ms=${timeoutMs} exceeds the semantic transport budget; clamping to ${maxSemanticTimeoutMs}ms (budget: ${semanticTransportBudgetMs}ms)`);
|
|
191
219
|
return {
|
|
192
220
|
...configOverrides,
|
|
193
221
|
semantic: {
|
|
@@ -196,10 +224,20 @@ function clampSemanticTimeout(configOverrides, bridgeTimeoutMs) {
|
|
|
196
224
|
}
|
|
197
225
|
};
|
|
198
226
|
}
|
|
199
|
-
var DEFAULT_BRIDGE_TIMEOUT_MS = 30000, BRIDGE_HANG_TIMEOUT_THRESHOLD = 2, SEMANTIC_TIMEOUT_SAFETY_MARGIN_MS = 5000, MAX_STDOUT_BUFFER, BridgeReplacedDuringVersionCheck, BinaryBridge;
|
|
227
|
+
var DEFAULT_BRIDGE_TIMEOUT_MS = 30000, BRIDGE_HANG_TIMEOUT_THRESHOLD = 2, SEMANTIC_TIMEOUT_SAFETY_MARGIN_MS = 5000, MAX_STDOUT_BUFFER, STDOUT_BUFFER_COMPACT_THRESHOLD, TERMINAL_BASH_STATUSES, BridgeReplacedDuringVersionCheck, BinaryBridge;
|
|
200
228
|
var init_bridge = __esm(() => {
|
|
201
229
|
init_active_logger();
|
|
230
|
+
init_command_timeouts();
|
|
202
231
|
MAX_STDOUT_BUFFER = 64 * 1024 * 1024;
|
|
232
|
+
STDOUT_BUFFER_COMPACT_THRESHOLD = 64 * 1024;
|
|
233
|
+
TERMINAL_BASH_STATUSES = new Set([
|
|
234
|
+
"completed",
|
|
235
|
+
"failed",
|
|
236
|
+
"killed",
|
|
237
|
+
"timed_out",
|
|
238
|
+
"cancelled",
|
|
239
|
+
"timeout"
|
|
240
|
+
]);
|
|
203
241
|
BridgeReplacedDuringVersionCheck = class BridgeReplacedDuringVersionCheck extends Error {
|
|
204
242
|
newBinaryPath;
|
|
205
243
|
constructor(newBinaryPath) {
|
|
@@ -215,8 +253,10 @@ var init_bridge = __esm(() => {
|
|
|
215
253
|
cwd;
|
|
216
254
|
process = null;
|
|
217
255
|
pending = new Map;
|
|
256
|
+
outstandingBackgroundTaskIds = new Set;
|
|
218
257
|
nextId = 1;
|
|
219
258
|
stdoutBuffer = "";
|
|
259
|
+
stdoutReadOffset = 0;
|
|
220
260
|
stderrBuffer = "";
|
|
221
261
|
stderrTail = [];
|
|
222
262
|
_restartCount = 0;
|
|
@@ -326,6 +366,9 @@ var init_bridge = __esm(() => {
|
|
|
326
366
|
hasPendingRequests() {
|
|
327
367
|
return this.pending.size > 0;
|
|
328
368
|
}
|
|
369
|
+
hasOutstandingBackgroundTasks() {
|
|
370
|
+
return this.outstandingBackgroundTaskIds.size > 0;
|
|
371
|
+
}
|
|
329
372
|
getCwd() {
|
|
330
373
|
return this.cwd;
|
|
331
374
|
}
|
|
@@ -447,7 +490,7 @@ var init_bridge = __esm(() => {
|
|
|
447
490
|
entry.reject(new Error(`${this.errorPrefix} Request "${command}" (id=${id}) timed out after ${effectiveTimeoutMs}ms`));
|
|
448
491
|
this.handleTimeout(requestSessionId);
|
|
449
492
|
}, effectiveTimeoutMs);
|
|
450
|
-
this.pending.set(id, { resolve, reject, timer, onProgress: options?.onProgress });
|
|
493
|
+
this.pending.set(id, { resolve, reject, timer, onProgress: options?.onProgress, command });
|
|
451
494
|
if (!this.process?.stdin?.writable) {
|
|
452
495
|
this.pending.delete(id);
|
|
453
496
|
clearTimeout(timer);
|
|
@@ -708,6 +751,7 @@ var init_bridge = __esm(() => {
|
|
|
708
751
|
});
|
|
709
752
|
this.process = child;
|
|
710
753
|
this.stdoutBuffer = "";
|
|
754
|
+
this.stdoutReadOffset = 0;
|
|
711
755
|
this.stderrBuffer = "";
|
|
712
756
|
this.lastChildActivityAt = 0;
|
|
713
757
|
this.consecutiveRequestTimeouts = 0;
|
|
@@ -752,24 +796,41 @@ var init_bridge = __esm(() => {
|
|
|
752
796
|
${tail}`;
|
|
753
797
|
}
|
|
754
798
|
onStdoutData(data) {
|
|
799
|
+
if (this.stdoutReadOffset > STDOUT_BUFFER_COMPACT_THRESHOLD) {
|
|
800
|
+
this.compactStdoutBuffer();
|
|
801
|
+
}
|
|
755
802
|
this.stdoutBuffer += data;
|
|
756
|
-
if (this.stdoutBuffer.length > MAX_STDOUT_BUFFER) {
|
|
803
|
+
if (this.stdoutBuffer.length - this.stdoutReadOffset > MAX_STDOUT_BUFFER) {
|
|
757
804
|
this.handleCrash(new Error(`aft bridge stdout buffer exceeded ${MAX_STDOUT_BUFFER} bytes — killing bridge`));
|
|
758
805
|
return;
|
|
759
806
|
}
|
|
760
807
|
let newlineIdx;
|
|
761
808
|
while ((newlineIdx = this.stdoutBuffer.indexOf(`
|
|
762
|
-
|
|
763
|
-
const line = this.stdoutBuffer.slice(
|
|
764
|
-
this.
|
|
765
|
-
if (
|
|
766
|
-
|
|
767
|
-
|
|
809
|
+
`, this.stdoutReadOffset)) !== -1) {
|
|
810
|
+
const line = this.stdoutBuffer.slice(this.stdoutReadOffset, newlineIdx).trim();
|
|
811
|
+
this.stdoutReadOffset = newlineIdx + 1;
|
|
812
|
+
if (line) {
|
|
813
|
+
this.processStdoutLine(line);
|
|
814
|
+
}
|
|
815
|
+
if (this.stdoutReadOffset > STDOUT_BUFFER_COMPACT_THRESHOLD && this.stdoutReadOffset > this.stdoutBuffer.length / 2) {
|
|
816
|
+
this.compactStdoutBuffer();
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
if (this.stdoutReadOffset === this.stdoutBuffer.length) {
|
|
820
|
+
this.stdoutBuffer = "";
|
|
821
|
+
this.stdoutReadOffset = 0;
|
|
768
822
|
}
|
|
769
823
|
}
|
|
824
|
+
compactStdoutBuffer() {
|
|
825
|
+
if (this.stdoutReadOffset === 0)
|
|
826
|
+
return;
|
|
827
|
+
this.stdoutBuffer = this.stdoutBuffer.slice(this.stdoutReadOffset);
|
|
828
|
+
this.stdoutReadOffset = 0;
|
|
829
|
+
}
|
|
770
830
|
flushStdoutBuffer() {
|
|
771
|
-
const line = this.stdoutBuffer.trim();
|
|
831
|
+
const line = this.stdoutBuffer.slice(this.stdoutReadOffset).trim();
|
|
772
832
|
this.stdoutBuffer = "";
|
|
833
|
+
this.stdoutReadOffset = 0;
|
|
773
834
|
if (!line)
|
|
774
835
|
return;
|
|
775
836
|
this.processStdoutLine(line);
|
|
@@ -802,6 +863,9 @@ var init_bridge = __esm(() => {
|
|
|
802
863
|
return;
|
|
803
864
|
}
|
|
804
865
|
if (response.type === "bash_completed") {
|
|
866
|
+
const taskId = bashTaskIdFrom(response);
|
|
867
|
+
if (taskId)
|
|
868
|
+
this.outstandingBackgroundTaskIds.delete(taskId);
|
|
805
869
|
this.onBashCompletion?.(response, this);
|
|
806
870
|
return;
|
|
807
871
|
}
|
|
@@ -832,6 +896,7 @@ var init_bridge = __esm(() => {
|
|
|
832
896
|
clearTimeout(entry.timer);
|
|
833
897
|
this.consecutiveRequestTimeouts = 0;
|
|
834
898
|
this.scheduleRestartCountReset();
|
|
899
|
+
this.accountForBashTaskResponse(entry.command, response);
|
|
835
900
|
this.captureStatusBar(response);
|
|
836
901
|
entry.resolve(response);
|
|
837
902
|
} else if (typeof response.type === "string") {
|
|
@@ -841,6 +906,18 @@ var init_bridge = __esm(() => {
|
|
|
841
906
|
this.warnVia(`Failed to parse stdout line: ${line}`);
|
|
842
907
|
}
|
|
843
908
|
}
|
|
909
|
+
accountForBashTaskResponse(command, response) {
|
|
910
|
+
const taskId = bashTaskIdFrom(response);
|
|
911
|
+
if (!taskId)
|
|
912
|
+
return;
|
|
913
|
+
if (isTerminalBashStatus(response.status)) {
|
|
914
|
+
this.outstandingBackgroundTaskIds.delete(taskId);
|
|
915
|
+
return;
|
|
916
|
+
}
|
|
917
|
+
if (command === "bash" && response.success !== false) {
|
|
918
|
+
this.outstandingBackgroundTaskIds.add(taskId);
|
|
919
|
+
}
|
|
920
|
+
}
|
|
844
921
|
captureStatusBar(response) {
|
|
845
922
|
const parsed = parseStatusBarCounts(response.status_bar);
|
|
846
923
|
if (parsed)
|
|
@@ -852,6 +929,7 @@ var init_bridge = __esm(() => {
|
|
|
852
929
|
handleTimeout(triggeringSessionId) {
|
|
853
930
|
this.consecutiveRequestTimeouts = 0;
|
|
854
931
|
this.rejectAllPending(new Error(`${this.errorPrefix} bridge killed during sibling timeout — request aborted`));
|
|
932
|
+
this.outstandingBackgroundTaskIds.clear();
|
|
855
933
|
if (this.process) {
|
|
856
934
|
this.process.kill("SIGKILL");
|
|
857
935
|
this.process = null;
|
|
@@ -881,6 +959,7 @@ var init_bridge = __esm(() => {
|
|
|
881
959
|
}
|
|
882
960
|
this.clearRestartResetTimer();
|
|
883
961
|
this.configured = false;
|
|
962
|
+
this.outstandingBackgroundTaskIds.clear();
|
|
884
963
|
const tail = this.formatStderrTail();
|
|
885
964
|
if (tail) {
|
|
886
965
|
this.errorVia(`Binary crashed (restarts: ${this._restartCount})${cause ? `: ${cause.message}` : ""}.${tail}`);
|
|
@@ -1148,9 +1227,25 @@ var init_onnx_runtime = __esm(() => {
|
|
|
1148
1227
|
});
|
|
1149
1228
|
|
|
1150
1229
|
// ../aft-bridge/dist/pipe-strip.js
|
|
1151
|
-
var NOISE_FILTERS, GREP_GUARD_FLAGS;
|
|
1230
|
+
var NOISE_FILTERS, GREP_GUARD_FLAGS, XCODEBUILD_VALUE_FLAGS, XCODEBUILD_BUILD_ACTIONS, READS_FILE_OPERAND;
|
|
1152
1231
|
var init_pipe_strip = __esm(() => {
|
|
1153
|
-
NOISE_FILTERS = new Set([
|
|
1232
|
+
NOISE_FILTERS = new Set([
|
|
1233
|
+
"grep",
|
|
1234
|
+
"rg",
|
|
1235
|
+
"head",
|
|
1236
|
+
"tail",
|
|
1237
|
+
"cat",
|
|
1238
|
+
"less",
|
|
1239
|
+
"more",
|
|
1240
|
+
"sed",
|
|
1241
|
+
"awk",
|
|
1242
|
+
"cut",
|
|
1243
|
+
"sort",
|
|
1244
|
+
"uniq",
|
|
1245
|
+
"tr",
|
|
1246
|
+
"column",
|
|
1247
|
+
"fold"
|
|
1248
|
+
]);
|
|
1154
1249
|
GREP_GUARD_FLAGS = new Set([
|
|
1155
1250
|
"c",
|
|
1156
1251
|
"count",
|
|
@@ -1161,6 +1256,28 @@ var init_pipe_strip = __esm(() => {
|
|
|
1161
1256
|
"l",
|
|
1162
1257
|
"files-with-matches"
|
|
1163
1258
|
]);
|
|
1259
|
+
XCODEBUILD_VALUE_FLAGS = new Set([
|
|
1260
|
+
"-scheme",
|
|
1261
|
+
"-target",
|
|
1262
|
+
"-project",
|
|
1263
|
+
"-workspace",
|
|
1264
|
+
"-configuration",
|
|
1265
|
+
"-sdk",
|
|
1266
|
+
"-destination",
|
|
1267
|
+
"-arch",
|
|
1268
|
+
"-derivedDataPath",
|
|
1269
|
+
"-resultBundlePath",
|
|
1270
|
+
"-xcconfig",
|
|
1271
|
+
"-toolchain"
|
|
1272
|
+
]);
|
|
1273
|
+
XCODEBUILD_BUILD_ACTIONS = new Set([
|
|
1274
|
+
"build",
|
|
1275
|
+
"test",
|
|
1276
|
+
"build-for-testing",
|
|
1277
|
+
"test-without-building",
|
|
1278
|
+
"analyze"
|
|
1279
|
+
]);
|
|
1280
|
+
READS_FILE_OPERAND = new Set(["cat", "tac", "nl", "less", "more"]);
|
|
1164
1281
|
});
|
|
1165
1282
|
|
|
1166
1283
|
// ../aft-bridge/dist/pool.js
|
|
@@ -1237,7 +1354,7 @@ class BridgePool {
|
|
|
1237
1354
|
cleanup() {
|
|
1238
1355
|
const now = Date.now();
|
|
1239
1356
|
for (const [dir, entry] of this.bridges) {
|
|
1240
|
-
if (entry.bridge.hasPendingRequests())
|
|
1357
|
+
if (entry.bridge.hasPendingRequests() || entry.bridge.hasOutstandingBackgroundTasks())
|
|
1241
1358
|
continue;
|
|
1242
1359
|
if (now - entry.lastUsed > this.idleTimeoutMs) {
|
|
1243
1360
|
entry.bridge.shutdown().catch((err) => this.error("cleanup shutdown failed:", err));
|
|
@@ -1245,7 +1362,7 @@ class BridgePool {
|
|
|
1245
1362
|
}
|
|
1246
1363
|
}
|
|
1247
1364
|
for (const bridge of this.staleBridges) {
|
|
1248
|
-
if (bridge.hasPendingRequests())
|
|
1365
|
+
if (bridge.hasPendingRequests() || bridge.hasOutstandingBackgroundTasks())
|
|
1249
1366
|
continue;
|
|
1250
1367
|
bridge.shutdown().catch((err) => this.error("stale cleanup shutdown failed:", err));
|
|
1251
1368
|
this.staleBridges.delete(bridge);
|
|
@@ -1255,7 +1372,7 @@ class BridgePool {
|
|
|
1255
1372
|
let oldestDir = null;
|
|
1256
1373
|
let oldestTime = Infinity;
|
|
1257
1374
|
for (const [dir, entry] of this.bridges) {
|
|
1258
|
-
if (entry.bridge.hasPendingRequests())
|
|
1375
|
+
if (entry.bridge.hasPendingRequests() || entry.bridge.hasOutstandingBackgroundTasks())
|
|
1259
1376
|
continue;
|
|
1260
1377
|
if (entry.lastUsed < oldestTime) {
|
|
1261
1378
|
oldestTime = entry.lastUsed;
|
|
@@ -1339,16 +1456,18 @@ function normalizeKey(projectRoot) {
|
|
|
1339
1456
|
return stripped;
|
|
1340
1457
|
}
|
|
1341
1458
|
}
|
|
1342
|
-
var DEFAULT_IDLE_TIMEOUT_MS
|
|
1459
|
+
var DEFAULT_IDLE_TIMEOUT_MS, DEFAULT_MAX_POOL_SIZE = 8, CLEANUP_INTERVAL_MS;
|
|
1343
1460
|
var init_pool = __esm(() => {
|
|
1344
1461
|
init_active_logger();
|
|
1345
1462
|
init_bridge();
|
|
1463
|
+
DEFAULT_IDLE_TIMEOUT_MS = 30 * 60 * 1000;
|
|
1346
1464
|
CLEANUP_INTERVAL_MS = 60 * 1000;
|
|
1347
1465
|
});
|
|
1348
1466
|
// ../aft-bridge/dist/index.js
|
|
1349
1467
|
var init_dist = __esm(() => {
|
|
1350
1468
|
init_active_logger();
|
|
1351
1469
|
init_bridge();
|
|
1470
|
+
init_command_timeouts();
|
|
1352
1471
|
init_downloader();
|
|
1353
1472
|
init_migration();
|
|
1354
1473
|
init_npm_resolver();
|
|
@@ -9443,7 +9562,7 @@ function ensureAftSchemaUrl(path, format) {
|
|
|
9443
9562
|
message: `updated $schema URL in ${path}`
|
|
9444
9563
|
};
|
|
9445
9564
|
}
|
|
9446
|
-
var import_comment_json, AFT_SCHEMA_URL = "https://raw.githubusercontent.com/cortexkit/aft/
|
|
9565
|
+
var import_comment_json, AFT_SCHEMA_URL = "https://raw.githubusercontent.com/cortexkit/aft/main/assets/aft.schema.json";
|
|
9447
9566
|
var init_jsonc = __esm(() => {
|
|
9448
9567
|
import_comment_json = __toESM(require_src2(), 1);
|
|
9449
9568
|
});
|
|
@@ -12553,8 +12672,9 @@ function sanitizeContent(content) {
|
|
|
12553
12672
|
}
|
|
12554
12673
|
sanitized = sanitized.replace(/\/Users\/[^/\s"']+/g, "/Users/<USER>");
|
|
12555
12674
|
sanitized = sanitized.replace(/\/home\/[^/\s"']+/g, "/home/<USER>");
|
|
12556
|
-
sanitized = sanitized.replace(/
|
|
12557
|
-
sanitized = sanitized.replace(/
|
|
12675
|
+
sanitized = sanitized.replace(/([A-Za-z]:\\\\Users\\\\)[^\\\\"'\s]+/g, "$1<USER>");
|
|
12676
|
+
sanitized = sanitized.replace(/([A-Za-z]:\\Users\\)[^\\"'\s]+/g, "$1<USER>");
|
|
12677
|
+
sanitized = sanitized.replace(/([A-Za-z]:\/Users\/)[^/\s"']+/g, "$1<USER>");
|
|
12558
12678
|
if (username) {
|
|
12559
12679
|
sanitized = sanitized.replace(new RegExp(escapeRegex(username), "g"), "<USER>");
|
|
12560
12680
|
}
|
package/dist/lib/jsonc.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export declare function readJsoncFile(path: string): {
|
|
|
17
17
|
*/
|
|
18
18
|
export declare function writeJsoncFile(path: string, value: Record<string, unknown>, format?: JsoncFormat): void;
|
|
19
19
|
/** Canonical URL of the published AFT config schema. */
|
|
20
|
-
export declare const AFT_SCHEMA_URL = "https://raw.githubusercontent.com/cortexkit/aft/
|
|
20
|
+
export declare const AFT_SCHEMA_URL = "https://raw.githubusercontent.com/cortexkit/aft/main/assets/aft.schema.json";
|
|
21
21
|
export type AftSchemaAction = "added" | "updated" | "unchanged";
|
|
22
22
|
/**
|
|
23
23
|
* Ensure `aft.jsonc` (or `aft.json`) contains a top-level `$schema` field
|
package/dist/lib/jsonc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonc.d.ts","sourceRoot":"","sources":["../../src/lib/jsonc.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAW9E;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAcA;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,GAAE,WAAoB,GAC3B,IAAI,CAKN;AAED,wDAAwD;AACxD,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"jsonc.d.ts","sourceRoot":"","sources":["../../src/lib/jsonc.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAW9E;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAcA;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,MAAM,GAAE,WAAoB,GAC3B,IAAI,CAKN;AAED,wDAAwD;AACxD,eAAO,MAAM,cAAc,gFACoD,CAAC;AAEhF,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AAEhE;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,WAAW,GAClB;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAoC9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/lib/sanitize.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAmFD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"sanitize.d.ts","sourceRoot":"","sources":["../../src/lib/sanitize.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEjD;AAmFD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAkCvD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAarD"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cortexkit/aft",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.37.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Unified CLI for Agent File Tools (AFT) — setup, doctor, and diagnostics across supported agent harnesses (OpenCode, Pi)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@clack/prompts": "^1.2.0",
|
|
27
|
-
"@cortexkit/aft-bridge": "0.
|
|
27
|
+
"@cortexkit/aft-bridge": "0.37.0",
|
|
28
28
|
"comment-json": "^4.6.2"
|
|
29
29
|
},
|
|
30
30
|
"devDependencies": {
|