veryfront 0.1.867 → 0.1.869

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.
Files changed (106) hide show
  1. package/esm/cli/commands/demo/steps.js +1 -1
  2. package/esm/cli/commands/dev/command.d.ts.map +1 -1
  3. package/esm/cli/commands/dev/command.js +6 -1
  4. package/esm/cli/commands/start/command.d.ts +12 -0
  5. package/esm/cli/commands/start/command.d.ts.map +1 -1
  6. package/esm/cli/commands/start/command.js +32 -6
  7. package/esm/cli/shared/runtime-auth.d.ts +12 -0
  8. package/esm/cli/shared/runtime-auth.d.ts.map +1 -0
  9. package/esm/cli/shared/runtime-auth.js +34 -0
  10. package/esm/deno.js +1 -1
  11. package/esm/src/agent/ag-ui/handler.d.ts.map +1 -1
  12. package/esm/src/agent/ag-ui/handler.js +17 -5
  13. package/esm/src/agent/react/index.d.ts +1 -1
  14. package/esm/src/agent/react/index.d.ts.map +1 -1
  15. package/esm/src/agent/react/use-chat/index.d.ts +1 -1
  16. package/esm/src/agent/react/use-chat/index.d.ts.map +1 -1
  17. package/esm/src/agent/react/use-chat/types.d.ts +2 -10
  18. package/esm/src/agent/react/use-chat/types.d.ts.map +1 -1
  19. package/esm/src/agent/react/use-chat/use-chat.d.ts +3 -4
  20. package/esm/src/agent/react/use-chat/use-chat.d.ts.map +1 -1
  21. package/esm/src/agent/react/use-chat/use-chat.js +16 -107
  22. package/esm/src/agent/runtime/index.d.ts.map +1 -1
  23. package/esm/src/agent/runtime/index.js +7 -12
  24. package/esm/src/agent/runtime/model-resolution.d.ts +2 -2
  25. package/esm/src/agent/runtime/model-resolution.d.ts.map +1 -1
  26. package/esm/src/agent/runtime/model-resolution.js +59 -13
  27. package/esm/src/agent/types.d.ts +2 -2
  28. package/esm/src/chat/index.d.ts +2 -2
  29. package/esm/src/chat/index.d.ts.map +1 -1
  30. package/esm/src/chat/index.js +1 -1
  31. package/esm/src/embedding/upload-handler.d.ts +2 -1
  32. package/esm/src/embedding/upload-handler.d.ts.map +1 -1
  33. package/esm/src/embedding/upload-handler.js +2 -1
  34. package/esm/src/html/styles-builder/plugin-loader.d.ts.map +1 -1
  35. package/esm/src/html/styles-builder/plugin-loader.js +2 -12
  36. package/esm/src/integrations/feature-flags.d.ts.map +1 -1
  37. package/esm/src/integrations/feature-flags.js +2 -10
  38. package/esm/src/platform/compat/dns.d.ts +6 -0
  39. package/esm/src/platform/compat/dns.d.ts.map +1 -0
  40. package/esm/src/platform/compat/dns.js +34 -0
  41. package/esm/src/platform/compat/opaque-dependency-versions.d.ts +1 -1
  42. package/esm/src/platform/compat/opaque-dependency-versions.js +1 -1
  43. package/esm/src/platform/index.d.ts +1 -0
  44. package/esm/src/platform/index.d.ts.map +1 -1
  45. package/esm/src/platform/index.js +2 -0
  46. package/esm/src/provider/index.d.ts +1 -1
  47. package/esm/src/provider/index.d.ts.map +1 -1
  48. package/esm/src/provider/index.js +1 -1
  49. package/esm/src/provider/local/env.d.ts +3 -0
  50. package/esm/src/provider/local/env.d.ts.map +1 -1
  51. package/esm/src/provider/local/env.js +31 -0
  52. package/esm/src/provider/local/local-engine.d.ts +38 -5
  53. package/esm/src/provider/local/local-engine.d.ts.map +1 -1
  54. package/esm/src/provider/local/local-engine.js +191 -19
  55. package/esm/src/provider/local/model-catalog.d.ts +8 -4
  56. package/esm/src/provider/local/model-catalog.d.ts.map +1 -1
  57. package/esm/src/provider/local/model-catalog.js +36 -41
  58. package/esm/src/provider/local/model-runtime-adapter.js +5 -5
  59. package/esm/src/provider/model-registry.d.ts +2 -12
  60. package/esm/src/provider/model-registry.d.ts.map +1 -1
  61. package/esm/src/provider/model-registry.js +4 -92
  62. package/esm/src/react/components/chat/chat/components/inference-badge.d.ts +2 -3
  63. package/esm/src/react/components/chat/chat/components/inference-badge.d.ts.map +1 -1
  64. package/esm/src/react/components/chat/chat/components/inference-badge.js +3 -31
  65. package/esm/src/react/components/chat/chat/composition/chat-message-list.d.ts +1 -2
  66. package/esm/src/react/components/chat/chat/composition/chat-message-list.d.ts.map +1 -1
  67. package/esm/src/react/components/chat/chat/composition/chat-message-list.js +5 -11
  68. package/esm/src/react/components/chat/chat/index.d.ts +2 -4
  69. package/esm/src/react/components/chat/chat/index.d.ts.map +1 -1
  70. package/esm/src/react/components/chat/chat/index.js +4 -6
  71. package/esm/src/react/components/chat/chat-with-sidebar.d.ts +0 -1
  72. package/esm/src/react/components/chat/chat-with-sidebar.d.ts.map +1 -1
  73. package/esm/src/react/components/chat/chat-with-sidebar.js +0 -1
  74. package/esm/src/react/components/chat/chat.d.ts +1 -1
  75. package/esm/src/react/components/chat/chat.d.ts.map +1 -1
  76. package/esm/src/react/components/chat/chat.js +1 -1
  77. package/esm/src/security/sandbox/worker-egress-guard.d.ts +1 -1
  78. package/esm/src/security/sandbox/worker-egress-guard.d.ts.map +1 -1
  79. package/esm/src/security/sandbox/worker-egress-guard.js +4 -17
  80. package/esm/src/server/handlers/dev/framework-candidates.generated.d.ts.map +1 -1
  81. package/esm/src/server/handlers/dev/framework-candidates.generated.js +3 -54
  82. package/esm/src/tool/project-scoped-remote-tools.d.ts.map +1 -1
  83. package/esm/src/tool/project-scoped-remote-tools.js +17 -2
  84. package/esm/src/utils/version-constant.d.ts +1 -1
  85. package/esm/src/utils/version-constant.js +1 -1
  86. package/esm/src/workflow/worker/dynamic-run-entrypoint.d.ts +3 -2
  87. package/esm/src/workflow/worker/dynamic-run-entrypoint.d.ts.map +1 -1
  88. package/esm/src/workflow/worker/run-entrypoint.d.ts +6 -4
  89. package/esm/src/workflow/worker/run-entrypoint.d.ts.map +1 -1
  90. package/esm/src/workflow/worker/run-entrypoint.js +3 -2
  91. package/package.json +2 -2
  92. package/esm/src/agent/react/use-chat/browser-inference/browser-engine.d.ts +0 -18
  93. package/esm/src/agent/react/use-chat/browser-inference/browser-engine.d.ts.map +0 -1
  94. package/esm/src/agent/react/use-chat/browser-inference/browser-engine.js +0 -62
  95. package/esm/src/agent/react/use-chat/browser-inference/types.d.ts +0 -44
  96. package/esm/src/agent/react/use-chat/browser-inference/types.d.ts.map +0 -1
  97. package/esm/src/agent/react/use-chat/browser-inference/types.js +0 -4
  98. package/esm/src/agent/react/use-chat/browser-inference/worker-client.d.ts +0 -30
  99. package/esm/src/agent/react/use-chat/browser-inference/worker-client.d.ts.map +0 -1
  100. package/esm/src/agent/react/use-chat/browser-inference/worker-client.js +0 -66
  101. package/esm/src/agent/react/use-chat/browser-inference/worker-script.d.ts +0 -8
  102. package/esm/src/agent/react/use-chat/browser-inference/worker-script.d.ts.map +0 -1
  103. package/esm/src/agent/react/use-chat/browser-inference/worker-script.js +0 -97
  104. package/esm/src/react/components/chat/chat/components/upgrade-cta.d.ts +0 -9
  105. package/esm/src/react/components/chat/chat/components/upgrade-cta.d.ts.map +0 -1
  106. package/esm/src/react/components/chat/chat/components/upgrade-cta.js +0 -35
