@agentuity/cli 2.0.10 → 3.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cmd/ai/prompt/index.d.ts.map +1 -1
- package/dist/cmd/ai/prompt/index.js +2 -7
- package/dist/cmd/ai/prompt/index.js.map +1 -1
- package/dist/cmd/build/adapters/generic.d.ts +29 -0
- package/dist/cmd/build/adapters/generic.d.ts.map +1 -0
- package/dist/cmd/build/adapters/generic.js +190 -0
- package/dist/cmd/build/adapters/generic.js.map +1 -0
- package/dist/cmd/build/adapters/index.d.ts +15 -0
- package/dist/cmd/build/adapters/index.d.ts.map +1 -0
- package/dist/cmd/build/adapters/index.js +24 -0
- package/dist/cmd/build/adapters/index.js.map +1 -0
- package/dist/cmd/build/adapters/nextjs.d.ts +11 -0
- package/dist/cmd/build/adapters/nextjs.d.ts.map +1 -0
- package/dist/cmd/build/adapters/nextjs.js +118 -0
- package/dist/cmd/build/adapters/nextjs.js.map +1 -0
- package/dist/cmd/build/adapters/static-server.d.ts +23 -0
- package/dist/cmd/build/adapters/static-server.d.ts.map +1 -0
- package/dist/cmd/build/adapters/static-server.js +137 -0
- package/dist/cmd/build/adapters/static-server.js.map +1 -0
- package/dist/cmd/build/adapters/types.d.ts +71 -0
- package/dist/cmd/build/adapters/types.d.ts.map +1 -0
- package/dist/cmd/build/adapters/types.js +8 -0
- package/dist/cmd/build/adapters/types.js.map +1 -0
- package/dist/cmd/build/detect/engine.d.ts +24 -0
- package/dist/cmd/build/detect/engine.d.ts.map +1 -0
- package/dist/cmd/build/detect/engine.js +91 -0
- package/dist/cmd/build/detect/engine.js.map +1 -0
- package/dist/cmd/build/detect/frameworks.d.ts +66 -0
- package/dist/cmd/build/detect/frameworks.d.ts.map +1 -0
- package/dist/cmd/build/detect/frameworks.js +278 -0
- package/dist/cmd/build/detect/frameworks.js.map +1 -0
- package/dist/cmd/build/detect/generic.d.ts +13 -0
- package/dist/cmd/build/detect/generic.d.ts.map +1 -0
- package/dist/cmd/build/detect/generic.js +62 -0
- package/dist/cmd/build/detect/generic.js.map +1 -0
- package/dist/cmd/build/detect/index.d.ts +27 -0
- package/dist/cmd/build/detect/index.d.ts.map +1 -0
- package/dist/cmd/build/detect/index.js +76 -0
- package/dist/cmd/build/detect/index.js.map +1 -0
- package/dist/cmd/build/detect/types.d.ts +91 -0
- package/dist/cmd/build/detect/types.d.ts.map +1 -0
- package/dist/cmd/build/detect/types.js +9 -0
- package/dist/cmd/build/detect/types.js.map +1 -0
- package/dist/cmd/build/detect/util.d.ts +41 -0
- package/dist/cmd/build/detect/util.d.ts.map +1 -0
- package/dist/cmd/build/detect/util.js +101 -0
- package/dist/cmd/build/detect/util.js.map +1 -0
- package/dist/cmd/build/index.d.ts.map +1 -1
- package/dist/cmd/build/index.js +49 -22
- package/dist/cmd/build/index.js.map +1 -1
- package/dist/cmd/build/package/index.d.ts +30 -0
- package/dist/cmd/build/package/index.d.ts.map +1 -0
- package/dist/cmd/build/package/index.js +39 -0
- package/dist/cmd/build/package/index.js.map +1 -0
- package/dist/cmd/build/package/launch.d.ts +56 -0
- package/dist/cmd/build/package/launch.d.ts.map +1 -0
- package/dist/cmd/build/package/launch.js +56 -0
- package/dist/cmd/build/package/launch.js.map +1 -0
- package/dist/cmd/build/typecheck.d.ts.map +1 -1
- package/dist/cmd/build/typecheck.js +8 -0
- package/dist/cmd/build/typecheck.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +63 -13
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/coder/create.d.ts.map +1 -1
- package/dist/cmd/coder/create.js +18 -0
- package/dist/cmd/coder/create.js.map +1 -1
- package/dist/cmd/coder/index.d.ts.map +1 -1
- package/dist/cmd/coder/index.js +4 -0
- package/dist/cmd/coder/index.js.map +1 -1
- package/dist/cmd/coder/start.d.ts.map +1 -1
- package/dist/cmd/coder/start.js +49 -1
- package/dist/cmd/coder/start.js.map +1 -1
- package/dist/cmd/coder/update.d.ts.map +1 -1
- package/dist/cmd/coder/update.js +21 -1
- package/dist/cmd/coder/update.js.map +1 -1
- package/dist/cmd/coder/workspace/create.d.ts.map +1 -1
- package/dist/cmd/coder/workspace/create.js +17 -1
- package/dist/cmd/coder/workspace/create.js.map +1 -1
- package/dist/cmd/coder/workspace/list.js +2 -2
- package/dist/cmd/coder/workspace/list.js.map +1 -1
- package/dist/cmd/dev/index.d.ts +9 -0
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +127 -923
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/project/auth/shared.d.ts.map +1 -1
- package/dist/cmd/project/auth/shared.js +14 -38
- package/dist/cmd/project/auth/shared.js.map +1 -1
- package/dist/cmd/project/create.d.ts.map +1 -1
- package/dist/cmd/project/create.js +12 -19
- package/dist/cmd/project/create.js.map +1 -1
- package/dist/cmd/project/frameworks-ai-examples.d.ts +15 -0
- package/dist/cmd/project/frameworks-ai-examples.d.ts.map +1 -0
- package/dist/cmd/project/frameworks-ai-examples.js +160 -0
- package/dist/cmd/project/frameworks-ai-examples.js.map +1 -0
- package/dist/cmd/project/frameworks-landing-pages.d.ts +17 -0
- package/dist/cmd/project/frameworks-landing-pages.d.ts.map +1 -0
- package/dist/cmd/project/frameworks-landing-pages.js +242 -0
- package/dist/cmd/project/frameworks-landing-pages.js.map +1 -0
- package/dist/cmd/project/frameworks.d.ts +58 -0
- package/dist/cmd/project/frameworks.d.ts.map +1 -0
- package/dist/cmd/project/frameworks.js +152 -0
- package/dist/cmd/project/frameworks.js.map +1 -0
- package/dist/cmd/project/reconcile.d.ts.map +1 -1
- package/dist/cmd/project/reconcile.js +10 -23
- package/dist/cmd/project/reconcile.js.map +1 -1
- package/dist/cmd/project/remote-import.js +1 -1
- package/dist/cmd/project/scaffold.d.ts +58 -0
- package/dist/cmd/project/scaffold.d.ts.map +1 -0
- package/dist/cmd/project/scaffold.js +223 -0
- package/dist/cmd/project/scaffold.js.map +1 -0
- package/dist/cmd/project/template-flow.d.ts +8 -4
- package/dist/cmd/project/template-flow.d.ts.map +1 -1
- package/dist/cmd/project/template-flow.js +93 -144
- package/dist/cmd/project/template-flow.js.map +1 -1
- package/dist/deploy-metadata.d.ts +49 -0
- package/dist/deploy-metadata.d.ts.map +1 -0
- package/dist/deploy-metadata.js +183 -0
- package/dist/deploy-metadata.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +25 -31
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +13 -8
- package/src/cmd/ai/prompt/index.ts +2 -7
- package/src/cmd/build/adapters/generic.ts +239 -0
- package/src/cmd/build/adapters/index.ts +30 -0
- package/src/cmd/build/adapters/nextjs.ts +146 -0
- package/src/cmd/build/adapters/static-server.ts +143 -0
- package/src/cmd/build/adapters/types.ts +93 -0
- package/src/cmd/build/detect/engine.ts +111 -0
- package/src/cmd/build/detect/frameworks.ts +335 -0
- package/src/cmd/build/detect/generic.ts +71 -0
- package/src/cmd/build/detect/index.ts +122 -0
- package/src/cmd/build/detect/types.ts +109 -0
- package/src/cmd/build/detect/util.ts +104 -0
- package/src/cmd/build/index.ts +64 -24
- package/src/cmd/build/package/index.ts +66 -0
- package/src/cmd/build/package/launch.ts +104 -0
- package/src/cmd/build/typecheck.ts +9 -0
- package/src/cmd/cloud/deploy.ts +86 -13
- package/src/cmd/coder/create.ts +24 -1
- package/src/cmd/coder/index.ts +4 -0
- package/src/cmd/coder/start.ts +60 -1
- package/src/cmd/coder/update.ts +18 -1
- package/src/cmd/coder/workspace/create.ts +20 -2
- package/src/cmd/coder/workspace/list.ts +2 -2
- package/src/cmd/dev/index.ts +155 -1059
- package/src/cmd/project/auth/shared.ts +14 -39
- package/src/cmd/project/create.ts +14 -19
- package/src/cmd/project/frameworks-ai-examples.ts +166 -0
- package/src/cmd/project/frameworks-landing-pages.ts +267 -0
- package/src/cmd/project/frameworks.ts +223 -0
- package/src/cmd/project/reconcile.ts +10 -22
- package/src/cmd/project/remote-import.ts +1 -1
- package/src/cmd/project/scaffold.ts +300 -0
- package/src/cmd/project/template-flow.ts +102 -156
- package/src/deploy-metadata.ts +253 -0
- package/src/index.ts +0 -2
- package/src/types.ts +0 -31
- package/dist/agents-docs.d.ts +0 -23
- package/dist/agents-docs.d.ts.map +0 -1
- package/dist/agents-docs.js +0 -56
- package/dist/agents-docs.js.map +0 -1
- package/dist/cmd/ai/prompt/agent.d.ts +0 -10
- package/dist/cmd/ai/prompt/agent.d.ts.map +0 -1
- package/dist/cmd/ai/prompt/agent.js +0 -28
- package/dist/cmd/ai/prompt/agent.js.map +0 -1
- package/dist/cmd/build/app-router-detector.d.ts +0 -39
- package/dist/cmd/build/app-router-detector.d.ts.map +0 -1
- package/dist/cmd/build/app-router-detector.js +0 -229
- package/dist/cmd/build/app-router-detector.js.map +0 -1
- package/dist/cmd/build/format-schema.d.ts +0 -6
- package/dist/cmd/build/format-schema.d.ts.map +0 -1
- package/dist/cmd/build/format-schema.js +0 -60
- package/dist/cmd/build/format-schema.js.map +0 -1
- package/dist/cmd/build/vite/agent-discovery.d.ts +0 -37
- package/dist/cmd/build/vite/agent-discovery.d.ts.map +0 -1
- package/dist/cmd/build/vite/agent-discovery.js +0 -263
- package/dist/cmd/build/vite/agent-discovery.js.map +0 -1
- package/dist/cmd/build/vite/beacon-plugin.d.ts +0 -19
- package/dist/cmd/build/vite/beacon-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/beacon-plugin.js +0 -137
- package/dist/cmd/build/vite/beacon-plugin.js.map +0 -1
- package/dist/cmd/build/vite/browser-env-plugin.d.ts +0 -9
- package/dist/cmd/build/vite/browser-env-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/browser-env-plugin.js +0 -28
- package/dist/cmd/build/vite/browser-env-plugin.js.map +0 -1
- package/dist/cmd/build/vite/bun-dev-server.d.ts +0 -67
- package/dist/cmd/build/vite/bun-dev-server.d.ts.map +0 -1
- package/dist/cmd/build/vite/bun-dev-server.js +0 -340
- package/dist/cmd/build/vite/bun-dev-server.js.map +0 -1
- package/dist/cmd/build/vite/bundle-files.d.ts +0 -12
- package/dist/cmd/build/vite/bundle-files.d.ts.map +0 -1
- package/dist/cmd/build/vite/bundle-files.js +0 -107
- package/dist/cmd/build/vite/bundle-files.js.map +0 -1
- package/dist/cmd/build/vite/config-loader.d.ts +0 -29
- package/dist/cmd/build/vite/config-loader.d.ts.map +0 -1
- package/dist/cmd/build/vite/config-loader.js +0 -57
- package/dist/cmd/build/vite/config-loader.js.map +0 -1
- package/dist/cmd/build/vite/db-rewrite.d.ts +0 -50
- package/dist/cmd/build/vite/db-rewrite.d.ts.map +0 -1
- package/dist/cmd/build/vite/db-rewrite.js +0 -169
- package/dist/cmd/build/vite/db-rewrite.js.map +0 -1
- package/dist/cmd/build/vite/docs-generator.d.ts +0 -13
- package/dist/cmd/build/vite/docs-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/docs-generator.js +0 -97
- package/dist/cmd/build/vite/docs-generator.js.map +0 -1
- package/dist/cmd/build/vite/env-types-generator.d.ts +0 -26
- package/dist/cmd/build/vite/env-types-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/env-types-generator.js +0 -110
- package/dist/cmd/build/vite/env-types-generator.js.map +0 -1
- package/dist/cmd/build/vite/index.d.ts +0 -3
- package/dist/cmd/build/vite/index.d.ts.map +0 -1
- package/dist/cmd/build/vite/index.js +0 -4
- package/dist/cmd/build/vite/index.js.map +0 -1
- package/dist/cmd/build/vite/lifecycle-generator.d.ts +0 -19
- package/dist/cmd/build/vite/lifecycle-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/lifecycle-generator.js +0 -328
- package/dist/cmd/build/vite/lifecycle-generator.js.map +0 -1
- package/dist/cmd/build/vite/metadata-generator.d.ts +0 -36
- package/dist/cmd/build/vite/metadata-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/metadata-generator.js +0 -575
- package/dist/cmd/build/vite/metadata-generator.js.map +0 -1
- package/dist/cmd/build/vite/prompt-generator.d.ts +0 -23
- package/dist/cmd/build/vite/prompt-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/prompt-generator.js +0 -123
- package/dist/cmd/build/vite/prompt-generator.js.map +0 -1
- package/dist/cmd/build/vite/public-asset-path-plugin.d.ts +0 -45
- package/dist/cmd/build/vite/public-asset-path-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/public-asset-path-plugin.js +0 -166
- package/dist/cmd/build/vite/public-asset-path-plugin.js.map +0 -1
- package/dist/cmd/build/vite/route-discovery.d.ts +0 -64
- package/dist/cmd/build/vite/route-discovery.d.ts.map +0 -1
- package/dist/cmd/build/vite/route-discovery.js +0 -187
- package/dist/cmd/build/vite/route-discovery.js.map +0 -1
- package/dist/cmd/build/vite/server-bundler.d.ts +0 -20
- package/dist/cmd/build/vite/server-bundler.d.ts.map +0 -1
- package/dist/cmd/build/vite/server-bundler.js +0 -388
- package/dist/cmd/build/vite/server-bundler.js.map +0 -1
- package/dist/cmd/build/vite/static-renderer.d.ts +0 -26
- package/dist/cmd/build/vite/static-renderer.d.ts.map +0 -1
- package/dist/cmd/build/vite/static-renderer.js +0 -188
- package/dist/cmd/build/vite/static-renderer.js.map +0 -1
- package/dist/cmd/build/vite/tailwind-source-plugin.d.ts +0 -15
- package/dist/cmd/build/vite/tailwind-source-plugin.d.ts.map +0 -1
- package/dist/cmd/build/vite/tailwind-source-plugin.js +0 -61
- package/dist/cmd/build/vite/tailwind-source-plugin.js.map +0 -1
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts +0 -24
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +0 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js +0 -285
- package/dist/cmd/build/vite/vite-asset-server-config.js.map +0 -1
- package/dist/cmd/build/vite/vite-asset-server.d.ts +0 -30
- package/dist/cmd/build/vite/vite-asset-server.d.ts.map +0 -1
- package/dist/cmd/build/vite/vite-asset-server.js +0 -109
- package/dist/cmd/build/vite/vite-asset-server.js.map +0 -1
- package/dist/cmd/build/vite/vite-builder.d.ts +0 -59
- package/dist/cmd/build/vite/vite-builder.d.ts.map +0 -1
- package/dist/cmd/build/vite/vite-builder.js +0 -401
- package/dist/cmd/build/vite/vite-builder.js.map +0 -1
- package/dist/cmd/build/vite/workbench-generator.d.ts +0 -10
- package/dist/cmd/build/vite/workbench-generator.d.ts.map +0 -1
- package/dist/cmd/build/vite/workbench-generator.js +0 -135
- package/dist/cmd/build/vite/workbench-generator.js.map +0 -1
- package/dist/cmd/build/vite/ws-proxy.d.ts +0 -53
- package/dist/cmd/build/vite/ws-proxy.d.ts.map +0 -1
- package/dist/cmd/build/vite/ws-proxy.js +0 -95
- package/dist/cmd/build/vite/ws-proxy.js.map +0 -1
- package/dist/cmd/build/vite-bundler.d.ts +0 -29
- package/dist/cmd/build/vite-bundler.d.ts.map +0 -1
- package/dist/cmd/build/vite-bundler.js +0 -93
- package/dist/cmd/build/vite-bundler.js.map +0 -1
- package/dist/cmd/dev/agents.d.ts +0 -2
- package/dist/cmd/dev/agents.d.ts.map +0 -1
- package/dist/cmd/dev/agents.js +0 -123
- package/dist/cmd/dev/agents.js.map +0 -1
- package/dist/cmd/dev/api.d.ts +0 -20
- package/dist/cmd/dev/api.d.ts.map +0 -1
- package/dist/cmd/dev/api.js +0 -42
- package/dist/cmd/dev/api.js.map +0 -1
- package/dist/cmd/dev/dev-lock.d.ts +0 -62
- package/dist/cmd/dev/dev-lock.d.ts.map +0 -1
- package/dist/cmd/dev/dev-lock.js +0 -250
- package/dist/cmd/dev/dev-lock.js.map +0 -1
- package/dist/cmd/dev/download.d.ts +0 -11
- package/dist/cmd/dev/download.d.ts.map +0 -1
- package/dist/cmd/dev/download.js +0 -94
- package/dist/cmd/dev/download.js.map +0 -1
- package/dist/cmd/dev/file-watcher.d.ts +0 -24
- package/dist/cmd/dev/file-watcher.d.ts.map +0 -1
- package/dist/cmd/dev/file-watcher.js +0 -349
- package/dist/cmd/dev/file-watcher.js.map +0 -1
- package/dist/cmd/dev/process-manager.d.ts +0 -104
- package/dist/cmd/dev/process-manager.d.ts.map +0 -1
- package/dist/cmd/dev/process-manager.js +0 -204
- package/dist/cmd/dev/process-manager.js.map +0 -1
- package/dist/cmd/dev/sync.d.ts +0 -12
- package/dist/cmd/dev/sync.d.ts.map +0 -1
- package/dist/cmd/dev/sync.js +0 -227
- package/dist/cmd/dev/sync.js.map +0 -1
- package/dist/cmd/dev/templates.d.ts +0 -3
- package/dist/cmd/dev/templates.d.ts.map +0 -1
- package/dist/cmd/dev/templates.js +0 -58
- package/dist/cmd/dev/templates.js.map +0 -1
- package/dist/cmd/project/download.d.ts +0 -35
- package/dist/cmd/project/download.d.ts.map +0 -1
- package/dist/cmd/project/download.js +0 -403
- package/dist/cmd/project/download.js.map +0 -1
- package/dist/cmd/project/templates.d.ts +0 -9
- package/dist/cmd/project/templates.d.ts.map +0 -1
- package/dist/cmd/project/templates.js +0 -34
- package/dist/cmd/project/templates.js.map +0 -1
- package/src/agents-docs.ts +0 -86
- package/src/cmd/ai/prompt/agent.md +0 -305
- package/src/cmd/ai/prompt/agent.ts +0 -31
- package/src/cmd/build/app-router-detector.ts +0 -320
- package/src/cmd/build/format-schema.ts +0 -66
- package/src/cmd/build/vite/agent-discovery.ts +0 -380
- package/src/cmd/build/vite/beacon-plugin.ts +0 -164
- package/src/cmd/build/vite/browser-env-plugin.ts +0 -34
- package/src/cmd/build/vite/bun-dev-server.ts +0 -458
- package/src/cmd/build/vite/bundle-files.ts +0 -135
- package/src/cmd/build/vite/config-loader.ts +0 -76
- package/src/cmd/build/vite/db-rewrite.ts +0 -189
- package/src/cmd/build/vite/docs-generator.ts +0 -103
- package/src/cmd/build/vite/env-types-generator.ts +0 -145
- package/src/cmd/build/vite/index.ts +0 -3
- package/src/cmd/build/vite/lifecycle-generator.ts +0 -381
- package/src/cmd/build/vite/metadata-generator.ts +0 -713
- package/src/cmd/build/vite/prompt-generator.ts +0 -169
- package/src/cmd/build/vite/public-asset-path-plugin.ts +0 -209
- package/src/cmd/build/vite/route-discovery.ts +0 -271
- package/src/cmd/build/vite/server-bundler.ts +0 -481
- package/src/cmd/build/vite/static-renderer.ts +0 -239
- package/src/cmd/build/vite/tailwind-source-plugin.ts +0 -73
- package/src/cmd/build/vite/vite-asset-server-config.ts +0 -349
- package/src/cmd/build/vite/vite-asset-server.ts +0 -154
- package/src/cmd/build/vite/vite-builder.ts +0 -503
- package/src/cmd/build/vite/workbench-generator.ts +0 -152
- package/src/cmd/build/vite/ws-proxy.ts +0 -126
- package/src/cmd/build/vite-bundler.ts +0 -137
- package/src/cmd/dev/agents.ts +0 -140
- package/src/cmd/dev/api.ts +0 -65
- package/src/cmd/dev/dev-lock.ts +0 -332
- package/src/cmd/dev/download.ts +0 -117
- package/src/cmd/dev/file-watcher.ts +0 -423
- package/src/cmd/dev/process-manager.ts +0 -261
- package/src/cmd/dev/sync.ts +0 -411
- package/src/cmd/dev/templates.ts +0 -66
- package/src/cmd/project/download.ts +0 -505
- package/src/cmd/project/templates.ts +0 -56
|
@@ -1,388 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Server bundler using Bun.build with external dependency management
|
|
3
|
-
* Handles installing externals into .agentuity/node_modules for production
|
|
4
|
-
*/
|
|
5
|
-
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
6
|
-
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
7
|
-
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
8
|
-
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
return path;
|
|
12
|
-
};
|
|
13
|
-
import { join } from 'node:path';
|
|
14
|
-
import { readdir, stat } from 'node:fs/promises';
|
|
15
|
-
import { generatePatches, applyPatch, buildPatchFilter } from '../patch';
|
|
16
|
-
import { getLoaderForPath, rewriteBunImports, rewritePgImports } from './db-rewrite';
|
|
17
|
-
/**
|
|
18
|
-
* Format a Bun build log (BuildMessage or ResolveMessage) into a readable string
|
|
19
|
-
*/
|
|
20
|
-
export function formatBuildLog(log) {
|
|
21
|
-
const parts = [];
|
|
22
|
-
// For ResolveMessage, format with specifier info
|
|
23
|
-
if (log.name === 'ResolveMessage') {
|
|
24
|
-
const resolveLog = log;
|
|
25
|
-
if (resolveLog.specifier) {
|
|
26
|
-
parts.push(`Could not resolve "${resolveLog.specifier}"`);
|
|
27
|
-
// Use referrer if available, otherwise fall back to position.file
|
|
28
|
-
const referrer = resolveLog.referrer || resolveLog.position?.file;
|
|
29
|
-
if (referrer) {
|
|
30
|
-
parts.push(` imported from: ${referrer}`);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
else if (resolveLog.message) {
|
|
34
|
-
parts.push(resolveLog.message);
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
else if (log.message) {
|
|
38
|
-
parts.push(log.message);
|
|
39
|
-
}
|
|
40
|
-
// Add position info if available (only if we haven't already shown referrer from position)
|
|
41
|
-
if (log.position && log.name !== 'ResolveMessage') {
|
|
42
|
-
parts.push(` at ${log.position.file}:${log.position.line}:${log.position.column}`);
|
|
43
|
-
}
|
|
44
|
-
return parts.join('\n');
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Install external dependencies and build server bundle
|
|
48
|
-
* For production: installs externals into .agentuity/node_modules BEFORE bundling
|
|
49
|
-
*/
|
|
50
|
-
export async function installExternalsAndBuild(options) {
|
|
51
|
-
const { rootDir, dev, logger } = options;
|
|
52
|
-
logger.debug('[server-bundler] Starting server bundle process');
|
|
53
|
-
const entryPath = join(rootDir, 'app.ts');
|
|
54
|
-
const outDir = join(rootDir, '.agentuity');
|
|
55
|
-
logger.debug(`[server-bundler] Entry: ${entryPath}, OutDir: ${outDir}`);
|
|
56
|
-
// Runtime externals: native modules and packages that need to be external
|
|
57
|
-
// These WILL be installed into .agentuity/node_modules for production
|
|
58
|
-
const runtimeExternals = ['bun', 'fsevents', 'chromium-bidi', 'sharp', 'ws'];
|
|
59
|
-
// Build tool externals: packages that should be external but NOT installed
|
|
60
|
-
// These are devDependencies that may exist in node_modules but aren't needed at runtime
|
|
61
|
-
// NOTE: @babel/* is NOT externalized because some runtime deps (e.g., puppeteer → cosmiconfig → parse-json)
|
|
62
|
-
// require @babel/code-frame at runtime. Babel packages are pure JS and bundle fine.
|
|
63
|
-
const buildToolExternals = ['lightningcss', '@vitejs/*', 'vite', 'esbuild'];
|
|
64
|
-
// Load custom externals and define from agentuity.config.ts if it exists
|
|
65
|
-
const customExternals = [];
|
|
66
|
-
let userDefine = {};
|
|
67
|
-
let dbRewriteEnabled = true;
|
|
68
|
-
const configPath = join(rootDir, 'agentuity.config.ts');
|
|
69
|
-
if (await Bun.file(configPath).exists()) {
|
|
70
|
-
try {
|
|
71
|
-
const config = await import(__rewriteRelativeImportExtension(configPath));
|
|
72
|
-
const userConfig = config.default;
|
|
73
|
-
// Load custom externals (legacy build.external support)
|
|
74
|
-
if (userConfig?.build?.external && Array.isArray(userConfig.build.external)) {
|
|
75
|
-
customExternals.push(...userConfig.build.external.filter((e) => typeof e === 'string'));
|
|
76
|
-
}
|
|
77
|
-
// Load custom define values
|
|
78
|
-
if (userConfig?.define && typeof userConfig.define === 'object') {
|
|
79
|
-
userDefine = userConfig.define;
|
|
80
|
-
if (Object.keys(userDefine).length > 0) {
|
|
81
|
-
logger.debug('Loaded %d custom define(s) from agentuity.config.ts for server bundle', Object.keys(userDefine).length);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
// Allow users to disable db rewrite plugin
|
|
85
|
-
if (userConfig?.build?.dbRewrite === false) {
|
|
86
|
-
dbRewriteEnabled = false;
|
|
87
|
-
logger.debug('DB rewrite: disabled via agentuity.config.ts');
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
catch (error) {
|
|
91
|
-
logger.debug('Failed to load agentuity.config.ts for externals:', error);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
// Combine runtime externals with custom externals for installation
|
|
95
|
-
const installPatterns = [...runtimeExternals, ...customExternals];
|
|
96
|
-
// All external patterns (runtime + build tools + custom) for Bun.build
|
|
97
|
-
const allExternalPatterns = [...runtimeExternals, ...buildToolExternals, ...customExternals];
|
|
98
|
-
let external = allExternalPatterns;
|
|
99
|
-
// For production builds: install ONLY runtime externals, then discover full dependency tree
|
|
100
|
-
if (!dev) {
|
|
101
|
-
logger.debug('Installing externalized packages to discover full dependency tree...');
|
|
102
|
-
// Step 1: Collect packages matching RUNTIME external patterns (skip build tools)
|
|
103
|
-
const externalInstalls = [];
|
|
104
|
-
for (const pattern of installPatterns) {
|
|
105
|
-
if (pattern.endsWith('/*')) {
|
|
106
|
-
// Pattern like @org/* - install all packages under that scope
|
|
107
|
-
const prefix = pattern.slice(0, -2);
|
|
108
|
-
const nmDir = join(rootDir, 'node_modules', prefix);
|
|
109
|
-
const nmDirExists = await stat(nmDir)
|
|
110
|
-
.then((s) => s.isDirectory())
|
|
111
|
-
.catch(() => false);
|
|
112
|
-
if (nmDirExists) {
|
|
113
|
-
const entries = await readdir(nmDir);
|
|
114
|
-
for (const entry of entries) {
|
|
115
|
-
const pkgName = `${prefix}/${entry}`;
|
|
116
|
-
const pkgJsonExists = await Bun.file(join(rootDir, 'node_modules', pkgName, 'package.json')).exists();
|
|
117
|
-
if (pkgJsonExists) {
|
|
118
|
-
externalInstalls.push(pkgName);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
// Exact package name
|
|
125
|
-
const pkgJsonExists = await Bun.file(join(rootDir, 'node_modules', pattern, 'package.json')).exists();
|
|
126
|
-
if (pkgJsonExists) {
|
|
127
|
-
externalInstalls.push(pattern);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
// Step 2: Write minimal package.json and install externals
|
|
132
|
-
if (externalInstalls.length > 0) {
|
|
133
|
-
const pkgPath = join(rootDir, 'package.json');
|
|
134
|
-
const pkgContents = await Bun.file(pkgPath).json();
|
|
135
|
-
await Bun.write(join(outDir, 'package.json'), JSON.stringify({ name: pkgContents.name, version: pkgContents.version }, null, 2));
|
|
136
|
-
logger.debug('Installing %d packages: %s', externalInstalls.length, externalInstalls.join(', '));
|
|
137
|
-
// Collect platform-specific optional dependencies for native modules
|
|
138
|
-
// Bun's --target flag doesn't correctly install cross-platform optional deps,
|
|
139
|
-
// so we need to explicitly install them (e.g., @img/sharp-linux-x64 for sharp)
|
|
140
|
-
const platformOptionalDeps = [];
|
|
141
|
-
for (const pkg of externalInstalls) {
|
|
142
|
-
const pkgJsonPath = join(rootDir, 'node_modules', pkg, 'package.json');
|
|
143
|
-
if (await Bun.file(pkgJsonPath).exists()) {
|
|
144
|
-
try {
|
|
145
|
-
const pkgJson = await Bun.file(pkgJsonPath).json();
|
|
146
|
-
if (pkgJson.optionalDependencies) {
|
|
147
|
-
// Find linux-x64 specific optional dependencies (glibc, not musl)
|
|
148
|
-
// Match patterns like: @img/sharp-linux-x64, @img/sharp-libvips-linux-x64
|
|
149
|
-
for (const optDep of Object.keys(pkgJson.optionalDependencies)) {
|
|
150
|
-
if (optDep.includes('linux-x64') && !optDep.includes('musl')) {
|
|
151
|
-
platformOptionalDeps.push(optDep);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
catch {
|
|
157
|
-
// Ignore parse errors
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
if (platformOptionalDeps.length > 0) {
|
|
162
|
-
logger.debug('Found %d platform-specific optional deps: %s', platformOptionalDeps.length, platformOptionalDeps.join(', '));
|
|
163
|
-
}
|
|
164
|
-
// Use npm with --force for cross-platform installs since Bun's --target flag
|
|
165
|
-
// doesn't correctly handle optional dependencies for other platforms
|
|
166
|
-
const allPackagesToInstall = [...externalInstalls, ...platformOptionalDeps];
|
|
167
|
-
logger.debug('Installing with npm (cross-platform): %s', allPackagesToInstall.join(', '));
|
|
168
|
-
const proc = Bun.spawn([
|
|
169
|
-
'npm',
|
|
170
|
-
'install',
|
|
171
|
-
'--no-save',
|
|
172
|
-
'--ignore-scripts',
|
|
173
|
-
'--os=linux',
|
|
174
|
-
'--cpu=x64',
|
|
175
|
-
'--force',
|
|
176
|
-
...allPackagesToInstall,
|
|
177
|
-
], {
|
|
178
|
-
cwd: outDir,
|
|
179
|
-
stdout: 'pipe',
|
|
180
|
-
stderr: 'pipe',
|
|
181
|
-
});
|
|
182
|
-
const exitCode = await proc.exited;
|
|
183
|
-
if (exitCode !== 0) {
|
|
184
|
-
const stderr = await new Response(proc.stderr).text();
|
|
185
|
-
throw new Error(`Failed to install external dependencies (exit code ${exitCode}):\n${stderr}`);
|
|
186
|
-
}
|
|
187
|
-
// Step 3: Scan what actually got installed (includes transitive dependencies)
|
|
188
|
-
const installedNmDir = join(outDir, 'node_modules');
|
|
189
|
-
const installedNmDirExists = await stat(installedNmDir)
|
|
190
|
-
.then((s) => s.isDirectory())
|
|
191
|
-
.catch(() => false);
|
|
192
|
-
if (installedNmDirExists) {
|
|
193
|
-
const allInstalled = [];
|
|
194
|
-
// Recursively find all installed packages
|
|
195
|
-
const scanDir = async (dir, prefix = '') => {
|
|
196
|
-
const entries = await readdir(dir, { withFileTypes: true });
|
|
197
|
-
for (const entry of entries) {
|
|
198
|
-
if (entry.isDirectory()) {
|
|
199
|
-
const pkgName = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
200
|
-
// Check if this is a package (has package.json)
|
|
201
|
-
const pkgJsonExists = await Bun.file(join(dir, entry.name, 'package.json')).exists();
|
|
202
|
-
if (pkgJsonExists) {
|
|
203
|
-
allInstalled.push(pkgName);
|
|
204
|
-
}
|
|
205
|
-
// Recurse into scoped packages (@org/package)
|
|
206
|
-
if (entry.name.startsWith('@')) {
|
|
207
|
-
await scanDir(join(dir, entry.name), entry.name);
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
};
|
|
212
|
-
await scanDir(installedNmDir);
|
|
213
|
-
logger.debug('Discovered %d total packages (including transitive deps)', allInstalled.length);
|
|
214
|
-
// Step 4: Use ALL installed packages + build tool externals for bundling
|
|
215
|
-
external = [...allInstalled, ...buildToolExternals];
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
else {
|
|
220
|
-
// Dev mode: just use all external patterns as-is
|
|
221
|
-
external = allExternalPatterns;
|
|
222
|
-
}
|
|
223
|
-
// Build server bundle
|
|
224
|
-
logger.debug('Building server with Bun.build...');
|
|
225
|
-
logger.debug(`External packages (${external.length}): ${external.join(', ')}`);
|
|
226
|
-
// Create Bun plugin to apply LLM patches during bundling
|
|
227
|
-
const patches = generatePatches();
|
|
228
|
-
logger.debug(`Loaded ${patches.size} patch(es) for LLM providers`);
|
|
229
|
-
const patchPlugin = {
|
|
230
|
-
name: 'agentuity:patch',
|
|
231
|
-
setup(build) {
|
|
232
|
-
for (const [, patch] of patches) {
|
|
233
|
-
build.onLoad({
|
|
234
|
-
filter: buildPatchFilter(patch.module, patch.filename),
|
|
235
|
-
namespace: 'file',
|
|
236
|
-
}, async (args) => {
|
|
237
|
-
if (build.config.target !== 'bun') {
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
logger.trace(`Applying patch to: ${args.path}`);
|
|
241
|
-
const [contents, loader] = await applyPatch(args.path, patch);
|
|
242
|
-
return {
|
|
243
|
-
contents,
|
|
244
|
-
loader,
|
|
245
|
-
};
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
},
|
|
249
|
-
};
|
|
250
|
-
// Detect files belonging to @agentuity/postgres or @agentuity/drizzle.
|
|
251
|
-
// Matches both published paths (node_modules/@agentuity/postgres/) and
|
|
252
|
-
// symlinked/monorepo paths (packages/postgres/dist/, packages/postgres/src/).
|
|
253
|
-
const isAgentuityPostgres = (filePath) => filePath.includes('/@agentuity/postgres/') ||
|
|
254
|
-
filePath.includes('\\@agentuity\\postgres\\') ||
|
|
255
|
-
filePath.includes('/packages/postgres/');
|
|
256
|
-
const isAgentuityDrizzle = (filePath) => filePath.includes('/@agentuity/drizzle/') ||
|
|
257
|
-
filePath.includes('\\@agentuity\\drizzle\\') ||
|
|
258
|
-
filePath.includes('/packages/drizzle/');
|
|
259
|
-
const dbRewritePlugin = {
|
|
260
|
-
name: 'agentuity:db-rewrite',
|
|
261
|
-
setup(build) {
|
|
262
|
-
build.onResolve({ filter: /^drizzle-orm\/bun-sql$/ }, (args) => {
|
|
263
|
-
// Don't redirect if the importer is @agentuity/drizzle itself — that would create a cycle.
|
|
264
|
-
// Matches both published packages in node_modules and symlinked monorepo paths.
|
|
265
|
-
if (args.importer && isAgentuityDrizzle(args.importer)) {
|
|
266
|
-
return; // Let default resolution handle it
|
|
267
|
-
}
|
|
268
|
-
// Resolve to @agentuity/drizzle — the bundler will find it in node_modules
|
|
269
|
-
// and bundle it into .agentuity/app.js (NOT kept external).
|
|
270
|
-
const resolved = import.meta.resolveSync('@agentuity/drizzle', args.importer);
|
|
271
|
-
logger.debug('DB rewrite: redirected drizzle-orm/bun-sql → @agentuity/drizzle');
|
|
272
|
-
return { path: resolved };
|
|
273
|
-
});
|
|
274
|
-
build.onLoad({
|
|
275
|
-
filter: /\.[cm]?[jt]sx?$/,
|
|
276
|
-
namespace: 'file',
|
|
277
|
-
}, async (args) => {
|
|
278
|
-
// Skip node_modules and the rewrite-target packages themselves.
|
|
279
|
-
// The symlink check is needed because symlinked packages (e.g. via
|
|
280
|
-
// workspace links) resolve to paths outside node_modules/ (like
|
|
281
|
-
// ../../sdk/packages/postgres/dist/) and would otherwise be rewritten,
|
|
282
|
-
// creating circular imports (postgres importing from itself).
|
|
283
|
-
if (args.path.includes('/node_modules/') ||
|
|
284
|
-
isAgentuityPostgres(args.path) ||
|
|
285
|
-
isAgentuityDrizzle(args.path)) {
|
|
286
|
-
return;
|
|
287
|
-
}
|
|
288
|
-
const contents = await Bun.file(args.path).text();
|
|
289
|
-
let updated = contents;
|
|
290
|
-
let didRewrite = false;
|
|
291
|
-
const bunResult = rewriteBunImports(updated);
|
|
292
|
-
if (bunResult.changed) {
|
|
293
|
-
logger.debug('DB rewrite: redirected bun → @agentuity/postgres');
|
|
294
|
-
updated = bunResult.contents;
|
|
295
|
-
didRewrite = true;
|
|
296
|
-
}
|
|
297
|
-
const pgResult = rewritePgImports(updated);
|
|
298
|
-
if (pgResult.changed) {
|
|
299
|
-
logger.debug('DB rewrite: redirected pg → @agentuity/postgres');
|
|
300
|
-
updated = pgResult.contents;
|
|
301
|
-
didRewrite = true;
|
|
302
|
-
}
|
|
303
|
-
if (!didRewrite) {
|
|
304
|
-
return;
|
|
305
|
-
}
|
|
306
|
-
return {
|
|
307
|
-
contents: updated,
|
|
308
|
-
loader: getLoaderForPath(args.path),
|
|
309
|
-
};
|
|
310
|
-
});
|
|
311
|
-
},
|
|
312
|
-
};
|
|
313
|
-
const buildConfig = {
|
|
314
|
-
entrypoints: [entryPath],
|
|
315
|
-
outdir: outDir, // Output to .agentuity/ directly (not .agentuity/server/)
|
|
316
|
-
target: 'bun',
|
|
317
|
-
format: 'esm',
|
|
318
|
-
splitting: false, // Disable splitting - causes issues with externalized CommonJS packages
|
|
319
|
-
minify: !dev,
|
|
320
|
-
sourcemap: (dev ? 'inline' : 'external'),
|
|
321
|
-
external,
|
|
322
|
-
// CRITICAL: Disable environment variable inlining for server builds
|
|
323
|
-
// Server code must read process.env at RUNTIME, not have values baked in at build time
|
|
324
|
-
// Without this, NODE_ENV and other env vars get inlined as string literals
|
|
325
|
-
env: 'disable',
|
|
326
|
-
define: userDefine, // Include custom define values from agentuity.config.ts
|
|
327
|
-
plugins: dbRewriteEnabled ? [patchPlugin, dbRewritePlugin] : [patchPlugin],
|
|
328
|
-
naming: {
|
|
329
|
-
entry: 'app.js', // Output as app.js (not app.generated.js)
|
|
330
|
-
},
|
|
331
|
-
};
|
|
332
|
-
logger.debug(`Bun.build config: ${JSON.stringify({ ...buildConfig, external: `[${external.length} packages]` }, null, 2)}`);
|
|
333
|
-
// WORKAROUND: Temporarily delete NODE_ENV to prevent Bun.build from inlining it
|
|
334
|
-
// See: https://github.com/oven-sh/bun/issues/20183
|
|
335
|
-
// Even with env: 'disable', Bun.build still inlines NODE_ENV at build time
|
|
336
|
-
const originalNodeEnv = process.env.NODE_ENV;
|
|
337
|
-
delete process.env.NODE_ENV;
|
|
338
|
-
// Verify entry point exists before building
|
|
339
|
-
if (!(await Bun.file(entryPath).exists())) {
|
|
340
|
-
throw new Error(`Entry point not found: ${entryPath}`);
|
|
341
|
-
}
|
|
342
|
-
logger.debug(`Entry point verified: ${entryPath}`);
|
|
343
|
-
let result;
|
|
344
|
-
try {
|
|
345
|
-
result = await Bun.build(buildConfig);
|
|
346
|
-
}
|
|
347
|
-
catch (error) {
|
|
348
|
-
// Restore NODE_ENV after build attempt
|
|
349
|
-
if (originalNodeEnv !== undefined) {
|
|
350
|
-
process.env.NODE_ENV = originalNodeEnv;
|
|
351
|
-
}
|
|
352
|
-
// Handle AggregateError with build/resolve messages
|
|
353
|
-
if (error instanceof AggregateError && error.errors) {
|
|
354
|
-
const formattedErrors = error.errors
|
|
355
|
-
.map((err) => {
|
|
356
|
-
// Try to use formatBuildLog if it looks like a BuildMessage/ResolveMessage
|
|
357
|
-
if (err && typeof err === 'object' && 'name' in err) {
|
|
358
|
-
const formatted = formatBuildLog(err);
|
|
359
|
-
if (formatted)
|
|
360
|
-
return formatted;
|
|
361
|
-
}
|
|
362
|
-
// Fallback for other error types
|
|
363
|
-
const parts = [err.message || err.text || 'Unknown error'];
|
|
364
|
-
if (err.position) {
|
|
365
|
-
parts.push(` at ${err.position.file}:${err.position.line}:${err.position.column}`);
|
|
366
|
-
}
|
|
367
|
-
return parts.join('\n');
|
|
368
|
-
})
|
|
369
|
-
.filter(Boolean)
|
|
370
|
-
.join('\n');
|
|
371
|
-
throw new Error(formattedErrors || 'Build failed');
|
|
372
|
-
}
|
|
373
|
-
throw error;
|
|
374
|
-
}
|
|
375
|
-
// Restore NODE_ENV after successful build
|
|
376
|
-
if (originalNodeEnv !== undefined) {
|
|
377
|
-
process.env.NODE_ENV = originalNodeEnv;
|
|
378
|
-
}
|
|
379
|
-
if (!result.success) {
|
|
380
|
-
const errorMessages = result.logs
|
|
381
|
-
.map((log) => formatBuildLog(log))
|
|
382
|
-
.filter(Boolean)
|
|
383
|
-
.join('\n');
|
|
384
|
-
throw new Error(errorMessages || 'Build failed with no error messages');
|
|
385
|
-
}
|
|
386
|
-
logger.debug(`Server build complete: ${result.outputs.length} files`);
|
|
387
|
-
}
|
|
388
|
-
//# sourceMappingURL=server-bundler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"server-bundler.js","sourceRoot":"","sources":["../../../../src/cmd/build/vite/server-bundler.ts"],"names":[],"mappings":"AAAA;;;GAGG;;;;;;;;;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAGjD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,GAAkC;IAChE,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,iDAAiD;IACjD,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACnC,MAAM,UAAU,GAAG,GAAqB,CAAC;QACzC,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,sBAAsB,UAAU,CAAC,SAAS,GAAG,CAAC,CAAC;YAC1D,kEAAkE;YAClE,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC;YAClE,IAAI,QAAQ,EAAE,CAAC;gBACd,KAAK,CAAC,IAAI,CAAC,oBAAoB,QAAQ,EAAE,CAAC,CAAC;YAC5C,CAAC;QACF,CAAC;aAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;IACF,CAAC;SAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QACxB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,2FAA2F;IAC3F,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC;AAQD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,OAA4B;IAC1E,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEzC,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IAEhE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAE3C,MAAM,CAAC,KAAK,CAAC,2BAA2B,SAAS,aAAa,MAAM,EAAE,CAAC,CAAC;IAExE,0EAA0E;IAC1E,sEAAsE;IACtE,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAE7E,2EAA2E;IAC3E,wFAAwF;IACxF,4GAA4G;IAC5G,oFAAoF;IACpF,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IAE5E,yEAAyE;IACzE,MAAM,eAAe,GAAa,EAAE,CAAC;IACrC,IAAI,UAAU,GAA2B,EAAE,CAAC;IAC5C,IAAI,gBAAgB,GAAG,IAAI,CAAC;IAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACxD,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,MAAM,MAAM,kCAAC,UAAU,EAAC,CAAC;YACxC,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;YAElC,wDAAwD;YACxD,IAAI,UAAU,EAAE,KAAK,EAAE,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7E,eAAe,CAAC,IAAI,CACnB,GAAG,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAC1E,CAAC;YACH,CAAC;YAED,4BAA4B;YAC5B,IAAI,UAAU,EAAE,MAAM,IAAI,OAAO,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBACjE,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;gBAC/B,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,MAAM,CAAC,KAAK,CACX,uEAAuE,EACvE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAC9B,CAAC;gBACH,CAAC;YACF,CAAC;YAED,2CAA2C;YAC3C,IAAI,UAAU,EAAE,KAAK,EAAE,SAAS,KAAK,KAAK,EAAE,CAAC;gBAC5C,gBAAgB,GAAG,KAAK,CAAC;gBACzB,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAC9D,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,MAAM,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;QAC1E,CAAC;IACF,CAAC;IAED,mEAAmE;IACnE,MAAM,eAAe,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,eAAe,CAAC,CAAC;IAElE,uEAAuE;IACvE,MAAM,mBAAmB,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,kBAAkB,EAAE,GAAG,eAAe,CAAC,CAAC;IAC7F,IAAI,QAAQ,GAAG,mBAAmB,CAAC;IAEnC,4FAA4F;IAC5F,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,MAAM,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QAErF,iFAAiF;QACjF,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE,CAAC;YACvC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5B,8DAA8D;gBAC9D,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBACpC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;qBACnC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;qBAC5B,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;gBACrB,IAAI,WAAW,EAAE,CAAC;oBACjB,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;oBACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;wBAC7B,MAAM,OAAO,GAAG,GAAG,MAAM,IAAI,KAAK,EAAE,CAAC;wBACrC,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,IAAI,CACnC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC,CACtD,CAAC,MAAM,EAAE,CAAC;wBACX,IAAI,aAAa,EAAE,CAAC;4BACnB,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAChC,CAAC;oBACF,CAAC;gBACF,CAAC;YACF,CAAC;iBAAM,CAAC;gBACP,qBAAqB;gBACrB,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,IAAI,CACnC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC,CACtD,CAAC,MAAM,EAAE,CAAC;gBACX,IAAI,aAAa,EAAE,CAAC;oBACnB,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC;YACF,CAAC;QACF,CAAC;QAED,2DAA2D;QAC3D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAEnD,MAAM,GAAG,CAAC,KAAK,CACd,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,EAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CACjF,CAAC;YAEF,MAAM,CAAC,KAAK,CACX,4BAA4B,EAC5B,gBAAgB,CAAC,MAAM,EACvB,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC3B,CAAC;YAEF,qEAAqE;YACrE,8EAA8E;YAC9E,+EAA+E;YAC/E,MAAM,oBAAoB,GAAa,EAAE,CAAC;YAC1C,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACpC,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;gBACvE,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1C,IAAI,CAAC;wBACJ,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;wBACnD,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;4BAClC,kEAAkE;4BAClE,0EAA0E;4BAC1E,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,CAAC;gCAChE,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oCAC9D,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gCACnC,CAAC;4BACF,CAAC;wBACF,CAAC;oBACF,CAAC;oBAAC,MAAM,CAAC;wBACR,sBAAsB;oBACvB,CAAC;gBACF,CAAC;YACF,CAAC;YAED,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACrC,MAAM,CAAC,KAAK,CACX,8CAA8C,EAC9C,oBAAoB,CAAC,MAAM,EAC3B,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/B,CAAC;YACH,CAAC;YAED,6EAA6E;YAC7E,qEAAqE;YACrE,MAAM,oBAAoB,GAAG,CAAC,GAAG,gBAAgB,EAAE,GAAG,oBAAoB,CAAC,CAAC;YAC5E,MAAM,CAAC,KAAK,CAAC,0CAA0C,EAAE,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAE1F,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CACrB;gBACC,KAAK;gBACL,SAAS;gBACT,WAAW;gBACX,kBAAkB;gBAClB,YAAY;gBACZ,WAAW;gBACX,SAAS;gBACT,GAAG,oBAAoB;aACvB,EACD;gBACC,GAAG,EAAE,MAAM;gBACX,MAAM,EAAE,MAAM;gBACd,MAAM,EAAE,MAAM;aACd,CACD,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC;YAEnC,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACpB,MAAM,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtD,MAAM,IAAI,KAAK,CACd,sDAAsD,QAAQ,OAAO,MAAM,EAAE,CAC7E,CAAC;YACH,CAAC;YAED,8EAA8E;YAC9E,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;YACpD,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC;iBACrD,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;iBAC5B,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YACrB,IAAI,oBAAoB,EAAE,CAAC;gBAC1B,MAAM,YAAY,GAAa,EAAE,CAAC;gBAElC,0CAA0C;gBAC1C,MAAM,OAAO,GAAG,KAAK,EAAE,GAAW,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE;oBAClD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC5D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;wBAC7B,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;4BACzB,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;4BAEhE,gDAAgD;4BAChD,MAAM,aAAa,GAAG,MAAM,GAAG,CAAC,IAAI,CACnC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CACrC,CAAC,MAAM,EAAE,CAAC;4BACX,IAAI,aAAa,EAAE,CAAC;gCACnB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;4BAC5B,CAAC;4BAED,8CAA8C;4BAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gCAChC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;4BAClD,CAAC;wBACF,CAAC;oBACF,CAAC;gBACF,CAAC,CAAC;gBAEF,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;gBAC9B,MAAM,CAAC,KAAK,CACX,0DAA0D,EAC1D,YAAY,CAAC,MAAM,CACnB,CAAC;gBAEF,yEAAyE;gBACzE,QAAQ,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,kBAAkB,CAAC,CAAC;YACrD,CAAC;QACF,CAAC;IACF,CAAC;SAAM,CAAC;QACP,iDAAiD;QACjD,QAAQ,GAAG,mBAAmB,CAAC;IAChC,CAAC;IAED,sBAAsB;IACtB,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;IAClD,MAAM,CAAC,KAAK,CAAC,sBAAsB,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE/E,yDAAyD;IACzD,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,MAAM,CAAC,KAAK,CAAC,UAAU,OAAO,CAAC,IAAI,8BAA8B,CAAC,CAAC;IAEnE,MAAM,WAAW,GAAc;QAC9B,IAAI,EAAE,iBAAiB;QACvB,KAAK,CAAC,KAAK;YACV,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;gBACjC,KAAK,CAAC,MAAM,CACX;oBACC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC;oBACtD,SAAS,EAAE,MAAM;iBACjB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;oBACd,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;wBACnC,OAAO;oBACR,CAAC;oBACD,MAAM,CAAC,KAAK,CAAC,sBAAsB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;oBAChD,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;oBAC9D,OAAO;wBACN,QAAQ;wBACR,MAAM;qBACN,CAAC;gBACH,CAAC,CACD,CAAC;YACH,CAAC;QACF,CAAC;KACD,CAAC;IAEF,uEAAuE;IACvE,uEAAuE;IACvE,8EAA8E;IAC9E,MAAM,mBAAmB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAChD,QAAQ,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QAC1C,QAAQ,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAC7C,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;IAE1C,MAAM,kBAAkB,GAAG,CAAC,QAAgB,EAAE,EAAE,CAC/C,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC;QACzC,QAAQ,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QAC5C,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAEzC,MAAM,eAAe,GAAc;QAClC,IAAI,EAAE,sBAAsB;QAC5B,KAAK,CAAC,KAAK;YACV,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC9D,2FAA2F;gBAC3F,gFAAgF;gBAChF,IAAI,IAAI,CAAC,QAAQ,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACxD,OAAO,CAAC,mCAAmC;gBAC5C,CAAC;gBACD,2EAA2E;gBAC3E,4DAA4D;gBAC5D,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,oBAAoB,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAC9E,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;gBAChF,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CACX;gBACC,MAAM,EAAE,iBAAiB;gBACzB,SAAS,EAAE,MAAM;aACjB,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;gBACd,gEAAgE;gBAChE,mEAAmE;gBACnE,gEAAgE;gBAChE,uEAAuE;gBACvE,8DAA8D;gBAC9D,IACC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC;oBACpC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;oBAC9B,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,CAAC;oBACF,OAAO;gBACR,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAClD,IAAI,OAAO,GAAG,QAAQ,CAAC;gBACvB,IAAI,UAAU,GAAG,KAAK,CAAC;gBAEvB,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBAC7C,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;oBACvB,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;oBACjE,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC;oBAC7B,UAAU,GAAG,IAAI,CAAC;gBACnB,CAAC;gBAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;gBAC3C,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACtB,MAAM,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;oBAChE,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC;oBAC5B,UAAU,GAAG,IAAI,CAAC;gBACnB,CAAC;gBAED,IAAI,CAAC,UAAU,EAAE,CAAC;oBACjB,OAAO;gBACR,CAAC;gBAED,OAAO;oBACN,QAAQ,EAAE,OAAO;oBACjB,MAAM,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAe;iBACjD,CAAC;YACH,CAAC,CACD,CAAC;QACH,CAAC;KACD,CAAC;IAEF,MAAM,WAAW,GAAG;QACnB,WAAW,EAAE,CAAC,SAAS,CAAC;QACxB,MAAM,EAAE,MAAM,EAAE,0DAA0D;QAC1E,MAAM,EAAE,KAAc;QACtB,MAAM,EAAE,KAAc;QACtB,SAAS,EAAE,KAAK,EAAE,wEAAwE;QAC1F,MAAM,EAAE,CAAC,GAAG;QACZ,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAA0B;QACjE,QAAQ;QACR,oEAAoE;QACpE,uFAAuF;QACvF,2EAA2E;QAC3E,GAAG,EAAE,SAAkB;QACvB,MAAM,EAAE,UAAU,EAAE,wDAAwD;QAC5E,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QAC1E,MAAM,EAAE;YACP,KAAK,EAAE,QAAQ,EAAE,0CAA0C;SAC3D;KACD,CAAC;IAEF,MAAM,CAAC,KAAK,CACX,qBAAqB,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,WAAW,EAAE,QAAQ,EAAE,IAAI,QAAQ,CAAC,MAAM,YAAY,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAC7G,CAAC;IAEF,gFAAgF;IAChF,mDAAmD;IACnD,2EAA2E;IAC3E,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IAE5B,4CAA4C;IAC5C,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;IAEnD,IAAI,MAAmB,CAAC;IACxB,IAAI,CAAC;QACJ,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACzB,uCAAuC;QACvC,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,eAAe,CAAC;QACxC,CAAC;QAED,oDAAoD;QACpD,IAAI,KAAK,YAAY,cAAc,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACrD,MAAM,eAAe,GAAG,KAAK,CAAC,MAAM;iBAClC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACZ,2EAA2E;gBAC3E,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;oBACrD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAoC,CAAC,CAAC;oBACvE,IAAI,SAAS;wBAAE,OAAO,SAAS,CAAC;gBACjC,CAAC;gBACD,iCAAiC;gBACjC,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,IAAI,IAAI,eAAe,CAAC,CAAC;gBAC3D,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBAClB,KAAK,CAAC,IAAI,CACT,QAAQ,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,CACvE,CAAC;gBACH,CAAC;gBACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC,CAAC;iBACD,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,CAAC;YAEb,MAAM,IAAI,KAAK,CAAC,eAAe,IAAI,cAAc,CAAC,CAAC;QACpD,CAAC;QAED,MAAM,KAAK,CAAC;IACb,CAAC;IAED,0CAA0C;IAC1C,IAAI,eAAe,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,eAAe,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI;aAC/B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;aACjC,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,qCAAqC,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Static Renderer
|
|
3
|
-
*
|
|
4
|
-
* When `src/web/entry-server.tsx` exists, this module:
|
|
5
|
-
* 1. Runs a Vite SSR build (as a subprocess to avoid in-process Bun/Vite issues)
|
|
6
|
-
* 2. Imports the built entry-server.js
|
|
7
|
-
* 3. Discovers routes to pre-render:
|
|
8
|
-
* - If `routeTree` is exported: auto-discovers all non-parameterized routes
|
|
9
|
-
* - If `getStaticPaths()` is exported: merges those paths in (for parameterized routes)
|
|
10
|
-
* - If neither: throws an error
|
|
11
|
-
* 4. Calls render(url) for each route
|
|
12
|
-
* 5. Replaces <!--app-html--> in the client template with rendered HTML
|
|
13
|
-
* 6. Writes pre-rendered HTML files to .agentuity/client/
|
|
14
|
-
*/
|
|
15
|
-
import type { Logger } from '../../../types';
|
|
16
|
-
export interface StaticRenderOptions {
|
|
17
|
-
rootDir: string;
|
|
18
|
-
logger: Logger;
|
|
19
|
-
dev?: boolean;
|
|
20
|
-
}
|
|
21
|
-
export interface StaticRenderResult {
|
|
22
|
-
routes: number;
|
|
23
|
-
duration: number;
|
|
24
|
-
}
|
|
25
|
-
export declare function runStaticRender(options: StaticRenderOptions): Promise<StaticRenderResult>;
|
|
26
|
-
//# sourceMappingURL=static-renderer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static-renderer.d.ts","sourceRoot":"","sources":["../../../../src/cmd/build/vite/static-renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAuD7C,MAAM,WAAW,mBAAmB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA2J/F"}
|
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Static Renderer
|
|
3
|
-
*
|
|
4
|
-
* When `src/web/entry-server.tsx` exists, this module:
|
|
5
|
-
* 1. Runs a Vite SSR build (as a subprocess to avoid in-process Bun/Vite issues)
|
|
6
|
-
* 2. Imports the built entry-server.js
|
|
7
|
-
* 3. Discovers routes to pre-render:
|
|
8
|
-
* - If `routeTree` is exported: auto-discovers all non-parameterized routes
|
|
9
|
-
* - If `getStaticPaths()` is exported: merges those paths in (for parameterized routes)
|
|
10
|
-
* - If neither: throws an error
|
|
11
|
-
* 4. Calls render(url) for each route
|
|
12
|
-
* 5. Replaces <!--app-html--> in the client template with rendered HTML
|
|
13
|
-
* 6. Writes pre-rendered HTML files to .agentuity/client/
|
|
14
|
-
*/
|
|
15
|
-
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
16
|
-
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
17
|
-
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
18
|
-
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
return path;
|
|
22
|
-
};
|
|
23
|
-
import { join } from 'node:path';
|
|
24
|
-
import { mkdirSync, writeFileSync, readFileSync, existsSync, rmSync } from 'node:fs';
|
|
25
|
-
/**
|
|
26
|
-
* Walks a TanStack Router route tree and extracts all non-parameterized paths.
|
|
27
|
-
* Skips layout routes (no path) and parameterized routes (containing $).
|
|
28
|
-
*
|
|
29
|
-
* Accumulates the full URL path through the parent chain, since child routes
|
|
30
|
-
* under layout routes have relative paths (e.g., '/key-value' under a
|
|
31
|
-
* '/reference/api' layout should resolve to '/reference/api/key-value').
|
|
32
|
-
*/
|
|
33
|
-
function extractRoutePaths(node) {
|
|
34
|
-
const paths = new Set();
|
|
35
|
-
function walk(route, parentPath) {
|
|
36
|
-
const segment = route.path ?? route.options?.path;
|
|
37
|
-
// Build the full path by accumulating segments from parent routes.
|
|
38
|
-
// - Layout routes have no path (undefined) and don't contribute to the URL.
|
|
39
|
-
// - Index routes have path '/' and resolve to the parent path itself.
|
|
40
|
-
// - Leaf/layout routes have paths like '/reference/api' or '/key-value'.
|
|
41
|
-
let currentPath = parentPath;
|
|
42
|
-
if (segment && segment !== '/') {
|
|
43
|
-
// Non-root segment: append to parent path.
|
|
44
|
-
// Segments always start with '/' (TanStack Router convention).
|
|
45
|
-
currentPath = parentPath === '/' ? segment : parentPath + segment;
|
|
46
|
-
}
|
|
47
|
-
// Add non-parameterized, non-empty paths
|
|
48
|
-
if (currentPath && !currentPath.includes('$')) {
|
|
49
|
-
const normalized = currentPath === '/' ? '/' : currentPath.replace(/\/+$/, '');
|
|
50
|
-
if (normalized) {
|
|
51
|
-
paths.add(normalized);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
// Recurse into children, passing the accumulated path
|
|
55
|
-
const children = route.children;
|
|
56
|
-
if (children && typeof children === 'object') {
|
|
57
|
-
for (const child of Object.values(children)) {
|
|
58
|
-
if (child)
|
|
59
|
-
walk(child, currentPath);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
walk(node, '');
|
|
64
|
-
return [...paths].sort();
|
|
65
|
-
}
|
|
66
|
-
export async function runStaticRender(options) {
|
|
67
|
-
const { rootDir, logger, dev = false } = options;
|
|
68
|
-
const started = Date.now();
|
|
69
|
-
const clientDir = join(rootDir, '.agentuity/client');
|
|
70
|
-
const ssrOutDir = join(rootDir, '.agentuity/ssr');
|
|
71
|
-
const entryServerPath = join(rootDir, 'src/web/entry-server.tsx');
|
|
72
|
-
const templatePath = join(clientDir, 'index.html');
|
|
73
|
-
// Verify prerequisites
|
|
74
|
-
if (!existsSync(entryServerPath)) {
|
|
75
|
-
throw new Error('Static rendering requires src/web/entry-server.tsx. ' +
|
|
76
|
-
'This file must export a render(url: string) function and either ' +
|
|
77
|
-
'a routeTree for auto-discovery or getStaticPaths() for explicit paths.');
|
|
78
|
-
}
|
|
79
|
-
if (!existsSync(templatePath)) {
|
|
80
|
-
throw new Error('Client build must complete before static rendering. ' +
|
|
81
|
-
'No index.html found in .agentuity/client/');
|
|
82
|
-
}
|
|
83
|
-
// Step 1: Vite SSR build (subprocess)
|
|
84
|
-
// Run as a subprocess to avoid in-process Bun/Vite module resolution issues
|
|
85
|
-
// that cause @mdx-js/rollup and other plugins to fail during SSR builds.
|
|
86
|
-
// This matches the approach used for client builds in vite-builder.ts.
|
|
87
|
-
logger.debug('Running Vite SSR build for static rendering (subprocess)...');
|
|
88
|
-
const buildMode = dev ? 'development' : 'production';
|
|
89
|
-
const viteProcess = Bun.spawn([
|
|
90
|
-
'bun',
|
|
91
|
-
'x',
|
|
92
|
-
'vite',
|
|
93
|
-
'build',
|
|
94
|
-
'--ssr',
|
|
95
|
-
entryServerPath,
|
|
96
|
-
'--outDir',
|
|
97
|
-
ssrOutDir,
|
|
98
|
-
'--mode',
|
|
99
|
-
buildMode,
|
|
100
|
-
], {
|
|
101
|
-
cwd: rootDir,
|
|
102
|
-
stdout: 'inherit',
|
|
103
|
-
stderr: 'inherit',
|
|
104
|
-
});
|
|
105
|
-
const exitCode = await viteProcess.exited;
|
|
106
|
-
if (exitCode !== 0) {
|
|
107
|
-
throw new Error(`Vite SSR build exited with code ${exitCode}`);
|
|
108
|
-
}
|
|
109
|
-
// Steps 2–4: wrapped in try-finally so SSR artifacts are always cleaned up,
|
|
110
|
-
// even if an exception is thrown during module import, validation, or rendering.
|
|
111
|
-
let routeCount = 0;
|
|
112
|
-
try {
|
|
113
|
-
// Step 2: Import the built SSR entry
|
|
114
|
-
const ssrEntryPath = join(ssrOutDir, 'entry-server.js');
|
|
115
|
-
if (!existsSync(ssrEntryPath)) {
|
|
116
|
-
throw new Error(`SSR build did not produce entry-server.js at ${ssrEntryPath}`);
|
|
117
|
-
}
|
|
118
|
-
const ssrModule = await import(__rewriteRelativeImportExtension(ssrEntryPath));
|
|
119
|
-
if (typeof ssrModule.render !== 'function') {
|
|
120
|
-
throw new Error('entry-server.tsx must export a render(url: string) function that returns HTML string');
|
|
121
|
-
}
|
|
122
|
-
// Step 3: Discover routes
|
|
123
|
-
// Priority: auto-discover from routeTree + merge getStaticPaths() if present
|
|
124
|
-
const discovered = new Set();
|
|
125
|
-
// 3a. Auto-discover from exported routeTree (skips parameterized routes)
|
|
126
|
-
if (ssrModule.routeTree) {
|
|
127
|
-
const autoRoutes = extractRoutePaths(ssrModule.routeTree);
|
|
128
|
-
for (const r of autoRoutes) {
|
|
129
|
-
discovered.add(r);
|
|
130
|
-
}
|
|
131
|
-
logger.debug(`Auto-discovered ${autoRoutes.length} routes from route tree`);
|
|
132
|
-
}
|
|
133
|
-
// 3b. Merge paths from getStaticPaths() if exported (for parameterized routes, etc.)
|
|
134
|
-
if (typeof ssrModule.getStaticPaths === 'function') {
|
|
135
|
-
const extraRoutes = await ssrModule.getStaticPaths();
|
|
136
|
-
if (!Array.isArray(extraRoutes)) {
|
|
137
|
-
throw new Error('getStaticPaths() must return an array of URL paths (e.g., ["/", "/about"])');
|
|
138
|
-
}
|
|
139
|
-
for (const r of extraRoutes) {
|
|
140
|
-
discovered.add(r);
|
|
141
|
-
}
|
|
142
|
-
logger.debug(`getStaticPaths() added ${extraRoutes.length} paths`);
|
|
143
|
-
}
|
|
144
|
-
// Must have at least one source of routes
|
|
145
|
-
if (discovered.size === 0) {
|
|
146
|
-
throw new Error('No routes to pre-render. Export routeTree from entry-server.tsx for auto-discovery, ' +
|
|
147
|
-
'or export getStaticPaths() returning an array of URL paths.');
|
|
148
|
-
}
|
|
149
|
-
const routes = [...discovered].sort();
|
|
150
|
-
routeCount = routes.length;
|
|
151
|
-
logger.debug(`Total: ${routes.length} routes for pre-rendering`);
|
|
152
|
-
// Step 4: Read template and pre-render each route
|
|
153
|
-
const template = readFileSync(templatePath, 'utf-8');
|
|
154
|
-
if (!template.includes('<!--app-html-->')) {
|
|
155
|
-
logger.warn('index.html is missing the <!--app-html--> placeholder; ' +
|
|
156
|
-
'pre-rendered content will not be injected into the page.');
|
|
157
|
-
}
|
|
158
|
-
for (const route of routes) {
|
|
159
|
-
try {
|
|
160
|
-
const html = await ssrModule.render(route);
|
|
161
|
-
const page = template.replace('<!--app-html-->', html);
|
|
162
|
-
let outPath;
|
|
163
|
-
if (route === '/') {
|
|
164
|
-
outPath = join(clientDir, 'index.html');
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
const dir = join(clientDir, route.slice(1));
|
|
168
|
-
mkdirSync(dir, { recursive: true });
|
|
169
|
-
outPath = join(dir, 'index.html');
|
|
170
|
-
}
|
|
171
|
-
writeFileSync(outPath, page, 'utf-8');
|
|
172
|
-
}
|
|
173
|
-
catch (err) {
|
|
174
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
175
|
-
logger.warn(`Failed to render route ${route}: ${message}`);
|
|
176
|
-
// Continue rendering other routes
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
finally {
|
|
181
|
-
// Step 5: Clean up SSR build artifacts (always runs, even on error)
|
|
182
|
-
rmSync(ssrOutDir, { recursive: true, force: true });
|
|
183
|
-
}
|
|
184
|
-
const duration = Date.now() - started;
|
|
185
|
-
logger.debug(`Static rendering complete: ${routeCount} routes in ${duration}ms`);
|
|
186
|
-
return { routes: routeCount, duration };
|
|
187
|
-
}
|
|
188
|
-
//# sourceMappingURL=static-renderer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"static-renderer.js","sourceRoot":"","sources":["../../../../src/cmd/build/vite/static-renderer.ts"],"names":[],"mappings":"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"}
|