Short description
error: could not determine executable to run for package @cortexkit/aft-opencode
What happened?
Expected:
Successfully edit text using AFT's edit tool.
Observed issues:
grok 4.5 is unable to successfully edit files using AFT's edit.
It seems impossible to pass both the oldString and newString parameters at the same time.
Tried various methods.
Had the model first outline the call parameters, reflect on them, and then make the call. -> Failed
Had GLM successfully make the call once within the context, then switched to grok 4.5 and had grok make the call. -> Failed
After uninstalling the AFT plugin, grok successfully calls edit to modify the text without errors.
Reproduction
After installing the AFT plugin in opencode, use Build mode to have grok 4.5 modify a line in the md file to new content.
Environment
- AFT CLI: v0.46.0
- AFT binary: 0.46.0
- OS: linux x64
- Node: v24.14.0
- Session: ses_0b354e978ffe9GHKwn06puj7V0 (test edit)
Diagnostics
- Timestamp: 2026-07-10T15:50:28.086Z
- AFT CLI: v0.46.0
- AFT binary: 0.46.0
- OS: linux x64
- Node: v24.14.0
OpenCode
- Host installed: true
- Host version: 1.17.18
- Plugin registered: true
- Plugin version: 0.46.0
- AFT enabled: true
- AFT config parse error: none
Config paths
{
"configDir": "~/.config/opencode",
"harnessConfig": "~/.config/opencode/opencode.jsonc",
"harnessConfigFormat": "jsonc",
"aftConfig": "~/.config/cortexkit/aft.jsonc",
"aftConfigFormat": "jsonc",
"tuiConfig": "~/.config/opencode/tui.json",
"tuiConfigFormat": "json"
}
AFT flags
{
"$schema": "https://raw.githubusercontent.com/cortexkit/aft/main/assets/aft.schema.json",
"search_index": true
}
Plugin cache
{
"path": "~/.cache/opencode/packages/@cortexkit/aft-opencode@latest",
"cached": "0.46.0",
"latest": "0.46.0",
"exists": true
}
Storage
{
"path": "~/.local/share/cortexkit/aft",
"exists": true,
"accessible": true,
"sizesByKey": {
"index": 75356334,
"semantic": 0,
"backups": 0,
"url_cache": 0,
"onnxruntime": 0
}
}
ONNX Runtime
{
"required": false,
"systemPath": null,
"systemVersion": null,
"systemCompatible": null,
"cachedPath": null,
"cachedVersion": null,
"cachedCompatible": null,
"platform": "linux-x64",
"installHint": "AFT auto-downloads ONNX Runtime on supported Linux (glibc)",
"requirement": ">=1.20"
}
Log file
/tmp/aft-plugin.log (3585 KB)
Binary cache
{
"versions": [
"v0.39.4",
"v0.40.1",
"v0.40.2",
"v0.40.3",
"v0.41.0",
"v0.42.0",
"v0.43.1",
"v0.44.0",
"v0.45.0",
"v0.45.1",
"v0.46.0"
],
"activeVersion": "v0.46.0",
"totalSize": 776312064,
"path": "~/.cache/aft/bin"
}
LSP cache
{
"npm": {
"path": "~/.cache/aft/lsp-packages",
"entries": [
{
"name": "intelephense",
"path": "~/.cache/aft/lsp-packages/intelephense",
"size": 133268378
},
{
"name": "@biomejs/biome",
"path": "~/.cache/aft/lsp-packages/%40biomejs%2Fbiome",
"size": 63753221
},
{
"name": "@vue/language-server",
"path": "~/.cache/aft/lsp-packages/%40vue%2Flanguage-server",
"size": 48002855
},
{
"name": "pyright",
"path": "~/.cache/aft/lsp-packages/pyright",
"size": 19286299
},
{
"name": "yaml-language-server",
"path": "~/.cache/aft/lsp-packages/yaml-language-server",
"size": 18337425
},
{
"name": "bash-language-server",
"path": "~/.cache/aft/lsp-packages/bash-language-server",
"size": 14513989
},
{
"name": "typescript-language-server",
"path": "~/.cache/aft/lsp-packages/typescript-language-server",
"size": 3226478
},
{
"name": "dockerfile-language-server-nodejs",
"path": "~/.cache/aft/lsp-packages/dockerfile-language-server-nodejs",
"size": 2464632
},
{
"name": "clangd/clangd",
"path": "~/.cache/aft/lsp-packages/clangd%2Fclangd",
"size": 79
}
],
"totalSize": 302853356
},
"github": {
"path": "~/.cache/aft/lsp-binaries",
"entries": [
{
"name": "clangd",
"path": "~/.cache/aft/lsp-binaries/clangd",
"size": 373473970
}
],
"totalSize": 373473970
},
"totalSize": 676327326
}
Recent errors (last 20, sanitized)
[2026-07-07T11:16:06.291Z] ERROR [aft-plugin] [lsp] extract clangd failed: Error: Executable not found in $PATH: "unzip"
Recent AFT tool failures
- status: timed out after 5000ms ×10
- error: ERROR log line ×3
- spawn: failed to spawn ×2
Logs (last 200 lines per harness)
OpenCode log (/tmp/aft-plugin.log)
[2026-07-10T15:12:14.372Z] INFO [aft-plugin] [aft] acquired filesystem <USER> at ~/.local/share/cortexkit/aft/index/9a051fd9ab7cdfc6/cache.<USER>
[2026-07-10T15:12:14.476Z] INFO [aft-plugin] [aft] search index cold streaming build: 389 files, 48812 trigrams, 103 ms (pool=8)
[2026-07-10T15:12:14.535Z] INFO [aft-plugin] [aft] released filesystem <USER> at ~/.local/share/cortexkit/aft/index/9a051fd9ab7cdfc6/cache.<USER>
[2026-07-10T15:12:14.623Z] INFO [aft-plugin] [aft] acquired filesystem <USER> at ~/.local/share/cortexkit/aft/index/9a051fd9ab7cdfc6/cache.<USER>
[2026-07-10T15:12:14.727Z] INFO [aft-plugin] [aft] search index cold streaming build: 389 files, 48812 trigrams, 104 ms (pool=8)
[2026-07-10T15:12:14.788Z] INFO [aft-plugin] [aft] released filesystem <USER> at ~/.local/share/cortexkit/aft/index/9a051fd9ab7cdfc6/cache.<USER>
[2026-07-10T15:13:25.179Z] INFO [aft-plugin] [aft] tier2 dead_code: refreshed callgraph store at ~/.local/share/cortexkit/aft/opencode/callgraph for 1 watcher path(s): changed=1 deleted=0 refreshed_own=1
[2026-07-10T15:13:25.259Z] INFO [aft-plugin] [aft] perf tier2_callgraph_snapshot: source=callgraph_store files=373 exports=0 edges=15397 entry_points=1 ms=149
[2026-07-10T15:13:25.511Z] INFO [aft-plugin] [aft] perf tier2 phases category=dead_code freshness=7ms snapshot=156ms scan=100ms(1 files) db=24ms rollup=117ms
[2026-07-10T15:13:25.511Z] INFO [aft-plugin] [aft] perf tier2 category=dead_code reuse=miss ms=423
[2026-07-10T15:13:25.662Z] INFO [aft-plugin] [aft] perf tier2 phases category=unused_exports freshness=7ms snapshot=0ms scan=65ms(1 files) db=25ms rollup=44ms
[2026-07-10T15:13:25.662Z] INFO [aft-plugin] [aft] perf tier2 category=unused_exports reuse=miss ms=158
[2026-07-10T15:13:25.719Z] INFO [aft-plugin] [aft] perf tier2 category=duplicates reuse=miss ms=56
[2026-07-10T15:13:25.810Z] INFO [aft-plugin] [aft] perf tier2 phases category=cycles freshness=7ms snapshot=0ms scan=32ms(373 files) db=26ms rollup=0ms
[2026-07-10T15:13:25.810Z] INFO [aft-plugin] [aft] perf tier2 category=cycles reuse=miss ms=85
[2026-07-10T15:18:25.186Z] INFO [aft-plugin] [aft] tier2 dead_code: refreshed callgraph store at ~/.local/share/cortexkit/aft/opencode/callgraph for 1 watcher path(s): changed=1 deleted=0 refreshed_own=1
[2026-07-10T15:18:25.256Z] INFO [aft-plugin] [aft] perf tier2_callgraph_snapshot: source=callgraph_store files=373 exports=0 edges=15397 entry_points=1 ms=153
[2026-07-10T15:18:25.530Z] INFO [aft-plugin] [aft] perf tier2 phases category=dead_code freshness=1ms snapshot=163ms scan=104ms(1 files) db=25ms rollup=131ms
[2026-07-10T15:18:25.530Z] INFO [aft-plugin] [aft] perf tier2 category=dead_code reuse=miss ms=443
[2026-07-10T15:18:25.681Z] INFO [aft-plugin] [aft] perf tier2 phases category=unused_exports freshness=1ms snapshot=0ms scan=62ms(1 files) db=23ms rollup=46ms
[2026-07-10T15:18:25.681Z] INFO [aft-plugin] [aft] perf tier2 category=unused_exports reuse=miss ms=151
[2026-07-10T15:18:25.730Z] INFO [aft-plugin] [aft] perf tier2 category=duplicates reuse=miss ms=48
[2026-07-10T15:18:25.805Z] INFO [aft-plugin] [aft] perf tier2 phases category=cycles freshness=1ms snapshot=0ms scan=26ms(1 files) db=23ms rollup=0ms
[2026-07-10T15:18:25.805Z] INFO [aft-plugin] [aft] perf tier2 category=cycles reuse=miss ms=71
[2026-07-10T15:26:27.080Z] INFO [aft-plugin] [aft] tier2 dead_code: refreshed callgraph store at ~/.local/share/cortexkit/aft/opencode/callgraph for 1 watcher path(s): changed=1 deleted=0 refreshed_own=1
[2026-07-10T15:26:27.149Z] INFO [aft-plugin] [aft] perf tier2_callgraph_snapshot: source=callgraph_store files=373 exports=0 edges=15397 entry_points=1 ms=178
[2026-07-10T15:26:27.460Z] INFO [aft-plugin] [aft] perf tier2 phases category=dead_code freshness=1ms snapshot=188ms scan=97ms(1 files) db=27ms rollup=176ms
[2026-07-10T15:26:27.461Z] INFO [aft-plugin] [aft] perf tier2 category=dead_code reuse=miss ms=519
[2026-07-10T15:26:27.615Z] INFO [aft-plugin] [aft] perf tier2 phases category=unused_exports freshness=1ms snapshot=0ms scan=64ms(1 files) db=23ms rollup=44ms
[2026-07-10T15:26:27.615Z] INFO [aft-plugin] [aft] perf tier2 category=unused_exports reuse=miss ms=153
[2026-07-10T15:26:27.683Z] INFO [aft-plugin] [aft] perf tier2 category=duplicates reuse=miss ms=67
[2026-07-10T15:26:27.757Z] INFO [aft-plugin] [aft] perf tier2 category=cycles reuse=miss ms=69
[2026-07-10T15:32:35.850Z] INFO [aft-plugin] Config loaded from ~/.config/cortexkit/aft.jsonc
[2026-07-10T15:32:35.851Z] INFO [aft-plugin] Config loaded from ~/.config/cortexkit/aft.jsonc
[2026-07-10T15:32:35.854Z] INFO [aft-plugin] Resolved binary: ~/.cache/aft/bin/v0.46.0/aft
[2026-07-10T15:32:35.855Z] INFO [aft-plugin] AFT storage migration skipped for opencode: no legacy data at ~/.local/share/opencode/storage/plugin/aft; using ~/.local/share/cortexkit/aft for fresh install
[2026-07-10T15:32:36.088Z] INFO [aft-plugin] [lsp] auto-install: 4 npm + 0 github install(s) running in background
[2026-07-10T15:32:36.097Z] INFO [aft-plugin] RPC server listening on 127.0.0.1:40599
[2026-07-10T15:32:36.108Z] INFO [aft-plugin] Workflow hints injected (4307 chars)
[2026-07-10T15:32:42.186Z] INFO [aft-plugin] [auto-update-checker] Already on latest version for channel: latest
[2026-07-10T15:32:51.754Z] INFO [aft-plugin] bridge.spawnProcess: useFastembedBackend=true, parentORT=(unset), ortLibraryPath=(none)
[2026-07-10T15:32:51.822Z] INFO [aft-plugin] [aft] started, pid 75527
[2026-07-10T15:32:51.929Z] INFO [aft-plugin] Binary version: 0.46.0
[2026-07-10T15:32:51.997Z] INFO [aft-plugin] [aft] watcher started: <PROJECT>
[2026-07-10T15:34:22.129Z] INFO [aft-plugin] [aft] tier2 dead_code: refreshed callgraph store at ~/.local/share/cortexkit/aft/opencode/callgraph for 1 watcher path(s): changed=1 deleted=0 refreshed_own=1
[2026-07-10T15:34:22.204Z] INFO [aft-plugin] [aft] perf tier2_callgraph_snapshot: source=callgraph_store files=373 exports=0 edges=15397 entry_points=1 ms=175
[2026-07-10T15:34:22.462Z] INFO [aft-plugin] [aft] perf tier2 phases category=dead_code freshness=1ms snapshot=175ms scan=115ms(1 files) db=23ms rollup=119ms
[2026-07-10T15:34:22.463Z] INFO [aft-plugin] [aft] perf tier2 category=dead_code reuse=miss ms=461
[2026-07-10T15:34:22.615Z] INFO [aft-plugin] [aft] perf tier2 phases category=unused_exports freshness=1ms snapshot=0ms scan=61ms(1 files) db=23ms rollup=46ms
[2026-07-10T15:34:22.615Z] INFO [aft-plugin] [aft] perf tier2 category=unused_exports reuse=miss ms=150
[2026-07-10T15:34:22.684Z] INFO [aft-plugin] [aft] perf tier2 category=duplicates reuse=miss ms=68
[2026-07-10T15:34:22.760Z] INFO [aft-plugin] [aft] perf tier2 category=cycles reuse=miss ms=70
[2026-07-10T15:39:59.689Z] INFO [aft-plugin] Config loaded from ~/.config/cortexkit/aft.jsonc
[2026-07-10T15:39:59.690Z] INFO [aft-plugin] Config loaded from ~/.config/cortexkit/aft.jsonc
[2026-07-10T15:39:59.694Z] INFO [aft-plugin] Resolved binary: ~/.cache/aft/bin/v0.46.0/aft
[2026-07-10T15:39:59.694Z] INFO [aft-plugin] AFT storage migration skipped for opencode: no legacy data at ~/.local/share/opencode/storage/plugin/aft; using ~/.local/share/cortexkit/aft for fresh install
[2026-07-10T15:39:59.866Z] INFO [aft-plugin] [lsp] auto-install: 4 npm + 0 github install(s) running in background
[2026-07-10T15:39:59.874Z] INFO [aft-plugin] RPC server listening on 127.0.0.1:33977
[2026-07-10T15:39:59.885Z] INFO [aft-plugin] Workflow hints injected (4307 chars)
[2026-07-10T15:40:04.885Z] INFO [aft-plugin] [auto-update-checker] Skipping check (another instance ran one recently)
Usernames and home paths have been stripped from this report.
Short description
error: could not determine executable to run for package @cortexkit/aft-opencode
What happened?
Expected:
Successfully edit text using AFT's edit tool.
Observed issues:
grok 4.5 is unable to successfully edit files using AFT's edit.
It seems impossible to pass both the
oldStringandnewStringparameters at the same time.Tried various methods.
Had the model first outline the call parameters, reflect on them, and then make the call. -> Failed
Had GLM successfully make the call once within the context, then switched to grok 4.5 and had grok make the call. -> Failed
After uninstalling the AFT plugin, grok successfully calls edit to modify the text without errors.
Reproduction
After installing the AFT plugin in opencode, use Build mode to have grok 4.5 modify a line in the md file to new content.
Environment
Diagnostics
OpenCode
Config paths
{ "configDir": "~/.config/opencode", "harnessConfig": "~/.config/opencode/opencode.jsonc", "harnessConfigFormat": "jsonc", "aftConfig": "~/.config/cortexkit/aft.jsonc", "aftConfigFormat": "jsonc", "tuiConfig": "~/.config/opencode/tui.json", "tuiConfigFormat": "json" }AFT flags
{ "$schema": "https://raw.githubusercontent.com/cortexkit/aft/main/assets/aft.schema.json", "search_index": true }Plugin cache
{ "path": "~/.cache/opencode/packages/@cortexkit/aft-opencode@latest", "cached": "0.46.0", "latest": "0.46.0", "exists": true }Storage
{ "path": "~/.local/share/cortexkit/aft", "exists": true, "accessible": true, "sizesByKey": { "index": 75356334, "semantic": 0, "backups": 0, "url_cache": 0, "onnxruntime": 0 } }ONNX Runtime
{ "required": false, "systemPath": null, "systemVersion": null, "systemCompatible": null, "cachedPath": null, "cachedVersion": null, "cachedCompatible": null, "platform": "linux-x64", "installHint": "AFT auto-downloads ONNX Runtime on supported Linux (glibc)", "requirement": ">=1.20" }Log file
/tmp/aft-plugin.log(3585 KB)Binary cache
{ "versions": [ "v0.39.4", "v0.40.1", "v0.40.2", "v0.40.3", "v0.41.0", "v0.42.0", "v0.43.1", "v0.44.0", "v0.45.0", "v0.45.1", "v0.46.0" ], "activeVersion": "v0.46.0", "totalSize": 776312064, "path": "~/.cache/aft/bin" }LSP cache
{ "npm": { "path": "~/.cache/aft/lsp-packages", "entries": [ { "name": "intelephense", "path": "~/.cache/aft/lsp-packages/intelephense", "size": 133268378 }, { "name": "@biomejs/biome", "path": "~/.cache/aft/lsp-packages/%40biomejs%2Fbiome", "size": 63753221 }, { "name": "@vue/language-server", "path": "~/.cache/aft/lsp-packages/%40vue%2Flanguage-server", "size": 48002855 }, { "name": "pyright", "path": "~/.cache/aft/lsp-packages/pyright", "size": 19286299 }, { "name": "yaml-language-server", "path": "~/.cache/aft/lsp-packages/yaml-language-server", "size": 18337425 }, { "name": "bash-language-server", "path": "~/.cache/aft/lsp-packages/bash-language-server", "size": 14513989 }, { "name": "typescript-language-server", "path": "~/.cache/aft/lsp-packages/typescript-language-server", "size": 3226478 }, { "name": "dockerfile-language-server-nodejs", "path": "~/.cache/aft/lsp-packages/dockerfile-language-server-nodejs", "size": 2464632 }, { "name": "clangd/clangd", "path": "~/.cache/aft/lsp-packages/clangd%2Fclangd", "size": 79 } ], "totalSize": 302853356 }, "github": { "path": "~/.cache/aft/lsp-binaries", "entries": [ { "name": "clangd", "path": "~/.cache/aft/lsp-binaries/clangd", "size": 373473970 } ], "totalSize": 373473970 }, "totalSize": 676327326 }Recent errors (last 20, sanitized)
Recent AFT tool failures
Logs (last 200 lines per harness)
OpenCode log (/tmp/aft-plugin.log)
Usernames and home paths have been stripped from this report.