@maravilla-labs/functions 0.10.3 → 0.11.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.
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/mcp/build.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EAKZ,MAAM,YAAY,CAAC;AAyCpB;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAsFzF;AA2FD;;;;;;;;;;;;+CAY+C;AAC/C,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,GAAG,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC,CAmCf"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/mcp/build.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,eAAe,EACf,WAAW,EAKZ,MAAM,YAAY,CAAC;AAkDpB;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAqGzF;AA6FD;;;;;;;;;;;;+CAY+C;AAC/C,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,GAAG,IAAI,GAC9B,OAAO,CAAC,IAAI,CAAC,CAmCf"}
package/dist/mcp/build.js CHANGED
@@ -4,36 +4,43 @@ import { pathToFileURL } from 'node:url';
4
4
  import * as esbuild from 'esbuild';
5
5
  import { discoverMcpSources } from './discover.js';
6
6
  import { generateMcpEntry } from './generator.js';
7
+ import { buildMcpWidgets } from './widgets.js';
7
8
  /**
8
- * Resolve each template's `htmlPath` to a deploy-relative `htmlAsset`.
9
+ * Resolve each template to a deploy-relative `htmlAsset` the runtime reads.
9
10
  *
10
- * `htmlPath` must point at the tenant's built single-file widget **inside its
11
- * static assets** (e.g. `static/mcp-ui/reader.html`) output your
12
- * `vite-plugin-singlefile` build there so the framework deploys it as a normal
13
- * static asset (listed in `routing.assets`, uploaded, and served). The runtime
14
- * reads those bytes via the same `FileResolver` that loads `mcp.js` and serves
15
- * them inline as the `ui://` resource. We do NOT copy the file: a build-root copy
16
- * would be neither a `routing.assets` entry nor a registered bundle, so the deploy
17
- * would never ship it. We only normalize the path and warn (not throw — a throw
18
- * would disable the whole MCP build) if the asset isn't present in the output.
11
+ * Priority: an **auto-built** widget (compiled by {@link buildMcpWidgets} from
12
+ * `mcp-ui/<name>/` source into `static/mcp-ui/<name>.html`) wins; otherwise we
13
+ * fall back to a **legacy** `htmlPath` the tenant built themselves into their
14
+ * static assets. Either way the asset lives under the deploy static dir listed
15
+ * in `routing.assets`, uploaded, and served. The runtime reads those bytes via
16
+ * the same `FileResolver` that loads `mcp.js` and serves them inline as the
17
+ * `ui://` resource. We do NOT copy: a build-root copy would be neither a
18
+ * `routing.assets` entry nor a registered bundle, so the deploy would never ship
19
+ * it. We only normalize + warn (never throw a throw would disable the whole MCP
20
+ * build) when nothing resolves.
19
21
  */
