@botconnector/bccli 0.4.0-beta.45 → 0.4.0-beta.47

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 (45) hide show
  1. package/dist/{acp-QUDKQCTK.js → acp-QMD7IKKI.js} +2 -2
  2. package/dist/{args-HXDHQUL2.js → args-6T55MFPG.js} +4 -4
  3. package/dist/{chunk-7BQQYDPU.js → chunk-226R2FBX.js} +1 -1
  4. package/dist/{chunk-FNCDUDOB.js → chunk-3ETD6HSV.js} +31 -18
  5. package/dist/{chunk-W2ME7AGN.js → chunk-5D35DOMD.js} +3 -3
  6. package/dist/{chunk-4BQAIMAM.js → chunk-5YTZXUGU.js} +4 -4
  7. package/dist/{chunk-NJ5YDSSP.js → chunk-DAFJ7VOQ.js} +1 -1
  8. package/dist/{chunk-ERXWNEVU.js → chunk-EC67VAZX.js} +68 -12
  9. package/dist/{chunk-O33VFLLL.js → chunk-FNECQ433.js} +2 -2
  10. package/dist/{chunk-IA35YV5K.js → chunk-HBR62GF2.js} +1 -1
  11. package/dist/{chunk-JZ5XPSIA.js → chunk-JRUQQRP6.js} +5 -4
  12. package/dist/{chunk-X5ZJGTWY.js → chunk-KVXONGYT.js} +4 -4
  13. package/dist/{chunk-IU7PB6US.js → chunk-QGTAINBU.js} +6 -6
  14. package/dist/{chunk-JKRSZHDV.js → chunk-R72DRWZ6.js} +1 -1
  15. package/dist/{chunk-Q7DFEWE7.js → chunk-SJTJHATK.js} +2 -2
  16. package/dist/{chunk-VQ4FJ7R2.js → chunk-SVGARF5B.js} +3 -3
  17. package/dist/{chunk-FNGFR7R6.js → chunk-TSZFE2RV.js} +2 -1
  18. package/dist/{chunk-F4XYLKG5.js → chunk-Y7F5CZ4D.js} +1 -1
  19. package/dist/{chunk-RFSNTLOW.js → chunk-YGITX6JU.js} +1 -1
  20. package/dist/cli.js +37 -37
  21. package/dist/{completion-5OLAKCX7.js → completion-QO5B6N4R.js} +1 -1
  22. package/dist/{config-LSB274W4.js → config-67RNJLDR.js} +3 -3
  23. package/dist/{config-2PLBQKNC.js → config-TBRDIB7O.js} +2 -2
  24. package/dist/{ghBotCli-MB7KATUU.js → ghBotCli-4SXXJQGT.js} +13 -13
  25. package/dist/{integrationCli-L7OLA3DG.js → integrationCli-KTHSQC4Y.js} +2 -2
  26. package/dist/{login-4CIXDZZ7.js → login-7T6M25XB.js} +3 -3
  27. package/dist/{mcpCli-SAJTQGI7.js → mcpCli-7RR5N7SX.js} +5 -5
  28. package/dist/{modelsCli-L6VODTVW.js → modelsCli-GDE5RVD4.js} +6 -6
  29. package/dist/{oauthLogin-6TP475PO.js → oauthLogin-ZVKAVGJH.js} +1 -1
  30. package/dist/{pluginsCli-LE2IDSST.js → pluginsCli-UKMRWPVT.js} +2 -2
  31. package/dist/{prCli-PQJDEF7H.js → prCli-26OUBDFO.js} +1 -1
  32. package/dist/providerCli-QVYG6PFQ.js +15 -0
  33. package/dist/sdk.js +93 -22
  34. package/dist/{serve-QAVMAYEU.js → serve-PAXJYBVI.js} +3 -3
  35. package/dist/{serve-ZBCAEE72.js → serve-SEGKQ5DM.js} +14 -14
  36. package/dist/session-GDPYDGOX.js +12 -0
  37. package/dist/setup-HRZW73ZW.js +24 -0
  38. package/dist/{statsCli-AJG3IJTX.js → statsCli-ZHURTHK7.js} +1 -1
  39. package/dist/{transferCli-HNJMZYLV.js → transferCli-PQCFSIVT.js} +4 -4
  40. package/dist/{ui-ORZ5ZNIC.js → ui-52SWT2AL.js} +139 -44
  41. package/dist/{update-REYFMT5X.js → update-URVV6UXT.js} +2 -2
  42. package/package.json +1 -1
  43. package/dist/providerCli-SEAZ5OLH.js +0 -15
  44. package/dist/session-3I64N64B.js +0 -12
  45. package/dist/setup-N3PMYREM.js +0 -24
