vaan-ai 0.1.0 → 0.1.2
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/README.md +14 -6
- package/dist/src/agent.js +13 -18
- package/dist/src/agent.js.map +1 -1
- package/dist/src/cli/main.js +2 -1
- package/dist/src/cli/main.js.map +1 -1
- package/dist/src/cli/repl.js +124 -52
- package/dist/src/cli/repl.js.map +1 -1
- package/dist/src/cli/spinner.js +55 -0
- package/dist/src/cli/spinner.js.map +1 -0
- package/dist/src/cli/theme.js +88 -0
- package/dist/src/cli/theme.js.map +1 -0
- package/dist/src/cli/wizard.js +23 -6
- package/dist/src/cli/wizard.js.map +1 -1
- package/dist/src/http.js +2 -65
- package/dist/src/http.js.map +1 -1
- package/dist/src/invocation.js +29 -0
- package/dist/src/invocation.js.map +1 -0
- package/dist/src/providers/anthropic.js +1 -122
- package/dist/src/providers/anthropic.js.map +1 -1
- package/dist/src/providers/google.js +1 -71
- package/dist/src/providers/google.js.map +1 -1
- package/dist/src/providers/index.js +2 -1
- package/dist/src/providers/index.js.map +1 -1
- package/dist/src/providers/ollama.js +0 -8
- package/dist/src/providers/ollama.js.map +1 -1
- package/dist/src/providers/openai.js +2 -84
- package/dist/src/providers/openai.js.map +1 -1
- package/dist/src/providers/shared.js +0 -17
- package/dist/src/providers/shared.js.map +1 -1
- package/dist/src/tools/files.js +40 -9
- package/dist/src/tools/files.js.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Colour and glyphs for the REPL.
|
|
2
|
+
//
|
|
3
|
+
// One rule: everything degrades. Piped into a file, read by a screen reader,
|
|
4
|
+
// or running under NO_COLOR, the output must still be readable text — so colour
|
|
5
|
+
// is only ever decoration on top of a line that already says what it means. A
|
|
6
|
+
// tool call prints its name whether or not the dot before it is green.
|
|
7
|
+
//
|
|
8
|
+
// 256-colour rather than truecolor: the palette below is close enough at 8-bit,
|
|
9
|
+
// and 256 is supported by every terminal anyone still uses, including tmux and
|
|
10
|
+
// Windows Terminal without extra configuration.
|
|
11
|
+
const code = (value) => (text) => `[${value}m${text}[0m`;
|
|
12
|
+
const COLOUR = {
|
|
13
|
+
lime: code("38;5;149"),
|
|
14
|
+
bright: code("38;5;255"),
|
|
15
|
+
dim: code("38;5;243"),
|
|
16
|
+
faint: code("38;5;239"),
|
|
17
|
+
red: code("38;5;210"),
|
|
18
|
+
bold: code("1"),
|
|
19
|
+
};
|
|
20
|
+
const PLAIN = {
|
|
21
|
+
lime: (text) => text,
|
|
22
|
+
bright: (text) => text,
|
|
23
|
+
dim: (text) => text,
|
|
24
|
+
faint: (text) => text,
|
|
25
|
+
red: (text) => text,
|
|
26
|
+
bold: (text) => text,
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Colour when there's a terminal to colour, plain text otherwise.
|
|
30
|
+
*
|
|
31
|
+
* `NO_COLOR` is honoured whatever its value — that's the convention, and the
|
|
32
|
+
* people who set it mean it.
|
|
33
|
+
*/
|
|
34
|
+
export function createTheme(opts = {}) {
|
|
35
|
+
const env = opts.env ?? process.env;
|
|
36
|
+
const on = (opts.isTTY ?? process.stdout.isTTY ?? false) &&
|
|
37
|
+
env.NO_COLOR === undefined &&
|
|
38
|
+
env.TERM !== "dumb";
|
|
39
|
+
return { ...(on ? COLOUR : PLAIN), enabled: on };
|
|
40
|
+
}
|
|
41
|
+
/** Marks a step the agent took. */
|
|
42
|
+
export const STEP = "⏺";
|
|
43
|
+
/** Marks something waiting on you. */
|
|
44
|
+
export const ASK = "⚠";
|
|
45
|
+
/** Separates facts on one line. */
|
|
46
|
+
export const DOT = "·";
|
|
47
|
+
/** `1.2s`, `340ms` — whichever reads better at that magnitude. */
|
|
48
|
+
export const duration = (ms) => ms < 1000 ? `${Math.round(ms)}ms` : `${(ms / 1000).toFixed(1)}s`;
|
|
49
|
+
/** `12.4k`, `940` — token counts, short enough for a status line. */
|
|
50
|
+
export const tokens = (count) => count < 1000 ? `${count}` : `${(count / 1000).toFixed(1)}k`;
|
|
51
|
+
export const clip = (text, max) => {
|
|
52
|
+
const line = text.replace(/\s+/g, " ").trim();
|
|
53
|
+
return line.length <= max ? line : `${line.slice(0, max - 1)}…`;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* The most useful thing about a tool call, in a few characters.
|
|
57
|
+
*
|
|
58
|
+
* Which argument that is depends on the tool, and guessing by position would
|
|
59
|
+
* be wrong as soon as a tool grew an option. These are the arguments worth
|
|
60
|
+
* showing, in the order they're worth showing.
|
|
61
|
+
*/
|
|
62
|
+
const INTERESTING = ["path", "query", "command", "url", "fact", "old_text"];
|
|
63
|
+
export function describeInput(input) {
|
|
64
|
+
if (input === null || typeof input !== "object")
|
|
65
|
+
return "";
|
|
66
|
+
const record = input;
|
|
67
|
+
for (const key of INTERESTING) {
|
|
68
|
+
const value = record[key];
|
|
69
|
+
if (typeof value === "string" && value.trim())
|
|
70
|
+
return clip(value, 46);
|
|
71
|
+
}
|
|
72
|
+
return "";
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* What a tool result amounts to. Short output speaks for itself; long output
|
|
76
|
+
* gets counted, because forty lines of a file scrolling past is not a summary.
|
|
77
|
+
*/
|
|
78
|
+
export function summariseOutput(output) {
|
|
79
|
+
const trimmed = output.trim();
|
|
80
|
+
if (!trimmed)
|
|
81
|
+
return "no output";
|
|
82
|
+
const lines = trimmed.split("\n");
|
|
83
|
+
const first = lines[0] ?? "";
|
|
84
|
+
if (lines.length === 1)
|
|
85
|
+
return clip(first, 56);
|
|
86
|
+
return `${lines.length} lines`;
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=theme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/cli/theme.ts"],"names":[],"mappings":"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"}
|
package/dist/src/cli/wizard.js
CHANGED
|
@@ -20,9 +20,10 @@ import { GUARDRAILS_FILE, SOUL_FILE, skillsDir } from "../paths.js";
|
|
|
20
20
|
import { DEFAULT_GUARDRAILS, DEFAULT_SOUL } from "../prompt.js";
|
|
21
21
|
import { build, isShape, registry, SHAPES } from "../providers/index.js";
|
|
22
22
|
import { GROUPS } from "../tools/index.js";
|
|
23
|
+
import { INSTALL_HINT, launchCommand, viaNpx } from "../invocation.js";
|
|
23
24
|
import { updateEnvFile } from "./dotenv.js";
|
|
24
25
|
import { CUSTOM_NOTE, DEFAULT_MODEL, SUGGESTED } from "./suggested.js";
|
|
25
|
-
export const VERSION = "0.1.
|
|
26
|
+
export const VERSION = "0.1.2";
|
|
26
27
|
export async function runWizard(opts) {
|
|
27
28
|
const out = process.stdout;
|
|
28
29
|
out.write(`\n Vaan ${VERSION}\n\n`);
|
|
@@ -69,7 +70,7 @@ export async function runWizard(opts) {
|
|
|
69
70
|
const problem = await healthCheck(config.model, opts.env);
|
|
70
71
|
if (problem) {
|
|
71
72
|
out.write(`\n\n That call failed:\n ${problem}\n\n`);
|
|
72
|
-
out.write(
|
|
73
|
+
out.write(` Fix it and run \`${launchCommand()} init\` again.\n\n`);
|
|
73
74
|
return undefined;
|
|
74
75
|
}
|
|
75
76
|
out.write("ok\n");
|
|
@@ -206,7 +207,7 @@ async function askKey(rl, out, opts, workspace, spec) {
|
|
|
206
207
|
out.write(`\n Selected model: ${spec}\n`);
|
|
207
208
|
const key = await askSecret(rl, out, `\n ${label(name)} API key ? `);
|
|
208
209
|
if (!key) {
|
|
209
|
-
out.write(
|
|
210
|
+
out.write(`\n No key, no calls. Set it and run \`${launchCommand()} init\` again.\n\n`);
|
|
210
211
|
return false;
|
|
211
212
|
}
|
|
212
213
|
opts.env[found.envKey] = key;
|
|
@@ -307,6 +308,10 @@ function ready(out, config) {
|
|
|
307
308
|
out.write(` Memory: ${config.memory ? "enabled" : "disabled"}\n`);
|
|
308
309
|
out.write(` Sandbox: ${config.sandbox.name}\n`);
|
|
309
310
|
out.write(` Tools: ${config.tools.join(", ")}\n\n`);
|
|
311
|
+
// Nothing is on PATH after npx, and finding that out tomorrow is worse than
|
|
312
|
+
// finding it out now.
|
|
313
|
+
if (viaNpx())
|
|
314
|
+
out.write(` ${INSTALL_HINT}\n\n`);
|
|
310
315
|
}
|
|
311
316
|
/** One small call, so a bad key fails here instead of three turns into a REPL. */
|
|
312
317
|
async function healthCheck(spec, env) {
|
|
@@ -329,14 +334,26 @@ async function healthCheck(spec, env) {
|
|
|
329
334
|
return err instanceof Error ? err.message : String(err);
|
|
330
335
|
}
|
|
331
336
|
}
|
|
332
|
-
/**
|
|
337
|
+
/**
|
|
338
|
+
* readline has no built-in masking; suppressing its echo is the usual trick.
|
|
339
|
+
*
|
|
340
|
+
* The order below is load-bearing. Writing the prompt with `out.write` and then
|
|
341
|
+
* calling `rl.question("")` looks equivalent and is not: `question` sets the
|
|
342
|
+
* prompt, refreshes the line — `ESC[1G ESC[0J`, cursor to column one and clear
|
|
343
|
+
* — and so erases the prompt that was just written. The user gets a blank line
|
|
344
|
+
* and no idea they are being asked for a key.
|
|
345
|
+
*
|
|
346
|
+
* So `question` prints the prompt itself, and masking goes on immediately
|
|
347
|
+
* after. `question` writes synchronously before it returns its promise, which
|
|
348
|
+
* is what makes that safe.
|
|
349
|
+
*/
|
|
333
350
|
async function askSecret(rl, out, prompt) {
|
|
334
|
-
|
|
351
|
+
const pending = rl.question(prompt);
|
|
335
352
|
const internals = rl;
|
|
336
353
|
const original = internals._writeToOutput;
|
|
337
354
|
internals._writeToOutput = () => { };
|
|
338
355
|
try {
|
|
339
|
-
return (await
|
|
356
|
+
return (await pending).trim();
|
|
340
357
|
}
|
|
341
358
|
finally {
|
|
342
359
|
internals._writeToOutput = original;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../../src/cli/wizard.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wizard.js","sourceRoot":"","sources":["../../../src/cli/wizard.ts"],"names":[],"mappings":"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"}
|
package/dist/src/http.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
// One POST with backoff
|
|
2
|
-
//
|
|
3
|
-
// at, and so there is one place that knows how to read a server-sent stream.
|
|
1
|
+
// One POST with backoff. Every adapter goes through here so retry behaviour is
|
|
2
|
+
// identical no matter which endpoint Vaan is pointed at.
|
|
4
3
|
const RETRIES = 4;
|
|
5
4
|
const BASE_DELAY_MS = 500;
|
|
6
5
|
export class HttpError extends Error {
|
|
@@ -49,68 +48,6 @@ export async function postJson(url, opts) {
|
|
|
49
48
|
: (lastError?.error ??
|
|
50
49
|
new Error(`POST ${url} failed after ${RETRIES + 1} attempts`));
|
|
51
50
|
}
|
|
52
|
-
/**
|
|
53
|
-
* POST and read the response as server-sent events.
|
|
54
|
-
*
|
|
55
|
-
* Deliberately not retried. A stream that failed halfway has already handed the
|
|
56
|
-
* caller half a turn, and replaying it from the top would duplicate whatever
|
|
57
|
-
* was already yielded. The caller falls back to `generate` instead.
|
|
58
|
-
*/
|
|
59
|
-
export async function* postSse(url, opts) {
|
|
60
|
-
const response = await fetch(url, {
|
|
61
|
-
method: "POST",
|
|
62
|
-
headers: { "content-type": "application/json", accept: "text/event-stream", ...opts.headers },
|
|
63
|
-
body: JSON.stringify(opts.body),
|
|
64
|
-
signal: opts.signal,
|
|
65
|
-
});
|
|
66
|
-
if (!response.ok) {
|
|
67
|
-
throw new HttpError(response.status, await response.text().catch(() => ""), url);
|
|
68
|
-
}
|
|
69
|
-
if (!response.body)
|
|
70
|
-
throw new Error(`${new URL(url).host} sent no body to stream.`);
|
|
71
|
-
const decoder = new TextDecoder();
|
|
72
|
-
let buffer = "";
|
|
73
|
-
for await (const chunk of response.body) {
|
|
74
|
-
buffer += decoder.decode(chunk, { stream: true });
|
|
75
|
-
// Frames are separated by a blank line. Anything after the last one is a
|
|
76
|
-
// partial frame and stays in the buffer until the rest of it arrives.
|
|
77
|
-
let split = buffer.indexOf("\n\n");
|
|
78
|
-
while (split !== -1) {
|
|
79
|
-
const frame = parseFrame(buffer.slice(0, split));
|
|
80
|
-
buffer = buffer.slice(split + 2);
|
|
81
|
-
if (frame)
|
|
82
|
-
yield frame;
|
|
83
|
-
split = buffer.indexOf("\n\n");
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
const last = parseFrame(buffer);
|
|
87
|
-
if (last)
|
|
88
|
-
yield last;
|
|
89
|
-
}
|
|
90
|
-
function parseFrame(raw) {
|
|
91
|
-
let event;
|
|
92
|
-
const data = [];
|
|
93
|
-
for (const line of raw.split("\n")) {
|
|
94
|
-
if (line.startsWith("event:"))
|
|
95
|
-
event = line.slice(6).trim();
|
|
96
|
-
else if (line.startsWith("data:"))
|
|
97
|
-
data.push(line.slice(5).trim());
|
|
98
|
-
}
|
|
99
|
-
if (data.length === 0)
|
|
100
|
-
return undefined;
|
|
101
|
-
return { ...(event ? { event } : {}), data: data.join("\n") };
|
|
102
|
-
}
|
|
103
|
-
/** SSE payloads are JSON, except when they're a sentinel like `[DONE]`. */
|
|
104
|
-
export function parseFrameData(data) {
|
|
105
|
-
if (data === "[DONE]")
|
|
106
|
-
return undefined;
|
|
107
|
-
try {
|
|
108
|
-
return JSON.parse(data);
|
|
109
|
-
}
|
|
110
|
-
catch {
|
|
111
|
-
return undefined;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
51
|
const isRetryable = (status) => status === 429 || status >= 500;
|
|
115
52
|
/** Honour Retry-After when the server sends one; otherwise exponential + jitter. */
|
|
116
53
|
function backoffMs(attempt, last) {
|
package/dist/src/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// How Vaan was launched, so error messages tell you something that works.
|
|
2
|
+
//
|
|
3
|
+
// `npx vaan-ai` runs the CLI out of a temporary cache directory and puts
|
|
4
|
+
// nothing on your PATH. Telling that user to "run `vaan init` again" sends them
|
|
5
|
+
// straight to `command not found`, which is the first thing anyone trying Vaan
|
|
6
|
+
// for the first time would hit. So messages ask here rather than assuming.
|
|
7
|
+
import { sep } from "node:path";
|
|
8
|
+
export const PACKAGE = "vaan-ai";
|
|
9
|
+
export const COMMAND = "vaan";
|
|
10
|
+
/** True when this process was started by `npx` / `npm exec`. */
|
|
11
|
+
export function viaNpx(argv = process.argv, env = process.env) {
|
|
12
|
+
// npx resolves the bin inside <cache>/_npx/<hash>/node_modules/.bin.
|
|
13
|
+
const script = argv[1] ?? "";
|
|
14
|
+
if (script.includes(`${sep}_npx${sep}`) || script.includes("/_npx/"))
|
|
15
|
+
return true;
|
|
16
|
+
// Belt and braces: npm sets this for `npm exec`, which is what npx now is.
|
|
17
|
+
return env.npm_command === "exec";
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* What to type to run Vaan again — `vaan` when it's installed, the full
|
|
21
|
+
* `npx vaan-ai` when it isn't.
|
|
22
|
+
*/
|
|
23
|
+
export function launchCommand(argv = process.argv, env = process.env) {
|
|
24
|
+
return viaNpx(argv, env) ? `npx ${PACKAGE}` : COMMAND;
|
|
25
|
+
}
|
|
26
|
+
/** Shown once setup finishes, when `vaan` won't be there next time. */
|
|
27
|
+
export const INSTALL_HINT = `You ran this with npx, so \`${COMMAND}\` isn't on your PATH — next time it's ` +
|
|
28
|
+
`\`npx ${PACKAGE}\` again.\n To keep it: npm install -g ${PACKAGE}`;
|
|
29
|
+
//# sourceMappingURL=invocation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"invocation.js","sourceRoot":"","sources":["../../src/invocation.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,yEAAyE;AACzE,gFAAgF;AAChF,+EAA+E;AAC/E,2EAA2E;AAE3E,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAC;AAE9B,gEAAgE;AAChE,MAAM,UAAU,MAAM,CAAC,OAAiB,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG;IACrE,qEAAqE;IACrE,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,GAAG,OAAO,GAAG,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAClF,2EAA2E;IAC3E,OAAO,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAiB,OAAO,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG;IAC5E,OAAO,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AACxD,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,MAAM,YAAY,GACvB,+BAA+B,OAAO,yCAAyC;IAC/E,SAAS,OAAO,2CAA2C,OAAO,EAAE,CAAC"}
|
|
@@ -6,8 +6,7 @@
|
|
|
6
6
|
// by newer ones. So we send the minimal valid body and handle whatever comes
|
|
7
7
|
// back. Thinking blocks still arrive unrequested on models where reasoning is
|
|
8
8
|
// always on, which is exactly why GUARD 1 exists.
|
|
9
|
-
import { postJson
|
|
10
|
-
import { fallbackStream } from "./shared.js";
|
|
9
|
+
import { postJson } from "../http.js";
|
|
11
10
|
const API_VERSION = "2023-06-01";
|
|
12
11
|
export function anthropicProvider(opts) {
|
|
13
12
|
const generate = async (req) => {
|
|
@@ -22,9 +21,6 @@ export function anthropicProvider(opts) {
|
|
|
22
21
|
name: opts.name,
|
|
23
22
|
...(opts.envKey ? { envKey: opts.envKey } : {}),
|
|
24
23
|
generate,
|
|
25
|
-
stream(req) {
|
|
26
|
-
return streamMessages(opts, req, generate);
|
|
27
|
-
},
|
|
28
24
|
};
|
|
29
25
|
}
|
|
30
26
|
const headers = (apiKey) => ({
|
|
@@ -113,121 +109,4 @@ function toStopReason(reason) {
|
|
|
113
109
|
return "done";
|
|
114
110
|
}
|
|
115
111
|
}
|
|
116
|
-
/**
|
|
117
|
-
* Reassemble a streamed turn into exactly the shape `generate` returns.
|
|
118
|
-
*
|
|
119
|
-
* The reassembled block list becomes `raw`, so GUARD 1 holds for streamed turns
|
|
120
|
-
* too: thinking blocks go back with their signatures intact. If the stream
|
|
121
|
-
* fails before the first event we fall back to the non-streaming call, because
|
|
122
|
-
* an error at that point cost the caller nothing.
|
|
123
|
-
*/
|
|
124
|
-
async function* streamMessages(opts, req, generate) {
|
|
125
|
-
const blocks = [];
|
|
126
|
-
let stopReason;
|
|
127
|
-
let usage;
|
|
128
|
-
let yielded = false;
|
|
129
|
-
let frames;
|
|
130
|
-
try {
|
|
131
|
-
frames = postSse(`${opts.baseUrl}/v1/messages`, {
|
|
132
|
-
headers: headers(opts.apiKey),
|
|
133
|
-
body: wireBody(req, true),
|
|
134
|
-
...(req.signal ? { signal: req.signal } : {}),
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
catch {
|
|
138
|
-
yield* fallbackStream(generate, req);
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
try {
|
|
142
|
-
for await (const frame of frames) {
|
|
143
|
-
const payload = parseFrameData(frame.data);
|
|
144
|
-
if (!payload)
|
|
145
|
-
continue;
|
|
146
|
-
switch (payload.type) {
|
|
147
|
-
case "message_start":
|
|
148
|
-
if (payload.message?.usage) {
|
|
149
|
-
usage = {
|
|
150
|
-
input: payload.message.usage.input_tokens ?? 0,
|
|
151
|
-
output: payload.message.usage.output_tokens ?? 0,
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
break;
|
|
155
|
-
case "content_block_start":
|
|
156
|
-
if (payload.index !== undefined && payload.content_block) {
|
|
157
|
-
blocks[payload.index] = { ...payload.content_block, json: "" };
|
|
158
|
-
}
|
|
159
|
-
break;
|
|
160
|
-
case "content_block_delta": {
|
|
161
|
-
const block = payload.index === undefined ? undefined : blocks[payload.index];
|
|
162
|
-
if (!block || !payload.delta)
|
|
163
|
-
break;
|
|
164
|
-
const delta = payload.delta;
|
|
165
|
-
if (delta.type === "text_delta" && delta.text) {
|
|
166
|
-
block.text = (block.text ?? "") + delta.text;
|
|
167
|
-
yielded = true;
|
|
168
|
-
yield { type: "text", text: delta.text };
|
|
169
|
-
}
|
|
170
|
-
else if (delta.type === "input_json_delta" && delta.partial_json !== undefined) {
|
|
171
|
-
block.json = (block.json ?? "") + delta.partial_json;
|
|
172
|
-
}
|
|
173
|
-
else if (delta.type === "thinking_delta" && delta.thinking) {
|
|
174
|
-
block.thinking = (block.thinking ?? "") + delta.thinking;
|
|
175
|
-
}
|
|
176
|
-
else if (delta.type === "signature_delta" && delta.signature) {
|
|
177
|
-
block.signature = (block.signature ?? "") + delta.signature;
|
|
178
|
-
}
|
|
179
|
-
break;
|
|
180
|
-
}
|
|
181
|
-
case "content_block_stop": {
|
|
182
|
-
const block = payload.index === undefined ? undefined : blocks[payload.index];
|
|
183
|
-
if (block?.type === "tool_use" && block.id && block.name) {
|
|
184
|
-
block.input = block.json ? safeJson(block.json) : {};
|
|
185
|
-
yielded = true;
|
|
186
|
-
yield { type: "tool_call", id: block.id, name: block.name, input: block.input };
|
|
187
|
-
}
|
|
188
|
-
break;
|
|
189
|
-
}
|
|
190
|
-
case "message_delta":
|
|
191
|
-
if (payload.delta?.stop_reason)
|
|
192
|
-
stopReason = payload.delta.stop_reason;
|
|
193
|
-
if (payload.usage?.output_tokens !== undefined && usage) {
|
|
194
|
-
usage.output = payload.usage.output_tokens;
|
|
195
|
-
}
|
|
196
|
-
break;
|
|
197
|
-
default:
|
|
198
|
-
break; // ping, message_stop, and anything added later.
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
catch (err) {
|
|
203
|
-
// Nothing has been handed over yet, so starting again is safe and invisible.
|
|
204
|
-
if (!yielded) {
|
|
205
|
-
yield* fallbackStream(generate, req);
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
throw err;
|
|
209
|
-
}
|
|
210
|
-
const finished = blocks.filter((block) => block !== undefined).map(strip);
|
|
211
|
-
yield {
|
|
212
|
-
type: "done",
|
|
213
|
-
reply: {
|
|
214
|
-
message: { role: "assistant", parts: partsOf(finished), raw: finished },
|
|
215
|
-
stop: toStopReason(stopReason),
|
|
216
|
-
...(usage ? { usage } : {}),
|
|
217
|
-
},
|
|
218
|
-
};
|
|
219
|
-
}
|
|
220
|
-
/** Drop the accumulator before the block goes back to the API as `raw`. */
|
|
221
|
-
function strip(block) {
|
|
222
|
-
const { json: _json, ...rest } = block;
|
|
223
|
-
return rest;
|
|
224
|
-
}
|
|
225
|
-
function safeJson(text) {
|
|
226
|
-
try {
|
|
227
|
-
return JSON.parse(text);
|
|
228
|
-
}
|
|
229
|
-
catch {
|
|
230
|
-
return {};
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
112
|
//# sourceMappingURL=anthropic.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/providers/anthropic.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,+EAA+E;AAC/E,6EAA6E;AAC7E,8EAA8E;AAC9E,kDAAkD;AAElD,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/providers/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,8 +9,7 @@
|
|
|
9
9
|
// way back — Gemini matches a `functionResponse` by name, not by id.
|
|
10
10
|
// 3. An OBJECT schema with no properties is rejected, so a no-argument tool
|
|
11
11
|
// ships without a `parameters` field at all.
|
|
12
|
-
import {
|
|
13
|
-
import { fallbackStream } from "./shared.js";
|
|
12
|
+
import { postJson } from "../http.js";
|
|
14
13
|
/** Separator for synthesised call ids. Not legal in a tool name, so it round-trips. */
|
|
15
14
|
const ID_SEPARATOR = "::";
|
|
16
15
|
export function googleProvider(opts) {
|
|
@@ -26,9 +25,6 @@ export function googleProvider(opts) {
|
|
|
26
25
|
name: opts.name,
|
|
27
26
|
...(opts.envKey ? { envKey: opts.envKey } : {}),
|
|
28
27
|
generate,
|
|
29
|
-
stream(req) {
|
|
30
|
-
return streamContent(opts, req, generate);
|
|
31
|
-
},
|
|
32
28
|
};
|
|
33
29
|
}
|
|
34
30
|
// The key goes in a header rather than the query string: a URL ends up in
|
|
@@ -128,70 +124,4 @@ function toStopReason(reason, parts) {
|
|
|
128
124
|
}
|
|
129
125
|
}
|
|
130
126
|
const isWireContent = (value) => typeof value === "object" && value !== null && "parts" in value;
|
|
131
|
-
// ---------------------------------------------------------------------------
|
|
132
|
-
// Streaming.
|
|
133
|
-
/**
|
|
134
|
-
* `?alt=sse` sends whole candidate chunks rather than field-level deltas, so
|
|
135
|
-
* reassembly is concatenation: text accumulates, and function calls arrive
|
|
136
|
-
* complete in a single chunk.
|
|
137
|
-
*/
|
|
138
|
-
async function* streamContent(opts, req, generate) {
|
|
139
|
-
const collected = [];
|
|
140
|
-
let finish;
|
|
141
|
-
let usage;
|
|
142
|
-
let yielded = false;
|
|
143
|
-
try {
|
|
144
|
-
const frames = postSse(endpoint(opts, req.model, "streamGenerateContent"), {
|
|
145
|
-
headers: keyHeader(opts.apiKey),
|
|
146
|
-
body: wireBody(req),
|
|
147
|
-
...(req.signal ? { signal: req.signal } : {}),
|
|
148
|
-
});
|
|
149
|
-
for await (const frame of frames) {
|
|
150
|
-
const chunk = parseFrameData(frame.data);
|
|
151
|
-
if (!chunk)
|
|
152
|
-
continue;
|
|
153
|
-
if (chunk.usageMetadata) {
|
|
154
|
-
usage = {
|
|
155
|
-
input: chunk.usageMetadata.promptTokenCount ?? 0,
|
|
156
|
-
output: chunk.usageMetadata.candidatesTokenCount ?? 0,
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
const candidate = chunk.candidates?.[0];
|
|
160
|
-
if (candidate?.finishReason)
|
|
161
|
-
finish = candidate.finishReason;
|
|
162
|
-
for (const wire of candidate?.content?.parts ?? []) {
|
|
163
|
-
collected.push(wire);
|
|
164
|
-
if (wire.text) {
|
|
165
|
-
yielded = true;
|
|
166
|
-
yield { type: "text", text: wire.text };
|
|
167
|
-
}
|
|
168
|
-
else if (wire.functionCall?.name) {
|
|
169
|
-
yielded = true;
|
|
170
|
-
yield {
|
|
171
|
-
type: "tool_call",
|
|
172
|
-
id: `${wire.functionCall.name}${ID_SEPARATOR}${collected.length - 1}`,
|
|
173
|
-
name: wire.functionCall.name,
|
|
174
|
-
input: wire.functionCall.args ?? {},
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
catch (err) {
|
|
181
|
-
if (!yielded) {
|
|
182
|
-
yield* fallbackStream(generate, req);
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
throw err;
|
|
186
|
-
}
|
|
187
|
-
const parts = partsOf(collected);
|
|
188
|
-
yield {
|
|
189
|
-
type: "done",
|
|
190
|
-
reply: {
|
|
191
|
-
message: { role: "assistant", parts, raw: { parts: collected, role: "model" } },
|
|
192
|
-
stop: toStopReason(finish, parts),
|
|
193
|
-
...(usage ? { usage } : {}),
|
|
194
|
-
},
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
127
|
//# sourceMappingURL=google.js.map
|