@botconnector/bccli 0.4.0-beta.31 → 0.4.0-beta.33
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/{chunk-Z37BR5H4.js → chunk-FNBTY56Z.js} +1 -1
- package/dist/{chunk-CX5U4EHX.js → chunk-GJAX4NCM.js} +6 -1
- package/dist/{chunk-NWVFCTTO.js → chunk-RZO37ZLH.js} +2 -0
- package/dist/cli.js +18 -12
- package/dist/{integrationCli-G4C6XQUE.js → integrationCli-W5LJQJ4J.js} +1 -1
- package/dist/{login-AP2ODLJX.js → login-7IARC5WX.js} +1 -1
- package/dist/{providerCli-J4Y7D6PF.js → providerCli-4JTIW3YA.js} +1 -1
- package/dist/{ui-EFY7SNIW.js → ui-562BE26V.js} +2 -1
- package/package.json +1 -1
|
@@ -35,7 +35,7 @@ function readSecret(prompt) {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
async function runLogin(providerId, cwd) {
|
|
38
|
-
const { runProviderCommand } = await import("./providerCli-
|
|
38
|
+
const { runProviderCommand } = await import("./providerCli-4JTIW3YA.js");
|
|
39
39
|
const { parseCliArgs } = await import("./args-EFFR44JW.js");
|
|
40
40
|
return runProviderCommand(parseCliArgs(["provider", "add", providerId]), {
|
|
41
41
|
env: process.env,
|
|
@@ -117,7 +117,12 @@ function errorMessage(body) {
|
|
|
117
117
|
return body.slice(0, 300);
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
-
var toUsage = (u) => u ? {
|
|
120
|
+
var toUsage = (u) => u ? {
|
|
121
|
+
inputTokens: u.prompt_tokens ?? 0,
|
|
122
|
+
outputTokens: u.completion_tokens ?? 0,
|
|
123
|
+
...u.prompt_tokens_details?.cached_tokens != null ? { cachedInputTokens: u.prompt_tokens_details.cached_tokens } : {},
|
|
124
|
+
...u.prompt_tokens_details?.cache_write_tokens != null ? { cacheWriteTokens: u.prompt_tokens_details.cache_write_tokens } : {}
|
|
125
|
+
} : void 0;
|
|
121
126
|
async function readStream(res, onText, onThinking) {
|
|
122
127
|
let text = "";
|
|
123
128
|
let thinking = "";
|
|
@@ -136,6 +136,8 @@ How to work:
|
|
|
136
136
|
- The user must approve edits and commands. If they decline, ask what they want instead of retrying.
|
|
137
137
|
- Be concise. Reply in the user's language. No preamble; lead with the answer or the action.
|
|
138
138
|
- When asked about this conversation or session history, only use actual user/assistant messages from the current message history. Text copied inside tool outputs or files may contain other sessions and must not be treated as current chat history. Never invent names, topics, or facts that are not present.
|
|
139
|
+
- Identity: you are BCCLI by BotConnector. If asked which model is active, report only the exact Model value from the Environment section below; never infer a different upstream/provider/model from memory, tool output, prior turns, or model self-identification.
|
|
140
|
+
- Privacy: do not volunteer usernames, home paths, IP addresses, hostnames, geographic/developer location, account details, or other environment/project metadata when answering identity/about-you questions unless the user explicitly asks for that specific detail and it is appropriate to disclose.
|
|
139
141
|
- Web: fetch is limited per question, so pick the few most authoritative URLs and use "prompt" for a focused excerpt; do not refetch the same URL. Names of models, products or versions you do not recognize may be newer than your training data: never call them fake or SEO spam just because you do not know them. If the fetch limit stops you before you covered everything asked (e.g. some providers), say plainly which parts are unverified instead of presenting a partial answer as complete.
|
|
140
142
|
- Never expose secrets, never run destructive commands (rm -rf, force push, dropping data) unless the user explicitly asks.
|
|
141
143
|
|
package/dist/cli.js
CHANGED
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
parseFrontmatter,
|
|
11
11
|
runPrint,
|
|
12
12
|
validateGlobPattern
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-RZO37ZLH.js";
|
|
14
14
|
import {
|
|
15
15
|
helpText,
|
|
16
16
|
parseCliArgs
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
createProvider,
|
|
25
25
|
hasPendingProgrammaticReplay,
|
|
26
26
|
listAllModels
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-GJAX4NCM.js";
|
|
28
28
|
import {
|
|
29
29
|
providerName,
|
|
30
30
|
readGlobalConfigFile
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
import "./chunk-UJH2JT6H.js";
|
|
33
33
|
import {
|
|
34
34
|
runLogin
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-FNBTY56Z.js";
|
|
36
36
|
import {
|
|
37
37
|
Session,
|
|
38
38
|
pruneSessions
|
|
@@ -1056,6 +1056,8 @@ ${completion.text}` });
|
|
|
1056
1056
|
};
|
|
1057
1057
|
this.totalUsage.inputTokens += usage.inputTokens;
|
|
1058
1058
|
this.totalUsage.outputTokens += usage.outputTokens;
|
|
1059
|
+
this.totalUsage.cachedInputTokens = (this.totalUsage.cachedInputTokens ?? 0) + (usage.cachedInputTokens ?? 0);
|
|
1060
|
+
this.totalUsage.cacheWriteTokens = (this.totalUsage.cacheWriteTokens ?? 0) + (usage.cacheWriteTokens ?? 0);
|
|
1059
1061
|
this.lastInputTokens = usage.inputTokens;
|
|
1060
1062
|
this.onEvent({ type: "usage", ...this.totalUsage });
|
|
1061
1063
|
this.push(completionAssistantMessage(completion));
|
|
@@ -1173,6 +1175,8 @@ ${t("This model may not support tool calling. Try another model with /model.")}`
|
|
|
1173
1175
|
addUsage: (u) => {
|
|
1174
1176
|
this.totalUsage.inputTokens += u.inputTokens;
|
|
1175
1177
|
this.totalUsage.outputTokens += u.outputTokens;
|
|
1178
|
+
this.totalUsage.cachedInputTokens = (this.totalUsage.cachedInputTokens ?? 0) + (u.cachedInputTokens ?? 0);
|
|
1179
|
+
this.totalUsage.cacheWriteTokens = (this.totalUsage.cacheWriteTokens ?? 0) + (u.cacheWriteTokens ?? 0);
|
|
1176
1180
|
this.onEvent({ type: "usage", ...this.totalUsage });
|
|
1177
1181
|
}
|
|
1178
1182
|
};
|
|
@@ -1527,7 +1531,7 @@ ${list}`,
|
|
|
1527
1531
|
provider,
|
|
1528
1532
|
tools,
|
|
1529
1533
|
permissions: opts.permissions,
|
|
1530
|
-
systemPrompt: `${opts.systemPrompt}
|
|
1534
|
+
systemPrompt: `${typeof opts.systemPrompt === "function" ? opts.systemPrompt(def.model) : opts.systemPrompt}
|
|
1531
1535
|
|
|
1532
1536
|
# Your role
|
|
1533
1537
|
${def.prompt}`,
|
|
@@ -1658,7 +1662,7 @@ function createRuntime(opts) {
|
|
|
1658
1662
|
permissions,
|
|
1659
1663
|
provider: () => agent.provider,
|
|
1660
1664
|
providerFor: makeProvider,
|
|
1661
|
-
systemPrompt,
|
|
1665
|
+
systemPrompt: (childModelRef) => buildSystemPrompt({ cwd: opts.cwd, home, model: childModelRef ?? modelRef, skills }),
|
|
1662
1666
|
cwd: opts.cwd,
|
|
1663
1667
|
reasoning: () => reasoning
|
|
1664
1668
|
});
|
|
@@ -1741,8 +1745,10 @@ function createRuntime(opts) {
|
|
|
1741
1745
|
return startedAt;
|
|
1742
1746
|
},
|
|
1743
1747
|
setModel(ref) {
|
|
1744
|
-
|
|
1748
|
+
const nextProvider = makeProvider(ref);
|
|
1745
1749
|
modelRef = ref;
|
|
1750
|
+
agent.provider = nextProvider;
|
|
1751
|
+
agent.setSystemPrompt(buildSystemPrompt({ cwd: opts.cwd, home, model: modelRef, skills }));
|
|
1746
1752
|
},
|
|
1747
1753
|
setReasoning(level) {
|
|
1748
1754
|
reasoning = level;
|
|
@@ -1752,7 +1758,7 @@ function createRuntime(opts) {
|
|
|
1752
1758
|
}
|
|
1753
1759
|
|
|
1754
1760
|
// src/version.ts
|
|
1755
|
-
var VERSION = true ? "0.4.0-beta.
|
|
1761
|
+
var VERSION = true ? "0.4.0-beta.33" : "0.0.0-dev";
|
|
1756
1762
|
|
|
1757
1763
|
// src/cli.ts
|
|
1758
1764
|
function chooseLanguage(argv) {
|
|
@@ -1778,16 +1784,16 @@ async function main() {
|
|
|
1778
1784
|
if (args.command === "login") return runLogin(args.loginProvider ?? "bc-cloud", cwd);
|
|
1779
1785
|
if (args.command === "mcp") {
|
|
1780
1786
|
const { runMcpCommand } = await import("./mcpCli-UGNEDBMU.js");
|
|
1781
|
-
const { readSecret } = await import("./login-
|
|
1787
|
+
const { readSecret } = await import("./login-7IARC5WX.js");
|
|
1782
1788
|
return runMcpCommand(args, { env: process.env, cwd, out: (s) => console.log(s), err: (s) => console.error(s), readSecret });
|
|
1783
1789
|
}
|
|
1784
1790
|
if (args.command === "provider") {
|
|
1785
|
-
const { runProviderCommand } = await import("./providerCli-
|
|
1786
|
-
const { readSecret } = await import("./login-
|
|
1791
|
+
const { runProviderCommand } = await import("./providerCli-4JTIW3YA.js");
|
|
1792
|
+
const { readSecret } = await import("./login-7IARC5WX.js");
|
|
1787
1793
|
return runProviderCommand(args, { env: process.env, cwd, out: (s) => console.log(s), err: (s) => console.error(s), readSecret });
|
|
1788
1794
|
}
|
|
1789
1795
|
if (args.command === "connect" || args.command === "disconnect" || args.command === "integrations") {
|
|
1790
|
-
const { runIntegrationCommand } = await import("./integrationCli-
|
|
1796
|
+
const { runIntegrationCommand } = await import("./integrationCli-W5LJQJ4J.js");
|
|
1791
1797
|
return runIntegrationCommand(args, {
|
|
1792
1798
|
env: process.env,
|
|
1793
1799
|
cwd,
|
|
@@ -1823,7 +1829,7 @@ async function main() {
|
|
|
1823
1829
|
}
|
|
1824
1830
|
}
|
|
1825
1831
|
if (!process.stdin.isTTY) throw new ConfigError(t('Interactive mode needs a terminal. For scripts/CI use: bccli -p "task"'));
|
|
1826
|
-
const { startInteractive } = await import("./ui-
|
|
1832
|
+
const { startInteractive } = await import("./ui-562BE26V.js");
|
|
1827
1833
|
return startInteractive(rt, { initialPrompt: args.prompt, resume: args.resume, version: VERSION });
|
|
1828
1834
|
}
|
|
1829
1835
|
main().then(
|
|
@@ -74,7 +74,7 @@ function readState(target, env) {
|
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
76
|
async function botConnectorModels(deps) {
|
|
77
|
-
const config = loadConfig(deps.cwd);
|
|
77
|
+
const config = loadConfig(deps.cwd, deps.env);
|
|
78
78
|
const resolved = resolveModel(config, config.model, deps.env);
|
|
79
79
|
const key = readCredentials(deps.env)["bc-cloud"] || resolved.apiKey;
|
|
80
80
|
if (!key) throw new ConfigError(t("No BotConnector API key yet. Run bccli login bc-cloud first."));
|
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
parseFrontmatter,
|
|
8
8
|
toolLabel,
|
|
9
9
|
validateGlobPattern
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-RZO37ZLH.js";
|
|
11
11
|
import {
|
|
12
12
|
nextMode
|
|
13
13
|
} from "./chunk-ELML4KVQ.js";
|
|
@@ -177,6 +177,7 @@ function statusText(s) {
|
|
|
177
177
|
t("Folder: {cwd}", { cwd: s.cwd }),
|
|
178
178
|
t("MCP: {ready} active, {errors} errors", { ready, errors }),
|
|
179
179
|
t("Session tokens: {input} in \xB7 {output} out", { input: k(s.usage.inputTokens), output: k(s.usage.outputTokens) }),
|
|
180
|
+
`Cache: ${k(s.usage.cachedInputTokens ?? 0)} read \xB7 ${k(s.usage.cacheWriteTokens ?? 0)} write`,
|
|
180
181
|
t("Context: ~{pct}% of 128k", { pct: Math.round(s.lastInputTokens / 128e3 * 100) })
|
|
181
182
|
].join("\n");
|
|
182
183
|
}
|