package/dist/sdk.js CHANGED
@@ -68,6 +68,10 @@ var ID = {
68
68
  " enter save \xB7 esc cancel": " enter simpan \xB7 esc batal",
69
69
  "shift+tab switch mode": "shift+tab ganti mode",
70
70
  "{n} tokens": "{n} token",
71
+ "\u273B Thinking": "\u273B Berpikir",
72
+ "click to toggle": "klik untuk buka/tutup",
73
+ "Model: {model} \xB7 reasoning: {level}": "Model: {model} \xB7 penalaran: {level}",
74
+ "No reasoning summary received yet; tool activity remains visible above.": "Belum ada ringkasan penalaran dari model; aktivitas tool tetap terlihat di atas.",
71
75
  "esc to cancel": "esc batal",
72
76
  "/ for commands": "/ perintah",
73
77
  "\u2026 {n} earlier steps": "\u2026 {n} langkah sebelumnya",
@@ -284,6 +288,7 @@ Opsi:
284
288
  "Note: {env} is still set in the environment and will keep being used.": "Catatan: {env} masih ter-set di environment dan akan terus dipakai.",
285
289
  "To revoke keys on your account, open {dashboard}.": "Untuk mencabut key akun kamu, buka {dashboard}.",
286
290
  "Budget exceeded ({kind}): {used} of {limit}. Further model calls are blocked; raise usageCap in ~/.bccli/config.json.": "Anggaran terlampaui ({kind}): {used} dari {limit}. Panggilan model selanjutnya diblokir; naikkan usageCap di ~/.bccli/config.json.",
291
+ "Could not save thinking visibility: {error}": "Gagal menyimpan pengaturan tampilan Thinking: {error}",
287
292
  "Verifying edits: {cmds}": "Memverifikasi edit: {cmds}",
288
293
  "Verification passed.": "Verifikasi lulus.",
289
294
  "Verification still failing after {n} fix round(s). Run the commands manually to see why.": "Verifikasi masih gagal setelah {n} ronde perbaikan. Jalankan perintahnya secara manual untuk melihat penyebabnya.",
@@ -448,15 +453,11 @@ Opsi:
448
453
  "Unknown command: /{name}. Type /help.": "Perintah tidak dikenal: /{name}. Ketik /help.",
449
454
  "Skill {name} cannot be read: {error}": "Skill {name} tidak bisa dibaca: {error}",
450
455
  "{n} queued messages cancelled.": "{n} pesan antrian dibatalkan.",
451
- "Thinking shown ({bind} to hide).": "Thinking ditampilkan ({bind} untuk menutup).",
452
- "Thinking hidden ({bind} to show).": "Thinking disembunyikan ({bind} untuk membuka).",
453
456
  "MCP {name} removed.": "MCP {name} dihapus.",
454
457
  "MCP {name} installed, connecting\u2026": "MCP {name} dipasang, menghubungkan\u2026",
455
458
  "MCP {name} active \xB7 {n} tools.": "MCP {name} aktif \xB7 {n} alat.",
456
459
  "MCP {name} failed: {error}": "MCP {name} gagal: {error}",
457
460
  "unknown": "tidak diketahui",
458
- "\u273B Thinking \xB7 {n} lines \xB7 {bind} to show": "\u273B Berpikir \xB7 {n} baris \xB7 {bind} buka",
459
- "\u273B Thinking ({bind} to hide)": "\u273B Berpikir ({bind} tutup)",
460
461
  " \u23F3 queued: {q}": " \u23F3 antri: {q}",
461
462
  "Thinking": "Berpikir",
462
463
  "Cancelling": "Membatalkan",
@@ -683,6 +684,7 @@ function loadConfig(cwd, env = process.env) {
683
684
  model: project.model ?? global.model ?? DEFAULT_CONFIG.model,
684
685
  permissionMode: global.permissionMode ?? DEFAULT_CONFIG.permissionMode,
685
686
  reasoning: global.reasoning ?? DEFAULT_CONFIG.reasoning,
687
+ thinkingVisible: global.thinkingVisible === true,
686
688
  maxSteps: resolvedMaxSteps(global),
687
689
  hooks: global.hooks,
688
690
  vision: global.vision ?? DEFAULT_CONFIG.vision,
@@ -1054,6 +1056,13 @@ var ProviderError = class extends Error {
1054
1056
  status;
1055
1057
  code;
1056
1058
  };
1059
+ function outputReasoningSummary(items) {
1060
+ return (items ?? []).flatMap((item) => {
1061
+ if (!item || typeof item !== "object" || !("type" in item) || item.type !== "reasoning") return [];
1062
+ if (!("summary" in item) || !Array.isArray(item.summary)) return [];
1063
+ return item.summary;
1064
+ }).map((part) => part && typeof part === "object" && "text" in part && typeof part.text === "string" ? part.text : "").filter(Boolean).join("\n");
1065
+ }
1057
1066
  var retryable = (status) => status === 429 || status >= 500;
1058
1067
  function detectRepetition(text) {
1059
1068
  const tail = text.slice(-600);
@@ -1335,8 +1344,8 @@ function responseTools(tools, enableProgrammaticToolCalling = false, programmati
1335
1344
  return lunaToolPlan(tools, enableProgrammaticToolCalling, programmaticToolNames, forceProgrammaticOnly).tools;
1336
1345
  }
1337
1346
  function responseReasoning(level) {
1338
- if (level === "auto") return {};
1339
- return { reasoning: { effort: level === "off" ? "none" : level } };
1347
+ if (level === "off") return { reasoning: { effort: "none" } };
1348
+ return { reasoning: { ...level === "auto" ? {} : { effort: level }, summary: "auto" } };
1340
1349
  }
1341
1350
  function toResponsesUsage(usage) {
1342
1351
  return usage ? { inputTokens: usage.input_tokens ?? 0, outputTokens: usage.output_tokens ?? 0 } : void 0;
@@ -1363,8 +1372,9 @@ function hasPendingProgrammaticReplay(messages) {
1363
1372
  }
1364
1373
  return pending;
1365
1374
  }
1366
- async function readResponsesStream(res, onText) {
1375
+ async function readResponsesStream(res, onText, onThinking) {
1367
1376
  let text = "";
1377
+ let thinking = "";
1368
1378
  let usage;
1369
1379
  let finishReason;
1370
1380
  let loopAt = -1;
@@ -1395,6 +1405,12 @@ async function readResponsesStream(res, onText) {
1395
1405
  if (event.type === "response.failed") {
1396
1406
  throw new ProviderError(t("Error from the provider: {message}", { message: event.response?.error?.message ?? "Response failed" }));
1397
1407
  }
1408
+ if (event.type === "response.reasoning_summary_text.delta" || event.type === "response.reasoning_summary.delta") {
1409
+ const summary = String(event.delta ?? "");
1410
+ thinking += summary;
1411
+ if (summary) onThinking?.(summary);
1412
+ return;
1413
+ }
1398
1414
  if (event.type === "response.output_text.delta" || event.type === "response.refusal.delta") {
1399
1415
  emitText(String(event.delta ?? ""));
1400
1416
  return;
@@ -1431,12 +1447,26 @@ async function readResponsesStream(res, onText) {
1431
1447
  if (event.type === "response.completed") {
1432
1448
  usage = toResponsesUsage(event.response?.usage);
1433
1449
  responsesOutputItems = event.response?.output ?? [...outputItems.entries()].sort(([a], [b]) => a - b).map(([, item]) => item);
1450
+ if (!thinking) {
1451
+ const summary = outputReasoningSummary(responsesOutputItems);
1452
+ if (summary) {
1453
+ thinking = summary;
1454
+ onThinking?.(summary);
1455
+ }
1456
+ }
1434
1457
  finishReason = responsesFinishReason(responsesOutputItems, calls.size);
1435
1458
  return;
1436
1459
  }
1437
1460
  if (event.type === "response.incomplete") {
1438
1461
  usage = toResponsesUsage(event.response?.usage);
1439
1462
  responsesOutputItems = event.response?.output ?? [...outputItems.entries()].sort(([a], [b]) => a - b).map(([, item]) => item);
1463
+ if (!thinking) {
1464
+ const summary = outputReasoningSummary(responsesOutputItems);
1465
+ if (summary) {
1466
+ thinking = summary;
1467
+ onThinking?.(summary);
1468
+ }
1469
+ }
1440
1470
  finishReason = responsesFinishReason(
1441
1471
  responsesOutputItems,
1442
1472
  calls.size,
@@ -1460,14 +1490,16 @@ async function readResponsesStream(res, onText) {
1460
1490
  return {
1461
1491
  text,
1462
1492
  toolCalls: [...calls.entries()].sort(([a], [b]) => a - b).map(([, call]) => call),
1493
+ thinking: thinking || void 0,
1463
1494
  usage,
1464
1495
  finishReason,
1465
1496
  responsesOutputItems
1466
1497
  };
1467
1498
  }
1468
- async function readResponsesJson(res) {
1499
+ async function readResponsesJson(res, onThinking) {
1469
1500
  const body = await res.json();
1470
1501
  let text = "";
1502
+ let thinking = "";
1471
1503
  const toolCalls = [];
1472
1504
  for (const item of body.output ?? []) {
1473
1505
  if (item?.type === "message") {
@@ -1475,6 +1507,12 @@ async function readResponsesJson(res) {
1475
1507
  if (part?.type === "output_text" && typeof part.text === "string") text += part.text;
1476
1508
  else if (part?.type === "refusal" && typeof part.refusal === "string") text += part.refusal;
1477
1509
  }
1510
+ } else if (item?.type === "reasoning" && Array.isArray(item.summary)) {
1511
+ const summary = item.summary.filter((part) => typeof part === "object" && part !== null && typeof part.text === "string").map((part) => part.text).join("");
1512
+ if (summary) {
1513
+ thinking += summary;
1514
+ onThinking?.(summary);
1515
+ }
1478
1516
  } else if (item?.type === "function_call") {
1479
1517
  toolCalls.push({
1480
1518
  id: String(item.call_id || item.id || `call_${toolCalls.length}`),
@@ -1487,6 +1525,7 @@ async function readResponsesJson(res) {
1487
1525
  return {
1488
1526
  text,
1489
1527
  toolCalls,
1528
+ thinking: thinking || void 0,
1490
1529
  usage: toResponsesUsage(body.usage),
1491
1530
  responsesOutputItems: body.output,
1492
1531
  finishReason: responsesFinishReason(
@@ -1544,9 +1583,10 @@ function responseContinuationInput(messages, continuation) {
1544
1583
  incremental: true
1545
1584
  };
1546
1585
  }
1547
- async function readResponsesWebSocketTurn(events, ws, onText, signal) {
1586
+ async function readResponsesWebSocketTurn(events, ws, onText, onThinking, signal) {
1548
1587
  let responseId = "";
1549
1588
  let text = "";
1589
+ let thinking = "";
1550
1590
  let usage;
1551
1591
  let finishReason;
1552
1592
  let loopAt = -1;
@@ -1593,6 +1633,12 @@ async function readResponsesWebSocketTurn(events, ws, onText, signal) {
1593
1633
  responseId = String(event.response?.id || responseId);
1594
1634
  continue;
1595
1635
  }
1636
+ if (event.type === "response.reasoning_summary_text.delta") {
1637
+ const summary = String(event.delta ?? "");
1638
+ thinking += summary;
1639
+ if (summary) onThinking?.(summary);
1640
+ continue;
1641
+ }
1596
1642
  if (event.type === "response.output_text.delta" || event.type === "response.refusal.delta") {
1597
1643
  emitText(String(event.delta ?? ""));
1598
1644
  if (loopAt >= 0) {
@@ -1643,6 +1689,13 @@ async function readResponsesWebSocketTurn(events, ws, onText, signal) {
1643
1689
  responseId = String(event.response?.id || responseId);
1644
1690
  usage = toResponsesUsage(event.response?.usage);
1645
1691
  const responsesOutputItems = event.response?.output ?? [...outputItems.entries()].sort(([a], [b]) => a - b).map(([, item]) => item);
1692
+ if (!thinking) {
1693
+ const summary = outputReasoningSummary(responsesOutputItems);
1694
+ if (summary) {
1695
+ thinking = summary;
1696
+ onThinking?.(summary);
1697
+ }
1698
+ }
1646
1699
  finishReason = responsesFinishReason(
1647
1700
  responsesOutputItems,
1648
1701
  calls.size,
@@ -1653,6 +1706,7 @@ async function readResponsesWebSocketTurn(events, ws, onText, signal) {
1653
1706
  completion: {
1654
1707
  text,
1655
1708
  toolCalls: [...calls.entries()].sort(([a], [b]) => a - b).map(([, call]) => call),
1709
+ thinking: thinking || void 0,
1656
1710
  usage,
1657
1711
  finishReason,
1658
1712
  responsesOutputItems
@@ -1725,7 +1779,7 @@ function createProvider(options) {
1725
1779
  lunaWsIdleTimer = setTimeout(() => resetLunaWebSocket(), 10 * 6e4);
1726
1780
  lunaWsIdleTimer.unref?.();
1727
1781
  };
1728
- async function chatLunaWebSocket(messages, tools, programmaticToolNames, reasoning, signal, onText) {
1782
+ async function chatLunaWebSocket(messages, tools, programmaticToolNames, reasoning, signal, onText, onThinking) {
1729
1783
  const ptcEnabled = shouldEnableLunaPtc(messages, enableProgrammaticToolCalling, programmaticToolNames);
1730
1784
  const forcePtc = shouldForceLunaPtc(messages, ptcEnabled);
1731
1785
  const nativeTools = responseTools(tools, ptcEnabled, programmaticToolNames, forcePtc);
@@ -1750,9 +1804,13 @@ function createProvider(options) {
1750
1804
  if (delta) emittedText = true;
1751
1805
  onText?.(delta);
1752
1806
  };
1807
+ const trackSummary = (delta) => {
1808
+ if (delta) emittedText = true;
1809
+ onThinking?.(delta);
1810
+ };
1753
1811
  try {
1754
1812
  ws.send(createEvent);
1755
- const result = await readResponsesWebSocketTurn(events, ws, trackText, signal);
1813
+ const result = await readResponsesWebSocketTurn(events, ws, trackText, trackSummary, signal);
1756
1814
  if (result.completion.finishReason === "repetition") {
1757
1815
  resetLunaWebSocket();
1758
1816
  return result.completion;
@@ -1813,7 +1871,7 @@ function createProvider(options) {
1813
1871
  }
1814
1872
  if (useResponsesWebSocket) {
1815
1873
  try {
1816
- return await chatLunaWebSocket(messages, tools, programmaticToolNames, reasoning, signal, onText);
1874
+ return await chatLunaWebSocket(messages, tools, programmaticToolNames, reasoning, signal, onText, onThinking);
1817
1875
  } catch (error) {
1818
1876
  const err = error instanceof ProviderError ? error : new ProviderError(error.message);
1819
1877
  if (err.code !== "bc_ws_http_fallback") throw err;
@@ -1836,9 +1894,9 @@ function createProvider(options) {
1836
1894
  },
1837
1895
  signal
1838
1896
  );
1839
- if ((res2.headers.get("content-type") ?? "").includes("application/json")) return readResponsesJson(res2);
1897
+ if ((res2.headers.get("content-type") ?? "").includes("application/json")) return readResponsesJson(res2, onThinking);
1840
1898
  if (!res2.body) throw new ProviderError(t("Empty response from the provider"));
1841
- return readResponsesStream(res2, onText);
1899
+ return readResponsesStream(res2, onText, onThinking);
1842
1900
  }
1843
1901
  const res = await post(
1844
1902
  "/chat/completions",
@@ -3378,13 +3436,15 @@ var Agent2 = class {
3378
3436
  const keepTokens = Math.min(15e3, Math.floor(this.contextWindow * 0.1));
3379
3437
  const [older, keep] = splitKeepRecent(this.messages, keepTokens);
3380
3438
  const history = trimToFit(older, Math.floor(this.contextWindow * 0.8));
3381
- const completion = await this.provider.chat({
3439
+ const pending = this.provider.chat({
3382
3440
  messages: [{ role: "system", content: this.systemPrompt }, ...history, { role: "user", content: COMPACT_PROMPT }],
3383
3441
  // Some gateways reject tool_calls in history when no tools are declared.
3384
3442
  tools: this.definitions,
3385
3443
  signal,
3386
3444
  reasoning: this.reasoning
3387
3445
  });
3446
+ const completion = await raceAbort(pending, signal);
3447
+ if (completion === ABORTED) throw new Error("aborted");
3388
3448
  this.clear();
3389
3449
  this.push({ role: "user", content: `Summary of the previous conversation:
3390
3450
  ${completion.text}` });
@@ -3426,15 +3486,26 @@ ${completion.text}` });
3426
3486
  this.onEvent({ type: "budgetExceeded", ...over });
3427
3487
  return;
3428
3488
  }
3429
- let completion = await this.provider.chat({
3489
+ const pendingCompletion = this.provider.chat({
3430
3490
  messages: [{ role: "system", content: this.systemPrompt }, ...this.messages],
3431
3491
  tools: this.turnDefinitions,
3432
3492
  programmaticToolNames: this.turnTools.filter((tool) => tool.programmaticSafe).map((tool) => tool.name),
3433
3493
  signal,
3434
- onText: (delta) => this.onEvent({ type: "text", delta }),
3435
- onThinking: (delta) => this.onEvent({ type: "thinking", delta }),
3494
+ // Late output from a cancelled provider must not leak into the next turn.
3495
+ onText: (delta) => {
3496
+ if (!signal.aborted) this.onEvent({ type: "text", delta });
3497
+ },
3498
+ onThinking: (delta) => {
3499
+ if (!signal.aborted) this.onEvent({ type: "thinking", delta });
3500
+ },
3436
3501
  reasoning: this.reasoning
3437
3502
  });
3503
+ const outcome = await raceAbort(pendingCompletion, signal);
3504
+ if (outcome === ABORTED) {
3505
+ this.onEvent({ type: "aborted" });
3506
+ return;
3507
+ }
3508
+ let completion = outcome;
3438
3509
  if (!completion.toolCalls.length && completion.finishReason !== "repetition") {
3439
3510
  const recovered = recoverTextToolCalls(completion.text, this.turnDefinitions);
3440
3511
  if (recovered) {
@@ -3481,8 +3552,8 @@ ${completion.text}` });
3481
3552
  const batch = calls.slice(i, j);
3482
3553
  const tickets = batch.map(() => ({ abandoned: false, open: false }));
3483
3554
  const running = Promise.all(batch.map((c, k) => this.runTool(c, signal, tickets[k])));
3484
- const outcome = await raceAbort(running, signal);
3485
- if (outcome === ABORTED) {
3555
+ const outcome2 = await raceAbort(running, signal);
3556
+ if (outcome2 === ABORTED) {
3486
3557
  batch.forEach((c, k) => {
3487
3558
  const ticket = tickets[k];
3488
3559
  ticket.abandoned = true;
@@ -3495,11 +3566,11 @@ ${completion.text}` });
3495
3566
  return;
3496
3567
  }
3497
3568
  batch.forEach((c, k) => {
3498
- roundImages.push(...outcome[k].images ?? []);
3569
+ roundImages.push(...outcome2[k].images ?? []);
3499
3570
  this.push({
3500
3571
  role: "tool",
3501
3572
  tool_call_id: c.id,
3502
- content: outcome[k].output,
3573
+ content: outcome2[k].output,
3503
3574
  ...c.caller ? { responses_caller: c.caller } : {}
3504
3575
  });
3505
3576
  });
@@ -3,15 +3,15 @@ import {
3
3
  createFetchTool,
4
4
  createWebSearchTool,
5
5
  isPrivateHost
6
- } from "./chunk-JKRSZHDV.js";
6
+ } from "./chunk-R72DRWZ6.js";
7
7
  import "./chunk-PSO7R5AD.js";
8
8
  import {
9
9
  loadConfig,
10
10
  readCredentials
11
- } from "./chunk-FNGFR7R6.js";
11
+ } from "./chunk-TSZFE2RV.js";
12
12
  import {
13
13
  t
14
- } from "./chunk-JZ5XPSIA.js";
14
+ } from "./chunk-JRUQQRP6.js";
15
15
 
16
16
  // src/mcpServer/serve.ts
17
17
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  createRuntime
4
- } from "./chunk-FNCDUDOB.js";
4
+ } from "./chunk-3ETD6HSV.js";
5
5
  import "./chunk-QZKLZELZ.js";
6
- import "./chunk-NJ5YDSSP.js";
7
- import "./chunk-JKRSZHDV.js";
6
+ import "./chunk-DAFJ7VOQ.js";
7
+ import "./chunk-R72DRWZ6.js";
8
8
  import "./chunk-PSO7R5AD.js";
9
9
  import {
10
10
  VERSION
11
- } from "./chunk-7BQQYDPU.js";
11
+ } from "./chunk-226R2FBX.js";
12
12
  import {
13
13
  LOOPBACK_BIND,
14
14
  MAX_FRAME_BYTES,
@@ -17,25 +17,25 @@ import {
17
17
  parseClientFrame,
18
18
  randomToken,
19
19
  trustFence
20
- } from "./chunk-W2ME7AGN.js";
20
+ } from "./chunk-5D35DOMD.js";
21
21
  import "./chunk-GAFJEQTJ.js";
22
- import "./chunk-X5ZJGTWY.js";
22
+ import "./chunk-KVXONGYT.js";
23
23
  import {
24
24
  listAllModels
25
- } from "./chunk-4BQAIMAM.js";
26
- import "./chunk-F4XYLKG5.js";
25
+ } from "./chunk-5YTZXUGU.js";
26
+ import "./chunk-Y7F5CZ4D.js";
27
27
  import "./chunk-7F3IWBPQ.js";
28
28
  import {
29
29
  Session
30
- } from "./chunk-IA35YV5K.js";
31
- import "./chunk-ERXWNEVU.js";
32
- import "./chunk-RFSNTLOW.js";
33
- import "./chunk-Q7DFEWE7.js";
30
+ } from "./chunk-HBR62GF2.js";
31
+ import "./chunk-EC67VAZX.js";
32
+ import "./chunk-YGITX6JU.js";
33
+ import "./chunk-SJTJHATK.js";
34
34
  import {
35
35
  bccliHome,
36
36
  loadConfig
37
- } from "./chunk-FNGFR7R6.js";
38
- import "./chunk-JZ5XPSIA.js";
37
+ } from "./chunk-TSZFE2RV.js";
38
+ import "./chunk-JRUQQRP6.js";
39
39
 
40
40
  // src/serve.ts
41
41
  import { randomBytes } from "crypto";
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ Session,
4
+ pruneSessions
5
+ } from "./chunk-HBR62GF2.js";
6
+ import "./chunk-EC67VAZX.js";
7
+ import "./chunk-YGITX6JU.js";
8
+ import "./chunk-JRUQQRP6.js";
9
+ export {
10
+ Session,
11
+ pruneSessions
12
+ };
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+ import {
3
+ createRuntime,
4
+ lunaPtcAutoEnabled
5
+ } from "./chunk-3ETD6HSV.js";
6
+ import "./chunk-QZKLZELZ.js";
7
+ import "./chunk-DAFJ7VOQ.js";
8
+ import "./chunk-R72DRWZ6.js";
9
+ import "./chunk-PSO7R5AD.js";
10
+ import "./chunk-GAFJEQTJ.js";
11
+ import "./chunk-KVXONGYT.js";
12
+ import "./chunk-5YTZXUGU.js";
13
+ import "./chunk-Y7F5CZ4D.js";
14
+ import "./chunk-7F3IWBPQ.js";
15
+ import "./chunk-HBR62GF2.js";
16
+ import "./chunk-EC67VAZX.js";
17
+ import "./chunk-YGITX6JU.js";
18
+ import "./chunk-SJTJHATK.js";
19
+ import "./chunk-TSZFE2RV.js";
20
+ import "./chunk-JRUQQRP6.js";
21
+ export {
22
+ createRuntime,
23
+ lunaPtcAutoEnabled
24
+ };
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-QZKLZELZ.js";
5
5
  import {
6
6
  t
7
- } from "./chunk-JZ5XPSIA.js";
7
+ } from "./chunk-JRUQQRP6.js";
8
8
 
9
9
  // src/statsCli.ts
10
10
  import { existsSync, readdirSync, readFileSync, statSync } from "fs";
@@ -1,12 +1,12 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  Session
4
- } from "./chunk-IA35YV5K.js";
5
- import "./chunk-ERXWNEVU.js";
6
- import "./chunk-RFSNTLOW.js";
4
+ } from "./chunk-HBR62GF2.js";
5
+ import "./chunk-EC67VAZX.js";
6
+ import "./chunk-YGITX6JU.js";
7
7
  import {
8
8
  t
9
- } from "./chunk-JZ5XPSIA.js";
9
+ } from "./chunk-JRUQQRP6.js";
10
10
 
11
11
  // src/transferCli.ts
12
12
  import { copyFileSync, existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from "fs";