@@ -1,66 +0,0 @@
1
- /**
2
- * BrowserInferenceClient — manages Web Worker lifecycle for browser-side inference.
3
- *
4
- * Singleton per session. Lazily creates Worker on first generate() call.
5
- * Uses inline Blob URL approach — no separate build entry point needed.
6
- */
7
- import { WORKER_SCRIPT } from "./worker-script.js";
8
- let instance = null;
9
- export class BrowserInferenceClient {
10
- worker = null;
11
- blobUrl = null;
12
- static getInstance() {
13
- if (!instance)
14
- instance = new BrowserInferenceClient();
15
- return instance;
16
- }
17
- ensureWorker() {
18
- if (this.worker)
19
- return this.worker;
20
- const blob = new Blob([WORKER_SCRIPT], { type: "application/javascript" });
21
- this.blobUrl = URL.createObjectURL(blob);
22
- this.worker = new Worker(this.blobUrl, { type: "module" });
23
- return this.worker;
24
- }
25
- generate(id, messages, options, callbacks) {
26
- const worker = this.ensureWorker();
27
- worker.onmessage = (event) => {
28
- const msg = event.data;
29
- switch (msg.type) {
30
- case "status":
31
- callbacks.onStatus?.(msg.status);
32
- break;
33
- case "download-progress":
34
- callbacks.onDownloadProgress?.(msg.progress, msg.file);
35
- break;
36
- case "token":
37
- if (msg.id === id)
38
- callbacks.onToken?.(msg.token);
39
- break;
40
- case "done":
41
- if (msg.id === id)
42
- callbacks.onDone?.(msg.text);
43
- break;
44
- case "error":
45
- if (msg.id === id)
46
- callbacks.onError?.(msg.error);
47
- break;
48
- }
49
- };
50
- worker.onerror = (event) => {
51
- callbacks.onError?.(event.message || "Worker error");
52
- };
53
- const request = { type: "generate", id, messages, options };
54
- worker.postMessage(request);
55
- }
56
- stop() {
57
- if (this.worker) {
58
- this.worker.terminate();
59
- this.worker = null;
60
- }
61
- if (this.blobUrl) {
62
- URL.revokeObjectURL(this.blobUrl);
63
- this.blobUrl = null;
64
- }
65
- }
66
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * Inline Worker script as a string.
3
- *
4
- * Loaded via Blob URL — no separate build entry point needed.
5
- * Dynamically imports @huggingface/transformers from CDN inside the Worker.
6
- */
7
- export declare const WORKER_SCRIPT = "\nlet pipeline = null;\nlet generating = false;\n\nasync function loadPipeline(callbacks) {\n if (pipeline) return pipeline;\n\n callbacks.onStatus(\"loading-runtime\");\n\n const { pipeline: createPipeline, env } =\n await import(\"https://cdn.jsdelivr.net/npm/@huggingface/transformers@3.4.2\");\n\n env.useBrowserCache = true;\n env.allowLocalModels = false;\n\n callbacks.onStatus(\"downloading-model\");\n\n pipeline = await createPipeline(\n \"text-generation\",\n \"HuggingFaceTB/SmolLM2-135M-Instruct\",\n {\n dtype: \"q4\",\n device: \"wasm\",\n progress_callback: (progress) => {\n if (progress.status === \"progress\" && progress.total) {\n callbacks.onProgress(Math.round((progress.loaded / progress.total) * 100), progress.file);\n }\n },\n },\n );\n\n callbacks.onStatus(\"ready\");\n return pipeline;\n}\n\nself.onmessage = async (event) => {\n const request = event.data;\n if (request.type !== \"generate\") return;\n\n const { id, messages, options } = request;\n\n try {\n const pipe = await loadPipeline({\n onStatus: (status) => self.postMessage({ type: \"status\", status }),\n onProgress: (progress, file) => self.postMessage({ type: \"download-progress\", progress, file }),\n });\n\n self.postMessage({ type: \"status\", status: \"generating\" });\n generating = true;\n\n const chatMessages = [];\n if (options?.systemPrompt) {\n chatMessages.push({ role: \"system\", content: options.systemPrompt });\n }\n chatMessages.push(...messages);\n\n // Helper: generated_text is a plain string for raw prompts but an array\n // of {role, content} message objects when using chat format. Extract the\n // last assistant message's content in either case.\n function extractText(generated) {\n if (typeof generated === \"string\") return generated;\n if (Array.isArray(generated)) {\n const last = generated[generated.length - 1];\n return last?.content ?? \"\";\n }\n return \"\";\n }\n\n const result = await pipe(chatMessages, {\n max_new_tokens: options?.maxNewTokens ?? 512,\n temperature: options?.temperature ?? 0.7,\n do_sample: true,\n return_full_text: false,\n callback_function: (output) => {\n if (!generating) return;\n const text = extractText(output?.[0]?.generated_text);\n if (text) {\n self.postMessage({ type: \"token\", id, token: text });\n }\n },\n });\n\n generating = false;\n const finalText = extractText(result?.[0]?.generated_text);\n self.postMessage({ type: \"done\", id, text: finalText });\n } catch (error) {\n generating = false;\n self.postMessage({ type: \"error\", id, error: error?.message ?? String(error) });\n }\n};\n";
8
- //# sourceMappingURL=worker-script.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker-script.d.ts","sourceRoot":"","sources":["../../../../../../src/src/agent/react/use-chat/browser-inference/worker-script.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,aAAa,+wFA0FzB,CAAC"}
@@ -1,97 +0,0 @@
1
- /**
2
- * Inline Worker script as a string.
3
- *
4
- * Loaded via Blob URL — no separate build entry point needed.
5
- * Dynamically imports @huggingface/transformers from CDN inside the Worker.
6
- */
7
- export const WORKER_SCRIPT = /* js */ `
8
- let pipeline = null;
9
- let generating = false;
10
-
11
- async function loadPipeline(callbacks) {
12
- if (pipeline) return pipeline;
13
-
14
- callbacks.onStatus("loading-runtime");
15
-
16
- const { pipeline: createPipeline, env } =
17
- await import("https://cdn.jsdelivr.net/npm/@huggingface/transformers@3.4.2");
18
-
19
- env.useBrowserCache = true;
20
- env.allowLocalModels = false;
21
-
22
- callbacks.onStatus("downloading-model");
23
-
24
- pipeline = await createPipeline(
25
- "text-generation",
26
- "HuggingFaceTB/SmolLM2-135M-Instruct",
27
- {
28
- dtype: "q4",
29
- device: "wasm",
30
- progress_callback: (progress) => {
31
- if (progress.status === "progress" && progress.total) {
32
- callbacks.onProgress(Math.round((progress.loaded / progress.total) * 100), progress.file);
33
- }
34
- },
35
- },
36
- );
37
-
38
- callbacks.onStatus("ready");
39
- return pipeline;
40
- }
41
-
42
- self.onmessage = async (event) => {
43
- const request = event.data;
44
- if (request.type !== "generate") return;
45
-
46
- const { id, messages, options } = request;
47
-
48
- try {
49
- const pipe = await loadPipeline({
50
- onStatus: (status) => self.postMessage({ type: "status", status }),
51
- onProgress: (progress, file) => self.postMessage({ type: "download-progress", progress, file }),
52
- });
53
-
54
- self.postMessage({ type: "status", status: "generating" });
55
- generating = true;
56
-
57
- const chatMessages = [];
58
- if (options?.systemPrompt) {
59
- chatMessages.push({ role: "system", content: options.systemPrompt });
60
- }
61
- chatMessages.push(...messages);
62
-
63
- // Helper: generated_text is a plain string for raw prompts but an array
64
- // of {role, content} message objects when using chat format. Extract the
65
- // last assistant message's content in either case.
66
- function extractText(generated) {
67
- if (typeof generated === "string") return generated;
68
- if (Array.isArray(generated)) {
69
- const last = generated[generated.length - 1];
70
- return last?.content ?? "";
71
- }
72
- return "";
73
- }
74
-
75
- const result = await pipe(chatMessages, {
76
- max_new_tokens: options?.maxNewTokens ?? 512,
77
- temperature: options?.temperature ?? 0.7,
78
- do_sample: true,
79
- return_full_text: false,
80
- callback_function: (output) => {
81
- if (!generating) return;
82
- const text = extractText(output?.[0]?.generated_text);
83
- if (text) {
84
- self.postMessage({ type: "token", id, token: text });
85
- }
86
- },
87
- });
88
-
89
- generating = false;
90
- const finalText = extractText(result?.[0]?.generated_text);
91
- self.postMessage({ type: "done", id, text: finalText });
92
- } catch (error) {
93
- generating = false;
94
- self.postMessage({ type: "error", id, error: error?.message ?? String(error) });
95
- }
96
- };
97
- `;
@@ -1,9 +0,0 @@
1
- import * as React from "../../../../../../react/react.js";
2
- import type { InferenceMode } from "../../../../../agent/react/index.js";
3
- /** Props accepted by the upgrade CTA. */
4
- export interface UpgradeCTAProps {
5
- inferenceMode: InferenceMode;
6
- }
7
- /** Render upgrade CTA. */
8
- export declare function UpgradeCTA({ inferenceMode }: UpgradeCTAProps): React.ReactElement | null;
9
- //# sourceMappingURL=upgrade-cta.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upgrade-cta.d.ts","sourceRoot":"","sources":["../../../../../../../src/src/react/components/chat/chat/components/upgrade-cta.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,kCAAkC,CAAC;AAC1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAIzE,yCAAyC;AACzC,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,0BAA0B;AAC1B,wBAAgB,UAAU,CAAC,EAAE,aAAa,EAAE,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CA8CxF"}
@@ -1,35 +0,0 @@
1
- import * as React from "../../../../../../react/react.js";
2
- const DISMISS_KEY = "vf-upgrade-cta-dismissed";
3
- /** Render upgrade CTA. */
4
- export function UpgradeCTA({ inferenceMode }) {
5
- const [dismissed, setDismissed] = React.useState(() => {
6
- try {
7
- return localStorage.getItem(DISMISS_KEY) === "1";
8
- }
9
- catch (_) {
10
- /* expected: localStorage may be unavailable */
11
- return false;
12
- }
13
- });
14
- if (inferenceMode === "cloud" || dismissed)
15
- return null;
16
- const handleDismiss = () => {
17
- setDismissed(true);
18
- try {
19
- localStorage.setItem(DISMISS_KEY, "1");
20
- }
21
- catch (_) {
22
- /* expected: localStorage may be unavailable */
23
- }
24
- };
25
- return (React.createElement("div", { className: "w-full max-w-2xl mx-auto mt-4 px-4 py-3 bg-[var(--accent)] rounded-xl text-sm text-[var(--foreground)] flex items-start gap-3" },
26
- React.createElement("span", { className: "flex-1" },
27
- "Using a lightweight local model. Add an API key to your",
28
- " ",
29
- React.createElement("code", { className: "px-1 py-0.5 bg-[var(--border)] rounded text-xs" }, ".env"),
30
- " ",
31
- "for GPT-4o or Claude."),
32
- React.createElement("button", { type: "button", onClick: handleDismiss, className: "text-[var(--muted-foreground)] hover:text-[var(--foreground)] transition-all flex-shrink-0 rounded-full focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2", "aria-label": "Dismiss" },
33
- React.createElement("svg", { className: "size-4", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeWidth: "2" },
34
- React.createElement("path", { d: "M4 4l8 8M12 4l-8 8" })))));
35
- }