20
- async function resolveUiTemplates(raw, outDir) {
22
+ async function resolveUiTemplates(raw, outDir, built) {
21
23
  return Promise.all(raw.map(async (t) => {
22
- if (!t.htmlPath) {
23
- console.warn(`⚠️ MCP uiTemplate "${t.name}" is missing "htmlPath" — it will render no widget.`);
24
- return { name: t.name, htmlAsset: '', csp: t.csp };
24
+ // 1) Auto-built from source (the convention path).
25
+ const autobuilt = built.get(t.name);
26
+ if (autobuilt) {
27
+ return { name: t.name, htmlAsset: autobuilt, csp: t.csp };
25
28
  }
26
- // Deploy-relative path (strip a leading ./ or /), as the FileResolver sees it.
27
- const htmlAsset = t.htmlPath.replace(/^\.?\/+/, '');
28
- try {
29
- await fs.access(join(outDir, htmlAsset));
30
- }
31
- catch {
32
- console.warn(`⚠️ MCP uiTemplate "${t.name}": widget not found at "${htmlAsset}" in the build output. ` +
33
- `Output your single-file widget into your app's static/ directory ` +
34
- `(e.g. static/mcp-ui/${t.name}.html, built BEFORE the app build) and set htmlPath to that path.`);
29
+ // 2) Legacy: a pre-built single-file the tenant points htmlPath at.
30
+ if (t.htmlPath) {
31
+ const htmlAsset = t.htmlPath.replace(/^\.?\/+/, '');
32
+ try {
33
+ await fs.access(join(outDir, htmlAsset));
34
+ }
35
+ catch {
36
+ console.warn(`⚠️ MCP uiTemplate "${t.name}": widget not found at "${htmlAsset}" in the build output.`);
37
+ }
38
+ return { name: t.name, htmlAsset, csp: t.csp };
35
39
  }
36
- return { name: t.name, htmlAsset, csp: t.csp };
40
+ // 3) Neither no source folder and no htmlPath.
41
+ console.warn(`⚠️ MCP uiTemplate "${t.name}": no widget source found. Create mcp-ui/${t.name}/ ` +
42
+ `(or src/mcp-ui/${t.name}/) with an index.html + component, or set htmlPath to a pre-built file.`);
43
+ return { name: t.name, htmlAsset: '', csp: t.csp };
37
44
  }));
38
45
  }
39
46
  /**
@@ -45,7 +52,7 @@ async function resolveUiTemplates(raw, outDir) {
45
52
  * `globalThis.handleRequest`) + ESM introspection for `mcp.json`.
46
53
  */
47
54
  export async function buildMcp(options = {}) {
48
- const { projectDir = process.cwd(), outputDir = '.maravilla', minify = false, sourcemap = false, production = false, } = options;
55
+ const { projectDir = process.cwd(), outputDir = '.maravilla', minify = false, sourcemap = false, production = false, framework, staticDir = 'static', } = options;
49
56
  const resolvedProject = resolve(projectDir);
50
57
  const resolvedOut = resolve(outputDir);
51
58
  const sources = await discoverMcpSources(resolvedProject);
@@ -90,9 +97,21 @@ export async function buildMcp(options = {}) {
90
97
  });
91
98
  const { server, tools, uiTemplates: rawUiTemplates, serverPublic } = await introspect(esmIntrospectPath);
92
99
  await fs.rm(tempDir, { recursive: true, force: true });
100
+ // Auto-build each declared widget from its source (mcp-ui/<name>/) into the
101
+ // deploy static dir. Framework-agnostic: resolves the tenant's framework Vite
102
+ // plugin + Tailwind, runs vite-plugin-singlefile. Templates with no source are
103
+ // absent from the map → resolveUiTemplates falls back to their legacy htmlPath.
104
+ const built = await buildMcpWidgets({
105
+ projectDir: resolvedProject,
106
+ outDir: resolvedOut,
107
+ staticDir,
108
+ framework,
109
+ production,
110
+ templates: rawUiTemplates.map((t) => ({ name: t.name, entry: t.entry, htmlPath: t.htmlPath })),
111
+ });
93
112
  // Resolve each template's static-asset widget path; the runtime reads these
94
113
  // bytes at bootstrap (same FileResolver as mcp.js) and serves them inline.
95
- const uiTemplates = await resolveUiTemplates(rawUiTemplates, resolvedOut);
114
+ const uiTemplates = await resolveUiTemplates(rawUiTemplates, resolvedOut, built);
96
115
  const manifest = {
97
116
  version: 1,
98
117
  bundle: 'mcp.js',
@@ -138,7 +157,7 @@ async function introspect(bundlePath) {
138
157
  };
139
158
  const serverPublic = serverSpec.public === true;
140
159
  const uiTemplates = Array.isArray(serverSpec.uiTemplates)
141
- ? serverSpec.uiTemplates.map((t) => ({ name: t.name, htmlPath: t.htmlPath, csp: t.csp }))
160
+ ? serverSpec.uiTemplates.map((t) => ({ name: t.name, entry: t.entry, htmlPath: t.htmlPath, csp: t.csp }))
142
161
  : [];
143
162
  const tools = list.tools.map((entry) => {
144
163
  const spec = entry.spec || {};
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/mcp/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/mcp/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAqB,MAAM,cAAc,CAAC;AAUlE;;;;;;;;;;;;;GAaG;AACH,KAAK,UAAU,kBAAkB,CAC/B,GAAoB,EACpB,MAAc,EACd,KAAmB;IAEnB,OAAO,OAAO,CAAC,GAAG,CAChB,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAClB,mDAAmD;QACnD,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5D,CAAC;QACD,oEAAoE;QACpE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,IAAI,CACV,uBAAuB,CAAC,CAAC,IAAI,2BAA2B,SAAS,wBAAwB,CAC1F,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;QACjD,CAAC;QACD,iDAAiD;QACjD,OAAO,CAAC,IAAI,CACV,uBAAuB,CAAC,CAAC,IAAI,4CAA4C,CAAC,CAAC,IAAI,IAAI;YACjF,kBAAkB,CAAC,CAAC,IAAI,yEAAyE,CACpG,CAAC;QACF,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IACrD,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAA2B,EAAE;IAC1D,MAAM,EACJ,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,EAC1B,SAAS,GAAG,YAAY,EACxB,MAAM,GAAG,KAAK,EACd,SAAS,GAAG,KAAK,EACjB,UAAU,GAAG,KAAK,EAClB,SAAS,EACT,SAAS,GAAG,QAAQ,GACrB,GAAG,OAAO,CAAC;IAEZ,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC1D,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,0BAA0B,OAAO,CAAC,MAAM,eAAe,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IACxG,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;IAEvD,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACjD,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC;IAEzD,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACnD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAE9D,MAAM,UAAU,GAAG;QACjB,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,SAAkB;QAC5B,MAAM,EAAE,QAAQ;QAChB,aAAa,EAAE,eAAe;QAC9B,MAAM,EAAE,MAAM,IAAI,UAAU;QAC5B,SAAS;QACT,QAAQ,EAAE,CAAC,QAAQ,CAAC;QACpB,MAAM,EAAE,EAAE,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe,EAAE;QACjF,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC9B,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;KACjC,CAAC;IAEF,sDAAsD;IACtD,MAAM,OAAO,CAAC,KAAK,CAAC;QAClB,GAAG,UAAU;QACb,MAAM,EAAE,MAAM;QACd,UAAU,EAAE,iBAAiB;QAC7B,OAAO,EAAE,cAAc;KACxB,CAAC,CAAC;IAEH,kEAAkE;IAClE,yDAAyD;IACzD,MAAM,OAAO,CAAC,KAAK,CAAC;QAClB,GAAG,UAAU;QACb,MAAM,EAAE,KAAK;QACb,OAAO,EAAE,iBAAiB;KAC3B,CAAC,CAAC;IAEH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,GAChE,MAAM,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAEtC,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvD,4EAA4E;IAC5E,8EAA8E;IAC9E,+EAA+E;IAC/E,gFAAgF;IAChF,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC;QAClC,UAAU,EAAE,eAAe;QAC3B,MAAM,EAAE,WAAW;QACnB,SAAS;QACT,SAAS;QACT,UAAU;QACV,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC/F,CAAC,CAAC;IAEH,4EAA4E;IAC5E,2EAA2E;IAC3E,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,cAAc,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAEjF,MAAM,QAAQ,GAAgB;QAC5B,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,QAAQ;QAChB,MAAM;QACN,KAAK;QACL,WAAW;QACX,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC;IAEF,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAC7B,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAClC,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,0BAA0B,KAAK,CAAC,MAAM,QAAQ,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IAC3F,KAAK,MAAM,CAAC,IAAI,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAExF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAoBD,8EAA8E;AAC9E,KAAK,UAAU,UAAU,CAAC,UAAkB;IAC1C,MAAM,QAAQ,GAAwB;QACpC,MAAM,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE;QAC9B,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;QACf,YAAY,EAAE,KAAK;KACpB,CAAC;IAEF,MAAM,GAAG,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;IAChE,IAAI,GAA4B,CAAC;IACjC,IAAI,CAAC;QACH,GAAG,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,CAAC,CAA4B,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,wCAAyC,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,GAAG,GAAG,CAAC,oBAEJ,CAAC;IACd,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC5D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAMpC,CAAC;IAEF,MAAM,MAAM,GAAkB;QAC5B,IAAI,EAAE,UAAU,CAAC,IAAI,IAAI,YAAY;QACrC,OAAO,EAAE,UAAU,CAAC,OAAO;QAC3B,YAAY,EAAE,UAAU,CAAC,YAAY;KACtC,CAAC;IACF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC;IAEhD,MAAM,WAAW,GAAoB,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC;QACxE,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QACzG,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,KAAK,GAAyB,IAAI,CAAC,KAWtC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAChB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9B,OAAO;YACL,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACnC,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnD,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YAC/C,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;YACxD,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;;+CAY+C;AAC/C,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,YAAoB,EACpB,WAA+B;IAE/B,IAAI,CAAC,WAAW;QAAE,OAAO;IAEzB,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjC,QAAQ,CAAC,GAAG,GAAG,WAAW,CAAC;IAE3B,0EAA0E;IAC1E,+DAA+D;IAC/D,2EAA2E;IAC3E,sEAAsE;IACtE,MAAM,MAAM,GAAG,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;IACzC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;QACpE,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAChF,MAAM,MAAM,GAAG,GAAG,SAAS,GAAG,CAAC;QAC/B,KAAK,MAAM,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,SAAS,GAAI,CAA2C,CAAC,SAAS,CAAC;YACzE,IAAI,CAAC,SAAS;gBAAE,SAAS;YACzB,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5B,0EAA0E;gBAC1E,kEAAkE;gBAClE,2BAA2B;gBAC3B,OAAO,CAAC,IAAI,CACV,uBAAwB,CAAuB,CAAC,IAAI,IAAI,GAAG,gBAAgB,GAAG,iBAAiB;oBAC7F,IAAI,MAAM,uEAAuE,CACpF,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC5E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;AACjE,CAAC"}
@@ -75,6 +75,11 @@ export interface BuildMcpOptions {
75
75
  minify?: boolean;
76
76
  sourcemap?: boolean;
77
77
  production?: boolean;
78
+ /** Framework id the adapter passes (`svelte` | `react` | `vue` | ...), used to
79
+ * auto-build MCP UI widgets from source. Omit to disable widget auto-build. */
80
+ framework?: string;
81
+ /** Manifest static-dir name (default `static`); where auto-built widgets land. */
82
+ staticDir?: string;
78
83
  }
79
84
  export interface DiscoveredMcpSource {
80
85
  /** Absolute path on disk. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"AAAA;;;8EAG8E;AAE9E,yEAAyE;AACzE,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;4BAG4B;AAC5B,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb;uEACmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC;oFACgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"AAAA;;;8EAG8E;AAE9E,yEAAyE;AACzE,MAAM,WAAW,SAAS;IACxB,iEAAiE;IACjE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,oEAAoE;AACpE,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,8CAA8C;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,EAAE,CAAC,EAAE,SAAS,CAAC;IACf,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAC/B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;4BAG4B;AAC5B,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb;uEACmE;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED,2EAA2E;AAC3E,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,oFAAoF;AACpF,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,CAAC,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,WAAW,EAAE,oBAAoB,EAAE,CAAC;IACpC;oFACgF;IAChF,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;oFACgF;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Auto-build MCP UI mini-app widgets — the framework-agnostic counterpart to
3
+ * the esbuild server bundle in {@link buildMcp}.
4
+ *
5
+ * An MCP widget is the platform's only *client* artifact: a self-contained
6
+ * single-file HTML the runtime serves inline as the `ui://<tool>/<template>`
7
+ * resource (MCP Apps). Unlike `functions`/`events`/`mcp` (framework-agnostic
8
+ * server esbuild bundles), it needs the tenant framework's component compiler
9
+ * (Svelte/React/Vue) + Tailwind + `vite-plugin-singlefile`. So instead of
10
+ * making every tenant hand-write a second Vite config + a `build:mcp-ui`
11
+ * script, we build it here automatically:
12
+ *
13
+ * - discover the widget source by convention (`mcp-ui/<name>/index.html` or
14
+ * `src/mcp-ui/<name>/index.html`, or an explicit `entry`),
15
+ * - resolve the framework's leaf Vite plugin + (optional) Tailwind FROM THE
16
+ * TENANT's `node_modules` (the adapter only tells us the framework id —
17
+ * neither adapter ships a component plugin), `vite-plugin-singlefile` is our
18
+ * own dependency,
19
+ * - run a programmatic `vite.build()` rooted at the project so Tailwind v4's
20
+ * automatic content detection scans all of `src/` (no `@source` needed),
21
+ * - emit one self-contained `<staticDir>/mcp-ui/<name>.html` into the deploy
22
+ * output, where {@link resolveUiTemplates} + `integrateMcpWithManifest`
23
+ * pick it up unchanged (the `routing.assets` registration from 0.10.2).
24
+ *
25
+ * The runtime needs no change: it already serves the manifest's `htmlAsset`.
26
+ */
27
+ export interface WidgetTemplateInput {
28
+ name: string;
29
+ /** Explicit source entry (project-relative dir or `index.html`). Optional. */
30
+ entry?: string;
31
+ /** Legacy: a pre-built single-file under `static/`. If set and no source
32
+ * folder exists, we leave it for the legacy htmlPath path (no auto-build). */
33
+ htmlPath?: string;
34
+ }
35
+ export interface BuildMcpWidgetsOptions {
36
+ projectDir: string;
37
+ /** Deploy output dir (e.g. `.maravilla`). Widgets land in `<outDir>/<staticDir>/mcp-ui`. */
38
+ outDir: string;
39
+ /** Manifest static dir name (default `static`). */
40
+ staticDir?: string;
41
+ /** Framework id the adapter passes (`svelte` | `react` | `vue` | ...). */
42
+ framework?: string;
43
+ /** The declared uiTemplates (name + optional entry/htmlPath). */
44
+ templates: WidgetTemplateInput[];
45
+ production?: boolean;
46
+ }
47
+ /** Map of template name → deploy-relative `htmlAsset` for widgets we built. */
48
+ export type BuiltWidgets = Map<string, string>;
49
+ /**
50
+ * Build every declared widget that has resolvable source. Returns a map of
51
+ * `name → htmlAsset` (deploy-relative, e.g. `static/mcp-ui/reader.html`) for
52
+ * the ones we built; templates with no source are absent (the caller falls
53
+ * back to their legacy `htmlPath`).
54
+ */
55
+ export declare function buildMcpWidgets(opts: BuildMcpWidgetsOptions): Promise<BuiltWidgets>;
56
+ //# sourceMappingURL=widgets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widgets.d.ts","sourceRoot":"","sources":["../../src/mcp/widgets.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;mFAC+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,4FAA4F;IAC5F,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,+EAA+E;AAC/E,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE/C;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,YAAY,CAAC,CAwGzF"}
@@ -0,0 +1,219 @@
1
+ import { promises as fs } from 'node:fs';
2
+ import { createRequire } from 'node:module';
3
+ import { isAbsolute, join, relative, resolve } from 'node:path';
4
+ import { pathToFileURL } from 'node:url';
5
+ /**
6
+ * Build every declared widget that has resolvable source. Returns a map of
7
+ * `name → htmlAsset` (deploy-relative, e.g. `static/mcp-ui/reader.html`) for
8
+ * the ones we built; templates with no source are absent (the caller falls
9
+ * back to their legacy `htmlPath`).
10
+ */
11
+ export async function buildMcpWidgets(opts) {
12
+ const built = new Map();
13
+ const { templates } = opts;
14
+ if (!templates || templates.length === 0)
15
+ return built;
16
+ const projectDir = resolve(opts.projectDir);
17
+ const staticDir = (opts.staticDir || 'static').replace(/^\/+|\/+$/g, '');
18
+ const outRoot = join(resolve(opts.outDir), staticDir, 'mcp-ui');
19
+ // Resolve the tenant's toolchain once (vite + framework plugin + tailwind).
20
+ const req = createRequire(join(projectDir, '__maravilla_widget_resolver__.cjs'));
21
+ let vite;
22
+ try {
23
+ vite = await importFrom('vite', req);
24
+ }
25
+ catch {
26
+ console.warn('⚠️ MCP widgets: could not resolve "vite" from the project — skipping widget auto-build. ' +
27
+ '(Every framework app ships Vite; is this running inside the app?)');
28
+ return built;
29
+ }
30
+ // The adapter passes a framework id; fall back to detecting it from the
31
+ // project's package.json so auto-build works even with older adapters that
32
+ // don't forward one.
33
+ const framework = opts.framework || (await detectFramework(projectDir));
34
+ let frameworkPlugin = null;
35
+ try {
36
+ frameworkPlugin = await resolveFrameworkPlugin(framework, req);
37
+ }
38
+ catch (err) {
39
+ console.warn(`⚠️ MCP widgets: could not load the ${framework ?? 'framework'} Vite plugin from the project ` +
40
+ `(${err.message}). Install it (or build the widget yourself and set htmlPath). Skipping auto-build.`);
41
+ return built;
42
+ }
43
+ if (!frameworkPlugin) {
44
+ // Unknown framework — nothing safe to compile components with.
45
+ return built;
46
+ }
47
+ const tailwindPlugin = await resolveTailwind(req); // optional
48
+ for (const t of templates) {
49
+ const entryHtml = await findWidgetEntry(projectDir, t);
50
+ if (!entryHtml)
51
+ continue; // no source → legacy htmlPath handles it
52
+ try {
53
+ await vite.build({
54
+ // Root = project so Tailwind v4's automatic content detection scans all
55
+ // of src/ (incl. shared components) — no @source needed.
56
+ root: projectDir,
57
+ configFile: false,
58
+ logLevel: 'warn',
59
+ resolve: {
60
+ alias: {
61
+ $lib: join(projectDir, 'src', 'lib'),
62
+ '@': join(projectDir, 'src'),
63
+ },
64
+ },
65
+ plugins: [
66
+ frameworkPlugin,
67
+ ...(tailwindPlugin ? [tailwindPlugin] : []),
68
+ await singleFilePlugin(req),
69
+ ],
70
+ build: {
71
+ outDir: outRoot,
72
+ emptyOutDir: false,
73
+ cssCodeSplit: false,
74
+ assetsInlineLimit: 100_000_000,
75
+ minify: opts.production ?? false,
76
+ rollupOptions: { input: { [t.name]: entryHtml } },
77
+ },
78
+ });
79
+ }
80
+ catch (err) {
81
+ console.warn(`⚠️ MCP widget "${t.name}": build failed — ${err.message}`);
82
+ continue;
83
+ }
84
+ // With root = project, Vite writes the HTML preserving the entry's path
85
+ // relative to root (e.g. <outRoot>/src/mcp-ui/<name>/index.html). Flatten it
86
+ // to <outRoot>/<name>.html and remove the nested tree singlefile left behind.
87
+ const rel = relative(projectDir, entryHtml); // e.g. src/mcp-ui/<name>/index.html
88
+ const producedNested = join(outRoot, rel);
89
+ const finalPath = join(outRoot, `${t.name}.html`);
90
+ try {
91
+ await fs.access(producedNested);
92
+ await fs.rm(finalPath, { force: true });
93
+ await fs.rename(producedNested, finalPath);
94
+ const topSeg = rel.split(/[\\/]/)[0];
95
+ if (topSeg && topSeg !== `${t.name}.html`) {
96
+ await fs.rm(join(outRoot, topSeg), { recursive: true, force: true });
97
+ }
98
+ }
99
+ catch {
100
+ console.warn(`⚠️ MCP widget "${t.name}": build produced no HTML at ${rel} — skipping.`);
101
+ continue;
102
+ }
103
+ built.set(t.name, `${staticDir}/mcp-ui/${t.name}.html`);
104
+ console.log(`🎨 Built MCP widget "${t.name}" → ${staticDir}/mcp-ui/${t.name}.html`);
105
+ }
106
+ return built;
107
+ }
108
+ /**
109
+ * Resolve a widget's source `index.html` (absolute) from, in priority:
110
+ * 1. explicit `entry` (a dir or an `index.html`),
111
+ * 2. `mcp-ui/<name>/index.html`,
112
+ * 3. `src/mcp-ui/<name>/index.html`.
113
+ * Returns null when none exists (→ caller uses legacy htmlPath).
114
+ */
115
+ async function findWidgetEntry(projectDir, t) {
116
+ const candidates = [];
117
+ if (t.entry) {
118
+ const e = isAbsolute(t.entry) ? t.entry : join(projectDir, t.entry);
119
+ candidates.push(e.endsWith('.html') ? e : join(e, 'index.html'));
120
+ }
121
+ candidates.push(join(projectDir, 'mcp-ui', t.name, 'index.html'));
122
+ candidates.push(join(projectDir, 'src', 'mcp-ui', t.name, 'index.html'));
123
+ for (const c of candidates) {
124
+ try {
125
+ await fs.access(c);
126
+ return c;
127
+ }
128
+ catch {
129
+ /* next */
130
+ }
131
+ }
132
+ return null;
133
+ }
134
+ /** Detect the framework from the project's package.json deps (fallback when the
135
+ * adapter doesn't pass a framework id). */
136
+ async function detectFramework(projectDir) {
137
+ let pkg = {};
138
+ try {
139
+ pkg = JSON.parse(await fs.readFile(join(projectDir, 'package.json'), 'utf-8'));
140
+ }
141
+ catch {
142
+ return undefined;
143
+ }
144
+ const deps = {
145
+ ...pkg.dependencies,
146
+ ...pkg.devDependencies,
147
+ };
148
+ if (deps['@sveltejs/kit'] || deps['@sveltejs/vite-plugin-svelte'] || deps['svelte'])
149
+ return 'svelte';
150
+ if (deps['@react-router/dev'] || deps['react-router'] || deps['next'] || deps['react'])
151
+ return 'react';
152
+ if (deps['nuxt'] || deps['vue'])
153
+ return 'vue';
154
+ return undefined;
155
+ }
156
+ /** Dynamic-import a package resolved from the tenant project. */
157
+ async function importFrom(spec, req) {
158
+ const path = req.resolve(spec);
159
+ return import(pathToFileURL(path).href);
160
+ }
161
+ /** `vite-plugin-singlefile` is OUR dependency — resolve it from our own tree.
162
+ * Use a non-literal specifier so `tsc` doesn't try to type-resolve it. */
163
+ async function singleFilePlugin(_req) {
164
+ const specifier = 'vite-plugin-singlefile';
165
+ const mod = await import(specifier);
166
+ const factory = mod.viteSingleFile ?? mod.default;
167
+ return factory();
168
+ }
169
+ /** Tailwind is optional: only add it when the project actually uses it. */
170
+ async function resolveTailwind(req) {
171
+ try {
172
+ const mod = await importFrom('@tailwindcss/vite', req);
173
+ const factory = mod.default ?? mod;
174
+ return factory();
175
+ }
176
+ catch {
177
+ return null;
178
+ }
179
+ }
180
+ /**
181
+ * Resolve the framework's *leaf* Vite component plugin from the tenant project
182
+ * (NOT the framework meta-plugin like `sveltekit()`/`reactRouter()`, which
183
+ * bundle routing/SSR unfit for a single-file widget). Returns null for an
184
+ * unknown framework.
185
+ */
186
+ async function resolveFrameworkPlugin(framework, req) {
187
+ switch (framework) {
188
+ case 'svelte':
189
+ case 'sveltekit': {
190
+ const mod = await importFrom('@sveltejs/vite-plugin-svelte', req);
191
+ const svelte = mod.svelte ?? mod.default;
192
+ const pre = mod.vitePreprocess ? mod.vitePreprocess() : undefined;
193
+ return svelte({ compilerOptions: { runes: true }, ...(pre ? { preprocess: pre } : {}) });
194
+ }
195
+ case 'react':
196
+ case 'react-router':
197
+ case 'nextjs':
198
+ case 'next': {
199
+ let mod;
200
+ try {
201
+ mod = await importFrom('@vitejs/plugin-react', req);
202
+ }
203
+ catch {
204
+ mod = await importFrom('@vitejs/plugin-react-swc', req);
205
+ }
206
+ const react = mod.default ?? mod;
207
+ return react();
208
+ }
209
+ case 'vue':
210
+ case 'nuxt': {
211
+ const mod = await importFrom('@vitejs/plugin-vue', req);
212
+ const vue = mod.default ?? mod;
213
+ return vue();
214
+ }
215
+ default:
216
+ return null;
217
+ }
218
+ }
219
+ //# sourceMappingURL=widgets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widgets.js","sourceRoot":"","sources":["../../src/mcp/widgets.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@maravilla-labs/functions",
3
- "version": "0.10.3",
3
+ "version": "0.11.0",
4
4
  "description": "Maravilla Edge Functions bundler and development tools",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -47,7 +47,8 @@
47
47
  },
48
48
  "dependencies": {
49
49
  "esbuild": "^0.25.8",
50
- "chokidar": "^3.5.3"
50
+ "chokidar": "^3.5.3",
51
+ "vite-plugin-singlefile": "^2.0.0"
51
52
  },
52
53
  "devDependencies": {
53
54
  "@types/node": "^20.10.5",