@ggui-ai/ui-gen 0.27.0 → 0.29.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/dist/{adapter-h4_V69LI.d.ts → adapter-DLQ-5COm.d.ts} +1 -1
- package/dist/adapters/base.js +2 -27
- package/dist/adapters/base.js.map +1 -1
- package/dist/adapters/generation-dispatch.d.ts +14 -6
- package/dist/adapters/generation-dispatch.js +40 -19095
- package/dist/adapters/generation-dispatch.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -1
- package/dist/adapters/index.js +25 -3561
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/types.js +2 -9
- package/dist/adapters/types.js.map +1 -1
- package/dist/advanced/index.d.ts +13 -12
- package/dist/advanced/index.js +63 -21789
- package/dist/advanced/index.js.map +1 -1
- package/dist/{bank-Ctdp3FUA.d.ts → bank-LWaiAtaA.d.ts} +1 -1
- package/dist/blueprint-validator.js +6 -2301
- package/dist/blueprint-validator.js.map +1 -1
- package/dist/boilerplate.d.ts +3 -2
- package/dist/boilerplate.js +6 -1867
- package/dist/boilerplate.js.map +1 -1
- package/dist/check/index.d.ts +3 -2
- package/dist/check/index.js +6 -1923
- package/dist/check/index.js.map +1 -1
- package/dist/chunk-33B3BAWS.js +24 -0
- package/dist/chunk-33B3BAWS.js.map +1 -0
- package/dist/chunk-3HSGA6NI.js +591 -0
- package/dist/chunk-3HSGA6NI.js.map +1 -0
- package/dist/chunk-3NNNGNTO.js +1707 -0
- package/dist/chunk-3NNNGNTO.js.map +1 -0
- package/dist/chunk-3T2HMTON.js +79 -0
- package/dist/chunk-3T2HMTON.js.map +1 -0
- package/dist/chunk-3ZSSDV3L.js +123 -0
- package/dist/chunk-3ZSSDV3L.js.map +1 -0
- package/dist/chunk-4MBR5GA3.js +99 -0
- package/dist/chunk-4MBR5GA3.js.map +1 -0
- package/dist/chunk-56NJFD55.js +337 -0
- package/dist/chunk-56NJFD55.js.map +1 -0
- package/dist/chunk-5AGTY555.js +26 -0
- package/dist/chunk-5AGTY555.js.map +1 -0
- package/dist/chunk-5EJM7EGY.js +115 -0
- package/dist/chunk-5EJM7EGY.js.map +1 -0
- package/dist/chunk-5KXCQLLR.js +529 -0
- package/dist/chunk-5KXCQLLR.js.map +1 -0
- package/dist/chunk-5VBXHVEH.js +171 -0
- package/dist/chunk-5VBXHVEH.js.map +1 -0
- package/dist/chunk-6KDDEING.js +515 -0
- package/dist/chunk-6KDDEING.js.map +1 -0
- package/dist/chunk-6VDRWAP6.js +123 -0
- package/dist/chunk-6VDRWAP6.js.map +1 -0
- package/dist/chunk-732IBFEJ.js +2400 -0
- package/dist/chunk-732IBFEJ.js.map +1 -0
- package/dist/chunk-73AURS3I.js +46 -0
- package/dist/chunk-73AURS3I.js.map +1 -0
- package/dist/chunk-77H5SKLX.js +8 -0
- package/dist/chunk-77H5SKLX.js.map +1 -0
- package/dist/chunk-7QE3AHLE.js +35 -0
- package/dist/chunk-7QE3AHLE.js.map +1 -0
- package/dist/chunk-A375NNWN.js +11 -0
- package/dist/chunk-A375NNWN.js.map +1 -0
- package/dist/chunk-AOU33EFS.js +140 -0
- package/dist/chunk-AOU33EFS.js.map +1 -0
- package/dist/chunk-BA4QYA6E.js +461 -0
- package/dist/chunk-BA4QYA6E.js.map +1 -0
- package/dist/chunk-DBP764GL.js +3 -0
- package/dist/chunk-DBP764GL.js.map +1 -0
- package/dist/chunk-DUU3ZJDQ.js +41 -0
- package/dist/chunk-DUU3ZJDQ.js.map +1 -0
- package/dist/chunk-DXKRBXNU.js +30 -0
- package/dist/chunk-DXKRBXNU.js.map +1 -0
- package/dist/chunk-FB7OEEAH.js +1467 -0
- package/dist/chunk-FB7OEEAH.js.map +1 -0
- package/dist/chunk-FLRNMZV2.js +18 -0
- package/dist/chunk-FLRNMZV2.js.map +1 -0
- package/dist/chunk-FWJIMKFZ.js +2032 -0
- package/dist/chunk-FWJIMKFZ.js.map +1 -0
- package/dist/chunk-FXRHWYIQ.js +163 -0
- package/dist/chunk-FXRHWYIQ.js.map +1 -0
- package/dist/chunk-G3PMV62Z.js +33 -0
- package/dist/chunk-G3PMV62Z.js.map +1 -0
- package/dist/chunk-GAJI7Y3P.js +13 -0
- package/dist/chunk-GAJI7Y3P.js.map +1 -0
- package/dist/chunk-GYINWMPR.js +2052 -0
- package/dist/chunk-GYINWMPR.js.map +1 -0
- package/dist/chunk-HD6ABIK7.js +484 -0
- package/dist/chunk-HD6ABIK7.js.map +1 -0
- package/dist/chunk-HDQVHYO6.js +100 -0
- package/dist/chunk-HDQVHYO6.js.map +1 -0
- package/dist/chunk-IHUT3SIW.js +7 -0
- package/dist/chunk-IHUT3SIW.js.map +1 -0
- package/dist/chunk-JDH5EGNZ.js +126 -0
- package/dist/chunk-JDH5EGNZ.js.map +1 -0
- package/dist/chunk-JMD4RGSV.js +37 -0
- package/dist/chunk-JMD4RGSV.js.map +1 -0
- package/dist/chunk-KJWGZL5B.js +33 -0
- package/dist/chunk-KJWGZL5B.js.map +1 -0
- package/dist/chunk-MKMDQFZ7.js +86 -0
- package/dist/chunk-MKMDQFZ7.js.map +1 -0
- package/dist/chunk-NF6JUZWF.js +85 -0
- package/dist/chunk-NF6JUZWF.js.map +1 -0
- package/dist/chunk-O2YC6XDC.js +1933 -0
- package/dist/chunk-O2YC6XDC.js.map +1 -0
- package/dist/chunk-OVLH5ICV.js +29 -0
- package/dist/chunk-OVLH5ICV.js.map +1 -0
- package/dist/chunk-PBOYHGSD.js +106 -0
- package/dist/chunk-PBOYHGSD.js.map +1 -0
- package/dist/chunk-PJFH7QWA.js +81 -0
- package/dist/chunk-PJFH7QWA.js.map +1 -0
- package/dist/chunk-PUH4CXGZ.js +284 -0
- package/dist/chunk-PUH4CXGZ.js.map +1 -0
- package/dist/chunk-QLXXPGTV.js +18 -0
- package/dist/chunk-QLXXPGTV.js.map +1 -0
- package/dist/chunk-R5GIGPW2.js +2845 -0
- package/dist/chunk-R5GIGPW2.js.map +1 -0
- package/dist/chunk-RH4IUSTO.js +83 -0
- package/dist/chunk-RH4IUSTO.js.map +1 -0
- package/dist/chunk-S2GVXKKY.js +153 -0
- package/dist/chunk-S2GVXKKY.js.map +1 -0
- package/dist/chunk-TVHGKFJS.js +58 -0
- package/dist/chunk-TVHGKFJS.js.map +1 -0
- package/dist/chunk-U7GALWLG.js +66 -0
- package/dist/chunk-U7GALWLG.js.map +1 -0
- package/dist/chunk-VTC263LT.js +256 -0
- package/dist/chunk-VTC263LT.js.map +1 -0
- package/dist/chunk-WEOXFEVE.js +739 -0
- package/dist/chunk-WEOXFEVE.js.map +1 -0
- package/dist/chunk-WYHP46LT.js +28 -0
- package/dist/chunk-WYHP46LT.js.map +1 -0
- package/dist/chunk-XGLO5LGG.js +274 -0
- package/dist/chunk-XGLO5LGG.js.map +1 -0
- package/dist/chunk-XRBCRKA2.js +29 -0
- package/dist/chunk-XRBCRKA2.js.map +1 -0
- package/dist/chunk-XW7ADFFV.js +340 -0
- package/dist/chunk-XW7ADFFV.js.map +1 -0
- package/dist/chunk-YIQ42IUX.js +34 -0
- package/dist/chunk-YIQ42IUX.js.map +1 -0
- package/dist/chunk-YJZTUY7B.js +101 -0
- package/dist/chunk-YJZTUY7B.js.map +1 -0
- package/dist/chunk-Z3CXME3K.js +107 -0
- package/dist/chunk-Z3CXME3K.js.map +1 -0
- package/dist/classifier/index.js +2 -527
- package/dist/classifier/index.js.map +1 -1
- package/dist/client-JBPCXU7W.js +4 -0
- package/dist/client-JBPCXU7W.js.map +1 -0
- package/dist/compose.js +3 -367
- package/dist/compose.js.map +1 -1
- package/dist/cost-tracker-HHGQ4FTW.js +67 -0
- package/dist/cost-tracker-HHGQ4FTW.js.map +1 -0
- package/dist/{create-ui-generator-BrZHF0cf.d.ts → create-ui-generator-BY-WeaPi.d.ts} +3 -3
- package/dist/{design-mode-DGWN_Gkm.d.ts → design-mode-XyOQmzE0.d.ts} +4 -3
- package/dist/{dispatch-B07TI30d.d.ts → dispatch-8LzTddKw.d.ts} +3 -2
- package/dist/dist-UALN6ZVB.js +543 -0
- package/dist/dist-UALN6ZVB.js.map +1 -0
- package/dist/dupe-break-X6K7QFIS.js +4 -0
- package/dist/dupe-break-X6K7QFIS.js.map +1 -0
- package/dist/evaluation/axis-checks/index.d.ts +5 -4
- package/dist/evaluation/axis-checks/index.js +6 -1818
- package/dist/evaluation/axis-checks/index.js.map +1 -1
- package/dist/evaluation/axis-checks/registry.d.ts +3 -2
- package/dist/evaluation/axis-checks/registry.js +3 -1748
- package/dist/evaluation/axis-checks/registry.js.map +1 -1
- package/dist/evaluation/index.d.ts +49 -132
- package/dist/evaluation/index.js +302 -6368
- package/dist/evaluation/index.js.map +1 -1
- package/dist/evaluation/types.d.ts +3 -2
- package/dist/evaluation/types.js +2 -5
- package/dist/evaluation/types.js.map +1 -1
- package/dist/fragments/index.js +2 -338
- package/dist/fragments/index.js.map +1 -1
- package/dist/{generate-tSO_shQ0.d.ts → generate-DQ4ci90s.d.ts} +1 -1
- package/dist/harness/check/runtime-render/index.d.ts +35 -15
- package/dist/harness/check/runtime-render/index.js +6 -2390
- package/dist/harness/check/runtime-render/index.js.map +1 -1
- package/dist/harness/check/runtime-render/render-check-worker.js +4 -1739
- package/dist/harness/check/runtime-render/render-check-worker.js.map +1 -1
- package/dist/harness/index.d.ts +3 -2
- package/dist/harness/index.js +23 -5124
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/llm-trace-sink.js +2 -24
- package/dist/harness/llm-trace-sink.js.map +1 -1
- package/dist/harness/prompts.d.ts +2 -2
- package/dist/harness/prompts.js +8 -324
- package/dist/harness/prompts.js.map +1 -1
- package/dist/harness/result-types.d.ts +18 -6
- package/dist/harness/result-types.js +2 -0
- package/dist/harness/result-types.js.map +1 -1
- package/dist/harness/runtime.d.ts +22 -5
- package/dist/harness/runtime.js +10 -2313
- package/dist/harness/runtime.js.map +1 -1
- package/dist/harness/types-public.d.ts +3 -2
- package/dist/harness/types-public.js +16 -2954
- package/dist/harness/types-public.js.map +1 -1
- package/dist/harness/validator-trace-sink.d.ts +3 -2
- package/dist/harness/validator-trace-sink.js +2 -26
- package/dist/harness/validator-trace-sink.js.map +1 -1
- package/dist/hash.js +2 -39
- package/dist/hash.js.map +1 -1
- package/dist/hashline-5OKREIRM.js +4 -0
- package/dist/hashline-5OKREIRM.js.map +1 -0
- package/dist/index.d.ts +51 -12
- package/dist/index.js +57 -21850
- package/dist/index.js.map +1 -1
- package/dist/llm-evaluator-PN3WFCS4.js +653 -0
- package/dist/llm-evaluator-PN3WFCS4.js.map +1 -0
- package/dist/magic-string.es-2NZTC4GZ.js +1307 -0
- package/dist/magic-string.es-2NZTC4GZ.js.map +1 -0
- package/dist/patch.d.ts +3 -2
- package/dist/patch.js +2 -56
- package/dist/patch.js.map +1 -1
- package/dist/policy-VCYKGSAC.js +5 -0
- package/dist/policy-VCYKGSAC.js.map +1 -0
- package/dist/policy.js +2 -35
- package/dist/policy.js.map +1 -1
- package/dist/primitive-index-2OF6F4TZ.js +131 -0
- package/dist/primitive-index-2OF6F4TZ.js.map +1 -0
- package/dist/primitive-slice-WTMBLYFJ.js +235 -0
- package/dist/primitive-slice-WTMBLYFJ.js.map +1 -0
- package/dist/{prompts-BhNUuRoZ.d.ts → prompts-CLZGywMP.d.ts} +1 -1
- package/dist/provider-adapter-contract.js +10407 -14204
- package/dist/provider-adapter-contract.js.map +1 -1
- package/dist/provider-adapter.js +2 -44
- package/dist/provider-adapter.js.map +1 -1
- package/dist/providers/index.d.ts +89 -1
- package/dist/providers/index.js +115 -44
- package/dist/providers/index.js.map +1 -1
- package/dist/raw-C6KBH5I3.js +141 -0
- package/dist/raw-C6KBH5I3.js.map +1 -0
- package/dist/raw-FXSBXQTZ.js +7 -0
- package/dist/raw-FXSBXQTZ.js.map +1 -0
- package/dist/raw-MURDUPGK.js +8 -0
- package/dist/raw-MURDUPGK.js.map +1 -0
- package/dist/raw-T3GW3UVX.js +8 -0
- package/dist/raw-T3GW3UVX.js.map +1 -0
- package/dist/render-check-host-ZNIS6BJ5.js +5 -0
- package/dist/render-check-host-ZNIS6BJ5.js.map +1 -0
- package/dist/sdk-4JNSDNSR.js +6 -0
- package/dist/sdk-4JNSDNSR.js.map +1 -0
- package/dist/sdk-DIVJMHCX.js +7 -0
- package/dist/sdk-DIVJMHCX.js.map +1 -0
- package/dist/sdk-QRJOCRTS.js +7 -0
- package/dist/sdk-QRJOCRTS.js.map +1 -0
- package/dist/tag-balance-CTHCTRJ7.js +123 -0
- package/dist/tag-balance-CTHCTRJ7.js.map +1 -0
- package/dist/tools/get-primitives-ts.d.ts +1 -1
- package/dist/tools/get-primitives-ts.js +3 -1
- package/dist/tools/get-primitives-ts.js.map +1 -1
- package/dist/tools/render-check-worker.js +3 -40
- package/dist/tools/render-check-worker.js.map +1 -1
- package/dist/{types-public-h8IMnYuh.d.ts → types-public-hYlrerZh.d.ts} +35 -2
- package/dist/validation/index.d.ts +2 -2
- package/dist/validation/index.js +3 -498
- package/dist/validation/index.js.map +1 -1
- package/dist/{visual-evaluator-C2strxqD.d.ts → visual-evaluator-KskajxD5.d.ts} +14 -4
- package/dist/visual-evaluator-TGEXYQTP.js +12 -0
- package/dist/visual-evaluator-TGEXYQTP.js.map +1 -0
- package/dist/workflows.d.ts +3 -2
- package/dist/workflows.js +2 -151
- package/dist/workflows.js.map +1 -1
- package/package.json +21 -17
- package/src/adapters/claude/sdk.ts +4 -2
- package/src/adapters/claude/tool-bridge.ts +2 -1
- package/src/adapters/generation-dispatch.ts +9 -0
- package/src/adapters/openai/raw.ts +4 -0
- package/src/adapters/openai/sdk.ts +6 -1
- package/src/adapters/openai/tokens.ts +21 -7
- package/src/adapters/provider-router.ts +1 -0
- package/src/adapters/tool-bridge.ts +1 -1
- package/src/adapters/tools.ts +1 -1
- package/src/advanced/feedback.ts +1 -2
- package/src/advanced/generator.ts +4 -3
- package/src/boilerplate/free-design-prompt.ts +7 -0
- package/src/boilerplate/generate.ts +18 -5
- package/src/boilerplate/hard-sections.ts +8 -3
- package/src/boilerplate/react-hooks.ts +56 -0
- package/src/boilerplate/system-prompt.ts +12 -3
- package/src/check/run-tier0.ts +233 -8
- package/src/check/type-checker.ts +128 -16
- package/src/coding-agent/tools.ts +26 -3
- package/src/create-ui-generator.ts +4 -2
- package/src/design-mode.ts +4 -9
- package/src/evaluation/axis-checks/checks/state-merge.ts +3 -5
- package/src/evaluation/axis-checks/checks/state-payload.ts +1 -28
- package/src/evaluation/axis-checks/checks/tint.ts +197 -0
- package/src/evaluation/axis-checks/helpers.ts +246 -0
- package/src/evaluation/axis-checks/registry.ts +2 -0
- package/src/evaluation/criteria/__fixtures__/edge-v2-draw2.json +4629 -0
- package/src/evaluation/criteria/bank.ts +1 -1
- package/src/evaluation/criteria/edge-instruments.ts +14 -0
- package/src/evaluation/criteria/edge-probe-v2.ts +352 -0
- package/src/evaluation/criteria/edge-v2.ts +242 -0
- package/src/evaluation/criteria/resolve.ts +24 -5
- package/src/evaluation/evaluator.ts +2 -2
- package/src/evaluation/index.ts +3 -5
- package/src/evaluation/llm-evaluator.ts +2 -2
- package/src/evaluation/mcp-server.ts +0 -50
- package/src/evaluation/types-public.ts +6 -1
- package/src/evaluation/visual-evaluator.ts +162 -31
- package/src/harness/check/runtime-render/index.ts +28 -4
- package/src/harness/check/runtime-render/render-check.ts +20 -21
- package/src/harness/claude-agent-sdk-loader.ts +93 -0
- package/src/harness/claude-code-login-query.ts +1 -1
- package/src/harness/coding/assemble-result.ts +1 -0
- package/src/harness/coding/dupe-break.ts +70 -0
- package/src/harness/coding/generate-task-runner.ts +6 -1
- package/src/harness/coding/run-coding-turn.ts +59 -1
- package/src/harness/coding/run-eval-round.ts +9 -0
- package/src/harness/llm-router.ts +50 -2
- package/src/harness/result-types.ts +12 -0
- package/src/harness/runtime.ts +17 -0
- package/src/index.ts +10 -1
- package/src/providers/anthropic-tool-call.ts +263 -0
- package/src/providers/index.ts +13 -0
- package/src/tools/get-primitives-ts.ts +1 -1
- package/src/tools/render-check.ts +4 -4
- package/src/validation/primitives.ts +2 -1
- package/src/evaluation/loop.ts +0 -218
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { createCapture, captureMarkers, captureSourceCode, captureCompiledCode } from './chunk-YJZTUY7B.js';
|
|
2
|
+
import { GeneratorAdapter, hasCredentials } from './chunk-XRBCRKA2.js';
|
|
3
|
+
import { toolArgsToJsonObject, zodToJsonSchema } from './chunk-7QE3AHLE.js';
|
|
4
|
+
|
|
5
|
+
// src/adapters/google/raw.ts
|
|
6
|
+
async function loadGoogleGenAI() {
|
|
7
|
+
return import('@google/genai');
|
|
8
|
+
}
|
|
9
|
+
var GoogleRawAdapter = class extends GeneratorAdapter {
|
|
10
|
+
provider = "google";
|
|
11
|
+
mode = "raw";
|
|
12
|
+
displayName = "Google Gemini (Interactions API)";
|
|
13
|
+
client = null;
|
|
14
|
+
constructor(config = {}) {
|
|
15
|
+
super(config);
|
|
16
|
+
}
|
|
17
|
+
isAvailable() {
|
|
18
|
+
return hasCredentials(this.config, "GEMINI_API_KEY", "GOOGLE_API_KEY");
|
|
19
|
+
}
|
|
20
|
+
async generate(params) {
|
|
21
|
+
const startTime = Date.now();
|
|
22
|
+
if (!this.client) {
|
|
23
|
+
const { GoogleGenAI } = await loadGoogleGenAI();
|
|
24
|
+
this.client = new GoogleGenAI({
|
|
25
|
+
apiKey: this.config.apiKey || process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY,
|
|
26
|
+
httpOptions: { timeout: 3e5 }
|
|
27
|
+
// 5 min — Pro models can be slow
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
const tools = params.tools.map(toInteractionTool);
|
|
31
|
+
const capture = createCapture();
|
|
32
|
+
let totalInputTokens = 0;
|
|
33
|
+
let totalOutputTokens = 0;
|
|
34
|
+
let turnsUsed = 0;
|
|
35
|
+
const thinkingLevel = this.config.thinkingLevel;
|
|
36
|
+
const generationConfig = thinkingLevel ? { thinking_level: thinkingLevel } : void 0;
|
|
37
|
+
let interaction = await this.client.interactions.create({
|
|
38
|
+
model: params.model,
|
|
39
|
+
system_instruction: params.systemPrompt,
|
|
40
|
+
tools,
|
|
41
|
+
input: params.userPrompt,
|
|
42
|
+
...generationConfig ? { generation_config: generationConfig } : {}
|
|
43
|
+
});
|
|
44
|
+
for (let turn = 0; turn < params.maxTurns; turn++) {
|
|
45
|
+
turnsUsed = turn + 1;
|
|
46
|
+
if (interaction.usage) {
|
|
47
|
+
totalInputTokens += interaction.usage.total_input_tokens ?? 0;
|
|
48
|
+
totalOutputTokens += interaction.usage.total_output_tokens ?? 0;
|
|
49
|
+
}
|
|
50
|
+
for (const step of interaction.steps) {
|
|
51
|
+
if (step.type === "model_output") {
|
|
52
|
+
for (const content of step.content ?? []) {
|
|
53
|
+
if (content.type === "text") {
|
|
54
|
+
captureMarkers(capture, content.text);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const functionCalls = interaction.steps.filter(
|
|
60
|
+
(s) => s.type === "function_call"
|
|
61
|
+
);
|
|
62
|
+
if (functionCalls.length === 0) break;
|
|
63
|
+
const results = [];
|
|
64
|
+
for (const fc of functionCalls) {
|
|
65
|
+
const toolDef = params.tools.find((t) => t.name === fc.name);
|
|
66
|
+
if (!toolDef) {
|
|
67
|
+
results.push({
|
|
68
|
+
type: "function_result",
|
|
69
|
+
call_id: fc.id,
|
|
70
|
+
name: fc.name,
|
|
71
|
+
result: JSON.stringify({ error: `Tool '${fc.name}' not found` }),
|
|
72
|
+
is_error: true
|
|
73
|
+
});
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
const args = toolArgsToJsonObject(fc.arguments);
|
|
77
|
+
captureSourceCode(capture, fc.name, args);
|
|
78
|
+
const result = await toolDef.handler(args);
|
|
79
|
+
captureCompiledCode(capture, fc.name, result);
|
|
80
|
+
results.push({
|
|
81
|
+
type: "function_result",
|
|
82
|
+
call_id: fc.id,
|
|
83
|
+
name: fc.name,
|
|
84
|
+
result: result.content[0]?.text ?? ""
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
interaction = await this.client.interactions.create({
|
|
88
|
+
model: params.model,
|
|
89
|
+
previous_interaction_id: interaction.id,
|
|
90
|
+
input: results,
|
|
91
|
+
...generationConfig ? { generation_config: generationConfig } : {}
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
if (!capture.compiledCode) {
|
|
95
|
+
throw new Error("Google raw adapter: no compiled code produced after all turns");
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
compiledCode: capture.compiledCode,
|
|
99
|
+
sourceCode: capture.sourceCode,
|
|
100
|
+
stream: capture.stream,
|
|
101
|
+
generatorMeta: capture.generatorMeta,
|
|
102
|
+
tokens: {
|
|
103
|
+
input: totalInputTokens,
|
|
104
|
+
output: totalOutputTokens,
|
|
105
|
+
total: totalInputTokens + totalOutputTokens
|
|
106
|
+
},
|
|
107
|
+
generationTimeMs: Date.now() - startTime,
|
|
108
|
+
turnsUsed
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
function toInteractionTool(def) {
|
|
113
|
+
return {
|
|
114
|
+
type: "function",
|
|
115
|
+
name: def.name,
|
|
116
|
+
description: def.description,
|
|
117
|
+
parameters: zodToJsonSchema(def.inputSchema)
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export { GoogleRawAdapter };
|
|
122
|
+
//# sourceMappingURL=chunk-6VDRWAP6.js.map
|
|
123
|
+
//# sourceMappingURL=chunk-6VDRWAP6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/adapters/google/raw.ts"],"names":[],"mappings":"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","file":"chunk-6VDRWAP6.js","sourcesContent":["// packages/ui-gen/src/adapters/google/raw.ts\n//\n// Google adapter using the Interactions API (@google/genai >= 2.0.0,\n// 'steps' schema). Uses interactions.create() with\n// previous_interaction_id for server-side state management. System\n// prompt and tools sent on turn 1, subsequent turns only send\n// function_result steps — server remembers context.\n\nimport type { GoogleGenAI as GoogleGenAIType, Interactions } from '@google/genai';\nimport { GeneratorAdapter, hasCredentials } from '../base';\nimport type { AdapterConfig, GenerateParams } from '../base';\nimport type { AdapterResult, ToolDefinition, ProviderName, AdapterMode } from '../types';\nimport { zodToJsonSchema, toolArgsToJsonObject } from '../tool-bridge';\nimport { createCapture, captureSourceCode, captureCompiledCode, captureMarkers } from '../extract-code';\n\nasync function loadGoogleGenAI() {\n return import('@google/genai');\n}\n\nexport class GoogleRawAdapter extends GeneratorAdapter {\n readonly provider: ProviderName = 'google';\n readonly mode: AdapterMode = 'raw';\n readonly displayName = 'Google Gemini (Interactions API)';\n\n private client: GoogleGenAIType | null = null;\n\n constructor(config: AdapterConfig = {}) {\n super(config);\n }\n\n isAvailable(): boolean {\n return hasCredentials(this.config, 'GEMINI_API_KEY', 'GOOGLE_API_KEY');\n }\n\n async generate(params: GenerateParams): Promise<AdapterResult> {\n const startTime = Date.now();\n\n if (!this.client) {\n const { GoogleGenAI } = await loadGoogleGenAI();\n this.client = new GoogleGenAI({\n apiKey: this.config.apiKey || process.env.GEMINI_API_KEY || process.env.GOOGLE_API_KEY,\n httpOptions: { timeout: 300_000 }, // 5 min — Pro models can be slow\n });\n }\n\n const tools = params.tools.map(toInteractionTool);\n const capture = createCapture();\n let totalInputTokens = 0;\n let totalOutputTokens = 0;\n let turnsUsed = 0;\n\n // Thinking control. Gemini 3.x Flash defaults thinking ON — the\n // dominant latency cost in UI generation, where the task is\n // contract-bounded code emission, not open-ended reasoning. The\n // Interactions API exposes this as `generation_config.thinking_level`\n // ('minimal' is the floor — there is no true off — then 'low' /\n // 'medium' / 'high'). When the caller pins a level we forward it on\n // every turn. Omitted → provider default (unchanged behavior).\n const thinkingLevel = this.config.thinkingLevel;\n const generationConfig = thinkingLevel\n ? { thinking_level: thinkingLevel }\n : undefined;\n\n // Turn 1: send system instruction + tools + user prompt\n let interaction = await this.client.interactions.create({\n model: params.model,\n system_instruction: params.systemPrompt,\n tools,\n input: params.userPrompt,\n ...(generationConfig ? { generation_config: generationConfig } : {}),\n });\n\n for (let turn = 0; turn < params.maxTurns; turn++) {\n turnsUsed = turn + 1;\n\n // Track tokens\n if (interaction.usage) {\n totalInputTokens += interaction.usage.total_input_tokens ?? 0;\n totalOutputTokens += interaction.usage.total_output_tokens ?? 0;\n }\n\n // Scan model-output text for streamSpec/generatorMeta markers.\n // `steps` is a discriminated union — even at thinking_level\n // 'minimal' a `thought` step is present, so iterate by\n // discriminant and skip step types we don't consume.\n for (const step of interaction.steps) {\n if (step.type === 'model_output') {\n for (const content of step.content ?? []) {\n if (content.type === 'text') {\n captureMarkers(capture, content.text);\n }\n }\n }\n }\n\n // Collect function calls\n const functionCalls = interaction.steps.filter(\n (s): s is Interactions.FunctionCallStep => s.type === 'function_call',\n );\n\n if (functionCalls.length === 0) break;\n\n // Execute tools and build function_result inputs\n const results: Interactions.FunctionResultStep[] = [];\n\n for (const fc of functionCalls) {\n const toolDef = params.tools.find((t) => t.name === fc.name);\n if (!toolDef) {\n results.push({\n type: 'function_result',\n call_id: fc.id,\n name: fc.name,\n result: JSON.stringify({ error: `Tool '${fc.name}' not found` }),\n is_error: true,\n });\n continue;\n }\n\n const args = toolArgsToJsonObject(fc.arguments);\n captureSourceCode(capture, fc.name, args);\n\n const result = await toolDef.handler(args);\n captureCompiledCode(capture, fc.name, result);\n\n results.push({\n type: 'function_result',\n call_id: fc.id,\n name: fc.name,\n result: result.content[0]?.text ?? '',\n });\n }\n\n // Next turn: only send function results — server has the history\n interaction = await this.client.interactions.create({\n model: params.model,\n previous_interaction_id: interaction.id,\n input: results,\n ...(generationConfig ? { generation_config: generationConfig } : {}),\n });\n }\n\n if (!capture.compiledCode) {\n throw new Error('Google raw adapter: no compiled code produced after all turns');\n }\n\n return {\n compiledCode: capture.compiledCode,\n sourceCode: capture.sourceCode,\n stream: capture.stream,\n generatorMeta: capture.generatorMeta,\n tokens: {\n input: totalInputTokens,\n output: totalOutputTokens,\n total: totalInputTokens + totalOutputTokens,\n },\n generationTimeMs: Date.now() - startTime,\n turnsUsed,\n };\n }\n}\n\n/** Convert ToolDefinition to Interactions API function tool format. */\nfunction toInteractionTool(def: ToolDefinition): Interactions.Function {\n return {\n type: 'function',\n name: def.name,\n description: def.description,\n parameters: zodToJsonSchema(def.inputSchema),\n };\n}\n"]}
|