autodev-cli 1.4.188 → 1.4.189

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.
@@ -48,6 +48,9 @@ exports.isOpencodeSdkBusy = isOpencodeSdkBusy;
48
48
  exports.getOpencodeSdkActivity = getOpencodeSdkActivity;
49
49
  exports.getOpencodeSdkLatestSessionId = getOpencodeSdkLatestSessionId;
50
50
  exports.steerOpencodeSdk = steerOpencodeSdk;
51
+ exports.opencodeSdkTransportAvailable = opencodeSdkTransportAvailable;
52
+ exports.__setOpencodeCliPersistentForTest = __setOpencodeCliPersistentForTest;
53
+ exports.opencodeCliPersistentEnabled = opencodeCliPersistentEnabled;
51
54
  exports.sendOpencodeSdkPrompt = sendOpencodeSdkPrompt;
52
55
  exports.runOpencodeSdkCompact = runOpencodeSdkCompact;
53
56
  exports.closeOpencodeSdkClient = closeOpencodeSdkClient;
@@ -126,6 +129,53 @@ function _findSdkEntryPath() {
126
129
  dir = parent;
127
130
  }
128
131
  }
132
+ // ---------------------------------------------------------------------------
133
+ // Persistent-process gate for opencode-CLI (Phase 2).
134
+ //
135
+ // opencode-cli historically spawned a fresh `opencode run -s <id>` process
136
+ // every turn. It now REUSES this same persistent in-process createOpencode
137
+ // server + session (the `_state` Map above) across turns — one long-lived
138
+ // server per workspace, resuming the SAME session id (never minting a new
139
+ // session per turn; see memory opencode-session-explosion) — exactly like
140
+ // opencode-sdk. Stable + synchronous gate so the dispatcher and task loop
141
+ // agree on persistent-vs-command per turn.
142
+ // ---------------------------------------------------------------------------
143
+ /** Cached: is the @opencode-ai/sdk entry resolvable from a node_modules above us? */
144
+ let _opencodeSdkTransportAvailable = null;
145
+ function opencodeSdkTransportAvailable() {
146
+ if (_opencodeSdkTransportAvailable !== null) {
147
+ return _opencodeSdkTransportAvailable;
148
+ }
149
+ try {
150
+ _findSdkEntryPath();
151
+ _opencodeSdkTransportAvailable = true;
152
+ }
153
+ catch {
154
+ _opencodeSdkTransportAvailable = false;
155
+ }
156
+ return _opencodeSdkTransportAvailable;
157
+ }
158
+ /**
159
+ * Whether opencode-cli should run PERSISTENT (reuse the opencode-sdk server +
160
+ * session across turns) instead of spawning a fresh `opencode run` command each
161
+ * turn. Gated by AUTODEV_OPENCODE_CLI_PERSISTENT (default ON when the SDK is
162
+ * resolvable; set to false/0/off/no to force the legacy per-turn command path)
163
+ * AND the SDK entry being resolvable. When false the CLI ProviderManager returns
164
+ * its `{command}` outcome and nothing regresses.
165
+ */
166
+ let _opencodeCliPersistentTestOverride = null;
167
+ /** Test-only: force the persistence decision regardless of env/transport. */
168
+ function __setOpencodeCliPersistentForTest(v) { _opencodeCliPersistentTestOverride = v; }
169
+ function opencodeCliPersistentEnabled(env = process.env) {
170
+ if (_opencodeCliPersistentTestOverride !== null) {
171
+ return _opencodeCliPersistentTestOverride;
172
+ }
173
+ const raw = String(env['AUTODEV_OPENCODE_CLI_PERSISTENT'] ?? '').toLowerCase();
174
+ if (raw === 'false' || raw === '0' || raw === 'off' || raw === 'no') {
175
+ return false;
176
+ }
177
+ return opencodeSdkTransportAvailable();
178
+ }
129
179
  // Use new Function() to prevent esbuild from transforming import(path) to require(path).
130
180
  // require() cannot load ESM files; a native ESM import() is required.
131
181
  const _dynamicImport = new Function('p', 'return import(p)');
