@uptimizr/agent-core 0.2.0 → 0.2.1
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.
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* (behind explicit consent) and cached by the runtime in the browser's Cache
|
|
10
10
|
* Storage — never part of any precache.
|
|
11
11
|
*/
|
|
12
|
-
import type { LlmProvider } from "../provider.js";
|
|
12
|
+
import type { AgentMessage, LlmProvider } from "../provider.js";
|
|
13
13
|
import { type OpenAiCompletion, type OpenAiMessage, type OpenAiTool } from "./openai.js";
|
|
14
14
|
/** A curated model the user may install (ADR 0050 §4). */
|
|
15
15
|
export interface CuratedModel {
|
|
@@ -118,6 +118,31 @@ export declare class WebLlmConsentError extends Error {
|
|
|
118
118
|
export declare class UnsupportedToolCallingModelError extends Error {
|
|
119
119
|
constructor(modelId: string);
|
|
120
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Fold any `system` message into the first `user` turn for WebLLM's Hermes
|
|
123
|
+
* function-calling path.
|
|
124
|
+
*
|
|
125
|
+
* WebLLM injects its OWN tool-calling system prompt for the Hermes-2-Pro /
|
|
126
|
+
* Hermes-3 family and **forbids** a caller-supplied `system` message whenever
|
|
127
|
+
* `tools` are present — it throws `CustomSystemPromptError`
|
|
128
|
+
* ("…cannot specify customized system prompt.") at runtime (verified against
|
|
129
|
+
* `@mlc-ai/web-llm` v0.2.79: the check is gated on both `request.tools` being
|
|
130
|
+
* present and the model id starting with `Hermes-2-Pro-`/`Hermes-3-`). Our
|
|
131
|
+
* assistant always sends `[{ role: "system", … }, userMessage]` plus tools, so
|
|
132
|
+
* the local backend hit that error.
|
|
133
|
+
*
|
|
134
|
+
* This pure helper removes every `system` message and prepends their content —
|
|
135
|
+
* in order, joined by a blank line — to the first `user` message, so the model
|
|
136
|
+
* still receives our analytics instructions, just not as a `system` role. If
|
|
137
|
+
* there is no `user` message yet, the folded system text becomes a `user`
|
|
138
|
+
* message. All other turns (assistant / tool) keep their relative order.
|
|
139
|
+
*
|
|
140
|
+
* Plain string/array operations only (no regex — avoids CodeQL ReDoS), and the
|
|
141
|
+
* input array is never mutated. It is idempotent per call because it always
|
|
142
|
+
* derives from the messages passed in, so re-folding the full transcript on
|
|
143
|
+
* every loop step never reintroduces a `system` role.
|
|
144
|
+
*/
|
|
145
|
+
export declare function foldSystemPromptForHermes(messages: readonly AgentMessage[]): AgentMessage[];
|
|
121
146
|
/**
|
|
122
147
|
* Create a local WebLLM provider. The runtime and model weights load lazily on
|
|
123
148
|
* the first {@link LlmProvider.complete} call — construction is cheap and has no
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webllm.d.ts","sourceRoot":"","sources":["../../src/providers/webllm.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAqC,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"webllm.d.ts","sourceRoot":"","sources":["../../src/providers/webllm.ts"],"names":[],"mappings":"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"}
|
package/dist/providers/webllm.js
CHANGED
|
@@ -88,6 +88,61 @@ export class UnsupportedToolCallingModelError extends Error {
|
|
|
88
88
|
this.name = "UnsupportedToolCallingModelError";
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
|
+
/** A separator between the folded system instructions and the user's question. */
|
|
92
|
+
const SYSTEM_FOLD_SEPARATOR = "\n\n";
|
|
93
|
+
/**
|
|
94
|
+
* Fold any `system` message into the first `user` turn for WebLLM's Hermes
|
|
95
|
+
* function-calling path.
|
|
96
|
+
*
|
|
97
|
+
* WebLLM injects its OWN tool-calling system prompt for the Hermes-2-Pro /
|
|
98
|
+
* Hermes-3 family and **forbids** a caller-supplied `system` message whenever
|
|
99
|
+
* `tools` are present — it throws `CustomSystemPromptError`
|
|
100
|
+
* ("…cannot specify customized system prompt.") at runtime (verified against
|
|
101
|
+
* `@mlc-ai/web-llm` v0.2.79: the check is gated on both `request.tools` being
|
|
102
|
+
* present and the model id starting with `Hermes-2-Pro-`/`Hermes-3-`). Our
|
|
103
|
+
* assistant always sends `[{ role: "system", … }, userMessage]` plus tools, so
|
|
104
|
+
* the local backend hit that error.
|
|
105
|
+
*
|
|
106
|
+
* This pure helper removes every `system` message and prepends their content —
|
|
107
|
+
* in order, joined by a blank line — to the first `user` message, so the model
|
|
108
|
+
* still receives our analytics instructions, just not as a `system` role. If
|
|
109
|
+
* there is no `user` message yet, the folded system text becomes a `user`
|
|
110
|
+
* message. All other turns (assistant / tool) keep their relative order.
|
|
111
|
+
*
|
|
112
|
+
* Plain string/array operations only (no regex — avoids CodeQL ReDoS), and the
|
|
113
|
+
* input array is never mutated. It is idempotent per call because it always
|
|
114
|
+
* derives from the messages passed in, so re-folding the full transcript on
|
|
115
|
+
* every loop step never reintroduces a `system` role.
|
|
116
|
+
*/
|
|
117
|
+
export function foldSystemPromptForHermes(messages) {
|
|
118
|
+
const systemContents = [];
|
|
119
|
+
const rest = [];
|
|
120
|
+
for (const message of messages) {
|
|
121
|
+
if (message.role === "system") {
|
|
122
|
+
systemContents.push(message.content);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
rest.push(message);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (systemContents.length === 0)
|
|
129
|
+
return [...messages];
|
|
130
|
+
const systemText = systemContents.join(SYSTEM_FOLD_SEPARATOR);
|
|
131
|
+
const firstUserIndex = rest.findIndex((message) => message.role === "user");
|
|
132
|
+
if (firstUserIndex === -1) {
|
|
133
|
+
// No user turn yet: carry the instructions in as a user message so the
|
|
134
|
+
// model still receives them without a forbidden `system` role.
|
|
135
|
+
return [{ role: "user", content: systemText }, ...rest];
|
|
136
|
+
}
|
|
137
|
+
return rest.map((message, index) => {
|
|
138
|
+
if (index !== firstUserIndex)
|
|
139
|
+
return message;
|
|
140
|
+
return {
|
|
141
|
+
role: "user",
|
|
142
|
+
content: systemText + SYSTEM_FOLD_SEPARATOR + message.content,
|
|
143
|
+
};
|
|
144
|
+
});
|
|
145
|
+
}
|
|
91
146
|
function resolveModel(id) {
|
|
92
147
|
const model = id ? CURATED_MODELS.find((m) => m.id === id) : CURATED_MODELS[0];
|
|
93
148
|
return model ?? { id: id ?? "", label: id ?? "", downloadSize: "?", vram: "?", description: "" };
|
|
@@ -137,8 +192,14 @@ export function createWebLlmProvider(options = {}) {
|
|
|
137
192
|
return {
|
|
138
193
|
async complete(request) {
|
|
139
194
|
const engine = await ensureEngine();
|
|
195
|
+
// WebLLM's Hermes tool-calling path injects its own system prompt and
|
|
196
|
+
// rejects a caller-supplied `system` message when `tools` are present, so
|
|
197
|
+
// fold our system instructions into the first user turn for that case.
|
|
198
|
+
const messages = request.tools?.length
|
|
199
|
+
? foldSystemPromptForHermes(request.messages)
|
|
200
|
+
: request.messages;
|
|
140
201
|
const completion = await engine.chat.completions.create({
|
|
141
|
-
messages: toOpenAiMessages(
|
|
202
|
+
messages: toOpenAiMessages(messages),
|
|
142
203
|
tools: toOpenAiTools(request.tools),
|
|
143
204
|
tool_choice: "auto",
|
|
144
205
|
stream: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webllm.js","sourceRoot":"","sources":["../../src/providers/webllm.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"webllm.js","sourceRoot":"","sources":["../../src/providers/webllm.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uptimizr/agent-core",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "Framework-agnostic, browser-safe core for Uptimizr analytics agents — the single read-only tool catalog over the collector query API, a headless LLM provider-adapter interface, and the tool-calling loop.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"uptimizr",
|