veryfront 0.1.261 → 0.1.263

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 (83) hide show
  1. package/esm/cli/commands/knowledge/command.d.ts.map +1 -1
  2. package/esm/cli/commands/knowledge/command.js +19 -26
  3. package/esm/cli/templates/manifest.d.ts +470 -470
  4. package/esm/cli/templates/manifest.js +519 -519
  5. package/esm/deno.js +1 -1
  6. package/esm/src/agent/ag-ui-detached-start.d.ts +1 -4
  7. package/esm/src/agent/ag-ui-detached-start.d.ts.map +1 -1
  8. package/esm/src/agent/ag-ui-detached-start.js +4 -67
  9. package/esm/src/agent/ag-ui-handler.d.ts +1 -4
  10. package/esm/src/agent/ag-ui-handler.d.ts.map +1 -1
  11. package/esm/src/agent/ag-ui-handler.js +3 -61
  12. package/esm/src/agent/ag-ui-host-support.d.ts.map +1 -1
  13. package/esm/src/agent/ag-ui-host-support.js +2 -21
  14. package/esm/src/agent/ag-ui-request-shared.d.ts +4 -0
  15. package/esm/src/agent/ag-ui-request-shared.d.ts.map +1 -0
  16. package/esm/src/agent/ag-ui-request-shared.js +47 -0
  17. package/esm/src/agent/ag-ui-run-control.d.ts.map +1 -1
  18. package/esm/src/agent/ag-ui-run-control.js +1 -23
  19. package/esm/src/agent/ag-ui-runtime-handler.d.ts +1 -5
  20. package/esm/src/agent/ag-ui-runtime-handler.d.ts.map +1 -1
  21. package/esm/src/agent/ag-ui-runtime-handler.js +3 -67
  22. package/esm/src/agent/ag-ui-tool-shared.d.ts +15 -0
  23. package/esm/src/agent/ag-ui-tool-shared.d.ts.map +1 -0
  24. package/esm/src/agent/ag-ui-tool-shared.js +47 -0
  25. package/esm/src/agent/conversation-run-event-preparation.d.ts +3 -1
  26. package/esm/src/agent/conversation-run-event-preparation.d.ts.map +1 -1
  27. package/esm/src/agent/conversation-run-event-preparation.js +40 -0
  28. package/esm/src/agent/index.d.ts +3 -1
  29. package/esm/src/agent/index.d.ts.map +1 -1
  30. package/esm/src/agent/index.js +2 -1
  31. package/esm/src/agent/runtime-ag-ui-contract.d.ts.map +1 -1
  32. package/esm/src/agent/runtime-ag-ui-contract.js +2 -21
  33. package/esm/src/chat/chat-ui-message-helpers.d.ts +20 -0
  34. package/esm/src/chat/chat-ui-message-helpers.d.ts.map +1 -0
  35. package/esm/src/chat/chat-ui-message-helpers.js +167 -0
  36. package/esm/src/chat/index.d.ts +2 -0
  37. package/esm/src/chat/index.d.ts.map +1 -1
  38. package/esm/src/chat/index.js +1 -0
  39. package/esm/src/chat/protocol.d.ts +109 -0
  40. package/esm/src/chat/protocol.d.ts.map +1 -1
  41. package/esm/src/provider/runtime-loader/provider-http.d.ts +47 -0
  42. package/esm/src/provider/runtime-loader/provider-http.d.ts.map +1 -0
  43. package/esm/src/provider/runtime-loader/provider-http.js +171 -0
  44. package/esm/src/provider/runtime-loader/provider-records.d.ts +2 -0
  45. package/esm/src/provider/runtime-loader/provider-records.d.ts.map +1 -0
  46. package/esm/src/provider/runtime-loader/provider-records.js +6 -0
  47. package/esm/src/provider/runtime-loader.d.ts +2 -32
  48. package/esm/src/provider/runtime-loader.d.ts.map +1 -1
  49. package/esm/src/provider/runtime-loader.js +3 -176
  50. package/esm/src/routing/api/module-loader/external-import-rewriter.d.ts +27 -0
  51. package/esm/src/routing/api/module-loader/external-import-rewriter.d.ts.map +1 -0
  52. package/esm/src/routing/api/module-loader/external-import-rewriter.js +339 -0
  53. package/esm/src/routing/api/module-loader/loader.d.ts +1 -22
  54. package/esm/src/routing/api/module-loader/loader.d.ts.map +1 -1
  55. package/esm/src/routing/api/module-loader/loader.js +4 -336
  56. package/esm/src/server/dev-ui/manifest.d.ts +17 -17
  57. package/esm/src/server/dev-ui/manifest.js +17 -17
  58. package/esm/src/utils/version-constant.d.ts +1 -1
  59. package/esm/src/utils/version-constant.js +1 -1
  60. package/package.json +1 -1
  61. package/src/cli/commands/knowledge/command.ts +27 -32
  62. package/src/cli/templates/manifest.js +519 -519
  63. package/src/deno.js +1 -1
  64. package/src/src/agent/ag-ui-detached-start.ts +4 -92
  65. package/src/src/agent/ag-ui-handler.ts +3 -81
  66. package/src/src/agent/ag-ui-host-support.ts +5 -28
  67. package/src/src/agent/ag-ui-request-shared.ts +62 -0
  68. package/src/src/agent/ag-ui-run-control.ts +1 -27
  69. package/src/src/agent/ag-ui-runtime-handler.ts +3 -86
  70. package/src/src/agent/ag-ui-tool-shared.ts +77 -0
  71. package/src/src/agent/conversation-run-event-preparation.ts +57 -1
  72. package/src/src/agent/index.ts +19 -0
  73. package/src/src/agent/runtime-ag-ui-contract.ts +5 -28
  74. package/src/src/chat/chat-ui-message-helpers.ts +232 -0
  75. package/src/src/chat/index.ts +19 -0
  76. package/src/src/chat/protocol.ts +148 -0
  77. package/src/src/provider/runtime-loader/provider-http.ts +207 -0
  78. package/src/src/provider/runtime-loader/provider-records.ts +7 -0
  79. package/src/src/provider/runtime-loader.ts +10 -214
  80. package/src/src/routing/api/module-loader/external-import-rewriter.ts +461 -0
  81. package/src/src/routing/api/module-loader/loader.ts +19 -462
  82. package/src/src/server/dev-ui/manifest.js +17 -17
  83. package/src/src/utils/version-constant.ts +1 -1
