open-agents-ai 0.103.20 → 0.103.22

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.
Files changed (2) hide show
  1. package/dist/index.js +594 -430
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -39,7 +39,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
39
39
  mod
40
40
  ));
41
41
 
42
- // ../packages/cli/dist/config.js
42
+ // packages/cli/dist/config.js
43
43
  import { readFileSync, existsSync, mkdirSync, writeFileSync } from "node:fs";
44
44
  import { homedir } from "node:os";
45
45
  import { join } from "node:path";
@@ -126,7 +126,7 @@ function coerceConfigValue(key, value) {
126
126
  }
127
127
  var DEFAULT_CONFIG, VALID_BACKEND_TYPES;
128
128
  var init_config = __esm({
129
- "../packages/cli/dist/config.js"() {
129
+ "packages/cli/dist/config.js"() {
130
130
  "use strict";
131
131
  DEFAULT_CONFIG = Object.freeze({
132
132
  backendUrl: "http://127.0.0.1:11434",
@@ -143,7 +143,7 @@ var init_config = __esm({
143
143
  }
144
144
  });
145
145
 
146
- // ../packages/cli/dist/ui/output.js
146
+ // packages/cli/dist/ui/output.js
147
147
  function ansi(code, text, tty) {
148
148
  return tty ? `\x1B[${code}m${text}\x1B[0m` : text;
149
149
  }
@@ -222,7 +222,7 @@ function printReport(opts) {
222
222
  }
223
223
  var isTTY, isStderrTTY, c, STATUS_ICON, STATUS_COLOR;
224
224
  var init_output = __esm({
225
- "../packages/cli/dist/ui/output.js"() {
225
+ "packages/cli/dist/ui/output.js"() {
226
226
  "use strict";
227
227
  isTTY = process.stdout.isTTY;
228
228
  isStderrTTY = process.stderr.isTTY;
@@ -254,7 +254,7 @@ var init_output = __esm({
254
254
  }
255
255
  });
256
256
 
257
- // ../packages/cli/dist/updater.js
257
+ // packages/cli/dist/updater.js
258
258
  import { execSync } from "node:child_process";
259
259
  import { existsSync as existsSync2, readFileSync as readFileSync2, writeFileSync as writeFileSync2, mkdirSync as mkdirSync2 } from "node:fs";
260
260
  import { join as join2 } from "node:path";
@@ -362,7 +362,7 @@ function formatUpdateBanner(info) {
362
362
  }
363
363
  var PACKAGE_NAME, CHECK_INTERVAL_MS, CACHE_DIR, CACHE_FILE;
364
364
  var init_updater = __esm({
365
- "../packages/cli/dist/updater.js"() {
365
+ "packages/cli/dist/updater.js"() {
366
366
  "use strict";
367
367
  PACKAGE_NAME = "open-agents-ai";
368
368
  CHECK_INTERVAL_MS = 60 * 60 * 1e3;
@@ -371,10 +371,10 @@ var init_updater = __esm({
371
371
  }
372
372
  });
373
373
 
374
- // ../packages/cli/dist/ui/spinner.js
374
+ // packages/cli/dist/ui/spinner.js
375
375
  var FRAMES, INTERVAL_MS, Spinner;
376
376
  var init_spinner = __esm({
377
- "../packages/cli/dist/ui/spinner.js"() {
377
+ "packages/cli/dist/ui/spinner.js"() {
378
378
  "use strict";
379
379
  FRAMES = ["\u280B", "\u2819", "\u2839", "\u2838", "\u283C", "\u2834", "\u2826", "\u2827", "\u2807", "\u280F"];
380
380
  INTERVAL_MS = 80;
@@ -472,10 +472,10 @@ var init_spinner = __esm({
472
472
  }
473
473
  });
474
474
 
475
- // ../packages/backend-vllm/dist/sleep.js
475
+ // packages/backend-vllm/dist/sleep.js
476
476
  var SleepManager;
477
477
  var init_sleep = __esm({
478
- "../packages/backend-vllm/dist/sleep.js"() {
478
+ "packages/backend-vllm/dist/sleep.js"() {
479
479
  "use strict";
480
480
  SleepManager = class {
481
481
  baseUrl;
@@ -551,7 +551,7 @@ var init_sleep = __esm({
551
551
  }
552
552
  });
553
553
 
554
- // ../packages/backend-vllm/dist/normalizeUrl.js
554
+ // packages/backend-vllm/dist/normalizeUrl.js
555
555
  function normalizeBaseUrl(url) {
556
556
  let u = url.trim();
557
557
  u = u.replace(/\/+$/, "");
@@ -583,7 +583,7 @@ function detectProvider(url) {
583
583
  }
584
584
  var PROVIDERS;
585
585
  var init_normalizeUrl = __esm({
586
- "../packages/backend-vllm/dist/normalizeUrl.js"() {
586
+ "packages/backend-vllm/dist/normalizeUrl.js"() {
587
587
  "use strict";
588
588
  PROVIDERS = [
589
589
  // --- Cloud providers (specific domains) ---
@@ -652,7 +652,7 @@ var init_normalizeUrl = __esm({
652
652
  }
653
653
  });
654
654
 
655
- // ../packages/backend-vllm/dist/VllmBackend.js
655
+ // packages/backend-vllm/dist/VllmBackend.js
656
656
  function agentMessageToChatMessage(msg) {
657
657
  return {
658
658
  role: msg.role,
@@ -664,7 +664,7 @@ function buildEmptyUsage() {
664
664
  }
665
665
  var VllmBackend;
666
666
  var init_VllmBackend = __esm({
667
- "../packages/backend-vllm/dist/VllmBackend.js"() {
667
+ "packages/backend-vllm/dist/VllmBackend.js"() {
668
668
  "use strict";
669
669
  init_sleep();
670
670
  init_normalizeUrl();
@@ -807,7 +807,7 @@ var init_VllmBackend = __esm({
807
807
  }
808
808
  });
809
809
 
810
- // ../packages/backend-vllm/dist/OllamaBackend.js
810
+ // packages/backend-vllm/dist/OllamaBackend.js
811
811
  function agentMessageToChatMessage2(msg) {
812
812
  return {
813
813
  role: msg.role,
@@ -819,7 +819,7 @@ function buildEmptyUsage2() {
819
819
  }
820
820
  var OllamaBackend;
821
821
  var init_OllamaBackend = __esm({
822
- "../packages/backend-vllm/dist/OllamaBackend.js"() {
822
+ "packages/backend-vllm/dist/OllamaBackend.js"() {
823
823
  "use strict";
824
824
  init_normalizeUrl();
825
825
  OllamaBackend = class _OllamaBackend {
@@ -998,7 +998,7 @@ var init_OllamaBackend = __esm({
998
998
  }
999
999
  });
1000
1000
 
1001
- // ../packages/backend-vllm/dist/FakeBackend.js
1001
+ // packages/backend-vllm/dist/FakeBackend.js
1002
1002
  function fnv1a32(input) {
1003
1003
  const FNV_PRIME = 16777619;
1004
1004
  const FNV_OFFSET_BASIS = 2166136261;
@@ -1011,7 +1011,7 @@ function fnv1a32(input) {
1011
1011
  }
1012
1012
  var FakeBackend;
1013
1013
  var init_FakeBackend = __esm({
1014
- "../packages/backend-vllm/dist/FakeBackend.js"() {
1014
+ "packages/backend-vllm/dist/FakeBackend.js"() {
1015
1015
  "use strict";
1016
1016
  FakeBackend = class {
1017
1017
  options;
@@ -1111,7 +1111,7 @@ var init_FakeBackend = __esm({
1111
1111
  }
1112
1112
  });
1113
1113
 
1114
- // ../packages/backend-vllm/dist/backendFactory.js
1114
+ // packages/backend-vllm/dist/backendFactory.js
1115
1115
  function detectBackendType(baseUrl) {
1116
1116
  if (!baseUrl) {
1117
1117
  return "ollama";
@@ -1150,7 +1150,7 @@ function createBackend(opts) {
1150
1150
  }
1151
1151
  }
1152
1152
  var init_backendFactory = __esm({
1153
- "../packages/backend-vllm/dist/backendFactory.js"() {
1153
+ "packages/backend-vllm/dist/backendFactory.js"() {
1154
1154
  "use strict";
1155
1155
  init_OllamaBackend();
1156
1156
  init_VllmBackend();
@@ -1158,7 +1158,7 @@ var init_backendFactory = __esm({
1158
1158
  }
1159
1159
  });
1160
1160
 
1161
- // ../packages/backend-vllm/dist/metrics.js
1161
+ // packages/backend-vllm/dist/metrics.js
1162
1162
  function parseMetricValue(prometheusText, metricName) {
1163
1163
  const lines = prometheusText.split("\n");
1164
1164
  for (const line of lines) {
@@ -1179,7 +1179,7 @@ function parseMetricValue(prometheusText, metricName) {
1179
1179
  }
1180
1180
  var MetricsCollector;
1181
1181
  var init_metrics = __esm({
1182
- "../packages/backend-vllm/dist/metrics.js"() {
1182
+ "packages/backend-vllm/dist/metrics.js"() {
1183
1183
  "use strict";
1184
1184
  MetricsCollector = class {
1185
1185
  metricsUrl;
@@ -1234,16 +1234,16 @@ var init_metrics = __esm({
1234
1234
  }
1235
1235
  });
1236
1236
 
1237
- // ../packages/backend-vllm/dist/routing.js
1237
+ // packages/backend-vllm/dist/routing.js
1238
1238
  var init_routing = __esm({
1239
- "../packages/backend-vllm/dist/routing.js"() {
1239
+ "packages/backend-vllm/dist/routing.js"() {
1240
1240
  "use strict";
1241
1241
  }
1242
1242
  });
1243
1243
 
1244
- // ../packages/backend-vllm/dist/index.js
1244
+ // packages/backend-vllm/dist/index.js
1245
1245
  var init_dist = __esm({
1246
- "../packages/backend-vllm/dist/index.js"() {
1246
+ "packages/backend-vllm/dist/index.js"() {
1247
1247
  "use strict";
1248
1248
  init_VllmBackend();
1249
1249
  init_OllamaBackend();
@@ -1256,10 +1256,10 @@ var init_dist = __esm({
1256
1256
  }
1257
1257
  });
1258
1258
 
1259
- // ../packages/execution/dist/tool-executor.js
1259
+ // packages/execution/dist/tool-executor.js
1260
1260
  var DEFAULT_CONFIG2, ToolExecutor;
1261
1261
  var init_tool_executor = __esm({
1262
- "../packages/execution/dist/tool-executor.js"() {
1262
+ "packages/execution/dist/tool-executor.js"() {
1263
1263
  "use strict";
1264
1264
  DEFAULT_CONFIG2 = {
1265
1265
  workingDir: ".",
@@ -1312,11 +1312,11 @@ var init_tool_executor = __esm({
1312
1312
  }
1313
1313
  });
1314
1314
 
1315
- // ../packages/execution/dist/tools/shell.js
1315
+ // packages/execution/dist/tools/shell.js
1316
1316
  import { spawn } from "node:child_process";
1317
1317
  var PERMISSION_ERROR_RE, ShellTool;
1318
1318
  var init_shell = __esm({
1319
- "../packages/execution/dist/tools/shell.js"() {
1319
+ "packages/execution/dist/tools/shell.js"() {
1320
1320
  "use strict";
1321
1321
  PERMISSION_ERROR_RE = /Permission denied|Operation not permitted|EACCES|EPERM|PermissionError|sudo:|not permitted|password is required|authentication failure/i;
1322
1322
  ShellTool = class {
@@ -1513,7 +1513,7 @@ ${stderr}` : ""),
1513
1513
  }
1514
1514
  });
1515
1515
 
1516
- // ../packages/execution/dist/tools/file-read.js
1516
+ // packages/execution/dist/tools/file-read.js
1517
1517
  import { readFile } from "node:fs/promises";
1518
1518
  import { resolve } from "node:path";
1519
1519
  function extractPath(args) {
@@ -1542,7 +1542,7 @@ function extractPath(args) {
1542
1542
  }
1543
1543
  var FileReadTool;
1544
1544
  var init_file_read = __esm({
1545
- "../packages/execution/dist/tools/file-read.js"() {
1545
+ "packages/execution/dist/tools/file-read.js"() {
1546
1546
  "use strict";
1547
1547
  FileReadTool = class {
1548
1548
  name = "file_read";
@@ -1630,7 +1630,7 @@ var init_file_read = __esm({
1630
1630
  }
1631
1631
  });
1632
1632
 
1633
- // ../packages/execution/dist/tools/file-write.js
1633
+ // packages/execution/dist/tools/file-write.js
1634
1634
  import { writeFile, mkdir } from "node:fs/promises";
1635
1635
  import { resolve as resolve2, dirname } from "node:path";
1636
1636
  function extractWritePath(args) {
@@ -1643,7 +1643,7 @@ function extractWritePath(args) {
1643
1643
  }
1644
1644
  var FileWriteTool;
1645
1645
  var init_file_write = __esm({
1646
- "../packages/execution/dist/tools/file-write.js"() {
1646
+ "packages/execution/dist/tools/file-write.js"() {
1647
1647
  "use strict";
1648
1648
  FileWriteTool = class {
1649
1649
  name = "file_write";
@@ -1702,13 +1702,13 @@ var init_file_write = __esm({
1702
1702
  }
1703
1703
  });
1704
1704
 
1705
- // ../packages/execution/dist/tools/grep-search.js
1705
+ // packages/execution/dist/tools/grep-search.js
1706
1706
  import { execFile } from "node:child_process";
1707
1707
  import { promisify } from "node:util";
1708
1708
  import { resolve as resolve3 } from "node:path";
1709
1709
  var execFileAsync, MAX_OUTPUT_LINES, GrepSearchTool;
1710
1710
  var init_grep_search = __esm({
1711
- "../packages/execution/dist/tools/grep-search.js"() {
1711
+ "packages/execution/dist/tools/grep-search.js"() {
1712
1712
  "use strict";
1713
1713
  execFileAsync = promisify(execFile);
1714
1714
  MAX_OUTPUT_LINES = 100;
@@ -1807,13 +1807,13 @@ var init_grep_search = __esm({
1807
1807
  }
1808
1808
  });
1809
1809
 
1810
- // ../packages/execution/dist/tools/glob-find.js
1810
+ // packages/execution/dist/tools/glob-find.js
1811
1811
  import { execFile as execFile2 } from "node:child_process";
1812
1812
  import { promisify as promisify2 } from "node:util";
1813
1813
  import { resolve as resolve4 } from "node:path";
1814
1814
  var execFileAsync2, MAX_RESULTS, GlobFindTool;
1815
1815
  var init_glob_find = __esm({
1816
- "../packages/execution/dist/tools/glob-find.js"() {
1816
+ "packages/execution/dist/tools/glob-find.js"() {
1817
1817
  "use strict";
1818
1818
  execFileAsync2 = promisify2(execFile2);
1819
1819
  MAX_RESULTS = 50;
@@ -1884,10 +1884,10 @@ var init_glob_find = __esm({
1884
1884
  }
1885
1885
  });
1886
1886
 
1887
- // ../packages/execution/dist/tools/web-fetch.js
1887
+ // packages/execution/dist/tools/web-fetch.js
1888
1888
  var DEFAULT_MAX_LENGTH, WebFetchTool;
1889
1889
  var init_web_fetch = __esm({
1890
- "../packages/execution/dist/tools/web-fetch.js"() {
1890
+ "packages/execution/dist/tools/web-fetch.js"() {
1891
1891
  "use strict";
1892
1892
  DEFAULT_MAX_LENGTH = 5e3;
1893
1893
  WebFetchTool = class {
@@ -1959,7 +1959,7 @@ var init_web_fetch = __esm({
1959
1959
  }
1960
1960
  });
1961
1961
 
1962
- // ../packages/execution/dist/tools/web-search.js
1962
+ // packages/execution/dist/tools/web-search.js
1963
1963
  function detectSearchProvider() {
1964
1964
  if (process.env["TAVILY_API_KEY"])
1965
1965
  return "tavily";
@@ -1969,7 +1969,7 @@ function detectSearchProvider() {
1969
1969
  }
1970
1970
  var DEFAULT_NUM_RESULTS, DUCKDUCKGO_HTML_URL, TAVILY_API_URL, JINA_SEARCH_URL, WebSearchTool;
1971
1971
  var init_web_search = __esm({
1972
- "../packages/execution/dist/tools/web-search.js"() {
1972
+ "packages/execution/dist/tools/web-search.js"() {
1973
1973
  "use strict";
1974
1974
  DEFAULT_NUM_RESULTS = 5;
1975
1975
  DUCKDUCKGO_HTML_URL = "https://html.duckduckgo.com/html/";
@@ -2233,14 +2233,14 @@ ${formatted}`,
2233
2233
  }
2234
2234
  });
2235
2235
 
2236
- // ../packages/execution/dist/tools/web-crawl.js
2236
+ // packages/execution/dist/tools/web-crawl.js
2237
2237
  import { execFile as execFile3 } from "node:child_process";
2238
2238
  import { dirname as dirname2, join as join3 } from "node:path";
2239
2239
  import { fileURLToPath } from "node:url";
2240
2240
  import { existsSync as existsSync3 } from "node:fs";
2241
2241
  var DEFAULT_MAX_LENGTH2, WebCrawlTool;
2242
2242
  var init_web_crawl = __esm({
2243
- "../packages/execution/dist/tools/web-crawl.js"() {
2243
+ "packages/execution/dist/tools/web-crawl.js"() {
2244
2244
  "use strict";
2245
2245
  DEFAULT_MAX_LENGTH2 = 8e3;
2246
2246
  WebCrawlTool = class {
@@ -2514,7 +2514,7 @@ Meta: ${metaKeys.map((k) => `${k}="${meta[k]?.slice(0, 80)}"`).join(", ")}`);
2514
2514
  }
2515
2515
  });
2516
2516
 
2517
- // ../packages/execution/dist/tools/file-edit.js
2517
+ // packages/execution/dist/tools/file-edit.js
2518
2518
  import { readFile as readFile2, writeFile as writeFile2 } from "node:fs/promises";
2519
2519
  import { resolve as resolve5 } from "node:path";
2520
2520
  function extractEditPath(args) {
@@ -2549,7 +2549,7 @@ function replaceAllOccurrences(haystack, needle, replacement) {
2549
2549
  }
2550
2550
  var FileEditTool;
2551
2551
  var init_file_edit = __esm({
2552
- "../packages/execution/dist/tools/file-edit.js"() {
2552
+ "packages/execution/dist/tools/file-edit.js"() {
2553
2553
  "use strict";
2554
2554
  FileEditTool = class {
2555
2555
  name = "file_edit";
@@ -2659,12 +2659,12 @@ var init_file_edit = __esm({
2659
2659
  }
2660
2660
  });
2661
2661
 
2662
- // ../packages/execution/dist/tools/memory-read.js
2662
+ // packages/execution/dist/tools/memory-read.js
2663
2663
  import { readFile as readFile3 } from "node:fs/promises";
2664
2664
  import { resolve as resolve6, join as join4 } from "node:path";
2665
2665
  var MemoryReadTool;
2666
2666
  var init_memory_read = __esm({
2667
- "../packages/execution/dist/tools/memory-read.js"() {
2667
+ "packages/execution/dist/tools/memory-read.js"() {
2668
2668
  "use strict";
2669
2669
  MemoryReadTool = class {
2670
2670
  name = "memory_read";
@@ -2754,13 +2754,13 @@ ${JSON.stringify(entries, null, 2)}`,
2754
2754
  }
2755
2755
  });
2756
2756
 
2757
- // ../packages/execution/dist/tools/memory-write.js
2757
+ // packages/execution/dist/tools/memory-write.js
2758
2758
  import { readFile as readFile4, writeFile as writeFile3, mkdir as mkdir2 } from "node:fs/promises";
2759
2759
  import { resolve as resolve7, join as join5 } from "node:path";
2760
2760
  import { randomBytes } from "node:crypto";
2761
2761
  var MemoryWriteTool;
2762
2762
  var init_memory_write = __esm({
2763
- "../packages/execution/dist/tools/memory-write.js"() {
2763
+ "packages/execution/dist/tools/memory-write.js"() {
2764
2764
  "use strict";
2765
2765
  MemoryWriteTool = class {
2766
2766
  name = "memory_write";
@@ -2845,7 +2845,7 @@ var init_memory_write = __esm({
2845
2845
  }
2846
2846
  });
2847
2847
 
2848
- // ../packages/execution/dist/tools/memory-search.js
2848
+ // packages/execution/dist/tools/memory-search.js
2849
2849
  import { readFile as readFile5, readdir } from "node:fs/promises";
2850
2850
  import { resolve as resolve8, join as join6, basename } from "node:path";
2851
2851
  import { existsSync as existsSync4 } from "node:fs";
@@ -2951,7 +2951,7 @@ function tokenize(text) {
2951
2951
  }
2952
2952
  var MemorySearchTool;
2953
2953
  var init_memory_search = __esm({
2954
- "../packages/execution/dist/tools/memory-search.js"() {
2954
+ "packages/execution/dist/tools/memory-search.js"() {
2955
2955
  "use strict";
2956
2956
  MemorySearchTool = class {
2957
2957
  name = "memory_search";
@@ -3075,10 +3075,10 @@ Try broader terms or use memory_read with a specific topic.`,
3075
3075
  }
3076
3076
  });
3077
3077
 
3078
- // ../packages/execution/dist/tools/explore-tools.js
3078
+ // packages/execution/dist/tools/explore-tools.js
3079
3079
  var TOOL_CATALOG, ExploreToolsTool;
3080
3080
  var init_explore_tools = __esm({
3081
- "../packages/execution/dist/tools/explore-tools.js"() {
3081
+ "packages/execution/dist/tools/explore-tools.js"() {
3082
3082
  "use strict";
3083
3083
  TOOL_CATALOG = {
3084
3084
  grep_search: "Search file contents with regex patterns",
@@ -3242,12 +3242,12 @@ Examples:`);
3242
3242
  }
3243
3243
  });
3244
3244
 
3245
- // ../packages/execution/dist/tools/list-directory.js
3245
+ // packages/execution/dist/tools/list-directory.js
3246
3246
  import { readdirSync, statSync } from "node:fs";
3247
3247
  import { resolve as resolve9, join as join7 } from "node:path";
3248
3248
  var EXCLUDED, MAX_ENTRIES, ListDirectoryTool;
3249
3249
  var init_list_directory = __esm({
3250
- "../packages/execution/dist/tools/list-directory.js"() {
3250
+ "packages/execution/dist/tools/list-directory.js"() {
3251
3251
  "use strict";
3252
3252
  EXCLUDED = /* @__PURE__ */ new Set(["node_modules", ".git"]);
3253
3253
  MAX_ENTRIES = 100;
@@ -3329,11 +3329,11 @@ var init_list_directory = __esm({
3329
3329
  }
3330
3330
  });
3331
3331
 
3332
- // ../packages/execution/dist/tools/aiwg-setup.js
3332
+ // packages/execution/dist/tools/aiwg-setup.js
3333
3333
  import { execSync as execSync2 } from "node:child_process";
3334
3334
  var AiwgSetupTool;
3335
3335
  var init_aiwg_setup = __esm({
3336
- "../packages/execution/dist/tools/aiwg-setup.js"() {
3336
+ "packages/execution/dist/tools/aiwg-setup.js"() {
3337
3337
  "use strict";
3338
3338
  AiwgSetupTool = class {
3339
3339
  name = "aiwg_setup";
@@ -3407,13 +3407,13 @@ ${output}`,
3407
3407
  }
3408
3408
  });
3409
3409
 
3410
- // ../packages/execution/dist/tools/aiwg-health.js
3410
+ // packages/execution/dist/tools/aiwg-health.js
3411
3411
  import { execSync as execSync3 } from "node:child_process";
3412
3412
  import { existsSync as existsSync5, readdirSync as readdirSync2, readFileSync as readFileSync3, statSync as statSync2 } from "node:fs";
3413
3413
  import { join as join8 } from "node:path";
3414
3414
  var AiwgHealthTool;
3415
3415
  var init_aiwg_health = __esm({
3416
- "../packages/execution/dist/tools/aiwg-health.js"() {
3416
+ "packages/execution/dist/tools/aiwg-health.js"() {
3417
3417
  "use strict";
3418
3418
  AiwgHealthTool = class {
3419
3419
  name = "aiwg_health";
@@ -3619,11 +3619,11 @@ var init_aiwg_health = __esm({
3619
3619
  }
3620
3620
  });
3621
3621
 
3622
- // ../packages/execution/dist/tools/aiwg-workflow.js
3622
+ // packages/execution/dist/tools/aiwg-workflow.js
3623
3623
  import { execSync as execSync4 } from "node:child_process";
3624
3624
  var AiwgWorkflowTool;
3625
3625
  var init_aiwg_workflow = __esm({
3626
- "../packages/execution/dist/tools/aiwg-workflow.js"() {
3626
+ "packages/execution/dist/tools/aiwg-workflow.js"() {
3627
3627
  "use strict";
3628
3628
  AiwgWorkflowTool = class {
3629
3629
  name = "aiwg_workflow";
@@ -3704,7 +3704,7 @@ var init_aiwg_workflow = __esm({
3704
3704
  }
3705
3705
  });
3706
3706
 
3707
- // ../packages/execution/dist/tools/batch-edit.js
3707
+ // packages/execution/dist/tools/batch-edit.js
3708
3708
  import { readFile as readFile6, writeFile as writeFile4 } from "node:fs/promises";
3709
3709
  import { resolve as resolve10 } from "node:path";
3710
3710
  function countOccurrences2(haystack, needle) {
@@ -3718,7 +3718,7 @@ function countOccurrences2(haystack, needle) {
3718
3718
  }
3719
3719
  var BatchEditTool;
3720
3720
  var init_batch_edit = __esm({
3721
- "../packages/execution/dist/tools/batch-edit.js"() {
3721
+ "packages/execution/dist/tools/batch-edit.js"() {
3722
3722
  "use strict";
3723
3723
  BatchEditTool = class {
3724
3724
  name = "batch_edit";
@@ -3830,12 +3830,12 @@ ${results.join("\n")}`,
3830
3830
  }
3831
3831
  });
3832
3832
 
3833
- // ../packages/execution/dist/tools/file-patch.js
3833
+ // packages/execution/dist/tools/file-patch.js
3834
3834
  import { readFile as readFile7, writeFile as writeFile5, copyFile } from "node:fs/promises";
3835
3835
  import { resolve as resolve11 } from "node:path";
3836
3836
  var FilePatchTool;
3837
3837
  var init_file_patch = __esm({
3838
- "../packages/execution/dist/tools/file-patch.js"() {
3838
+ "packages/execution/dist/tools/file-patch.js"() {
3839
3839
  "use strict";
3840
3840
  FilePatchTool = class {
3841
3841
  name = "file_patch";
@@ -4002,12 +4002,12 @@ ${diff}`,
4002
4002
  }
4003
4003
  });
4004
4004
 
4005
- // ../packages/execution/dist/tools/codebase-map.js
4005
+ // packages/execution/dist/tools/codebase-map.js
4006
4006
  import { readdirSync as readdirSync3, statSync as statSync3, readFileSync as readFileSync4, existsSync as existsSync6 } from "node:fs";
4007
4007
  import { join as join9, relative, extname } from "node:path";
4008
4008
  var CodebaseMapTool;
4009
4009
  var init_codebase_map = __esm({
4010
- "../packages/execution/dist/tools/codebase-map.js"() {
4010
+ "packages/execution/dist/tools/codebase-map.js"() {
4011
4011
  "use strict";
4012
4012
  CodebaseMapTool = class {
4013
4013
  name = "codebase_map";
@@ -4290,13 +4290,13 @@ var init_codebase_map = __esm({
4290
4290
  }
4291
4291
  });
4292
4292
 
4293
- // ../packages/execution/dist/tools/diagnostic.js
4293
+ // packages/execution/dist/tools/diagnostic.js
4294
4294
  import { execSync as execSync5 } from "node:child_process";
4295
4295
  import { existsSync as existsSync7, readFileSync as readFileSync5 } from "node:fs";
4296
4296
  import { join as join10 } from "node:path";
4297
4297
  var DiagnosticTool;
4298
4298
  var init_diagnostic = __esm({
4299
- "../packages/execution/dist/tools/diagnostic.js"() {
4299
+ "packages/execution/dist/tools/diagnostic.js"() {
4300
4300
  "use strict";
4301
4301
  DiagnosticTool = class {
4302
4302
  name = "diagnostic";
@@ -4435,13 +4435,13 @@ ${err.stderr ?? ""}`.trim(),
4435
4435
  }
4436
4436
  });
4437
4437
 
4438
- // ../packages/execution/dist/tools/git-info.js
4438
+ // packages/execution/dist/tools/git-info.js
4439
4439
  import { execSync as execSync6 } from "node:child_process";
4440
4440
  import { existsSync as existsSync8 } from "node:fs";
4441
4441
  import { join as join11 } from "node:path";
4442
4442
  var GitInfoTool;
4443
4443
  var init_git_info = __esm({
4444
- "../packages/execution/dist/tools/git-info.js"() {
4444
+ "packages/execution/dist/tools/git-info.js"() {
4445
4445
  "use strict";
4446
4446
  GitInfoTool = class {
4447
4447
  name = "git_info";
@@ -4566,7 +4566,7 @@ var init_git_info = __esm({
4566
4566
  }
4567
4567
  });
4568
4568
 
4569
- // ../packages/execution/dist/tools/background-task.js
4569
+ // packages/execution/dist/tools/background-task.js
4570
4570
  import { spawn as spawn2 } from "node:child_process";
4571
4571
  function toInfo(entry) {
4572
4572
  return {
@@ -4582,7 +4582,7 @@ function toInfo(entry) {
4582
4582
  }
4583
4583
  var BackgroundTaskManager, BackgroundRunTool, TaskStatusTool, TaskOutputTool, TaskStopTool;
4584
4584
  var init_background_task = __esm({
4585
- "../packages/execution/dist/tools/background-task.js"() {
4585
+ "packages/execution/dist/tools/background-task.js"() {
4586
4586
  "use strict";
4587
4587
  BackgroundTaskManager = class {
4588
4588
  tasks = /* @__PURE__ */ new Map();
@@ -4854,7 +4854,7 @@ Exit code: ${task.exitCode ?? "N/A"}`,
4854
4854
  }
4855
4855
  });
4856
4856
 
4857
- // ../packages/execution/dist/system-deps.js
4857
+ // packages/execution/dist/system-deps.js
4858
4858
  import { execSync as execSync7 } from "node:child_process";
4859
4859
  function detectPackageManager() {
4860
4860
  if (_detectedPkgManager !== void 0)
@@ -5046,7 +5046,7 @@ function resetDepCache() {
5046
5046
  }
5047
5047
  var DESKTOP_DEPS, _detectedPkgManager, _cache, _sudoPassword;
5048
5048
  var init_system_deps = __esm({
5049
- "../packages/execution/dist/system-deps.js"() {
5049
+ "packages/execution/dist/system-deps.js"() {
5050
5050
  "use strict";
5051
5051
  DESKTOP_DEPS = [
5052
5052
  {
@@ -5097,7 +5097,7 @@ var init_system_deps = __esm({
5097
5097
  }
5098
5098
  });
5099
5099
 
5100
- // ../packages/execution/dist/tools/image.js
5100
+ // packages/execution/dist/tools/image.js
5101
5101
  import { existsSync as existsSync9, readFileSync as readFileSync6, statSync as statSync4 } from "node:fs";
5102
5102
  import { resolve as resolve12, extname as extname2, basename as basename2 } from "node:path";
5103
5103
  import { execSync as execSync8 } from "node:child_process";
@@ -5186,7 +5186,7 @@ function runOCR(filePath) {
5186
5186
  }
5187
5187
  var IMAGE_EXTENSIONS, ImageReadTool, ScreenshotTool, OCRTool;
5188
5188
  var init_image = __esm({
5189
- "../packages/execution/dist/tools/image.js"() {
5189
+ "packages/execution/dist/tools/image.js"() {
5190
5190
  "use strict";
5191
5191
  init_system_deps();
5192
5192
  IMAGE_EXTENSIONS = /* @__PURE__ */ new Set([
@@ -5476,7 +5476,7 @@ ${text}`,
5476
5476
  }
5477
5477
  });
5478
5478
 
5479
- // ../packages/execution/dist/tools/custom-tool.js
5479
+ // packages/execution/dist/tools/custom-tool.js
5480
5480
  var custom_tool_exports = {};
5481
5481
  __export(custom_tool_exports, {
5482
5482
  CustomTool: () => CustomTool,
@@ -5579,7 +5579,7 @@ function loadFromDirectory(dir) {
5579
5579
  }
5580
5580
  var CustomTool;
5581
5581
  var init_custom_tool = __esm({
5582
- "../packages/execution/dist/tools/custom-tool.js"() {
5582
+ "packages/execution/dist/tools/custom-tool.js"() {
5583
5583
  "use strict";
5584
5584
  CustomTool = class {
5585
5585
  name;
@@ -5688,10 +5688,10 @@ ${stderr}` : ""),
5688
5688
  }
5689
5689
  });
5690
5690
 
5691
- // ../packages/execution/dist/tools/tool-creator.js
5691
+ // packages/execution/dist/tools/tool-creator.js
5692
5692
  var CreateToolTool, ManageToolsTool;
5693
5693
  var init_tool_creator = __esm({
5694
- "../packages/execution/dist/tools/tool-creator.js"() {
5694
+ "packages/execution/dist/tools/tool-creator.js"() {
5695
5695
  "use strict";
5696
5696
  init_custom_tool();
5697
5697
  CreateToolTool = class {
@@ -5982,7 +5982,7 @@ var init_tool_creator = __esm({
5982
5982
  }
5983
5983
  });
5984
5984
 
5985
- // ../packages/execution/dist/tools/skill-tools.js
5985
+ // packages/execution/dist/tools/skill-tools.js
5986
5986
  import { existsSync as existsSync11, readdirSync as readdirSync5, readFileSync as readFileSync8 } from "node:fs";
5987
5987
  import { join as join14, basename as basename3, dirname as dirname3 } from "node:path";
5988
5988
  import { homedir as homedir5 } from "node:os";
@@ -6297,7 +6297,7 @@ function parseTriggers(filePath) {
6297
6297
  }
6298
6298
  var _cachedAiwgPkgRoot, SkillListTool, SkillExecuteTool;
6299
6299
  var init_skill_tools = __esm({
6300
- "../packages/execution/dist/tools/skill-tools.js"() {
6300
+ "packages/execution/dist/tools/skill-tools.js"() {
6301
6301
  "use strict";
6302
6302
  SkillListTool = class {
6303
6303
  name = "skill_list";
@@ -6422,7 +6422,7 @@ ${content}`,
6422
6422
  }
6423
6423
  });
6424
6424
 
6425
- // ../packages/execution/dist/tools/skill-builder.js
6425
+ // packages/execution/dist/tools/skill-builder.js
6426
6426
  import { existsSync as existsSync12, mkdirSync as mkdirSync4, readFileSync as readFileSync9, writeFileSync as writeFileSync4 } from "node:fs";
6427
6427
  import { join as join15, dirname as dirname4 } from "node:path";
6428
6428
  function loadBuilderPrompt(name, vars) {
@@ -6460,7 +6460,7 @@ function extractJSON(text) {
6460
6460
  }
6461
6461
  var SkillBuildTool;
6462
6462
  var init_skill_builder = __esm({
6463
- "../packages/execution/dist/tools/skill-builder.js"() {
6463
+ "packages/execution/dist/tools/skill-builder.js"() {
6464
6464
  "use strict";
6465
6465
  SkillBuildTool = class {
6466
6466
  name = "skill_build";
@@ -6667,7 +6667,7 @@ ${content}`
6667
6667
  }
6668
6668
  });
6669
6669
 
6670
- // ../packages/execution/dist/tools/transcribe-tool.js
6670
+ // packages/execution/dist/tools/transcribe-tool.js
6671
6671
  import { existsSync as existsSync13, mkdirSync as mkdirSync5, writeFileSync as writeFileSync5, readFileSync as readFileSync10, unlinkSync } from "node:fs";
6672
6672
  import { join as join16, basename as basename4, extname as extname3, resolve as resolve13 } from "node:path";
6673
6673
  import { homedir as homedir6 } from "node:os";
@@ -6720,7 +6720,7 @@ function formatTime(seconds) {
6720
6720
  }
6721
6721
  var AUDIO_EXTS, VIDEO_EXTS, _tcModule, _tcChecked, TranscribeFileTool, TranscribeUrlTool;
6722
6722
  var init_transcribe_tool = __esm({
6723
- "../packages/execution/dist/tools/transcribe-tool.js"() {
6723
+ "packages/execution/dist/tools/transcribe-tool.js"() {
6724
6724
  "use strict";
6725
6725
  AUDIO_EXTS = /* @__PURE__ */ new Set([
6726
6726
  ".mp3",
@@ -6961,7 +6961,7 @@ ${result.output}`,
6961
6961
  }
6962
6962
  });
6963
6963
 
6964
- // ../packages/execution/dist/tools/structured-file.js
6964
+ // packages/execution/dist/tools/structured-file.js
6965
6965
  import { writeFile as writeFile6, mkdir as mkdir3 } from "node:fs/promises";
6966
6966
  import { resolve as resolve14, dirname as dirname5, extname as extname4 } from "node:path";
6967
6967
  function jsonToCSV(data, separator = ",") {
@@ -6998,7 +6998,7 @@ function jsonToMarkdownTable(data) {
6998
6998
  }
6999
6999
  var StructuredFileTool;
7000
7000
  var init_structured_file = __esm({
7001
- "../packages/execution/dist/tools/structured-file.js"() {
7001
+ "packages/execution/dist/tools/structured-file.js"() {
7002
7002
  "use strict";
7003
7003
  StructuredFileTool = class {
7004
7004
  name = "create_structured_file";
@@ -7141,7 +7141,7 @@ var init_structured_file = __esm({
7141
7141
  }
7142
7142
  });
7143
7143
 
7144
- // ../packages/execution/dist/tools/code-sandbox.js
7144
+ // packages/execution/dist/tools/code-sandbox.js
7145
7145
  import { spawn as spawn5 } from "node:child_process";
7146
7146
  import { writeFile as writeFile7, mkdtemp, rm, readdir as readdir2, stat } from "node:fs/promises";
7147
7147
  import { join as join17 } from "node:path";
@@ -7222,7 +7222,7 @@ async function listCreatedFiles(dir) {
7222
7222
  }
7223
7223
  var LANGUAGE_CONFIG, CodeSandboxTool;
7224
7224
  var init_code_sandbox = __esm({
7225
- "../packages/execution/dist/tools/code-sandbox.js"() {
7225
+ "packages/execution/dist/tools/code-sandbox.js"() {
7226
7226
  "use strict";
7227
7227
  LANGUAGE_CONFIG = {
7228
7228
  javascript: { ext: ".js", cmd: "node", args: (f) => [f] },
@@ -7394,7 +7394,7 @@ ${result.filesCreated.join("\n")}`);
7394
7394
  }
7395
7395
  });
7396
7396
 
7397
- // ../packages/execution/dist/tools/structured-read.js
7397
+ // packages/execution/dist/tools/structured-read.js
7398
7398
  import { readFile as readFile8, stat as stat2 } from "node:fs/promises";
7399
7399
  import { resolve as resolve15, extname as extname5 } from "node:path";
7400
7400
  function parseCSV(text, separator = ",") {
@@ -7502,7 +7502,7 @@ function detectBinaryFormat(buffer) {
7502
7502
  }
7503
7503
  var StructuredReadTool;
7504
7504
  var init_structured_read = __esm({
7505
- "../packages/execution/dist/tools/structured-read.js"() {
7505
+ "packages/execution/dist/tools/structured-read.js"() {
7506
7506
  "use strict";
7507
7507
  StructuredReadTool = class {
7508
7508
  name = "read_structured_file";
@@ -7729,7 +7729,7 @@ ${parts.join("\n\n")}`,
7729
7729
  }
7730
7730
  });
7731
7731
 
7732
- // ../packages/execution/dist/tools/vision.js
7732
+ // packages/execution/dist/tools/vision.js
7733
7733
  import { readFileSync as readFileSync11, existsSync as existsSync14, statSync as statSync5 } from "node:fs";
7734
7734
  import { execSync as execSync11, spawn as spawn6 } from "node:child_process";
7735
7735
  import { resolve as resolve16, extname as extname6, basename as basename5, dirname as dirname6, join as join18 } from "node:path";
@@ -7880,7 +7880,7 @@ function loadImageBuffer(workingDir, rawPath) {
7880
7880
  }
7881
7881
  var moondreamClient, moondreamError, stationProcess, IMAGE_EXTENSIONS2, VisionTool;
7882
7882
  var init_vision = __esm({
7883
- "../packages/execution/dist/tools/vision.js"() {
7883
+ "packages/execution/dist/tools/vision.js"() {
7884
7884
  "use strict";
7885
7885
  moondreamClient = null;
7886
7886
  moondreamError = null;
@@ -8103,7 +8103,7 @@ ${response}`, durationMs: performance.now() - start };
8103
8103
  }
8104
8104
  });
8105
8105
 
8106
- // ../packages/execution/dist/tools/desktop-click.js
8106
+ // packages/execution/dist/tools/desktop-click.js
8107
8107
  import { readFileSync as readFileSync12, existsSync as existsSync15 } from "node:fs";
8108
8108
  import { execSync as execSync12 } from "node:child_process";
8109
8109
  import { tmpdir as tmpdir3 } from "node:os";
@@ -8256,7 +8256,7 @@ for i in range(${clicks}):
8256
8256
  }
8257
8257
  var __dirname2, DesktopClickTool, DesktopDescribeTool;
8258
8258
  var init_desktop_click = __esm({
8259
- "../packages/execution/dist/tools/desktop-click.js"() {
8259
+ "packages/execution/dist/tools/desktop-click.js"() {
8260
8260
  "use strict";
8261
8261
  init_system_deps();
8262
8262
  __dirname2 = dirname7(fileURLToPath3(import.meta.url));
@@ -8612,13 +8612,13 @@ Screen: ${dims.width}x${dims.height}`);
8612
8612
  }
8613
8613
  });
8614
8614
 
8615
- // ../packages/execution/dist/tools/ocr-pdf.js
8615
+ // packages/execution/dist/tools/ocr-pdf.js
8616
8616
  import { existsSync as existsSync16, statSync as statSync6 } from "node:fs";
8617
8617
  import { resolve as resolve17, basename as basename6 } from "node:path";
8618
8618
  import { execSync as execSync13 } from "node:child_process";
8619
8619
  var OcrPdfTool;
8620
8620
  var init_ocr_pdf = __esm({
8621
- "../packages/execution/dist/tools/ocr-pdf.js"() {
8621
+ "packages/execution/dist/tools/ocr-pdf.js"() {
8622
8622
  "use strict";
8623
8623
  init_system_deps();
8624
8624
  OcrPdfTool = class {
@@ -8735,14 +8735,14 @@ Language: ${language}
8735
8735
  }
8736
8736
  });
8737
8737
 
8738
- // ../packages/execution/dist/tools/pdf-to-text.js
8738
+ // packages/execution/dist/tools/pdf-to-text.js
8739
8739
  import { existsSync as existsSync17, statSync as statSync7, readFileSync as readFileSync13, unlinkSync as unlinkSync2 } from "node:fs";
8740
8740
  import { resolve as resolve18, basename as basename7, join as join20 } from "node:path";
8741
8741
  import { execSync as execSync14 } from "node:child_process";
8742
8742
  import { tmpdir as tmpdir4 } from "node:os";
8743
8743
  var PdfToTextTool;
8744
8744
  var init_pdf_to_text = __esm({
8745
- "../packages/execution/dist/tools/pdf-to-text.js"() {
8745
+ "packages/execution/dist/tools/pdf-to-text.js"() {
8746
8746
  "use strict";
8747
8747
  init_system_deps();
8748
8748
  PdfToTextTool = class {
@@ -8920,7 +8920,7 @@ ${text}`,
8920
8920
  }
8921
8921
  });
8922
8922
 
8923
- // ../packages/execution/dist/tools/ocr-image-advanced.js
8923
+ // packages/execution/dist/tools/ocr-image-advanced.js
8924
8924
  import { existsSync as existsSync18, statSync as statSync8 } from "node:fs";
8925
8925
  import { resolve as resolve19, basename as basename8, dirname as dirname8, join as join21 } from "node:path";
8926
8926
  import { execSync as execSync15 } from "node:child_process";
@@ -8963,7 +8963,7 @@ function findPython() {
8963
8963
  }
8964
8964
  var OcrImageAdvancedTool;
8965
8965
  var init_ocr_image_advanced = __esm({
8966
- "../packages/execution/dist/tools/ocr-image-advanced.js"() {
8966
+ "packages/execution/dist/tools/ocr-image-advanced.js"() {
8967
8967
  "use strict";
8968
8968
  init_system_deps();
8969
8969
  OcrImageAdvancedTool = class {
@@ -9223,7 +9223,7 @@ Note: Advanced Python pipeline not available \u2014 install pytesseract, opencv-
9223
9223
  }
9224
9224
  });
9225
9225
 
9226
- // ../packages/execution/dist/tools/browser-action.js
9226
+ // packages/execution/dist/tools/browser-action.js
9227
9227
  import { execSync as execSync16, spawn as spawn7 } from "node:child_process";
9228
9228
  import { existsSync as existsSync19, readFileSync as readFileSync14 } from "node:fs";
9229
9229
  import { join as join22, dirname as dirname9 } from "node:path";
@@ -9315,7 +9315,7 @@ async function apiCall(endpoint, method = "POST", body) {
9315
9315
  }
9316
9316
  var __dirname3, SCRAPE_SCRIPT, DEFAULT_PORT, BASE_URL, serviceProcess, activeSessionId, BrowserActionTool;
9317
9317
  var init_browser_action = __esm({
9318
- "../packages/execution/dist/tools/browser-action.js"() {
9318
+ "packages/execution/dist/tools/browser-action.js"() {
9319
9319
  "use strict";
9320
9320
  __dirname3 = dirname9(fileURLToPath5(import.meta.url));
9321
9321
  SCRAPE_SCRIPT = join22(__dirname3, "..", "..", "scripts", "web_scrape.py");
@@ -9476,7 +9476,7 @@ var init_browser_action = __esm({
9476
9476
  }
9477
9477
  });
9478
9478
 
9479
- // ../packages/execution/dist/tools/autoresearch.js
9479
+ // packages/execution/dist/tools/autoresearch.js
9480
9480
  import { execSync as execSync17, spawn as spawn8 } from "node:child_process";
9481
9481
  import { existsSync as existsSync20, readFileSync as readFileSync15, writeFileSync as writeFileSync6, mkdirSync as mkdirSync6, appendFileSync, copyFileSync } from "node:fs";
9482
9482
  import { join as join23, resolve as resolve20, dirname as dirname10 } from "node:path";
@@ -9519,7 +9519,7 @@ function parseRunLog(logContent) {
9519
9519
  }
9520
9520
  var AutoresearchTool;
9521
9521
  var init_autoresearch = __esm({
9522
- "../packages/execution/dist/tools/autoresearch.js"() {
9522
+ "packages/execution/dist/tools/autoresearch.js"() {
9523
9523
  "use strict";
9524
9524
  AutoresearchTool = class {
9525
9525
  repoRoot;
@@ -9996,7 +9996,7 @@ train.py reverted to last kept state. Ready for next experiment.`,
9996
9996
  }
9997
9997
  });
9998
9998
 
9999
- // ../packages/execution/dist/tools/scheduler.js
9999
+ // packages/execution/dist/tools/scheduler.js
10000
10000
  import { execSync as execSync18, exec as execCb } from "node:child_process";
10001
10001
  import { readFile as readFile9, writeFile as writeFile8, mkdir as mkdir4 } from "node:fs/promises";
10002
10002
  import { resolve as resolve21, join as join24 } from "node:path";
@@ -10131,7 +10131,7 @@ async function saveStore(workingDir, store) {
10131
10131
  }
10132
10132
  var SCHEDULE_PRESETS, CRON_MARKER, SchedulerTool;
10133
10133
  var init_scheduler = __esm({
10134
- "../packages/execution/dist/tools/scheduler.js"() {
10134
+ "packages/execution/dist/tools/scheduler.js"() {
10135
10135
  "use strict";
10136
10136
  SCHEDULE_PRESETS = {
10137
10137
  "every minute": "* * * * *",
@@ -10359,7 +10359,7 @@ ${truncated}`, durationMs: performance.now() - start };
10359
10359
  }
10360
10360
  });
10361
10361
 
10362
- // ../packages/execution/dist/tools/reminder.js
10362
+ // packages/execution/dist/tools/reminder.js
10363
10363
  import { readFile as readFile10, writeFile as writeFile9, mkdir as mkdir5 } from "node:fs/promises";
10364
10364
  import { resolve as resolve22, join as join25 } from "node:path";
10365
10365
  import { randomBytes as randomBytes3 } from "node:crypto";
@@ -10453,7 +10453,7 @@ async function markRemindersSeen(workingDir, ids) {
10453
10453
  }
10454
10454
  var STORE_FILE, ReminderTool;
10455
10455
  var init_reminder = __esm({
10456
- "../packages/execution/dist/tools/reminder.js"() {
10456
+ "packages/execution/dist/tools/reminder.js"() {
10457
10457
  "use strict";
10458
10458
  STORE_FILE = "reminders.json";
10459
10459
  ReminderTool = class {
@@ -10672,7 +10672,7 @@ var init_reminder = __esm({
10672
10672
  }
10673
10673
  });
10674
10674
 
10675
- // ../packages/execution/dist/tools/agenda.js
10675
+ // packages/execution/dist/tools/agenda.js
10676
10676
  import { readFile as readFile11, writeFile as writeFile10, mkdir as mkdir6 } from "node:fs/promises";
10677
10677
  import { resolve as resolve23, join as join26 } from "node:path";
10678
10678
  import { randomBytes as randomBytes4 } from "node:crypto";
@@ -10707,7 +10707,7 @@ async function getActiveAttentionItems(workingDir) {
10707
10707
  }
10708
10708
  var AgendaTool;
10709
10709
  var init_agenda = __esm({
10710
- "../packages/execution/dist/tools/agenda.js"() {
10710
+ "packages/execution/dist/tools/agenda.js"() {
10711
10711
  "use strict";
10712
10712
  init_reminder();
10713
10713
  AgendaTool = class {
@@ -10996,7 +10996,7 @@ ${sections.join("\n")}`,
10996
10996
  }
10997
10997
  });
10998
10998
 
10999
- // ../packages/execution/dist/tools/opencode.js
10999
+ // packages/execution/dist/tools/opencode.js
11000
11000
  import { execSync as execSync19, spawn as spawn9 } from "node:child_process";
11001
11001
  import { existsSync as existsSync21 } from "node:fs";
11002
11002
  import { join as join27, resolve as resolve24 } from "node:path";
@@ -11057,7 +11057,7 @@ function installOpencode() {
11057
11057
  }
11058
11058
  var OpenCodeTool;
11059
11059
  var init_opencode = __esm({
11060
- "../packages/execution/dist/tools/opencode.js"() {
11060
+ "packages/execution/dist/tools/opencode.js"() {
11061
11061
  "use strict";
11062
11062
  OpenCodeTool = class {
11063
11063
  name = "opencode";
@@ -11270,7 +11270,7 @@ var init_opencode = __esm({
11270
11270
  }
11271
11271
  });
11272
11272
 
11273
- // ../packages/execution/dist/tools/factory.js
11273
+ // packages/execution/dist/tools/factory.js
11274
11274
  import { execSync as execSync20, spawn as spawn10 } from "node:child_process";
11275
11275
  import { existsSync as existsSync22 } from "node:fs";
11276
11276
  import { join as join28 } from "node:path";
@@ -11331,7 +11331,7 @@ function installDroid() {
11331
11331
  }
11332
11332
  var FactoryTool;
11333
11333
  var init_factory = __esm({
11334
- "../packages/execution/dist/tools/factory.js"() {
11334
+ "packages/execution/dist/tools/factory.js"() {
11335
11335
  "use strict";
11336
11336
  FactoryTool = class {
11337
11337
  name = "factory";
@@ -11579,7 +11579,7 @@ var init_factory = __esm({
11579
11579
  }
11580
11580
  });
11581
11581
 
11582
- // ../packages/execution/dist/tools/cron-agent.js
11582
+ // packages/execution/dist/tools/cron-agent.js
11583
11583
  import { execSync as execSync21 } from "node:child_process";
11584
11584
  import { readFile as readFile12, writeFile as writeFile11, mkdir as mkdir7 } from "node:fs/promises";
11585
11585
  import { resolve as resolve25, join as join29 } from "node:path";
@@ -11713,7 +11713,7 @@ async function saveStore2(workingDir, store) {
11713
11713
  }
11714
11714
  var LONG_HORIZON_PRESETS, CRON_AGENT_MARKER, CronAgentTool;
11715
11715
  var init_cron_agent = __esm({
11716
- "../packages/execution/dist/tools/cron-agent.js"() {
11716
+ "packages/execution/dist/tools/cron-agent.js"() {
11717
11717
  "use strict";
11718
11718
  LONG_HORIZON_PRESETS = {
11719
11719
  "every hour": "0 * * * *",
@@ -12044,7 +12044,7 @@ ${truncated}`, durationMs: performance.now() - start };
12044
12044
  }
12045
12045
  });
12046
12046
 
12047
- // ../packages/execution/dist/tools/nexus.js
12047
+ // packages/execution/dist/tools/nexus.js
12048
12048
  import { readFile as readFile13, writeFile as writeFile12, mkdir as mkdir8, chmod, unlink, readdir as readdir3, open as fsOpen } from "node:fs/promises";
12049
12049
  import { existsSync as existsSync23, readFileSync as readFileSync16 } from "node:fs";
12050
12050
  import { resolve as resolve26, join as join30 } from "node:path";
@@ -12060,7 +12060,7 @@ function containsKeyMaterial(input) {
12060
12060
  }
12061
12061
  var DAEMON_SCRIPT, KEY_PATTERNS, NexusTool;
12062
12062
  var init_nexus = __esm({
12063
- "../packages/execution/dist/tools/nexus.js"() {
12063
+ "packages/execution/dist/tools/nexus.js"() {
12064
12064
  "use strict";
12065
12065
  DAEMON_SCRIPT = `#!/usr/bin/env node
12066
12066
  /**
@@ -14258,7 +14258,7 @@ process.on('SIGINT', () => process.emit('SIGTERM'));
14258
14258
  }
14259
14259
  });
14260
14260
 
14261
- // ../packages/execution/dist/shellRunner.js
14261
+ // packages/execution/dist/shellRunner.js
14262
14262
  import { spawn as spawn12 } from "node:child_process";
14263
14263
  async function runShell(options) {
14264
14264
  const { command, args = [], cwd: cwd4, env, timeoutMs = DEFAULT_TIMEOUT_MS } = options;
@@ -14312,13 +14312,13 @@ async function runShell(options) {
14312
14312
  }
14313
14313
  var DEFAULT_TIMEOUT_MS;
14314
14314
  var init_shellRunner = __esm({
14315
- "../packages/execution/dist/shellRunner.js"() {
14315
+ "packages/execution/dist/shellRunner.js"() {
14316
14316
  "use strict";
14317
14317
  DEFAULT_TIMEOUT_MS = 6e4;
14318
14318
  }
14319
14319
  });
14320
14320
 
14321
- // ../packages/execution/dist/gitWorktree.js
14321
+ // packages/execution/dist/gitWorktree.js
14322
14322
  async function createWorktree(options) {
14323
14323
  const { repoPath, worktreePath, branch, timeoutMs = DEFAULT_GIT_TIMEOUT_MS } = options;
14324
14324
  const result = await runShell({
@@ -14355,14 +14355,14 @@ async function removeWorktree(options) {
14355
14355
  }
14356
14356
  var DEFAULT_GIT_TIMEOUT_MS;
14357
14357
  var init_gitWorktree = __esm({
14358
- "../packages/execution/dist/gitWorktree.js"() {
14358
+ "packages/execution/dist/gitWorktree.js"() {
14359
14359
  "use strict";
14360
14360
  init_shellRunner();
14361
14361
  DEFAULT_GIT_TIMEOUT_MS = 3e4;
14362
14362
  }
14363
14363
  });
14364
14364
 
14365
- // ../packages/execution/dist/patchApplier.js
14365
+ // packages/execution/dist/patchApplier.js
14366
14366
  import { readFileSync as readFileSync17, writeFileSync as writeFileSync7, existsSync as existsSync24, mkdirSync as mkdirSync7 } from "node:fs";
14367
14367
  import { dirname as dirname11 } from "node:path";
14368
14368
  import { spawn as spawn13 } from "node:child_process";
@@ -14439,12 +14439,12 @@ function runWithStdin(options) {
14439
14439
  });
14440
14440
  }
14441
14441
  var init_patchApplier = __esm({
14442
- "../packages/execution/dist/patchApplier.js"() {
14442
+ "packages/execution/dist/patchApplier.js"() {
14443
14443
  "use strict";
14444
14444
  }
14445
14445
  });
14446
14446
 
14447
- // ../packages/execution/dist/formatterRunner.js
14447
+ // packages/execution/dist/formatterRunner.js
14448
14448
  function buildFormatterCommand(formatter, extraArgs) {
14449
14449
  switch (formatter) {
14450
14450
  case "prettier":
@@ -14495,13 +14495,13 @@ async function runFormatter(options) {
14495
14495
  };
14496
14496
  }
14497
14497
  var init_formatterRunner = __esm({
14498
- "../packages/execution/dist/formatterRunner.js"() {
14498
+ "packages/execution/dist/formatterRunner.js"() {
14499
14499
  "use strict";
14500
14500
  init_shellRunner();
14501
14501
  }
14502
14502
  });
14503
14503
 
14504
- // ../packages/execution/dist/linterRunner.js
14504
+ // packages/execution/dist/linterRunner.js
14505
14505
  function buildLinterCommand(linter, extraArgs) {
14506
14506
  switch (linter) {
14507
14507
  case "eslint":
@@ -14557,13 +14557,13 @@ async function runLinter(options) {
14557
14557
  };
14558
14558
  }
14559
14559
  var init_linterRunner = __esm({
14560
- "../packages/execution/dist/linterRunner.js"() {
14560
+ "packages/execution/dist/linterRunner.js"() {
14561
14561
  "use strict";
14562
14562
  init_shellRunner();
14563
14563
  }
14564
14564
  });
14565
14565
 
14566
- // ../packages/execution/dist/typecheckRunner.js
14566
+ // packages/execution/dist/typecheckRunner.js
14567
14567
  function buildTypecheckerCommand(typechecker, extraArgs) {
14568
14568
  switch (typechecker) {
14569
14569
  case "tsc":
@@ -14609,13 +14609,13 @@ async function runTypecheck(options) {
14609
14609
  };
14610
14610
  }
14611
14611
  var init_typecheckRunner = __esm({
14612
- "../packages/execution/dist/typecheckRunner.js"() {
14612
+ "packages/execution/dist/typecheckRunner.js"() {
14613
14613
  "use strict";
14614
14614
  init_shellRunner();
14615
14615
  }
14616
14616
  });
14617
14617
 
14618
- // ../packages/execution/dist/testRunner.js
14618
+ // packages/execution/dist/testRunner.js
14619
14619
  function buildTestRunnerCommand(testRunner, extraArgs) {
14620
14620
  switch (testRunner) {
14621
14621
  case "jest":
@@ -14671,13 +14671,13 @@ async function runTests(options) {
14671
14671
  };
14672
14672
  }
14673
14673
  var init_testRunner = __esm({
14674
- "../packages/execution/dist/testRunner.js"() {
14674
+ "packages/execution/dist/testRunner.js"() {
14675
14675
  "use strict";
14676
14676
  init_shellRunner();
14677
14677
  }
14678
14678
  });
14679
14679
 
14680
- // ../packages/execution/dist/buildRunner.js
14680
+ // packages/execution/dist/buildRunner.js
14681
14681
  function buildBuilderCommand(profile, extraArgs) {
14682
14682
  switch (profile.builder) {
14683
14683
  case "tsc":
@@ -14744,13 +14744,13 @@ async function runBuild(options) {
14744
14744
  };
14745
14745
  }
14746
14746
  var init_buildRunner = __esm({
14747
- "../packages/execution/dist/buildRunner.js"() {
14747
+ "packages/execution/dist/buildRunner.js"() {
14748
14748
  "use strict";
14749
14749
  init_shellRunner();
14750
14750
  }
14751
14751
  });
14752
14752
 
14753
- // ../packages/execution/dist/validationPipeline.js
14753
+ // packages/execution/dist/validationPipeline.js
14754
14754
  async function runValidationPipeline(config) {
14755
14755
  const { projectRoot, profile, stopOnFirstFailure = true } = config;
14756
14756
  const formatterProfile = {
@@ -14846,7 +14846,7 @@ async function runValidationPipeline(config) {
14846
14846
  };
14847
14847
  }
14848
14848
  var init_validationPipeline = __esm({
14849
- "../packages/execution/dist/validationPipeline.js"() {
14849
+ "packages/execution/dist/validationPipeline.js"() {
14850
14850
  "use strict";
14851
14851
  init_formatterRunner();
14852
14852
  init_linterRunner();
@@ -14856,7 +14856,7 @@ var init_validationPipeline = __esm({
14856
14856
  }
14857
14857
  });
14858
14858
 
14859
- // ../packages/execution/dist/index.js
14859
+ // packages/execution/dist/index.js
14860
14860
  var dist_exports = {};
14861
14861
  __export(dist_exports, {
14862
14862
  AgendaTool: () => AgendaTool,
@@ -14949,7 +14949,7 @@ __export(dist_exports, {
14949
14949
  setSudoPassword: () => setSudoPassword
14950
14950
  });
14951
14951
  var init_dist2 = __esm({
14952
- "../packages/execution/dist/index.js"() {
14952
+ "packages/execution/dist/index.js"() {
14953
14953
  "use strict";
14954
14954
  init_tool_executor();
14955
14955
  init_shell();
@@ -15011,9 +15011,9 @@ var init_dist2 = __esm({
15011
15011
  }
15012
15012
  });
15013
15013
 
15014
- // ../packages/orchestrator/dist/agent-loop.js
15014
+ // packages/orchestrator/dist/agent-loop.js
15015
15015
  var init_agent_loop = __esm({
15016
- "../packages/orchestrator/dist/agent-loop.js"() {
15016
+ "packages/orchestrator/dist/agent-loop.js"() {
15017
15017
  "use strict";
15018
15018
  init_dist();
15019
15019
  init_dist2();
@@ -15021,11 +15021,11 @@ var init_agent_loop = __esm({
15021
15021
  }
15022
15022
  });
15023
15023
 
15024
- // ../packages/schemas/dist/messages.js
15024
+ // packages/schemas/dist/messages.js
15025
15025
  import { z } from "zod";
15026
15026
  var AgentMessageSchema;
15027
15027
  var init_messages = __esm({
15028
- "../packages/schemas/dist/messages.js"() {
15028
+ "packages/schemas/dist/messages.js"() {
15029
15029
  "use strict";
15030
15030
  AgentMessageSchema = z.object({
15031
15031
  id: z.string().uuid(),
@@ -15038,11 +15038,11 @@ var init_messages = __esm({
15038
15038
  }
15039
15039
  });
15040
15040
 
15041
- // ../packages/schemas/dist/tools.js
15041
+ // packages/schemas/dist/tools.js
15042
15042
  import { z as z2 } from "zod";
15043
15043
  var ToolCallSchema;
15044
15044
  var init_tools = __esm({
15045
- "../packages/schemas/dist/tools.js"() {
15045
+ "packages/schemas/dist/tools.js"() {
15046
15046
  "use strict";
15047
15047
  ToolCallSchema = z2.object({
15048
15048
  id: z2.string().uuid(),
@@ -15056,11 +15056,11 @@ var init_tools = __esm({
15056
15056
  }
15057
15057
  });
15058
15058
 
15059
- // ../packages/schemas/dist/session.js
15059
+ // packages/schemas/dist/session.js
15060
15060
  import { z as z3 } from "zod";
15061
15061
  var SessionSchema;
15062
15062
  var init_session = __esm({
15063
- "../packages/schemas/dist/session.js"() {
15063
+ "packages/schemas/dist/session.js"() {
15064
15064
  "use strict";
15065
15065
  SessionSchema = z3.object({
15066
15066
  id: z3.string().uuid(),
@@ -15074,11 +15074,11 @@ var init_session = __esm({
15074
15074
  }
15075
15075
  });
15076
15076
 
15077
- // ../packages/schemas/dist/task.js
15077
+ // packages/schemas/dist/task.js
15078
15078
  import { z as z4 } from "zod";
15079
15079
  var TaskClassSchema, UrgencySchema, NormalizedTaskSchema, TaskStatusSchema;
15080
15080
  var init_task = __esm({
15081
- "../packages/schemas/dist/task.js"() {
15081
+ "packages/schemas/dist/task.js"() {
15082
15082
  "use strict";
15083
15083
  TaskClassSchema = z4.enum([
15084
15084
  "bugfix",
@@ -15123,11 +15123,11 @@ var init_task = __esm({
15123
15123
  }
15124
15124
  });
15125
15125
 
15126
- // ../packages/schemas/dist/plan.js
15126
+ // packages/schemas/dist/plan.js
15127
15127
  import { z as z5 } from "zod";
15128
15128
  var SubtaskKindSchema, SubtaskSchema, PlanSchema;
15129
15129
  var init_plan = __esm({
15130
- "../packages/schemas/dist/plan.js"() {
15130
+ "packages/schemas/dist/plan.js"() {
15131
15131
  "use strict";
15132
15132
  SubtaskKindSchema = z5.enum([
15133
15133
  "inspect",
@@ -15161,11 +15161,11 @@ var init_plan = __esm({
15161
15161
  }
15162
15162
  });
15163
15163
 
15164
- // ../packages/schemas/dist/patch.js
15164
+ // packages/schemas/dist/patch.js
15165
15165
  import { z as z6 } from "zod";
15166
15166
  var EditOperationSchema, FileEditSchema, NeedsMoreContextSchema, PatchProposalSchema;
15167
15167
  var init_patch = __esm({
15168
- "../packages/schemas/dist/patch.js"() {
15168
+ "packages/schemas/dist/patch.js"() {
15169
15169
  "use strict";
15170
15170
  EditOperationSchema = z6.enum([
15171
15171
  "diff",
@@ -15204,11 +15204,11 @@ var init_patch = __esm({
15204
15204
  }
15205
15205
  });
15206
15206
 
15207
- // ../packages/schemas/dist/verification.js
15207
+ // packages/schemas/dist/verification.js
15208
15208
  import { z as z7 } from "zod";
15209
15209
  var VerificationStatusSchema, VerificationNextActionSchema, VerificationDecisionSchema;
15210
15210
  var init_verification = __esm({
15211
- "../packages/schemas/dist/verification.js"() {
15211
+ "packages/schemas/dist/verification.js"() {
15212
15212
  "use strict";
15213
15213
  VerificationStatusSchema = z7.enum(["pass", "fail", "partial"]);
15214
15214
  VerificationNextActionSchema = z7.enum([
@@ -15233,11 +15233,11 @@ var init_verification = __esm({
15233
15233
  }
15234
15234
  });
15235
15235
 
15236
- // ../packages/schemas/dist/repoProfile.js
15236
+ // packages/schemas/dist/repoProfile.js
15237
15237
  import { z as z8 } from "zod";
15238
15238
  var LanguageSchema, PackageManagerSchema, BuildSystemSchema, MigrationSystemSchema, RepoProfileSchema;
15239
15239
  var init_repoProfile = __esm({
15240
- "../packages/schemas/dist/repoProfile.js"() {
15240
+ "packages/schemas/dist/repoProfile.js"() {
15241
15241
  "use strict";
15242
15242
  LanguageSchema = z8.enum([
15243
15243
  "typescript",
@@ -15315,11 +15315,11 @@ var init_repoProfile = __esm({
15315
15315
  }
15316
15316
  });
15317
15317
 
15318
- // ../packages/schemas/dist/retrieval.js
15318
+ // packages/schemas/dist/retrieval.js
15319
15319
  import { z as z9 } from "zod";
15320
15320
  var RetrievalRequestSchema, SnippetSchema, RetrievalPacketSchema;
15321
15321
  var init_retrieval = __esm({
15322
- "../packages/schemas/dist/retrieval.js"() {
15322
+ "packages/schemas/dist/retrieval.js"() {
15323
15323
  "use strict";
15324
15324
  RetrievalRequestSchema = z9.object({
15325
15325
  /** Natural language description of what information is needed */
@@ -15367,11 +15367,11 @@ var init_retrieval = __esm({
15367
15367
  }
15368
15368
  });
15369
15369
 
15370
- // ../packages/schemas/dist/dispatch.js
15370
+ // packages/schemas/dist/dispatch.js
15371
15371
  import { z as z10 } from "zod";
15372
15372
  var DispatchModeSchema, TaskComplexitySchema, AgentRoleSchema, BudgetsSchema, DispatchDecisionSchema;
15373
15373
  var init_dispatch = __esm({
15374
- "../packages/schemas/dist/dispatch.js"() {
15374
+ "packages/schemas/dist/dispatch.js"() {
15375
15375
  "use strict";
15376
15376
  DispatchModeSchema = z10.enum([
15377
15377
  "single_pass",
@@ -15405,11 +15405,11 @@ var init_dispatch = __esm({
15405
15405
  }
15406
15406
  });
15407
15407
 
15408
- // ../packages/schemas/dist/memory.js
15408
+ // packages/schemas/dist/memory.js
15409
15409
  import { z as z11 } from "zod";
15410
15410
  var RiskLevelSchema, FileSummarySchema, FailureCategorySchema, FailureFingerprintSchema, TaskMemorySchema;
15411
15411
  var init_memory = __esm({
15412
- "../packages/schemas/dist/memory.js"() {
15412
+ "packages/schemas/dist/memory.js"() {
15413
15413
  "use strict";
15414
15414
  RiskLevelSchema = z11.enum(["low", "medium", "high", "critical"]);
15415
15415
  FileSummarySchema = z11.object({
@@ -15485,11 +15485,11 @@ var init_memory = __esm({
15485
15485
  }
15486
15486
  });
15487
15487
 
15488
- // ../packages/schemas/dist/backend.js
15488
+ // packages/schemas/dist/backend.js
15489
15489
  import { z as z12 } from "zod";
15490
15490
  var MessageRoleSchema, ChatMessageSchema, CompletionRequestSchema, TokenUsageSchema, CompletionResponseSchema, StructuredCompletionRequestSchema, BackendHealthSchema, BackendMetricsSchema;
15491
15491
  var init_backend = __esm({
15492
- "../packages/schemas/dist/backend.js"() {
15492
+ "packages/schemas/dist/backend.js"() {
15493
15493
  "use strict";
15494
15494
  MessageRoleSchema = z12.enum([
15495
15495
  "system",
@@ -15574,11 +15574,11 @@ var init_backend = __esm({
15574
15574
  }
15575
15575
  });
15576
15576
 
15577
- // ../packages/schemas/dist/config.js
15577
+ // packages/schemas/dist/config.js
15578
15578
  import { z as z13 } from "zod";
15579
15579
  var AgentConfigSchema;
15580
15580
  var init_config2 = __esm({
15581
- "../packages/schemas/dist/config.js"() {
15581
+ "packages/schemas/dist/config.js"() {
15582
15582
  "use strict";
15583
15583
  AgentConfigSchema = z13.object({
15584
15584
  // -----------------------------------------------------------------------
@@ -15637,11 +15637,11 @@ var init_config2 = __esm({
15637
15637
  }
15638
15638
  });
15639
15639
 
15640
- // ../packages/schemas/dist/queue.js
15640
+ // packages/schemas/dist/queue.js
15641
15641
  import { z as z14 } from "zod";
15642
15642
  var QueueClassSchema;
15643
15643
  var init_queue = __esm({
15644
- "../packages/schemas/dist/queue.js"() {
15644
+ "packages/schemas/dist/queue.js"() {
15645
15645
  "use strict";
15646
15646
  QueueClassSchema = z14.enum([
15647
15647
  /** CLI and direct user-facing requests; lowest latency target */
@@ -15660,9 +15660,9 @@ var init_queue = __esm({
15660
15660
  }
15661
15661
  });
15662
15662
 
15663
- // ../packages/schemas/dist/index.js
15663
+ // packages/schemas/dist/index.js
15664
15664
  var init_dist3 = __esm({
15665
- "../packages/schemas/dist/index.js"() {
15665
+ "packages/schemas/dist/index.js"() {
15666
15666
  "use strict";
15667
15667
  init_messages();
15668
15668
  init_tools();
@@ -15681,7 +15681,7 @@ var init_dist3 = __esm({
15681
15681
  }
15682
15682
  });
15683
15683
 
15684
- // ../packages/orchestrator/dist/promptLoader.js
15684
+ // packages/orchestrator/dist/promptLoader.js
15685
15685
  import { readFileSync as readFileSync18, existsSync as existsSync25 } from "node:fs";
15686
15686
  import { join as join31, dirname as dirname12 } from "node:path";
15687
15687
  import { fileURLToPath as fileURLToPath7 } from "node:url";
@@ -15701,7 +15701,7 @@ function loadPrompt(promptPath, vars) {
15701
15701
  }
15702
15702
  var __filename, __dirname4, PROMPTS_DIR, cache;
15703
15703
  var init_promptLoader = __esm({
15704
- "../packages/orchestrator/dist/promptLoader.js"() {
15704
+ "packages/orchestrator/dist/promptLoader.js"() {
15705
15705
  "use strict";
15706
15706
  __filename = fileURLToPath7(import.meta.url);
15707
15707
  __dirname4 = dirname12(__filename);
@@ -15710,7 +15710,7 @@ var init_promptLoader = __esm({
15710
15710
  }
15711
15711
  });
15712
15712
 
15713
- // ../packages/orchestrator/dist/taskNormalizer.js
15713
+ // packages/orchestrator/dist/taskNormalizer.js
15714
15714
  function parseJsonFromContent(content) {
15715
15715
  const fencedMatch = content.match(/```(?:json)?\s*([\s\S]*?)```/);
15716
15716
  const raw = fencedMatch ? fencedMatch[1] : content;
@@ -15725,7 +15725,7 @@ function normalizationPrompt(rawRequest, repoRoot) {
15725
15725
  }
15726
15726
  var TaskNormalizer;
15727
15727
  var init_taskNormalizer = __esm({
15728
- "../packages/orchestrator/dist/taskNormalizer.js"() {
15728
+ "packages/orchestrator/dist/taskNormalizer.js"() {
15729
15729
  "use strict";
15730
15730
  init_dist3();
15731
15731
  init_promptLoader();
@@ -15777,7 +15777,7 @@ var init_taskNormalizer = __esm({
15777
15777
  }
15778
15778
  });
15779
15779
 
15780
- // ../packages/orchestrator/dist/dispatcher.js
15780
+ // packages/orchestrator/dist/dispatcher.js
15781
15781
  function estimateComplexity(task) {
15782
15782
  const text = `${task.goal} ${task.constraints.join(" ")} ${task.successCriteria.join(" ")}`;
15783
15783
  const wordCount = text.split(/\s+/).length;
@@ -15844,7 +15844,7 @@ function parseJsonFromContent2(content) {
15844
15844
  }
15845
15845
  var Dispatcher;
15846
15846
  var init_dispatcher = __esm({
15847
- "../packages/orchestrator/dist/dispatcher.js"() {
15847
+ "packages/orchestrator/dist/dispatcher.js"() {
15848
15848
  "use strict";
15849
15849
  init_dist3();
15850
15850
  init_promptLoader();
@@ -15904,7 +15904,7 @@ var init_dispatcher = __esm({
15904
15904
  }
15905
15905
  });
15906
15906
 
15907
- // ../packages/orchestrator/dist/plannerRunner.js
15907
+ // packages/orchestrator/dist/plannerRunner.js
15908
15908
  function plannerPrompt(task, repoProfile, retrievalPacket) {
15909
15909
  const profileSection = repoProfile ? `REPOSITORY PROFILE:
15910
15910
  ${JSON.stringify(repoProfile, null, 2)}` : "REPOSITORY PROFILE: (not available)";
@@ -15925,7 +15925,7 @@ function parseJsonFromContent3(content) {
15925
15925
  }
15926
15926
  var PlannerRunner;
15927
15927
  var init_plannerRunner = __esm({
15928
- "../packages/orchestrator/dist/plannerRunner.js"() {
15928
+ "packages/orchestrator/dist/plannerRunner.js"() {
15929
15929
  "use strict";
15930
15930
  init_dist3();
15931
15931
  init_promptLoader();
@@ -15978,12 +15978,12 @@ var init_plannerRunner = __esm({
15978
15978
  }
15979
15979
  });
15980
15980
 
15981
- // ../packages/retrieval/dist/grep-search.js
15981
+ // packages/retrieval/dist/grep-search.js
15982
15982
  import { execFile as execFile4 } from "node:child_process";
15983
15983
  import { promisify as promisify3 } from "node:util";
15984
15984
  var execFileAsync3, GrepSearch;
15985
15985
  var init_grep_search2 = __esm({
15986
- "../packages/retrieval/dist/grep-search.js"() {
15986
+ "packages/retrieval/dist/grep-search.js"() {
15987
15987
  "use strict";
15988
15988
  execFileAsync3 = promisify3(execFile4);
15989
15989
  GrepSearch = class {
@@ -16040,10 +16040,10 @@ var init_grep_search2 = __esm({
16040
16040
  }
16041
16041
  });
16042
16042
 
16043
- // ../packages/retrieval/dist/code-retriever.js
16043
+ // packages/retrieval/dist/code-retriever.js
16044
16044
  var DEFAULT_CONFIG3, CodeRetriever;
16045
16045
  var init_code_retriever = __esm({
16046
- "../packages/retrieval/dist/code-retriever.js"() {
16046
+ "packages/retrieval/dist/code-retriever.js"() {
16047
16047
  "use strict";
16048
16048
  init_grep_search2();
16049
16049
  DEFAULT_CONFIG3 = {
@@ -16081,7 +16081,7 @@ var init_code_retriever = __esm({
16081
16081
  }
16082
16082
  });
16083
16083
 
16084
- // ../packages/retrieval/dist/lexicalSearch.js
16084
+ // packages/retrieval/dist/lexicalSearch.js
16085
16085
  import { execFile as execFile5 } from "node:child_process";
16086
16086
  import { promisify as promisify4 } from "node:util";
16087
16087
  import { readFile as readFile14, readdir as readdir4, stat as stat3 } from "node:fs/promises";
@@ -16259,7 +16259,7 @@ function matchesGlob(filePath, glob2) {
16259
16259
  }
16260
16260
  var execFileAsync4, DEFAULT_INCLUDE_GLOBS, DEFAULT_EXCLUDE_GLOBS, DEFAULT_MAX_MATCHES, ALWAYS_SKIP, ALL_CODE_EXTS;
16261
16261
  var init_lexicalSearch = __esm({
16262
- "../packages/retrieval/dist/lexicalSearch.js"() {
16262
+ "packages/retrieval/dist/lexicalSearch.js"() {
16263
16263
  "use strict";
16264
16264
  execFileAsync4 = promisify4(execFile5);
16265
16265
  DEFAULT_INCLUDE_GLOBS = ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "**/*.py"];
@@ -16270,7 +16270,7 @@ var init_lexicalSearch = __esm({
16270
16270
  }
16271
16271
  });
16272
16272
 
16273
- // ../packages/retrieval/dist/semanticSearch.js
16273
+ // packages/retrieval/dist/semanticSearch.js
16274
16274
  function parseTagFilter(query) {
16275
16275
  const required = [];
16276
16276
  const anyOf = [];
@@ -16347,7 +16347,7 @@ function makePlaceholderSummary(filePath) {
16347
16347
  }
16348
16348
  var StubSemanticSearchEngine, IndexBackedSemanticSearchEngine, LazySemanticSearchEngine;
16349
16349
  var init_semanticSearch = __esm({
16350
- "../packages/retrieval/dist/semanticSearch.js"() {
16350
+ "packages/retrieval/dist/semanticSearch.js"() {
16351
16351
  "use strict";
16352
16352
  StubSemanticSearchEngine = class {
16353
16353
  isAvailable = false;
@@ -16467,7 +16467,7 @@ var init_semanticSearch = __esm({
16467
16467
  }
16468
16468
  });
16469
16469
 
16470
- // ../packages/retrieval/dist/graphExpand.js
16470
+ // packages/retrieval/dist/graphExpand.js
16471
16471
  function expandGraph(seeds, graph, opts = {}) {
16472
16472
  const { direction = "both", maxHops = 1, maxNeighbors = 20, includeSeeds = false } = opts;
16473
16473
  const seedSet = new Set(seeds);
@@ -16527,12 +16527,12 @@ function bfsExpand(seeds, adjacency, maxHops, maxNeighbors, excludeSet, result)
16527
16527
  }
16528
16528
  }
16529
16529
  var init_graphExpand = __esm({
16530
- "../packages/retrieval/dist/graphExpand.js"() {
16530
+ "packages/retrieval/dist/graphExpand.js"() {
16531
16531
  "use strict";
16532
16532
  }
16533
16533
  });
16534
16534
 
16535
- // ../packages/retrieval/dist/snippetPacker.js
16535
+ // packages/retrieval/dist/snippetPacker.js
16536
16536
  import { readFile as readFile15 } from "node:fs/promises";
16537
16537
  import { join as join33 } from "node:path";
16538
16538
  async function packSnippets(requests, opts = {}) {
@@ -16595,7 +16595,7 @@ async function packFiles(filePaths, repoRoot, maxTokens = DEFAULT_MAX_TOKENS) {
16595
16595
  }
16596
16596
  var DEFAULT_MAX_TOKENS, DEFAULT_CONTEXT_LINES, CHARS_PER_TOKEN;
16597
16597
  var init_snippetPacker = __esm({
16598
- "../packages/retrieval/dist/snippetPacker.js"() {
16598
+ "packages/retrieval/dist/snippetPacker.js"() {
16599
16599
  "use strict";
16600
16600
  DEFAULT_MAX_TOKENS = 32e3;
16601
16601
  DEFAULT_CONTEXT_LINES = 2;
@@ -16603,7 +16603,7 @@ var init_snippetPacker = __esm({
16603
16603
  }
16604
16604
  });
16605
16605
 
16606
- // ../packages/retrieval/dist/contextAssembler.js
16606
+ // packages/retrieval/dist/contextAssembler.js
16607
16607
  async function assembleContext(request, opts) {
16608
16608
  const { repoRoot, graph, semanticEngine, summaryMap, maxFiles = 8, maxSnippets = 20, maxLogs = 3, maxTokens = 24e3, expandNeighbors = true, architectureNote, priorAttemptNote } = opts;
16609
16609
  const lexOpts = {
@@ -16759,7 +16759,7 @@ function estimatePacketTokens(packet) {
16759
16759
  return fileTokens + snippetTokens;
16760
16760
  }
16761
16761
  var init_contextAssembler = __esm({
16762
- "../packages/retrieval/dist/contextAssembler.js"() {
16762
+ "packages/retrieval/dist/contextAssembler.js"() {
16763
16763
  "use strict";
16764
16764
  init_lexicalSearch();
16765
16765
  init_graphExpand();
@@ -16767,7 +16767,7 @@ var init_contextAssembler = __esm({
16767
16767
  }
16768
16768
  });
16769
16769
 
16770
- // ../packages/retrieval/dist/index.js
16770
+ // packages/retrieval/dist/index.js
16771
16771
  var dist_exports2 = {};
16772
16772
  __export(dist_exports2, {
16773
16773
  CodeRetriever: () => CodeRetriever,
@@ -16792,7 +16792,7 @@ __export(dist_exports2, {
16792
16792
  testsForFiles: () => testsForFiles
16793
16793
  });
16794
16794
  var init_dist4 = __esm({
16795
- "../packages/retrieval/dist/index.js"() {
16795
+ "packages/retrieval/dist/index.js"() {
16796
16796
  "use strict";
16797
16797
  init_code_retriever();
16798
16798
  init_grep_search2();
@@ -16804,7 +16804,7 @@ var init_dist4 = __esm({
16804
16804
  }
16805
16805
  });
16806
16806
 
16807
- // ../packages/orchestrator/dist/scoutRunner.js
16807
+ // packages/orchestrator/dist/scoutRunner.js
16808
16808
  async function loadCodeRetriever(rootDir) {
16809
16809
  const mod = await Promise.resolve().then(() => (init_dist4(), dist_exports2));
16810
16810
  return new mod.CodeRetriever({ rootDir });
@@ -16835,7 +16835,7 @@ function scoutPrompt(task, repoProfile, candidateFiles, subtasks) {
16835
16835
  }
16836
16836
  var ScoutRunner;
16837
16837
  var init_scoutRunner = __esm({
16838
- "../packages/orchestrator/dist/scoutRunner.js"() {
16838
+ "packages/orchestrator/dist/scoutRunner.js"() {
16839
16839
  "use strict";
16840
16840
  init_dist3();
16841
16841
  init_promptLoader();
@@ -16941,7 +16941,7 @@ var init_scoutRunner = __esm({
16941
16941
  }
16942
16942
  });
16943
16943
 
16944
- // ../packages/orchestrator/dist/editorRunner.js
16944
+ // packages/orchestrator/dist/editorRunner.js
16945
16945
  function editorPrompt(task, subtask, retrievalPacket, previousVerification, retryNumber) {
16946
16946
  const filesSection = Object.entries(retrievalPacket.files).map(([path, content]) => `=== ${path} ===
16947
16947
  ${content}`).join("\n\n");
@@ -16969,7 +16969,7 @@ function parseJsonFromContent5(content) {
16969
16969
  }
16970
16970
  var EditorRunner;
16971
16971
  var init_editorRunner = __esm({
16972
- "../packages/orchestrator/dist/editorRunner.js"() {
16972
+ "packages/orchestrator/dist/editorRunner.js"() {
16973
16973
  "use strict";
16974
16974
  init_dist3();
16975
16975
  init_promptLoader();
@@ -17027,7 +17027,7 @@ var init_editorRunner = __esm({
17027
17027
  }
17028
17028
  });
17029
17029
 
17030
- // ../packages/orchestrator/dist/verifierRunner.js
17030
+ // packages/orchestrator/dist/verifierRunner.js
17031
17031
  function verifierPrompt(task, subtask, patch, toolOutput) {
17032
17032
  const toolSection = toolOutput ? `TOOL EXECUTION OUTPUT:
17033
17033
  ${toolOutput}` : "TOOL EXECUTION OUTPUT: (not executed)";
@@ -17055,7 +17055,7 @@ function parseJsonFromContent6(content) {
17055
17055
  }
17056
17056
  var VerifierRunner;
17057
17057
  var init_verifierRunner = __esm({
17058
- "../packages/orchestrator/dist/verifierRunner.js"() {
17058
+ "packages/orchestrator/dist/verifierRunner.js"() {
17059
17059
  "use strict";
17060
17060
  init_dist3();
17061
17061
  init_promptLoader();
@@ -17150,10 +17150,10 @@ FAILED: ${execError.stderr ?? execError.stdout ?? execError.message ?? "unknown
17150
17150
  }
17151
17151
  });
17152
17152
 
17153
- // ../packages/orchestrator/dist/mergeRunner.js
17153
+ // packages/orchestrator/dist/mergeRunner.js
17154
17154
  var MergeRunner;
17155
17155
  var init_mergeRunner = __esm({
17156
- "../packages/orchestrator/dist/mergeRunner.js"() {
17156
+ "packages/orchestrator/dist/mergeRunner.js"() {
17157
17157
  "use strict";
17158
17158
  init_promptLoader();
17159
17159
  MergeRunner = class {
@@ -17238,10 +17238,10 @@ var init_mergeRunner = __esm({
17238
17238
  }
17239
17239
  });
17240
17240
 
17241
- // ../packages/orchestrator/dist/retryController.js
17241
+ // packages/orchestrator/dist/retryController.js
17242
17242
  var RetryController;
17243
17243
  var init_retryController = __esm({
17244
- "../packages/orchestrator/dist/retryController.js"() {
17244
+ "packages/orchestrator/dist/retryController.js"() {
17245
17245
  "use strict";
17246
17246
  RetryController = class {
17247
17247
  maxRetries;
@@ -17338,7 +17338,7 @@ var init_retryController = __esm({
17338
17338
  }
17339
17339
  });
17340
17340
 
17341
- // ../packages/orchestrator/dist/ralphLoop.js
17341
+ // packages/orchestrator/dist/ralphLoop.js
17342
17342
  function isoNow() {
17343
17343
  return (/* @__PURE__ */ new Date()).toISOString();
17344
17344
  }
@@ -17386,7 +17386,7 @@ function deriveTerminalStatus(executions) {
17386
17386
  }
17387
17387
  var RalphLoop;
17388
17388
  var init_ralphLoop = __esm({
17389
- "../packages/orchestrator/dist/ralphLoop.js"() {
17389
+ "packages/orchestrator/dist/ralphLoop.js"() {
17390
17390
  "use strict";
17391
17391
  init_taskNormalizer();
17392
17392
  init_dispatcher();
@@ -17669,7 +17669,7 @@ var init_ralphLoop = __esm({
17669
17669
  }
17670
17670
  });
17671
17671
 
17672
- // ../packages/orchestrator/dist/personality.js
17672
+ // packages/orchestrator/dist/personality.js
17673
17673
  function compilePersonalityPrompt(profile, presetName) {
17674
17674
  if (presetName === "stark") {
17675
17675
  return loadPrompt("personality/level-stark.md");
@@ -17697,7 +17697,7 @@ function getPreset(name) {
17697
17697
  }
17698
17698
  var PERSONALITY_PRESETS, PRESET_NAMES;
17699
17699
  var init_personality = __esm({
17700
- "../packages/orchestrator/dist/personality.js"() {
17700
+ "packages/orchestrator/dist/personality.js"() {
17701
17701
  "use strict";
17702
17702
  init_promptLoader();
17703
17703
  PERSONALITY_PRESETS = {
@@ -17718,7 +17718,7 @@ var init_personality = __esm({
17718
17718
  }
17719
17719
  });
17720
17720
 
17721
- // ../packages/orchestrator/dist/agenticRunner.js
17721
+ // packages/orchestrator/dist/agenticRunner.js
17722
17722
  function repairJson(raw) {
17723
17723
  if (!raw || typeof raw !== "string")
17724
17724
  return null;
@@ -17784,7 +17784,7 @@ function getSystemPromptForTier(tier) {
17784
17784
  }
17785
17785
  var SYSTEM_PROMPT, SYSTEM_PROMPT_MEDIUM, SYSTEM_PROMPT_SMALL, AgenticRunner, OllamaAgenticBackend;
17786
17786
  var init_agenticRunner = __esm({
17787
- "../packages/orchestrator/dist/agenticRunner.js"() {
17787
+ "packages/orchestrator/dist/agenticRunner.js"() {
17788
17788
  "use strict";
17789
17789
  init_dist();
17790
17790
  init_personality();
@@ -20315,10 +20315,10 @@ ${transcript}`
20315
20315
  }
20316
20316
  });
20317
20317
 
20318
- // ../packages/orchestrator/dist/nexusBackend.js
20318
+ // packages/orchestrator/dist/nexusBackend.js
20319
20319
  var NexusAgenticBackend;
20320
20320
  var init_nexusBackend = __esm({
20321
- "../packages/orchestrator/dist/nexusBackend.js"() {
20321
+ "packages/orchestrator/dist/nexusBackend.js"() {
20322
20322
  "use strict";
20323
20323
  NexusAgenticBackend = class {
20324
20324
  sendFn;
@@ -20478,10 +20478,10 @@ var init_nexusBackend = __esm({
20478
20478
  }
20479
20479
  });
20480
20480
 
20481
- // ../packages/orchestrator/dist/cascadeBackend.js
20481
+ // packages/orchestrator/dist/cascadeBackend.js
20482
20482
  var CascadeBackend;
20483
20483
  var init_cascadeBackend = __esm({
20484
- "../packages/orchestrator/dist/cascadeBackend.js"() {
20484
+ "packages/orchestrator/dist/cascadeBackend.js"() {
20485
20485
  "use strict";
20486
20486
  init_agenticRunner();
20487
20487
  init_nexusBackend();
@@ -20745,10 +20745,10 @@ var init_cascadeBackend = __esm({
20745
20745
  }
20746
20746
  });
20747
20747
 
20748
- // ../packages/orchestrator/dist/flowstatePrompt.js
20748
+ // packages/orchestrator/dist/flowstatePrompt.js
20749
20749
  var FLOWSTATE_PROMPT;
20750
20750
  var init_flowstatePrompt = __esm({
20751
- "../packages/orchestrator/dist/flowstatePrompt.js"() {
20751
+ "packages/orchestrator/dist/flowstatePrompt.js"() {
20752
20752
  "use strict";
20753
20753
  FLOWSTATE_PROMPT = `## FlowState Protocol (Active)
20754
20754
 
@@ -20799,10 +20799,10 @@ Constrain your context. Clarify your target. Focus your tools. Flow will follow.
20799
20799
  }
20800
20800
  });
20801
20801
 
20802
- // ../packages/orchestrator/dist/costTracker.js
20802
+ // packages/orchestrator/dist/costTracker.js
20803
20803
  var DEFAULT_PRICING, CostTracker;
20804
20804
  var init_costTracker = __esm({
20805
- "../packages/orchestrator/dist/costTracker.js"() {
20805
+ "packages/orchestrator/dist/costTracker.js"() {
20806
20806
  "use strict";
20807
20807
  DEFAULT_PRICING = [
20808
20808
  // Cloud providers — typical pricing tiers
@@ -20950,7 +20950,7 @@ var init_costTracker = __esm({
20950
20950
  }
20951
20951
  });
20952
20952
 
20953
- // ../packages/orchestrator/dist/workEvaluator.js
20953
+ // packages/orchestrator/dist/workEvaluator.js
20954
20954
  function detectTaskType(taskDescription) {
20955
20955
  let bestType = "general";
20956
20956
  let bestScore = 0;
@@ -20985,7 +20985,7 @@ function buildEvaluationPrompt(task, summary, rubric) {
20985
20985
  }
20986
20986
  var RUBRICS, TASK_TYPE_PATTERNS, WorkEvaluator;
20987
20987
  var init_workEvaluator = __esm({
20988
- "../packages/orchestrator/dist/workEvaluator.js"() {
20988
+ "packages/orchestrator/dist/workEvaluator.js"() {
20989
20989
  "use strict";
20990
20990
  init_promptLoader();
20991
20991
  RUBRICS = {
@@ -21156,10 +21156,10 @@ var init_workEvaluator = __esm({
21156
21156
  }
21157
21157
  });
21158
21158
 
21159
- // ../packages/orchestrator/dist/sessionMetrics.js
21159
+ // packages/orchestrator/dist/sessionMetrics.js
21160
21160
  var SessionMetrics;
21161
21161
  var init_sessionMetrics = __esm({
21162
- "../packages/orchestrator/dist/sessionMetrics.js"() {
21162
+ "packages/orchestrator/dist/sessionMetrics.js"() {
21163
21163
  "use strict";
21164
21164
  SessionMetrics = class {
21165
21165
  sessionStart;
@@ -21256,16 +21256,16 @@ var init_sessionMetrics = __esm({
21256
21256
  }
21257
21257
  });
21258
21258
 
21259
- // ../packages/orchestrator/dist/taskLearning.js
21259
+ // packages/orchestrator/dist/taskLearning.js
21260
21260
  var init_taskLearning = __esm({
21261
- "../packages/orchestrator/dist/taskLearning.js"() {
21261
+ "packages/orchestrator/dist/taskLearning.js"() {
21262
21262
  "use strict";
21263
21263
  }
21264
21264
  });
21265
21265
 
21266
- // ../packages/orchestrator/dist/index.js
21266
+ // packages/orchestrator/dist/index.js
21267
21267
  var init_dist5 = __esm({
21268
- "../packages/orchestrator/dist/index.js"() {
21268
+ "packages/orchestrator/dist/index.js"() {
21269
21269
  "use strict";
21270
21270
  init_agent_loop();
21271
21271
  init_ralphLoop();
@@ -21289,7 +21289,7 @@ var init_dist5 = __esm({
21289
21289
  }
21290
21290
  });
21291
21291
 
21292
- // ../packages/cli/dist/tui/listen.js
21292
+ // packages/cli/dist/tui/listen.js
21293
21293
  var listen_exports = {};
21294
21294
  __export(listen_exports, {
21295
21295
  ListenEngine: () => ListenEngine,
@@ -21469,7 +21469,7 @@ function getListenEngine(config) {
21469
21469
  }
21470
21470
  var AUDIO_EXTENSIONS, VIDEO_EXTENSIONS, WhisperFallbackTranscriber, ListenEngine, _bgInstallPromise, _engine;
21471
21471
  var init_listen = __esm({
21472
- "../packages/cli/dist/tui/listen.js"() {
21472
+ "packages/cli/dist/tui/listen.js"() {
21473
21473
  "use strict";
21474
21474
  AUDIO_EXTENSIONS = /* @__PURE__ */ new Set([
21475
21475
  ".mp3",
@@ -22008,9 +22008,9 @@ transcribe-cli error: ${transcribeCliError}` : "";
22008
22008
  }
22009
22009
  });
22010
22010
 
22011
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/constants.js
22011
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/constants.js
22012
22012
  var require_constants = __commonJS({
22013
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/constants.js"(exports, module) {
22013
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/constants.js"(exports, module) {
22014
22014
  "use strict";
22015
22015
  var BINARY_TYPES = ["nodebuffer", "arraybuffer", "fragments"];
22016
22016
  var hasBlob = typeof Blob !== "undefined";
@@ -22031,9 +22031,9 @@ var require_constants = __commonJS({
22031
22031
  }
22032
22032
  });
22033
22033
 
22034
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/buffer-util.js
22034
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/buffer-util.js
22035
22035
  var require_buffer_util = __commonJS({
22036
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/buffer-util.js"(exports, module) {
22036
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/buffer-util.js"(exports, module) {
22037
22037
  "use strict";
22038
22038
  var { EMPTY_BUFFER } = require_constants();
22039
22039
  var FastBuffer = Buffer[Symbol.species];
@@ -22106,9 +22106,9 @@ var require_buffer_util = __commonJS({
22106
22106
  }
22107
22107
  });
22108
22108
 
22109
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/limiter.js
22109
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/limiter.js
22110
22110
  var require_limiter = __commonJS({
22111
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/limiter.js"(exports, module) {
22111
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/limiter.js"(exports, module) {
22112
22112
  "use strict";
22113
22113
  var kDone = /* @__PURE__ */ Symbol("kDone");
22114
22114
  var kRun = /* @__PURE__ */ Symbol("kRun");
@@ -22156,9 +22156,9 @@ var require_limiter = __commonJS({
22156
22156
  }
22157
22157
  });
22158
22158
 
22159
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/permessage-deflate.js
22159
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/permessage-deflate.js
22160
22160
  var require_permessage_deflate = __commonJS({
22161
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/permessage-deflate.js"(exports, module) {
22161
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/permessage-deflate.js"(exports, module) {
22162
22162
  "use strict";
22163
22163
  var zlib = __require("zlib");
22164
22164
  var bufferUtil = require_buffer_util();
@@ -22539,9 +22539,9 @@ var require_permessage_deflate = __commonJS({
22539
22539
  }
22540
22540
  });
22541
22541
 
22542
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/validation.js
22542
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/validation.js
22543
22543
  var require_validation = __commonJS({
22544
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/validation.js"(exports, module) {
22544
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/validation.js"(exports, module) {
22545
22545
  "use strict";
22546
22546
  var { isUtf8 } = __require("buffer");
22547
22547
  var { hasBlob } = require_constants();
@@ -22740,9 +22740,9 @@ var require_validation = __commonJS({
22740
22740
  }
22741
22741
  });
22742
22742
 
22743
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/receiver.js
22743
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/receiver.js
22744
22744
  var require_receiver = __commonJS({
22745
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/receiver.js"(exports, module) {
22745
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/receiver.js"(exports, module) {
22746
22746
  "use strict";
22747
22747
  var { Writable: Writable2 } = __require("stream");
22748
22748
  var PerMessageDeflate = require_permessage_deflate();
@@ -23332,9 +23332,9 @@ var require_receiver = __commonJS({
23332
23332
  }
23333
23333
  });
23334
23334
 
23335
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/sender.js
23335
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/sender.js
23336
23336
  var require_sender = __commonJS({
23337
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/sender.js"(exports, module) {
23337
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/sender.js"(exports, module) {
23338
23338
  "use strict";
23339
23339
  var { Duplex } = __require("stream");
23340
23340
  var { randomFillSync } = __require("crypto");
@@ -23820,9 +23820,9 @@ var require_sender = __commonJS({
23820
23820
  }
23821
23821
  });
23822
23822
 
23823
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/event-target.js
23823
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/event-target.js
23824
23824
  var require_event_target = __commonJS({
23825
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/event-target.js"(exports, module) {
23825
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/event-target.js"(exports, module) {
23826
23826
  "use strict";
23827
23827
  var { kForOnEventAttribute, kListener } = require_constants();
23828
23828
  var kCode = /* @__PURE__ */ Symbol("kCode");
@@ -24049,9 +24049,9 @@ var require_event_target = __commonJS({
24049
24049
  }
24050
24050
  });
24051
24051
 
24052
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/extension.js
24052
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/extension.js
24053
24053
  var require_extension = __commonJS({
24054
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/extension.js"(exports, module) {
24054
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/extension.js"(exports, module) {
24055
24055
  "use strict";
24056
24056
  var { tokenChars } = require_validation();
24057
24057
  function push(dest, name, elem) {
@@ -24202,9 +24202,9 @@ var require_extension = __commonJS({
24202
24202
  }
24203
24203
  });
24204
24204
 
24205
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js
24205
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js
24206
24206
  var require_websocket = __commonJS({
24207
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js"(exports, module) {
24207
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket.js"(exports, module) {
24208
24208
  "use strict";
24209
24209
  var EventEmitter7 = __require("events");
24210
24210
  var https = __require("https");
@@ -25088,9 +25088,9 @@ var require_websocket = __commonJS({
25088
25088
  }
25089
25089
  });
25090
25090
 
25091
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/stream.js
25091
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/stream.js
25092
25092
  var require_stream = __commonJS({
25093
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/stream.js"(exports, module) {
25093
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/stream.js"(exports, module) {
25094
25094
  "use strict";
25095
25095
  var WebSocket2 = require_websocket();
25096
25096
  var { Duplex } = __require("stream");
@@ -25186,9 +25186,9 @@ var require_stream = __commonJS({
25186
25186
  }
25187
25187
  });
25188
25188
 
25189
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/subprotocol.js
25189
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/subprotocol.js
25190
25190
  var require_subprotocol = __commonJS({
25191
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/subprotocol.js"(exports, module) {
25191
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/subprotocol.js"(exports, module) {
25192
25192
  "use strict";
25193
25193
  var { tokenChars } = require_validation();
25194
25194
  function parse(header) {
@@ -25231,9 +25231,9 @@ var require_subprotocol = __commonJS({
25231
25231
  }
25232
25232
  });
25233
25233
 
25234
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket-server.js
25234
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket-server.js
25235
25235
  var require_websocket_server = __commonJS({
25236
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket-server.js"(exports, module) {
25236
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/lib/websocket-server.js"(exports, module) {
25237
25237
  "use strict";
25238
25238
  var EventEmitter7 = __require("events");
25239
25239
  var http = __require("http");
@@ -25624,10 +25624,10 @@ var require_websocket_server = __commonJS({
25624
25624
  }
25625
25625
  });
25626
25626
 
25627
- // ../node_modules/.pnpm/ws@8.19.0/node_modules/ws/wrapper.mjs
25627
+ // node_modules/.pnpm/ws@8.19.0/node_modules/ws/wrapper.mjs
25628
25628
  var import_stream, import_receiver, import_sender, import_websocket, import_websocket_server;
25629
25629
  var init_wrapper = __esm({
25630
- "../node_modules/.pnpm/ws@8.19.0/node_modules/ws/wrapper.mjs"() {
25630
+ "node_modules/.pnpm/ws@8.19.0/node_modules/ws/wrapper.mjs"() {
25631
25631
  import_stream = __toESM(require_stream(), 1);
25632
25632
  import_receiver = __toESM(require_receiver(), 1);
25633
25633
  import_sender = __toESM(require_sender(), 1);
@@ -25636,7 +25636,7 @@ var init_wrapper = __esm({
25636
25636
  }
25637
25637
  });
25638
25638
 
25639
- // ../packages/cli/dist/tui/render.js
25639
+ // packages/cli/dist/tui/render.js
25640
25640
  function ansi2(code, text) {
25641
25641
  return isTTY2 ? `\x1B[${code}m${text}\x1B[0m` : text;
25642
25642
  }
@@ -26325,7 +26325,7 @@ function formatDuration2(ms) {
26325
26325
  }
26326
26326
  var isTTY2, c2, pastel, _emojisEnabled, _colorsEnabled, MD, TOOL_ICONS, TOOL_LABELS, TOOL_COLORS, _contentWriteHook, HINTS, TOOL_NAMES, COMMAND_NAMES;
26327
26327
  var init_render = __esm({
26328
- "../packages/cli/dist/tui/render.js"() {
26328
+ "packages/cli/dist/tui/render.js"() {
26329
26329
  "use strict";
26330
26330
  isTTY2 = process.stdout.isTTY ?? false;
26331
26331
  c2 = {
@@ -26550,7 +26550,7 @@ var init_render = __esm({
26550
26550
  }
26551
26551
  });
26552
26552
 
26553
- // ../packages/cli/dist/tui/voice-session.js
26553
+ // packages/cli/dist/tui/voice-session.js
26554
26554
  import { createServer } from "node:http";
26555
26555
  import { spawn as spawn15, execSync as execSync24 } from "node:child_process";
26556
26556
  import { EventEmitter as EventEmitter2 } from "node:events";
@@ -26931,7 +26931,7 @@ function renderVoiceSessionTranscript(speaker, text) {
26931
26931
  }
26932
26932
  var VoiceSession;
26933
26933
  var init_voice_session = __esm({
26934
- "../packages/cli/dist/tui/voice-session.js"() {
26934
+ "packages/cli/dist/tui/voice-session.js"() {
26935
26935
  "use strict";
26936
26936
  init_wrapper();
26937
26937
  init_render();
@@ -27278,7 +27278,7 @@ var init_voice_session = __esm({
27278
27278
  }
27279
27279
  });
27280
27280
 
27281
- // ../packages/cli/dist/tui/expose.js
27281
+ // packages/cli/dist/tui/expose.js
27282
27282
  import { createServer as createServer2, request as httpRequest } from "node:http";
27283
27283
  import { spawn as spawn16, exec } from "node:child_process";
27284
27284
  import { EventEmitter as EventEmitter3 } from "node:events";
@@ -27395,9 +27395,36 @@ async function collectSystemMetricsAsync() {
27395
27395
  timestamp: (/* @__PURE__ */ new Date()).toISOString()
27396
27396
  };
27397
27397
  }
27398
- var HOP_BY_HOP_HEADERS, CF_HEADERS_PREFIX, DEFAULT_TARGETS, STATE_FILE_NAME, ExposeGateway, ExposeP2PGateway;
27398
+ function readP2PExposeState(stateDir) {
27399
+ try {
27400
+ const path = join35(stateDir, P2P_STATE_FILE_NAME);
27401
+ if (!existsSync27(path))
27402
+ return null;
27403
+ const raw = readFileSync19(path, "utf8");
27404
+ const data = JSON.parse(raw);
27405
+ if (!data.peerId || !data.authKey)
27406
+ return null;
27407
+ return data;
27408
+ } catch {
27409
+ return null;
27410
+ }
27411
+ }
27412
+ function writeP2PExposeState(stateDir, state) {
27413
+ try {
27414
+ mkdirSync9(stateDir, { recursive: true });
27415
+ writeFileSync9(join35(stateDir, P2P_STATE_FILE_NAME), JSON.stringify(state, null, 2));
27416
+ } catch {
27417
+ }
27418
+ }
27419
+ function removeP2PExposeState(stateDir) {
27420
+ try {
27421
+ unlinkSync3(join35(stateDir, P2P_STATE_FILE_NAME));
27422
+ } catch {
27423
+ }
27424
+ }
27425
+ var HOP_BY_HOP_HEADERS, CF_HEADERS_PREFIX, DEFAULT_TARGETS, STATE_FILE_NAME, ExposeGateway, P2P_STATE_FILE_NAME, ExposeP2PGateway;
27399
27426
  var init_expose = __esm({
27400
- "../packages/cli/dist/tui/expose.js"() {
27427
+ "packages/cli/dist/tui/expose.js"() {
27401
27428
  "use strict";
27402
27429
  init_render();
27403
27430
  HOP_BY_HOP_HEADERS = /* @__PURE__ */ new Set([
@@ -28047,7 +28074,8 @@ ${this.formatConnectionInfo()}`);
28047
28074
  return lines.join("\n");
28048
28075
  }
28049
28076
  };
28050
- ExposeP2PGateway = class extends EventEmitter3 {
28077
+ P2P_STATE_FILE_NAME = "expose-p2p-state.json";
28078
+ ExposeP2PGateway = class _ExposeP2PGateway extends EventEmitter3 {
28051
28079
  _nexusTool;
28052
28080
  // NexusTool instance
28053
28081
  _kind;
@@ -28156,6 +28184,16 @@ ${this.formatConnectionInfo()}`);
28156
28184
  this._stats.status = "active";
28157
28185
  this._stats.startedAt = Date.now();
28158
28186
  this.emitStats();
28187
+ if (this._stateDir && this._peerId) {
28188
+ writeP2PExposeState(this._stateDir, {
28189
+ peerId: this._peerId,
28190
+ authKey: this._authKey,
28191
+ kind: this._kind,
28192
+ targetUrl: this._targetUrl,
28193
+ margin: this._margin,
28194
+ startedAt: (/* @__PURE__ */ new Date()).toISOString()
28195
+ });
28196
+ }
28159
28197
  this.startMeteringPoll(nexusDir);
28160
28198
  return this._peerId ?? "connected (peer ID pending)";
28161
28199
  }
@@ -28164,6 +28202,54 @@ ${this.formatConnectionInfo()}`);
28164
28202
  this._stats.status = "standby";
28165
28203
  this._stats.activeConnections = 0;
28166
28204
  this.emitStats();
28205
+ if (this._stateDir)
28206
+ removeP2PExposeState(this._stateDir);
28207
+ }
28208
+ /**
28209
+ * Check for and reconnect to a surviving P2P expose from a previous session.
28210
+ * Verifies the nexus daemon is still running and the peer ID is valid,
28211
+ * then resumes metering poll without re-registering capabilities
28212
+ * (the daemon keeps them registered across OA restarts).
28213
+ */
28214
+ static async checkAndReconnect(stateDir, nexusTool, options) {
28215
+ const state = readP2PExposeState(stateDir);
28216
+ if (!state)
28217
+ return null;
28218
+ const nexusDir = nexusTool.getNexusDir();
28219
+ const statusPath = join35(nexusDir, "status.json");
28220
+ try {
28221
+ if (!existsSync27(statusPath)) {
28222
+ removeP2PExposeState(stateDir);
28223
+ return null;
28224
+ }
28225
+ const status = JSON.parse(readFileSync19(statusPath, "utf8"));
28226
+ if (!status.connected || !status.peerId) {
28227
+ removeP2PExposeState(stateDir);
28228
+ return null;
28229
+ }
28230
+ if (status.peerId !== state.peerId) {
28231
+ removeP2PExposeState(stateDir);
28232
+ return null;
28233
+ }
28234
+ } catch {
28235
+ removeP2PExposeState(stateDir);
28236
+ return null;
28237
+ }
28238
+ const gateway = new _ExposeP2PGateway({
28239
+ kind: state.kind,
28240
+ targetUrl: state.targetUrl,
28241
+ authKey: state.authKey,
28242
+ stateDir,
28243
+ margin: state.margin,
28244
+ ...options
28245
+ }, nexusTool);
28246
+ gateway._peerId = state.peerId;
28247
+ gateway._stats.status = "active";
28248
+ gateway._stats.startedAt = new Date(state.startedAt).getTime();
28249
+ gateway.emitStats();
28250
+ gateway.startMeteringPoll(nexusDir);
28251
+ options.onInfo?.(`P2P expose reconnected: ${state.peerId}`);
28252
+ return gateway;
28167
28253
  }
28168
28254
  /** Poll the daemon's metering.jsonl and status.json for stats */
28169
28255
  startMeteringPoll(nexusDir) {
@@ -28357,25 +28443,25 @@ ${this.formatConnectionInfo()}`);
28357
28443
  }
28358
28444
  });
28359
28445
 
28360
- // ../packages/cli/dist/tui/p2p/types.js
28446
+ // packages/cli/dist/tui/p2p/types.js
28361
28447
  function trustLevel(tier) {
28362
28448
  return TRUST_ORDER.indexOf(tier);
28363
28449
  }
28364
28450
  var TRUST_ORDER;
28365
28451
  var init_types = __esm({
28366
- "../packages/cli/dist/tui/p2p/types.js"() {
28452
+ "packages/cli/dist/tui/p2p/types.js"() {
28367
28453
  "use strict";
28368
28454
  TRUST_ORDER = ["public", "verified", "tee", "local"];
28369
28455
  }
28370
28456
  });
28371
28457
 
28372
- // ../packages/cli/dist/tui/p2p/secret-vault.js
28458
+ // packages/cli/dist/tui/p2p/secret-vault.js
28373
28459
  import { createCipheriv as createCipheriv2, createDecipheriv as createDecipheriv2, randomBytes as randomBytes8, scryptSync as scryptSync2, createHash as createHash2 } from "node:crypto";
28374
28460
  import { readFileSync as readFileSync20, writeFileSync as writeFileSync10, existsSync as existsSync28, mkdirSync as mkdirSync10 } from "node:fs";
28375
28461
  import { join as join36, dirname as dirname14 } from "node:path";
28376
28462
  var PLACEHOLDER_PREFIX, PLACEHOLDER_SUFFIX, CIPHER_ALGO, SALT_LEN, IV_LEN, KEY_LEN, SecretVault;
28377
28463
  var init_secret_vault = __esm({
28378
- "../packages/cli/dist/tui/p2p/secret-vault.js"() {
28464
+ "packages/cli/dist/tui/p2p/secret-vault.js"() {
28379
28465
  "use strict";
28380
28466
  init_types();
28381
28467
  PLACEHOLDER_PREFIX = "{{OA_VAR_";
@@ -28633,13 +28719,13 @@ var init_secret_vault = __esm({
28633
28719
  }
28634
28720
  });
28635
28721
 
28636
- // ../packages/cli/dist/tui/p2p/peer-mesh.js
28722
+ // packages/cli/dist/tui/p2p/peer-mesh.js
28637
28723
  import { EventEmitter as EventEmitter4 } from "node:events";
28638
28724
  import { createServer as createServer3 } from "node:http";
28639
28725
  import { randomBytes as randomBytes9, createHash as createHash3, generateKeyPairSync } from "node:crypto";
28640
28726
  var PING_INTERVAL_MS, PEER_TIMEOUT_MS, GOSSIP_INTERVAL_MS, MAX_PEERS, PeerMesh;
28641
28727
  var init_peer_mesh = __esm({
28642
- "../packages/cli/dist/tui/p2p/peer-mesh.js"() {
28728
+ "packages/cli/dist/tui/p2p/peer-mesh.js"() {
28643
28729
  "use strict";
28644
28730
  init_wrapper();
28645
28731
  PING_INTERVAL_MS = 3e4;
@@ -29098,11 +29184,11 @@ var init_peer_mesh = __esm({
29098
29184
  }
29099
29185
  });
29100
29186
 
29101
- // ../packages/cli/dist/tui/p2p/inference-router.js
29187
+ // packages/cli/dist/tui/p2p/inference-router.js
29102
29188
  import { EventEmitter as EventEmitter5 } from "node:events";
29103
29189
  var TRUST_WEIGHTS, InferenceRouter;
29104
29190
  var init_inference_router = __esm({
29105
- "../packages/cli/dist/tui/p2p/inference-router.js"() {
29191
+ "packages/cli/dist/tui/p2p/inference-router.js"() {
29106
29192
  "use strict";
29107
29193
  init_types();
29108
29194
  TRUST_WEIGHTS = {
@@ -29296,9 +29382,9 @@ var init_inference_router = __esm({
29296
29382
  }
29297
29383
  });
29298
29384
 
29299
- // ../packages/cli/dist/tui/p2p/index.js
29385
+ // packages/cli/dist/tui/p2p/index.js
29300
29386
  var init_p2p = __esm({
29301
- "../packages/cli/dist/tui/p2p/index.js"() {
29387
+ "packages/cli/dist/tui/p2p/index.js"() {
29302
29388
  "use strict";
29303
29389
  init_secret_vault();
29304
29390
  init_peer_mesh();
@@ -29307,7 +29393,7 @@ var init_p2p = __esm({
29307
29393
  }
29308
29394
  });
29309
29395
 
29310
- // ../packages/cli/dist/tui/call-agent.js
29396
+ // packages/cli/dist/tui/call-agent.js
29311
29397
  import { EventEmitter as EventEmitter6 } from "node:events";
29312
29398
  import crypto2 from "node:crypto";
29313
29399
  function adaptTool(tool) {
@@ -29331,7 +29417,7 @@ function generateSessionKey() {
29331
29417
  }
29332
29418
  var ActivityFeed, _globalFeed, CallSubAgent;
29333
29419
  var init_call_agent = __esm({
29334
- "../packages/cli/dist/tui/call-agent.js"() {
29420
+ "packages/cli/dist/tui/call-agent.js"() {
29335
29421
  "use strict";
29336
29422
  init_dist5();
29337
29423
  init_dist2();
@@ -29589,7 +29675,7 @@ ${activitySummary}
29589
29675
  }
29590
29676
  });
29591
29677
 
29592
- // ../packages/cli/dist/tui/model-picker.js
29678
+ // packages/cli/dist/tui/model-picker.js
29593
29679
  async function fetchOllamaModels(baseUrl) {
29594
29680
  const url = `${normalizeBaseUrl(baseUrl)}/api/tags`;
29595
29681
  const resp = await fetch(url, {
@@ -29617,7 +29703,7 @@ async function fetchOpenAIModels(baseUrl, apiKey) {
29617
29703
  }
29618
29704
  const resp = await fetch(url, {
29619
29705
  headers,
29620
- signal: AbortSignal.timeout(1e4)
29706
+ signal: AbortSignal.timeout(15e3)
29621
29707
  });
29622
29708
  if (!resp.ok) {
29623
29709
  throw new Error(`Failed to fetch models: HTTP ${resp.status}`);
@@ -29682,25 +29768,33 @@ async function fetchModels(baseUrl, apiKey) {
29682
29768
  }
29683
29769
  const provider = detectProvider(baseUrl);
29684
29770
  if (provider.id === "ollama") {
29771
+ let ollamaErr;
29685
29772
  try {
29686
29773
  return await fetchOllamaModels(baseUrl);
29687
- } catch {
29774
+ } catch (err) {
29775
+ ollamaErr = err instanceof Error ? err : new Error(String(err));
29688
29776
  try {
29689
29777
  return await fetchOpenAIModels(baseUrl, apiKey);
29690
29778
  } catch {
29691
- throw new Error("Cannot reach Ollama at " + baseUrl);
29779
+ throw new Error(`Cannot reach Ollama at ${baseUrl}: ${ollamaErr.message}`);
29692
29780
  }
29693
29781
  }
29694
29782
  }
29695
- try {
29696
- return await fetchOpenAIModels(baseUrl, apiKey);
29697
- } catch {
29783
+ let lastErr;
29784
+ for (let attempt = 0; attempt < 2; attempt++) {
29698
29785
  try {
29699
- return await fetchOllamaModels(baseUrl);
29700
- } catch {
29701
- throw new Error(`Cannot fetch models from ${provider.label} at ${baseUrl}`);
29786
+ return await fetchOpenAIModels(baseUrl, apiKey);
29787
+ } catch (err) {
29788
+ lastErr = err instanceof Error ? err : new Error(String(err));
29789
+ if (attempt === 0)
29790
+ await new Promise((r) => setTimeout(r, 1e3));
29702
29791
  }
29703
29792
  }
29793
+ try {
29794
+ return await fetchOllamaModels(baseUrl);
29795
+ } catch {
29796
+ throw new Error(`Cannot fetch models from ${provider.label} at ${baseUrl}: ${lastErr?.message ?? "unknown error"}`);
29797
+ }
29704
29798
  }
29705
29799
  function findModel(models, query) {
29706
29800
  const exact = models.find((m) => m.name === query);
@@ -29853,27 +29947,27 @@ function formatRelativeTime(iso) {
29853
29947
  return `${months}mo ago`;
29854
29948
  }
29855
29949
  var init_model_picker = __esm({
29856
- "../packages/cli/dist/tui/model-picker.js"() {
29950
+ "packages/cli/dist/tui/model-picker.js"() {
29857
29951
  "use strict";
29858
29952
  init_dist();
29859
29953
  }
29860
29954
  });
29861
29955
 
29862
- // ../packages/prompts/dist/loader.js
29956
+ // packages/prompts/dist/loader.js
29863
29957
  var init_loader = __esm({
29864
- "../packages/prompts/dist/loader.js"() {
29958
+ "packages/prompts/dist/loader.js"() {
29865
29959
  "use strict";
29866
29960
  }
29867
29961
  });
29868
29962
 
29869
- // ../packages/prompts/dist/render.js
29963
+ // packages/prompts/dist/render.js
29870
29964
  var init_render2 = __esm({
29871
- "../packages/prompts/dist/render.js"() {
29965
+ "packages/prompts/dist/render.js"() {
29872
29966
  "use strict";
29873
29967
  }
29874
29968
  });
29875
29969
 
29876
- // ../packages/prompts/dist/promptLoader.js
29970
+ // packages/prompts/dist/promptLoader.js
29877
29971
  import { readFileSync as readFileSync21, existsSync as existsSync29 } from "node:fs";
29878
29972
  import { join as join37, dirname as dirname15 } from "node:path";
29879
29973
  import { fileURLToPath as fileURLToPath9 } from "node:url";
@@ -29893,7 +29987,7 @@ function loadPrompt2(promptPath, vars) {
29893
29987
  }
29894
29988
  var __filename2, __dirname5, devPath, publishedPath, PROMPTS_DIR2, cache2;
29895
29989
  var init_promptLoader2 = __esm({
29896
- "../packages/prompts/dist/promptLoader.js"() {
29990
+ "packages/prompts/dist/promptLoader.js"() {
29897
29991
  "use strict";
29898
29992
  __filename2 = fileURLToPath9(import.meta.url);
29899
29993
  __dirname5 = dirname15(__filename2);
@@ -29904,7 +29998,7 @@ var init_promptLoader2 = __esm({
29904
29998
  }
29905
29999
  });
29906
30000
 
29907
- // ../packages/prompts/dist/task-templates.js
30001
+ // packages/prompts/dist/task-templates.js
29908
30002
  function getTaskTemplate(type) {
29909
30003
  return TEMPLATES[type];
29910
30004
  }
@@ -29920,7 +30014,7 @@ ${template.outputGuidance}`;
29920
30014
  }
29921
30015
  var TEMPLATES;
29922
30016
  var init_task_templates = __esm({
29923
- "../packages/prompts/dist/task-templates.js"() {
30017
+ "packages/prompts/dist/task-templates.js"() {
29924
30018
  "use strict";
29925
30019
  init_promptLoader2();
29926
30020
  TEMPLATES = {
@@ -30009,12 +30103,12 @@ var init_task_templates = __esm({
30009
30103
  }
30010
30104
  });
30011
30105
 
30012
- // ../packages/prompts/dist/index.js
30106
+ // packages/prompts/dist/index.js
30013
30107
  import { join as join38, dirname as dirname16 } from "node:path";
30014
30108
  import { fileURLToPath as fileURLToPath10 } from "node:url";
30015
30109
  var _dir, _packageRoot;
30016
30110
  var init_dist6 = __esm({
30017
- "../packages/prompts/dist/index.js"() {
30111
+ "packages/prompts/dist/index.js"() {
30018
30112
  "use strict";
30019
30113
  init_loader();
30020
30114
  init_render2();
@@ -30025,7 +30119,7 @@ var init_dist6 = __esm({
30025
30119
  }
30026
30120
  });
30027
30121
 
30028
- // ../packages/cli/dist/tui/oa-directory.js
30122
+ // packages/cli/dist/tui/oa-directory.js
30029
30123
  import { existsSync as existsSync30, mkdirSync as mkdirSync11, readFileSync as readFileSync22, writeFileSync as writeFileSync11, readdirSync as readdirSync8, statSync as statSync9, unlinkSync as unlinkSync4 } from "node:fs";
30030
30124
  import { join as join39, relative as relative2, basename as basename9, extname as extname8 } from "node:path";
30031
30125
  import { homedir as homedir9 } from "node:os";
@@ -30473,7 +30567,7 @@ function loadUsageHistory(kind, repoRoot) {
30473
30567
  }
30474
30568
  var OA_DIR, SUBDIRS, CONTEXT_FILES, PENDING_TASK_FILE, CONTEXT_SAVE_FILE, MAX_CONTEXT_ENTRIES, SKIP_DIRS, USAGE_HISTORY_FILE, MAX_HISTORY_RECORDS;
30475
30569
  var init_oa_directory = __esm({
30476
- "../packages/cli/dist/tui/oa-directory.js"() {
30570
+ "packages/cli/dist/tui/oa-directory.js"() {
30477
30571
  "use strict";
30478
30572
  OA_DIR = ".oa";
30479
30573
  SUBDIRS = ["memory", "index", "context", "history", "notes", "embedded", "provenance", "tools", "dreams"];
@@ -30514,7 +30608,7 @@ var init_oa_directory = __esm({
30514
30608
  }
30515
30609
  });
30516
30610
 
30517
- // ../packages/cli/dist/tui/setup.js
30611
+ // packages/cli/dist/tui/setup.js
30518
30612
  import * as readline from "node:readline";
30519
30613
  import { execSync as execSync25, spawn as spawn17, exec as exec2 } from "node:child_process";
30520
30614
  import { promisify as promisify5 } from "node:util";
@@ -32043,7 +32137,7 @@ async function ensureExpandedContext(modelName, backendUrl) {
32043
32137
  }
32044
32138
  var execAsync, QWEN_VARIANTS, TOOL_CALLING_MODELS, _cloudflaredInstallPromise;
32045
32139
  var init_setup = __esm({
32046
- "../packages/cli/dist/tui/setup.js"() {
32140
+ "packages/cli/dist/tui/setup.js"() {
32047
32141
  "use strict";
32048
32142
  init_model_picker();
32049
32143
  init_render();
@@ -32078,7 +32172,7 @@ var init_setup = __esm({
32078
32172
  }
32079
32173
  });
32080
32174
 
32081
- // ../packages/cli/dist/tui/tui-select.js
32175
+ // packages/cli/dist/tui/tui-select.js
32082
32176
  function ansi3(code, text) {
32083
32177
  return isTTY3 ? `\x1B[${code}m${text}\x1B[0m` : text;
32084
32178
  }
@@ -32388,7 +32482,7 @@ function tuiSelect(opts) {
32388
32482
  }
32389
32483
  var isTTY3, selectColors;
32390
32484
  var init_tui_select = __esm({
32391
- "../packages/cli/dist/tui/tui-select.js"() {
32485
+ "packages/cli/dist/tui/tui-select.js"() {
32392
32486
  "use strict";
32393
32487
  isTTY3 = process.stdout.isTTY ?? false;
32394
32488
  selectColors = {
@@ -32405,7 +32499,7 @@ var init_tui_select = __esm({
32405
32499
  }
32406
32500
  });
32407
32501
 
32408
- // ../packages/cli/dist/tui/commands.js
32502
+ // packages/cli/dist/tui/commands.js
32409
32503
  async function handleSlashCommand(input, ctx) {
32410
32504
  const trimmed = input.trim();
32411
32505
  if (!trimmed.startsWith("/"))
@@ -32979,10 +33073,20 @@ async function handleSlashCommand(input, ctx) {
32979
33073
  renderWarning("Expose gateway not available in this context.");
32980
33074
  return "handled";
32981
33075
  }
32982
- if (arg === "stop" || arg === "off") {
33076
+ if (arg?.startsWith("stop") || arg === "off") {
33077
+ const stopParts = (arg ?? "").split(/\s+/);
33078
+ let stopWhich;
33079
+ if (stopParts.includes("--tunnel"))
33080
+ stopWhich = "tunnel";
33081
+ else if (stopParts.includes("--libp2p"))
33082
+ stopWhich = "libp2p";
32983
33083
  if (ctx.isExposeActive?.()) {
32984
- await ctx.exposeStop?.();
32985
- renderInfo("Expose gateway stopped.");
33084
+ await ctx.exposeStop?.(stopWhich);
33085
+ if (stopWhich) {
33086
+ renderInfo(`Expose ${stopWhich} gateway stopped.`);
33087
+ } else {
33088
+ renderInfo("All expose gateways stopped.");
33089
+ }
32986
33090
  } else {
32987
33091
  renderWarning("No active expose gateway.");
32988
33092
  }
@@ -33009,7 +33113,9 @@ async function handleSlashCommand(input, ctx) {
33009
33113
  renderInfo(" /expose vllm Expose local vLLM (8000)");
33010
33114
  renderInfo(" /expose llvm Expose local LLVM (8080)");
33011
33115
  renderInfo(" /expose host:port Expose custom address");
33012
- renderInfo(" /expose stop Stop the gateway");
33116
+ renderInfo(" /expose stop Stop all gateways");
33117
+ renderInfo(" /expose stop --tunnel Stop tunnel only");
33118
+ renderInfo(" /expose stop --libp2p Stop libp2p only");
33013
33119
  renderInfo(" /expose status Show usage stats");
33014
33120
  renderInfo(" --key <key> Use specific auth key (tunnel mode)");
33015
33121
  renderInfo(" --key Auto-generate auth key (tunnel mode)");
@@ -33017,9 +33123,6 @@ async function handleSlashCommand(input, ctx) {
33017
33123
  }
33018
33124
  return "handled";
33019
33125
  }
33020
- if (ctx.isExposeActive?.()) {
33021
- await ctx.exposeStop?.();
33022
- }
33023
33126
  const exposeParts = arg.split(/\s+/);
33024
33127
  const kindOrUrl = exposeParts[0];
33025
33128
  let exposeAuthKey;
@@ -34323,7 +34426,7 @@ async function switchModel(query, ctx, local = false) {
34323
34426
  }
34324
34427
  }
34325
34428
  var init_commands = __esm({
34326
- "../packages/cli/dist/tui/commands.js"() {
34429
+ "packages/cli/dist/tui/commands.js"() {
34327
34430
  "use strict";
34328
34431
  init_model_picker();
34329
34432
  init_render();
@@ -34340,7 +34443,7 @@ var init_commands = __esm({
34340
34443
  }
34341
34444
  });
34342
34445
 
34343
- // ../packages/cli/dist/tui/project-context.js
34446
+ // packages/cli/dist/tui/project-context.js
34344
34447
  import { existsSync as existsSync32, readFileSync as readFileSync23, readdirSync as readdirSync9 } from "node:fs";
34345
34448
  import { join as join41, basename as basename10 } from "node:path";
34346
34449
  import { execSync as execSync26 } from "node:child_process";
@@ -34645,14 +34748,14 @@ These patterns have been repeated 3+ times. Consider using create_tool to automa
34645
34748
  return sections.join("\n\n");
34646
34749
  }
34647
34750
  var init_project_context = __esm({
34648
- "../packages/cli/dist/tui/project-context.js"() {
34751
+ "packages/cli/dist/tui/project-context.js"() {
34649
34752
  "use strict";
34650
34753
  init_oa_directory();
34651
34754
  init_dist2();
34652
34755
  }
34653
34756
  });
34654
34757
 
34655
- // ../packages/memory/dist/db.js
34758
+ // packages/memory/dist/db.js
34656
34759
  import Database from "better-sqlite3";
34657
34760
  function initDb(dbPath) {
34658
34761
  const db = new Database(dbPath);
@@ -34807,26 +34910,26 @@ function runMigrations(db) {
34807
34910
  `);
34808
34911
  }
34809
34912
  var init_db = __esm({
34810
- "../packages/memory/dist/db.js"() {
34913
+ "packages/memory/dist/db.js"() {
34811
34914
  "use strict";
34812
34915
  }
34813
34916
  });
34814
34917
 
34815
- // ../packages/memory/dist/repoProfileStore.js
34918
+ // packages/memory/dist/repoProfileStore.js
34816
34919
  var init_repoProfileStore = __esm({
34817
- "../packages/memory/dist/repoProfileStore.js"() {
34920
+ "packages/memory/dist/repoProfileStore.js"() {
34818
34921
  "use strict";
34819
34922
  }
34820
34923
  });
34821
34924
 
34822
- // ../packages/memory/dist/fileSummaryStore.js
34925
+ // packages/memory/dist/fileSummaryStore.js
34823
34926
  var init_fileSummaryStore = __esm({
34824
- "../packages/memory/dist/fileSummaryStore.js"() {
34927
+ "packages/memory/dist/fileSummaryStore.js"() {
34825
34928
  "use strict";
34826
34929
  }
34827
34930
  });
34828
34931
 
34829
- // ../packages/memory/dist/taskMemoryStore.js
34932
+ // packages/memory/dist/taskMemoryStore.js
34830
34933
  import { randomUUID } from "node:crypto";
34831
34934
  function rowToTask(row) {
34832
34935
  return {
@@ -34845,7 +34948,7 @@ function rowToTask(row) {
34845
34948
  }
34846
34949
  var TaskMemoryStore;
34847
34950
  var init_taskMemoryStore = __esm({
34848
- "../packages/memory/dist/taskMemoryStore.js"() {
34951
+ "packages/memory/dist/taskMemoryStore.js"() {
34849
34952
  "use strict";
34850
34953
  TaskMemoryStore = class {
34851
34954
  db;
@@ -34896,14 +34999,14 @@ var init_taskMemoryStore = __esm({
34896
34999
  }
34897
35000
  });
34898
35001
 
34899
- // ../packages/memory/dist/patchHistoryStore.js
35002
+ // packages/memory/dist/patchHistoryStore.js
34900
35003
  var init_patchHistoryStore = __esm({
34901
- "../packages/memory/dist/patchHistoryStore.js"() {
35004
+ "packages/memory/dist/patchHistoryStore.js"() {
34902
35005
  "use strict";
34903
35006
  }
34904
35007
  });
34905
35008
 
34906
- // ../packages/memory/dist/failureStore.js
35009
+ // packages/memory/dist/failureStore.js
34907
35010
  import { randomUUID as randomUUID2 } from "node:crypto";
34908
35011
  function rowToFailure(row) {
34909
35012
  return {
@@ -34924,7 +35027,7 @@ function rowToFailure(row) {
34924
35027
  }
34925
35028
  var FailureStore;
34926
35029
  var init_failureStore = __esm({
34927
- "../packages/memory/dist/failureStore.js"() {
35030
+ "packages/memory/dist/failureStore.js"() {
34928
35031
  "use strict";
34929
35032
  FailureStore = class {
34930
35033
  db;
@@ -34979,18 +35082,18 @@ var init_failureStore = __esm({
34979
35082
  }
34980
35083
  });
34981
35084
 
34982
- // ../packages/memory/dist/validationStore.js
35085
+ // packages/memory/dist/validationStore.js
34983
35086
  var init_validationStore = __esm({
34984
- "../packages/memory/dist/validationStore.js"() {
35087
+ "packages/memory/dist/validationStore.js"() {
34985
35088
  "use strict";
34986
35089
  }
34987
35090
  });
34988
35091
 
34989
- // ../packages/memory/dist/toolPatternStore.js
35092
+ // packages/memory/dist/toolPatternStore.js
34990
35093
  import { randomUUID as randomUUID3 } from "node:crypto";
34991
35094
  var ToolPatternStore;
34992
35095
  var init_toolPatternStore = __esm({
34993
- "../packages/memory/dist/toolPatternStore.js"() {
35096
+ "packages/memory/dist/toolPatternStore.js"() {
34994
35097
  "use strict";
34995
35098
  ToolPatternStore = class {
34996
35099
  db;
@@ -35169,9 +35272,9 @@ var init_toolPatternStore = __esm({
35169
35272
  }
35170
35273
  });
35171
35274
 
35172
- // ../packages/memory/dist/index.js
35275
+ // packages/memory/dist/index.js
35173
35276
  var init_dist7 = __esm({
35174
- "../packages/memory/dist/index.js"() {
35277
+ "packages/memory/dist/index.js"() {
35175
35278
  "use strict";
35176
35279
  init_db();
35177
35280
  init_repoProfileStore();
@@ -35184,7 +35287,7 @@ var init_dist7 = __esm({
35184
35287
  }
35185
35288
  });
35186
35289
 
35187
- // ../packages/cli/dist/tui/carousel.js
35290
+ // packages/cli/dist/tui/carousel.js
35188
35291
  function fg(code, text) {
35189
35292
  return isTTY4 ? `\x1B[38;5;${code}m${text}\x1B[0m` : text;
35190
35293
  }
@@ -35226,7 +35329,7 @@ function createRow(phraseIndices, speed, direction, bank) {
35226
35329
  }
35227
35330
  var isTTY4, PHRASES, Carousel;
35228
35331
  var init_carousel = __esm({
35229
- "../packages/cli/dist/tui/carousel.js"() {
35332
+ "packages/cli/dist/tui/carousel.js"() {
35230
35333
  "use strict";
35231
35334
  isTTY4 = process.stdout.isTTY ?? false;
35232
35335
  PHRASES = [
@@ -35467,7 +35570,7 @@ var init_carousel = __esm({
35467
35570
  }
35468
35571
  });
35469
35572
 
35470
- // ../packages/cli/dist/tui/carousel-descriptors.js
35573
+ // packages/cli/dist/tui/carousel-descriptors.js
35471
35574
  import { existsSync as existsSync33, readFileSync as readFileSync24, writeFileSync as writeFileSync13, mkdirSync as mkdirSync13, readdirSync as readdirSync10 } from "node:fs";
35472
35575
  import { join as join42, basename as basename11 } from "node:path";
35473
35576
  function loadToolProfile(repoRoot) {
@@ -35714,7 +35817,7 @@ function extractFromToolProfile(profile, tags) {
35714
35817
  }
35715
35818
  var TOOL_CATEGORIES, TOOL_PROFILE_FILE, DESCRIPTOR_FILE, CATEGORY_LABELS, STOP_WORDS;
35716
35819
  var init_carousel_descriptors = __esm({
35717
- "../packages/cli/dist/tui/carousel-descriptors.js"() {
35820
+ "packages/cli/dist/tui/carousel-descriptors.js"() {
35718
35821
  "use strict";
35719
35822
  init_oa_directory();
35720
35823
  TOOL_CATEGORIES = [
@@ -35820,7 +35923,7 @@ var init_carousel_descriptors = __esm({
35820
35923
  }
35821
35924
  });
35822
35925
 
35823
- // ../packages/cli/dist/tui/voice.js
35926
+ // packages/cli/dist/tui/voice.js
35824
35927
  import { existsSync as existsSync34, mkdirSync as mkdirSync14, writeFileSync as writeFileSync14, readFileSync as readFileSync25, unlinkSync as unlinkSync5 } from "node:fs";
35825
35928
  import { join as join43 } from "node:path";
35826
35929
  import { homedir as homedir12, tmpdir as tmpdir6, platform as platform3 } from "node:os";
@@ -36291,7 +36394,7 @@ function formatBytes2(bytes) {
36291
36394
  }
36292
36395
  var VOICE_MODELS, VoiceEngine, narration, FILE_READ_VARIANTS, FILE_WRITE_VARIANTS, FILE_EDIT_VARIANTS, GREP_VARIANTS, WEB_SEARCH_VARIANTS, WEB_FETCH_VARIANTS, MEMORY_READ_VARIANTS, MEMORY_WRITE_VARIANTS, SUB_AGENT_VARIANTS, SHELL_VARIANTS, RESULT_SUCCESS_VARIANTS, RESULT_FAIL_VARIANTS, RESULT_MULTI_FAIL_VARIANTS, TASK_COMPLETE_VARIANTS, TASK_INCOMPLETE_VARIANTS;
36293
36396
  var init_voice = __esm({
36294
- "../packages/cli/dist/tui/voice.js"() {
36397
+ "packages/cli/dist/tui/voice.js"() {
36295
36398
  "use strict";
36296
36399
  init_render();
36297
36400
  VOICE_MODELS = {
@@ -37608,7 +37711,7 @@ Error: ${err instanceof Error ? err.message : String(err)}`);
37608
37711
  }
37609
37712
  });
37610
37713
 
37611
- // ../packages/cli/dist/tui/stream-renderer.js
37714
+ // packages/cli/dist/tui/stream-renderer.js
37612
37715
  function fg2563(code, text) {
37613
37716
  return isTTY5 ? `\x1B[38;5;${code}m${text}\x1B[0m` : text;
37614
37717
  }
@@ -37626,7 +37729,7 @@ function boldText(text) {
37626
37729
  }
37627
37730
  var isTTY5, PASTEL, StreamRenderer;
37628
37731
  var init_stream_renderer = __esm({
37629
- "../packages/cli/dist/tui/stream-renderer.js"() {
37732
+ "packages/cli/dist/tui/stream-renderer.js"() {
37630
37733
  "use strict";
37631
37734
  isTTY5 = process.stdout.isTTY ?? false;
37632
37735
  PASTEL = {
@@ -38095,7 +38198,7 @@ var init_stream_renderer = __esm({
38095
38198
  }
38096
38199
  });
38097
38200
 
38098
- // ../packages/cli/dist/tui/edit-history.js
38201
+ // packages/cli/dist/tui/edit-history.js
38099
38202
  import { appendFileSync as appendFileSync2, mkdirSync as mkdirSync15 } from "node:fs";
38100
38203
  import { join as join44 } from "node:path";
38101
38204
  function createEditHistoryLogger(repoRoot, sessionId) {
@@ -38199,7 +38302,7 @@ function sanitizeArgs(tool, args) {
38199
38302
  }
38200
38303
  var EDIT_TOOLS;
38201
38304
  var init_edit_history = __esm({
38202
- "../packages/cli/dist/tui/edit-history.js"() {
38305
+ "packages/cli/dist/tui/edit-history.js"() {
38203
38306
  "use strict";
38204
38307
  EDIT_TOOLS = /* @__PURE__ */ new Set([
38205
38308
  "file_edit",
@@ -38210,7 +38313,7 @@ var init_edit_history = __esm({
38210
38313
  }
38211
38314
  });
38212
38315
 
38213
- // ../packages/cli/dist/tui/promptLoader.js
38316
+ // packages/cli/dist/tui/promptLoader.js
38214
38317
  import { readFileSync as readFileSync26, existsSync as existsSync35 } from "node:fs";
38215
38318
  import { join as join45, dirname as dirname17 } from "node:path";
38216
38319
  import { fileURLToPath as fileURLToPath11 } from "node:url";
@@ -38230,7 +38333,7 @@ function loadPrompt3(promptPath, vars) {
38230
38333
  }
38231
38334
  var __filename3, __dirname6, devPath2, publishedPath2, PROMPTS_DIR3, cache3;
38232
38335
  var init_promptLoader3 = __esm({
38233
- "../packages/cli/dist/tui/promptLoader.js"() {
38336
+ "packages/cli/dist/tui/promptLoader.js"() {
38234
38337
  "use strict";
38235
38338
  __filename3 = fileURLToPath11(import.meta.url);
38236
38339
  __dirname6 = dirname17(__filename3);
@@ -38241,7 +38344,7 @@ var init_promptLoader3 = __esm({
38241
38344
  }
38242
38345
  });
38243
38346
 
38244
- // ../packages/cli/dist/tui/dream-engine.js
38347
+ // packages/cli/dist/tui/dream-engine.js
38245
38348
  import { mkdirSync as mkdirSync16, writeFileSync as writeFileSync15, readFileSync as readFileSync27, existsSync as existsSync36, cpSync, rmSync, readdirSync as readdirSync11 } from "node:fs";
38246
38349
  import { join as join46, basename as basename12 } from "node:path";
38247
38350
  import { execSync as execSync28 } from "node:child_process";
@@ -38404,7 +38507,7 @@ function renderSwarmComplete(workspace) {
38404
38507
  }
38405
38508
  var SWARM_ROLE_CONFIG, AutoresearchFileWriteTool, AutoresearchFileEditTool, AUTORESEARCH_MEMORY_KEYS, SLEEP_STAGES, DreamFileWriteTool, DreamFileEditTool, DreamShellTool, DreamEngine;
38406
38509
  var init_dream_engine = __esm({
38407
- "../packages/cli/dist/tui/dream-engine.js"() {
38510
+ "packages/cli/dist/tui/dream-engine.js"() {
38408
38511
  "use strict";
38409
38512
  init_dist5();
38410
38513
  init_dist2();
@@ -39484,7 +39587,7 @@ ${files.map((f) => `- [\`${f}\`](./${f})`).join("\n")}
39484
39587
  }
39485
39588
  });
39486
39589
 
39487
- // ../packages/cli/dist/tui/priority-ingress.js
39590
+ // packages/cli/dist/tui/priority-ingress.js
39488
39591
  function classifyPriority(prompt, source, origin) {
39489
39592
  for (const rule of CLASSIFICATION_RULES) {
39490
39593
  if (rule.sourceType !== "any" && rule.sourceType !== source)
@@ -39509,7 +39612,7 @@ function classifyPriority(prompt, source, origin) {
39509
39612
  }
39510
39613
  var PRIORITY_WEIGHT, PRIORITY_POLICIES, CLASSIFICATION_RULES, PriorityIngressEngine;
39511
39614
  var init_priority_ingress = __esm({
39512
- "../packages/cli/dist/tui/priority-ingress.js"() {
39615
+ "packages/cli/dist/tui/priority-ingress.js"() {
39513
39616
  "use strict";
39514
39617
  PRIORITY_WEIGHT = {
39515
39618
  critical: 100,
@@ -39694,7 +39797,7 @@ var init_priority_ingress = __esm({
39694
39797
  }
39695
39798
  });
39696
39799
 
39697
- // ../packages/cli/dist/tui/bless-engine.js
39800
+ // packages/cli/dist/tui/bless-engine.js
39698
39801
  function renderBlessStart() {
39699
39802
  process.stdout.write(`
39700
39803
  ${c2.green("\u26A1")} ${c2.bold("BLESSED")} \u2014 Infinite warm loop activated
@@ -39718,7 +39821,7 @@ function renderBlessStop(state) {
39718
39821
  }
39719
39822
  var BlessEngine;
39720
39823
  var init_bless_engine = __esm({
39721
- "../packages/cli/dist/tui/bless-engine.js"() {
39824
+ "packages/cli/dist/tui/bless-engine.js"() {
39722
39825
  "use strict";
39723
39826
  init_render();
39724
39827
  init_dist2();
@@ -39849,7 +39952,7 @@ var init_bless_engine = __esm({
39849
39952
  }
39850
39953
  });
39851
39954
 
39852
- // ../packages/cli/dist/tui/dmn-engine.js
39955
+ // packages/cli/dist/tui/dmn-engine.js
39853
39956
  import { existsSync as existsSync37, readFileSync as readFileSync28, writeFileSync as writeFileSync16, mkdirSync as mkdirSync17, readdirSync as readdirSync12, unlinkSync as unlinkSync6 } from "node:fs";
39854
39957
  import { join as join47, basename as basename13 } from "node:path";
39855
39958
  function buildDMNGatherPrompt(recentTaskSummaries, dueReminders, attentionItems, memoryTopics, capabilities, competence, reflectionBuffer) {
@@ -39937,7 +40040,7 @@ function renderDMNResting(consecutiveNulls) {
39937
40040
  }
39938
40041
  var DMNEngine;
39939
40042
  var init_dmn_engine = __esm({
39940
- "../packages/cli/dist/tui/dmn-engine.js"() {
40043
+ "packages/cli/dist/tui/dmn-engine.js"() {
39941
40044
  "use strict";
39942
40045
  init_dist5();
39943
40046
  init_dist2();
@@ -40609,7 +40712,7 @@ OUTPUT: Call task_complete with JSON:
40609
40712
  }
40610
40713
  });
40611
40714
 
40612
- // ../packages/cli/dist/tui/snr-engine.js
40715
+ // packages/cli/dist/tui/snr-engine.js
40613
40716
  import { existsSync as existsSync38, readdirSync as readdirSync13, readFileSync as readFileSync29 } from "node:fs";
40614
40717
  import { join as join48, basename as basename14 } from "node:path";
40615
40718
  function computeDPrime(signalScores, noiseScores) {
@@ -40669,7 +40772,7 @@ function adaptTool4(tool) {
40669
40772
  }
40670
40773
  var SNREngine;
40671
40774
  var init_snr_engine = __esm({
40672
- "../packages/cli/dist/tui/snr-engine.js"() {
40775
+ "packages/cli/dist/tui/snr-engine.js"() {
40673
40776
  "use strict";
40674
40777
  init_dist5();
40675
40778
  init_dist2();
@@ -40944,7 +41047,7 @@ Call task_complete with the JSON array when done.`, onEvent)
40944
41047
  }
40945
41048
  });
40946
41049
 
40947
- // ../packages/cli/dist/tui/emotion-engine.js
41050
+ // packages/cli/dist/tui/emotion-engine.js
40948
41051
  function labelFromCoordinates(valence, arousal) {
40949
41052
  if (valence > 0.6 && arousal > 0.6)
40950
41053
  return { label: "exhilarated", emoji: "\u{1F929}" };
@@ -41005,7 +41108,7 @@ function clamp(value, min, max) {
41005
41108
  }
41006
41109
  var BASELINE_VALENCE, BASELINE_AROUSAL, DECAY_HALF_LIFE_MS, LABEL_UPDATE_INTERVAL_MS, EXCITEMENT_THRESHOLD, DISTRESS_THRESHOLD, OUTREACH_COOLDOWN_MS, OUTREACH_MIN_STREAK, LABEL_REGEN_THRESHOLD, EmotionEngine;
41007
41110
  var init_emotion_engine = __esm({
41008
- "../packages/cli/dist/tui/emotion-engine.js"() {
41111
+ "packages/cli/dist/tui/emotion-engine.js"() {
41009
41112
  "use strict";
41010
41113
  init_dist5();
41011
41114
  init_promptLoader3();
@@ -41351,7 +41454,7 @@ var init_emotion_engine = __esm({
41351
41454
  }
41352
41455
  });
41353
41456
 
41354
- // ../packages/cli/dist/tui/tool-policy.js
41457
+ // packages/cli/dist/tui/tool-policy.js
41355
41458
  function getDefaultPolicy(context) {
41356
41459
  switch (context) {
41357
41460
  case "terminal":
@@ -41401,7 +41504,7 @@ function applyToolPolicy(tools, context, userConfig) {
41401
41504
  }
41402
41505
  var SAFE_PUBLIC_TOOLS, SAFE_GROUP_ADMIN_TOOLS;
41403
41506
  var init_tool_policy = __esm({
41404
- "../packages/cli/dist/tui/tool-policy.js"() {
41507
+ "packages/cli/dist/tui/tool-policy.js"() {
41405
41508
  "use strict";
41406
41509
  SAFE_PUBLIC_TOOLS = /* @__PURE__ */ new Set([
41407
41510
  "memory_read",
@@ -41430,7 +41533,7 @@ var init_tool_policy = __esm({
41430
41533
  }
41431
41534
  });
41432
41535
 
41433
- // ../packages/cli/dist/tui/telegram-bridge.js
41536
+ // packages/cli/dist/tui/telegram-bridge.js
41434
41537
  import { mkdirSync as mkdirSync18, existsSync as existsSync39, unlinkSync as unlinkSync7, readdirSync as readdirSync14, statSync as statSync10 } from "node:fs";
41435
41538
  import { join as join49, resolve as resolve27 } from "node:path";
41436
41539
  import { writeFile as writeFileAsync } from "node:fs/promises";
@@ -41567,7 +41670,7 @@ function renderTelegramSubAgentError(username, error) {
41567
41670
  }
41568
41671
  var TELEGRAM_SAFETY_PROMPT, ADMIN_DM_PROMPT, ADMIN_GROUP_PROMPT, GROUP_REPLY_DISCRETION_PROMPT, MEDIA_CACHE_TTL_MS, TelegramBridge;
41569
41672
  var init_telegram_bridge = __esm({
41570
- "../packages/cli/dist/tui/telegram-bridge.js"() {
41673
+ "packages/cli/dist/tui/telegram-bridge.js"() {
41571
41674
  "use strict";
41572
41675
  init_dist5();
41573
41676
  init_dist2();
@@ -42606,7 +42709,7 @@ ${caption}\r
42606
42709
  }
42607
42710
  });
42608
42711
 
42609
- // ../packages/cli/dist/tui/braille-spinner.js
42712
+ // packages/cli/dist/tui/braille-spinner.js
42610
42713
  function buildColorRamp(ramp) {
42611
42714
  return [...ramp, ...ramp.slice(1, -1).reverse()];
42612
42715
  }
@@ -42648,7 +42751,7 @@ function themeForTool(toolName) {
42648
42751
  }
42649
42752
  var DENSITY, WAVE, THEME_DEFAULT, THEME_FILE, THEME_SHELL, THEME_WEB, THEME_SEARCH, THEME_MEMORY, THEME_SKILL, THEME_TOOL_CREATE, THEME_DREAM, DEFAULT_METRICS, BrailleSpinner;
42650
42753
  var init_braille_spinner = __esm({
42651
- "../packages/cli/dist/tui/braille-spinner.js"() {
42754
+ "packages/cli/dist/tui/braille-spinner.js"() {
42652
42755
  "use strict";
42653
42756
  DENSITY = [
42654
42757
  "\u2800",
@@ -42845,10 +42948,10 @@ var init_braille_spinner = __esm({
42845
42948
  }
42846
42949
  });
42847
42950
 
42848
- // ../packages/cli/dist/tui/status-bar.js
42951
+ // packages/cli/dist/tui/status-bar.js
42849
42952
  var EXPERT_TOOL_BASELINES, CONTEXT_SWITCH_OVERHEAD, TURN_PLANNING_OVERHEAD, DEFAULT_TOOL_BASELINE, CODE_READ_CHARS_PER_SEC, PROSE_READ_CHARS_PER_SEC, MIN_CONTENT_FOR_READING, CODE_CONTENT_TOOLS, PROSE_CONTENT_TOOLS, HumanSpeedTracker, StatusBar;
42850
42953
  var init_status_bar = __esm({
42851
- "../packages/cli/dist/tui/status-bar.js"() {
42954
+ "packages/cli/dist/tui/status-bar.js"() {
42852
42955
  "use strict";
42853
42956
  init_render();
42854
42957
  init_braille_spinner();
@@ -44076,7 +44179,7 @@ var init_status_bar = __esm({
44076
44179
  }
44077
44180
  });
44078
44181
 
44079
- // ../packages/cli/dist/tui/interactive.js
44182
+ // packages/cli/dist/tui/interactive.js
44080
44183
  import * as readline2 from "node:readline";
44081
44184
  import { Writable } from "node:stream";
44082
44185
  import { cwd } from "node:process";
@@ -44437,11 +44540,15 @@ function startTask(task, config, repoRoot, voice, stream, taskStores, bruteForce
44437
44540
  }
44438
44541
  try {
44439
44542
  const endpointHistory = loadUsageHistory("endpoint", repoRoot);
44543
+ const primaryIsNexus = config.backendType === "nexus";
44440
44544
  const fallbackEndpoints = [];
44441
44545
  for (const entry of endpointHistory) {
44442
44546
  if (entry.value === config.backendUrl)
44443
44547
  continue;
44444
44548
  const bt = entry.meta?.backendType ?? "ollama";
44549
+ const entryIsNexus = bt === "nexus";
44550
+ if (primaryIsNexus !== entryIsNexus)
44551
+ continue;
44445
44552
  const ep = {
44446
44553
  url: entry.value,
44447
44554
  backendType: bt,
@@ -45104,7 +45211,8 @@ async function startInteractive(config, repoPath) {
45104
45211
  autoUpdateTimer.unref();
45105
45212
  const voiceEngine = new VoiceEngine();
45106
45213
  let voiceSession = null;
45107
- let exposeGateway = null;
45214
+ let tunnelGateway = null;
45215
+ let p2pGateway = null;
45108
45216
  let peerMesh = null;
45109
45217
  let inferenceRouter = null;
45110
45218
  const secretVault = new SecretVault(join50(repoRoot, ".oa", "vault.enc"));
@@ -45456,7 +45564,7 @@ Rationale: ${proposal.rationale}${provenanceNote}`;
45456
45564
  onError: (msg) => writeContent(() => renderWarning(msg))
45457
45565
  });
45458
45566
  if (reconnected) {
45459
- exposeGateway = reconnected;
45567
+ tunnelGateway = reconnected;
45460
45568
  reconnected.on("stats", (stats) => {
45461
45569
  statusBar.setExposeStatus({
45462
45570
  status: stats.status,
@@ -45471,6 +45579,28 @@ Rationale: ${proposal.rationale}${provenanceNote}`;
45471
45579
  }
45472
45580
  } catch {
45473
45581
  }
45582
+ try {
45583
+ const oaDir = join50(repoRoot, ".oa");
45584
+ const reconnectedP2P = await ExposeP2PGateway.checkAndReconnect(oaDir, new NexusTool(repoRoot), {
45585
+ onInfo: (msg) => writeContent(() => renderInfo(msg)),
45586
+ onError: (msg) => writeContent(() => renderWarning(msg))
45587
+ });
45588
+ if (reconnectedP2P) {
45589
+ p2pGateway = reconnectedP2P;
45590
+ reconnectedP2P.on("stats", (stats) => {
45591
+ statusBar.setExposeStatus({
45592
+ status: stats.status,
45593
+ totalRequests: stats.totalRequests,
45594
+ activeConnections: stats.activeConnections,
45595
+ modelUsage: stats.modelUsage
45596
+ });
45597
+ });
45598
+ writeContent(() => {
45599
+ renderInfo(`Reconnected to existing P2P expose: ${reconnectedP2P.peerId}`);
45600
+ });
45601
+ }
45602
+ } catch {
45603
+ }
45474
45604
  try {
45475
45605
  const isPeer = currentConfig.backendUrl.startsWith("peer://");
45476
45606
  const isRemote = !currentConfig.backendUrl.includes("127.0.0.1") && !currentConfig.backendUrl.includes("localhost") && !isPeer;
@@ -46123,14 +46253,18 @@ Respond concisely and safely. Remember: you are talking to the general public.`;
46123
46253
  }
46124
46254
  const effectiveTransport = transport ?? "libp2p";
46125
46255
  if (effectiveTransport === "libp2p") {
46256
+ if (p2pGateway?.isActive) {
46257
+ await p2pGateway.stop();
46258
+ p2pGateway = null;
46259
+ }
46126
46260
  const nexusTool = new NexusTool(repoRoot);
46127
- const p2pGateway = new ExposeP2PGateway({
46261
+ const newP2P = new ExposeP2PGateway({
46128
46262
  kind,
46129
46263
  targetUrl,
46130
46264
  authKey,
46131
46265
  stateDir: join50(repoRoot, ".oa")
46132
46266
  }, nexusTool);
46133
- p2pGateway.on("stats", (stats) => {
46267
+ newP2P.on("stats", (stats) => {
46134
46268
  statusBar.setExposeStatus({
46135
46269
  status: stats.status,
46136
46270
  totalRequests: stats.totalRequests,
@@ -46139,10 +46273,10 @@ Respond concisely and safely. Remember: you are talking to the general public.`;
46139
46273
  });
46140
46274
  });
46141
46275
  try {
46142
- const peerId = await p2pGateway.start();
46143
- exposeGateway = p2pGateway;
46276
+ const peerId = await newP2P.start();
46277
+ p2pGateway = newP2P;
46144
46278
  writeContent(() => {
46145
- process.stdout.write("\n" + p2pGateway.formatConnectionInfo() + "\n\n");
46279
+ process.stdout.write("\n" + newP2P.formatConnectionInfo() + "\n\n");
46146
46280
  });
46147
46281
  return peerId;
46148
46282
  } catch (err) {
@@ -46156,8 +46290,12 @@ Respond concisely and safely. Remember: you are talking to the general public.`;
46156
46290
  }
46157
46291
  }
46158
46292
  }
46159
- const tunnelGateway = new ExposeGateway({ kind, targetUrl, authKey, fullAccess, stateDir: join50(repoRoot, ".oa") });
46160
- tunnelGateway.on("stats", (stats) => {
46293
+ if (tunnelGateway?.isActive) {
46294
+ await tunnelGateway.stop();
46295
+ tunnelGateway = null;
46296
+ }
46297
+ const newTunnel = new ExposeGateway({ kind, targetUrl, authKey, fullAccess, stateDir: join50(repoRoot, ".oa") });
46298
+ newTunnel.on("stats", (stats) => {
46161
46299
  statusBar.setExposeStatus({
46162
46300
  status: stats.status,
46163
46301
  totalRequests: stats.totalRequests,
@@ -46166,41 +46304,67 @@ Respond concisely and safely. Remember: you are talking to the general public.`;
46166
46304
  });
46167
46305
  });
46168
46306
  try {
46169
- const url = await tunnelGateway.start();
46170
- exposeGateway = tunnelGateway;
46307
+ const url = await newTunnel.start();
46308
+ tunnelGateway = newTunnel;
46171
46309
  writeContent(() => {
46172
- process.stdout.write("\n" + tunnelGateway.formatConnectionInfo() + "\n\n");
46310
+ process.stdout.write("\n" + newTunnel.formatConnectionInfo() + "\n\n");
46173
46311
  });
46174
46312
  return url;
46175
46313
  } catch (err) {
46176
- exposeGateway = null;
46177
46314
  throw err;
46178
46315
  }
46179
46316
  },
46180
- async exposeStop() {
46181
- if (exposeGateway) {
46182
- await exposeGateway.stop();
46317
+ async exposeStop(which) {
46318
+ if (!which || which === "tunnel") {
46319
+ if (tunnelGateway) {
46320
+ await tunnelGateway.stop();
46321
+ tunnelGateway = null;
46322
+ }
46323
+ }
46324
+ if (!which || which === "libp2p") {
46325
+ if (p2pGateway) {
46326
+ await p2pGateway.stop();
46327
+ p2pGateway = null;
46328
+ }
46329
+ }
46330
+ if (!tunnelGateway?.isActive && !p2pGateway?.isActive) {
46183
46331
  statusBar.clearExposeStatus();
46184
- exposeGateway = null;
46185
46332
  }
46186
46333
  },
46187
46334
  isExposeActive() {
46188
- return exposeGateway?.isActive ?? false;
46335
+ return (tunnelGateway?.isActive ?? false) || (p2pGateway?.isActive ?? false);
46189
46336
  },
46190
46337
  getExposeInfo() {
46191
- if (!exposeGateway)
46338
+ const infos = [];
46339
+ if (tunnelGateway?.isActive) {
46340
+ infos.push({
46341
+ tunnelUrl: tunnelGateway.tunnelUrl,
46342
+ authKey: tunnelGateway.authKey,
46343
+ stats: tunnelGateway.formatStats(),
46344
+ transport: "tunnel"
46345
+ });
46346
+ }
46347
+ if (p2pGateway?.isActive) {
46348
+ infos.push({
46349
+ tunnelUrl: p2pGateway.peerId,
46350
+ authKey: p2pGateway.authKey,
46351
+ stats: p2pGateway.formatStats(),
46352
+ transport: "libp2p"
46353
+ });
46354
+ }
46355
+ if (infos.length === 0)
46192
46356
  return null;
46193
- if (exposeGateway instanceof ExposeP2PGateway) {
46357
+ if (infos.length === 2) {
46194
46358
  return {
46195
- tunnelUrl: exposeGateway.peerId,
46196
- authKey: exposeGateway.authKey,
46197
- stats: exposeGateway.formatStats()
46359
+ tunnelUrl: infos[0].tunnelUrl,
46360
+ authKey: infos[0].authKey,
46361
+ stats: infos[0].stats + "\n\n" + infos[1].stats
46198
46362
  };
46199
46363
  }
46200
46364
  return {
46201
- tunnelUrl: exposeGateway.tunnelUrl,
46202
- authKey: exposeGateway.authKey,
46203
- stats: exposeGateway.formatStats()
46365
+ tunnelUrl: infos[0].tunnelUrl,
46366
+ authKey: infos[0].authKey,
46367
+ stats: infos[0].stats
46204
46368
  };
46205
46369
  },
46206
46370
  // ── Nexus daemon connect ──────────────────────────────────────────────
@@ -47143,7 +47307,7 @@ async function runWithTUI(task, config, repoPath) {
47143
47307
  }
47144
47308
  var taskManager;
47145
47309
  var init_interactive = __esm({
47146
- "../packages/cli/dist/tui/interactive.js"() {
47310
+ "packages/cli/dist/tui/interactive.js"() {
47147
47311
  "use strict";
47148
47312
  init_dist5();
47149
47313
  init_dist5();
@@ -47180,7 +47344,7 @@ var init_interactive = __esm({
47180
47344
  }
47181
47345
  });
47182
47346
 
47183
- // ../packages/cli/dist/commands/run.js
47347
+ // packages/cli/dist/commands/run.js
47184
47348
  var run_exports = {};
47185
47349
  __export(run_exports, {
47186
47350
  runCommand: () => runCommand
@@ -47200,13 +47364,13 @@ async function runCommand(opts, config) {
47200
47364
  }
47201
47365
  }
47202
47366
  var init_run = __esm({
47203
- "../packages/cli/dist/commands/run.js"() {
47367
+ "packages/cli/dist/commands/run.js"() {
47204
47368
  "use strict";
47205
47369
  init_interactive();
47206
47370
  }
47207
47371
  });
47208
47372
 
47209
- // ../packages/indexer/dist/codebase-indexer.js
47373
+ // packages/indexer/dist/codebase-indexer.js
47210
47374
  import { glob } from "glob";
47211
47375
  import ignore from "ignore";
47212
47376
  import { readFile as readFile16, stat as stat4 } from "node:fs/promises";
@@ -47214,7 +47378,7 @@ import { createHash as createHash4 } from "node:crypto";
47214
47378
  import { join as join51, relative as relative3, extname as extname10, basename as basename15 } from "node:path";
47215
47379
  var DEFAULT_EXCLUDE, LANGUAGE_MAP, CodebaseIndexer;
47216
47380
  var init_codebase_indexer = __esm({
47217
- "../packages/indexer/dist/codebase-indexer.js"() {
47381
+ "packages/indexer/dist/codebase-indexer.js"() {
47218
47382
  "use strict";
47219
47383
  DEFAULT_EXCLUDE = [
47220
47384
  "node_modules",
@@ -47332,25 +47496,25 @@ var init_codebase_indexer = __esm({
47332
47496
  }
47333
47497
  });
47334
47498
 
47335
- // ../packages/indexer/dist/repoScanner.js
47499
+ // packages/indexer/dist/repoScanner.js
47336
47500
  import ignore2 from "ignore";
47337
47501
  var init_repoScanner = __esm({
47338
- "../packages/indexer/dist/repoScanner.js"() {
47502
+ "packages/indexer/dist/repoScanner.js"() {
47339
47503
  "use strict";
47340
47504
  }
47341
47505
  });
47342
47506
 
47343
- // ../packages/indexer/dist/symbolExtractor.js
47507
+ // packages/indexer/dist/symbolExtractor.js
47344
47508
  var init_symbolExtractor = __esm({
47345
- "../packages/indexer/dist/symbolExtractor.js"() {
47509
+ "packages/indexer/dist/symbolExtractor.js"() {
47346
47510
  "use strict";
47347
47511
  }
47348
47512
  });
47349
47513
 
47350
- // ../packages/indexer/dist/graphBuilder.js
47514
+ // packages/indexer/dist/graphBuilder.js
47351
47515
  var TS_EXTENSIONS, JS_EXTENSIONS, ALL_EXTENSIONS;
47352
47516
  var init_graphBuilder = __esm({
47353
- "../packages/indexer/dist/graphBuilder.js"() {
47517
+ "packages/indexer/dist/graphBuilder.js"() {
47354
47518
  "use strict";
47355
47519
  TS_EXTENSIONS = [".ts", ".tsx", ".mts", ".cts"];
47356
47520
  JS_EXTENSIONS = [".js", ".jsx", ".mjs", ".cjs"];
@@ -47358,30 +47522,30 @@ var init_graphBuilder = __esm({
47358
47522
  }
47359
47523
  });
47360
47524
 
47361
- // ../packages/indexer/dist/fileSummarizer.js
47525
+ // packages/indexer/dist/fileSummarizer.js
47362
47526
  var init_fileSummarizer = __esm({
47363
- "../packages/indexer/dist/fileSummarizer.js"() {
47527
+ "packages/indexer/dist/fileSummarizer.js"() {
47364
47528
  "use strict";
47365
47529
  }
47366
47530
  });
47367
47531
 
47368
- // ../packages/indexer/dist/embeddings.js
47532
+ // packages/indexer/dist/embeddings.js
47369
47533
  var init_embeddings = __esm({
47370
- "../packages/indexer/dist/embeddings.js"() {
47534
+ "packages/indexer/dist/embeddings.js"() {
47371
47535
  "use strict";
47372
47536
  }
47373
47537
  });
47374
47538
 
47375
- // ../packages/indexer/dist/ollamaEmbeddings.js
47539
+ // packages/indexer/dist/ollamaEmbeddings.js
47376
47540
  var init_ollamaEmbeddings = __esm({
47377
- "../packages/indexer/dist/ollamaEmbeddings.js"() {
47541
+ "packages/indexer/dist/ollamaEmbeddings.js"() {
47378
47542
  "use strict";
47379
47543
  }
47380
47544
  });
47381
47545
 
47382
- // ../packages/indexer/dist/index.js
47546
+ // packages/indexer/dist/index.js
47383
47547
  var init_dist8 = __esm({
47384
- "../packages/indexer/dist/index.js"() {
47548
+ "packages/indexer/dist/index.js"() {
47385
47549
  "use strict";
47386
47550
  init_codebase_indexer();
47387
47551
  init_repoScanner();
@@ -47393,7 +47557,7 @@ var init_dist8 = __esm({
47393
47557
  }
47394
47558
  });
47395
47559
 
47396
- // ../packages/cli/dist/commands/index-repo.js
47560
+ // packages/cli/dist/commands/index-repo.js
47397
47561
  var index_repo_exports = {};
47398
47562
  __export(index_repo_exports, {
47399
47563
  indexRepoCommand: () => indexRepoCommand
@@ -47486,7 +47650,7 @@ async function indexRepoCommand(opts, _config) {
47486
47650
  printSuccess("Repository indexed successfully");
47487
47651
  }
47488
47652
  var init_index_repo = __esm({
47489
- "../packages/cli/dist/commands/index-repo.js"() {
47653
+ "packages/cli/dist/commands/index-repo.js"() {
47490
47654
  "use strict";
47491
47655
  init_dist8();
47492
47656
  init_spinner();
@@ -47494,7 +47658,7 @@ var init_index_repo = __esm({
47494
47658
  }
47495
47659
  });
47496
47660
 
47497
- // ../packages/cli/dist/commands/status.js
47661
+ // packages/cli/dist/commands/status.js
47498
47662
  var status_exports = {};
47499
47663
  __export(status_exports, {
47500
47664
  statusCommand: () => statusCommand
@@ -47644,7 +47808,7 @@ async function statusVllm(opts, config) {
47644
47808
  printSuccess("vLLM backend is operational");
47645
47809
  }
47646
47810
  var init_status = __esm({
47647
- "../packages/cli/dist/commands/status.js"() {
47811
+ "packages/cli/dist/commands/status.js"() {
47648
47812
  "use strict";
47649
47813
  init_dist();
47650
47814
  init_spinner();
@@ -47652,7 +47816,7 @@ var init_status = __esm({
47652
47816
  }
47653
47817
  });
47654
47818
 
47655
- // ../packages/cli/dist/commands/config.js
47819
+ // packages/cli/dist/commands/config.js
47656
47820
  var config_exports = {};
47657
47821
  __export(config_exports, {
47658
47822
  configCommand: () => configCommand
@@ -47827,7 +47991,7 @@ function handleKeys() {
47827
47991
  }
47828
47992
  var CONFIG_KEYS, SENSITIVE_KEYS, INT_KEYS, BOOL_KEYS, ENUM_KEYS;
47829
47993
  var init_config3 = __esm({
47830
- "../packages/cli/dist/commands/config.js"() {
47994
+ "packages/cli/dist/commands/config.js"() {
47831
47995
  "use strict";
47832
47996
  init_config();
47833
47997
  init_oa_directory();
@@ -47874,7 +48038,7 @@ var init_config3 = __esm({
47874
48038
  }
47875
48039
  });
47876
48040
 
47877
- // ../packages/cli/dist/commands/serve.js
48041
+ // packages/cli/dist/commands/serve.js
47878
48042
  var serve_exports = {};
47879
48043
  __export(serve_exports, {
47880
48044
  serveCommand: () => serveCommand
@@ -48024,14 +48188,14 @@ async function runVllmServer(args, verbose) {
48024
48188
  });
48025
48189
  }
48026
48190
  var init_serve = __esm({
48027
- "../packages/cli/dist/commands/serve.js"() {
48191
+ "packages/cli/dist/commands/serve.js"() {
48028
48192
  "use strict";
48029
48193
  init_dist();
48030
48194
  init_output();
48031
48195
  }
48032
48196
  });
48033
48197
 
48034
- // ../packages/cli/dist/commands/eval.js
48198
+ // packages/cli/dist/commands/eval.js
48035
48199
  var eval_exports = {};
48036
48200
  __export(eval_exports, {
48037
48201
  evalCommand: () => evalCommand
@@ -48170,7 +48334,7 @@ function createTempEvalRepo() {
48170
48334
  }
48171
48335
  var BASIC_SUITE, FULL_SUITE, SUITES;
48172
48336
  var init_eval = __esm({
48173
- "../packages/cli/dist/commands/eval.js"() {
48337
+ "packages/cli/dist/commands/eval.js"() {
48174
48338
  "use strict";
48175
48339
  init_dist5();
48176
48340
  init_dist();
@@ -48218,7 +48382,7 @@ var init_eval = __esm({
48218
48382
  }
48219
48383
  });
48220
48384
 
48221
- // ../packages/cli/dist/index.js
48385
+ // packages/cli/dist/index.js
48222
48386
  init_config();
48223
48387
  init_output();
48224
48388
  init_updater();
@@ -48227,7 +48391,7 @@ import { createRequire as createRequire3 } from "node:module";
48227
48391
  import { fileURLToPath as fileURLToPath13 } from "node:url";
48228
48392
  import { dirname as dirname19, join as join54 } from "node:path";
48229
48393
 
48230
- // ../packages/cli/dist/cli.js
48394
+ // packages/cli/dist/cli.js
48231
48395
  import { createInterface } from "node:readline";
48232
48396
  function createCli(options) {
48233
48397
  return {
@@ -48266,10 +48430,10 @@ function createCli(options) {
48266
48430
  };
48267
48431
  }
48268
48432
 
48269
- // ../packages/cli/dist/args.js
48433
+ // packages/cli/dist/args.js
48270
48434
  import { parseArgs as nodeParseArgs } from "node:util";
48271
48435
 
48272
- // ../packages/cli/dist/types.js
48436
+ // packages/cli/dist/types.js
48273
48437
  var DEFAULT_OPTIONS = {
48274
48438
  model: "qwen-2.5-coder-32b",
48275
48439
  backendUrl: "http://localhost:8000/v1",
@@ -48279,7 +48443,7 @@ var DEFAULT_OPTIONS = {
48279
48443
  verbose: false
48280
48444
  };
48281
48445
 
48282
- // ../packages/cli/dist/args.js
48446
+ // packages/cli/dist/args.js
48283
48447
  function parseArgs(argv) {
48284
48448
  const { values } = nodeParseArgs({
48285
48449
  args: argv.slice(2),
@@ -48325,7 +48489,7 @@ Options:
48325
48489
  console.log(help.trim());
48326
48490
  }
48327
48491
 
48328
- // ../packages/cli/dist/index.js
48492
+ // packages/cli/dist/index.js
48329
48493
  init_config();
48330
48494
  init_spinner();
48331
48495
  init_output();