agent-nuvira 2.6.14 → 2.7.0
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 +4 -2
- package/dist/cli/chat.d.ts +2 -0
- package/dist/cli/chat.d.ts.map +1 -1
- package/dist/cli/chat.js +107 -4
- package/dist/cli/chat.js.map +1 -1
- package/dist/cli/eval.d.ts.map +1 -1
- package/dist/cli/eval.js +14 -1
- package/dist/cli/eval.js.map +1 -1
- package/dist/cli/execute.d.ts +8 -0
- package/dist/cli/execute.d.ts.map +1 -1
- package/dist/cli/execute.js +105 -1
- package/dist/cli/execute.js.map +1 -1
- package/dist/cli/loop-executor.d.ts +81 -0
- package/dist/cli/loop-executor.d.ts.map +1 -0
- package/dist/cli/loop-executor.js +246 -0
- package/dist/cli/loop-executor.js.map +1 -0
- package/dist/config/types.d.ts +18 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/fresh.d.ts +2 -0
- package/dist/fresh.d.ts.map +1 -0
- package/dist/fresh.js +2 -0
- package/dist/fresh.js.map +1 -0
- package/dist/inference/anthropic-adapter.d.ts +9 -0
- package/dist/inference/anthropic-adapter.d.ts.map +1 -1
- package/dist/inference/anthropic-adapter.js +143 -0
- package/dist/inference/anthropic-adapter.js.map +1 -1
- package/dist/inference/gemini-adapter.d.ts +8 -0
- package/dist/inference/gemini-adapter.d.ts.map +1 -1
- package/dist/inference/gemini-adapter.js +145 -0
- package/dist/inference/gemini-adapter.js.map +1 -1
- package/dist/inference/model-probe.d.ts.map +1 -1
- package/dist/inference/model-probe.js +14 -0
- package/dist/inference/model-probe.js.map +1 -1
- package/dist/inference/native-tools.d.ts +226 -0
- package/dist/inference/native-tools.d.ts.map +1 -0
- package/dist/inference/native-tools.js +389 -0
- package/dist/inference/native-tools.js.map +1 -0
- package/dist/learning/auto-router.d.ts +36 -4
- package/dist/learning/auto-router.d.ts.map +1 -1
- package/dist/learning/auto-router.js +103 -2
- package/dist/learning/auto-router.js.map +1 -1
- package/dist/learning/context-pruner.d.ts.map +1 -1
- package/dist/learning/context-pruner.js +4 -2
- package/dist/learning/context-pruner.js.map +1 -1
- package/dist/learning/engine-router.d.ts +90 -0
- package/dist/learning/engine-router.d.ts.map +1 -0
- package/dist/learning/engine-router.js +128 -0
- package/dist/learning/engine-router.js.map +1 -0
- package/dist/learning/eval-framework.d.ts +42 -1
- package/dist/learning/eval-framework.d.ts.map +1 -1
- package/dist/learning/eval-framework.js +163 -7
- package/dist/learning/eval-framework.js.map +1 -1
- package/dist/learning/routing-cache.d.ts +64 -0
- package/dist/learning/routing-cache.d.ts.map +1 -0
- package/dist/learning/routing-cache.js +100 -0
- package/dist/learning/routing-cache.js.map +1 -0
- package/dist/tools/loop-project-context.d.ts +47 -0
- package/dist/tools/loop-project-context.d.ts.map +1 -0
- package/dist/tools/loop-project-context.js +210 -0
- package/dist/tools/loop-project-context.js.map +1 -0
- package/dist/tools/loop-skill-hint.d.ts +110 -0
- package/dist/tools/loop-skill-hint.d.ts.map +1 -0
- package/dist/tools/loop-skill-hint.js +266 -0
- package/dist/tools/loop-skill-hint.js.map +1 -0
- package/dist/tools/registry.d.ts +10 -0
- package/dist/tools/registry.d.ts.map +1 -1
- package/dist/tools/registry.js +66 -9
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/release-sync.d.ts.map +1 -1
- package/dist/tools/release-sync.js +5 -4
- package/dist/tools/release-sync.js.map +1 -1
- package/dist/tools/tool-loop.d.ts +28 -0
- package/dist/tools/tool-loop.d.ts.map +1 -1
- package/dist/tools/tool-loop.js +182 -6
- package/dist/tools/tool-loop.js.map +1 -1
- package/dist/tools/toolsets.d.ts +33 -0
- package/dist/tools/toolsets.d.ts.map +1 -1
- package/dist/tools/toolsets.js +84 -0
- package/dist/tools/toolsets.js.map +1 -1
- package/dist/web-dashboard/chat-console.d.ts +31 -0
- package/dist/web-dashboard/chat-console.d.ts.map +1 -1
- package/dist/web-dashboard/chat-console.js +73 -0
- package/dist/web-dashboard/chat-console.js.map +1 -1
- package/dist/web-dashboard/loop-turn-telemetry.d.ts +27 -0
- package/dist/web-dashboard/loop-turn-telemetry.d.ts.map +1 -0
- package/dist/web-dashboard/loop-turn-telemetry.js +43 -0
- package/dist/web-dashboard/loop-turn-telemetry.js.map +1 -0
- package/dist/web-dashboard/server.d.ts +62 -1
- package/dist/web-dashboard/server.d.ts.map +1 -1
- package/dist/web-dashboard/server.js +205 -4
- package/dist/web-dashboard/server.js.map +1 -1
- package/dist/web-dashboard/src/types.d.ts +44 -0
- package/dist/web-dashboard/src/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/web-dashboard/public/assets/{index-Cg9LaToa.js → index-C4frng1Q.js} +79 -79
- package/src/web-dashboard/public/assets/{index-Cg9LaToa.js.map → index-C4frng1Q.js.map} +1 -1
- package/src/web-dashboard/public/assets/index-C507EUWf.css +1 -0
- package/src/web-dashboard/public/index.html +2 -2
- package/src/web-dashboard/public/assets/index-B47v8pr1.css +0 -1
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loop executor (`src/cli/loop-executor.ts`) — AGENTIC_CAPABILITY_ASSESSMENT
|
|
3
|
+
* Addendum v4 Phase 1.1: "Make `runToolLoop` the executor behind coding-intent
|
|
4
|
+
* dispatch (…extend to `nuvira execute` default path behind
|
|
5
|
+
* `--engine loop|pipeline`, default `pipeline` until Phase 0 numbers land)."
|
|
6
|
+
*
|
|
7
|
+
* `nuvira execute` currently goes straight to the Orchestrator. This module
|
|
8
|
+
* is the LOOP arm: one agentic turn over the same `runToolLoop` the chat
|
|
9
|
+
* engine uses, with the ambient project-context injection + tiered tool
|
|
10
|
+
* exposure the chat path already has. The orchestrator stays the DEFAULT
|
|
11
|
+
* until the Phase 0 eval numbers land; this arm ships complete so
|
|
12
|
+
* `--engine loop` is a real path, not a stub.
|
|
13
|
+
*
|
|
14
|
+
* Engine selection (Phase 2) happens in the CALLER (`execute` dispatch):
|
|
15
|
+
* `resolveEngine()` decides loop vs pipeline from the routed provider tier;
|
|
16
|
+
* this module is deliberately single-responsibility (it IS the loop arm).
|
|
17
|
+
*
|
|
18
|
+
* Telemetry parity with the eval framework: the executor returns wall-clock
|
|
19
|
+
* time, per-tool call counts, errored-tool names (captured from the
|
|
20
|
+
* `tool:called` events, not guessed from content), the bounded flag, and the
|
|
21
|
+
* generation-failed flag so Phase 0 can compare arms on identical metrics.
|
|
22
|
+
*
|
|
23
|
+
* Phase 1.3 guardrail note (v4 risk table): file ops stay deny-first /
|
|
24
|
+
* confirm-gated (registry tools keep their own gates) and the orchestrator
|
|
25
|
+
* remains available for CI/publish — enterprise semantics are not weakened.
|
|
26
|
+
*/
|
|
27
|
+
import { resolveProvider } from './router.js';
|
|
28
|
+
import { resolveWorkingModel } from '../inference/model-validator.js';
|
|
29
|
+
import { getAutoRouter, isAutoModel, isAutoProvider } from '../learning/auto-router.js';
|
|
30
|
+
import { buildLoopProjectContext } from '../tools/loop-project-context.js';
|
|
31
|
+
import { getLoopExposureMode } from '../tools/toolsets.js';
|
|
32
|
+
import { resolveEngine } from '../learning/engine-router.js';
|
|
33
|
+
import { logger } from '../utils/logger.js';
|
|
34
|
+
/** The system prompt for the execute-loop arm (verification-first). */
|
|
35
|
+
function buildExecuteLoopSystemPrompt(toolContractJson) {
|
|
36
|
+
return [
|
|
37
|
+
'You are Nuvira, executing a coding task end-to-end. You have the project\'s tool surface: read files, edit/write files, search code, run terminal commands (typecheck/tests/build), plan with plan_todo, and delegate subtasks.',
|
|
38
|
+
'Work autonomously: understand the code first (read_file/code_search), make the change (edit_file/write_file), then VERIFY by running typecheck/tests with run_terminal. Fix what fails and re-verify.',
|
|
39
|
+
'When the task is complete, summarize what changed and why. End with suggest_followups listing sensible next steps.',
|
|
40
|
+
'',
|
|
41
|
+
'Some tools live in domain toolsets outside your visible list — if a tool you need is "unknown", call tool_search with {"action":"load","toolset":"<name>"} and its tools become callable immediately.',
|
|
42
|
+
'',
|
|
43
|
+
toolContractJson,
|
|
44
|
+
].join('\n');
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Run one coding goal through the single agentic loop (the v4 universal
|
|
48
|
+
* engine). Resolves the route the same way chat does (explicit override or
|
|
49
|
+
* AutoModelRouter candidate walk), injects the ambient project context, and
|
|
50
|
+
* runs `runToolLoop` with tiered exposure per config. Never throws — a
|
|
51
|
+
* failure returns a result with generationFailed=true (eval arms count it as
|
|
52
|
+
* a loss; the CLI prints the message).
|
|
53
|
+
*/
|
|
54
|
+
export async function runLoopExecutor(goal, configManager, opts = {}) {
|
|
55
|
+
const startedAt = Date.now();
|
|
56
|
+
// ── Route: explicit provider/model wins; otherwise the AutoModelRouter ──
|
|
57
|
+
let providerType = 'auto';
|
|
58
|
+
let model = 'default';
|
|
59
|
+
let provider = null;
|
|
60
|
+
try {
|
|
61
|
+
if (opts.provider && !isAutoProvider(opts.provider)) {
|
|
62
|
+
const resolved = resolveProvider(configManager, opts.provider);
|
|
63
|
+
providerType = resolved.type;
|
|
64
|
+
provider = resolved.provider;
|
|
65
|
+
model = opts.model && !isAutoModel(opts.model)
|
|
66
|
+
? opts.model
|
|
67
|
+
: await resolveWorkingModel(provider, providerType, undefined);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
const routed = await getAutoRouter().resolve('execute', goal, { verbose: !opts.quiet }, configManager);
|
|
71
|
+
// Walk the ranked candidates to the first AVAILABLE provider (the
|
|
72
|
+
// router excludes unconfigured providers; isAvailable() is the gate).
|
|
73
|
+
const candidates = [routed.provider, ...routed.ranked.map((r) => r.provider)];
|
|
74
|
+
for (const candidate of candidates) {
|
|
75
|
+
try {
|
|
76
|
+
const resolved = resolveProvider(configManager, candidate);
|
|
77
|
+
if (await resolved.provider.isAvailable()) {
|
|
78
|
+
const desired = candidate === routed.provider
|
|
79
|
+
? routed.model
|
|
80
|
+
: getAutoRouter().resolveModel(candidate, 'execute', configManager);
|
|
81
|
+
providerType = resolved.type;
|
|
82
|
+
provider = resolved.provider;
|
|
83
|
+
model = await resolveWorkingModel(resolved.provider, resolved.type, desired);
|
|
84
|
+
break;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// Next candidate.
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
return failureResult(`Routing failed: ${err instanceof Error ? err.message : String(err)}`, startedAt, opts.provider ?? 'auto', opts.model ?? 'default', 'routing failed before an engine decision was possible');
|
|
95
|
+
}
|
|
96
|
+
if (!provider) {
|
|
97
|
+
return failureResult('No available provider for the loop engine (check API keys / local runner).', startedAt, opts.provider ?? 'auto', opts.model ?? 'default', 'no available provider after the candidate walk');
|
|
98
|
+
}
|
|
99
|
+
// ── Engine decision (Phase 2): audit-trail echo for the caller/telemetry ──
|
|
100
|
+
// The CALLER decides loop-vs-pipeline with the same function; this echo
|
|
101
|
+
// keeps the executor's telemetry self-describing (dashboard badge parity).
|
|
102
|
+
let engineExplanation = '';
|
|
103
|
+
try {
|
|
104
|
+
engineExplanation = resolveEngine({ provider: providerType, model }).explanation;
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
engineExplanation = 'engine decision unavailable';
|
|
108
|
+
}
|
|
109
|
+
if (!opts.quiet)
|
|
110
|
+
logger.debug(`Engine: ${engineExplanation}`);
|
|
111
|
+
// ── Ambient project context (Phase 1.4 — same block the chat engine uses) ──
|
|
112
|
+
let projectContext;
|
|
113
|
+
if (!opts.skipProjectContext) {
|
|
114
|
+
try {
|
|
115
|
+
const built = await buildLoopProjectContext(process.cwd());
|
|
116
|
+
if (built)
|
|
117
|
+
projectContext = built;
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
projectContext = undefined; // best-effort — never breaks the turn
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// ── Loop-side skill match hint (Phase 3.2 — chat/execute parity) ─────────
|
|
124
|
+
// The orchestrator consults SkillStore.findMatch + the hub catalog before
|
|
125
|
+
// planning; the execute loop never heard about that layer. One
|
|
126
|
+
// deterministic, best-effort match is appended to the system prompt
|
|
127
|
+
// (methodology + exact skill-tool load syntax, bounded to ONE block). A
|
|
128
|
+
// failure returns '' and the prompt is byte-identical to pre-3.2.
|
|
129
|
+
let skillHint = '';
|
|
130
|
+
if (!opts.skipSkillHint) {
|
|
131
|
+
try {
|
|
132
|
+
const { buildLoopSkillHint, markLoopSkillUsed } = await import('../tools/loop-skill-hint.js');
|
|
133
|
+
const injected = { value: null };
|
|
134
|
+
skillHint = await buildLoopSkillHint(goal, configManager, injected);
|
|
135
|
+
if (injected.value) {
|
|
136
|
+
void markLoopSkillUsed(injected.value);
|
|
137
|
+
if (!opts.quiet)
|
|
138
|
+
logger.info(` 🧠 Matched skill '${injected.value.name}' — methodology injected into the loop context`);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
skillHint = ''; // best-effort — never breaks the turn
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const { runToolLoop } = await import('../tools/tool-loop.js');
|
|
146
|
+
const { getTool, TOOL_CONTRACT_JSON } = await import('../tools/registry.js');
|
|
147
|
+
const thread = [
|
|
148
|
+
{ role: 'system', content: buildExecuteLoopSystemPrompt(TOOL_CONTRACT_JSON) + skillHint },
|
|
149
|
+
...(projectContext ? [{ role: 'user', content: `[Project context]\n${projectContext}` }] : []),
|
|
150
|
+
{ role: 'user', content: goal },
|
|
151
|
+
];
|
|
152
|
+
const loadedExtraTools = new Set();
|
|
153
|
+
const erroredTools = [];
|
|
154
|
+
const callModel = async (messages, schemas, _stepOnToken, stepSignal) => {
|
|
155
|
+
void _stepOnToken;
|
|
156
|
+
if (typeof provider.generateTools === 'function' && schemas.length > 0) {
|
|
157
|
+
if (typeof provider.generateToolsStream === 'function' && opts.onToken) {
|
|
158
|
+
return provider.generateToolsStream(messages, schemas, { model, signal: stepSignal ?? opts.signal }, opts.onToken);
|
|
159
|
+
}
|
|
160
|
+
return provider.generateTools(messages, schemas, { model, signal: stepSignal ?? opts.signal });
|
|
161
|
+
}
|
|
162
|
+
// JSON fallback transport — the shared helper the chat engine uses.
|
|
163
|
+
const { buildJsonFallbackPrompt } = await import('../inference/tool-call-utils.js');
|
|
164
|
+
const { extractFallbackToolCalls } = await import('../tools/tool-loop.js');
|
|
165
|
+
const prompt = buildJsonFallbackPrompt(messages, schemas);
|
|
166
|
+
let raw;
|
|
167
|
+
if (typeof provider.generateStream === 'function') {
|
|
168
|
+
const chunks = [];
|
|
169
|
+
await provider.generateStream(prompt, { model, signal: stepSignal ?? opts.signal }, (t) => {
|
|
170
|
+
chunks.push(t);
|
|
171
|
+
opts.onToken?.(t);
|
|
172
|
+
});
|
|
173
|
+
raw = chunks.join('');
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
raw = await provider.generate(prompt, { model, signal: stepSignal ?? opts.signal });
|
|
177
|
+
}
|
|
178
|
+
const { text, calls } = extractFallbackToolCalls(raw);
|
|
179
|
+
return { content: text, toolCalls: calls };
|
|
180
|
+
};
|
|
181
|
+
try {
|
|
182
|
+
const result = await runToolLoop({
|
|
183
|
+
messages: thread,
|
|
184
|
+
maxSteps: opts.maxSteps ?? 16,
|
|
185
|
+
toolExposure: getLoopExposureMode(configManager),
|
|
186
|
+
onToken: opts.onToken,
|
|
187
|
+
signal: opts.signal,
|
|
188
|
+
context: {
|
|
189
|
+
configManager,
|
|
190
|
+
loadedExtraTools,
|
|
191
|
+
cwd: process.cwd(),
|
|
192
|
+
},
|
|
193
|
+
deps: {
|
|
194
|
+
callModel,
|
|
195
|
+
executeTool: async (name, args, ctx) => {
|
|
196
|
+
const tool = getTool(name);
|
|
197
|
+
if (!tool)
|
|
198
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
199
|
+
const out = await tool.run(args, ctx);
|
|
200
|
+
// Errored-tool telemetry (Phase 0 repair-count proxy). Two failure
|
|
201
|
+
// conventions exist: the loop's `Error:` prefix (runtime throw) and
|
|
202
|
+
// the coding tools' `<name>: cannot|no such file …` verbs (missing
|
|
203
|
+
// file, unreadable path). A bare `<name>: ` prefix is NOT a failure
|
|
204
|
+
// signal — successful list_dir/read_file output legitimately starts
|
|
205
|
+
// with it — and soft refusals ("is a directory", "looks binary") are
|
|
206
|
+
// advisory, not failures. Telemetry only — never alters the text.
|
|
207
|
+
if (out.startsWith('Error:') ||
|
|
208
|
+
new RegExp(`^${name}: (cannot |no such file |denied)`).test(out)) {
|
|
209
|
+
erroredTools.push(name);
|
|
210
|
+
}
|
|
211
|
+
return out;
|
|
212
|
+
},
|
|
213
|
+
onEvent: opts.quiet ? undefined : (line) => logger.info(line),
|
|
214
|
+
},
|
|
215
|
+
});
|
|
216
|
+
return {
|
|
217
|
+
content: result.content,
|
|
218
|
+
generationFailed: result.generationFailed ?? false,
|
|
219
|
+
bounded: result.bounded,
|
|
220
|
+
toolCalls: result.toolCalls,
|
|
221
|
+
erroredTools,
|
|
222
|
+
durationMs: Date.now() - startedAt,
|
|
223
|
+
provider: providerType,
|
|
224
|
+
model,
|
|
225
|
+
engineExplanation,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
catch (err) {
|
|
229
|
+
return failureResult(`Loop execution failed: ${err instanceof Error ? err.message : String(err)}`, startedAt, providerType, model, engineExplanation);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/** Build a failed result (shape-complete for the eval arm comparison). */
|
|
233
|
+
function failureResult(message, startedAt, provider, model, engineExplanation) {
|
|
234
|
+
return {
|
|
235
|
+
content: message,
|
|
236
|
+
generationFailed: true,
|
|
237
|
+
bounded: false,
|
|
238
|
+
toolCalls: [],
|
|
239
|
+
erroredTools: [],
|
|
240
|
+
durationMs: Date.now() - startedAt,
|
|
241
|
+
provider,
|
|
242
|
+
model,
|
|
243
|
+
engineExplanation,
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=loop-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loop-executor.js","sourceRoot":"","sources":["../../src/cli/loop-executor.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -413,6 +413,24 @@ export interface RoutingConfig {
|
|
|
413
413
|
*/
|
|
414
414
|
healthFlags?: boolean;
|
|
415
415
|
};
|
|
416
|
+
/**
|
|
417
|
+
* Engine mode (AGENTIC_CAPABILITY_ASSESSMENT Addendum v4 Phase 2 — mode
|
|
418
|
+
* routing). 'auto' (default) lets the engine router pick loop-vs-pipeline
|
|
419
|
+
* from the routed provider tier (strong models → the single agentic loop;
|
|
420
|
+
* local/weak tier → the orchestrator pipeline). 'loop'/'pipeline' are
|
|
421
|
+
* absolute overrides (CI pins 'pipeline'). Set via
|
|
422
|
+
* `nuvira config set routing.engineMode loop` or directly in
|
|
423
|
+
* .nuviraconfig.json. Default: 'auto'.
|
|
424
|
+
*/
|
|
425
|
+
engineMode?: 'auto' | 'loop' | 'pipeline';
|
|
426
|
+
/**
|
|
427
|
+
* Routing preference mode (HybridRouterOptions.preferenceMode): 'balanced'
|
|
428
|
+
* (default), 'performance-first', 'cost-first', or 'privacy-first'. Read by
|
|
429
|
+
* the chat routing decision cache as part of the STABLE routing-input key —
|
|
430
|
+
* changing the mode changes the key, so a cached decision can never be
|
|
431
|
+
* served across a mode switch.
|
|
432
|
+
*/
|
|
433
|
+
preferenceMode?: 'balanced' | 'performance-first' | 'cost-first' | 'privacy-first';
|
|
416
434
|
}
|
|
417
435
|
/**
|
|
418
436
|
* Full configuration schema for .nuviraconfig.json
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"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"}
|
package/dist/fresh.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fresh.d.ts","sourceRoot":"","sources":["../src/fresh.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,OAAO,CAAC"}
|
package/dist/fresh.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fresh.js","sourceRoot":"","sources":["../src/fresh.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC"}
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
* 5xx→server, fetch→network, abort→timeout.
|
|
18
18
|
*/
|
|
19
19
|
import { InferenceProvider, ModelDescriptor } from './interface.js';
|
|
20
|
+
import type { ToolCallResponse, ToolMessage, ToolSchema } from './interface.js';
|
|
20
21
|
import { InferenceOptions, ProviderConfig } from '../config/types.js';
|
|
21
22
|
export declare class AnthropicAdapter implements InferenceProvider {
|
|
22
23
|
readonly name = "Anthropic";
|
|
@@ -26,6 +27,14 @@ export declare class AnthropicAdapter implements InferenceProvider {
|
|
|
26
27
|
private headers;
|
|
27
28
|
generate(prompt: string, options?: InferenceOptions): Promise<string>;
|
|
28
29
|
generateStream(prompt: string, options: InferenceOptions | undefined, onToken: (token: string) => void): Promise<string>;
|
|
30
|
+
generateTools(messages: ToolMessage[], tools: ToolSchema[], options?: InferenceOptions): Promise<ToolCallResponse>;
|
|
31
|
+
/**
|
|
32
|
+
* P4/Phase 1.2 — streaming native tool-calling: same protocol with
|
|
33
|
+
* `stream: true`; text deltas stream to onToken, tool_use blocks
|
|
34
|
+
* accumulate from content_block_start + input_json_delta fragments via
|
|
35
|
+
* the shared accumulator and finalize at message_stop.
|
|
36
|
+
*/
|
|
37
|
+
generateToolsStream(messages: ToolMessage[], tools: ToolSchema[], options: InferenceOptions | undefined, onToken: (token: string) => void): Promise<ToolCallResponse>;
|
|
29
38
|
isAvailable(): Promise<boolean>;
|
|
30
39
|
getInfo(): string;
|
|
31
40
|
listModels(): Promise<ModelDescriptor[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-adapter.d.ts","sourceRoot":"","sources":["../../src/inference/anthropic-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"anthropic-adapter.d.ts","sourceRoot":"","sources":["../../src/inference/anthropic-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAuFtE,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,QAAQ,CAAC,IAAI,eAAe;IAC5B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,cAAc;IAKlC,OAAO,CAAC,OAAO;IAUT,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IAsDrE,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,GAAG,SAAS,EACrC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,MAAM,CAAC;IAsFZ,aAAa,CACjB,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,gBAAgB,CAAC;IAyD5B;;;;;OAKG;IACG,mBAAmB,CACvB,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,gBAAgB,GAAG,SAAS,EACrC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IAqFtB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAYrC,OAAO,IAAI,MAAM;IAQX,UAAU,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CAmB/C"}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
import { logger } from '../utils/logger.js';
|
|
20
20
|
import { getCostTracker, recordCallWithUsage } from '../learning/cost-tracker.js';
|
|
21
21
|
import { attachHttpContext } from './http-error.js';
|
|
22
|
+
import { toAnthropicMessages, toAnthropicToolDefs, parseAnthropicToolResponse, AnthropicToolStreamAccumulator, } from './native-tools.js';
|
|
22
23
|
const ANTHROPIC_BASE_URL = 'https://api.anthropic.com';
|
|
23
24
|
const ANTHROPIC_VERSION = '2023-06-01';
|
|
24
25
|
/**
|
|
@@ -32,6 +33,28 @@ function anthropicModelMaxTokens(model) {
|
|
|
32
33
|
return 8192;
|
|
33
34
|
return 4096;
|
|
34
35
|
}
|
|
36
|
+
/** Flatten a thread's text content for cost metering (best-effort estimate). */
|
|
37
|
+
function promptDigest(messages) {
|
|
38
|
+
return messages.map((m) => m.content).filter(Boolean).join('\n');
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Feed one raw SSE line into the tool-stream accumulator. Returns the text
|
|
42
|
+
* delta to stream (or null). Non-data lines and [DONE] are ignored; malformed
|
|
43
|
+
* JSON lines are dropped (the stream self-heals on the next event).
|
|
44
|
+
*/
|
|
45
|
+
function consumeAnthropicToolSSE(accumulator, line) {
|
|
46
|
+
if (!line.startsWith('data: '))
|
|
47
|
+
return null;
|
|
48
|
+
const data = line.slice(6).trim();
|
|
49
|
+
if (!data || data === '[DONE]')
|
|
50
|
+
return null;
|
|
51
|
+
try {
|
|
52
|
+
return accumulator.consume(JSON.parse(data));
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
35
58
|
/** Parse an Anthropic SSE line → text delta (content_block_delta) or null. */
|
|
36
59
|
function parseAnthropicSSE(line) {
|
|
37
60
|
if (!line.startsWith('data: '))
|
|
@@ -188,6 +211,126 @@ export class AnthropicAdapter {
|
|
|
188
211
|
}
|
|
189
212
|
return fullContent.join('');
|
|
190
213
|
}
|
|
214
|
+
// ─── Phase 1.2 — native tool calling (Anthropic Messages tool use) ───────
|
|
215
|
+
//
|
|
216
|
+
// The assessment (Addendum v2 §D.3) found anthropic riding the JSON
|
|
217
|
+
// fallback ("0 generateTools matches") and marked native function-calling
|
|
218
|
+
// BLOCKING for loop-default. This implements the Messages tool-use
|
|
219
|
+
// protocol: system → top-level `system`, tool results → tool_result blocks
|
|
220
|
+
// merged into the following user message, tools → tools[{input_schema}].
|
|
221
|
+
// Wire mapping, parsing, and the streaming accumulator live in
|
|
222
|
+
// native-tools.ts — this method is a thin fetch. Cost parity with
|
|
223
|
+
// generate(): recordCallWithUsage on both paths.
|
|
224
|
+
async generateTools(messages, tools, options) {
|
|
225
|
+
const model = options?.model || this.config.model || 'default';
|
|
226
|
+
const maxTokens = Math.min(options?.maxTokens ?? this.config.maxTokens ?? 4096, anthropicModelMaxTokens(model));
|
|
227
|
+
const temperature = options?.temperature ?? this.config.temperature ?? 0.7;
|
|
228
|
+
const { system, messages: wireMessages } = toAnthropicMessages(messages);
|
|
229
|
+
const body = {
|
|
230
|
+
model,
|
|
231
|
+
max_tokens: maxTokens,
|
|
232
|
+
temperature,
|
|
233
|
+
messages: wireMessages,
|
|
234
|
+
tools: toAnthropicToolDefs(tools),
|
|
235
|
+
};
|
|
236
|
+
if (system)
|
|
237
|
+
body.system = system;
|
|
238
|
+
logger.debug(`Anthropic: Tool-calling with model=${model}, tools=${tools.length} via ${this.baseUrl}`);
|
|
239
|
+
const response = await fetch(`${this.baseUrl}/v1/messages`, {
|
|
240
|
+
method: 'POST',
|
|
241
|
+
headers: this.headers(options?.apiKey),
|
|
242
|
+
body: JSON.stringify(body),
|
|
243
|
+
signal: options?.signal ?? AbortSignal.timeout(this.config.timeoutMs ?? 30_000),
|
|
244
|
+
});
|
|
245
|
+
if (!response.ok) {
|
|
246
|
+
const errorBody = await response.text();
|
|
247
|
+
throw attachHttpContext(new Error(`Anthropic tool-calling API error (${response.status}): ${errorBody}`), response.status, response.headers);
|
|
248
|
+
}
|
|
249
|
+
const data = (await response.json());
|
|
250
|
+
const result = parseAnthropicToolResponse(data);
|
|
251
|
+
try {
|
|
252
|
+
recordCallWithUsage(getCostTracker(), 'anthropic', model, promptDigest(messages), result.content, data.usage
|
|
253
|
+
? { promptTokens: data.usage.input_tokens, completionTokens: data.usage.output_tokens }
|
|
254
|
+
: undefined);
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
// Non-critical.
|
|
258
|
+
}
|
|
259
|
+
return result;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* P4/Phase 1.2 — streaming native tool-calling: same protocol with
|
|
263
|
+
* `stream: true`; text deltas stream to onToken, tool_use blocks
|
|
264
|
+
* accumulate from content_block_start + input_json_delta fragments via
|
|
265
|
+
* the shared accumulator and finalize at message_stop.
|
|
266
|
+
*/
|
|
267
|
+
async generateToolsStream(messages, tools, options, onToken) {
|
|
268
|
+
const model = options?.model || this.config.model || 'default';
|
|
269
|
+
const maxTokens = Math.min(options?.maxTokens ?? this.config.maxTokens ?? 4096, anthropicModelMaxTokens(model));
|
|
270
|
+
const temperature = options?.temperature ?? this.config.temperature ?? 0.7;
|
|
271
|
+
const { system, messages: wireMessages } = toAnthropicMessages(messages);
|
|
272
|
+
const body = {
|
|
273
|
+
model,
|
|
274
|
+
max_tokens: maxTokens,
|
|
275
|
+
temperature,
|
|
276
|
+
stream: true,
|
|
277
|
+
messages: wireMessages,
|
|
278
|
+
tools: toAnthropicToolDefs(tools),
|
|
279
|
+
};
|
|
280
|
+
if (system)
|
|
281
|
+
body.system = system;
|
|
282
|
+
logger.debug(`Anthropic: Streaming tool-calling with model=${model}, tools=${tools.length} via ${this.baseUrl}`);
|
|
283
|
+
const response = await fetch(`${this.baseUrl}/v1/messages`, {
|
|
284
|
+
method: 'POST',
|
|
285
|
+
headers: this.headers(options?.apiKey),
|
|
286
|
+
body: JSON.stringify(body),
|
|
287
|
+
signal: options?.signal,
|
|
288
|
+
});
|
|
289
|
+
if (!response.ok) {
|
|
290
|
+
const errorBody = await response.text();
|
|
291
|
+
throw attachHttpContext(new Error(`Anthropic streaming tool-calling API error (${response.status}): ${errorBody}`), response.status, response.headers);
|
|
292
|
+
}
|
|
293
|
+
const reader = response.body?.getReader();
|
|
294
|
+
if (!reader)
|
|
295
|
+
throw new Error('Anthropic API error (no readable stream)');
|
|
296
|
+
const decoder = new TextDecoder();
|
|
297
|
+
let buffer = '';
|
|
298
|
+
const accumulator = new AnthropicToolStreamAccumulator();
|
|
299
|
+
try {
|
|
300
|
+
while (true) {
|
|
301
|
+
const { done, value } = await reader.read();
|
|
302
|
+
if (done)
|
|
303
|
+
break;
|
|
304
|
+
buffer += decoder.decode(value, { stream: true });
|
|
305
|
+
const lines = buffer.split('\n');
|
|
306
|
+
buffer = lines.pop() || '';
|
|
307
|
+
for (const line of lines) {
|
|
308
|
+
const text = consumeAnthropicToolSSE(accumulator, line.trim());
|
|
309
|
+
if (text)
|
|
310
|
+
onToken(text);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
const remaining = buffer.trim();
|
|
314
|
+
if (remaining) {
|
|
315
|
+
const text = consumeAnthropicToolSSE(accumulator, remaining);
|
|
316
|
+
if (text)
|
|
317
|
+
onToken(text);
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
finally {
|
|
321
|
+
reader.releaseLock();
|
|
322
|
+
}
|
|
323
|
+
const result = accumulator.finalize();
|
|
324
|
+
try {
|
|
325
|
+
recordCallWithUsage(getCostTracker(), 'anthropic', model, promptDigest(messages), result.content, accumulator.streamUsage
|
|
326
|
+
? { promptTokens: accumulator.streamUsage.promptTokens, completionTokens: accumulator.streamUsage.completionTokens }
|
|
327
|
+
: undefined);
|
|
328
|
+
}
|
|
329
|
+
catch {
|
|
330
|
+
// Non-critical.
|
|
331
|
+
}
|
|
332
|
+
return result;
|
|
333
|
+
}
|
|
191
334
|
async isAvailable() {
|
|
192
335
|
try {
|
|
193
336
|
const response = await fetch(`${this.baseUrl}/v1/models`, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic-adapter.js","sourceRoot":"","sources":["../../src/inference/anthropic-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anthropic-adapter.js","sourceRoot":"","sources":["../../src/inference/anthropic-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,mBAAmB,CAAC;AAE3B,MAAM,kBAAkB,GAAG,2BAA2B,CAAC;AACvD,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAEvC;;;GAGG;AACH,SAAS,uBAAuB,CAAC,KAAa;IAC5C,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,OAAO,IAAI,CAAC;AACd,CAAC;AAUD,gFAAgF;AAChF,SAAS,YAAY,CAAC,QAAuB;IAC3C,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,WAAuE,EACvE,IAAY;IAEZ,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAW,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,8EAA8E;AAC9E,SAAS,iBAAiB,CAAC,IAAY;IAAwF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IACzK,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAK7B,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACtG,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACrC,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,eAAe,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACpD,OAAO;gBACL,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE;aAC5F,CAAC;QACJ,CAAC;QACD,0EAA0E;QAC1E,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;YAC5D,OAAO;gBACL,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE;aAC5G,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,OAAO,gBAAgB;IAClB,IAAI,GAAG,WAAW,CAAC;IACpB,MAAM,CAAiB;IACvB,OAAO,CAAS;IAExB,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnF,CAAC;IAEO,OAAO,CAAC,MAAe;QAC7B,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,mBAAmB,EAAE,iBAAiB;SACvC,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACzC,IAAI,GAAG;YAAE,OAAO,CAAC,WAAW,CAAC,GAAG,GAAG,CAAC;QACpC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAA0B;QACvD,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EACnD,uBAAuB,CAAC,KAAK,CAAC,CAC/B,CAAC;QACF,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC;QAE3E,MAAM,CAAC,KAAK,CAAC,oCAAoC,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAE9E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,cAAc,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,UAAU,EAAE,SAAS;gBACrB,WAAW;gBACX,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aAC9C,CAAC;YACF,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC;SAC7D,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,iBAAiB,CAAC,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClI,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;QACjE,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC;aAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAK,CAAC;aACnB,IAAI,CAAC,EAAE,CAAC,CAAC;QACZ,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,CAAC;YACH,mBAAmB,CACjB,cAAc,EAAE,EAChB,WAAW,EACX,KAAK,EACL,MAAM,EACN,OAAO,EACP,IAAI,CAAC,KAAK;gBACR,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;gBACvF,CAAC,CAAC,SAAS,CACd,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,MAAc,EACd,OAAqC,EACrC,OAAgC;QAEhC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EACnD,uBAAuB,CAAC,KAAK,CAAC,CAC/B,CAAC;QACF,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC;QAE3E,MAAM,CAAC,KAAK,CAAC,mCAAmC,KAAK,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAE7E,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,cAAc,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK;gBACL,UAAU,EAAE,SAAS;gBACrB,WAAW;gBACX,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aAC9C,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,iBAAiB,CAAC,IAAI,KAAK,CAAC,wBAAwB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAClI,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAEzE,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,WAAwE,CAAC;QAE7E,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAChB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC9C,IAAI,CAAC,MAAM;wBAAE,SAAS;oBACtB,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBAChB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACvB,CAAC;oBACD,IAAI,MAAM,CAAC,KAAK;wBAAE,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC/C,CAAC;YACH,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,MAAM,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC5C,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;oBACjB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC9B,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;gBACD,IAAI,MAAM,EAAE,KAAK;oBAAE,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;YAChD,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,CAAC;YACH,mBAAmB,CAAC,cAAc,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,WAAW;gBACjG,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,WAAW,EAAE,gBAAgB,EAAE,WAAW,CAAC,YAAY,EAAE;gBACvF,CAAC,CAAC,SAAS,CAAC,CAAC;QACjB,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QAED,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC9B,CAAC;IAED,4EAA4E;IAC5E,EAAE;IACF,oEAAoE;IACpE,0EAA0E;IAC1E,mEAAmE;IACnE,2EAA2E;IAC3E,yEAAyE;IACzE,+DAA+D;IAC/D,kEAAkE;IAClE,iDAAiD;IACjD,KAAK,CAAC,aAAa,CACjB,QAAuB,EACvB,KAAmB,EACnB,OAA0B;QAE1B,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EACnD,uBAAuB,CAAC,KAAK,CAAC,CAC/B,CAAC;QACF,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC;QAE3E,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACzE,MAAM,IAAI,GAA4B;YACpC,KAAK;YACL,UAAU,EAAE,SAAS;YACrB,WAAW;YACX,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;SAClC,CAAC;QACF,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAEjC,MAAM,CAAC,KAAK,CAAC,sCAAsC,KAAK,WAAW,KAAK,CAAC,MAAM,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEvG,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,cAAc,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC;SAChF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,iBAAiB,CACrB,IAAI,KAAK,CAAC,qCAAqC,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,EAChF,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,OAAO,CACjB,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA+B,CAAC;QACnE,MAAM,MAAM,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC;QAEhD,IAAI,CAAC;YACH,mBAAmB,CACjB,cAAc,EAAE,EAChB,WAAW,EACX,KAAK,EACL,YAAY,CAAC,QAAQ,CAAC,EACtB,MAAM,CAAC,OAAO,EACd,IAAI,CAAC,KAAK;gBACR,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;gBACvF,CAAC,CAAC,SAAS,CACd,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,mBAAmB,CACvB,QAAuB,EACvB,KAAmB,EACnB,OAAqC,EACrC,OAAgC;QAEhC,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC;QAC/D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,OAAO,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,IAAI,EACnD,uBAAuB,CAAC,KAAK,CAAC,CAC/B,CAAC;QACF,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,GAAG,CAAC;QAE3E,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACzE,MAAM,IAAI,GAA4B;YACpC,KAAK;YACL,UAAU,EAAE,SAAS;YACrB,WAAW;YACX,MAAM,EAAE,IAAI;YACZ,QAAQ,EAAE,YAAY;YACtB,KAAK,EAAE,mBAAmB,CAAC,KAAK,CAAC;SAClC,CAAC;QACF,IAAI,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAEjC,MAAM,CAAC,KAAK,CAAC,gDAAgD,KAAK,WAAW,KAAK,CAAC,MAAM,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAEjH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,cAAc,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC;YACtC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;YAC1B,MAAM,EAAE,OAAO,EAAE,MAAM;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACxC,MAAM,iBAAiB,CACrB,IAAI,KAAK,CAAC,+CAA+C,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,EAC1F,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,OAAO,CACjB,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAEzE,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC;QAClC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,IAAI,8BAA8B,EAAE,CAAC;QAEzD,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,IAAI,IAAI;oBAAE,MAAM;gBAChB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;gBAClD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;gBAC3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAG,uBAAuB,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBAC/D,IAAI,IAAI;wBAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YACD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAChC,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,IAAI,GAAG,uBAAuB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;gBAC7D,IAAI,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,CAAC;QAED,MAAM,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAC;QAEtC,IAAI,CAAC;YACH,mBAAmB,CACjB,cAAc,EAAE,EAChB,WAAW,EACX,KAAK,EACL,YAAY,CAAC,QAAQ,CAAC,EACtB,MAAM,CAAC,OAAO,EACd,WAAW,CAAC,WAAW;gBACrB,CAAC,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,YAAY,EAAE,gBAAgB,EAAE,WAAW,CAAC,WAAW,CAAC,gBAAgB,EAAE;gBACpH,CAAC,CAAC,SAAS,CACd,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,gBAAgB;QAClB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,YAAY,EAAE;gBACxD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACvB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,OAAO,QAAQ,CAAC,EAAE,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,OAAO;QACL,OAAO;YACL,2CAA2C;YAC3C,aAAa,IAAI,CAAC,OAAO,EAAE;YAC3B,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,SAAS,EAAE;SAC3C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,YAAY,EAAE;gBACxD,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE;gBACvB,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;aAClC,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,EAAE;gBAAE,OAAO,EAAE,CAAC;YAC5B,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4D,CAAC;YAChG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACnC,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,EAAE;gBAC5B,QAAQ,EAAE,WAAW;gBACrB,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC;aACpC,CAAC,CAAC,CAAC;QACN,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { InferenceProvider, ModelDescriptor } from './interface.js';
|
|
2
|
+
import type { ToolCallResponse, ToolMessage, ToolSchema } from './interface.js';
|
|
2
3
|
import { InferenceOptions, ProviderConfig } from '../config/types.js';
|
|
3
4
|
/**
|
|
4
5
|
* Google Gemini Adapter (free tier)
|
|
@@ -10,6 +11,13 @@ export declare class GeminiAdapter implements InferenceProvider {
|
|
|
10
11
|
constructor(config: ProviderConfig);
|
|
11
12
|
generate(prompt: string, options?: InferenceOptions): Promise<string>;
|
|
12
13
|
generateStream(prompt: string, options: InferenceOptions | undefined, onToken: (token: string) => void): Promise<string>;
|
|
14
|
+
generateTools(messages: ToolMessage[], tools: ToolSchema[], options?: InferenceOptions): Promise<ToolCallResponse>;
|
|
15
|
+
/**
|
|
16
|
+
* P4/Phase 1.2 — streaming native tool-calling: same protocol with
|
|
17
|
+
* streamGenerateContent?alt=sse; content tokens stream to onToken, tool
|
|
18
|
+
* calls accumulate across chunks and parse at stream end.
|
|
19
|
+
*/
|
|
20
|
+
generateToolsStream(messages: ToolMessage[], tools: ToolSchema[], options: InferenceOptions | undefined, onToken: (token: string) => void): Promise<ToolCallResponse>;
|
|
13
21
|
isAvailable(): Promise<boolean>;
|
|
14
22
|
getInfo(): string;
|
|
15
23
|
listModels(): Promise<ModelDescriptor[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-adapter.d.ts","sourceRoot":"","sources":["../../src/inference/gemini-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"gemini-adapter.d.ts","sourceRoot":"","sources":["../../src/inference/gemini-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAoDtE;;;GAGG;AACH,qBAAa,aAAc,YAAW,iBAAiB;IACrD,QAAQ,CAAC,IAAI,mBAAmB;IAChC,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,EAAE,cAAc;IAI5B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4CrE,cAAc,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,gBAAgB,GAAG,SAAS,EACrC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,MAAM,CAAC;IAqGZ,aAAa,CACjB,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,CAAC,EAAE,gBAAgB,GACzB,OAAO,CAAC,gBAAgB,CAAC;IA+C5B;;;;OAIG;IACG,mBAAmB,CACvB,QAAQ,EAAE,WAAW,EAAE,EACvB,KAAK,EAAE,UAAU,EAAE,EACnB,OAAO,EAAE,gBAAgB,GAAG,SAAS,EACrC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,gBAAgB,CAAC;IA2FtB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC,OAAO,IAAI,MAAM;IAIX,UAAU,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;CAgD/C"}
|