@nodetool-ai/runtime 0.8.2 → 0.8.3
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/.nodetool-build-stamp +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +3 -2
- package/dist/context.js.map +1 -1
- package/dist/image-model-tasks.d.ts +20 -0
- package/dist/image-model-tasks.d.ts.map +1 -1
- package/dist/image-model-tasks.js +44 -1
- package/dist/image-model-tasks.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/prompt-asset-refs.d.ts +12 -1
- package/dist/prompt-asset-refs.d.ts.map +1 -1
- package/dist/prompt-asset-refs.js +9 -4
- package/dist/prompt-asset-refs.js.map +1 -1
- package/dist/providers/api-route-provider.d.ts +22 -0
- package/dist/providers/api-route-provider.d.ts.map +1 -0
- package/dist/providers/api-route-provider.js +56 -0
- package/dist/providers/api-route-provider.js.map +1 -0
- package/dist/providers/base-provider.d.ts.map +1 -1
- package/dist/providers/base-provider.js +22 -3
- package/dist/providers/base-provider.js.map +1 -1
- package/dist/providers/chatgpt-provider.d.ts +48 -0
- package/dist/providers/chatgpt-provider.d.ts.map +1 -0
- package/dist/providers/chatgpt-provider.js +506 -0
- package/dist/providers/chatgpt-provider.js.map +1 -0
- package/dist/providers/context-window.d.ts.map +1 -1
- package/dist/providers/context-window.js +1 -0
- package/dist/providers/context-window.js.map +1 -1
- package/dist/providers/cost-calculator.d.ts.map +1 -1
- package/dist/providers/cost-calculator.js +9 -0
- package/dist/providers/cost-calculator.js.map +1 -1
- package/dist/providers/credential-check.d.ts +8 -0
- package/dist/providers/credential-check.d.ts.map +1 -1
- package/dist/providers/credential-check.js +22 -0
- package/dist/providers/credential-check.js.map +1 -1
- package/dist/providers/custom-openai-provider.d.ts.map +1 -1
- package/dist/providers/custom-openai-provider.js +19 -1
- package/dist/providers/custom-openai-provider.js.map +1 -1
- package/dist/providers/dreamina-provider.d.ts +5 -3
- package/dist/providers/dreamina-provider.d.ts.map +1 -1
- package/dist/providers/dreamina-provider.js +245 -34
- package/dist/providers/dreamina-provider.js.map +1 -1
- package/dist/providers/extension-tab.d.ts +29 -0
- package/dist/providers/extension-tab.d.ts.map +1 -0
- package/dist/providers/extension-tab.js +144 -0
- package/dist/providers/extension-tab.js.map +1 -0
- package/dist/providers/fake-provider.d.ts +3 -1
- package/dist/providers/fake-provider.d.ts.map +1 -1
- package/dist/providers/fake-provider.js +63 -9
- package/dist/providers/fake-provider.js.map +1 -1
- package/dist/providers/fake-schema-answer.d.ts +10 -0
- package/dist/providers/fake-schema-answer.d.ts.map +1 -0
- package/dist/providers/fake-schema-answer.js +64 -0
- package/dist/providers/fake-schema-answer.js.map +1 -0
- package/dist/providers/fal-provider.d.ts.map +1 -1
- package/dist/providers/fal-provider.js +5 -2
- package/dist/providers/fal-provider.js.map +1 -1
- package/dist/providers/gemini-web-provider.d.ts +76 -0
- package/dist/providers/gemini-web-provider.d.ts.map +1 -0
- package/dist/providers/gemini-web-provider.js +752 -0
- package/dist/providers/gemini-web-provider.js.map +1 -0
- package/dist/providers/huggingface-provider.d.ts.map +1 -1
- package/dist/providers/huggingface-provider.js +17 -1
- package/dist/providers/huggingface-provider.js.map +1 -1
- package/dist/providers/index.d.ts +10 -2
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +36 -8
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/llama-provider.d.ts +8 -0
- package/dist/providers/llama-provider.d.ts.map +1 -1
- package/dist/providers/llama-provider.js +23 -5
- package/dist/providers/llama-provider.js.map +1 -1
- package/dist/providers/lmstudio-provider.js +2 -2
- package/dist/providers/lmstudio-provider.js.map +1 -1
- package/dist/providers/manifest-models.d.ts +2 -12
- package/dist/providers/manifest-models.d.ts.map +1 -1
- package/dist/providers/manifest-models.js +45 -3
- package/dist/providers/manifest-models.js.map +1 -1
- package/dist/providers/meta-provider.d.ts +53 -6
- package/dist/providers/meta-provider.d.ts.map +1 -1
- package/dist/providers/meta-provider.js +289 -6
- package/dist/providers/meta-provider.js.map +1 -1
- package/dist/providers/meta-segmentation.d.ts +27 -0
- package/dist/providers/meta-segmentation.d.ts.map +1 -0
- package/dist/providers/meta-segmentation.js +141 -0
- package/dist/providers/meta-segmentation.js.map +1 -0
- package/dist/providers/meta-transcription.d.ts +31 -0
- package/dist/providers/meta-transcription.d.ts.map +1 -0
- package/dist/providers/meta-transcription.js +187 -0
- package/dist/providers/meta-transcription.js.map +1 -0
- package/dist/providers/node-llama-cpp-provider.d.ts +6 -3
- package/dist/providers/node-llama-cpp-provider.d.ts.map +1 -1
- package/dist/providers/node-llama-cpp-provider.js +75 -58
- package/dist/providers/node-llama-cpp-provider.js.map +1 -1
- package/dist/providers/ollama-provider.d.ts +23 -0
- package/dist/providers/ollama-provider.d.ts.map +1 -1
- package/dist/providers/ollama-provider.js +140 -27
- package/dist/providers/ollama-provider.js.map +1 -1
- package/dist/providers/openai-compat/client.d.ts +10 -1
- package/dist/providers/openai-compat/client.d.ts.map +1 -1
- package/dist/providers/openai-compat/client.js +21 -3
- package/dist/providers/openai-compat/client.js.map +1 -1
- package/dist/providers/openai-compat/index.d.ts +1 -1
- package/dist/providers/openai-compat/index.d.ts.map +1 -1
- package/dist/providers/openai-compat/index.js +1 -1
- package/dist/providers/openai-compat/index.js.map +1 -1
- package/dist/providers/openai-compat/types.d.ts +4 -0
- package/dist/providers/openai-compat/types.d.ts.map +1 -1
- package/dist/providers/openai-compat-provider.d.ts +11 -0
- package/dist/providers/openai-compat-provider.d.ts.map +1 -1
- package/dist/providers/openai-compat-provider.js +47 -2
- package/dist/providers/openai-compat-provider.js.map +1 -1
- package/dist/providers/openai-provider.d.ts +13 -0
- package/dist/providers/openai-provider.d.ts.map +1 -1
- package/dist/providers/openai-provider.js +41 -7
- package/dist/providers/openai-provider.js.map +1 -1
- package/dist/providers/opper-provider.d.ts +31 -0
- package/dist/providers/opper-provider.d.ts.map +1 -0
- package/dist/providers/opper-provider.js +91 -0
- package/dist/providers/opper-provider.js.map +1 -0
- package/dist/providers/provider-request-log.d.ts.map +1 -1
- package/dist/providers/provider-request-log.js +3 -2
- package/dist/providers/provider-request-log.js.map +1 -1
- package/dist/providers/python-provider.d.ts.map +1 -1
- package/dist/providers/python-provider.js +5 -3
- package/dist/providers/python-provider.js.map +1 -1
- package/dist/providers/responses-api.d.ts +12 -2
- package/dist/providers/responses-api.d.ts.map +1 -1
- package/dist/providers/responses-api.js +54 -3
- package/dist/providers/responses-api.js.map +1 -1
- package/dist/providers/scripted-provider.d.ts.map +1 -1
- package/dist/providers/scripted-provider.js +6 -1
- package/dist/providers/scripted-provider.js.map +1 -1
- package/dist/providers/types.d.ts +16 -0
- package/dist/providers/types.d.ts.map +1 -1
- package/dist/providers/types.js.map +1 -1
- package/dist/providers/vllm-provider.d.ts +7 -0
- package/dist/providers/vllm-provider.d.ts.map +1 -1
- package/dist/providers/vllm-provider.js +15 -3
- package/dist/providers/vllm-provider.js.map +1 -1
- package/dist/python-bridge-base.d.ts +16 -6
- package/dist/python-bridge-base.d.ts.map +1 -1
- package/dist/python-bridge-base.js +117 -40
- package/dist/python-bridge-base.js.map +1 -1
- package/dist/python-bridge-codec.d.ts +16 -1
- package/dist/python-bridge-codec.d.ts.map +1 -1
- package/dist/python-bridge-codec.js +60 -2
- package/dist/python-bridge-codec.js.map +1 -1
- package/dist/python-bridge-framing.d.ts +10 -1
- package/dist/python-bridge-framing.d.ts.map +1 -1
- package/dist/python-bridge-framing.js +33 -8
- package/dist/python-bridge-framing.js.map +1 -1
- package/dist/python-bridge-types.d.ts +26 -5
- package/dist/python-bridge-types.d.ts.map +1 -1
- package/dist/python-bridge-types.js.map +1 -1
- package/dist/python-node-executor.d.ts +14 -3
- package/dist/python-node-executor.d.ts.map +1 -1
- package/dist/python-node-executor.js +185 -3
- package/dist/python-node-executor.js.map +1 -1
- package/dist/python-stdio-bridge.d.ts +6 -0
- package/dist/python-stdio-bridge.d.ts.map +1 -1
- package/dist/python-stdio-bridge.js +25 -2
- package/dist/python-stdio-bridge.js.map +1 -1
- package/dist/run-trace-context.d.ts +2 -27
- package/dist/run-trace-context.d.ts.map +1 -1
- package/dist/run-trace-context.js +4 -51
- package/dist/run-trace-context.js.map +1 -1
- package/dist/run-trace-processor.d.ts.map +1 -1
- package/dist/run-trace-processor.js +7 -6
- package/dist/run-trace-processor.js.map +1 -1
- package/dist/run-trace-scope.d.ts +28 -0
- package/dist/run-trace-scope.d.ts.map +1 -0
- package/dist/run-trace-scope.js +51 -0
- package/dist/run-trace-scope.js.map +1 -0
- package/dist/run-trace-serialization.d.ts.map +1 -1
- package/dist/run-trace-serialization.js +4 -3
- package/dist/run-trace-serialization.js.map +1 -1
- package/dist/span-record.d.ts +4 -0
- package/dist/span-record.d.ts.map +1 -0
- package/dist/span-record.js +48 -0
- package/dist/span-record.js.map +1 -0
- package/dist/swappable-python-bridge.d.ts +6 -6
- package/dist/swappable-python-bridge.d.ts.map +1 -1
- package/dist/swappable-python-bridge.js +10 -10
- package/dist/swappable-python-bridge.js.map +1 -1
- package/dist/testing.d.ts +1 -1
- package/dist/testing.d.ts.map +1 -1
- package/dist/testing.js +55 -3
- package/dist/testing.js.map +1 -1
- package/dist/trace-exporters.d.ts +1 -2
- package/dist/trace-exporters.d.ts.map +1 -1
- package/dist/trace-exporters.js +1 -47
- package/dist/trace-exporters.js.map +1 -1
- package/dist/traced-storage.d.ts +17 -0
- package/dist/traced-storage.d.ts.map +1 -0
- package/dist/traced-storage.js +41 -0
- package/dist/traced-storage.js.map +1 -0
- package/package.json +7 -5
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Audio preparation and response decoding for Meta's Muse Voice Transcribe
|
|
3
|
+
* model (`POST /v1/asr/transcribe`).
|
|
4
|
+
*
|
|
5
|
+
* The endpoint takes only RIFF/WAVE, mono, 16-bit integer PCM at 16 or 24 kHz.
|
|
6
|
+
* Audio already in that shape is sent as is; anything else is transcoded with
|
|
7
|
+
* ffmpeg first, the conversion Meta's docs give
|
|
8
|
+
* (`-ac 1 -ar 24000 -c:a pcm_s16le -map_metadata -1`).
|
|
9
|
+
* See https://dev.meta.ai/docs/speech-to-text.
|
|
10
|
+
*
|
|
11
|
+
* The ffmpeg argv is ours and its only input is a temp file this module
|
|
12
|
+
* wrote, as in `video-frames.ts`. `-protocol_whitelist file` and `-nostdin`
|
|
13
|
+
* still go in.
|
|
14
|
+
*/
|
|
15
|
+
import { importNodeBuiltin } from "@nodetool-ai/config";
|
|
16
|
+
import { isNumber, isRecord, isString } from "@nodetool-ai/protocol";
|
|
17
|
+
const TRANSCRIBE_SAMPLE_RATES = new Set([16000, 24000]);
|
|
18
|
+
const FFMPEG_MAX_BUFFER = 8 * 1024 * 1024;
|
|
19
|
+
function ascii(bytes, offset, length) {
|
|
20
|
+
return String.fromCharCode(...bytes.subarray(offset, offset + length));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Whether `bytes` is a WAV file the transcribe endpoint accepts unchanged.
|
|
24
|
+
* Walks the RIFF chunks by their declared sizes (word-aligned) to find `fmt `,
|
|
25
|
+
* and answers false for anything it cannot read, which sends the audio
|
|
26
|
+
* through ffmpeg rather than to a 400.
|
|
27
|
+
*/
|
|
28
|
+
export function isTranscribeReadyWav(bytes) {
|
|
29
|
+
if (bytes.length < 12)
|
|
30
|
+
return false;
|
|
31
|
+
if (ascii(bytes, 0, 4) !== "RIFF" || ascii(bytes, 8, 4) !== "WAVE") {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
35
|
+
let offset = 12;
|
|
36
|
+
while (offset + 8 <= bytes.length) {
|
|
37
|
+
const id = ascii(bytes, offset, 4);
|
|
38
|
+
const size = view.getUint32(offset + 4, true);
|
|
39
|
+
if (id === "fmt ") {
|
|
40
|
+
if (size < 16 || offset + 8 + 16 > bytes.length)
|
|
41
|
+
return false;
|
|
42
|
+
const body = offset + 8;
|
|
43
|
+
const audioFormat = view.getUint16(body, true);
|
|
44
|
+
const channels = view.getUint16(body + 2, true);
|
|
45
|
+
const sampleRate = view.getUint32(body + 4, true);
|
|
46
|
+
const bitsPerSample = view.getUint16(body + 14, true);
|
|
47
|
+
return (audioFormat === 1 &&
|
|
48
|
+
channels === 1 &&
|
|
49
|
+
bitsPerSample === 16 &&
|
|
50
|
+
TRANSCRIBE_SAMPLE_RATES.has(sampleRate));
|
|
51
|
+
}
|
|
52
|
+
offset += 8 + size + (size & 1);
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
/** ffmpeg is not installed. Names what needed it and the way out. */
|
|
57
|
+
export class TranscribeAudioConversionUnavailableError extends Error {
|
|
58
|
+
constructor() {
|
|
59
|
+
super("ffmpeg is not installed or not on PATH. Meta's transcription endpoint " +
|
|
60
|
+
"only reads mono 16-bit WAV at 16 or 24 kHz, and other audio is " +
|
|
61
|
+
"converted with ffmpeg first. Install ffmpeg (the Package Manager UI " +
|
|
62
|
+
"can do this), or pass audio that is already in that format.");
|
|
63
|
+
this.name = "TranscribeAudioConversionUnavailableError";
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/** Convert any audio ffmpeg can read to mono 16-bit PCM WAV at 24 kHz. */
|
|
67
|
+
async function transcodeToTranscribeWav(bytes, signal) {
|
|
68
|
+
const [cp, fs, os, path] = await Promise.all([
|
|
69
|
+
importNodeBuiltin("node:child_process"),
|
|
70
|
+
importNodeBuiltin("node:fs/promises"),
|
|
71
|
+
importNodeBuiltin("node:os"),
|
|
72
|
+
importNodeBuiltin("node:path")
|
|
73
|
+
]);
|
|
74
|
+
if (!cp || !fs || !os || !path) {
|
|
75
|
+
throw new Error("Audio conversion requires Node built-in modules");
|
|
76
|
+
}
|
|
77
|
+
const dir = await fs.mkdtemp(path.join(os.tmpdir(), "nodetool-meta-asr-"));
|
|
78
|
+
const input = path.join(dir, "input.bin");
|
|
79
|
+
const output = path.join(dir, "output.wav");
|
|
80
|
+
try {
|
|
81
|
+
await fs.writeFile(input, bytes);
|
|
82
|
+
await new Promise((resolve, reject) => {
|
|
83
|
+
cp.execFile("ffmpeg", [
|
|
84
|
+
"-nostdin",
|
|
85
|
+
"-y",
|
|
86
|
+
"-v",
|
|
87
|
+
"error",
|
|
88
|
+
"-protocol_whitelist",
|
|
89
|
+
"file",
|
|
90
|
+
"-i",
|
|
91
|
+
input,
|
|
92
|
+
"-ac",
|
|
93
|
+
"1",
|
|
94
|
+
"-ar",
|
|
95
|
+
"24000",
|
|
96
|
+
"-c:a",
|
|
97
|
+
"pcm_s16le",
|
|
98
|
+
"-map_metadata",
|
|
99
|
+
"-1",
|
|
100
|
+
output
|
|
101
|
+
], { maxBuffer: FFMPEG_MAX_BUFFER, signal, windowsHide: true }, (error) => {
|
|
102
|
+
if (error?.code === "ENOENT") {
|
|
103
|
+
reject(new TranscribeAudioConversionUnavailableError());
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (error) {
|
|
107
|
+
reject(error);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
resolve();
|
|
111
|
+
});
|
|
112
|
+
});
|
|
113
|
+
return new Uint8Array(await fs.readFile(output));
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
// Cleanup failure must not replace the conversion result or its error.
|
|
117
|
+
await fs.rm(dir, { recursive: true, force: true }).catch(() => { });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/** `bytes` in the one WAV shape the transcribe endpoint accepts. */
|
|
121
|
+
export async function toTranscribeWav(bytes, signal) {
|
|
122
|
+
if (isTranscribeReadyWav(bytes))
|
|
123
|
+
return bytes;
|
|
124
|
+
return transcodeToTranscribeWav(bytes, signal);
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Meta's `languageBias` takes English language names ("English", "French"),
|
|
128
|
+
* while NodeTool's ASR callers pass ISO 639 codes ("en", "fr-CA"). A value
|
|
129
|
+
* that is already a name, or a code Intl cannot name, passes through.
|
|
130
|
+
*/
|
|
131
|
+
export function languageBiasName(language) {
|
|
132
|
+
const trimmed = language.trim();
|
|
133
|
+
const primary = trimmed.split(/[-_]/)[0];
|
|
134
|
+
if (!/^[a-z]{2,3}$/i.test(primary))
|
|
135
|
+
return trimmed;
|
|
136
|
+
try {
|
|
137
|
+
const name = new Intl.DisplayNames(["en"], { type: "language" }).of(primary.toLowerCase());
|
|
138
|
+
return name && name.toLowerCase() !== primary.toLowerCase()
|
|
139
|
+
? name
|
|
140
|
+
: trimmed;
|
|
141
|
+
}
|
|
142
|
+
catch {
|
|
143
|
+
// An invalid tag throws a RangeError; send what the caller gave.
|
|
144
|
+
return trimmed;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
/** Recognition-bias terms from a free-text prompt: comma or line separated. */
|
|
148
|
+
export function keywordsFromPrompt(prompt) {
|
|
149
|
+
return prompt
|
|
150
|
+
.split(/[,\n]/)
|
|
151
|
+
.map((term) => term.trim())
|
|
152
|
+
.filter((term) => term.length > 0);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Decode the transcribe endpoint's JSON answer. `turns` carry millisecond
|
|
156
|
+
* timings in ENDPOINTING and DIARIZATION modes and become chunks in seconds.
|
|
157
|
+
*/
|
|
158
|
+
export function decodeTranscribeResponse(payload) {
|
|
159
|
+
if (!isRecord(payload) || !isString(payload.transcript)) {
|
|
160
|
+
throw new Error("Meta transcription response has no transcript");
|
|
161
|
+
}
|
|
162
|
+
const chunks = [];
|
|
163
|
+
if (Array.isArray(payload.turns)) {
|
|
164
|
+
for (const turn of payload.turns) {
|
|
165
|
+
if (!isRecord(turn) ||
|
|
166
|
+
!isNumber(turn.startMs) ||
|
|
167
|
+
!isNumber(turn.endMs) ||
|
|
168
|
+
!isString(turn.transcript)) {
|
|
169
|
+
continue;
|
|
170
|
+
}
|
|
171
|
+
chunks.push({
|
|
172
|
+
timestamp: [turn.startMs / 1000, turn.endMs / 1000],
|
|
173
|
+
text: turn.transcript
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const result = { text: payload.transcript };
|
|
178
|
+
if (chunks.length > 0)
|
|
179
|
+
result.chunks = chunks;
|
|
180
|
+
return {
|
|
181
|
+
result,
|
|
182
|
+
audioDurationMs: isNumber(payload.audioDurationMs)
|
|
183
|
+
? payload.audioDurationMs
|
|
184
|
+
: null
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=meta-transcription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meta-transcription.js","sourceRoot":"","sources":["../../src/providers/meta-transcription.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { BaseProvider, type ProviderCapability } from "./base-provider.js";
|
|
2
2
|
import type { EmbeddingModel, LanguageModel, Message, ProviderStreamItem, ProviderTool } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Dispose every model loaded by any {@link NodeLlamaCppProvider} and drop the
|
|
5
|
+
* cache. Call on shutdown; the next generation reloads what it needs.
|
|
6
|
+
*/
|
|
7
|
+
export declare function disposeNodeLlamaCppModels(): Promise<void>;
|
|
3
8
|
/**
|
|
4
9
|
* In-process llama.cpp provider backed by the native `node-llama-cpp` binding.
|
|
5
10
|
* Unlike {@link LlamaProvider} (an HTTP client for a remote `llama-server`),
|
|
@@ -20,8 +25,6 @@ export declare class NodeLlamaCppProvider extends BaseProvider {
|
|
|
20
25
|
static requiredSecrets(): string[];
|
|
21
26
|
private readonly modelsDir?;
|
|
22
27
|
private readonly gpuBackend?;
|
|
23
|
-
private _llama;
|
|
24
|
-
private readonly _models;
|
|
25
28
|
constructor(secrets?: {
|
|
26
29
|
NODE_LLAMA_CPP_MODELS_DIR?: string;
|
|
27
30
|
NODE_LLAMA_CPP_GPU_BACKEND?: string;
|
|
@@ -31,7 +34,7 @@ export declare class NodeLlamaCppProvider extends BaseProvider {
|
|
|
31
34
|
private resolveModelsDir;
|
|
32
35
|
private getLlama;
|
|
33
36
|
/** Resolve a model id (absolute path, or a GGUF filename under the models
|
|
34
|
-
* directory) to a loaded model,
|
|
37
|
+
* directory) to a loaded model, shared process-wide. */
|
|
35
38
|
private getOrLoadModel;
|
|
36
39
|
/** Split a message array into a system prompt, the prior-turn history, and
|
|
37
40
|
* the final user turn to prompt with. An assistant turn that called tools is
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-llama-cpp-provider.d.ts","sourceRoot":"","sources":["../../src/providers/node-llama-cpp-provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node-llama-cpp-provider.d.ts","sourceRoot":"","sources":["../../src/providers/node-llama-cpp-provider.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,OAAO,EAEP,kBAAkB,EAClB,YAAY,EAEb,MAAM,YAAY,CAAC;AA8LpB;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAY/D;AAsED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,oBAAqB,SAAQ,YAAY;IACpD,UAAmB,oBAAoB,IAAI,SAAS,kBAAkB,EAAE,CAIvE;IAED,MAAM,CAAC,eAAe,IAAI,MAAM,EAAE,CAEjC;IAED,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAa;IAEzC,YACE,OAAO,GAAE;QACP,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,0BAA0B,CAAC,EAAE,MAAM,CAAC;KAChC,EAoBP;IAED,eAAe,OAEd;IAEK,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAKrD;YAEa,gBAAgB;IAI9B,OAAO,CAAC,QAAQ;IAahB;4DACwD;YAC1C,cAAc;IAkB5B;;;;oCAIgC;IAChC,OAAO,CAAC,SAAS;YAqDH,aAAa;IA8B3B;;;;;;;;;OASG;IACH,OAAO,CAAC,kBAAkB;IAkCnB,gBAAgB,CAAC,IAAI,EAAE;QAC5B,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAkFrC;IAEK,eAAe,CAAC,IAAI,EAAE;QAC1B,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,CAAC,MAAM,CAAC,CAAC;QACrB,MAAM,CAAC,EAAE,WAAW,CAAC;KACtB,GAAG,OAAO,CAAC,OAAO,CAAC,CAanB;IAEK,iBAAiB,CAAC,IAAI,EAAE;QAC5B,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACxB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CActB;IAEK,0BAA0B,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAG3D;IAEK,2BAA2B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAG7D;IAED;;;;;OAKG;YACW,aAAa;IAY3B,yEAAyE;YAC3D,aAAa;IAiB3B;;;;;OAKG;YACW,cAAc;IAkC5B,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAS5C;CACF"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import { importOptionalModule, importNodeBuiltin } from "@nodetool-ai/config";
|
|
1
|
+
import { getHfHubCacheDir as getConfigHfHubCacheDir, getLlamaCppCacheDir, importOptionalModule, importNodeBuiltin } from "@nodetool-ai/config";
|
|
2
2
|
import { BaseProvider } from "./base-provider.js";
|
|
3
3
|
import { MissingRuntimePackageError, isString } from "@nodetool-ai/protocol";
|
|
4
|
+
/** Process-wide counter for tool-call ids. */
|
|
5
|
+
let toolCallSeq = 0;
|
|
6
|
+
/** Output cap when the caller sets none. Matches Ollama's default. */
|
|
7
|
+
const DEFAULT_MAX_TOKENS = 8192;
|
|
4
8
|
let _modulePromise = null;
|
|
5
9
|
async function loadNodeLlamaCpp() {
|
|
6
10
|
if (!_modulePromise) {
|
|
@@ -23,44 +27,52 @@ async function loadNodeLlamaCpp() {
|
|
|
23
27
|
}
|
|
24
28
|
return _modulePromise;
|
|
25
29
|
}
|
|
26
|
-
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
30
|
+
/**
|
|
31
|
+
* Process-wide llama runtimes (one per GPU backend) and loaded models (one per
|
|
32
|
+
* backend and model path). Provider instances are rebuilt freely (per
|
|
33
|
+
* ProcessingContext, per configured-providers refresh), so a per-instance
|
|
34
|
+
* cache reloaded a multi-GB GGUF on every run and left the old handle alive.
|
|
35
|
+
* Promises are cached, not results, so concurrent first uses share one load.
|
|
36
|
+
*/
|
|
37
|
+
const _llamas = new Map();
|
|
38
|
+
const _models = new Map();
|
|
39
|
+
function cacheOnce(cache, key, load) {
|
|
40
|
+
const cached = cache.get(key);
|
|
41
|
+
if (cached)
|
|
42
|
+
return cached;
|
|
43
|
+
const pending = load();
|
|
44
|
+
cache.set(key, pending);
|
|
45
|
+
// A failed load must not poison the cache for the next attempt.
|
|
46
|
+
pending.catch(() => {
|
|
47
|
+
if (cache.get(key) === pending)
|
|
48
|
+
cache.delete(key);
|
|
49
|
+
});
|
|
50
|
+
return pending;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Dispose every model loaded by any {@link NodeLlamaCppProvider} and drop the
|
|
54
|
+
* cache. Call on shutdown; the next generation reloads what it needs.
|
|
55
|
+
*/
|
|
56
|
+
export async function disposeNodeLlamaCppModels() {
|
|
57
|
+
const pending = [..._models.values()];
|
|
58
|
+
_models.clear();
|
|
59
|
+
await Promise.all(pending.map(async (p) => {
|
|
60
|
+
try {
|
|
61
|
+
await (await p).dispose();
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// A load that failed or a model already disposed has nothing to free.
|
|
65
|
+
}
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
/** Default directory for downloaded GGUF models: llama.cpp's own cache
|
|
69
|
+
* directory, the one `@nodetool-ai/huggingface`'s download path writes to. */
|
|
29
70
|
async function getDefaultModelsDir() {
|
|
30
|
-
|
|
31
|
-
const path = await importNodeBuiltin("node:path");
|
|
32
|
-
if (!os || !path) {
|
|
33
|
-
throw new Error("node-llama-cpp provider requires a Node.js runtime");
|
|
34
|
-
}
|
|
35
|
-
const home = os.homedir();
|
|
36
|
-
if (process.platform === "darwin") {
|
|
37
|
-
return path.join(home, "Library", "Caches", "llama.cpp");
|
|
38
|
-
}
|
|
39
|
-
if (process.platform === "win32") {
|
|
40
|
-
const localAppData = process.env.LOCALAPPDATA;
|
|
41
|
-
return localAppData
|
|
42
|
-
? path.join(localAppData, "llama.cpp")
|
|
43
|
-
: path.join(home, ".cache", "llama.cpp");
|
|
44
|
-
}
|
|
45
|
-
return path.join(home, ".cache", "llama.cpp");
|
|
71
|
+
return getLlamaCppCacheDir();
|
|
46
72
|
}
|
|
47
|
-
/**
|
|
48
|
-
* `getDefaultHfCacheDir`; that package sits above runtime in the dependency
|
|
49
|
-
* order, so the resolution is duplicated rather than imported — same reason as
|
|
50
|
-
* {@link getDefaultModelsDir}. */
|
|
73
|
+
/** HuggingFace hub cache root, from the resolver every hub reader shares. */
|
|
51
74
|
async function getHfHubCacheDir() {
|
|
52
|
-
|
|
53
|
-
const path = await importNodeBuiltin("node:path");
|
|
54
|
-
if (!os || !path)
|
|
55
|
-
return null;
|
|
56
|
-
const expand = (p) => p.startsWith("~") ? path.join(os.homedir(), p.slice(1)) : p;
|
|
57
|
-
const envCache = process.env.HF_HUB_CACHE;
|
|
58
|
-
if (envCache)
|
|
59
|
-
return expand(envCache);
|
|
60
|
-
const hfHome = process.env.HF_HOME;
|
|
61
|
-
if (hfHome)
|
|
62
|
-
return path.join(expand(hfHome), "hub");
|
|
63
|
-
return path.join(os.homedir(), ".cache", "huggingface", "hub");
|
|
75
|
+
return getConfigHfHubCacheDir();
|
|
64
76
|
}
|
|
65
77
|
/** A directory entry that is a GGUF file. Symlinks count: the HuggingFace hub
|
|
66
78
|
* cache stores every snapshot file as a link into `blobs/`, so requiring a
|
|
@@ -129,8 +141,6 @@ export class NodeLlamaCppProvider extends BaseProvider {
|
|
|
129
141
|
}
|
|
130
142
|
modelsDir;
|
|
131
143
|
gpuBackend;
|
|
132
|
-
_llama = null;
|
|
133
|
-
_models = new Map();
|
|
134
144
|
constructor(secrets = {}) {
|
|
135
145
|
super("node_llama_cpp");
|
|
136
146
|
this.modelsDir =
|
|
@@ -161,24 +171,20 @@ export class NodeLlamaCppProvider extends BaseProvider {
|
|
|
161
171
|
async resolveModelsDir() {
|
|
162
172
|
return this.modelsDir ?? (await getDefaultModelsDir());
|
|
163
173
|
}
|
|
164
|
-
|
|
165
|
-
|
|
174
|
+
getLlama() {
|
|
175
|
+
return cacheOnce(_llamas, this.gpuBackend ?? "", async () => {
|
|
166
176
|
const { getLlama } = await loadNodeLlamaCpp();
|
|
167
177
|
const gpu = this.gpuBackend === "cpu"
|
|
168
178
|
? false
|
|
169
179
|
: this.gpuBackend === undefined
|
|
170
180
|
? undefined
|
|
171
181
|
: this.gpuBackend;
|
|
172
|
-
|
|
173
|
-
}
|
|
174
|
-
return this._llama;
|
|
182
|
+
return getLlama(gpu === undefined ? undefined : { gpu });
|
|
183
|
+
});
|
|
175
184
|
}
|
|
176
185
|
/** Resolve a model id (absolute path, or a GGUF filename under the models
|
|
177
|
-
* directory) to a loaded model,
|
|
186
|
+
* directory) to a loaded model, shared process-wide. */
|
|
178
187
|
async getOrLoadModel(model) {
|
|
179
|
-
const cached = this._models.get(model);
|
|
180
|
-
if (cached)
|
|
181
|
-
return cached;
|
|
182
188
|
const path = await importNodeBuiltin("node:path");
|
|
183
189
|
if (!path) {
|
|
184
190
|
throw new Error("node-llama-cpp provider requires a Node.js runtime");
|
|
@@ -186,10 +192,7 @@ export class NodeLlamaCppProvider extends BaseProvider {
|
|
|
186
192
|
const modelPath = path.isAbsolute(model)
|
|
187
193
|
? model
|
|
188
194
|
: path.join(await this.resolveModelsDir(), model);
|
|
189
|
-
|
|
190
|
-
const loaded = await llama.loadModel({ modelPath });
|
|
191
|
-
this._models.set(model, loaded);
|
|
192
|
-
return loaded;
|
|
195
|
+
return cacheOnce(_models, `${this.gpuBackend ?? ""}\0${modelPath}`, async () => (await this.getLlama()).loadModel({ modelPath }));
|
|
193
196
|
}
|
|
194
197
|
/** Split a message array into a system prompt, the prior-turn history, and
|
|
195
198
|
* the final user turn to prompt with. An assistant turn that called tools is
|
|
@@ -198,18 +201,25 @@ export class NodeLlamaCppProvider extends BaseProvider {
|
|
|
198
201
|
* in the model's own syntax. */
|
|
199
202
|
buildChat(messages) {
|
|
200
203
|
const systemParts = [];
|
|
201
|
-
const results = new Map();
|
|
202
204
|
for (const msg of messages) {
|
|
203
205
|
if (msg.role === "system")
|
|
204
206
|
systemParts.push(asText(msg.content));
|
|
205
|
-
else if (msg.role === "tool" && msg.toolCallId)
|
|
206
|
-
results.set(msg.toolCallId, asText(msg.content));
|
|
207
207
|
}
|
|
208
208
|
const history = [];
|
|
209
|
-
for (const msg of messages) {
|
|
209
|
+
for (const [i, msg] of messages.entries()) {
|
|
210
210
|
if (msg.role === "system" || msg.role === "tool")
|
|
211
211
|
continue;
|
|
212
212
|
if (msg.role === "assistant") {
|
|
213
|
+
// Pair calls only with the tool results that follow this turn, so a
|
|
214
|
+
// call id reused in another round can't pick up that round's result.
|
|
215
|
+
const results = new Map();
|
|
216
|
+
for (let j = i + 1; j < messages.length; j++) {
|
|
217
|
+
const next = messages[j];
|
|
218
|
+
if (next.role !== "tool")
|
|
219
|
+
break;
|
|
220
|
+
if (next.toolCallId)
|
|
221
|
+
results.set(next.toolCallId, asText(next.content));
|
|
222
|
+
}
|
|
213
223
|
const text = asText(msg.content);
|
|
214
224
|
const response = text ? [text] : [];
|
|
215
225
|
(msg.toolCalls ?? []).forEach((tc, index) => {
|
|
@@ -277,7 +287,6 @@ export class NodeLlamaCppProvider extends BaseProvider {
|
|
|
277
287
|
if (tools.length === 0)
|
|
278
288
|
return undefined;
|
|
279
289
|
const functions = {};
|
|
280
|
-
let seq = 0;
|
|
281
290
|
for (const tool of tools) {
|
|
282
291
|
functions[tool.name] = defineChatSessionFunction({
|
|
283
292
|
description: tool.description,
|
|
@@ -286,7 +295,15 @@ export class NodeLlamaCppProvider extends BaseProvider {
|
|
|
286
295
|
if (onToolCall) {
|
|
287
296
|
return await onToolCall(tool.name, params);
|
|
288
297
|
}
|
|
289
|
-
|
|
298
|
+
// Ids must be unique across rounds: history replay pairs each call
|
|
299
|
+
// with its result by id, so a per-call `call_1` made every earlier
|
|
300
|
+
// call replay with the latest result.
|
|
301
|
+
toolCallSeq += 1;
|
|
302
|
+
pendingCalls.push({
|
|
303
|
+
id: `call_${Date.now().toString(36)}_${toolCallSeq}`,
|
|
304
|
+
name: tool.name,
|
|
305
|
+
args: params
|
|
306
|
+
});
|
|
290
307
|
stopGeneration();
|
|
291
308
|
return "";
|
|
292
309
|
}
|
|
@@ -295,7 +312,7 @@ export class NodeLlamaCppProvider extends BaseProvider {
|
|
|
295
312
|
return functions;
|
|
296
313
|
}
|
|
297
314
|
async *generateMessages(args) {
|
|
298
|
-
const { model, tools = [], maxTokens =
|
|
315
|
+
const { model, tools = [], maxTokens = DEFAULT_MAX_TOKENS, onToolCall } = args;
|
|
299
316
|
const { session, lastUserText, dispose } = await this.createSession(model, args.messages);
|
|
300
317
|
this.recordRequestPayload({ model, messages: args.messages, maxTokens });
|
|
301
318
|
const { defineChatSessionFunction } = await loadNodeLlamaCpp();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node-llama-cpp-provider.js","sourceRoot":"","sources":["../../src/providers/node-llama-cpp-provider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"node-llama-cpp-provider.js","sourceRoot":"","sources":["../../src/providers/node-llama-cpp-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,14 @@ import type { EmbeddingModel, LanguageModel, Message, ProviderStreamItem, Provid
|
|
|
3
3
|
interface OllamaProviderOptions {
|
|
4
4
|
fetchFn?: typeof fetch;
|
|
5
5
|
}
|
|
6
|
+
/**
|
|
7
|
+
* Context window sent as `num_ctx` when neither `OLLAMA_CONTEXT_LENGTH` nor
|
|
8
|
+
* the model's Modelfile sets one. Ollama's own default is a few thousand
|
|
9
|
+
* tokens, which silently truncates a long chat. The model's trained length is
|
|
10
|
+
* often 128k or more, and a KV cache that large can exhaust VRAM, so the
|
|
11
|
+
* default is capped here.
|
|
12
|
+
*/
|
|
13
|
+
export declare const OLLAMA_DEFAULT_NUM_CTX = 32768;
|
|
6
14
|
export declare class OllamaProvider extends BaseProvider {
|
|
7
15
|
protected declaredCapabilities(): readonly ProviderCapability[];
|
|
8
16
|
static requiredSecrets(): string[];
|
|
@@ -16,8 +24,12 @@ export declare class OllamaProvider extends BaseProvider {
|
|
|
16
24
|
*/
|
|
17
25
|
readonly keepAlive: string;
|
|
18
26
|
private _fetch;
|
|
27
|
+
/** Explicit `num_ctx` from OLLAMA_CONTEXT_LENGTH, or null to derive it per model. */
|
|
28
|
+
readonly contextLength: number | null;
|
|
19
29
|
constructor(secrets: {
|
|
20
30
|
OLLAMA_API_URL?: string;
|
|
31
|
+
OLLAMA_CONTEXT_LENGTH?: string;
|
|
32
|
+
OLLAMA_KEEP_ALIVE?: string;
|
|
21
33
|
}, options?: OllamaProviderOptions);
|
|
22
34
|
getContainerEnv(): {
|
|
23
35
|
OLLAMA_API_URL: string;
|
|
@@ -25,6 +37,17 @@ export declare class OllamaProvider extends BaseProvider {
|
|
|
25
37
|
/** Release cached model metadata held by this provider. */
|
|
26
38
|
close(): Promise<void>;
|
|
27
39
|
private _modelInfoCache;
|
|
40
|
+
/** `/api/show` for `model`, cached on success; null when it can't be read. */
|
|
41
|
+
private getModelInfo;
|
|
42
|
+
/**
|
|
43
|
+
* The `num_ctx` sent with every chat request: OLLAMA_CONTEXT_LENGTH when
|
|
44
|
+
* set, else the Modelfile's `num_ctx`, else the model's trained length
|
|
45
|
+
* capped at {@link OLLAMA_DEFAULT_NUM_CTX}. Sent explicitly because Ollama's
|
|
46
|
+
* server default silently drops the oldest tokens of a long prompt.
|
|
47
|
+
*/
|
|
48
|
+
resolveNumCtx(model: string): Promise<number>;
|
|
49
|
+
/** The window this provider runs `model` at, so compaction fires before Ollama truncates. */
|
|
50
|
+
getContextWindow(model: string): Promise<number | null>;
|
|
28
51
|
/**
|
|
29
52
|
* Check if a model supports native tool calling by querying /api/show.
|
|
30
53
|
* Falls back to true if capabilities can't be determined.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ollama-provider.d.ts","sourceRoot":"","sources":["../../src/providers/ollama-provider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ollama-provider.d.ts","sourceRoot":"","sources":["../../src/providers/ollama-provider.ts"],"names":[],"mappings":"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"}
|