@botconnector/bccli 0.4.0-beta.44 → 0.4.0-beta.46
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-U25MNDND.js → acp-YXBMSWYP.js} +2 -2
- package/dist/{args-MFTMBNRN.js → args-6MWRODGH.js} +4 -4
- package/dist/{chunk-ZGH4B7OU.js → chunk-2QNYWBDG.js} +21 -12
- package/dist/{chunk-TW5HZOTB.js → chunk-33OBF43H.js} +3 -3
- package/dist/{chunk-VO6MF6JJ.js → chunk-65OGHOGS.js} +1 -1
- package/dist/{chunk-Y3QKYORR.js → chunk-6RML6SN7.js} +6 -6
- package/dist/{chunk-PSRNKKGA.js → chunk-7PRH5NDO.js} +1 -1
- package/dist/{chunk-RMDW3OQ6.js → chunk-ASJRO2WF.js} +68 -12
- package/dist/{chunk-ZKMSTD6G.js → chunk-FIY424O5.js} +1 -1
- package/dist/{chunk-NVRNFR4S.js → chunk-GF6CRNT3.js} +1 -1
- package/dist/{chunk-QHNWI3OT.js → chunk-GI5GVU2L.js} +8 -2
- package/dist/{chunk-BQHKN7JI.js → chunk-IA5PRX4Z.js} +4 -1
- package/dist/{chunk-LTAQXU5Z.js → chunk-IHYNME3G.js} +1 -1
- package/dist/{chunk-I7GXIJCY.js → chunk-K3SWFB5S.js} +2 -2
- package/dist/{chunk-2ON3WIDP.js → chunk-KDVKD3QA.js} +4 -4
- package/dist/{chunk-GIGWZFCY.js → chunk-NGHOZRIM.js} +2 -1
- package/dist/{chunk-CYTRCZXI.js → chunk-OZPSNMUD.js} +26 -5
- package/dist/{chunk-25DSN3Y3.js → chunk-PBBD37E7.js} +4 -4
- package/dist/{chunk-PZC2Q6MJ.js → chunk-PQB4CGSL.js} +2 -2
- package/dist/chunk-QZKLZELZ.js +64 -0
- package/dist/cli.js +42 -39
- package/dist/{completion-6K4AXKK2.js → completion-D3HXSAQY.js} +1 -1
- package/dist/{config-Z4HSA435.js → config-BAAESXVB.js} +3 -3
- package/dist/{config-LCY27K3L.js → config-CJGPM5MJ.js} +2 -2
- package/dist/{ghBotCli-TJMKJU3E.js → ghBotCli-DCCFACAA.js} +14 -14
- package/dist/{integrationCli-33KU6GIK.js → integrationCli-EYAHT6VL.js} +2 -2
- package/dist/{login-LNF7ZV2S.js → login-FXTMDCCC.js} +3 -3
- package/dist/{mcpCli-TXFS3AOJ.js → mcpCli-57JTECJY.js} +5 -5
- package/dist/{modelsCli-IZSMIYVB.js → modelsCli-NH7W6MAZ.js} +6 -6
- package/dist/{oauthLogin-QGDYTOW7.js → oauthLogin-FTOPZW7X.js} +1 -1
- package/dist/{pluginsCli-RD4QW3DX.js → pluginsCli-UUPFG2CF.js} +2 -2
- package/dist/{prCli-PE7KIPMK.js → prCli-6OQ5ZUBO.js} +1 -1
- package/dist/providerCli-L6SQHIRK.js +15 -0
- package/dist/sdk.js +149 -14
- package/dist/{serve-HW5XZ5LF.js → serve-HPQ2K7UE.js} +15 -15
- package/dist/{serve-YNKE332Z.js → serve-HZZYEI3J.js} +3 -3
- package/dist/session-QIZKAZK3.js +12 -0
- package/dist/setup-4I5FXW37.js +24 -0
- package/dist/statsCli-G7GYLCPM.js +353 -0
- package/dist/{transferCli-RQBB6RVY.js → transferCli-7FW2SJY4.js} +4 -4
- package/dist/{ui-4ZTUMTYM.js → ui-KHNDA2RT.js} +120 -32
- package/dist/{update-34FDI6H3.js → update-UG7GWBXT.js} +2 -2
- package/package.json +1 -1
- package/dist/chunk-U6PCNS4B.js +0 -20
- package/dist/providerCli-AA3CHCGV.js +0 -15
- package/dist/session-KRV2UP5C.js +0 -12
- package/dist/setup-L4OPF3XW.js +0 -24
- package/dist/statsCli-4KYPVYCN.js +0 -109
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
addProviderKey,
|
|
4
|
-
runProviderCommand
|
|
5
|
-
} from "./chunk-2ON3WIDP.js";
|
|
6
|
-
import "./chunk-25DSN3Y3.js";
|
|
7
|
-
import "./chunk-VO6MF6JJ.js";
|
|
8
|
-
import "./chunk-RMDW3OQ6.js";
|
|
9
|
-
import "./chunk-ZKMSTD6G.js";
|
|
10
|
-
import "./chunk-GIGWZFCY.js";
|
|
11
|
-
import "./chunk-QHNWI3OT.js";
|
|
12
|
-
export {
|
|
13
|
-
addProviderKey,
|
|
14
|
-
runProviderCommand
|
|
15
|
-
};
|
package/dist/session-KRV2UP5C.js
DELETED
package/dist/setup-L4OPF3XW.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
createRuntime,
|
|
4
|
-
lunaPtcAutoEnabled
|
|
5
|
-
} from "./chunk-ZGH4B7OU.js";
|
|
6
|
-
import "./chunk-U6PCNS4B.js";
|
|
7
|
-
import "./chunk-PSRNKKGA.js";
|
|
8
|
-
import "./chunk-NVRNFR4S.js";
|
|
9
|
-
import "./chunk-PSO7R5AD.js";
|
|
10
|
-
import "./chunk-GAFJEQTJ.js";
|
|
11
|
-
import "./chunk-2ON3WIDP.js";
|
|
12
|
-
import "./chunk-25DSN3Y3.js";
|
|
13
|
-
import "./chunk-VO6MF6JJ.js";
|
|
14
|
-
import "./chunk-7F3IWBPQ.js";
|
|
15
|
-
import "./chunk-BQHKN7JI.js";
|
|
16
|
-
import "./chunk-RMDW3OQ6.js";
|
|
17
|
-
import "./chunk-ZKMSTD6G.js";
|
|
18
|
-
import "./chunk-PZC2Q6MJ.js";
|
|
19
|
-
import "./chunk-GIGWZFCY.js";
|
|
20
|
-
import "./chunk-QHNWI3OT.js";
|
|
21
|
-
export {
|
|
22
|
-
createRuntime,
|
|
23
|
-
lunaPtcAutoEnabled
|
|
24
|
-
};
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
estimateTokens
|
|
4
|
-
} from "./chunk-U6PCNS4B.js";
|
|
5
|
-
import {
|
|
6
|
-
t
|
|
7
|
-
} from "./chunk-QHNWI3OT.js";
|
|
8
|
-
|
|
9
|
-
// src/statsCli.ts
|
|
10
|
-
import { existsSync, readdirSync, readFileSync, statSync } from "fs";
|
|
11
|
-
import { join } from "path";
|
|
12
|
-
function isUsageRecord(value) {
|
|
13
|
-
if (!value || typeof value !== "object") return false;
|
|
14
|
-
const v = value;
|
|
15
|
-
return v.t === "usage" && typeof v.inputTokens === "number" && typeof v.outputTokens === "number";
|
|
16
|
-
}
|
|
17
|
-
function aggregateSessions(home, opts) {
|
|
18
|
-
const now = opts.now ?? Date.now();
|
|
19
|
-
const cutoff = now - opts.days * 864e5;
|
|
20
|
-
const root = join(home, "sessions");
|
|
21
|
-
if (!existsSync(root)) return [];
|
|
22
|
-
const byProject = /* @__PURE__ */ new Map();
|
|
23
|
-
for (const project of readdirSync(root)) {
|
|
24
|
-
const dir = join(root, project);
|
|
25
|
-
let st;
|
|
26
|
-
try {
|
|
27
|
-
st = statSync(dir);
|
|
28
|
-
} catch {
|
|
29
|
-
continue;
|
|
30
|
-
}
|
|
31
|
-
if (!st.isDirectory()) continue;
|
|
32
|
-
for (const file of readdirSync(dir)) {
|
|
33
|
-
if (!file.endsWith(".jsonl")) continue;
|
|
34
|
-
const path = join(dir, file);
|
|
35
|
-
let fst;
|
|
36
|
-
try {
|
|
37
|
-
fst = statSync(path);
|
|
38
|
-
} catch {
|
|
39
|
-
continue;
|
|
40
|
-
}
|
|
41
|
-
if (fst.mtimeMs < cutoff) continue;
|
|
42
|
-
let row = byProject.get(project);
|
|
43
|
-
if (!row) {
|
|
44
|
-
row = { project, sessions: 0, messages: 0, inputTokens: 0, outputTokens: 0, usageInputTokens: 0, usageOutputTokens: 0 };
|
|
45
|
-
byProject.set(project, row);
|
|
46
|
-
}
|
|
47
|
-
row.sessions++;
|
|
48
|
-
for (const line of readFileSync(path, "utf8").split("\n")) {
|
|
49
|
-
if (!line.trim()) continue;
|
|
50
|
-
let record;
|
|
51
|
-
try {
|
|
52
|
-
record = JSON.parse(line);
|
|
53
|
-
} catch {
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
if (isUsageRecord(record)) {
|
|
57
|
-
row.usageInputTokens += record.inputTokens;
|
|
58
|
-
row.usageOutputTokens += record.outputTokens;
|
|
59
|
-
continue;
|
|
60
|
-
}
|
|
61
|
-
const r = record;
|
|
62
|
-
if (r?.t !== "msg" || !r.m) continue;
|
|
63
|
-
row.messages++;
|
|
64
|
-
const text = typeof r.m.content === "string" ? r.m.content : JSON.stringify(r.m.content ?? "");
|
|
65
|
-
const tokens = estimateTokens(text);
|
|
66
|
-
if (r.m.role === "user") row.inputTokens += tokens;
|
|
67
|
-
else if (r.m.role === "assistant") row.outputTokens += tokens;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return [...byProject.values()].sort((a, b) => b.messages - a.messages || a.project.localeCompare(b.project));
|
|
72
|
-
}
|
|
73
|
-
function runStatsCommand(args, deps) {
|
|
74
|
-
let days = args.days ?? 7;
|
|
75
|
-
const rest = args.subArgs;
|
|
76
|
-
for (let i = 0; i < rest.length; i++) {
|
|
77
|
-
if (rest[i] === "--days") {
|
|
78
|
-
const raw = rest[++i];
|
|
79
|
-
const n = Number(raw);
|
|
80
|
-
if (!Number.isInteger(n) || n < 1) {
|
|
81
|
-
deps.err?.(t("--days must be a positive integer"));
|
|
82
|
-
return 1;
|
|
83
|
-
}
|
|
84
|
-
days = n;
|
|
85
|
-
} else if (rest[i].startsWith("--days=")) {
|
|
86
|
-
const n = Number(rest[i].slice("--days=".length));
|
|
87
|
-
if (!Number.isInteger(n) || n < 1) {
|
|
88
|
-
deps.err?.(t("--days must be a positive integer"));
|
|
89
|
-
return 1;
|
|
90
|
-
}
|
|
91
|
-
days = n;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
const rows = aggregateSessions(args.home, { days, now: args.now });
|
|
95
|
-
if (!rows.length) {
|
|
96
|
-
deps.out(t("no sessions in the last {days} day(s)", { days: String(days) }));
|
|
97
|
-
return 0;
|
|
98
|
-
}
|
|
99
|
-
deps.out(t("sessions (last {days} day(s)):", { days: String(days) }));
|
|
100
|
-
for (const r of rows) {
|
|
101
|
-
const usage = r.usageInputTokens + r.usageOutputTokens > 0 ? ` ${t("recorded")}: ${r.usageInputTokens}in/${r.usageOutputTokens}out` : "";
|
|
102
|
-
deps.out(`${r.project} ${r.sessions} ${t("session(s)")} ${r.messages} ${t("message(s)")} ~${r.inputTokens}in/~${r.outputTokens}out${usage}`);
|
|
103
|
-
}
|
|
104
|
-
return 0;
|
|
105
|
-
}
|
|
106
|
-
export {
|
|
107
|
-
aggregateSessions,
|
|
108
|
-
runStatsCommand
|
|
109
|
-
};
|