@botconnector/bccli 0.4.9 → 0.4.10
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/{acp-VEXFXT5P.js → acp-L4WGVJTY.js} +2 -2
- package/dist/{args-6XMUZDAK.js → args-EW7XJVQN.js} +4 -4
- package/dist/args.d.ts +6 -0
- package/dist/{chunk-OETLWNGS.js → chunk-24KDXQZT.js} +1 -1
- package/dist/{chunk-OUJRD7GG.js → chunk-3K66L37W.js} +8 -3
- package/dist/{chunk-CSIQDFEF.js → chunk-3PUWH62K.js} +1 -1
- package/dist/{chunk-WSSJH765.js → chunk-4WI5ON64.js} +1 -1
- package/dist/{chunk-KREGVQ63.js → chunk-5QCCV2JM.js} +11 -11
- package/dist/{chunk-RRECJTOG.js → chunk-67REFMSY.js} +1 -1
- package/dist/{chunk-TLCFBQ6E.js → chunk-6N2BBLIT.js} +2 -2
- package/dist/{chunk-EAR2C6TS.js → chunk-6RVAPAE5.js} +1 -1
- package/dist/{chunk-2YG6L3YO.js → chunk-7HDBPDAD.js} +2 -2
- package/dist/{chunk-HCW67S5M.js → chunk-CBD52BYV.js} +1 -1
- package/dist/{chunk-Z2ELYJ5O.js → chunk-CIEPLTGS.js} +10 -3
- package/dist/{chunk-XCVYR5BK.js → chunk-ED5TTYQU.js} +12 -1
- package/dist/{chunk-62UTSCWF.js → chunk-MPYSYTSO.js} +1 -1
- package/dist/{chunk-AWBEZY4D.js → chunk-PGDYPOQW.js} +7 -5
- package/dist/{chunk-HPYI7L4W.js → chunk-SXRQ2Q7A.js} +4 -4
- package/dist/{chunk-DRJSANKH.js → chunk-USFXL5BS.js} +4 -2
- package/dist/{chunk-EOJNFGOP.js → chunk-VXRW5SYP.js} +74 -15
- package/dist/{chunk-6H6MPG7L.js → chunk-ZWXKBFKW.js} +7 -7
- package/dist/cli.js +39 -39
- package/dist/{completion-FETH4OGC.js → completion-GEFRIQWV.js} +1 -1
- package/dist/{config-RVMC23W3.js → config-JKMYKNAT.js} +2 -2
- package/dist/{config-KR5JI5RA.js → config-JLOH5M6B.js} +3 -3
- package/dist/{ghBotCli-Z6GWXCJ6.js → ghBotCli-WEVS6S6O.js} +14 -14
- package/dist/{integrationCli-GPRR6J6W.js → integrationCli-PKMICTHC.js} +2 -2
- package/dist/{login-DFSN77L3.js → login-2TZRODUL.js} +4 -4
- package/dist/{mcpCli-64P3SVUE.js → mcpCli-TAPKYGHO.js} +22 -7
- package/dist/{modelsCli-PFQY3G2Q.js → modelsCli-6PK7V2QZ.js} +6 -6
- package/dist/{oauthLogin-NR22NWEV.js → oauthLogin-UI34LQZU.js} +1 -1
- package/dist/{pluginsCli-UKRJ3AHN.js → pluginsCli-RCF33U5J.js} +6 -2
- package/dist/{prCli-6FCI36AJ.js → prCli-24PMW7NS.js} +1 -1
- package/dist/print.d.ts +1 -0
- package/dist/providerCli-XA4LTWRD.js +15 -0
- package/dist/sdk.js +93 -15
- package/dist/{serve-JYXPQAVY.js → serve-7BFCIEPJ.js} +15 -15
- package/dist/{serve-PKUTKQQT.js → serve-XNJI67DU.js} +3 -3
- package/dist/session-VAPIHHUG.js +12 -0
- package/dist/setup-GPIMZOWE.js +24 -0
- package/dist/{statsCli-FR7GOKWO.js → statsCli-QDHE4TKB.js} +1 -1
- package/dist/{transferCli-GIE4MEJ4.js → transferCli-7OKKYGG2.js} +4 -4
- package/dist/{ui-NZVOCQSU.js → ui-SZAIIJC5.js} +12 -12
- package/dist/{update-DIYDD7LT.js → update-JSNVVXPS.js} +2 -2
- package/package.json +1 -1
- package/dist/providerCli-PBSZECBM.js +0 -15
- package/dist/session-XABMBIIF.js +0 -12
- package/dist/setup-CLPQLTM7.js +0 -24
package/dist/sdk.js
CHANGED
|
@@ -178,6 +178,7 @@ Options:
|
|
|
178
178
|
-r, --resume pick a session to continue
|
|
179
179
|
--allow-all run all tools without asking for permission
|
|
180
180
|
--allowed-tools <a,b> tools allowed without asking: bash, edit, fetch
|
|
181
|
+
--fail-on-tool-error with -p: exit 1 when any tool call fails (for CI)
|
|
181
182
|
-w, --worktree <name> run in git worktree ../<repo>.worktrees/<name> (created, or reused if it exists)
|
|
182
183
|
--output-format <fmt> text | json | stream-json for -p (machine-readable output)
|
|
183
184
|
--permission-mode <mode> default | acceptEdits | plan | allowAll
|
|
@@ -208,6 +209,7 @@ Opsi:
|
|
|
208
209
|
-r, --resume pilih sesi untuk dilanjutkan
|
|
209
210
|
--allow-all jalankan semua alat tanpa minta izin
|
|
210
211
|
--allowed-tools <a,b> alat yang boleh tanpa izin: bash, edit, fetch
|
|
212
|
+
--fail-on-tool-error dengan -p: keluar 1 bila ada tool gagal (untuk CI)
|
|
211
213
|
-w, --worktree <name> jalankan di git worktree ../<repo>.worktrees/<name> (dibuat, atau dipakai ulang jika ada)
|
|
212
214
|
--output-format <fmt> text | json | stream-json untuk -p (output mesin)
|
|
213
215
|
--permission-mode <mode> default | acceptEdits | plan | allowAll
|
|
@@ -266,6 +268,7 @@ Opsi:
|
|
|
266
268
|
'npm removed the files of {name} but the config entry {entry} remains: {reason}. bccli will refuse to start while that entry is listed \u2014 fix the config error at {path}, then run "bccli plugins remove {name}" again (safe to repeat), or delete the entry manually.': 'npm sudah menghapus file {name} tetapi entry config {entry} tertinggal: {reason}. bccli menolak start selama entry itu terdaftar \u2014 perbaiki error config di {path}, lalu jalankan lagi "bccli plugins remove {name}" (aman diulang), atau hapus entry secara manual.',
|
|
267
269
|
"Skipping malformed entry: {entry} \u2014 fix it manually in {path}.": "Melewatkan entry rusak: {entry} \u2014 perbaiki manual di {path}.",
|
|
268
270
|
"No managed plugins to update.": "Tidak ada plugin terelola untuk diperbarui.",
|
|
271
|
+
"No plugins are installed. Install one with: bccli plugins install <spec>": "Belum ada plugin terpasang. Pasang dengan: bccli plugins install <spec>",
|
|
269
272
|
"update requires a plugin name or no argument: bccli plugins update [name]": "update butuh nama plugin atau tanpa argumen: bccli plugins update [nama]",
|
|
270
273
|
"{name} updated to latest.": "{name} diperbarui ke versi terbaru.",
|
|
271
274
|
"Use either --key or --logout, not both.": "Pakai --key atau --logout, jangan keduanya.",
|
|
@@ -323,6 +326,13 @@ Opsi:
|
|
|
323
326
|
"No API key for {id} yet. Run `bccli login` or set the env var {env}.": "API key untuk {id} belum ada. Jalankan `bccli login` atau set env {env}.",
|
|
324
327
|
"Error from the provider: {message}": "Error dari provider: {message}",
|
|
325
328
|
"Cannot connect to {url}: {error}": "Tidak bisa terhubung ke {url}: {error}",
|
|
329
|
+
"The API key was rejected. Check the key for this provider (bccli login) or its API key environment variable.": "Kunci API ditolak. Periksa kunci provider ini (bccli login) atau env var kuncinya.",
|
|
330
|
+
"Model or endpoint not found. Check the model name and the provider base URL.": "Model atau endpoint tidak ditemukan. Periksa nama model dan base URL provider.",
|
|
331
|
+
"Rate limit reached. Wait a moment, or switch model with /model.": "Batas laju tercapai. Tunggu sebentar, atau ganti model dengan /model.",
|
|
332
|
+
"The provider is having trouble. Try again, or switch model with /model.": "Penyedia sedang bermasalah. Coba lagi, atau ganti model dengan /model.",
|
|
333
|
+
"The provider did not respond within {seconds}s. Check the connection, then try again.": "Penyedia tidak merespons dalam {seconds} detik. Periksa koneksi, lalu coba lagi.",
|
|
334
|
+
"The provider stopped sending data for {seconds}s. The answer above may be incomplete; try again.": "Penyedia berhenti mengirim data selama {seconds} detik. Jawaban di atas mungkin tidak lengkap; coba lagi.",
|
|
335
|
+
"The response ended before it finished (no finish_reason or [DONE]). The answer above is incomplete; try again.": "Respons berakhir sebelum selesai (tanpa finish_reason atau [DONE]). Jawaban di atas tidak lengkap; coba lagi.",
|
|
326
336
|
"{status} from {url}: {message}": "{status} dari {url}: {message}",
|
|
327
337
|
"Request failed": "Permintaan gagal",
|
|
328
338
|
"Connection closed before the response finished.": "Koneksi ditutup sebelum respons selesai.",
|
|
@@ -347,7 +357,8 @@ Opsi:
|
|
|
347
357
|
"Usage: bccli mcp {action} <name>": "Pemakaian: bccli mcp {action} <nama>",
|
|
348
358
|
"{name} removed.": "{name} dihapus.",
|
|
349
359
|
"{name} installed ({url}).": "{name} terpasang ({url}).",
|
|
350
|
-
"{name}
|
|
360
|
+
"{name} installed (stdio: {command}).": "{name} terpasang (stdio: {command}).",
|
|
361
|
+
"{name} is not in the catalog. For another server use: bccli mcp add {name} --url <url> (HTTP) or bccli mcp add {name} --command <cmd> (stdio).": "{name} tidak ada di katalog. Untuk server lain pakai: bccli mcp add {name} --url <url> (HTTP) atau bccli mcp add {name} --command <cmd> (stdio).",
|
|
351
362
|
"{name} installed. Active in the next bccli session.": "{name} terpasang. Aktif di sesi bccli berikutnya.",
|
|
352
363
|
"control a browser (open pages, click, fill forms, screenshot)": "kontrol browser (buka halaman, klik, isi form, screenshot)",
|
|
353
364
|
"up-to-date library documentation": "dokumentasi library terbaru",
|
|
@@ -773,7 +784,9 @@ function resolveModel(config, modelRef, env = process.env) {
|
|
|
773
784
|
if (!provider) {
|
|
774
785
|
throw new ConfigError(t('Provider "{id}" is not in the config. Available: {list}', { id: providerId, list: Object.keys(config.providers).join(", ") }));
|
|
775
786
|
}
|
|
776
|
-
const
|
|
787
|
+
const untrusted = config.projectProviders?.includes(providerId) ?? false;
|
|
788
|
+
const stored = untrusted ? void 0 : readCredentials(env)[providerId];
|
|
789
|
+
const apiKey = stored || (provider.apiKeyEnv ? env[provider.apiKeyEnv] : void 0) || void 0;
|
|
777
790
|
if (provider.apiKeyEnv && !apiKey) {
|
|
778
791
|
throw new ConfigError(t("No API key for {id} yet. Run `bccli login` or set the env var {env}.", { id: providerId, env: provider.apiKeyEnv }));
|
|
779
792
|
}
|
|
@@ -988,6 +1001,9 @@ function parseCliArgs(argv) {
|
|
|
988
1001
|
continue: { type: "boolean", short: "c" },
|
|
989
1002
|
resume: { type: "boolean", short: "r" },
|
|
990
1003
|
"allow-all": { type: "boolean" },
|
|
1004
|
+
command: { type: "string" },
|
|
1005
|
+
args: { type: "string" },
|
|
1006
|
+
"fail-on-tool-error": { type: "boolean" },
|
|
991
1007
|
"allowed-tools": { type: "string" },
|
|
992
1008
|
worktree: { type: "string", short: "w" },
|
|
993
1009
|
"output-format": { type: "string" },
|
|
@@ -1061,6 +1077,7 @@ function parseCliArgs(argv) {
|
|
|
1061
1077
|
continue: !!values.continue,
|
|
1062
1078
|
resume: !!values.resume,
|
|
1063
1079
|
allowAll: !!values["allow-all"],
|
|
1080
|
+
failOnToolError: !!values["fail-on-tool-error"],
|
|
1064
1081
|
allowedTools: (values["allowed-tools"] ?? "").split(",").map((s) => s.trim()).filter(Boolean),
|
|
1065
1082
|
worktree: values.worktree,
|
|
1066
1083
|
outputFormat,
|
|
@@ -1072,6 +1089,8 @@ function parseCliArgs(argv) {
|
|
|
1072
1089
|
logout: !!values.logout,
|
|
1073
1090
|
subArgs: ["models", "plugins", "gh-bot", "provider", "mcp", "connect", "disconnect", "integrations", "completion", "stats", "export", "import", "pr"].includes(command) ? rest : [],
|
|
1074
1091
|
url: values.url,
|
|
1092
|
+
stdioCommand: values.command,
|
|
1093
|
+
stdioArgs: values.args,
|
|
1075
1094
|
name: values.name,
|
|
1076
1095
|
keyEnv: values["key-env"],
|
|
1077
1096
|
values: values.value ?? [],
|
|
@@ -1160,6 +1179,17 @@ function outputReasoningSummary(items) {
|
|
|
1160
1179
|
}).map((part) => part && typeof part === "object" && "text" in part && typeof part.text === "string" ? part.text : "").filter(Boolean).join("\n");
|
|
1161
1180
|
}
|
|
1162
1181
|
var retryable = (status) => status === 429 || status >= 500;
|
|
1182
|
+
function httpIdleMs() {
|
|
1183
|
+
const raw = Number(process.env.BCCLI_HTTP_IDLE_TIMEOUT_MS);
|
|
1184
|
+
return Number.isFinite(raw) && raw > 0 ? raw : 6e4;
|
|
1185
|
+
}
|
|
1186
|
+
function statusHint(status) {
|
|
1187
|
+
if (status === 401 || status === 403) return t("The API key was rejected. Check the key for this provider (bccli login) or its API key environment variable.");
|
|
1188
|
+
if (status === 404) return t("Model or endpoint not found. Check the model name and the provider base URL.");
|
|
1189
|
+
if (status === 429) return t("Rate limit reached. Wait a moment, or switch model with /model.");
|
|
1190
|
+
if (status >= 500) return t("The provider is having trouble. Try again, or switch model with /model.");
|
|
1191
|
+
return void 0;
|
|
1192
|
+
}
|
|
1163
1193
|
function detectRepetition(text) {
|
|
1164
1194
|
const tail = text.slice(-600);
|
|
1165
1195
|
for (let len = 1; len <= 12; len++) {
|
|
@@ -1202,7 +1232,7 @@ var toUsage = (u) => u ? {
|
|
|
1202
1232
|
...u.prompt_tokens_details?.cached_tokens != null ? { cachedInputTokens: u.prompt_tokens_details.cached_tokens } : {},
|
|
1203
1233
|
...u.prompt_tokens_details?.cache_write_tokens != null ? { cacheWriteTokens: u.prompt_tokens_details.cache_write_tokens } : {}
|
|
1204
1234
|
} : void 0;
|
|
1205
|
-
async function readStream(res, onText, onThinking) {
|
|
1235
|
+
async function readStream(res, onText, onThinking, signal) {
|
|
1206
1236
|
let text = "";
|
|
1207
1237
|
let thinking = "";
|
|
1208
1238
|
const splitter = new ThinkSplitter();
|
|
@@ -1219,6 +1249,7 @@ async function readStream(res, onText, onThinking) {
|
|
|
1219
1249
|
};
|
|
1220
1250
|
let usage;
|
|
1221
1251
|
let finishReason;
|
|
1252
|
+
let sawDone = false;
|
|
1222
1253
|
const calls = [];
|
|
1223
1254
|
const byIndex = /* @__PURE__ */ new Map();
|
|
1224
1255
|
let current2;
|
|
@@ -1228,7 +1259,11 @@ async function readStream(res, onText, onThinking) {
|
|
|
1228
1259
|
const handle = (line) => {
|
|
1229
1260
|
if (!line.startsWith("data:")) return;
|
|
1230
1261
|
const data = line.slice(5).trim();
|
|
1231
|
-
if (!data
|
|
1262
|
+
if (!data) return;
|
|
1263
|
+
if (data === "[DONE]") {
|
|
1264
|
+
sawDone = true;
|
|
1265
|
+
return;
|
|
1266
|
+
}
|
|
1232
1267
|
let event;
|
|
1233
1268
|
try {
|
|
1234
1269
|
event = JSON.parse(data);
|
|
@@ -1257,18 +1292,45 @@ async function readStream(res, onText, onThinking) {
|
|
|
1257
1292
|
if (tc.function?.arguments) target.arguments += tc.function.arguments;
|
|
1258
1293
|
}
|
|
1259
1294
|
};
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1295
|
+
const iterator = res.body[Symbol.asyncIterator]();
|
|
1296
|
+
const idle = httpIdleMs();
|
|
1297
|
+
const onAbort = () => void iterator.return?.();
|
|
1298
|
+
if (signal?.aborted) onAbort();
|
|
1299
|
+
else signal?.addEventListener("abort", onAbort);
|
|
1300
|
+
try {
|
|
1301
|
+
for (; ; ) {
|
|
1302
|
+
let timer;
|
|
1303
|
+
const stalled = new Promise((_, reject) => {
|
|
1304
|
+
timer = setTimeout(
|
|
1305
|
+
() => reject(new ProviderError(t("The provider stopped sending data for {seconds}s. The answer above may be incomplete; try again.", { seconds: String(Math.round(idle / 1e3)) }))),
|
|
1306
|
+
idle
|
|
1307
|
+
);
|
|
1308
|
+
});
|
|
1309
|
+
let step;
|
|
1310
|
+
try {
|
|
1311
|
+
step = await Promise.race([iterator.next(), stalled]);
|
|
1312
|
+
} finally {
|
|
1313
|
+
if (timer) clearTimeout(timer);
|
|
1314
|
+
}
|
|
1315
|
+
if (step.done) break;
|
|
1316
|
+
buffer += decoder.decode(step.value, { stream: true });
|
|
1317
|
+
let newline = buffer.indexOf("\n");
|
|
1318
|
+
while (newline >= 0 && loopAt < 0) {
|
|
1319
|
+
handle(buffer.slice(0, newline).trim());
|
|
1320
|
+
buffer = buffer.slice(newline + 1);
|
|
1321
|
+
newline = buffer.indexOf("\n");
|
|
1322
|
+
}
|
|
1323
|
+
if (loopAt >= 0) return { text: text.slice(0, loopAt), toolCalls: [], thinking: thinking || void 0, usage, finishReason: "repetition" };
|
|
1267
1324
|
}
|
|
1268
|
-
|
|
1325
|
+
} finally {
|
|
1326
|
+
signal?.removeEventListener("abort", onAbort);
|
|
1327
|
+
void iterator.return?.();
|
|
1269
1328
|
}
|
|
1270
1329
|
handle(buffer.trim());
|
|
1271
1330
|
emit(splitter.flush());
|
|
1331
|
+
if (!sawDone && !finishReason) {
|
|
1332
|
+
throw new ProviderError(t("The response ended before it finished (no finish_reason or [DONE]). The answer above is incomplete; try again."));
|
|
1333
|
+
}
|
|
1272
1334
|
const toolCalls = calls.map((call, index) => ({ ...call, id: call.id || `call_${index}` }));
|
|
1273
1335
|
return { text, toolCalls, thinking: thinking || void 0, usage, finishReason };
|
|
1274
1336
|
}
|
|
@@ -1964,12 +2026,26 @@ function createProvider(options) {
|
|
|
1964
2026
|
await sleep(delay, signal);
|
|
1965
2027
|
}
|
|
1966
2028
|
let res;
|
|
2029
|
+
const idleAbort = new AbortController();
|
|
2030
|
+
const forwardAbort = () => idleAbort.abort(signal?.reason);
|
|
2031
|
+
if (signal?.aborted) forwardAbort();
|
|
2032
|
+
else signal?.addEventListener("abort", forwardAbort);
|
|
2033
|
+
const idle = httpIdleMs();
|
|
2034
|
+
const headerTimer = setTimeout(() => idleAbort.abort(new Error("idle-timeout")), idle);
|
|
1967
2035
|
try {
|
|
1968
|
-
res = await doFetch(`${baseURL}${path}`, { method: "POST", headers, body: JSON.stringify(body), signal });
|
|
2036
|
+
res = await doFetch(`${baseURL}${path}`, { method: "POST", headers, body: JSON.stringify(body), signal: idleAbort.signal });
|
|
1969
2037
|
} catch (error) {
|
|
1970
2038
|
if (signal?.aborted) throw error;
|
|
2039
|
+
if (idleAbort.signal.aborted) {
|
|
2040
|
+
throw new ProviderError(
|
|
2041
|
+
t("The provider did not respond within {seconds}s. Check the connection, then try again.", { seconds: String(Math.round(idle / 1e3)) })
|
|
2042
|
+
);
|
|
2043
|
+
}
|
|
1971
2044
|
lastError = new ProviderError(t("Cannot connect to {url}: {error}", { url: baseURL, error: error.message }));
|
|
1972
2045
|
continue;
|
|
2046
|
+
} finally {
|
|
2047
|
+
clearTimeout(headerTimer);
|
|
2048
|
+
signal?.removeEventListener("abort", forwardAbort);
|
|
1973
2049
|
}
|
|
1974
2050
|
if (res.ok) return res;
|
|
1975
2051
|
const retryHeader = res.headers.get("retry-after");
|
|
@@ -1978,7 +2054,9 @@ function createProvider(options) {
|
|
|
1978
2054
|
if (Number.isFinite(secs) && secs > 0 && secs <= 30) retryAfterWaitMs = Math.ceil(secs * 1e3);
|
|
1979
2055
|
}
|
|
1980
2056
|
const text = await res.text().catch(() => "");
|
|
1981
|
-
|
|
2057
|
+
const raw = t("{status} from {url}: {message}", { status: res.status, url: baseURL, message: errorMessage(text) });
|
|
2058
|
+
const hint = statusHint(res.status);
|
|
2059
|
+
lastError = new ProviderError(hint ? `${hint} (${raw})` : raw, res.status);
|
|
1982
2060
|
const deterministicQuota429 = res.status === 429 && /"code"\s*:\s*"(?:luna_monthly_quota_exhausted|plan_allowance_exhausted)"/i.test(text);
|
|
1983
2061
|
if (!retryable(res.status) || deterministicQuota429) throw lastError;
|
|
1984
2062
|
}
|
|
@@ -2028,7 +2106,7 @@ function createProvider(options) {
|
|
|
2028
2106
|
);
|
|
2029
2107
|
if ((res.headers.get("content-type") ?? "").includes("application/json")) return readJson(res, onText, onThinking);
|
|
2030
2108
|
if (!res.body) throw new ProviderError(t("Empty response from the provider"));
|
|
2031
|
-
return readStream(res, onText, onThinking);
|
|
2109
|
+
return readStream(res, onText, onThinking, signal);
|
|
2032
2110
|
},
|
|
2033
2111
|
async listModels() {
|
|
2034
2112
|
const res = await doFetch(`${baseURL}/models`, { headers });
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
createRuntime
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-5QCCV2JM.js";
|
|
5
5
|
import "./chunk-OK2USAXX.js";
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-3PUWH62K.js";
|
|
7
|
+
import "./chunk-4WI5ON64.js";
|
|
8
8
|
import "./chunk-PSO7R5AD.js";
|
|
9
9
|
import {
|
|
10
10
|
VERSION
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-CBD52BYV.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-
|
|
20
|
+
} from "./chunk-CIEPLTGS.js";
|
|
21
21
|
import "./chunk-WFZKJY3R.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-PGDYPOQW.js";
|
|
23
23
|
import {
|
|
24
24
|
listAllModels
|
|
25
|
-
} from "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
25
|
+
} from "./chunk-SXRQ2Q7A.js";
|
|
26
|
+
import "./chunk-MPYSYTSO.js";
|
|
27
|
+
import "./chunk-67REFMSY.js";
|
|
28
28
|
import {
|
|
29
29
|
Session
|
|
30
|
-
} from "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
30
|
+
} from "./chunk-24KDXQZT.js";
|
|
31
|
+
import "./chunk-VXRW5SYP.js";
|
|
32
|
+
import "./chunk-6RVAPAE5.js";
|
|
33
|
+
import "./chunk-7HDBPDAD.js";
|
|
34
34
|
import {
|
|
35
35
|
bccliHome,
|
|
36
36
|
loadConfig
|
|
37
|
-
} from "./chunk-
|
|
38
|
-
import "./chunk-
|
|
37
|
+
} from "./chunk-USFXL5BS.js";
|
|
38
|
+
import "./chunk-ED5TTYQU.js";
|
|
39
39
|
|
|
40
40
|
// src/serve.ts
|
|
41
41
|
import { randomBytes } from "crypto";
|
|
@@ -3,15 +3,15 @@ import {
|
|
|
3
3
|
createFetchTool,
|
|
4
4
|
createWebSearchTool,
|
|
5
5
|
isPrivateHost
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-4WI5ON64.js";
|
|
7
7
|
import "./chunk-PSO7R5AD.js";
|
|
8
8
|
import {
|
|
9
9
|
loadConfig,
|
|
10
10
|
readCredentials
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-USFXL5BS.js";
|
|
12
12
|
import {
|
|
13
13
|
t
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-ED5TTYQU.js";
|
|
15
15
|
|
|
16
16
|
// src/mcpServer/serve.ts
|
|
17
17
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import {
|
|
3
|
+
createRuntime,
|
|
4
|
+
lunaPtcAutoEnabled
|
|
5
|
+
} from "./chunk-5QCCV2JM.js";
|
|
6
|
+
import "./chunk-OK2USAXX.js";
|
|
7
|
+
import "./chunk-3PUWH62K.js";
|
|
8
|
+
import "./chunk-4WI5ON64.js";
|
|
9
|
+
import "./chunk-PSO7R5AD.js";
|
|
10
|
+
import "./chunk-WFZKJY3R.js";
|
|
11
|
+
import "./chunk-PGDYPOQW.js";
|
|
12
|
+
import "./chunk-SXRQ2Q7A.js";
|
|
13
|
+
import "./chunk-MPYSYTSO.js";
|
|
14
|
+
import "./chunk-67REFMSY.js";
|
|
15
|
+
import "./chunk-24KDXQZT.js";
|
|
16
|
+
import "./chunk-VXRW5SYP.js";
|
|
17
|
+
import "./chunk-6RVAPAE5.js";
|
|
18
|
+
import "./chunk-7HDBPDAD.js";
|
|
19
|
+
import "./chunk-USFXL5BS.js";
|
|
20
|
+
import "./chunk-ED5TTYQU.js";
|
|
21
|
+
export {
|
|
22
|
+
createRuntime,
|
|
23
|
+
lunaPtcAutoEnabled
|
|
24
|
+
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import {
|
|
3
3
|
Session
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-24KDXQZT.js";
|
|
5
|
+
import "./chunk-VXRW5SYP.js";
|
|
6
|
+
import "./chunk-6RVAPAE5.js";
|
|
7
7
|
import {
|
|
8
8
|
t
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-ED5TTYQU.js";
|
|
10
10
|
|
|
11
11
|
// src/transferCli.ts
|
|
12
12
|
import { copyFileSync, existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync } from "fs";
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
CATALOG,
|
|
4
4
|
fillTemplate
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-6N2BBLIT.js";
|
|
6
6
|
import {
|
|
7
7
|
MAX_VERIFY_ROUNDS,
|
|
8
8
|
runVerify,
|
|
9
9
|
toolLabel,
|
|
10
10
|
verifyFollowup,
|
|
11
11
|
worktreeListText
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-3K66L37W.js";
|
|
13
13
|
import {
|
|
14
14
|
BUILTIN_AGENTS,
|
|
15
15
|
appendMemory,
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
runCommand,
|
|
25
25
|
runHooks,
|
|
26
26
|
validateGlobPattern
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-3PUWH62K.js";
|
|
28
28
|
import "./chunk-PSO7R5AD.js";
|
|
29
29
|
import {
|
|
30
30
|
nextMode,
|
|
@@ -34,39 +34,39 @@ import {
|
|
|
34
34
|
hasKey,
|
|
35
35
|
providerName,
|
|
36
36
|
writeGlobalConfig
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-MPYSYTSO.js";
|
|
38
38
|
import {
|
|
39
39
|
Session
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-24KDXQZT.js";
|
|
41
41
|
import {
|
|
42
42
|
contentText
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-VXRW5SYP.js";
|
|
44
44
|
import {
|
|
45
45
|
REASONING_LEVELS,
|
|
46
46
|
assertReasoningSupported,
|
|
47
47
|
parseReasoningLevel,
|
|
48
48
|
supportedReasoningLevels
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-6RVAPAE5.js";
|
|
50
50
|
import {
|
|
51
51
|
addGlobalServer,
|
|
52
52
|
globalMcpPath,
|
|
53
53
|
readMcpFile,
|
|
54
54
|
removeGlobalServer
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-7HDBPDAD.js";
|
|
56
56
|
import {
|
|
57
57
|
ACCENT,
|
|
58
58
|
PRESETS,
|
|
59
59
|
color,
|
|
60
60
|
matchKeybind,
|
|
61
61
|
removeCredential
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-USFXL5BS.js";
|
|
63
63
|
import {
|
|
64
64
|
getLanguage,
|
|
65
65
|
locale,
|
|
66
66
|
parseLang,
|
|
67
67
|
setLanguage,
|
|
68
68
|
t
|
|
69
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-ED5TTYQU.js";
|
|
70
70
|
|
|
71
71
|
// src/ui/index.tsx
|
|
72
72
|
import { render } from "ink";
|
|
@@ -2887,7 +2887,7 @@ ${allLines.slice(-maxLiveLines).join("\n")}` : text;
|
|
|
2887
2887
|
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
2888
2888
|
async function startInteractive(rt, opts) {
|
|
2889
2889
|
if (opts.resume) {
|
|
2890
|
-
const { Session: Session2 } = await import("./session-
|
|
2890
|
+
const { Session: Session2 } = await import("./session-VAPIHHUG.js");
|
|
2891
2891
|
const list = Session2.list(rt.home, rt.cwd).slice(0, 20);
|
|
2892
2892
|
if (!list.length) console.log(t("No sessions in this folder yet; starting a new one."));
|
|
2893
2893
|
else {
|
|
@@ -2903,7 +2903,7 @@ async function startInteractive(rt, opts) {
|
|
|
2903
2903
|
if (chosen) rt.resume(chosen.session);
|
|
2904
2904
|
}
|
|
2905
2905
|
}
|
|
2906
|
-
const { serversToStart, setProjectTrust } = await import("./config-
|
|
2906
|
+
const { serversToStart, setProjectTrust } = await import("./config-JLOH5M6B.js");
|
|
2907
2907
|
const plan = serversToStart(rt.home, rt.cwd);
|
|
2908
2908
|
if (plan.needTrust.length) {
|
|
2909
2909
|
const { createInterface } = await import("readline/promises");
|
package/package.json
CHANGED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
addProviderKey,
|
|
4
|
-
runProviderCommand
|
|
5
|
-
} from "./chunk-AWBEZY4D.js";
|
|
6
|
-
import "./chunk-HPYI7L4W.js";
|
|
7
|
-
import "./chunk-62UTSCWF.js";
|
|
8
|
-
import "./chunk-EOJNFGOP.js";
|
|
9
|
-
import "./chunk-EAR2C6TS.js";
|
|
10
|
-
import "./chunk-DRJSANKH.js";
|
|
11
|
-
import "./chunk-XCVYR5BK.js";
|
|
12
|
-
export {
|
|
13
|
-
addProviderKey,
|
|
14
|
-
runProviderCommand
|
|
15
|
-
};
|
package/dist/session-XABMBIIF.js
DELETED
package/dist/setup-CLPQLTM7.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
createRuntime,
|
|
4
|
-
lunaPtcAutoEnabled
|
|
5
|
-
} from "./chunk-KREGVQ63.js";
|
|
6
|
-
import "./chunk-OK2USAXX.js";
|
|
7
|
-
import "./chunk-CSIQDFEF.js";
|
|
8
|
-
import "./chunk-WSSJH765.js";
|
|
9
|
-
import "./chunk-PSO7R5AD.js";
|
|
10
|
-
import "./chunk-WFZKJY3R.js";
|
|
11
|
-
import "./chunk-AWBEZY4D.js";
|
|
12
|
-
import "./chunk-HPYI7L4W.js";
|
|
13
|
-
import "./chunk-62UTSCWF.js";
|
|
14
|
-
import "./chunk-RRECJTOG.js";
|
|
15
|
-
import "./chunk-OETLWNGS.js";
|
|
16
|
-
import "./chunk-EOJNFGOP.js";
|
|
17
|
-
import "./chunk-EAR2C6TS.js";
|
|
18
|
-
import "./chunk-2YG6L3YO.js";
|
|
19
|
-
import "./chunk-DRJSANKH.js";
|
|
20
|
-
import "./chunk-XCVYR5BK.js";
|
|
21
|
-
export {
|
|
22
|
-
createRuntime,
|
|
23
|
-
lunaPtcAutoEnabled
|
|
24
|
-
};
|