@@ -7,151 +7,16 @@ import { createError, toError } from "../../../errors/veryfront-error.js";
7
7
  import { getEsbuildLoader } from "../../../utils/path-utils.js";
8
8
  import { createFileSystem } from "../../../platform/compat/fs.js";
9
9
  import * as pathHelper from "../../../platform/compat/path/index.js";
10
- import { FILE_EXTENSIONS, getLoaderForFile, resolveExportEntry, toCjsDestructureBindings, validateModulePath, } from "./loader-helpers.js";
11
- import { isDeno, isNode } from "../../../platform/compat/runtime.js";
10
+ import { FILE_EXTENSIONS, getLoaderForFile, validateModulePath } from "./loader-helpers.js";
11
+ import { isDeno } from "../../../platform/compat/runtime.js";
12
12
  import { withSpan } from "../../../observability/tracing/otlp-setup.js";
13
13
  import { isCompiledBinary } from "../../../utils/index.js";
14
14
  import { wrapWithCurrentContext } from "../../../platform/adapters/fs/veryfront/multi-project-adapter.js";
15
15
  import { isWithinDirectory } from "../../../security/path-validation.js";
16
- import { rewriteNpmImports } from "../../../transforms/npm-import-rewrites.js";
16
+ import { generateCompiledBinaryRequireShim, NODE_BUILTINS, readProjectDependencies, rewriteExternalImports, } from "./external-import-rewriter.js";
17
+ export { generateCompiledBinaryRequireShim, getNodeExternalPackagesToResolve, loadVeryfrontExportsMap, resolveNodePackageToFileUrl, rewriteCompiledBinaryUserDependencyImports, rewriteCompiledBinaryVeryfrontImports, rewriteDenoNodeBuiltinImports, rewriteDenoNpmDependencyImports, rewriteNodeExternalImports, } from "./external-import-rewriter.js";
17
18
  const logger = serverLogger.component("api");
18
19
  export { toCjsDestructureBindings } from "./loader-helpers.js";