@@ -1 +1 @@
1
- {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../src/providers/opencode/sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sdk.js","sourceRoot":"","sources":["../../../src/providers/opencode/sdk.ts"],"names":[],"mappings":"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"}
package/out/taskLoop.js CHANGED
@@ -72,6 +72,27 @@ const projectSkills_1 = require("./core/projectSkills");
72
72
  const configManager_1 = require("./configManager");
73
73
  const agentBackup_1 = require("./agentBackup");
74
74
  const version_1 = require("./version");
75
+ // ---------------------------------------------------------------------------
76
+ // Persistent-CLI predicates (Phase 2). A CLI provider that runs through its
77
+ // persistent sibling's in-process client this turn must be treated by the loop
78
+ // exactly like that sibling (busy flag, mid-turn steer, session capture, close,
79
+ // compact/clear) instead of the exit-file/command path. These mirror the gate
80
+ // the dispatcher uses, so both agree per turn. When the gate is off (or the
81
+ // transport is unavailable) they return false and the legacy command handling
82
+ // applies — nothing regresses.
83
+ // ---------------------------------------------------------------------------
84
+ /** claude-cli is reusing the claude-tui StructuredClient this turn. */
85
+ function claudeCliIsPersistent(p) { return p === 'claude-cli' && (0, claudeTuiProvider_1.claudeCliPersistentEnabled)(); }
86
+ /** copilot-cli is reusing the copilot-sdk LocalSession this turn. */
87
+ function copilotCliIsPersistent(p) { return p === 'copilot-cli' && (0, copilotSdkProvider_1.copilotCliPersistentEnabled)(); }
88
+ /** opencode-cli is reusing the opencode-sdk server+session this turn. */
89
+ function opencodeCliIsPersistent(p) { return p === 'opencode-cli' && (0, opencodeSdkProvider_1.opencodeCliPersistentEnabled)(); }
90
+ /** Provider runs on the persistent claude-tui client (native or claude-cli routed). */
91
+ function usesClaudeTuiClient(p) { return p === 'claude-tui' || claudeCliIsPersistent(p); }
92
+ /** Provider runs on the persistent copilot-sdk session (native or copilot-cli routed). */
93
+ function usesCopilotSdkSession(p) { return p === 'copilot-sdk' || copilotCliIsPersistent(p); }
94
+ /** Provider runs on the persistent opencode-sdk server (native or opencode-cli routed). */
95
+ function usesOpencodeSdkServer(p) { return p === 'opencode-sdk' || opencodeCliIsPersistent(p); }
75
96
  /**
76
97
  * After `_waitForTaskCompletion` resolves, decide whether the SUCCESS/completion
77
98
  * path (`task_done` → COMPLETED, `task_progress` → WORKING, completedCount++)
@@ -373,7 +394,7 @@ class TaskLoopRunner {
373
394
  this._compacting = true;
374
395
  log(`🗜 Manual compact triggered (provider: ${provider})`);
375
396
  try {
376
- if (provider === 'claude-cli') {
397
+ if (provider === 'claude-cli' && !claudeCliIsPersistent(provider)) {
377
398
  let sid = (0, sessionState_1.getSessionId)(root, 'claude-cli');
378
399
  if (!sid) {
379
400
  sid = (0, dispatcher_1.findLatestClaudeSession)(root);
@@ -386,8 +407,10 @@ class TaskLoopRunner {
386
407
  log('⚠️ Compact: no Claude session ID found');
387
408
  }
388
409
  }
389
- else if (provider === 'claude-tui') {
390
- let sid = (0, sessionState_1.getSessionId)(root, 'claude-tui');
410
+ else if (usesClaudeTuiClient(provider)) {
411
+ // claude-tui OR a persistent claude-cli — compact the LIVE StructuredClient
412
+ // (spawning a separate `claude … /compact` would fight the held session).
413
+ let sid = (0, sessionState_1.getSessionId)(root, provider);
391
414
  if (!sid) {
392
415
  sid = (0, claudeTuiProvider_1.getClaudeTuiLatestSessionId)(root);
393
416
  }
@@ -399,7 +422,7 @@ class TaskLoopRunner {
399
422
  log('⚠️ Compact: no Claude TUI session ID found');
400
423
  }
401
424
  }
402
- else if (provider === 'opencode-cli') {
425
+ else if (provider === 'opencode-cli' && !opencodeCliIsPersistent(provider)) {
403
426
  let sid = (0, sessionState_1.getSessionId)(root, 'opencode-cli');
404
427
  if (!sid) {
405
428
  sid = await (0, opencodeCliProvider_1.getLatestOpenCodeSessionId)(root, log);
@@ -412,7 +435,7 @@ class TaskLoopRunner {
412
435
  log('⚠️ Compact: no OpenCode session ID found');
413
436
  }
414
437
  }
415
- else if (provider === 'opencode-sdk') {
438
+ else if (usesOpencodeSdkServer(provider)) {
416
439
  await (0, opencodeSdkProvider_1.runOpencodeSdkCompact)(root, log);
417
440
  log('🗜 Compact complete (opencode-sdk)');
418
441
  }
@@ -433,7 +456,7 @@ class TaskLoopRunner {
433
456
  const log = (m) => this._cb?.log(m);
434
457
  log(`🗑 Manual /clear triggered (provider: ${provider})`);
435
458
  try {
436
- if (provider === 'claude-cli') {
459
+ if (provider === 'claude-cli' && !claudeCliIsPersistent(provider)) {
437
460
  let sid = (0, sessionState_1.getSessionId)(root, 'claude-cli');
438
461
  if (!sid) {
439
462
  sid = (0, dispatcher_1.findLatestClaudeSession)(root);
@@ -447,14 +470,15 @@ class TaskLoopRunner {
447
470
  log('⚠️ /clear: no Claude session ID found');
448
471
  }
449
472
  }
450
- else if (provider === 'claude-tui') {
451
- let sid = (0, sessionState_1.getSessionId)(root, 'claude-tui');
473
+ else if (usesClaudeTuiClient(provider)) {
474
+ // claude-tui OR a persistent claude-cli — /clear the LIVE StructuredClient.
475
+ let sid = (0, sessionState_1.getSessionId)(root, provider);
452
476
  if (!sid) {
453
477
  sid = (0, claudeTuiProvider_1.getClaudeTuiLatestSessionId)(root);
454
478
  }
455
479
  if (sid) {
456
480
  await (0, claudeTuiProvider_1.runClaudeTuiClear)(root, sid, log);
457
- (0, sessionState_1.clearSessionId)(root, 'claude-tui');
481
+ (0, sessionState_1.clearSessionId)(root, provider);
458
482
  log('🗑 /clear (TUI) complete — session reset');
459
483
  }
460
484
  else {
@@ -1118,14 +1142,16 @@ class TaskLoopRunner {
1118
1142
  const root = this._workspaceRoot;
1119
1143
  const provider = this._cb?.getActiveProvider() ?? '';
1120
1144
  if (root) {
1121
- if (provider === 'claude-tui') {
1122
- let sessionId = (0, sessionState_1.getSessionId)(root, 'claude-tui');
1145
+ if (usesClaudeTuiClient(provider)) {
1146
+ // claude-tui OR a persistent claude-cli — clear the LIVE StructuredClient.
1147
+ const claudeProvider = provider;
1148
+ let sessionId = (0, sessionState_1.getSessionId)(root, claudeProvider);
1123
1149
  if (!sessionId) {
1124
1150
  sessionId = (0, claudeTuiProvider_1.getClaudeTuiLatestSessionId)(root);
1125
1151
  }
1126
1152
  if (sessionId) {
1127
1153
  (0, claudeTuiProvider_1.runClaudeTuiClear)(root, sessionId, msg => this._cb?.log(msg))
1128
- .then(() => { (0, sessionState_1.clearSessionId)(root, 'claude-tui'); this._cb?.log('🗑 /clear (TUI) complete'); })
1154
+ .then(() => { (0, sessionState_1.clearSessionId)(root, claudeProvider); this._cb?.log('🗑 /clear (TUI) complete'); })
1129
1155
  .catch(e => this._cb?.log(`⚠️ /clear (TUI) failed: ${e instanceof Error ? e.message : String(e)}`));
1130
1156
  }
1131
1157
  else {
@@ -1133,7 +1159,7 @@ class TaskLoopRunner {
1133
1159
  }
1134
1160
  }
1135
1161
  else {
1136
- // Default to claude-cli
1162
+ // Default to claude-cli (legacy per-turn command path)
1137
1163
  let sessionId = (0, sessionState_1.getSessionId)(root, 'claude-cli');
1138
1164
  if (!sessionId) {
1139
1165
  sessionId = (0, dispatcher_1.findLatestClaudeSession)(root);
@@ -1187,7 +1213,7 @@ class TaskLoopRunner {
1187
1213
  // `_currentTask` routes an idle steer to the buffer path below, which wakes the
1188
1214
  // idle sleep and drains it into a real turn immediately.
1189
1215
  const turnInFlight = !!this._currentTask;
1190
- if (root && turnInFlight && provider === 'claude-tui' && (0, claudeTuiProvider_1.isClaudeTuiBusy)(root)) {
1216
+ if (root && turnInFlight && usesClaudeTuiClient(provider) && (0, claudeTuiProvider_1.isClaudeTuiBusy)(root)) {
1191
1217
  if (await (0, claudeTuiProvider_1.steerClaudeTui)(root, clean, msg => this._cb?.log(msg))) {
1192
1218
  this._cb?.log(`⚡ Steered mid-turn: "${clean.slice(0, 80)}"`);
1193
1219
  onDelivered?.(); // durably injected into the live turn
@@ -1198,7 +1224,7 @@ class TaskLoopRunner {
1198
1224
  // injects into the running turn — true mid-turn steering, same as claude-tui.
1199
1225
  // (copilot-CLI is a one-shot subprocess with no live turn to inject into, so
1200
1226
  // it always falls through to the next-turn TODO queue below.)
1201
- if (root && turnInFlight && provider === 'copilot-sdk' && (0, copilotSdkProvider_1.isCopilotSdkBusy)(root)) {
1227
+ if (root && turnInFlight && usesCopilotSdkSession(provider) && (0, copilotSdkProvider_1.isCopilotSdkBusy)(root)) {
1202
1228
  if (await (0, copilotSdkProvider_1.steerCopilotSdk)(root, clean, msg => this._cb?.log(msg))) {
1203
1229
  this._cb?.log(`⚡ Steered mid-turn (copilot-sdk): "${clean.slice(0, 80)}"`);
1204
1230
  onDelivered?.();
@@ -1207,7 +1233,7 @@ class TaskLoopRunner {
1207
1233
  }
1208
1234
  // opencode-sdk keeps a persistent in-process server + session; a prompt sent to
1209
1235
  // the live session mid-turn is picked up by the running turn (interrupt + continue).
1210
- if (root && turnInFlight && provider === 'opencode-sdk' && (0, opencodeSdkProvider_1.isOpencodeSdkBusy)(root)) {
1236
+ if (root && turnInFlight && usesOpencodeSdkServer(provider) && (0, opencodeSdkProvider_1.isOpencodeSdkBusy)(root)) {
1211
1237
  if (await (0, opencodeSdkProvider_1.steerOpencodeSdk)(root, clean, msg => this._cb?.log(msg))) {
1212
1238
  this._cb?.log(`⚡ Steered mid-turn (opencode-sdk): "${clean.slice(0, 80)}"`);
1213
1239
  onDelivered?.();
@@ -1572,13 +1598,16 @@ class TaskLoopRunner {
1572
1598
  // turn takes >30 s to finish. Instead, use the in-flight turn flag which
1573
1599
  // stays true for the entire duration of the async, including after
1574
1600
  // _waitForTaskCompletion resolves but before the turn emits 'result'.
1575
- if (provider === 'claude-tui') {
1601
+ // claude-tui OR a persistent claude-cli — both track the turn via the
1602
+ // shared in-memory busy flag on the StructuredClient (honest signal even
1603
+ // for turns >30s, unlike the exit-file sentinel).
1604
+ if (usesClaudeTuiClient(provider)) {
1576
1605
  return (0, claudeTuiProvider_1.isClaudeTuiBusy)(this._workspaceRoot);
1577
1606
  }
1578
- if (provider === 'copilot-sdk') {
1607
+ if (usesCopilotSdkSession(provider)) {
1579
1608
  return (0, copilotSdkProvider_1.isCopilotSdkBusy)(this._workspaceRoot);
1580
1609
  }
1581
- if (provider === 'opencode-sdk') {
1610
+ if (usesOpencodeSdkServer(provider)) {
1582
1611
  return (0, opencodeSdkProvider_1.isOpencodeSdkBusy)(this._workspaceRoot);
1583
1612
  }
1584
1613
  // grok-tui: like claude-tui, it runs a PERSISTENT session (tmux PTY, or a
@@ -1968,7 +1997,7 @@ class TaskLoopRunner {
1968
1997
  // The exit-code file is written only after the shell command completes,
1969
1998
  // so a non-empty file guarantees the stdout file is fully flushed.
1970
1999
  const activeProvider = this._cb?.getActiveProvider();
1971
- if (this._workspaceRoot && activeProvider === 'claude-tui') {
2000
+ if (this._workspaceRoot && usesClaudeTuiClient(activeProvider)) {
1972
2001
  // claude-tui: _waitForTaskCompletion resolves as soon as the task is
1973
2002
  // marked [x] in TODO.md, but the persistent async turn may still be
1974
2003
  // running (Claude executing further tool calls, marking other tasks [~],
@@ -1999,7 +2028,7 @@ class TaskLoopRunner {
1999
2028
  (0, claudeTuiProvider_1.forceIdleClaudeTui)(this._workspaceRoot);
2000
2029
  }
2001
2030
  }
2002
- else if (this._workspaceRoot && activeProvider === 'copilot-sdk') {
2031
+ else if (this._workspaceRoot && usesCopilotSdkSession(activeProvider)) {
2003
2032
  const tuiDeadline = Date.now() + 10 * 60_000;
2004
2033
  while ((0, copilotSdkProvider_1.isCopilotSdkBusy)(this._workspaceRoot) && Date.now() < tuiDeadline) {
2005
2034
  if (this._state !== 'running') {
@@ -2011,7 +2040,7 @@ class TaskLoopRunner {
2011
2040
  this._cb?.log('⚠️ Copilot TUI turn did not complete within 10 minutes — moving on');
2012
2041
  }
2013
2042
  }
2014
- else if (this._workspaceRoot && activeProvider === 'opencode-sdk') {
2043
+ else if (this._workspaceRoot && usesOpencodeSdkServer(activeProvider)) {
2015
2044
  // opencode-sdk: same pattern as claude-tui — wait for the in-flight
2016
2045
  // fire-and-forget async to fully complete (session.idle received).
2017
2046
  // Use activity-based deadline: reset the 30-minute window on each tool
@@ -2105,7 +2134,7 @@ class TaskLoopRunner {
2105
2134
  }
2106
2135
  // Capture and persist CLI session ID so the next task can resume it
2107
2136
  if (this._workspaceRoot && activeProvider && providers_1.PROVIDERS[activeProvider]?.isCli) {
2108
- if (activeProvider === 'opencode-cli') {
2137
+ if (activeProvider === 'opencode-cli' && !opencodeCliIsPersistent(activeProvider)) {
2109
2138
  // Prefer the session ID from hooks events (fast, no subprocess);
2110
2139
  // fall back to `opencode session list` if hooks haven't fired yet.
2111
2140
  // Pass taskStartTime so we ignore stale/foreign hooks events from
@@ -2123,10 +2152,13 @@ class TaskLoopRunner {
2123
2152
  .catch(() => { });
2124
2153
  }
2125
2154
  }
2126
- else if (activeProvider === 'claude-tui') {
2155
+ else if (usesClaudeTuiClient(activeProvider)) {
2156
+ // claude-tui OR a persistent claude-cli — the StructuredClient owns the
2157
+ // real ~/.claude session uuid; persist it under the ACTIVE provider key
2158
+ // so a (re)start resumes the same session (works for command fallback too).
2127
2159
  const sid = (0, claudeTuiProvider_1.getClaudeTuiLatestSessionId)(this._workspaceRoot);
2128
2160
  if (sid) {
2129
- (0, sessionState_1.saveSessionId)(this._workspaceRoot, 'claude-tui', sid);
2161
+ (0, sessionState_1.saveSessionId)(this._workspaceRoot, activeProvider, sid);
2130
2162
  }
2131
2163
  }
2132
2164
  else if (activeProvider === 'copilot-sdk') {
@@ -2135,10 +2167,13 @@ class TaskLoopRunner {
2135
2167
  (0, sessionState_1.saveSessionId)(this._workspaceRoot, 'copilot-sdk', sid);
2136
2168
  }
2137
2169
  }
2138
- else if (activeProvider === 'opencode-sdk') {
2170
+ else if (usesOpencodeSdkServer(activeProvider)) {
2171
+ // opencode-sdk OR a persistent opencode-cli — persist the real SDK
2172
+ // session id under the ACTIVE provider key so the next turn RESUMES it
2173
+ // (never mints a fresh session — see memory opencode-session-explosion).
2139
2174
  const sid = (0, opencodeSdkProvider_1.getOpencodeSdkLatestSessionId)(this._workspaceRoot);
2140
2175
  if (sid) {
2141
- (0, sessionState_1.saveSessionId)(this._workspaceRoot, 'opencode-sdk', sid);
2176
+ (0, sessionState_1.saveSessionId)(this._workspaceRoot, activeProvider, sid);
2142
2177
  }
2143
2178
  }
2144
2179
  else {
@@ -2312,7 +2347,7 @@ class TaskLoopRunner {
2312
2347
  this._cb?.log(`🗜 Auto-compact triggered after ${compactInterval} tasks (provider: ${acProvider})`);
2313
2348
  this._notifyDiscord(`🗜 Auto-compact triggered after ${compactInterval} tasks`);
2314
2349
  try {
2315
- if (acProvider === 'claude-cli') {
2350
+ if (acProvider === 'claude-cli' && !claudeCliIsPersistent(acProvider)) {
2316
2351
  let sid = (0, sessionState_1.getSessionId)(this._workspaceRoot, 'claude-cli');
2317
2352
  if (!sid) {
2318
2353
  sid = (0, dispatcher_1.findLatestClaudeSession)(this._workspaceRoot);
@@ -2325,8 +2360,9 @@ class TaskLoopRunner {
2325
2360
  this._cb?.log('⚠️ Auto-compact: no Claude session ID found — skipping');
2326
2361
  }
2327
2362
  }
2328
- else if (acProvider === 'claude-tui') {
2329
- let sid = (0, sessionState_1.getSessionId)(this._workspaceRoot, 'claude-tui');
2363
+ else if (usesClaudeTuiClient(acProvider)) {
2364
+ // claude-tui OR a persistent claude-cli — compact the LIVE client.
2365
+ let sid = (0, sessionState_1.getSessionId)(this._workspaceRoot, acProvider);
2330
2366
  if (!sid) {
2331
2367
  sid = (0, claudeTuiProvider_1.getClaudeTuiLatestSessionId)(this._workspaceRoot);
2332
2368
  }
@@ -2338,10 +2374,10 @@ class TaskLoopRunner {
2338
2374
  this._cb?.log('⚠️ Auto-compact: no Claude TUI session ID found — skipping');
2339
2375
  }
2340
2376
  }
2341
- else if (acProvider === 'copilot-sdk') {
2377
+ else if (usesCopilotSdkSession(acProvider)) {
2342
2378
  this._cb?.log('ℹ️ Auto-compact not supported for copilot-sdk — skipping');
2343
2379
  }
2344
- else if (acProvider === 'opencode-cli') {
2380
+ else if (acProvider === 'opencode-cli' && !opencodeCliIsPersistent(acProvider)) {
2345
2381
  let sid = (0, sessionState_1.getSessionId)(this._workspaceRoot, 'opencode-cli');
2346
2382
  if (!sid) {
2347
2383
  sid = await (0, opencodeCliProvider_1.getLatestOpenCodeSessionId)(this._workspaceRoot, msg => this._cb?.log(msg));
@@ -2354,7 +2390,7 @@ class TaskLoopRunner {
2354
2390
  this._cb?.log('⚠️ Auto-compact: no OpenCode session ID found — skipping');
2355
2391
  }
2356
2392
  }
2357
- else if (acProvider === 'opencode-sdk') {
2393
+ else if (usesOpencodeSdkServer(acProvider)) {
2358
2394
  await (0, opencodeSdkProvider_1.runOpencodeSdkCompact)(this._workspaceRoot, msg => this._cb?.log(msg));
2359
2395
  this._cb?.log('🗜 Auto-compact complete (opencode-sdk)');
2360
2396
  }
@@ -2490,13 +2526,15 @@ class TaskLoopRunner {
2490
2526
  if (evictRoot) {
2491
2527
  try {
2492
2528
  const evictLog = (m) => this._cb?.log(m);
2493
- if (currentProvider === 'claude-tui') {
2529
+ // Also evict the persistent CLI variants (Phase 2) — they hold the
2530
+ // same live sibling process, which is likewise clutching the dead token.
2531
+ if (usesClaudeTuiClient(currentProvider)) {
2494
2532
  (0, claudeTuiProvider_1.closeClaudeTuiClient)(evictRoot, evictLog);
2495
2533
  }
2496
- else if (currentProvider === 'opencode-sdk') {
2534
+ else if (usesOpencodeSdkServer(currentProvider)) {
2497
2535
  (0, opencodeSdkProvider_1.closeOpencodeSdkClient)(evictRoot, evictLog);
2498
2536
  }
2499
- else if (currentProvider === 'copilot-sdk') {
2537
+ else if (usesCopilotSdkSession(currentProvider)) {
2500
2538
  (0, copilotSdkProvider_1.closeCopilotSdkSession)(evictRoot, evictLog);
2501
2539
  }
2502
2540
  else if (currentProvider === 'grok-tui') {
@@ -2624,7 +2662,7 @@ class TaskLoopRunner {
2624
2662
  const provider = this._cb?.getActiveProvider() ?? '';
2625
2663
  this._cb?.log(`🗑 Autocompact thrashing (${provider}) — running /clear to reset session…\n${rawMsg}`);
2626
2664
  this._notifyDiscord(`🗑 **Autocompact thrashing** (${provider}) — running \`/clear\` to reset session…\n\`\`\`\n${rawMsg}\n\`\`\``);
2627
- if (provider === 'claude-cli') {
2665
+ if (provider === 'claude-cli' && !claudeCliIsPersistent(provider)) {
2628
2666
  let sessionId = (0, sessionState_1.getSessionId)(this._workspaceRoot, 'claude-cli');
2629
2667
  if (!sessionId) {
2630
2668
  sessionId = (0, dispatcher_1.findLatestClaudeSession)(this._workspaceRoot);
@@ -2644,15 +2682,16 @@ class TaskLoopRunner {
2644
2682
  this._cb?.log('⚠️ No Claude session ID found for /clear — retrying anyway');
2645
2683
  }
2646
2684
  }
2647
- else if (provider === 'claude-tui') {
2648
- let sessionId = (0, sessionState_1.getSessionId)(this._workspaceRoot, 'claude-tui');
2685
+ else if (usesClaudeTuiClient(provider)) {
2686
+ const claudeProvider = provider;
2687
+ let sessionId = (0, sessionState_1.getSessionId)(this._workspaceRoot, claudeProvider);
2649
2688
  if (!sessionId) {
2650
2689
  sessionId = (0, claudeTuiProvider_1.getClaudeTuiLatestSessionId)(this._workspaceRoot);
2651
2690
  }
2652
2691
  if (sessionId) {
2653
2692
  try {
2654
2693
  await (0, claudeTuiProvider_1.runClaudeTuiClear)(this._workspaceRoot, sessionId, msg => this._cb?.log(msg));
2655
- (0, sessionState_1.clearSessionId)(this._workspaceRoot, 'claude-tui');
2694
+ (0, sessionState_1.clearSessionId)(this._workspaceRoot, claudeProvider);
2656
2695
  this._cb?.log('🗑 /clear (TUI) complete — session reset, retrying task');
2657
2696
  this._notifyDiscord('🗑 `/clear` (TUI) complete — session reset, retrying task');
2658
2697
  }
@@ -2675,7 +2714,7 @@ class TaskLoopRunner {
2675
2714
  const provider = this._cb?.getActiveProvider() ?? '';
2676
2715
  this._cb?.log(`🗜 Context length exceeded (${provider}) — running /compact: ${rawMsg}`);
2677
2716
  this._notifyDiscord(`🗜 **Context length exceeded** (${provider}) — running \`/compact\`…\n\`\`\`\n${rawMsg}\n\`\`\``);
2678
- if (provider === 'claude-cli') {
2717
+ if (provider === 'claude-cli' && !claudeCliIsPersistent(provider)) {
2679
2718
  // Resolve a Claude session ID — prefer the saved one, else scan
2680
2719
  // the .claude/projects jsonl folder for the most recent.
2681
2720
  let sessionId = (0, sessionState_1.getSessionId)(this._workspaceRoot, 'claude-cli');
@@ -2697,8 +2736,9 @@ class TaskLoopRunner {
2697
2736
  this._cb?.log('⚠️ No Claude session ID found for compact — retrying task without compact');
2698
2737
  }
2699
2738
  }
2700
- else if (provider === 'claude-tui') {
2701
- let sessionId = (0, sessionState_1.getSessionId)(this._workspaceRoot, 'claude-tui');
2739
+ else if (usesClaudeTuiClient(provider)) {
2740
+ const claudeProvider = provider;
2741
+ let sessionId = (0, sessionState_1.getSessionId)(this._workspaceRoot, claudeProvider);
2702
2742
  if (!sessionId) {
2703
2743
  sessionId = (0, claudeTuiProvider_1.getClaudeTuiLatestSessionId)(this._workspaceRoot);
2704
2744
  }
@@ -2872,6 +2912,11 @@ class TaskLoopRunner {
2872
2912
  const iscopilotSdkProvider = this._cb?.getActiveProvider() === 'copilot-sdk';
2873
2913
  const isOpenCodeCli = this._cb?.getActiveProvider() === 'opencode-cli';
2874
2914
  const isOpencodeSdk = this._cb?.getActiveProvider() === 'opencode-sdk';
2915
+ // opencode-cli running PERSISTENT (Phase 2) shares the opencode-sdk code path:
2916
+ // its in-process server writes '0' to the exit file on session.idle, so it must
2917
+ // be handled like opencode-sdk (resolve on !busy) — NOT via the CLI exit-file
2918
+ // watcher, which would re-prompt in a loop. Command-mode opencode-cli is unaffected.
2919
+ const isOpencodeSdkLike = isOpencodeSdk || (isOpenCodeCli && (0, opencodeSdkProvider_1.opencodeCliPersistentEnabled)());
2875
2920
  // grok-cli / grok-tui / copilot-cli all tee stdout too — without these flags
2876
2921
  // the rate-limit / context-length / thrash detectors never ran for them, so
2877
2922
  // a throttled or context-blown turn was silently walked to give_up and the
@@ -2888,7 +2933,12 @@ class TaskLoopRunner {
2888
2933
  // already tails. Feed that stdout (ANSI-stripped) through a narrator so each
2889
2934
  // chunk becomes a `Notification` hook event, giving line/chunk-granularity
2890
2935
  // live output. (Claude/grok/SDK providers already stream and are untouched.)
2891
- const cliNarrator = (this._workspaceRoot && (isCopilotCli || isOpenCodeCli))
2936
+ // When copilot-cli / opencode-cli run PERSISTENT (Phase 2) their SDK sibling
2937
+ // already streams assistant text as live Notification events, so the teed-stdout
2938
+ // narrator here would DOUBLE every chunk — disable it in that mode.
2939
+ const cliNarrateCopilot = isCopilotCli && !(0, copilotSdkProvider_1.copilotCliPersistentEnabled)();
2940
+ const cliNarrateOpencode = isOpenCodeCli && !(0, opencodeSdkProvider_1.opencodeCliPersistentEnabled)();
2941
+ const cliNarrator = (this._workspaceRoot && (cliNarrateCopilot || cliNarrateOpencode))
2892
2942
  ? new liveNarration_1.LiveNarrationStreamer(this._cb.getActiveProvider() ?? 'cli', this._workspaceRoot, ev => (0, liveNarration_1.appendHookEventLine)(this._workspaceRoot, ev))
2893
2943
  : null;
2894
2944
  // Independent cursor so narration doesn't disturb the claude-cli Discord
@@ -3395,7 +3445,7 @@ class TaskLoopRunner {
3395
3445
  // exit file when session.idle fires, the poller sees it, calls onCliExit(),
3396
3446
  // which re-sends the prompt, which loops). Instead, the poller resolves this
3397
3447
  // promise directly when isOpencodeSdkBusy() becomes false (see below).
3398
- if (!isOpencodeSdk && this._workspaceRoot) {
3448
+ if (!isOpencodeSdkLike && this._workspaceRoot) {
3399
3449
  attachExitWatcher((0, sessionState_1.exitFilePath)(this._workspaceRoot, activeProvider));
3400
3450
  }
3401
3451
  // Inactivity-based check-in: track Claude JSONL byte size every 3 s.
@@ -3424,14 +3474,14 @@ class TaskLoopRunner {
3424
3474
  attachStdoutWatcher(resolvedStdoutFile);
3425
3475
  }
3426
3476
  const latestExit = (0, sessionState_1.exitFilePath)(this._workspaceRoot, activeProvider);
3427
- if (!isOpencodeSdk && latestExit !== watchedExitFile) {
3477
+ if (!isOpencodeSdkLike && latestExit !== watchedExitFile) {
3428
3478
  attachExitWatcher(latestExit);
3429
3479
  }
3430
3480
  // opencode-sdk: resolve _waitForTaskCompletion as soon as the SDK
3431
3481
  // session goes idle (isOpencodeSdkBusy false). This avoids the
3432
3482
  // CLI-style onCliExit() reminder re-prompt loop that the exit-file
3433
3483
  // mechanism would otherwise trigger.
3434
- if (isOpencodeSdk && this._workspaceRoot && !(0, opencodeSdkProvider_1.isOpencodeSdkBusy)(this._workspaceRoot)) {
3484
+ if (isOpencodeSdkLike && this._workspaceRoot && !(0, opencodeSdkProvider_1.isOpencodeSdkBusy)(this._workspaceRoot)) {
3435
3485
  check(); // one last todo-file check before resolving
3436
3486
  if (!cancelled) {
3437
3487
  cleanup();
@@ -3443,7 +3493,7 @@ class TaskLoopRunner {
3443
3493
  // events (gitignored dirs, inotify limits, fast exits before re-attach).
3444
3494
  // Read the exit file directly every tick and trigger onCliExit() if it
3445
3495
  // became non-empty without the watcher firing.
3446
- if (!isOpencodeSdk && latestExit && latestExit !== handledExitFile) {
3496
+ if (!isOpencodeSdkLike && latestExit && latestExit !== handledExitFile) {
3447
3497
  try {
3448
3498
  if (fs.readFileSync(latestExit, 'utf8').trim() !== '') {
3449
3499
  handledExitFile = latestExit;