@cortexkit/aft-opencode 0.35.3 → 0.35.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"bg-notifications.d.ts","sourceRoot":"","sources":["../src/bg-notifications.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bg-notifications.d.ts","sourceRoot":"","sources":["../src/bg-notifications.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA2MlD;;;;;;;;;;;;;;;;;GAiBG;AAQH,QAAA,MAAM,MAAM,EAAE,MAA6D,CAAC;AA80B5E,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA4MlD;;;;;;;;;;;;;;;;;GAiBG;AAQH,QAAA,MAAM,MAAM,EAAE,MAA6D,CAAC;AA80B5E,eAAe,MAAM,CAAC"}
package/dist/index.js CHANGED
@@ -11867,6 +11867,9 @@ class BinaryBridge {
11867
11867
  hasPendingRequests() {
11868
11868
  return this.pending.size > 0;
11869
11869
  }
11870
+ getCwd() {
11871
+ return this.cwd;
11872
+ }
11870
11873
  getCachedStatus() {
11871
11874
  return this.cachedStatus;
11872
11875
  }
@@ -12210,6 +12213,7 @@ class BinaryBridge {
12210
12213
  const remaining = stdoutDecoder.end();
12211
12214
  if (remaining)
12212
12215
  this.onStdoutData(remaining);
12216
+ this.flushStdoutBuffer();
12213
12217
  });
12214
12218
  const stderrDecoder = new StringDecoder("utf8");
12215
12219
  child.stderr?.on("data", (chunk) => {
@@ -12232,6 +12236,7 @@ class BinaryBridge {
12232
12236
  return;
12233
12237
  if (this._shuttingDown)
12234
12238
  return;
12239
+ this.flushStdoutBuffer();
12235
12240
  this.logVia(`Process exited: code=${code}, signal=${signal}`);
12236
12241
  if (signal === "SIGTERM" || signal === "SIGKILL" || signal === "SIGHUP" || signal === "SIGINT") {
12237
12242
  this.process = null;
@@ -12300,71 +12305,81 @@ class BinaryBridge {
12300
12305
  this.stdoutBuffer = this.stdoutBuffer.slice(newlineIdx + 1);
12301
12306
  if (!line)
12302
12307
  continue;
12303
- try {
12304
- const response = JSON.parse(line);
12305
- this.lastChildActivityAt = Date.now();
12306
- if (response.type === "progress") {
12307
- const requestId = response.request_id;
12308
- const entry = requestId ? this.pending.get(requestId) : undefined;
12309
- const kind = response.kind === "stderr" ? "stderr" : "stdout";
12310
- const text = typeof response.chunk === "string" ? response.chunk : "";
12311
- entry?.onProgress?.({ kind, text });
12312
- continue;
12313
- }
12314
- if (response.type === "permission_ask") {
12315
- const requestId = response.request_id;
12316
- const entry = requestId ? this.pending.get(requestId) : undefined;
12317
- if (requestId && entry) {
12318
- this.pending.delete(requestId);
12319
- clearTimeout(entry.timer);
12320
- entry.resolve({
12321
- success: false,
12322
- code: "permission_required",
12323
- message: "bash command requires permission",
12324
- asks: response.asks
12325
- });
12326
- }
12327
- continue;
12328
- }
12329
- if (response.type === "bash_completed") {
12330
- this.onBashCompletion?.(response, this);
12331
- continue;
12332
- }
12333
- if (response.type === "bash_long_running") {
12334
- this.onBashLongRunning?.(response, this);
12335
- continue;
12336
- }
12337
- if (response.type === "bash_pattern_match") {
12338
- this.onBashPatternMatch?.(response, this);
12339
- continue;
12340
- }
12341
- if (response.type === "configure_warnings") {
12342
- this.handleConfigureWarningsFrame(response).catch((err) => {
12343
- this.warnVia(`configure warning delivery failed: ${err instanceof Error ? err.message : String(err)}`);
12344
- });
12345
- continue;
12346
- }
12347
- if (response.type === "status_changed") {
12348
- this.handleStatusChangedFrame(response);
12349
- continue;
12350
- }
12351
- const id = response.id;
12352
- if (id && this.pending.has(id)) {
12353
- const entry = this.pending.get(id);
12354
- if (!entry)
12355
- continue;
12356
- this.pending.delete(id);
12308
+ this.processStdoutLine(line);
12309
+ }
12310
+ }
12311
+ flushStdoutBuffer() {
12312
+ const line = this.stdoutBuffer.trim();
12313
+ this.stdoutBuffer = "";
12314
+ if (!line)
12315
+ return;
12316
+ this.processStdoutLine(line);
12317
+ }
12318
+ processStdoutLine(line) {
12319
+ try {
12320
+ const response = JSON.parse(line);
12321
+ this.lastChildActivityAt = Date.now();
12322
+ if (response.type === "progress") {
12323
+ const requestId = response.request_id;
12324
+ const entry = requestId ? this.pending.get(requestId) : undefined;
12325
+ const kind = response.kind === "stderr" ? "stderr" : "stdout";
12326
+ const text = typeof response.chunk === "string" ? response.chunk : "";
12327
+ entry?.onProgress?.({ kind, text });
12328
+ return;
12329
+ }
12330
+ if (response.type === "permission_ask") {
12331
+ const requestId = response.request_id;
12332
+ const entry = requestId ? this.pending.get(requestId) : undefined;
12333
+ if (requestId && entry) {
12334
+ this.pending.delete(requestId);
12357
12335
  clearTimeout(entry.timer);
12358
- this.consecutiveRequestTimeouts = 0;
12359
- this.scheduleRestartCountReset();
12360
- this.captureStatusBar(response);
12361
- entry.resolve(response);
12362
- } else if (typeof response.type === "string") {
12363
- this.logVia(`Ignoring unknown stdout push frame type: ${response.type}`);
12336
+ entry.resolve({
12337
+ success: false,
12338
+ code: "permission_required",
12339
+ message: "bash command requires permission",
12340
+ asks: response.asks
12341
+ });
12364
12342
  }
12365
- } catch (_err) {
12366
- this.warnVia(`Failed to parse stdout line: ${line}`);
12343
+ return;
12344
+ }
12345
+ if (response.type === "bash_completed") {
12346
+ this.onBashCompletion?.(response, this);
12347
+ return;
12348
+ }
12349
+ if (response.type === "bash_long_running") {
12350
+ this.onBashLongRunning?.(response, this);
12351
+ return;
12367
12352
  }
12353
+ if (response.type === "bash_pattern_match") {
12354
+ this.onBashPatternMatch?.(response, this);
12355
+ return;
12356
+ }
12357
+ if (response.type === "configure_warnings") {
12358
+ this.handleConfigureWarningsFrame(response).catch((err) => {
12359
+ this.warnVia(`configure warning delivery failed: ${err instanceof Error ? err.message : String(err)}`);
12360
+ });
12361
+ return;
12362
+ }
12363
+ if (response.type === "status_changed") {
12364
+ this.handleStatusChangedFrame(response);
12365
+ return;
12366
+ }
12367
+ const id = response.id;
12368
+ if (id && this.pending.has(id)) {
12369
+ const entry = this.pending.get(id);
12370
+ if (!entry)
12371
+ return;
12372
+ this.pending.delete(id);
12373
+ clearTimeout(entry.timer);
12374
+ this.consecutiveRequestTimeouts = 0;
12375
+ this.scheduleRestartCountReset();
12376
+ this.captureStatusBar(response);
12377
+ entry.resolve(response);
12378
+ } else if (typeof response.type === "string") {
12379
+ this.logVia(`Ignoring unknown stdout push frame type: ${response.type}`);
12380
+ }
12381
+ } catch (_err) {
12382
+ this.warnVia(`Failed to parse stdout line: ${line}`);
12368
12383
  }
12369
12384
  }
12370
12385
  captureStatusBar(response) {
@@ -14492,13 +14507,7 @@ function consumeBgCompletion(sessionID, taskId) {
14492
14507
  state.consumedTaskIds.delete(evicted);
14493
14508
  }
14494
14509
  }
14495
- if (state.pendingCompletions.length === 0 && state.pendingLongRunning.length === 0 && state.pendingPatternMatches.length === 0 && state.debounceTimer) {
14496
- clearTimeout(state.debounceTimer);
14497
- state.debounceTimer = null;
14498
- state.firstCompletionAt = null;
14499
- state.scheduledFireAt = null;
14500
- state.scheduledCompletionCount = 0;
14501
- }
14510
+ clearWakeTimerIfNoPending(state);
14502
14511
  }
14503
14512
  async function markBgCompletionDelivered(drainContext, taskId) {
14504
14513
  await ackCompletions(drainContext, [
@@ -14669,16 +14678,11 @@ async function appendInTurnBgCompletions(drainContext, output) {
14669
14678
  }
14670
14679
  state.pendingLongRunning = [];
14671
14680
  state.pendingPatternMatches = [];
14681
+ state.retryDelayMs = null;
14672
14682
  state.wakeRetryAttempts = 0;
14673
14683
  state.wakeHardStopped = false;
14674
14684
  await ackCompletions(drainContext, completionAcks);
14675
- if (state.debounceTimer) {
14676
- clearTimeout(state.debounceTimer);
14677
- state.debounceTimer = null;
14678
- state.firstCompletionAt = null;
14679
- state.scheduledFireAt = null;
14680
- state.scheduledCompletionCount = 0;
14681
- }
14685
+ clearWakeTimerIfNoPending(state);
14682
14686
  }
14683
14687
  async function handleIdleBgCompletions(drainContext) {
14684
14688
  stateFor(drainContext.sessionID).wakeDeferredTaskIds.clear();
@@ -14920,13 +14924,18 @@ function wakeEligibleCompletions(state, includeDeferredCompletions) {
14920
14924
  return state.pendingCompletions.filter((completion) => !state.wakeDeferredTaskIds.has(completion.task_id));
14921
14925
  }
14922
14926
  function clearWakeTimerIfNoPending(state) {
14923
- if (state.pendingCompletions.length === 0 && state.pendingLongRunning.length === 0 && state.pendingPatternMatches.length === 0 && state.debounceTimer) {
14924
- clearTimeout(state.debounceTimer);
14925
- state.debounceTimer = null;
14926
- state.firstCompletionAt = null;
14927
- state.scheduledFireAt = null;
14928
- state.scheduledCompletionCount = 0;
14927
+ if (state.pendingCompletions.length > 0 || state.pendingLongRunning.length > 0 || state.pendingPatternMatches.length > 0) {
14928
+ return;
14929
14929
  }
14930
+ if (state.debounceTimer)
14931
+ clearTimeout(state.debounceTimer);
14932
+ state.debounceTimer = null;
14933
+ state.firstCompletionAt = null;
14934
+ state.scheduledFireAt = null;
14935
+ state.scheduledCompletionCount = 0;
14936
+ state.retryDelayMs = null;
14937
+ state.wakeRetryAttempts = 0;
14938
+ state.wakeHardStopped = false;
14930
14939
  }
14931
14940
  function scheduleWake(state, sendWake, onSendFailure, sessionID, includeDeferredCompletions = true) {
14932
14941
  if (state.wakeHardStopped)
@@ -32986,6 +32995,7 @@ function isEmptyParam(value) {
32986
32995
  return Object.keys(value).length === 0;
32987
32996
  return false;
32988
32997
  }
32998
+ var BASH_TRANSPORT_TIMEOUT_MS = 30000;
32989
32999
  var LONG_RUNNING_COMMAND_TIMEOUT_MS = {
32990
33000
  callers: 60000,
32991
33001
  trace_to: 60000,
@@ -33121,6 +33131,13 @@ async function callBridge(ctx, runtime, command, params = {}, options) {
33121
33131
  ingestBgCompletions(runtime.sessionID, response.bg_completions);
33122
33132
  return response;
33123
33133
  }
33134
+ async function callBashBridge(ctx, runtime, command, params = {}, options) {
33135
+ return await callBridge(ctx, runtime, command, params, {
33136
+ transportTimeoutMs: BASH_TRANSPORT_TIMEOUT_MS,
33137
+ ...options,
33138
+ keepBridgeOnTimeout: true
33139
+ });
33140
+ }
33124
33141
 
33125
33142
  // src/tools/permissions.ts
33126
33143
  import * as fs4 from "node:fs";
@@ -33946,7 +33963,6 @@ function setCache2(sessionId, isSubagent) {
33946
33963
  var z5 = tool5.schema;
33947
33964
  var METADATA_PREVIEW_LIMIT = 30 * 1024;
33948
33965
  var FOREGROUND_POLL_INTERVAL_MS = 100;
33949
- var BASH_TRANSPORT_TIMEOUT_MS = 30000;
33950
33966
  var DEFAULT_HARD_TIMEOUT_MS = 30 * 60 * 1000;
33951
33967
  var BASH_DESCRIPTION = `Hoisted bash tool with output compression, command rewriting to AFT tools, optional background execution, and PTY mode for interactive programs. By default, output is compressed; pass compressed: false for raw output. Pass background: true to spawn in the background and get a taskId for bash_status/bash_kill. Pass pty: true for interactive REPLs and drive them with bash_status({ outputMode: "screen" }) plus bash_write (pty implies background automatically). Use bash_watch to block on or register for pattern matches and exit events.`;
33952
33968
  async function withPermissionLoop(ctx, runtime, params, bridgeCall, options) {
@@ -34018,9 +34034,7 @@ function createBashTool(ctx) {
34018
34034
  pty_rows: args.ptyRows,
34019
34035
  pty_cols: args.ptyCols,
34020
34036
  permissions_requested: true
34021
- }, callBridge, {
34022
- transportTimeoutMs: BASH_TRANSPORT_TIMEOUT_MS,
34023
- keepBridgeOnTimeout: true,
34037
+ }, callBashBridge, {
34024
34038
  onProgress: ({ text }) => {
34025
34039
  accumulatedOutput = preview(accumulatedOutput + text);
34026
34040
  metadata?.({ output: accumulatedOutput, description });
@@ -34052,7 +34066,7 @@ function createBashTool(ctx) {
34052
34066
  const waitTimeoutMs = subagentForcedForeground ? argTimeout ?? DEFAULT_HARD_TIMEOUT_MS : argTimeout !== undefined ? Math.min(argTimeout, foregroundWaitMs) : foregroundWaitMs;
34053
34067
  const startedAt = Date.now();
34054
34068
  while (true) {
34055
- const status = await callBridge(ctx, context, "bash_status", { task_id: taskId });
34069
+ const status = await callBashBridge(ctx, context, "bash_status", { task_id: taskId });
34056
34070
  if (status.success === false) {
34057
34071
  throw new Error(status.message ?? "bash_status failed");
34058
34072
  }
@@ -34073,7 +34087,9 @@ function createBashTool(ctx) {
34073
34087
  await sleep(FOREGROUND_POLL_INTERVAL_MS);
34074
34088
  continue;
34075
34089
  }
34076
- const promoted = await callBridge(ctx, context, "bash_promote", { task_id: taskId });
34090
+ const promoted = await callBashBridge(ctx, context, "bash_promote", {
34091
+ task_id: taskId
34092
+ });
34077
34093
  if (promoted.success === false) {
34078
34094
  throw new Error(promoted.message ?? "bash_promote failed");
34079
34095
  }
@@ -34154,7 +34170,7 @@ function createBashKillTool(ctx) {
34154
34170
  taskId: z5.string().describe("Background task ID returned by bash({ background: true }), e.g. bash-6b454047.")
34155
34171
  },
34156
34172
  execute: async (args, context) => {
34157
- const data = await callBridge(ctx, context, "bash_kill", {
34173
+ const data = await callBashBridge(ctx, context, "bash_kill", {
34158
34174
  task_id: args.taskId
34159
34175
  });
34160
34176
  if (data.success === false) {
@@ -34169,7 +34185,7 @@ function createBashKillTool(ctx) {
34169
34185
  };
34170
34186
  }
34171
34187
  async function bashStatusSnapshot(ctx, runtime, taskId, outputMode, options) {
34172
- const data = await callBridge(ctx, runtime, "bash_status", { task_id: taskId, output_mode: outputMode }, options);
34188
+ const data = await callBashBridge(ctx, runtime, "bash_status", { task_id: taskId, output_mode: outputMode }, options);
34173
34189
  if (data.success === false) {
34174
34190
  throw new Error(data.message ?? "bash_status failed");
34175
34191
  }
@@ -34307,7 +34323,6 @@ var z6 = tool6.schema;
34307
34323
  var BASH_WAIT_POLL_INTERVAL_MS = 100;
34308
34324
  var DEFAULT_BASH_STATUS_WAIT_TIMEOUT_MS = 30000;
34309
34325
  var MAX_BASH_STATUS_WAIT_TIMEOUT_MS = 300000;
34310
- var BASH_TRANSPORT_TIMEOUT_MS2 = 30000;
34311
34326
  var REGEX_WAIT_SCAN_WINDOW_BYTES = 64 * 1024;
34312
34327
  function createBashWatchTool(ctx) {
34313
34328
  return {
@@ -34342,7 +34357,7 @@ function createBashWatchTool(ctx) {
34342
34357
  markExplicitControl(context.sessionID, taskId, false);
34343
34358
  let registered;
34344
34359
  try {
34345
- registered = await callBridge(ctx, context, "bash_notify", notifyParams);
34360
+ registered = await callBashBridge(ctx, context, "bash_notify", notifyParams);
34346
34361
  } catch (err) {
34347
34362
  unmarkExplicitControl(context.sessionID, taskId);
34348
34363
  throw err;
@@ -34355,7 +34370,6 @@ function createBashWatchTool(ctx) {
34355
34370
  throw new Error(`invalid_request: ${message}`);
34356
34371
  throw new Error(`${code}: ${message}`);
34357
34372
  }
34358
- markExplicitControl(context.sessionID, taskId);
34359
34373
  const metadata2 = context.metadata;
34360
34374
  metadata2?.({ taskId, registered: true, watchId: registered.watch_id });
34361
34375
  return `Watch registered: ${registered.watch_id} on task ${taskId}
@@ -34398,7 +34412,7 @@ ${preview2.slice(0, 2000)}`;
34398
34412
  return text;
34399
34413
  }
34400
34414
  async function bashStatusSnapshot2(ctx, runtime, taskId, outputMode, options) {
34401
- const data = await callBridge(ctx, runtime, "bash_status", { task_id: taskId, output_mode: outputMode }, options);
34415
+ const data = await callBashBridge(ctx, runtime, "bash_status", { task_id: taskId, output_mode: outputMode }, options);
34402
34416
  if (data.success === false)
34403
34417
  throw new Error(data.message ?? "bash_status failed");
34404
34418
  return data;
@@ -34409,10 +34423,7 @@ async function waitForBashStatus(ctx, runtime, taskId, outputMode, waitFor, effe
34409
34423
  let spillCursor = { output: 0, stderr: 0, combined: 0 };
34410
34424
  let scanText = "";
34411
34425
  let scanBaseOffset = 0;
34412
- const bridgeOptions = {
34413
- keepBridgeOnTimeout: true,
34414
- transportTimeoutMs: BASH_TRANSPORT_TIMEOUT_MS2
34415
- };
34426
+ const bridgeOptions = {};
34416
34427
  markTaskWaiting(runtime.sessionID, taskId);
34417
34428
  let sawTerminal = false;
34418
34429
  try {
@@ -34598,7 +34609,7 @@ function createBashWriteTool(ctx) {
34598
34609
  ]).describe("Either a string of verbatim bytes (e.g. 'print(1)\\n') OR an array mixing strings " + "and { key: '<name>' } objects for atomic text+key sequences. " + "Example: [ 'iHello', { key: 'esc' }, ':wq', { key: 'enter' } ].")
34599
34610
  },
34600
34611
  execute: async (args, context) => {
34601
- const data = await callBridge(ctx, context, "bash_write", {
34612
+ const data = await callBashBridge(ctx, context, "bash_write", {
34602
34613
  task_id: args.taskId,
34603
34614
  input: args.input
34604
34615
  });
@@ -37465,8 +37476,8 @@ ${lines}
37465
37476
  delivery: projectConfig.configure_warnings_delivery ?? "toast"
37466
37477
  });
37467
37478
  },
37468
- onBashCompletion: (completion) => {
37469
- const sessionDir = getSessionDirectoryCached(completion.session_id) ?? input.directory;
37479
+ onBashCompletion: (completion, bridge) => {
37480
+ const sessionDir = bridge.getCwd();
37470
37481
  handlePushedBgCompletion({
37471
37482
  ctx,
37472
37483
  directory: sessionDir,
@@ -37475,8 +37486,8 @@ ${lines}
37475
37486
  serverUrl: input.serverUrl?.toString()
37476
37487
  }, completion);
37477
37488
  },
37478
- onBashLongRunning: (reminder) => {
37479
- const sessionDir = getSessionDirectoryCached(reminder.session_id) ?? input.directory;
37489
+ onBashLongRunning: (reminder, bridge) => {
37490
+ const sessionDir = bridge.getCwd();
37480
37491
  handlePushedBgLongRunning({
37481
37492
  ctx,
37482
37493
  directory: sessionDir,
@@ -37485,8 +37496,8 @@ ${lines}
37485
37496
  serverUrl: input.serverUrl?.toString()
37486
37497
  }, reminder);
37487
37498
  },
37488
- onBashPatternMatch: (frame) => {
37489
- const sessionDir = getSessionDirectoryCached(frame.session_id) ?? input.directory;
37499
+ onBashPatternMatch: (frame, bridge) => {
37500
+ const sessionDir = bridge.getCwd();
37490
37501
  handlePushedPatternMatch({
37491
37502
  ctx,
37492
37503
  directory: sessionDir,
@@ -77,6 +77,7 @@ export declare function isEmptyParam(value: unknown): boolean;
77
77
  * file tree or wait on external I/O (embedding API, index build). The
78
78
  * goal is to absorb slow first-call spikes without masking real hangs.
79
79
  */
80
+ export declare const BASH_TRANSPORT_TIMEOUT_MS = 30000;
80
81
  export declare const LONG_RUNNING_COMMAND_TIMEOUT_MS: Record<string, number>;
81
82
  /** Returns the per-command timeout override, or undefined to use the bridge default. */
82
83
  export declare function timeoutForCommand(command: string): number | undefined;
@@ -160,6 +161,13 @@ export declare function bridgeFor(ctx: PluginContext, runtime: ToolRuntime): Bin
160
161
  * session identifier still work — they just share undo/checkpoint state.
161
162
  */
162
163
  export declare function callBridge(ctx: PluginContext, runtime: ToolRuntime, command: string, params?: Record<string, unknown>, options?: BridgeRequestOptions): Promise<Record<string, unknown>>;
164
+ /**
165
+ * Send a bash-family command without restarting the shared bridge on transport
166
+ * timeout. Bash has its own child-process timeout/watchdog handling; a late
167
+ * transport response must not sacrifice the warm shared bridge and reject
168
+ * unrelated sibling requests.
169
+ */
170
+ export declare function callBashBridge(ctx: PluginContext, runtime: ToolRuntime, command: string, params?: Record<string, unknown>, options?: BridgeRequestOptions): Promise<Record<string, unknown>>;
163
171
  /**
164
172
  * Eagerly warm the session-directory cache for a runtime. Safe to call from
165
173
  * synchronous code — the lookup runs in the background and failures are
@@ -1 +1 @@
1
- {"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/tools/_shared.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAQhF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,eAAO,MAAM,WAAW,GAAI,KAAK,MAAM,EAAE,KAAK,MAAM,KAAG,GACR,CAAC;AAEhD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,CAAC,EAAE,OAAO,EACV,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CAWpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAMpD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,+BAA+B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CASlE,CAAC;AAEF,wFAAwF;AACxF,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAErE;AA2BD,8EAA8E;AAC9E,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACnC,MAAM,CAsDR;AAsBD;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAW3D;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQjD;AAED;;2BAE2B;AAC3B,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAGtF;AAED,wBAAsB,cAAc,CAClC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,YAAY,CAEhF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACpC,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA0BlC;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,GAAG,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAE9F"}
1
+ {"version":3,"file":"_shared.d.ts","sourceRoot":"","sources":["../../src/tools/_shared.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAavE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA2EjD,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,CA4QjE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,CAyBvE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,CAuBrE"}
1
+ {"version":3,"file":"bash.d.ts","sourceRoot":"","sources":["../../src/tools/bash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAavE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAmEjD,wBAAgB,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,CAuQjE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,CAyBvE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,CAuBrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"bash_watch.d.ts","sourceRoot":"","sources":["../../src/tools/bash_watch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAavE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjD,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACrD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AACF,KAAK,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAGlF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,CAyFtE;AAiDD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC,CA+D7B;AA6DD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAK5E;AA4DD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAEtC"}
1
+ {"version":3,"file":"bash_watch.d.ts","sourceRoot":"","sources":["../../src/tools/bash_watch.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAavE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASjD,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AACrD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AACF,KAAK,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAGlF,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,GAAG,cAAc,CAwFtE;AAiDD,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,eAAe,GAAG,SAAS,EACpC,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC,CA4D7B;AA6DD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,eAAe,GAAG,SAAS,CAK5E;AA4DD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAEtC"}
package/dist/tui.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // src/tui/index.tsx
2
2
  import { createMemo as createMemo2, createSignal as createSignal2, onCleanup as onCleanup2 } from "solid-js";
3
3
  // package.json
4
- var version = "0.35.3";
4
+ var version = "0.35.4";
5
5
 
6
6
  // src/shared/rpc-client.ts
7
7
  import { existsSync, readdirSync, readFileSync, unlinkSync } from "node:fs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/aft-opencode",
3
- "version": "0.35.3",
3
+ "version": "0.35.4",
4
4
  "type": "module",
5
5
  "description": "OpenCode plugin for Agent File Tools (AFT) — tree-sitter and lsp powered code analysis",
6
6
  "main": "dist/index.js",
@@ -30,19 +30,19 @@
30
30
  },
31
31
  "dependencies": {
32
32
  "@clack/prompts": "^1.2.0",
33
- "@cortexkit/aft-bridge": "0.35.3",
33
+ "@cortexkit/aft-bridge": "0.35.4",
34
34
  "@xterm/headless": "^5.5.0",
35
35
  "comment-json": "^4.6.2",
36
36
  "undici": "^7.25.0",
37
37
  "zod": "^4.1.8"
38
38
  },
39
39
  "optionalDependencies": {
40
- "@cortexkit/aft-darwin-arm64": "0.35.3",
41
- "@cortexkit/aft-darwin-x64": "0.35.3",
42
- "@cortexkit/aft-linux-arm64": "0.35.3",
43
- "@cortexkit/aft-linux-x64": "0.35.3",
44
- "@cortexkit/aft-win32-arm64": "0.35.3",
45
- "@cortexkit/aft-win32-x64": "0.35.3"
40
+ "@cortexkit/aft-darwin-arm64": "0.35.4",
41
+ "@cortexkit/aft-darwin-x64": "0.35.4",
42
+ "@cortexkit/aft-linux-arm64": "0.35.4",
43
+ "@cortexkit/aft-linux-x64": "0.35.4",
44
+ "@cortexkit/aft-win32-arm64": "0.35.4",
45
+ "@cortexkit/aft-win32-x64": "0.35.4"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@opencode-ai/plugin": "^1.15.11",