19
- /** Node.js built-in module names — shared across the CJS shim, esbuild externals, and Deno rewrites. */
20
- const NODE_BUILTINS = [
21
- "assert",
22
- "buffer",
23
- "child_process",
24
- "cluster",
25
- "console",
26
- "constants",
27
- "crypto",
28
- "dgram",
29
- "dns",
30
- "events",
31
- "fs",
32
- "http",
33
- "http2",
34
- "https",
35
- "module",
36
- "net",
37
- "os",
38
- "path",
39
- "perf_hooks",
40
- "process",
41
- "querystring",
42
- "readline",
43
- "stream",
44
- "string_decoder",
45
- "timers",
46
- "tls",
47
- "tty",
48
- "url",
49
- "util",
50
- "v8",
51
- "vm",
52
- "worker_threads",
53
- "zlib",
54
- ];
55
- async function readProjectDependencies(projectDir, fs) {
56
- try {
57
- const content = await fs.readTextFile(pathHelper.join(projectDir, "package.json"));
58
- const pkg = JSON.parse(content);
59
- return new Map(Object.entries(pkg.dependencies ?? {}));
60
- }
61
- catch (_) {
62
- /* expected: package.json may not exist */
63
- return new Map();
64
- }
65
- }
66
- /**
67
- * Generates a CJS module loader shim for compiled Deno binaries.
68
- *
69
- * In compiled binaries, `createRequire()` can resolve module paths and load
70
- * built-in modules (fs, path, etc.), but cannot load CJS files from disk
71
- * (loadMaybeCjs fails with "path not found"). This shim works around that
72
- * limitation by using `Deno.readTextFileSync` to read CJS files and
73
- * `new Function` to evaluate them in a proper CJS wrapper with require,
74
- * exports, module, __filename, and __dirname bindings.
75
- */
76
- export function generateCompiledBinaryRequireShim(projectDir) {
77
- const builtinSet = JSON.stringify(NODE_BUILTINS);
78
- const safeProjectDir = JSON.stringify(projectDir + "/package.json");
79
- const safeProjectRoot = JSON.stringify(pathHelper.resolve(projectDir));
80
- return `
81
- import { createRequire as __vf_createRequire } from "node:module";
82
- import { dirname as __vf_dirname, resolve as __vf_resolve } from "node:path";
83
- var __vf_builtinRequire = __vf_createRequire(${safeProjectDir});
84
- var __vf_builtinSet = new Set(${builtinSet});
85
- var __vf_projectRoot = ${safeProjectRoot};
86
- // VULN-FS-5: Canonicalize the project root so containment checks using
87
- // Deno.realPathSync(resolved) compare canonical-vs-canonical. Without this,
88
- // when the project itself is opened via a symlink, the realpath'd resolved
89
- // module path has a different prefix than the non-canonical projectRoot and
90
- // legitimate dependencies would be rejected.
91
- try { __vf_projectRoot = Deno.realPathSync(__vf_projectRoot); } catch (_) { /* expected: projectRoot may not exist at shim init in some environments */ }
92
- var __vf_cache = Object.create(null);
93
- function __vf_assertContained(resolved) {
94
- var norm = __vf_resolve(resolved).replace(/\\\\/g, "/");
95
- var root = __vf_projectRoot.replace(/\\\\/g, "/");
96
- if (!norm.startsWith(root + "/") && norm !== root) {
97
- throw new Error("CJS loader blocked path outside project: " + resolved);
98
- }
99
- }
100
- function __vf_loadCjs(id, parentDir) {
101
- if (id.startsWith("node:")) return __vf_builtinRequire(id);
102
- if (__vf_builtinSet.has(id)) return __vf_builtinRequire(id);
103
- var slashIdx = id.indexOf("/");
104
- if (slashIdx > 0 && __vf_builtinSet.has(id.slice(0, slashIdx))) return __vf_builtinRequire(id);
105
- var resolved;
106
- if (id.startsWith(".") || id.startsWith("/")) {
107
- resolved = __vf_resolve(parentDir, id);
108
- if (!resolved.match(/\\.[a-zA-Z0-9]+$/)) {
109
- var exts = [".js", ".cjs", ".json", "/index.js", "/index.cjs", "/index.json"];
110
- for (var i = 0; i < exts.length; i++) {
111
- try { Deno.statSync(resolved + exts[i]); resolved += exts[i]; break; } catch (_) { /* expected: probing file extensions */ }
112
- }
113
- }
114
- } else {
115
- resolved = __vf_builtinRequire.resolve(id);
116
- }
117
- // VULN-FS-5: Always assert containment after resolution (both branches),
118
- // then re-canonicalize via realPathSync to resist symlinked node_modules
119
- // entries that could point outside the project root.
120
- __vf_assertContained(resolved);
121
- try {
122
- var real = Deno.realPathSync(resolved);
123
- __vf_assertContained(real);
124
- resolved = real;
125
- } catch (_) {
126
- /* expected: realPathSync fails for non-existent paths — assertContained above already held */
127
- }
128
- if (resolved in __vf_cache) return __vf_cache[resolved];
129
- var code = Deno.readTextFileSync(resolved);
130
- if (resolved.endsWith(".json")) {
131
- var json = JSON.parse(code);
132
- __vf_cache[resolved] = json;
133
- return json;
134
- }
135
- var mod = { exports: {} };
136
- __vf_cache[resolved] = mod.exports;
137
- var dir = __vf_dirname(resolved);
138
- var childReq = function(childId) { return __vf_loadCjs(childId, dir); };
139
- childReq.resolve = function(childId) {
140
- if (childId.startsWith(".") || childId.startsWith("/")) return __vf_resolve(dir, childId);
141
- return __vf_builtinRequire.resolve(childId);
142
- };
143
- childReq.ensure = function(mods, cb) { cb(); };
144
- var fn = new Function("exports", "require", "module", "__filename", "__dirname", "global", "globalThis", "Worker", code);
145
- fn(mod.exports, childReq, mod, resolved, dir, globalThis, globalThis, undefined);
146
- __vf_cache[resolved] = mod.exports;
147
- return mod.exports;
148
- }
149
- function __vf_interopDefault(m) { return m && m.__esModule && m.default !== undefined ? m.default : m; }
150
- var require = function(id) { return __vf_loadCjs(id, ${JSON.stringify(projectDir)}); };
151
- require.resolve = function(id) { return __vf_builtinRequire.resolve(id); };
152
- require.ensure = function(mods, cb) { cb(); };
153
- `.trim();
154
- }
155
20
  export function loadHandlerModule(options) {
156
21
  return withSpan("api.loadHandlerModule", async () => {
157
22
  const { projectDir, modulePath, adapter, config } = options;
@@ -470,203 +335,6 @@ async function loadModuleFromCode(code, projectDir, fs, userDeps = new Map()) {
470
335
  await fs.remove(tempDir, { recursive: true });
471
336
  }
472
337
  }
473
- export function getNodeExternalPackagesToResolve(userDeps) {
474
- const externalPackagesToResolve = ["zod"];
475
- for (const name of userDeps.keys()) {
476
- if (!externalPackagesToResolve.includes(name)) {
477
- externalPackagesToResolve.push(name);
478
- }
479
- }
480
- return externalPackagesToResolve;
481
- }
482
- export async function resolveNodePackageToFileUrl(projectDir, packageName, fs, pathToFileURL) {
483
- const packagePath = pathHelper.join(projectDir, "node_modules", packageName);
484
- const packageJsonPath = pathHelper.join(packagePath, "package.json");
485
- try {
486
- const pkgJson = JSON.parse(await fs.readTextFile(packageJsonPath));
487
- let entryPoint;
488
- if (pkgJson.exports) {
489
- entryPoint = resolveExportEntry(pkgJson.exports["."]);
490
- }
491
- entryPoint ||= pkgJson.module || pkgJson.main || "index.js";
492
- if (!entryPoint)
493
- return null;
494
- return pathToFileURL(pathHelper.join(packagePath, entryPoint)).href;
495
- }
496
- catch (_) {
497
- /* expected: package.json may not exist or be invalid */
498
- return null;
499
- }
500
- }
501
- export async function loadVeryfrontExportsMap(projectDir, fs) {
502
- const vfPackagePath = pathHelper.join(projectDir, "node_modules", "veryfront");
503
- const vfPackageJsonPath = pathHelper.join(vfPackagePath, "package.json");
504
- try {
505
- const pkgJson = JSON.parse(await fs.readTextFile(vfPackageJsonPath));
506
- return pkgJson.exports || {};
507
- }
508
- catch (_error) {
509
- logger.debug("Could not read veryfront package.json");
510
- return {};
511
- }
512
- }
513
- export async function rewriteNodeExternalImports(code, projectDir, fs, userDeps) {
514
- const { pathToFileURL } = await import("node:url");
515
- let transformed = code;
516
- logger.debug(`Rewriting external imports for Node.js, projectDir: ${projectDir}`);
517
- for (const pkg of getNodeExternalPackagesToResolve(userDeps)) {
518
- const escapedPkg = pkg.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
519
- const staticImportRegex = new RegExp(`from\\s*["']${escapedPkg}(/[^"']*)?["']`, "g");
520
- const dynamicImportRegex = new RegExp(`import\\s*\\(\\s*["']${escapedPkg}(/[^"']*)?["']\\s*\\)`, "g");
521
- const needsStatic = staticImportRegex.test(transformed);
522
- staticImportRegex.lastIndex = 0;
523
- const needsDynamic = dynamicImportRegex.test(transformed);
524
- dynamicImportRegex.lastIndex = 0;
525
- if (!needsStatic && !needsDynamic)
526
- continue;
527
- const packageDir = pathToFileURL(pathHelper.join(projectDir, "node_modules", pkg)).href;
528
- const resolvedUrl = await resolveNodePackageToFileUrl(projectDir, pkg, fs, pathToFileURL);
529
- if (needsStatic) {
530
- transformed = transformed.replace(staticImportRegex, (_, subpath) => {
531
- if (subpath) {
532
- const subUrl = `${packageDir}${subpath}`;
533
- logger.debug(`Resolved ${pkg}${subpath} -> ${subUrl}`);
534
- return `from "${subUrl}"`;
535
- }
536
- if (!resolvedUrl)
537
- return `from "${pkg}"`;
538
- logger.debug(`Resolved ${pkg} -> ${resolvedUrl}`);
539
- return `from "${resolvedUrl}"`;
540
- });
541
- }
542
- if (needsDynamic) {
543
- transformed = transformed.replace(dynamicImportRegex, (_, subpath) => {
544
- if (subpath) {
545
- return `import("${packageDir}${subpath}")`;
546
- }
547
- if (!resolvedUrl)
548
- return `import("${pkg}")`;
549
- return `import("${resolvedUrl}")`;
550
- });
551
- }
552
- }
553
- const vfPackagePath = pathHelper.join(projectDir, "node_modules", "veryfront");
554
- const exportsMap = await loadVeryfrontExportsMap(projectDir, fs);
555
- transformed = transformed.replace(/from\s+["'](veryfront\/[^"']+)["']/g, (match, fullSpecifier) => {
556
- const subpath = "./" + fullSpecifier.replace("veryfront/", "");
557
- const exportEntry = exportsMap[subpath];
558
- if (!exportEntry?.import) {
559
- logger.warn(`No export found for ${subpath}`);
560
- return match;
561
- }
562
- const resolvedPath = pathHelper.join(vfPackagePath, exportEntry.import);
563
- logger.debug(`Resolved ${fullSpecifier} -> ${resolvedPath}`);
564
- return `from "${pathToFileURL(resolvedPath).href}"`;
565
- });
566
- transformed = transformed.replace(/from\s+["']veryfront["']/g, () => {
567
- const exportEntry = exportsMap["."];
568
- if (!exportEntry?.import)
569
- return 'from "veryfront"';
570
- const resolvedPath = pathHelper.join(vfPackagePath, exportEntry.import);
571
- logger.debug(`Resolved veryfront -> ${resolvedPath}`);
572
- return `from "${pathToFileURL(resolvedPath).href}"`;
573
- });
574
- return transformed;
575
- }
576
- export function rewriteCompiledBinaryVeryfrontImports(code) {
577
- let transformed = code;
578
- transformed = transformed.replace(/from\s+["']veryfront["']/g, 'from "./_vf_runtime.mjs"');
579
- transformed = transformed.replace(/import\s*\(\s*["']veryfront["']\s*\)/g, 'import("./_vf_runtime.mjs")');
580
- transformed = transformed.replace(/from\s+["']veryfront\/([^"']+)["']/g, (_match, subpath) => `from "./_vf_${subpath.replace(/\//g, "_")}.mjs"`);
581
- transformed = transformed.replace(/import\s*\(\s*["']veryfront\/([^"']+)["']\s*\)/g, (_match, subpath) => `import("./_vf_${subpath.replace(/\//g, "_")}.mjs")`);
582
- return transformed;
583
- }
584
- export function rewriteCompiledBinaryUserDependencyImports(code, userDeps) {
585
- let transformed = code;
586
- for (const name of userDeps.keys()) {
587
- const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
588
- transformed = transformed.replace(new RegExp(`import\\s+(\\w+)\\s+from\\s+["']${escaped}["']`, "g"), (_, localName) => `const ${localName} = __vf_interopDefault(require("${name}"))`);
589
- transformed = transformed.replace(new RegExp(`import\\s+(\\{[^}]+\\})\\s+from\\s+["']${escaped}["']`, "g"), (_, bindings) => `const ${toCjsDestructureBindings(bindings)} = require("${name}")`);
590
- transformed = transformed.replace(new RegExp(`import\\s+\\*\\s+as\\s+(\\w+)\\s+from\\s+["']${escaped}["']`, "g"), (_, localName) => `const ${localName} = require("${name}")`);
591
- transformed = transformed.replace(new RegExp(`import\\s+(\\w+)\\s*,\\s*(\\{[^}]+\\})\\s+from\\s+["']${escaped}["']`, "g"), (_, defaultName, bindings) => {
592
- const tmp = `__vf_tmp_${defaultName}`;
593
- return `const ${tmp} = require("${name}"); const ${defaultName} = __vf_interopDefault(${tmp}); const ${toCjsDestructureBindings(bindings)} = ${tmp}`;
594
- });
595
- transformed = transformed.replace(new RegExp(`import\\s+(\\w+|\\*\\s+as\\s+\\w+|\\{[^}]+\\})\\s+from\\s+["']${escaped}(/[^"']+)["']`, "g"), (_, binding, subpath) => {
596
- const trimmedBinding = String(binding).trim();
597
- if (trimmedBinding.startsWith("{")) {
598
- return `const ${toCjsDestructureBindings(trimmedBinding)} = require("${name}${subpath}")`;
599
- }
600
- const name_ = trimmedBinding.startsWith("*")
601
- ? trimmedBinding.replace(/\*\s+as\s+/, "")
602
- : trimmedBinding;
603
- return `const ${name_} = require("${name}${subpath}")`;
604
- });
605
- transformed = transformed.replace(new RegExp(`import\\s*\\(\\s*["']${escaped}(/[^"']*)?["']\\s*\\)`, "g"), (_, subpath) => `Promise.resolve(require("${name}${subpath || ""}"))`);
606
- }
607
- return transformed;
608
- }
609
- export async function rewriteDenoNpmDependencyImports(code, projectDir, fs, userDeps) {
610
- let transformed = code;
611
- for (const [name, version] of userDeps) {
612
- const escaped = name.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
613
- let resolvedVersion = version;
614
- try {
615
- const pkgPath = pathHelper.join(projectDir, "node_modules", name, "package.json");
616
- const pkgContent = await fs.readTextFile(pkgPath);
617
- const pkg = JSON.parse(pkgContent);
618
- if (pkg.version)
619
- resolvedVersion = pkg.version;
620
- }
621
- catch (_) {
622
- /* expected: installed package.json may not exist, fall back to declared range */
623
- }
624
- transformed = transformed.replace(new RegExp(`from\\s+["']${escaped}(/[^"']*)?["']`, "g"), (_, subpath) => `from "npm:${name}@${resolvedVersion}${subpath || ""}"`);
625
- transformed = transformed.replace(new RegExp(`import\\s*\\(\\s*["']${escaped}(/[^"']*)?["']\\s*\\)`, "g"), (_, subpath) => `import("npm:${name}@${resolvedVersion}${subpath || ""}")`);
626
- }
627
- return transformed;
628
- }
629
- export function rewriteDenoNodeBuiltinImports(code) {
630
- let transformed = code;
631
- for (const mod of NODE_BUILTINS) {
632
- const escaped = mod.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
633
- transformed = transformed.replace(new RegExp(`from\\s+["']${escaped}["']`, "g"), `from "node:${mod}"`);
634
- transformed = transformed.replace(new RegExp(`import\\s*\\(\\s*["']${escaped}["']\\s*\\)`, "g"), `import("node:${mod}")`);
635
- }
636
- return transformed;
637
- }
638
- async function rewriteExternalImports(code, projectDir, fs, userDeps = new Map()) {
639
- let transformed = code;
640
- if (isNode) {
641
- try {
642
- transformed = await rewriteNodeExternalImports(transformed, projectDir, fs, userDeps);
643
- }
644
- catch (e) {
645
- logger.warn(`Failed to import node:module: ${e}`);
646
- }
647
- }
648
- if (isDeno) {
649
- transformed = rewriteNpmImports(transformed);
650
- transformed = rewriteDenoNodeBuiltinImports(transformed);
651
- // Rewrite user-installed npm dependencies.
652
- // In non-compiled Deno: use npm: specifiers (resolved by Deno's npm support).
653
- // In compiled binaries: use the createRequire-based `require` shim (already
654
- // injected by the esbuild banner) to load CJS packages from node_modules,
655
- // since npm: specifiers only work for packages embedded at compile time.
656
- if (isCompiledBinary()) {
657
- transformed = rewriteCompiledBinaryUserDependencyImports(transformed, userDeps);
658
- }
659
- else {
660
- transformed = await rewriteDenoNpmDependencyImports(transformed, projectDir, fs, userDeps);
661
- }
662
- // In compiled binaries, "veryfront" resolves to embedded source that can't be
663
- // imported from external temp files. Rewrite to use local runtime shims.
664
- if (isCompiledBinary()) {
665
- transformed = rewriteCompiledBinaryVeryfrontImports(transformed);
666
- }
667
- }
668
- return transformed;
669
- }
670
338
  function extractAPIRouteHandlers(module) {
671
339
  if (!module || typeof module !== "object")
672
340
  return null;
@@ -1,31 +1,31 @@
1
1
  declare namespace _default {
2
2
  let version: number;
3
3
  let files: {
4
- "shared/mount-react-app.tsx": string;
5
- "projects/components/EmptyState.tsx": string;
4
+ "projects/App.tsx": string;
6
5
  "projects/components/ProjectCard.tsx": string;
7
- "projects/components/Header.tsx": string;
8
6
  "projects/components/SearchInput.tsx": string;
9
- "projects/App.tsx": string;
7
+ "projects/components/EmptyState.tsx": string;
8
+ "projects/components/Header.tsx": string;
10
9
  "projects/index.tsx": string;
11
- "dashboard/components/APITab.tsx": string;
12
- "dashboard/components/Sidebar.tsx": string;
13
- "dashboard/components/Card.tsx": string;
14
- "dashboard/components/ErrorsTab.tsx": string;
10
+ "shared/mount-react-app.tsx": string;
11
+ "dashboard/App.tsx": string;
15
12
  "dashboard/components/AgentsTab.tsx": string;
16
- "dashboard/components/WorkflowsTab.tsx": string;
17
- "dashboard/components/RuntimeTab.tsx": string;
18
- "dashboard/components/ConfigTab.tsx": string;
19
- "dashboard/components/WorkflowsTab.helpers.test.ts": string;
20
- "dashboard/components/ServerTab.tsx": string;
13
+ "dashboard/components/Sidebar.tsx": string;
21
14
  "dashboard/components/WorkflowsTab.helpers.ts": string;
22
- "dashboard/components/AgentTab.tsx": string;
23
- "dashboard/components/Header.tsx": string;
24
- "dashboard/components/TabNav.tsx": string;
15
+ "dashboard/components/WorkflowsTab.tsx": string;
25
16
  "dashboard/components/shared.tsx": string;
17
+ "dashboard/components/Card.tsx": string;
18
+ "dashboard/components/TabNav.tsx": string;
26
19
  "dashboard/components/MCPTab.tsx": string;
20
+ "dashboard/components/ServerTab.tsx": string;
21
+ "dashboard/components/ConfigTab.tsx": string;
22
+ "dashboard/components/RuntimeTab.tsx": string;
23
+ "dashboard/components/ErrorsTab.tsx": string;
27
24
  "dashboard/components/FilesTab.tsx": string;
28
- "dashboard/App.tsx": string;
25
+ "dashboard/components/APITab.tsx": string;
26
+ "dashboard/components/AgentTab.tsx": string;
27
+ "dashboard/components/WorkflowsTab.helpers.test.ts": string;
28
+ "dashboard/components/Header.tsx": string;
29
29
  "dashboard/index.tsx": string;
30
30
  };
31
31
  }