@adonis-agora/agent 0.71.0 → 0.74.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/CHANGELOG.md +33 -0
- package/dist/configure.d.ts +5 -4
- package/dist/configure.d.ts.map +1 -1
- package/dist/configure.js +8 -4
- package/dist/configure.js.map +1 -1
- package/dist/providers/agent_provider.d.ts.map +1 -1
- package/dist/providers/agent_provider.js +5 -1
- package/dist/providers/agent_provider.js.map +1 -1
- package/dist/src/a2ui/adapter.d.ts +13 -2
- package/dist/src/a2ui/adapter.d.ts.map +1 -1
- package/dist/src/a2ui/adapter.js +73 -4
- package/dist/src/a2ui/adapter.js.map +1 -1
- package/dist/src/a2ui/core.d.ts +79 -2
- package/dist/src/a2ui/core.d.ts.map +1 -1
- package/dist/src/a2ui/core.js +136 -4
- package/dist/src/a2ui/core.js.map +1 -1
- package/dist/src/a2ui/index.d.ts +2 -2
- package/dist/src/a2ui/index.d.ts.map +1 -1
- package/dist/src/a2ui/index.js +2 -2
- package/dist/src/a2ui/index.js.map +1 -1
- package/dist/src/action-proposal-executor.d.ts.map +1 -1
- package/dist/src/action-proposal-executor.js +3 -0
- package/dist/src/action-proposal-executor.js.map +1 -1
- package/dist/src/ag-ui/adapter.d.ts +6 -1
- package/dist/src/ag-ui/adapter.d.ts.map +1 -1
- package/dist/src/ag-ui/adapter.js +9 -2
- package/dist/src/ag-ui/adapter.js.map +1 -1
- package/dist/src/ag-ui/core/encoder.d.ts.map +1 -1
- package/dist/src/ag-ui/core/encoder.js +3 -0
- package/dist/src/ag-ui/core/encoder.js.map +1 -1
- package/dist/src/agent-loop.d.ts.map +1 -1
- package/dist/src/agent-loop.js +18 -0
- package/dist/src/agent-loop.js.map +1 -1
- package/dist/src/agent-service.d.ts +6 -0
- package/dist/src/agent-service.d.ts.map +1 -1
- package/dist/src/agent-service.js +5 -3
- package/dist/src/agent-service.js.map +1 -1
- package/dist/src/channels/adapters/evolution_api.d.ts.map +1 -1
- package/dist/src/channels/adapters/evolution_api.js +35 -0
- package/dist/src/channels/adapters/evolution_api.js.map +1 -1
- package/dist/src/channels/adapters/telegram.d.ts.map +1 -1
- package/dist/src/channels/adapters/telegram.js +25 -7
- package/dist/src/channels/adapters/telegram.js.map +1 -1
- package/dist/src/channels/adapters/whatsapp_cloud.d.ts.map +1 -1
- package/dist/src/channels/adapters/whatsapp_cloud.js +44 -0
- package/dist/src/channels/adapters/whatsapp_cloud.js.map +1 -1
- package/dist/src/channels/handler.d.ts +21 -1
- package/dist/src/channels/handler.d.ts.map +1 -1
- package/dist/src/channels/handler.js +230 -9
- package/dist/src/channels/handler.js.map +1 -1
- package/dist/src/channels/index.d.ts +2 -2
- package/dist/src/channels/index.d.ts.map +1 -1
- package/dist/src/channels/index.js.map +1 -1
- package/dist/src/channels/types.d.ts +40 -0
- package/dist/src/channels/types.d.ts.map +1 -1
- package/dist/src/genui/actions.d.ts +26 -0
- package/dist/src/genui/actions.d.ts.map +1 -1
- package/dist/src/genui/actions.js +76 -0
- package/dist/src/genui/actions.js.map +1 -1
- package/dist/src/genui/catalog.d.ts +12 -1
- package/dist/src/genui/catalog.d.ts.map +1 -1
- package/dist/src/genui/catalog.js +12 -1
- package/dist/src/genui/catalog.js.map +1 -1
- package/dist/src/genui/channels.d.ts +206 -0
- package/dist/src/genui/channels.d.ts.map +1 -0
- package/dist/src/genui/channels.js +322 -0
- package/dist/src/genui/channels.js.map +1 -0
- package/dist/src/genui/chart-image.d.ts +46 -0
- package/dist/src/genui/chart-image.d.ts.map +1 -0
- package/dist/src/genui/chart-image.js +155 -0
- package/dist/src/genui/chart-image.js.map +1 -0
- package/dist/src/genui/factory.d.ts +23 -1
- package/dist/src/genui/factory.d.ts.map +1 -1
- package/dist/src/genui/factory.js +13 -1
- package/dist/src/genui/factory.js.map +1 -1
- package/dist/src/genui/index.d.ts.map +1 -1
- package/dist/src/genui/index.js +64 -3
- package/dist/src/genui/index.js.map +1 -1
- package/dist/src/genui/kit/adonis.d.ts +4 -0
- package/dist/src/genui/kit/adonis.d.ts.map +1 -0
- package/dist/src/genui/kit/adonis.js +38 -0
- package/dist/src/genui/kit/adonis.js.map +1 -0
- package/dist/src/genui/kit/bundle.d.ts +25 -0
- package/dist/src/genui/kit/bundle.d.ts.map +1 -0
- package/dist/src/genui/kit/bundle.js +144 -0
- package/dist/src/genui/kit/bundle.js.map +1 -0
- package/dist/src/genui/kit/discover.d.ts +41 -0
- package/dist/src/genui/kit/discover.d.ts.map +1 -0
- package/dist/src/genui/kit/discover.js +100 -0
- package/dist/src/genui/kit/discover.js.map +1 -0
- package/dist/src/genui/kit/docs.d.ts +22 -0
- package/dist/src/genui/kit/docs.d.ts.map +1 -0
- package/dist/src/genui/kit/docs.js +237 -0
- package/dist/src/genui/kit/docs.js.map +1 -0
- package/dist/src/genui/kit/files.d.ts +27 -0
- package/dist/src/genui/kit/files.d.ts.map +1 -0
- package/dist/src/genui/kit/files.js +126 -0
- package/dist/src/genui/kit/files.js.map +1 -0
- package/dist/src/genui/kit/index.d.ts +12 -0
- package/dist/src/genui/kit/index.d.ts.map +1 -0
- package/dist/src/genui/kit/index.js +12 -0
- package/dist/src/genui/kit/index.js.map +1 -0
- package/dist/src/genui/kit/plugin.d.ts +52 -0
- package/dist/src/genui/kit/plugin.d.ts.map +1 -0
- package/dist/src/genui/kit/plugin.js +314 -0
- package/dist/src/genui/kit/plugin.js.map +1 -0
- package/dist/src/genui/kit/write.d.ts +14 -0
- package/dist/src/genui/kit/write.d.ts.map +1 -0
- package/dist/src/genui/kit/write.js +39 -0
- package/dist/src/genui/kit/write.js.map +1 -0
- package/dist/src/genui/progressive.d.ts +3 -1
- package/dist/src/genui/progressive.d.ts.map +1 -1
- package/dist/src/genui/progressive.js +23 -2
- package/dist/src/genui/progressive.js.map +1 -1
- package/dist/src/genui/public.d.ts +8 -4
- package/dist/src/genui/public.d.ts.map +1 -1
- package/dist/src/genui/public.js +6 -2
- package/dist/src/genui/public.js.map +1 -1
- package/dist/src/genui/sandbox-jsx.d.ts +29 -0
- package/dist/src/genui/sandbox-jsx.d.ts.map +1 -0
- package/dist/src/genui/sandbox-jsx.js +656 -0
- package/dist/src/genui/sandbox-jsx.js.map +1 -0
- package/dist/src/genui/sandbox-kit.d.ts +88 -0
- package/dist/src/genui/sandbox-kit.d.ts.map +1 -0
- package/dist/src/genui/sandbox-kit.js +89 -0
- package/dist/src/genui/sandbox-kit.js.map +1 -0
- package/dist/src/genui/sandbox-theme.d.ts +61 -0
- package/dist/src/genui/sandbox-theme.d.ts.map +1 -0
- package/dist/src/genui/sandbox-theme.js +255 -0
- package/dist/src/genui/sandbox-theme.js.map +1 -0
- package/dist/src/genui/sandbox.d.ts +73 -2
- package/dist/src/genui/sandbox.d.ts.map +1 -1
- package/dist/src/genui/sandbox.js +87 -14
- package/dist/src/genui/sandbox.js.map +1 -1
- package/dist/src/genui/text.d.ts.map +1 -1
- package/dist/src/genui/text.js +33 -1
- package/dist/src/genui/text.js.map +1 -1
- package/dist/src/genui/tools.d.ts +26 -0
- package/dist/src/genui/tools.d.ts.map +1 -1
- package/dist/src/genui/tools.js +94 -14
- package/dist/src/genui/tools.js.map +1 -1
- package/dist/src/genui/tree.d.ts +25 -2
- package/dist/src/genui/tree.d.ts.map +1 -1
- package/dist/src/genui/tree.js +182 -7
- package/dist/src/genui/tree.js.map +1 -1
- package/dist/src/hooks/genui_kit.d.ts +20 -0
- package/dist/src/hooks/genui_kit.d.ts.map +1 -0
- package/dist/src/hooks/genui_kit.js +55 -0
- package/dist/src/hooks/genui_kit.js.map +1 -0
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/react/core/components/message-item.d.ts.map +1 -1
- package/dist/src/react/core/components/message-item.js +6 -3
- package/dist/src/react/core/components/message-item.js.map +1 -1
- package/dist/src/react/core/genui/index.d.ts +2 -1
- package/dist/src/react/core/genui/index.d.ts.map +1 -1
- package/dist/src/react/core/genui/index.js +2 -0
- package/dist/src/react/core/genui/index.js.map +1 -1
- package/dist/src/react/core/genui/sandbox-assets.d.ts +32 -0
- package/dist/src/react/core/genui/sandbox-assets.d.ts.map +1 -0
- package/dist/src/react/core/genui/sandbox-assets.js +174 -0
- package/dist/src/react/core/genui/sandbox-assets.js.map +1 -0
- package/dist/src/react/core/genui/sandbox.d.ts +9 -0
- package/dist/src/react/core/genui/sandbox.d.ts.map +1 -1
- package/dist/src/react/core/genui/sandbox.js +115 -19
- package/dist/src/react/core/genui/sandbox.js.map +1 -1
- package/dist/src/react/core/genui/ui-action-chip.d.ts +21 -0
- package/dist/src/react/core/genui/ui-action-chip.d.ts.map +1 -0
- package/dist/src/react/core/genui/ui-action-chip.js +18 -0
- package/dist/src/react/core/genui/ui-action-chip.js.map +1 -0
- package/dist/src/react/core/index.d.ts +2 -2
- package/dist/src/react/core/index.d.ts.map +1 -1
- package/dist/src/react/core/index.js +1 -1
- package/dist/src/react/core/index.js.map +1 -1
- package/dist/src/react/core/presentation/phrasing.d.ts +3 -2
- package/dist/src/react/core/presentation/phrasing.d.ts.map +1 -1
- package/dist/src/react/core/presentation/phrasing.js +4 -27
- package/dist/src/react/core/presentation/phrasing.js.map +1 -1
- package/dist/src/react/core/presentation/tool-activity.d.ts +8 -0
- package/dist/src/react/core/presentation/tool-activity.d.ts.map +1 -1
- package/dist/src/react/core/presentation/tool-activity.js +28 -1
- package/dist/src/react/core/presentation/tool-activity.js.map +1 -1
- package/dist/src/react/core/transcript/index.d.ts +1 -1
- package/dist/src/react/core/transcript/index.d.ts.map +1 -1
- package/dist/src/react/core/transcript/index.js.map +1 -1
- package/dist/src/react/core/transcript/model.d.ts +15 -0
- package/dist/src/react/core/transcript/model.d.ts.map +1 -1
- package/dist/src/react/core/transcript/model.js +9 -1
- package/dist/src/react/core/transcript/model.js.map +1 -1
- package/dist/src/react/core/transcript/use-chat-transcript.d.ts +11 -1
- package/dist/src/react/core/transcript/use-chat-transcript.d.ts.map +1 -1
- package/dist/src/react/core/transcript/use-chat-transcript.js +11 -1
- package/dist/src/react/core/transcript/use-chat-transcript.js.map +1 -1
- package/dist/src/spi/tool.d.ts +7 -0
- package/dist/src/spi/tool.d.ts.map +1 -1
- package/dist/src/tool-presentation.d.ts +15 -0
- package/dist/src/tool-presentation.d.ts.map +1 -1
- package/dist/src/tool-presentation.js +48 -0
- package/dist/src/tool-presentation.js.map +1 -1
- package/dist/src/tool-registry.d.ts.map +1 -1
- package/dist/src/tool-registry.js +2 -0
- package/dist/src/tool-registry.js.map +1 -1
- package/dist/src/types.d.ts +10 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/vite/index.d.ts +24 -0
- package/dist/src/vite/index.d.ts.map +1 -0
- package/dist/src/vite/index.js +29 -0
- package/dist/src/vite/index.js.map +1 -0
- package/package.json +38 -2
- package/skills/agent-setup/SKILL.md +3 -1
- package/skills/agent-tools/SKILL.md +5 -3
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { Plugin } from 'vite';
|
|
2
|
+
import type { SandboxKitDescriptor } from '../sandbox-kit.js';
|
|
3
|
+
import { type SandboxKitSourceOptions } from './files.js';
|
|
4
|
+
export interface GenuiSandboxKitOptions extends SandboxKitSourceOptions {
|
|
5
|
+
/** Serve (and emit) the Tailwind runtime for `sandbox({ tailwind: true })`. Default true. */
|
|
6
|
+
tailwind?: boolean;
|
|
7
|
+
/** Where the dev descriptor is written, relative to the Vite root. */
|
|
8
|
+
descriptor?: string;
|
|
9
|
+
/** The tsconfig the kit's types are read with. Default: the nearest to the kit. */
|
|
10
|
+
tsconfig?: string;
|
|
11
|
+
/** A TypeScript module with the compiler API, when the project's own has none (TypeScript 7). */
|
|
12
|
+
typescript?: unknown;
|
|
13
|
+
/** Extra Vite plugins for the kit build. */
|
|
14
|
+
plugins?: unknown[];
|
|
15
|
+
/**
|
|
16
|
+
* Stylesheets whose Tailwind directives (`@custom-variant`, `@utility`, `@theme`) the sandbox's
|
|
17
|
+
* Tailwind gets too — the variants a kit's classes use (shadcn's `data-open:`…). Paths relative to
|
|
18
|
+
* the root, absolute paths, or package specifiers (`shadcn/tailwind.css`).
|
|
19
|
+
*/
|
|
20
|
+
tailwindCss?: string | readonly string[];
|
|
21
|
+
}
|
|
22
|
+
/** The library-specific defaults the shared plugin is built with. */
|
|
23
|
+
export interface GenuiSandboxKitDefaults {
|
|
24
|
+
/** Default dev descriptor path, relative to the Vite root. */
|
|
25
|
+
descriptor: string;
|
|
26
|
+
/** App modules importing the renderer get the HMR bridge: a test on their source. */
|
|
27
|
+
rendererImport: RegExp;
|
|
28
|
+
}
|
|
29
|
+
/** Where the dev server serves the assets. */
|
|
30
|
+
export declare const SANDBOX_KIT_DEV_PREFIX = "@genui-sandbox-kit/";
|
|
31
|
+
/** The Vite manifest keys the build lists them under. */
|
|
32
|
+
export declare const SANDBOX_KIT_MANIFEST_KEYS: {
|
|
33
|
+
readonly kit: 'genui-sandbox-kit.js';
|
|
34
|
+
readonly tailwind: 'genui-sandbox-tailwind.js';
|
|
35
|
+
readonly descriptor: 'genui-sandbox-kit.json';
|
|
36
|
+
};
|
|
37
|
+
/** The event a page gets (`window`) when the kit was rebuilt in dev. */
|
|
38
|
+
export declare const SANDBOX_KIT_UPDATE_EVENT = "genui-sandbox-kit:update";
|
|
39
|
+
/** What the plugin exposes to the server process it runs in (`plugin.api`). */
|
|
40
|
+
export interface GenuiSandboxKitApi {
|
|
41
|
+
/** The current descriptor (dev), once the first build is done. */
|
|
42
|
+
descriptor(): SandboxKitDescriptor | null;
|
|
43
|
+
/** Resolves when the first build is done. */
|
|
44
|
+
ready(): Promise<void>;
|
|
45
|
+
}
|
|
46
|
+
/** The plugin, with a library's defaults. */
|
|
47
|
+
/** The plugin object: a Vite plugin with the {@link GenuiSandboxKitApi} on `api`. */
|
|
48
|
+
export type GenuiSandboxKitPlugin = Plugin & {
|
|
49
|
+
api: GenuiSandboxKitApi;
|
|
50
|
+
};
|
|
51
|
+
export declare function createGenuiSandboxKitPlugin(options: GenuiSandboxKitOptions, defaults: GenuiSandboxKitDefaults): GenuiSandboxKitPlugin;
|
|
52
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/genui/kit/plugin.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAA0B,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAItF,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,sBAAuB,SAAQ,uBAAuB;IACrE,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iGAAiG;IACjG,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAC;CAC1C;AAED,qEAAqE;AACrE,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAC5D,yDAAyD;AACzD,eAAO,MAAM,yBAAyB;aACpC,GAAG,EAAE,sBAAsB;aAC3B,QAAQ,EAAE,2BAA2B;aACrC,UAAU,EAAE,wBAAwB;CAC5B,CAAC;AACX,wEAAwE;AACxE,eAAO,MAAM,wBAAwB,6BAA6B,CAAC;AAEnE,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,kEAAkE;IAClE,UAAU,IAAI,oBAAoB,GAAG,IAAI,CAAC;IAC1C,6CAA6C;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAyDD,6CAA6C;AAC7C,qFAAqF;AACrF,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG;IAAE,GAAG,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEzE,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,uBAAuB,GAChC,qBAAqB,CAmRvB"}
|
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `genuiSandboxKit()` — the Vite plugin that makes the app's design system available to the
|
|
3
|
+
* sandbox, with no command to run by hand:
|
|
4
|
+
*
|
|
5
|
+
* - dev: builds the kit bundle (the app's components + React as one IIFE) and serves it, with the
|
|
6
|
+
* Tailwind runtime, under `/@genui-sandbox-kit/`; writes the descriptor (docs + urls) for the
|
|
7
|
+
* server; rebuilds when a kit file changes and tells open pages, whose sandboxes reload (HMR);
|
|
8
|
+
* - build: emits both as hashed assets plus `genui-sandbox-kit.json` (the docs and their urls), and
|
|
9
|
+
* lists the three in the Vite manifest — where the server finds them, as it finds any asset;
|
|
10
|
+
* - collects the theme's custom properties from the app's own CSS, for the prompt.
|
|
11
|
+
*/
|
|
12
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
13
|
+
import { createRequire } from 'node:module';
|
|
14
|
+
import { dirname, join, resolve } from 'node:path';
|
|
15
|
+
import { tailwindDirectivesFromCss, themeVarsFromCss } from '../sandbox-theme.js';
|
|
16
|
+
import { buildSandboxKitBundle } from './bundle.js';
|
|
17
|
+
import { generateSandboxKitDocs } from './docs.js';
|
|
18
|
+
import { resolveSandboxKitFiles, } from './files.js';
|
|
19
|
+
/** Where the dev server serves the assets. */
|
|
20
|
+
export const SANDBOX_KIT_DEV_PREFIX = '@genui-sandbox-kit/';
|
|
21
|
+
/** The Vite manifest keys the build lists them under. */
|
|
22
|
+
export const SANDBOX_KIT_MANIFEST_KEYS = {
|
|
23
|
+
kit: 'genui-sandbox-kit.js',
|
|
24
|
+
tailwind: 'genui-sandbox-tailwind.js',
|
|
25
|
+
descriptor: 'genui-sandbox-kit.json',
|
|
26
|
+
};
|
|
27
|
+
/** The event a page gets (`window`) when the kit was rebuilt in dev. */
|
|
28
|
+
export const SANDBOX_KIT_UPDATE_EVENT = 'genui-sandbox-kit:update';
|
|
29
|
+
function tailwindRuntimePath() {
|
|
30
|
+
try {
|
|
31
|
+
const require = createRequire(import.meta.url);
|
|
32
|
+
return require.resolve('@tailwindcss/browser');
|
|
33
|
+
}
|
|
34
|
+
catch {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/** The Tailwind directives of `tailwindCss`, read now (they may change in dev). */
|
|
39
|
+
function tailwindCssOf(root, specs) {
|
|
40
|
+
if (specs === undefined)
|
|
41
|
+
return undefined;
|
|
42
|
+
const require = createRequire(resolve(root, 'package.json'));
|
|
43
|
+
const parts = [];
|
|
44
|
+
for (const spec of typeof specs === 'string' ? [specs] : specs) {
|
|
45
|
+
let path = resolve(root, spec);
|
|
46
|
+
if (!existsSync(path)) {
|
|
47
|
+
try {
|
|
48
|
+
path = require.resolve(spec);
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
try {
|
|
55
|
+
parts.push(tailwindDirectivesFromCss(readFileSync(path, 'utf8')));
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
/* unreadable: skipped */
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
const css = parts.filter((part) => part !== '').join('\n');
|
|
62
|
+
return css === '' ? undefined : css;
|
|
63
|
+
}
|
|
64
|
+
function fallbackDocs(bundle) {
|
|
65
|
+
return (bundle?.exports ?? []).map((name) => ({ name, props: [] }));
|
|
66
|
+
}
|
|
67
|
+
const HMR_BRIDGE = `
|
|
68
|
+
if (import.meta.hot && typeof window !== 'undefined' && !window.__genuiSandboxKitHmr) {
|
|
69
|
+
window.__genuiSandboxKitHmr = true;
|
|
70
|
+
import.meta.hot.on(${JSON.stringify(SANDBOX_KIT_UPDATE_EVENT)}, (data) => window.dispatchEvent(new CustomEvent(${JSON.stringify(SANDBOX_KIT_UPDATE_EVENT)}, { detail: data })));
|
|
71
|
+
}`;
|
|
72
|
+
export function createGenuiSandboxKitPlugin(options, defaults) {
|
|
73
|
+
let config;
|
|
74
|
+
let files = null;
|
|
75
|
+
let bundle = null;
|
|
76
|
+
let docs = [];
|
|
77
|
+
const themeVars = {};
|
|
78
|
+
let descriptor = null;
|
|
79
|
+
let firstBuild;
|
|
80
|
+
let onReady;
|
|
81
|
+
const ready = new Promise((resolveReady) => {
|
|
82
|
+
onReady = resolveReady;
|
|
83
|
+
});
|
|
84
|
+
let warnedDocs = false;
|
|
85
|
+
const tailwindOn = options.tailwind !== false;
|
|
86
|
+
const devUrl = (name, hash) => `${config?.base ?? '/'}${SANDBOX_KIT_DEV_PREFIX}${name}${hash ? `?v=${hash}` : ''}`;
|
|
87
|
+
const describeDev = () => ({
|
|
88
|
+
version: 1,
|
|
89
|
+
components: docs,
|
|
90
|
+
...(Object.keys(themeVars).length > 0 ? { theme: { vars: { ...themeVars } } } : {}),
|
|
91
|
+
kit: bundle === null ? null : { url: devUrl('kit.js', bundle.hash), hash: bundle.hash },
|
|
92
|
+
tailwind: tailwindOn && tailwindRuntimePath() !== null
|
|
93
|
+
? {
|
|
94
|
+
url: devUrl('tailwind.js'),
|
|
95
|
+
...withCss(tailwindCssOf(config?.root ?? process.cwd(), options.tailwindCss)),
|
|
96
|
+
}
|
|
97
|
+
: null,
|
|
98
|
+
});
|
|
99
|
+
const withCss = (css) => (css === undefined ? {} : { css });
|
|
100
|
+
const writeDescriptor = () => {
|
|
101
|
+
if (config === undefined)
|
|
102
|
+
return;
|
|
103
|
+
descriptor = describeDev();
|
|
104
|
+
const path = resolve(config.root, options.descriptor ?? defaults.descriptor);
|
|
105
|
+
try {
|
|
106
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
107
|
+
writeFileSync(path, `${JSON.stringify(descriptor, null, 2)}\n`);
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
config.logger.warn(`[genui-sandbox-kit] could not write ${path}: ${error instanceof Error ? error.message : String(error)}`);
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
const buildAll = async () => {
|
|
114
|
+
if (config === undefined)
|
|
115
|
+
return;
|
|
116
|
+
files = resolveSandboxKitFiles(config.root, options);
|
|
117
|
+
if (files === null) {
|
|
118
|
+
bundle = null;
|
|
119
|
+
docs = [];
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const [built, generated] = await Promise.all([
|
|
123
|
+
buildSandboxKitBundle({
|
|
124
|
+
root: config.root,
|
|
125
|
+
files,
|
|
126
|
+
resolve: config.resolve,
|
|
127
|
+
...(options.plugins !== undefined ? { plugins: options.plugins } : {}),
|
|
128
|
+
}),
|
|
129
|
+
generateSandboxKitDocs({
|
|
130
|
+
root: config.root,
|
|
131
|
+
files,
|
|
132
|
+
...(options.tsconfig !== undefined ? { tsconfig: options.tsconfig } : {}),
|
|
133
|
+
...(options.typescript !== undefined ? { typescript: options.typescript } : {}),
|
|
134
|
+
}).catch((error) => {
|
|
135
|
+
if (!warnedDocs) {
|
|
136
|
+
warnedDocs = true;
|
|
137
|
+
config?.logger.warn(`[genui-sandbox-kit] kit docs from names only: ${error instanceof Error ? error.message : String(error)}`);
|
|
138
|
+
}
|
|
139
|
+
return null;
|
|
140
|
+
}),
|
|
141
|
+
]);
|
|
142
|
+
bundle = built;
|
|
143
|
+
docs = generated ?? fallbackDocs(built);
|
|
144
|
+
};
|
|
145
|
+
let rebuildTimer;
|
|
146
|
+
const plugin = {
|
|
147
|
+
name: 'genui-sandbox-kit',
|
|
148
|
+
enforce: 'pre',
|
|
149
|
+
api: {
|
|
150
|
+
descriptor: () => descriptor,
|
|
151
|
+
ready: () => ready,
|
|
152
|
+
},
|
|
153
|
+
configResolved(resolved) {
|
|
154
|
+
config = resolved;
|
|
155
|
+
},
|
|
156
|
+
transform(code, id) {
|
|
157
|
+
const path = id.split('?')[0] ?? id;
|
|
158
|
+
if (path.endsWith('.css') && !path.includes('/node_modules/')) {
|
|
159
|
+
const found = themeVarsFromCss(code);
|
|
160
|
+
let changed = false;
|
|
161
|
+
for (const [name, value] of Object.entries(found)) {
|
|
162
|
+
if (themeVars[name] === undefined) {
|
|
163
|
+
themeVars[name] = value;
|
|
164
|
+
changed = true;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
if (changed && config?.command === 'serve' && firstBuild !== undefined)
|
|
168
|
+
writeDescriptor();
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
if (config?.command === 'serve' &&
|
|
172
|
+
/\.[cm]?[jt]sx?$/.test(path) &&
|
|
173
|
+
!path.includes('/node_modules/') &&
|
|
174
|
+
defaults.rendererImport.test(code)) {
|
|
175
|
+
return { code: `${code}\n${HMR_BRIDGE}`, map: null };
|
|
176
|
+
}
|
|
177
|
+
return null;
|
|
178
|
+
},
|
|
179
|
+
configureServer(server) {
|
|
180
|
+
firstBuild = buildAll()
|
|
181
|
+
.catch((error) => {
|
|
182
|
+
config?.logger.warn(`[genui-sandbox-kit] the kit did not build: ${error instanceof Error ? error.message : String(error)}`);
|
|
183
|
+
})
|
|
184
|
+
.finally(() => {
|
|
185
|
+
writeDescriptor();
|
|
186
|
+
if (files !== null)
|
|
187
|
+
server.watcher.add?.(files.dirs);
|
|
188
|
+
onReady();
|
|
189
|
+
});
|
|
190
|
+
server.middlewares.use((req, res, next) => {
|
|
191
|
+
const url = String(req.url ?? '').split('?')[0] ?? '';
|
|
192
|
+
const prefix = `${config?.base ?? '/'}${SANDBOX_KIT_DEV_PREFIX}`;
|
|
193
|
+
if (!url.startsWith(prefix) && !url.startsWith(`/${SANDBOX_KIT_DEV_PREFIX}`))
|
|
194
|
+
return next();
|
|
195
|
+
const name = url.slice(url.lastIndexOf('/') + 1);
|
|
196
|
+
void (async () => {
|
|
197
|
+
await firstBuild;
|
|
198
|
+
let body = null;
|
|
199
|
+
let type = 'text/javascript; charset=utf-8';
|
|
200
|
+
if (name === 'kit.js')
|
|
201
|
+
body = bundle?.code ?? null;
|
|
202
|
+
else if (name === 'tailwind.js' && tailwindOn) {
|
|
203
|
+
const path = tailwindRuntimePath();
|
|
204
|
+
body = path === null ? null : readFileSync(path, 'utf8');
|
|
205
|
+
}
|
|
206
|
+
else if (name === 'descriptor.json') {
|
|
207
|
+
body = JSON.stringify(descriptor);
|
|
208
|
+
type = 'application/json';
|
|
209
|
+
}
|
|
210
|
+
if (body === null) {
|
|
211
|
+
res.statusCode = 404;
|
|
212
|
+
res.end('not found');
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
res.setHeader('content-type', type);
|
|
216
|
+
res.setHeader('cache-control', 'no-cache');
|
|
217
|
+
res.end(body);
|
|
218
|
+
})();
|
|
219
|
+
});
|
|
220
|
+
const changed = (file) => {
|
|
221
|
+
if (config === undefined)
|
|
222
|
+
return;
|
|
223
|
+
const inKit = files?.dirs.some((dir) => file.startsWith(dir)) === true ||
|
|
224
|
+
bundle?.modules.includes(file) === true;
|
|
225
|
+
if (!inKit)
|
|
226
|
+
return;
|
|
227
|
+
clearTimeout(rebuildTimer);
|
|
228
|
+
rebuildTimer = setTimeout(() => {
|
|
229
|
+
firstBuild = buildAll()
|
|
230
|
+
.then(() => {
|
|
231
|
+
writeDescriptor();
|
|
232
|
+
server.ws.send({
|
|
233
|
+
type: 'custom',
|
|
234
|
+
event: SANDBOX_KIT_UPDATE_EVENT,
|
|
235
|
+
data: { hash: bundle?.hash ?? null, url: descriptor?.kit?.url ?? null },
|
|
236
|
+
});
|
|
237
|
+
config?.logger.info('[genui-sandbox-kit] kit rebuilt');
|
|
238
|
+
})
|
|
239
|
+
.catch((error) => {
|
|
240
|
+
config?.logger.warn(`[genui-sandbox-kit] the kit did not rebuild: ${error instanceof Error ? error.message : String(error)}`);
|
|
241
|
+
});
|
|
242
|
+
}, 150);
|
|
243
|
+
};
|
|
244
|
+
server.watcher.on('change', changed);
|
|
245
|
+
server.watcher.on('add', changed);
|
|
246
|
+
server.watcher.on('unlink', changed);
|
|
247
|
+
},
|
|
248
|
+
async generateBundle() {
|
|
249
|
+
if (config?.command !== 'build')
|
|
250
|
+
return;
|
|
251
|
+
await buildAll();
|
|
252
|
+
const base = config.base ?? '/';
|
|
253
|
+
let kit = null;
|
|
254
|
+
if (bundle !== null) {
|
|
255
|
+
const ref = this.emitFile({
|
|
256
|
+
type: 'asset',
|
|
257
|
+
name: SANDBOX_KIT_MANIFEST_KEYS.kit,
|
|
258
|
+
originalFileName: SANDBOX_KIT_MANIFEST_KEYS.kit,
|
|
259
|
+
source: bundle.code,
|
|
260
|
+
});
|
|
261
|
+
kit = { url: `${base}${this.getFileName(ref)}`, hash: bundle.hash };
|
|
262
|
+
emitted.kit = this.getFileName(ref);
|
|
263
|
+
}
|
|
264
|
+
let tailwind = null;
|
|
265
|
+
const runtime = tailwindOn ? tailwindRuntimePath() : null;
|
|
266
|
+
if (runtime !== null) {
|
|
267
|
+
const ref = this.emitFile({
|
|
268
|
+
type: 'asset',
|
|
269
|
+
name: SANDBOX_KIT_MANIFEST_KEYS.tailwind,
|
|
270
|
+
originalFileName: SANDBOX_KIT_MANIFEST_KEYS.tailwind,
|
|
271
|
+
source: readFileSync(runtime, 'utf8'),
|
|
272
|
+
});
|
|
273
|
+
tailwind = {
|
|
274
|
+
url: `${base}${this.getFileName(ref)}`,
|
|
275
|
+
...withCss(tailwindCssOf(config.root, options.tailwindCss)),
|
|
276
|
+
};
|
|
277
|
+
emitted.tailwind = this.getFileName(ref);
|
|
278
|
+
}
|
|
279
|
+
descriptor = {
|
|
280
|
+
version: 1,
|
|
281
|
+
components: docs,
|
|
282
|
+
...(Object.keys(themeVars).length > 0 ? { theme: { vars: { ...themeVars } } } : {}),
|
|
283
|
+
kit,
|
|
284
|
+
tailwind,
|
|
285
|
+
};
|
|
286
|
+
const ref = this.emitFile({
|
|
287
|
+
type: 'asset',
|
|
288
|
+
name: SANDBOX_KIT_MANIFEST_KEYS.descriptor,
|
|
289
|
+
originalFileName: SANDBOX_KIT_MANIFEST_KEYS.descriptor,
|
|
290
|
+
source: JSON.stringify(descriptor),
|
|
291
|
+
});
|
|
292
|
+
emitted.descriptor = this.getFileName(ref);
|
|
293
|
+
},
|
|
294
|
+
/** The manifest lists the three by their names, whatever Vite's own manifest did with them. */
|
|
295
|
+
writeBundle() {
|
|
296
|
+
if (config?.command !== 'build' || config.build.manifest === false)
|
|
297
|
+
return;
|
|
298
|
+
const manifestPath = join(resolve(config.root, config.build.outDir), typeof config.build.manifest === 'string' ? config.build.manifest : '.vite/manifest.json');
|
|
299
|
+
if (!existsSync(manifestPath))
|
|
300
|
+
return;
|
|
301
|
+
const manifest = JSON.parse(readFileSync(manifestPath, 'utf8'));
|
|
302
|
+
for (const [key, file] of Object.entries(emitted)) {
|
|
303
|
+
if (file === undefined)
|
|
304
|
+
continue;
|
|
305
|
+
const name = SANDBOX_KIT_MANIFEST_KEYS[key];
|
|
306
|
+
manifest[name] = { file, src: name };
|
|
307
|
+
}
|
|
308
|
+
writeFileSync(manifestPath, JSON.stringify(manifest, null, 2));
|
|
309
|
+
},
|
|
310
|
+
};
|
|
311
|
+
const emitted = {};
|
|
312
|
+
return plugin;
|
|
313
|
+
}
|
|
314
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/genui/kit/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { SandboxKitDescriptor } from '../sandbox-kit.js';
|
|
2
|
+
import { type GenerateSandboxKitDocsOptions } from './docs.js';
|
|
3
|
+
/**
|
|
4
|
+
* Generate the kit docs and write them as a descriptor (no asset urls: a dev server or a build
|
|
5
|
+
* provides those) — what the assembler hook and the Nest codegen run for an app whose Vite does not
|
|
6
|
+
* run in the server's process. `css` globs name the stylesheets whose custom properties are the
|
|
7
|
+
* theme. Returns the descriptor, or `null` when the project has no kit. Leaves an unchanged file
|
|
8
|
+
* untouched (no needless reloads).
|
|
9
|
+
*/
|
|
10
|
+
export declare function writeSandboxKitDocs(options: GenerateSandboxKitDocsOptions & {
|
|
11
|
+
output: string;
|
|
12
|
+
css?: string | readonly string[];
|
|
13
|
+
}): Promise<SandboxKitDescriptor | null>;
|
|
14
|
+
//# sourceMappingURL=write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.d.ts","sourceRoot":"","sources":["../../../../src/genui/kit/write.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,OAAO,EAAE,KAAK,6BAA6B,EAA0B,MAAM,WAAW,CAAC;AAGvF;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,6BAA6B,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAAA;CAAE,GAC5F,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAwBtC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { dirname, resolve } from 'node:path';
|
|
3
|
+
import { themeVarsFromCss } from '../sandbox-theme.js';
|
|
4
|
+
import { generateSandboxKitDocs } from './docs.js';
|
|
5
|
+
import { globFiles, resolveSandboxKitFiles } from './files.js';
|
|
6
|
+
/**
|
|
7
|
+
* Generate the kit docs and write them as a descriptor (no asset urls: a dev server or a build
|
|
8
|
+
* provides those) — what the assembler hook and the Nest codegen run for an app whose Vite does not
|
|
9
|
+
* run in the server's process. `css` globs name the stylesheets whose custom properties are the
|
|
10
|
+
* theme. Returns the descriptor, or `null` when the project has no kit. Leaves an unchanged file
|
|
11
|
+
* untouched (no needless reloads).
|
|
12
|
+
*/
|
|
13
|
+
export async function writeSandboxKitDocs(options) {
|
|
14
|
+
const root = options.root ?? process.cwd();
|
|
15
|
+
const files = options.files ?? resolveSandboxKitFiles(root, options);
|
|
16
|
+
if (files === null)
|
|
17
|
+
return null;
|
|
18
|
+
const components = await generateSandboxKitDocs({ ...options, root, files });
|
|
19
|
+
const vars = {};
|
|
20
|
+
for (const file of options.css === undefined ? [] : globFiles(root, options.css)) {
|
|
21
|
+
for (const [name, value] of Object.entries(themeVarsFromCss(readFileSync(file, 'utf8'))))
|
|
22
|
+
vars[name] ??= value;
|
|
23
|
+
}
|
|
24
|
+
const descriptor = {
|
|
25
|
+
version: 1,
|
|
26
|
+
components,
|
|
27
|
+
...(Object.keys(vars).length > 0 ? { theme: { vars } } : {}),
|
|
28
|
+
kit: null,
|
|
29
|
+
tailwind: null,
|
|
30
|
+
};
|
|
31
|
+
const path = resolve(root, options.output);
|
|
32
|
+
const text = `${JSON.stringify(descriptor, null, 2)}\n`;
|
|
33
|
+
if (!existsSync(path) || readFileSync(path, 'utf8') !== text) {
|
|
34
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
35
|
+
writeFileSync(path, text);
|
|
36
|
+
}
|
|
37
|
+
return descriptor;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write.js","sourceRoot":"","sources":["../../../../src/genui/kit/write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAsC,sBAAsB,EAAE,MAAM,WAAW,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,OAA6F;IAE7F,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAC3C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,sBAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrE,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7E,MAAM,IAAI,GAA2B,EAAE,CAAC;IACxC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjF,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;YACtF,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC;IACzB,CAAC;IACD,MAAM,UAAU,GAAyB;QACvC,OAAO,EAAE,CAAC;QACV,UAAU;QACV,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,EAAE,IAAI;QACT,QAAQ,EAAE,IAAI;KACf,CAAC;IACF,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;IACxD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;QAC7D,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9C,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -17,7 +17,9 @@ export interface GenuiPartialElement {
|
|
|
17
17
|
incomplete?: true;
|
|
18
18
|
/**
|
|
19
19
|
* The node's component streams `complete`: its props and children are held back until its whole
|
|
20
|
-
* subtree has arrived (`props` is `{}`). Draw a placeholder, never the component.
|
|
20
|
+
* subtree has arrived (`props` is `{}`). Draw a placeholder, never the component. (A `complete`
|
|
21
|
+
* layout holding a component that streams `partial` itself — a `Sandbox` — is not held once its
|
|
22
|
+
* own props are whole: it is drawn `incomplete`, with its children so far.)
|
|
21
23
|
*/
|
|
22
24
|
held?: true;
|
|
23
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progressive.d.ts","sourceRoot":"","sources":["../../../src/genui/progressive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB
|
|
1
|
+
{"version":3,"file":"progressive.d.ts","sourceRoot":"","sources":["../../../src/genui/progressive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;GAMG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,QAAQ,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACjC,4FAA4F;IAC5F,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;CACb;AAED,kFAAkF;AAClF,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,MAAM,WAAW,kBAAkB;IACjC,iFAAiF;IACjF,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,MAAM,CAAC,EAAE,UAAU,CAAC;CACrB;AAMD;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,gBAAgB,EACvB,OAAO,GAAE,kBAAuB,GAC/B;IAAE,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,CAgH7C"}
|
|
@@ -51,8 +51,11 @@ export function partialTree(catalog, input, options = {}) {
|
|
|
51
51
|
const mode = definition.streaming ?? fallback;
|
|
52
52
|
if (mode === 'complete') {
|
|
53
53
|
// Drawn only whole — and only once its props would pass (a display gate; the final tree is
|
|
54
|
-
// validated on its own, as every tree is).
|
|
55
|
-
|
|
54
|
+
// validated on its own, as every tree is). One exception: a layout around a component that
|
|
55
|
+
// streams `partial` of its own accord (a sandbox) is drawn as soon as ITS props are whole, so
|
|
56
|
+
// what it holds can stream — its children each follow their own mode.
|
|
57
|
+
const opens = open && definition.children === true && propsSettled(value) && streamsWithin(value, depth);
|
|
58
|
+
const checked = open && !opens
|
|
56
59
|
? undefined
|
|
57
60
|
: validatePropsSync(definition.props, value.props ?? {}, catalog.validator);
|
|
58
61
|
if (checked === undefined || !checked.ok) {
|
|
@@ -64,6 +67,7 @@ export function partialTree(catalog, input, options = {}) {
|
|
|
64
67
|
type,
|
|
65
68
|
props: checked.value,
|
|
66
69
|
...(children !== undefined && children.length > 0 ? { children } : {}),
|
|
70
|
+
...(open ? { incomplete: true } : {}),
|
|
67
71
|
};
|
|
68
72
|
}
|
|
69
73
|
const raw = isRecord(value.props) ? value.props : {};
|
|
@@ -79,6 +83,23 @@ export function partialTree(catalog, input, options = {}) {
|
|
|
79
83
|
...(open ? { incomplete: true } : {}),
|
|
80
84
|
};
|
|
81
85
|
};
|
|
86
|
+
// A node's own props will not change any more: written and closed, or never written while its
|
|
87
|
+
// children already are (a model writes `props` before `children`).
|
|
88
|
+
const propsSettled = (value) => isRecord(value.props)
|
|
89
|
+
? !input.isOpen(value.props)
|
|
90
|
+
: value.props === undefined && Array.isArray(value.children);
|
|
91
|
+
// Somewhere under `value` (as written so far) is a component that streams `partial` itself.
|
|
92
|
+
const streamsWithin = (value, depth) => {
|
|
93
|
+
if (depth >= maxDepth || !Array.isArray(value.children))
|
|
94
|
+
return false;
|
|
95
|
+
return value.children.some((child) => {
|
|
96
|
+
if (!isRecord(child) || typeof child.type !== 'string')
|
|
97
|
+
return false;
|
|
98
|
+
if (input.isOpen(child) && input.pendingMember(child) === 'type')
|
|
99
|
+
return false;
|
|
100
|
+
return catalog.get(child.type)?.streaming === 'partial' || streamsWithin(child, depth + 1);
|
|
101
|
+
});
|
|
102
|
+
};
|
|
82
103
|
const childrenOf = (value, id, depth, takesChildren) => {
|
|
83
104
|
const raw = value.children;
|
|
84
105
|
// A stringified `children` (a model quirk the final validation repairs) cannot be drawn yet.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progressive.js","sourceRoot":"","sources":["../../../src/genui/progressive.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"progressive.js","sourceRoot":"","sources":["../../../src/genui/progressive.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
/** Isomorphic public GenUI contracts and implementation. */
|
|
2
|
-
export { jsonByteLength, type ReadUiActionOptions, readUiAction, sandboxAction, UI_ACTION_MAX_BYTES, type UiAction, type UiActionSource, uiActionText, validateUiActionContext, } from './actions.js';
|
|
2
|
+
export { jsonByteLength, type ReadUiActionOptions, readUiAction, readUiActionText, sandboxAction, UI_ACTION_MAX_BYTES, type UiAction, type UiActionMessage, type UiActionSource, uiActionSummary, uiActionText, validateUiActionContext, } from './actions.js';
|
|
3
3
|
export { negotiateCatalog, type PreparedUiEmission, prepareUiEmission, type UiCapabilities, validateUiCapabilities, } from './capabilities.js';
|
|
4
|
-
export { type Catalog, type CatalogOptions, COMPONENT_NAME, type ComponentDefinition, defineCatalog, defineComponent, type GenuiStreaming, toolNameFor, toSnakeCase, } from './catalog.js';
|
|
4
|
+
export { type Catalog, type CatalogOptions, COMPONENT_NAME, type ComponentDefinition, type DefineComponentExtras, defineCatalog, defineComponent, type GenuiStreaming, toolNameFor, toSnakeCase, } from './catalog.js';
|
|
5
|
+
export { assertGenuiChannels, type ChannelComponentInput, type ChannelConversion, type ChannelNativeButton, type ChannelNativeImage, type ChannelNativeList, type ChannelNativeListItem, type ChannelNativeMessage, type ChannelRenderedMessage, type ChartImageRenderer, type ComponentChannels, canRenderOnChannel, channelButtonAction, channelCatalog, channelInstructions, DEFAULT_CHANNEL, type GenuiChannelBase, type GenuiChannelMode, type GenuiChannelOptions, type GenuiChannelRender, type GenuiChannels, isMessagingChannel, MESSAGING_CHANNELS, type ResolvedGenuiChannel, renderChannelMessages, resolveGenuiChannel, textToHtml, turnChannel, WEB_CHANNEL, } from './channels.js';
|
|
5
6
|
export { type GenuiPartialElement, type PartialTreeOptions, partialTree, treeNodeId, } from './progressive.js';
|
|
6
7
|
export { type ChartProps, type ComponentFactory, type ComponentManifest, type ComponentPresentation, type ComponentRegistry, type ComponentRenderer, chart, createComponent, createComponentRegistry, snapshotComponentPresentation, type TableCell, type TableProps, table, validatePresentationBatch, } from './registry.js';
|
|
7
|
-
export { assertSandboxPolicy, buildSandboxDocument, type DefineSandboxOptions, defineSandbox, previewHtml, SANDBOX_COMPONENT, SANDBOX_DEFAULTS, SANDBOX_FIELD_ORDER, SANDBOX_IFRAME_FLAGS, SANDBOX_MESSAGE, Sandbox, type SandboxDefinition, type SandboxDocumentOptions, type SandboxPolicy, type SandboxProps, sandboxCsp, sandboxPartialProps, sandboxPolicyOf, } from './sandbox.js';
|
|
8
|
+
export { assertSandboxPolicy, buildSandboxDocument, type DefineSandboxOptions, defineSandbox, previewHtml, SANDBOX_COMPONENT, SANDBOX_DEFAULTS, SANDBOX_FIELD_ORDER, SANDBOX_IFRAME_FLAGS, SANDBOX_MESSAGE, Sandbox, type SandboxDefinition, type SandboxDocumentOptions, type SandboxKitSource, type SandboxPolicy, type SandboxProps, type SandboxThemeSource, type SandboxView, sandboxCsp, sandboxPartialProps, sandboxPolicyOf, } from './sandbox.js';
|
|
9
|
+
export { prepareSandboxJsx, transpileJsx } from './sandbox-jsx.js';
|
|
10
|
+
export { kitDocsToModelText, kitJsxInstructions, SANDBOX_ASSET_SIZES, type SandboxClientConfig, type SandboxKitComponentDoc, type SandboxKitDescriptor, type SandboxKitDocs, type SandboxKitPropDoc, sandboxJsxRuntime, tailwindInstructions, } from './sandbox-kit.js';
|
|
11
|
+
export { collectHostThemeVars, hostThemeCss, isColorValue, isHostDark, isHslChannels, type ThemeTokens, tailwindThemeCss, themeTokens, themeToModelText, themeVarsFromCss, watchHostTheme, } from './sandbox-theme.js';
|
|
8
12
|
export { type AjvLike, ajvValidator, builtinJsonSchemaValidator, formatIssues, type GenuiIssue, type GenuiValidation, isStandardSchema, type JsonSchema, type JsonSchemaValidator, type PropsSchema, toJsonSchema, validateProps, validatePropsSync, } from './schema.js';
|
|
9
13
|
export { type CatalogTextOptions, catalogToModelText, componentToText, fillTemplate, getPath, summarizeSchema, treeToText, } from './text.js';
|
|
10
14
|
export { GENUI_SHOW_TOOL, type GenuiCatalogScope, type GenuiTool, type GenuiToolOutput, type GenuiToolsOptions, genuiTools, jsonStandardSchema, type ResolveGenuiCatalog, showToolJsonSchema, } from './tools.js';
|
|
11
|
-
export { type FlatSpec, GENUI_TREE_COMPONENT, type GenuiElement, type GenuiTreeProps, type TreeLimits, type TreeSchemaMode, treeJsonSchema, treeToFlatSpec, validateTree, } from './tree.js';
|
|
15
|
+
export { type FlatSpec, GENUI_TREE_COMPONENT, type GenuiElement, type GenuiTreeProps, normalizeTreeInput, type TreeLimits, type TreeSchemaMode, treeJsonSchema, treeToFlatSpec, validateTree, } from './tree.js';
|
|
12
16
|
//# sourceMappingURL=public.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/genui/public.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,EACxB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,KAAK,QAAQ,EACb,KAAK,cAAc,EACnB,YAAY,EACZ,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,iBAAiB,EACjB,KAAK,cAAc,EACnB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,cAAc,EACd,KAAK,mBAAmB,EACxB,aAAa,EACb,eAAe,EACf,KAAK,cAAc,EACnB,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,WAAW,EACX,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,EACL,eAAe,EACf,uBAAuB,EACvB,6BAA6B,EAC7B,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,EACL,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,KAAK,oBAAoB,EACzB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,OAAO,EACP,KAAK,iBAAiB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,UAAU,EACV,mBAAmB,EACnB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,KAAK,OAAO,EACZ,YAAY,EACZ,0BAA0B,EAC1B,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,OAAO,EACP,eAAe,EACf,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,eAAe,EACf,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,UAAU,EACV,kBAAkB,EAClB,KAAK,mBAAmB,EACxB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,KAAK,QAAQ,EACb,oBAAoB,EACpB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"public.d.ts","sourceRoot":"","sources":["../../../src/genui/public.ts"],"names":[],"mappings":"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"}
|
package/dist/src/genui/public.js
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
/** Isomorphic public GenUI contracts and implementation. */
|
|
2
|
-
export { jsonByteLength, readUiAction, sandboxAction, UI_ACTION_MAX_BYTES, uiActionText, validateUiActionContext, } from './actions.js';
|
|
2
|
+
export { jsonByteLength, readUiAction, readUiActionText, sandboxAction, UI_ACTION_MAX_BYTES, uiActionSummary, uiActionText, validateUiActionContext, } from './actions.js';
|
|
3
3
|
export { negotiateCatalog, prepareUiEmission, validateUiCapabilities, } from './capabilities.js';
|
|
4
4
|
export { COMPONENT_NAME, defineCatalog, defineComponent, toolNameFor, toSnakeCase, } from './catalog.js';
|
|
5
|
+
export { assertGenuiChannels, canRenderOnChannel, channelButtonAction, channelCatalog, channelInstructions, DEFAULT_CHANNEL, isMessagingChannel, MESSAGING_CHANNELS, renderChannelMessages, resolveGenuiChannel, textToHtml, turnChannel, WEB_CHANNEL, } from './channels.js';
|
|
5
6
|
export { partialTree, treeNodeId, } from './progressive.js';
|
|
6
7
|
export { chart, createComponent, createComponentRegistry, snapshotComponentPresentation, table, validatePresentationBatch, } from './registry.js';
|
|
7
8
|
export { assertSandboxPolicy, buildSandboxDocument, defineSandbox, previewHtml, SANDBOX_COMPONENT, SANDBOX_DEFAULTS, SANDBOX_FIELD_ORDER, SANDBOX_IFRAME_FLAGS, SANDBOX_MESSAGE, Sandbox, sandboxCsp, sandboxPartialProps, sandboxPolicyOf, } from './sandbox.js';
|
|
9
|
+
export { prepareSandboxJsx, transpileJsx } from './sandbox-jsx.js';
|
|
10
|
+
export { kitDocsToModelText, kitJsxInstructions, SANDBOX_ASSET_SIZES, sandboxJsxRuntime, tailwindInstructions, } from './sandbox-kit.js';
|
|
11
|
+
export { collectHostThemeVars, hostThemeCss, isColorValue, isHostDark, isHslChannels, tailwindThemeCss, themeTokens, themeToModelText, themeVarsFromCss, watchHostTheme, } from './sandbox-theme.js';
|
|
8
12
|
export { ajvValidator, builtinJsonSchemaValidator, formatIssues, isStandardSchema, toJsonSchema, validateProps, validatePropsSync, } from './schema.js';
|
|
9
13
|
export { catalogToModelText, componentToText, fillTemplate, getPath, summarizeSchema, treeToText, } from './text.js';
|
|
10
14
|
export { GENUI_SHOW_TOOL, genuiTools, jsonStandardSchema, showToolJsonSchema, } from './tools.js';
|
|
11
|
-
export { GENUI_TREE_COMPONENT, treeJsonSchema, treeToFlatSpec, validateTree, } from './tree.js';
|
|
15
|
+
export { GENUI_TREE_COMPONENT, normalizeTreeInput, treeJsonSchema, treeToFlatSpec, validateTree, } from './tree.js';
|
|
12
16
|
//# sourceMappingURL=public.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/genui/public.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,EACL,cAAc,EAEd,YAAY,EACZ,aAAa,EACb,mBAAmB,
|
|
1
|
+
{"version":3,"file":"public.js","sourceRoot":"","sources":["../../../src/genui/public.ts"],"names":[],"mappings":"AAAA,4DAA4D;AAE5D,OAAO,EACL,cAAc,EAEd,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EAInB,eAAe,EACf,YAAY,EACZ,uBAAuB,GACxB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,EAEhB,iBAAiB,EAEjB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGL,cAAc,EAGd,aAAa,EACb,eAAe,EAEf,WAAW,EACX,WAAW,GACZ,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mBAAmB,EAWnB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,eAAe,EAMf,kBAAkB,EAClB,kBAAkB,EAElB,qBAAqB,EACrB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,WAAW,GACZ,MAAM,eAAe,CAAC;AACvB,OAAO,EAGL,WAAW,EACX,UAAU,GACX,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAOL,KAAK,EACL,eAAe,EACf,uBAAuB,EACvB,6BAA6B,EAG7B,KAAK,EACL,yBAAyB,GAC1B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EAEpB,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,OAAO,EAQP,UAAU,EACV,mBAAmB,EACnB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EAMnB,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EAEb,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAEL,YAAY,EACZ,0BAA0B,EAC1B,YAAY,EAGZ,gBAAgB,EAIhB,YAAY,EACZ,aAAa,EACb,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,OAAO,EACP,eAAe,EACf,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,eAAe,EAKf,UAAU,EACV,kBAAkB,EAElB,kBAAkB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,oBAAoB,EAGpB,kBAAkB,EAGlB,cAAc,EACd,cAAc,EACd,YAAY,GACb,MAAM,WAAW,CAAC"}
|