@cortexkit/aft-opencode 0.56.1 → 0.56.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/config.d.ts CHANGED
@@ -104,6 +104,7 @@ export declare const AftConfigSchema: z.ZodPreprocess<z.ZodObject<{
104
104
  enabled: z.ZodOptional<z.ZodBoolean>;
105
105
  diagnostics_timeout_ms: z.ZodPipe<z.ZodOptional<z.ZodNumber>, z.ZodTransform<number | undefined, number | undefined>>;
106
106
  tier2_idle_minutes: z.ZodOptional<z.ZodNumber>;
107
+ tier2_pass_timeout_ms: z.ZodOptional<z.ZodNumber>;
107
108
  categories: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
108
109
  tier2_soft_deadline_ms: z.ZodOptional<z.ZodNumber>;
109
110
  max_drill_down_items: z.ZodOptional<z.ZodNumber>;
@@ -298,6 +299,7 @@ export declare const AftConfigSchema: z.ZodPreprocess<z.ZodObject<{
298
299
  enabled: z.ZodOptional<z.ZodBoolean>;
299
300
  diagnostics_timeout_ms: z.ZodPipe<z.ZodOptional<z.ZodNumber>, z.ZodTransform<number | undefined, number | undefined>>;
300
301
  tier2_idle_minutes: z.ZodOptional<z.ZodNumber>;
302
+ tier2_pass_timeout_ms: z.ZodOptional<z.ZodNumber>;
301
303
  categories: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodBoolean>>;
302
304
  tier2_soft_deadline_ms: z.ZodOptional<z.ZodNumber>;
303
305
  max_drill_down_items: z.ZodOptional<z.ZodNumber>;
@@ -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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"}
@@ -8677,6 +8677,7 @@ class BinaryBridge {
8677
8677
  pending = new Map;
8678
8678
  outstandingBackgroundTaskIds = new Set;
8679
8679
  nextId = 1;
8680
+ processGeneration = 0;
8680
8681
  stdoutBuffer = "";
8681
8682
  stdoutReadOffset = 0;
8682
8683
  stderrBuffer = "";
@@ -8989,6 +8990,7 @@ class BinaryBridge {
8989
8990
  }
8990
8991
  }
8991
8992
  const id = String(this.nextId++);
8993
+ const tool = command === "tool_call" && typeof params.name === "string" ? params.name : command;
8992
8994
  let request;
8993
8995
  if (command === "cancel_request" || Object.hasOwn(params, "command") || Object.hasOwn(params, "method")) {
8994
8996
  const nested = { ...params };
@@ -9042,14 +9044,20 @@ class BinaryBridge {
9042
9044
  return;
9043
9045
  }
9044
9046
  entry.reject(new Error(`${this.errorPrefix} Request "${command}" (id=${id}) timed out after ${effectiveTimeoutMs}ms`));
9045
- this.handleTimeout(requestSessionId);
9047
+ this.handleTimeout({
9048
+ requestId: id,
9049
+ tool: entry.tool,
9050
+ generation: entry.generation
9051
+ }, requestSessionId);
9046
9052
  }, effectiveTimeoutMs);
9047
9053
  const entry = {
9048
9054
  resolve,
9049
9055
  reject,
9050
9056
  timer,
9051
9057
  onProgress: options?.onProgress,
9052
- command
9058
+ command,
9059
+ tool,
9060
+ generation: this.processGeneration
9053
9061
  };
9054
9062
  this.pending.set(id, entry);
9055
9063
  if (!child?.stdin?.writable) {
@@ -9352,6 +9360,7 @@ class BinaryBridge {
9352
9360
  this.handleCrash();
9353
9361
  });
9354
9362
  this.process = child;
9363
+ this.processGeneration += 1;
9355
9364
  this.spawnedBinaryFingerprint = readBinaryFingerprint(this.binaryPath);
9356
9365
  this.lastBinaryFingerprintCheckAt = Date.now();
9357
9366
  this.stdoutBuffer = "";
@@ -9523,10 +9532,15 @@ class BinaryBridge {
9523
9532
  this.outstandingBackgroundTaskIds.add(taskId);
9524
9533
  }
9525
9534
  }
