open-agents-ai 0.187.557 → 0.187.558

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1443,10 +1443,10 @@ var init_security_classifier = __esm({
1443
1443
  RULES = [
1444
1444
  // ── Critical sensitive: tool registry / identity / worktree / sponsorship
1445
1445
  { match: /^(create_tool|manage_tools|skill_build|tool_creator)$/, info: CRITICAL_SENSITIVE },
1446
- { match: /^(identity_kernel|reflection_integrity|cohere_constraints)$/, info: CRITICAL_SENSITIVE },
1446
+ { match: /^(identity_kernel|reflection_integrity|reflect|cohere_constraints)$/, info: CRITICAL_SENSITIVE },
1447
1447
  { match: /^(enter_worktree|exit_worktree)$/, info: CRITICAL_SENSITIVE },
1448
1448
  { match: /^(aiwg_setup|aiwg_health|aiwg_workflow)$/, info: CRITICAL_SENSITIVE },
1449
- { match: /^(expose|sponsor|nexus_register)/, info: CRITICAL_SENSITIVE },
1449
+ { match: /^(expose|sponsor|nexus_register|wallet_|x402|payment|spend)/, info: CRITICAL_SENSITIVE },
1450
1450
  // ── Hardware peripherals
1451
1451
  { match: /^(camera_capture|audio_capture|audio_playback|audio_analyze|asr_listen)$/, info: HARDWARE_DEVICE },
1452
1452
  { match: /^(wifi_control|bluetooth_scan|sdr_scan|flipper_zero|meshtastic|gps_location)$/, info: HARDWARE_DEVICE },
@@ -1471,22 +1471,22 @@ var init_security_classifier = __esm({
1471
1471
  // ── Network reads (safe)
1472
1472
  { match: /^(web_search|web_fetch)$/, info: NETWORK_READ },
1473
1473
  // ── Network outbound (mutating or remote inference)
1474
- { match: /^(image_generate|vision|video_understand)$/, info: NETWORK_OUTBOUND },
1474
+ { match: /^(image_generate|generate_image|vision|video_understand)$/, info: NETWORK_OUTBOUND },
1475
1475
  { match: /^(transcribe_file|transcribe_url|youtube_download)$/, info: NETWORK_OUTBOUND },
1476
1476
  { match: /^(fortemi_bridge)$/, info: NETWORK_OUTBOUND },
1477
1477
  // ── Memory tools
1478
1478
  { match: /^(memory_read|memory_search)$/, info: MEMORY_READ },
1479
- { match: /^(memory_write|memory_metabolism|multimodal_memory|visual_memory|embedding_store)$/, info: MEMORY_WRITE },
1479
+ { match: /^(memory_write|memory_metabolism|memory_metabolize|multimodal_memory|visual_memory|embedding_store)$/, info: MEMORY_WRITE },
1480
1480
  // ── Local writes (fs mutation)
1481
- { match: /^(file_write|file_edit|file_patch|batch_edit|notebook_edit|structured_file|image_resize)$/, info: LOCAL_WRITE },
1481
+ { match: /^(file_write|file_edit|file_patch|batch_edit|notebook_edit|structured_file|create_structured_file|image_resize)$/, info: LOCAL_WRITE },
1482
1482
  { match: /^(working_notes|todo_write)$/, info: LOCAL_WRITE },
1483
1483
  { match: /^(scheduler|reminder|agenda)$/, info: SCHEDULER_REMINDER },
1484
- { match: /^(exploration_culture)$/, info: LOCAL_WRITE },
1484
+ { match: /^(exploration_culture|explore)$/, info: LOCAL_WRITE },
1485
1485
  // ── Task control
1486
1486
  { match: /^(task_status|task_output|task_stop)$/, info: TASK_CONTROL },
1487
1487
  // ── Local reads (inspection)
1488
- { match: /^(file_read|file_explore|list_directory|grep_search|glob_find)$/, info: LOCAL_READ },
1489
- { match: /^(image_read|ocr|ocr_pdf|ocr_image_advanced|pdf_to_text|structured_read)$/, info: LOCAL_READ },
1488
+ { match: /^(file_read|file_explore|list_directory|grep_search|glob_find|find_files)$/, info: LOCAL_READ },
1489
+ { match: /^(image_read|ocr|ocr_pdf|ocr_image_advanced|pdf_to_text|structured_read|read_structured_file)$/, info: LOCAL_READ },
1490
1490
  { match: /^(symbol_search|impact_analysis|code_neighbors|repo_map|codebase_map|semantic_map|import_graph)$/, info: LOCAL_READ },
1491
1491
  { match: /^(diagnostic|git_info|environment_snapshot|process_health|todo_read|explore_tools)$/, info: LOCAL_READ },
1492
1492
  { match: /^(log_explore|log_packet|change_log|phase_recall|code_graph)$/, info: LOCAL_READ },
@@ -1504,6 +1504,106 @@ var init_security_classifier = __esm({
1504
1504
  }
1505
1505
  });
1506
1506
 
1507
+ // packages/execution/dist/tools/tool-manifest.js
1508
+ function clearToolManifestCache() {
1509
+ probeCache.clear();
1510
+ }
1511
+ function defaultExposureForTool(name10, security) {
1512
+ if (security.risk === "critical" || security.risk === "high" || security.categories.includes("hardware") || security.categories.includes("agent") || security.categories.includes("sensitive")) {
1513
+ return "profile-opt-in";
1514
+ }
1515
+ if (!security.off_device_allowed || security.categories.includes("exec")) {
1516
+ return "local-only";
1517
+ }
1518
+ if (/(^|_)(x402|wallet|payment|spend|sponsor|expose)(_|$)/.test(name10)) {
1519
+ return "profile-opt-in";
1520
+ }
1521
+ return "trusted-default";
1522
+ }
1523
+ function buildToolManifestFromModule(mod2, options2 = {}) {
1524
+ const cwd4 = options2.cwd ?? process.cwd();
1525
+ const ttlMs = options2.ttlMs ?? DEFAULT_TTL_MS;
1526
+ const now = options2.now ?? Date.now();
1527
+ const entries = [];
1528
+ for (const [className, value2] of Object.entries(mod2)) {
1529
+ if (!isExecutableToolClass(value2))
1530
+ continue;
1531
+ const probe = probeToolClass(className, value2, cwd4, now, ttlMs);
1532
+ if (!probe.result.available || !probe.result.name)
1533
+ continue;
1534
+ const security = classifyTool(probe.result.name);
1535
+ entries.push({
1536
+ name: probe.result.name,
1537
+ className,
1538
+ description: probe.result.description ?? "",
1539
+ parameters: probe.result.parameters ?? null,
1540
+ security,
1541
+ defaultExposure: defaultExposureForTool(probe.result.name, security),
1542
+ availability: {
1543
+ available: true,
1544
+ cached: probe.cached,
1545
+ checkedAt: probe.checkedAt
1546
+ }
1547
+ });
1548
+ }
1549
+ entries.sort((a2, b) => a2.name.localeCompare(b.name));
1550
+ return entries;
1551
+ }
1552
+ function toolCategoriesInclude(entry, category) {
1553
+ return entry.security.categories.includes(category);
1554
+ }
1555
+ function isExecutableToolClass(value2) {
1556
+ if (typeof value2 !== "function")
1557
+ return false;
1558
+ const proto = value2.prototype;
1559
+ return typeof proto?.execute === "function";
1560
+ }
1561
+ function probeToolClass(className, ToolClass, cwd4, now, ttlMs) {
1562
+ const cacheKey = `${className}:${cwd4}`;
1563
+ const cached = probeCache.get(cacheKey);
1564
+ if (cached && cached.expiresAt > now) {
1565
+ return { result: cached.result, cached: true, checkedAt: cached.checkedAt };
1566
+ }
1567
+ const checkedAt = new Date(now).toISOString();
1568
+ const result = instantiateForMetadata(ToolClass, cwd4);
1569
+ probeCache.set(cacheKey, { result, checkedAt, expiresAt: now + ttlMs });
1570
+ return { result, cached: false, checkedAt };
1571
+ }
1572
+ function instantiateForMetadata(ToolClass, cwd4) {
1573
+ let inst = null;
1574
+ let lastError = null;
1575
+ for (const args of [[], [cwd4]]) {
1576
+ try {
1577
+ inst = new ToolClass(...args);
1578
+ break;
1579
+ } catch (err) {
1580
+ lastError = err;
1581
+ }
1582
+ }
1583
+ if (!inst || typeof inst.name !== "string") {
1584
+ return {
1585
+ available: false,
1586
+ reason: lastError instanceof Error ? lastError.message : "tool did not expose a string name"
1587
+ };
1588
+ }
1589
+ const tool = inst;
1590
+ return {
1591
+ available: true,
1592
+ name: tool.name,
1593
+ description: typeof tool.description === "string" ? tool.description : "",
1594
+ parameters: tool.parameters ?? null
1595
+ };
1596
+ }
1597
+ var DEFAULT_TTL_MS, probeCache;
1598
+ var init_tool_manifest = __esm({
1599
+ "packages/execution/dist/tools/tool-manifest.js"() {
1600
+ "use strict";
1601
+ init_security_classifier();
1602
+ DEFAULT_TTL_MS = 3e4;
1603
+ probeCache = /* @__PURE__ */ new Map();
1604
+ }
1605
+ });
1606
+
1507
1607
  // packages/execution/dist/process-kill.js
1508
1608
  import { execSync } from "node:child_process";
1509
1609
  function killProcessTree(pid, signal = "SIGKILL") {
@@ -511573,12 +511673,14 @@ __export(dist_exports, {
511573
511673
  buildScaffoldedPrompt: () => buildScaffoldedPrompt,
511574
511674
  buildSkillsSummary: () => buildSkillsSummary,
511575
511675
  buildSubProcessArgs: () => buildSubProcessArgs,
511676
+ buildToolManifestFromModule: () => buildToolManifestFromModule,
511576
511677
  canInvokeTool: () => canInvokeTool,
511577
511678
  checkConstraints: () => checkConstraints,
511578
511679
  checkDesktopDeps: () => checkDesktopDeps,
511579
511680
  classifyTool: () => classifyTool,
511580
511681
  clearExploreNotes: () => clearExploreNotes,
511581
511682
  clearImportGraphCache: () => clearImportGraphCache,
511683
+ clearToolManifestCache: () => clearToolManifestCache,
511582
511684
  clearWorkingNotes: () => clearWorkingNotes,
511583
511685
  closeAllCodeGraphDBs: () => closeAllCodeGraphDBs,
511584
511686
  codeGraphDBExists: () => codeGraphDBExists,
@@ -511588,6 +511690,7 @@ __export(dist_exports, {
511588
511690
  createFortemiBridgeTools: () => createFortemiBridgeTools,
511589
511691
  createTransport: () => createTransport,
511590
511692
  createWorktree: () => createWorktree2,
511693
+ defaultExposureForTool: () => defaultExposureForTool,
511591
511694
  deleteTodos: () => deleteTodos,
511592
511695
  detectElevationMethod: () => detectElevationMethod,
511593
511696
  detectSearchProvider: () => detectSearchProvider,
@@ -511676,6 +511779,7 @@ __export(dist_exports, {
511676
511779
  stopFullSubAgent: () => stopFullSubAgent,
511677
511780
  summarizeLog: () => summarizeLog,
511678
511781
  todoDir: () => todoDir,
511782
+ toolCategoriesInclude: () => toolCategoriesInclude,
511679
511783
  touchFile: () => touchFile,
511680
511784
  validateSlug: () => validateSlug,
511681
511785
  venvBinDir: () => venvBinDir,
@@ -511690,6 +511794,7 @@ var init_dist5 = __esm({
511690
511794
  "use strict";
511691
511795
  init_tool_executor();
511692
511796
  init_security_classifier();
511797
+ init_tool_manifest();
511693
511798
  init_shell();
511694
511799
  init_debate();
511695
511800
  init_replay_with_intervention();
@@ -523569,9 +523674,9 @@ function handoffEnabled() {
523569
523674
  function handoffTtlMs() {
523570
523675
  const raw = process.env["OA_TASK_HANDOFF_TTL_MS"];
523571
523676
  if (!raw)
523572
- return DEFAULT_TTL_MS;
523677
+ return DEFAULT_TTL_MS2;
523573
523678
  const n2 = Number.parseInt(raw, 10);
523574
- return Number.isFinite(n2) && n2 > 0 ? n2 : DEFAULT_TTL_MS;
523679
+ return Number.isFinite(n2) && n2 > 0 ? n2 : DEFAULT_TTL_MS2;
523575
523680
  }
523576
523681
  function handoffPath(oaDir) {
523577
523682
  return path5.join(oaDir, "handoffs", "latest.json");
@@ -523685,11 +523790,11 @@ If you need verbatim details from the prior task (specific code, exact error mes
523685
523790
  };
523686
523791
  return [boundary, summary];
523687
523792
  }
523688
- var DEFAULT_TTL_MS, MAX_SUMMARY_CHARS, MAX_FILES, MAX_TOOLS, MAX_LAST_ACTIONS;
523793
+ var DEFAULT_TTL_MS2, MAX_SUMMARY_CHARS, MAX_FILES, MAX_TOOLS, MAX_LAST_ACTIONS;
523689
523794
  var init_taskHandoff = __esm({
523690
523795
  "packages/orchestrator/dist/taskHandoff.js"() {
523691
523796
  "use strict";
523692
- DEFAULT_TTL_MS = 24 * 60 * 60 * 1e3;
523797
+ DEFAULT_TTL_MS2 = 24 * 60 * 60 * 1e3;
523693
523798
  MAX_SUMMARY_CHARS = 8e3;
523694
523799
  MAX_FILES = 30;
523695
523800
  MAX_TOOLS = 24;
@@ -590108,37 +590213,20 @@ async function handleListTools(ctx3) {
590108
590213
  sendJson(res, 200, { data: [], pagination: { limit: 50, offset: 0, total: 0, has_more: false } });
590109
590214
  return true;
590110
590215
  }
590111
- const classify = mod2.classifyTool;
590112
- const tools = [];
590113
- for (const [key, value2] of Object.entries(mod2)) {
590114
- if (typeof value2 !== "function") continue;
590115
- const proto = value2.prototype;
590116
- if (!proto || typeof proto.execute !== "function") continue;
590117
- let inst = null;
590118
- try {
590119
- inst = new value2();
590120
- } catch {
590121
- try {
590122
- inst = new value2(process.cwd());
590123
- } catch {
590124
- inst = null;
590125
- }
590216
+ const buildManifest = mod2.buildToolManifestFromModule;
590217
+ const tools = buildManifest ? buildManifest(mod2, { cwd: process.cwd() }).map((entry) => ({
590218
+ name: entry.name,
590219
+ class: entry.className,
590220
+ description: entry.description ?? "",
590221
+ parameters: entry.parameters ?? null,
590222
+ security: entry.security ?? void 0,
590223
+ default_exposure: entry.defaultExposure,
590224
+ availability: entry.availability,
590225
+ endpoints: {
590226
+ call: `/v1/tools/${encodeURIComponent(entry.name)}/call`,
590227
+ schema: `/v1/tools/${encodeURIComponent(entry.name)}`
590126
590228
  }
590127
- if (!inst || typeof inst.name !== "string") continue;
590128
- const name10 = inst.name;
590129
- const security = classify ? classify(name10) : null;
590130
- tools.push({
590131
- name: name10,
590132
- class: key,
590133
- description: inst.description ?? "",
590134
- parameters: inst.parameters ?? null,
590135
- security: security ?? void 0,
590136
- endpoints: {
590137
- call: `/v1/tools/${encodeURIComponent(name10)}/call`,
590138
- schema: `/v1/tools/${encodeURIComponent(name10)}`
590139
- }
590140
- });
590141
- }
590229
+ })) : [];
590142
590230
  tools.sort((a2, b) => a2.name.localeCompare(b.name));
590143
590231
  const filterCat = url.searchParams.get("category");
590144
590232
  const filterScope = url.searchParams.get("scope");
@@ -590183,26 +590271,8 @@ async function handleGetTool(ctx3, name10) {
590183
590271
  }));
590184
590272
  return true;
590185
590273
  }
590186
- const classify = mod2.classifyTool;
590187
- let found = null;
590188
- for (const [key, value2] of Object.entries(mod2)) {
590189
- if (typeof value2 !== "function") continue;
590190
- const proto = value2.prototype;
590191
- if (!proto || typeof proto.execute !== "function") continue;
590192
- let inst2 = null;
590193
- try {
590194
- inst2 = new value2();
590195
- } catch {
590196
- try {
590197
- inst2 = new value2(process.cwd());
590198
- } catch {
590199
- inst2 = null;
590200
- }
590201
- }
590202
- if (!inst2 || inst2.name !== name10) continue;
590203
- found = { instance: inst2, className: key };
590204
- break;
590205
- }
590274
+ const buildManifest = mod2.buildToolManifestFromModule;
590275
+ const found = buildManifest ? buildManifest(mod2, { cwd: process.cwd() }).find((entry) => entry.name === name10) : null;
590206
590276
  if (!found) {
590207
590277
  sendProblem(res, problemDetails({
590208
590278
  type: P.notFound,
@@ -590213,14 +590283,14 @@ async function handleGetTool(ctx3, name10) {
590213
590283
  }));
590214
590284
  return true;
590215
590285
  }
590216
- const inst = found.instance;
590217
- const security = classify ? classify(name10) : null;
590218
590286
  const body = {
590219
590287
  name: name10,
590220
590288
  class: found.className,
590221
- description: inst.description ?? "",
590222
- parameters: inst.parameters ?? null,
590223
- security: security ?? void 0,
590289
+ description: found.description ?? "",
590290
+ parameters: found.parameters ?? null,
590291
+ security: found.security ?? void 0,
590292
+ default_exposure: found.defaultExposure,
590293
+ availability: found.availability,
590224
590294
  endpoints: {
590225
590295
  call: `/v1/tools/${encodeURIComponent(name10)}/call`,
590226
590296
  schema: `/v1/tools/${encodeURIComponent(name10)}`
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.187.557",
3
+ "version": "0.187.558",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "open-agents-ai",
9
- "version": "0.187.557",
9
+ "version": "0.187.558",
10
10
  "hasInstallScript": true,
11
11
  "license": "CC-BY-NC-4.0",
12
12
  "dependencies": {
@@ -450,31 +450,23 @@
450
450
  }
451
451
  },
452
452
  "node_modules/@ipld/dag-cbor": {
453
- "version": "9.2.6",
454
- "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.2.6.tgz",
455
- "integrity": "sha512-vZGJ84Em2jCVAS7td5gc08YTVN8/s4bTQxg4pU77PAXDAR/yLYOthOvkCu01fdl1lrZwz47RdUterxdkrs3p5A==",
453
+ "version": "9.2.7",
454
+ "resolved": "https://registry.npmjs.org/@ipld/dag-cbor/-/dag-cbor-9.2.7.tgz",
455
+ "integrity": "sha512-ZmfXmElRWATr+hoUTSAOr6HUcjVhOcNHDqgczc76qte2DHHFEK0ZhNzUcdTDQhF/VSIvf2ioaRTRLWwLc83sNw==",
456
456
  "license": "Apache-2.0 OR MIT",
457
457
  "dependencies": {
458
458
  "cborg": "^5.0.1",
459
459
  "multiformats": "^13.1.0"
460
- },
461
- "engines": {
462
- "node": ">=16.0.0",
463
- "npm": ">=7.0.0"
464
460
  }
465
461
  },
466
462
  "node_modules/@ipld/dag-json": {
467
- "version": "10.2.7",
468
- "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-10.2.7.tgz",
469
- "integrity": "sha512-G+pXbOV6JpNUQrB+4H+0apnE85M9V0JjSjc7Mm2DdKbC6Qn8so9UYIGnJps+ZRMAvGUieO2iCZbAFLeWE2snvA==",
463
+ "version": "10.2.9",
464
+ "resolved": "https://registry.npmjs.org/@ipld/dag-json/-/dag-json-10.2.9.tgz",
465
+ "integrity": "sha512-opNPQQsTuCFZkaJCAqXrB/n9OqUD6W2Boz/Au5HjhLQyczmT8lxoOZObqQ5S5hhnV8p6sgKAimNhUB2W6y0Mzg==",
470
466
  "license": "Apache-2.0 OR MIT",
471
467
  "dependencies": {
472
468
  "cborg": "^5.0.0",
473
469
  "multiformats": "^13.1.0"
474
- },
475
- "engines": {
476
- "node": ">=16.0.0",
477
- "npm": ">=7.0.0"
478
470
  }
479
471
  },
480
472
  "node_modules/@ipld/dag-pb": {
@@ -954,14 +946,14 @@
954
946
  }
955
947
  },
956
948
  "node_modules/@libp2p/peer-record": {
957
- "version": "9.0.9",
958
- "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-9.0.9.tgz",
959
- "integrity": "sha512-MSTa01yTEvlaxW2Z/jiLYviPFWB7UJjupxHOSFTqalvJQYFuR4C713o6ABFEQWJJ2mTB0dS79hs65lEbOuWQTw==",
949
+ "version": "9.0.10",
950
+ "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-9.0.10.tgz",
951
+ "integrity": "sha512-pbDHpOPzE2vLlyiIAitpKG+aDNcnVmtLCYb1wGeRRAnarZC/vREZGM6JmR8Y79INu7jQ1IwTN1iKMj9jaXdAGg==",
960
952
  "license": "Apache-2.0 OR MIT",
961
953
  "dependencies": {
962
- "@libp2p/crypto": "^5.1.17",
954
+ "@libp2p/crypto": "^5.1.18",
963
955
  "@libp2p/interface": "^3.2.2",
964
- "@libp2p/peer-id": "^6.0.8",
956
+ "@libp2p/peer-id": "^6.0.9",
965
957
  "@multiformats/multiaddr": "^13.0.1",
966
958
  "multiformats": "^13.4.0",
967
959
  "protons-runtime": "^6.0.1",
@@ -1154,19 +1146,19 @@
1154
1146
  }
1155
1147
  },
1156
1148
  "node_modules/@libp2p/webrtc": {
1157
- "version": "6.0.21",
1158
- "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-6.0.21.tgz",
1159
- "integrity": "sha512-q7Qiqs/vrdECNRmOfLuYvcH7gLOk94vO8tHpkaIDJv2OxRLDcwAGqQ51K0932shU4DozDJ6203HdWaRJs3MMzg==",
1149
+ "version": "6.0.22",
1150
+ "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-6.0.22.tgz",
1151
+ "integrity": "sha512-3xtMLynwzp8Ig2y0vcNw8KRts12XZT4jZWv07OQpXuTKuQ0WiFG+DS70+q0bKWgF9zX5bu3DmcGY3FqRlIkQsQ==",
1160
1152
  "license": "Apache-2.0 OR MIT",
1161
1153
  "dependencies": {
1162
1154
  "@chainsafe/is-ip": "^2.1.0",
1163
1155
  "@chainsafe/libp2p-noise": "^17.0.0",
1164
- "@libp2p/crypto": "^5.1.17",
1156
+ "@libp2p/crypto": "^5.1.18",
1165
1157
  "@libp2p/interface": "^3.2.2",
1166
- "@libp2p/interface-internal": "^3.1.3",
1167
- "@libp2p/keychain": "^6.1.0",
1168
- "@libp2p/peer-id": "^6.0.8",
1169
- "@libp2p/utils": "^7.1.0",
1158
+ "@libp2p/interface-internal": "^3.1.4",
1159
+ "@libp2p/keychain": "^6.1.1",
1160
+ "@libp2p/peer-id": "^6.0.9",
1161
+ "@libp2p/utils": "^7.2.0",
1170
1162
  "@multiformats/multiaddr": "^13.0.1",
1171
1163
  "@multiformats/multiaddr-matcher": "^3.0.1",
1172
1164
  "@peculiar/webcrypto": "^1.5.0",
@@ -1310,15 +1302,15 @@
1310
1302
  }
1311
1303
  },
1312
1304
  "node_modules/@multiformats/multiaddr": {
1313
- "version": "13.0.1",
1314
- "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.1.tgz",
1315
- "integrity": "sha512-XToN915cnfr6Lr9EdGWakGJbPT0ghpg/850HvdC+zFX8XvpLZElwa8synCiwa8TuvKNnny6m8j8NVBNCxhIO3g==",
1305
+ "version": "13.0.3",
1306
+ "resolved": "https://registry.npmjs.org/@multiformats/multiaddr/-/multiaddr-13.0.3.tgz",
1307
+ "integrity": "sha512-mEqqJ4r3a/uuFMTpRkU316wGNIDQNhuVWpm+ebKTQeYsfv9jXbPONWM6VVnj3KGUrwfsX7GZOyp4TFqEA2SPCw==",
1316
1308
  "license": "Apache-2.0 OR MIT",
1317
1309
  "dependencies": {
1318
1310
  "@chainsafe/is-ip": "^2.0.1",
1319
- "multiformats": "^13.0.0",
1320
- "uint8-varint": "^2.0.1",
1321
- "uint8arrays": "^5.0.0"
1311
+ "multiformats": "^14.0.0",
1312
+ "uint8-varint": "^3.0.0",
1313
+ "uint8arrays": "^6.1.1"
1322
1314
  }
1323
1315
  },
1324
1316
  "node_modules/@multiformats/multiaddr-matcher": {
@@ -1339,6 +1331,40 @@
1339
1331
  "@multiformats/multiaddr": "^13.0.0"
1340
1332
  }
1341
1333
  },
1334
+ "node_modules/@multiformats/multiaddr/node_modules/multiformats": {
1335
+ "version": "14.0.0",
1336
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz",
1337
+ "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==",
1338
+ "license": "Apache-2.0 OR MIT"
1339
+ },
1340
+ "node_modules/@multiformats/multiaddr/node_modules/uint8-varint": {
1341
+ "version": "3.0.0",
1342
+ "resolved": "https://registry.npmjs.org/uint8-varint/-/uint8-varint-3.0.0.tgz",
1343
+ "integrity": "sha512-S4DdpXBaLwKcFo7f0bWzWfHjbZ/i3QhM842qn+ZvHjxqFCfUcEB9SQNcmI69S+zMlcmIcKxsk9Iyw77S2Kxv6Q==",
1344
+ "license": "Apache-2.0 OR MIT",
1345
+ "dependencies": {
1346
+ "uint8arraylist": "^3.0.1",
1347
+ "uint8arrays": "^6.1.0"
1348
+ }
1349
+ },
1350
+ "node_modules/@multiformats/multiaddr/node_modules/uint8arraylist": {
1351
+ "version": "3.0.2",
1352
+ "resolved": "https://registry.npmjs.org/uint8arraylist/-/uint8arraylist-3.0.2.tgz",
1353
+ "integrity": "sha512-LDVoq9BQaGJzGDUovEnoX6rpKCvnY/Jbtws4ikwnBzjRbq5qBAFpBZevUEbSmMM87aO0Sp+wOZy2ZXf5yODmXQ==",
1354
+ "license": "Apache-2.0 OR MIT",
1355
+ "dependencies": {
1356
+ "uint8arrays": "^6.0.0"
1357
+ }
1358
+ },
1359
+ "node_modules/@multiformats/multiaddr/node_modules/uint8arrays": {
1360
+ "version": "6.1.1",
1361
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz",
1362
+ "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==",
1363
+ "license": "Apache-2.0 OR MIT",
1364
+ "dependencies": {
1365
+ "multiformats": "^14.0.0"
1366
+ }
1367
+ },
1342
1368
  "node_modules/@multiformats/murmur3": {
1343
1369
  "version": "2.2.5",
1344
1370
  "resolved": "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-2.2.5.tgz",
@@ -1888,12 +1914,12 @@
1888
1914
  }
1889
1915
  },
1890
1916
  "node_modules/@types/node": {
1891
- "version": "25.6.2",
1892
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.6.2.tgz",
1893
- "integrity": "sha512-sokuT28dxf9JT5Kady1fsXOvI4HVpjZa95NKT5y9PNTIrs2AsobR4GFAA90ZG8M+nxVRLysCXsVj6eGC7Vbrlw==",
1917
+ "version": "25.7.0",
1918
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.7.0.tgz",
1919
+ "integrity": "sha512-z+pdZyxE+RTQE9AcboAZCb4otwcrvgHD+GlBpPgn0emDVt0ohrTMhAwlr2Wd9nZ+nihhYFxO2pThz3C5qSu2Eg==",
1894
1920
  "license": "MIT",
1895
1921
  "dependencies": {
1896
- "undici-types": "~7.19.0"
1922
+ "undici-types": "~7.21.0"
1897
1923
  }
1898
1924
  },
1899
1925
  "node_modules/@types/sinon": {
@@ -2011,9 +2037,9 @@
2011
2037
  }
2012
2038
  },
2013
2039
  "node_modules/aiwg": {
2014
- "version": "2026.5.1",
2015
- "resolved": "https://registry.npmjs.org/aiwg/-/aiwg-2026.5.1.tgz",
2016
- "integrity": "sha512-Nj6FtKhDkGvC3By7EySRPx+2LY1Wsy+rSa6GOs/YiBKfxYjDr8iFUve1lypU8kiBebmt3DQ7wdrXg8sAiqQCSQ==",
2040
+ "version": "2026.5.2",
2041
+ "resolved": "https://registry.npmjs.org/aiwg/-/aiwg-2026.5.2.tgz",
2042
+ "integrity": "sha512-uBoyOkKdht8nMj0hlmKzvFFqU1nZWVc924UyAYz45FphUVJ2pUdRT9FzKzCxmzzc+baQQ3diotSruYOMcsFnsg==",
2017
2043
  "hasInstallScript": true,
2018
2044
  "license": "MIT",
2019
2045
  "dependencies": {
@@ -2359,9 +2385,9 @@
2359
2385
  "license": "MIT"
2360
2386
  },
2361
2387
  "node_modules/better-sqlite3": {
2362
- "version": "12.9.0",
2363
- "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.9.0.tgz",
2364
- "integrity": "sha512-wqUv4Gm3toFpHDQmaKD4QhZm3g1DjUBI0yzS4UBl6lElUmXFYdTQmmEDpAFa5o8FiFiymURypEnfVHzILKaxqQ==",
2388
+ "version": "12.10.0",
2389
+ "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.10.0.tgz",
2390
+ "integrity": "sha512-CyzaZRQKyHkB2ZInfTTl2nvT33EbDpjkLEbE8/Zck3Ll6O0qqvuGdrJ45HgtH+HykRg88ITY3AdreBGN70aBSQ==",
2365
2391
  "hasInstallScript": true,
2366
2392
  "license": "MIT",
2367
2393
  "optional": true,
@@ -2370,7 +2396,7 @@
2370
2396
  "prebuild-install": "^7.1.1"
2371
2397
  },
2372
2398
  "engines": {
2373
- "node": "20.x || 22.x || 23.x || 24.x || 25.x"
2399
+ "node": "20.x || 22.x || 23.x || 24.x || 25.x || 26.x"
2374
2400
  }
2375
2401
  },
2376
2402
  "node_modules/binary-extensions": {
@@ -3675,13 +3701,28 @@
3675
3701
  "optional": true
3676
3702
  },
3677
3703
  "node_modules/hamt-sharding": {
3678
- "version": "3.0.6",
3679
- "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-3.0.6.tgz",
3680
- "integrity": "sha512-nZeamxfymIWLpVcAN0CRrb7uVq3hCOGj9IcL6NMA6VVCVWqj+h9Jo/SmaWuS92AEDf1thmHsM5D5c70hM3j2Tg==",
3704
+ "version": "3.0.8",
3705
+ "resolved": "https://registry.npmjs.org/hamt-sharding/-/hamt-sharding-3.0.8.tgz",
3706
+ "integrity": "sha512-pEh4hYa4ZyDJ2jWBTz7MVqTTGC3va3iEIMDJfbCKskR9rzHRd8HVwUyH5nLiLxK6VCFWIJ4vnlAEn4Hwx49Rbg==",
3681
3707
  "license": "Apache-2.0 OR MIT",
3682
3708
  "dependencies": {
3683
3709
  "sparse-array": "^1.3.1",
3684
- "uint8arrays": "^5.0.1"
3710
+ "uint8arrays": "^6.1.1"
3711
+ }
3712
+ },
3713
+ "node_modules/hamt-sharding/node_modules/multiformats": {
3714
+ "version": "14.0.0",
3715
+ "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-14.0.0.tgz",
3716
+ "integrity": "sha512-iWK1RrAS58p2NDfeZFuSUSv3ZPewTIhsGbh/5NgeGGJwJmRljLxGtjRR3nkn+loG3zl+IrfR/W1590QnrSK+Gg==",
3717
+ "license": "Apache-2.0 OR MIT"
3718
+ },
3719
+ "node_modules/hamt-sharding/node_modules/uint8arrays": {
3720
+ "version": "6.1.1",
3721
+ "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-6.1.1.tgz",
3722
+ "integrity": "sha512-iz7JN0XCSZYA111lhFG2Ui9EhFvTNekqSRHw3lvMHq+dzwWy1OQftxFQREEh4rffU0oSoXdQHsk2TiHKVm4fsA==",
3723
+ "license": "Apache-2.0 OR MIT",
3724
+ "dependencies": {
3725
+ "multiformats": "^14.0.0"
3685
3726
  }
3686
3727
  },
3687
3728
  "node_modules/has-flag": {
@@ -6911,9 +6952,9 @@
6911
6952
  }
6912
6953
  },
6913
6954
  "node_modules/undici-types": {
6914
- "version": "7.19.2",
6915
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.19.2.tgz",
6916
- "integrity": "sha512-qYVnV5OEm2AW8cJMCpdV20CDyaN3g0AjDlOGf1OW4iaDEx8MwdtChUp4zu4H0VP3nDRF/8RKWH+IPp9uW0YGZg==",
6955
+ "version": "7.21.0",
6956
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.21.0.tgz",
6957
+ "integrity": "sha512-w9IMgQrz4O0YN1LtB7K5P63vhlIOvC7opSmouCJ+ZywlPAlO9gIkJ+otk6LvGpAs2wg4econaCz3TvQ9xPoyuQ==",
6917
6958
  "license": "MIT"
6918
6959
  },
6919
6960
  "node_modules/unlimited-timeout": {
@@ -7249,9 +7290,9 @@
7249
7290
  "license": "ISC"
7250
7291
  },
7251
7292
  "node_modules/ws": {
7252
- "version": "8.20.0",
7253
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
7254
- "integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
7293
+ "version": "8.20.1",
7294
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.20.1.tgz",
7295
+ "integrity": "sha512-It4dO0K5v//JtTXuPkfEOaI3uUN87iYPnqo/ZzqCoG3g8uhA66QUMs/SrM0YK7/NAu+r4LMh/9dq2A7k+rHs+w==",
7255
7296
  "license": "MIT",
7256
7297
  "engines": {
7257
7298
  "node": ">=10.0.0"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "open-agents-ai",
3
- "version": "0.187.557",
3
+ "version": "0.187.558",
4
4
  "description": "AI coding agent powered by open-source models (Ollama/vLLM) — interactive TUI with agentic tool-calling loop",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",