9526
- handleTimeout(triggeringSessionId) {
9535
+ handleTimeout(trigger, triggeringSessionId) {
9527
9536
  this.consecutiveRequestTimeouts = 0;
9528
9537
  this.spawnedBinaryFingerprint = null;
9529
- this.rejectAllPending(new BridgeTransportUnknownOutcomeError(`${this.errorPrefix} bridge killed during sibling timeout — request aborted`));
9538
+ const abortedSiblings = Array.from(this.pending, ([requestId, entry]) => ({
9539
+ request_id: requestId,
9540
+ tool: entry.tool
9541
+ }));
9542
+ const attribution = `triggering_request_id=${trigger.requestId} ` + `triggering_tool=${JSON.stringify(trigger.tool)} ` + `bridge_generation=${trigger.generation} ` + `aborted_siblings=${JSON.stringify(abortedSiblings)}`;
9543
+ this.rejectAllPending(new BridgeTransportUnknownOutcomeError(`${this.errorPrefix} bridge killed during sibling timeout — request aborted; ${attribution}`));
9530
9544
  this.outstandingBackgroundTaskIds.clear();
9531
9545
  if (this.process) {
9532
9546
  this.process.kill("SIGKILL");
@@ -9536,17 +9550,11 @@ class BinaryBridge {
9536
9550
  this.configured = false;
9537
9551
  const tail = this.formatStderrTail();
9538
9552
  this.stderrTail = [];
9539
- const killedMsg = tail ? `Bridge killed after timeout.${tail}` : `Bridge killed after timeout (see ${this.getLogFilePathVia()})`;
9540
- if (tail) {
9541
- if (triggeringSessionId) {
9542
- this.sessionErrorVia(triggeringSessionId, killedMsg);
9543
- } else {
9544
- this.errorVia(killedMsg);
9545
- }
9546
- } else if (triggeringSessionId) {
9547
- this.sessionWarnVia(triggeringSessionId, killedMsg);
9553
+ const killedMsg = tail ? `Bridge killed after timeout; ${attribution}.${tail}` : `Bridge killed after timeout; ${attribution} (see ${this.getLogFilePathVia()})`;
9554
+ if (triggeringSessionId) {
9555
+ this.sessionErrorVia(triggeringSessionId, killedMsg);
9548
9556
  } else {
9549
- this.warnVia(killedMsg);
9557
+ this.errorVia(killedMsg);
9550
9558
  }
9551
9559
  }
9552
9560
  handleCrash(cause) {
@@ -21492,6 +21500,9 @@ function write(level, message, data, sessionId) {
21492
21500
  function log2(message, data) {
21493
21501
  write("INFO", message, data);
21494
21502
  }
21503
+ function debug2(message, data) {
21504
+ write("DEBUG", message, data);
21505
+ }
21495
21506
  function warn2(message, data) {
21496
21507
  write("WARN", message, data);
21497
21508
  }
@@ -21690,6 +21701,7 @@ var InspectConfigSchema = object({
21690
21701
  enabled: boolean2().optional(),
21691
21702
  diagnostics_timeout_ms: number2().int().positive().optional().transform((value) => value === undefined ? undefined : clampInspectDiagnosticsTimeoutMs(value)),
21692
21703
  tier2_idle_minutes: number2().min(0).optional(),
21704
+ tier2_pass_timeout_ms: number2().int().positive().optional(),
21693
21705
  categories: record(string2(), boolean2()).optional(),
21694
21706
  tier2_soft_deadline_ms: number2().int().positive().optional(),
21695
21707
  max_drill_down_items: number2().int().positive().max(100).optional(),
@@ -44000,7 +44012,7 @@ function semanticTools(ctx) {
44000
44012
  `),
44001
44013
  args: {
44002
44014
  query: arg3(z13.string().describe("Concept, regex, literal text, filename, or capability to find. Examples: 'fuzzy match with whitespace tolerance', '^export', 'Cargo.lock'.")),
44003
- topK: arg3(optionalInt(1, 100).describe("Number of results (default: 10, max: 100)")),
44015
+ topK: arg3(optionalInt(1, 50).describe("Number of results (default: 10, max: 50)")),
44004
44016
  offset: arg3(optionalInt(0, 1e5).describe("Zero-based result offset (default: 0, max: 100000).")),
44005
44017
  includeTests: arg3(z13.boolean().optional().describe("Include test files (*.test.*, *_test.rs, __tests__/, …) plus test-support, fixture, mock, snapshot, and corpus files. Defaults to false.")),
44006
44018
  path: arg3(z13.string().optional().describe("Only set this to search a different Git project (absolute or ~ path). Omit it for the current configured workspace, including non-Git workspace roots; this is not a subdirectory filter. Unindexed external projects use a bounded lexical fallback."))
@@ -44016,7 +44028,7 @@ function semanticTools(ctx) {
44016
44028
  if (denied)
44017
44029
  return permissionDeniedResponse(denied);
44018
44030
  const rawArgs = { query };
44019
- const topK = coerceOptionalInt(args.topK, "topK", 1, 100);
44031
+ const topK = coerceOptionalInt(args.topK, "topK", 1, 50);
44020
44032
  const offset = coerceOptionalInt(args.offset, "offset", 0, 1e5);
44021
44033
  const includeTests = typeof args.includeTests === "boolean" ? args.includeTests : undefined;
44022
44034
  if (topK !== undefined)
@@ -45460,6 +45472,11 @@ function makeServerEffect(overrides = {}) {
45460
45472
  const dependencies = { ...defaults, ...overrides };
45461
45473
  return (context) => {
45462
45474
  const location = context.location;
45475
+ if (typeof location?.directory !== "string") {
45476
+ debug2("V2 effect skipped: host context has no location");
45477
+ return Effect5.void;
45478
+ }
45479
+ log2("AFT V2 runtime starting");
45463
45480
  return Effect5.gen(function* () {
45464
45481
  const runtime = yield* Effect5.promise(() => bootLocation(context, location, dependencies));
45465
45482
  if (!runtime)
package/dist/index.js CHANGED
@@ -8677,6 +8677,7 @@ class BinaryBridge {
8677
8677
  pending = new Map;
8678
8678
  outstandingBackgroundTaskIds = new Set;
8679
8679
  nextId = 1;
8680
+ processGeneration = 0;
8680
8681
  stdoutBuffer = "";
8681
8682
  stdoutReadOffset = 0;
8682
8683
  stderrBuffer = "";
@@ -8989,6 +8990,7 @@ class BinaryBridge {
8989
8990
  }
8990
8991
  }
8991
8992
  const id = String(this.nextId++);
8993
+ const tool = command === "tool_call" && typeof params.name === "string" ? params.name : command;
8992
8994
  let request;
8993
8995
  if (command === "cancel_request" || Object.hasOwn(params, "command") || Object.hasOwn(params, "method")) {
8994
8996
  const nested = { ...params };
@@ -9042,14 +9044,20 @@ class BinaryBridge {
9042
9044
  return;
9043
9045
  }
9044
9046
  entry.reject(new Error(`${this.errorPrefix} Request "${command}" (id=${id}) timed out after ${effectiveTimeoutMs}ms`));
9045
- this.handleTimeout(requestSessionId);
9047
+ this.handleTimeout({
9048
+ requestId: id,
9049
+ tool: entry.tool,
9050
+ generation: entry.generation
9051
+ }, requestSessionId);
9046
9052
  }, effectiveTimeoutMs);
9047
9053
  const entry = {
9048
9054
  resolve,
9049
9055
  reject,
9050
9056
  timer,
9051
9057
  onProgress: options?.onProgress,
9052
- command
9058
+ command,
9059
+ tool,
9060
+ generation: this.processGeneration
9053
9061
  };
9054
9062
  this.pending.set(id, entry);
9055
9063
  if (!child?.stdin?.writable) {
@@ -9352,6 +9360,7 @@ class BinaryBridge {
9352
9360
  this.handleCrash();
9353
9361
  });
9354
9362
  this.process = child;
9363
+ this.processGeneration += 1;
9355
9364
  this.spawnedBinaryFingerprint = readBinaryFingerprint(this.binaryPath);
9356
9365
  this.lastBinaryFingerprintCheckAt = Date.now();
9357
9366
  this.stdoutBuffer = "";
@@ -9523,10 +9532,15 @@ class BinaryBridge {
9523
9532
  this.outstandingBackgroundTaskIds.add(taskId);
9524
9533
  }
9525
9534
  }
9526
- handleTimeout(triggeringSessionId) {
9535
+ handleTimeout(trigger, triggeringSessionId) {
9527
9536
  this.consecutiveRequestTimeouts = 0;
9528
9537
  this.spawnedBinaryFingerprint = null;
9529
- this.rejectAllPending(new BridgeTransportUnknownOutcomeError(`${this.errorPrefix} bridge killed during sibling timeout — request aborted`));
9538
+ const abortedSiblings = Array.from(this.pending, ([requestId, entry]) => ({
9539
+ request_id: requestId,
9540
+ tool: entry.tool
9541
+ }));
9542
+ const attribution = `triggering_request_id=${trigger.requestId} ` + `triggering_tool=${JSON.stringify(trigger.tool)} ` + `bridge_generation=${trigger.generation} ` + `aborted_siblings=${JSON.stringify(abortedSiblings)}`;
9543
+ this.rejectAllPending(new BridgeTransportUnknownOutcomeError(`${this.errorPrefix} bridge killed during sibling timeout — request aborted; ${attribution}`));
9530
9544
  this.outstandingBackgroundTaskIds.clear();
9531
9545
  if (this.process) {
9532
9546
  this.process.kill("SIGKILL");
@@ -9536,17 +9550,11 @@ class BinaryBridge {
9536
9550
  this.configured = false;
9537
9551
  const tail = this.formatStderrTail();
9538
9552
  this.stderrTail = [];
9539
- const killedMsg = tail ? `Bridge killed after timeout.${tail}` : `Bridge killed after timeout (see ${this.getLogFilePathVia()})`;
9540
- if (tail) {
9541
- if (triggeringSessionId) {
9542
- this.sessionErrorVia(triggeringSessionId, killedMsg);
9543
- } else {
9544
- this.errorVia(killedMsg);
9545
- }
9546
- } else if (triggeringSessionId) {
9547
- this.sessionWarnVia(triggeringSessionId, killedMsg);
9553
+ const killedMsg = tail ? `Bridge killed after timeout; ${attribution}.${tail}` : `Bridge killed after timeout; ${attribution} (see ${this.getLogFilePathVia()})`;
9554
+ if (triggeringSessionId) {
9555
+ this.sessionErrorVia(triggeringSessionId, killedMsg);
9548
9556
  } else {
9549
- this.warnVia(killedMsg);
9557
+ this.errorVia(killedMsg);
9550
9558
  }
9551
9559
  }
9552
9560
  handleCrash(cause) {
@@ -21492,6 +21500,9 @@ function write(level, message, data, sessionId) {
21492
21500
  function log2(message, data) {
21493
21501
  write("INFO", message, data);
21494
21502
  }
21503
+ function debug2(message, data) {
21504
+ write("DEBUG", message, data);
21505
+ }
21495
21506
  function warn2(message, data) {
21496
21507
  write("WARN", message, data);
21497
21508
  }
@@ -21690,6 +21701,7 @@ var InspectConfigSchema = object({
21690
21701
  enabled: boolean2().optional(),
21691
21702
  diagnostics_timeout_ms: number2().int().positive().optional().transform((value) => value === undefined ? undefined : clampInspectDiagnosticsTimeoutMs(value)),
21692
21703
  tier2_idle_minutes: number2().min(0).optional(),
21704
+ tier2_pass_timeout_ms: number2().int().positive().optional(),
21693
21705
  categories: record(string2(), boolean2()).optional(),
21694
21706
  tier2_soft_deadline_ms: number2().int().positive().optional(),
21695
21707
  max_drill_down_items: number2().int().positive().max(100).optional(),
@@ -44000,7 +44012,7 @@ function semanticTools(ctx) {
44000
44012
  `),
44001
44013
  args: {
44002
44014
  query: arg3(z13.string().describe("Concept, regex, literal text, filename, or capability to find. Examples: 'fuzzy match with whitespace tolerance', '^export', 'Cargo.lock'.")),
44003
- topK: arg3(optionalInt(1, 100).describe("Number of results (default: 10, max: 100)")),
44015
+ topK: arg3(optionalInt(1, 50).describe("Number of results (default: 10, max: 50)")),
44004
44016
  offset: arg3(optionalInt(0, 1e5).describe("Zero-based result offset (default: 0, max: 100000).")),
44005
44017
  includeTests: arg3(z13.boolean().optional().describe("Include test files (*.test.*, *_test.rs, __tests__/, …) plus test-support, fixture, mock, snapshot, and corpus files. Defaults to false.")),
44006
44018
  path: arg3(z13.string().optional().describe("Only set this to search a different Git project (absolute or ~ path). Omit it for the current configured workspace, including non-Git workspace roots; this is not a subdirectory filter. Unindexed external projects use a bounded lexical fallback."))
@@ -44016,7 +44028,7 @@ function semanticTools(ctx) {
44016
44028
  if (denied)
44017
44029
  return permissionDeniedResponse(denied);
44018
44030
  const rawArgs = { query };
44019
- const topK = coerceOptionalInt(args.topK, "topK", 1, 100);
44031
+ const topK = coerceOptionalInt(args.topK, "topK", 1, 50);
44020
44032
  const offset = coerceOptionalInt(args.offset, "offset", 0, 1e5);
44021
44033
  const includeTests = typeof args.includeTests === "boolean" ? args.includeTests : undefined;
44022
44034
  if (topK !== undefined)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cortexkit/aft-opencode",
3
- "version": "0.56.1",
3
+ "version": "0.56.2",
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",
@@ -36,7 +36,7 @@
36
36
  },
37
37
  "dependencies": {
38
38
  "@clack/prompts": "^1.6.0",
39
- "@cortexkit/aft-bridge": "0.56.1",
39
+ "@cortexkit/aft-bridge": "0.56.2",
40
40
  "@opentui/core": "0.4.3",
41
41
  "@opentui/solid": "0.4.3",
42
42
  "comment-json": "^4.6.2",
@@ -46,12 +46,12 @@
46
46
  "zod": "^4.4.3"
47
47
  },
48
48
  "optionalDependencies": {
49
- "@cortexkit/aft-darwin-arm64": "0.56.1",
50
- "@cortexkit/aft-darwin-x64": "0.56.1",
51
- "@cortexkit/aft-linux-arm64": "0.56.1",
52
- "@cortexkit/aft-linux-x64": "0.56.1",
53
- "@cortexkit/aft-win32-arm64": "0.56.1",
54
- "@cortexkit/aft-win32-x64": "0.56.1"
49
+ "@cortexkit/aft-darwin-arm64": "0.56.2",
50
+ "@cortexkit/aft-darwin-x64": "0.56.2",
51
+ "@cortexkit/aft-linux-arm64": "0.56.2",
52
+ "@cortexkit/aft-linux-x64": "0.56.2",
53
+ "@cortexkit/aft-win32-arm64": "0.56.2",
54
+ "@cortexkit/aft-win32-x64": "0.56.2"
55
55
  },
56
56
  "devDependencies": {
57
57
  "@opencode-ai/plugin": "^1.17.11",
@@ -11,6 +11,7 @@ import {
11
11
  loadAftConfig,
12
12
  resolveBridgePoolTransportOptions,
13
13
  } from "../config.js";
14
+ import { debug, log } from "../logger.js";
14
15
  import { resolvePluginVersion } from "../plugin-version.js";
15
16
  import { registerAftRpc } from "../rpc/register.js";
16
17
  import { hoistedV2ToolConsumers } from "../tools/hoisted/v2.js";
@@ -83,6 +84,16 @@ export function makeServerEffect(overrides = {}) {
83
84
  // The V2 host already resolved the Location before invoking the plugin. Capture
84
85
  // it now so every registration and transport route belongs to that exact scope.
85
86
  const location = context.location;
87
+ // A V1 host's bundled core loader can decode {id, effect} and call this
88
+ // function with a PluginHost context that has no location. Throws inside the
89
+ // boot body are discarded by Effect.ignoreCause, so skip when that
90
+ // capability is missing rather than relying on the throw.
91
+ if (typeof location?.directory !== "string") {
92
+ debug("V2 effect skipped: host context has no location");
93
+ return Effect.void;
94
+ }
95
+
96
+ log("AFT V2 runtime starting");
86
97
 
87
98
  return Effect.gen(function* () {
88
99
  const runtime = yield* Effect.promise(() => bootLocation(context, location, dependencies));