@agentuity/cli 2.0.11 → 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.js +7 -7
- package/dist/cmd/coder/create.js.map +1 -1
- package/dist/cmd/coder/update.js +8 -8
- package/dist/cmd/coder/update.js.map +1 -1
- package/dist/cmd/coder/workspace/create.js +9 -9
- package/dist/cmd/coder/workspace/create.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 +24 -30
- 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 +8 -8
- package/src/cmd/coder/update.ts +7 -7
- package/src/cmd/coder/workspace/create.ts +10 -10
- 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,481 +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
|
-
|
|
6
|
-
import { join } from 'node:path';
|
|
7
|
-
import { readdir, stat } from 'node:fs/promises';
|
|
8
|
-
import type { Logger } from '../../../types';
|
|
9
|
-
import type { BunPlugin, BuildOutput } from 'bun';
|
|
10
|
-
import { generatePatches, applyPatch, buildPatchFilter } from '../patch';
|
|
11
|
-
import { getLoaderForPath, rewriteBunImports, rewritePgImports } from './db-rewrite';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Format a Bun build log (BuildMessage or ResolveMessage) into a readable string
|
|
15
|
-
*/
|
|
16
|
-
export function formatBuildLog(log: BuildMessage | ResolveMessage): string {
|
|
17
|
-
const parts: string[] = [];
|
|
18
|
-
|
|
19
|
-
// For ResolveMessage, format with specifier info
|
|
20
|
-
if (log.name === 'ResolveMessage') {
|
|
21
|
-
const resolveLog = log as ResolveMessage;
|
|
22
|
-
if (resolveLog.specifier) {
|
|
23
|
-
parts.push(`Could not resolve "${resolveLog.specifier}"`);
|
|
24
|
-
// Use referrer if available, otherwise fall back to position.file
|
|
25
|
-
const referrer = resolveLog.referrer || resolveLog.position?.file;
|
|
26
|
-
if (referrer) {
|
|
27
|
-
parts.push(` imported from: ${referrer}`);
|
|
28
|
-
}
|
|
29
|
-
} else if (resolveLog.message) {
|
|
30
|
-
parts.push(resolveLog.message);
|
|
31
|
-
}
|
|
32
|
-
} else if (log.message) {
|
|
33
|
-
parts.push(log.message);
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// Add position info if available (only if we haven't already shown referrer from position)
|
|
37
|
-
if (log.position && log.name !== 'ResolveMessage') {
|
|
38
|
-
parts.push(` at ${log.position.file}:${log.position.line}:${log.position.column}`);
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
return parts.join('\n');
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export interface ServerBundleOptions {
|
|
45
|
-
rootDir: string;
|
|
46
|
-
dev: boolean;
|
|
47
|
-
logger: Logger;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Install external dependencies and build server bundle
|
|
52
|
-
* For production: installs externals into .agentuity/node_modules BEFORE bundling
|
|
53
|
-
*/
|
|
54
|
-
export async function installExternalsAndBuild(options: ServerBundleOptions): Promise<void> {
|
|
55
|
-
const { rootDir, dev, logger } = options;
|
|
56
|
-
|
|
57
|
-
logger.debug('[server-bundler] Starting server bundle process');
|
|
58
|
-
|
|
59
|
-
const entryPath = join(rootDir, 'app.ts');
|
|
60
|
-
const outDir = join(rootDir, '.agentuity');
|
|
61
|
-
|
|
62
|
-
logger.debug(`[server-bundler] Entry: ${entryPath}, OutDir: ${outDir}`);
|
|
63
|
-
|
|
64
|
-
// Runtime externals: native modules and packages that need to be external
|
|
65
|
-
// These WILL be installed into .agentuity/node_modules for production
|
|
66
|
-
const runtimeExternals = ['bun', 'fsevents', 'chromium-bidi', 'sharp', 'ws'];
|
|
67
|
-
|
|
68
|
-
// Build tool externals: packages that should be external but NOT installed
|
|
69
|
-
// These are devDependencies that may exist in node_modules but aren't needed at runtime
|
|
70
|
-
// NOTE: @babel/* is NOT externalized because some runtime deps (e.g., puppeteer → cosmiconfig → parse-json)
|
|
71
|
-
// require @babel/code-frame at runtime. Babel packages are pure JS and bundle fine.
|
|
72
|
-
const buildToolExternals = ['lightningcss', '@vitejs/*', 'vite', 'esbuild'];
|
|
73
|
-
|
|
74
|
-
// Load custom externals and define from agentuity.config.ts if it exists
|
|
75
|
-
const customExternals: string[] = [];
|
|
76
|
-
let userDefine: Record<string, string> = {};
|
|
77
|
-
let dbRewriteEnabled = true;
|
|
78
|
-
const configPath = join(rootDir, 'agentuity.config.ts');
|
|
79
|
-
if (await Bun.file(configPath).exists()) {
|
|
80
|
-
try {
|
|
81
|
-
const config = await import(configPath);
|
|
82
|
-
const userConfig = config.default;
|
|
83
|
-
|
|
84
|
-
// Load custom externals (legacy build.external support)
|
|
85
|
-
if (userConfig?.build?.external && Array.isArray(userConfig.build.external)) {
|
|
86
|
-
customExternals.push(
|
|
87
|
-
...userConfig.build.external.filter((e: unknown) => typeof e === 'string')
|
|
88
|
-
);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// Load custom define values
|
|
92
|
-
if (userConfig?.define && typeof userConfig.define === 'object') {
|
|
93
|
-
userDefine = userConfig.define;
|
|
94
|
-
if (Object.keys(userDefine).length > 0) {
|
|
95
|
-
logger.debug(
|
|
96
|
-
'Loaded %d custom define(s) from agentuity.config.ts for server bundle',
|
|
97
|
-
Object.keys(userDefine).length
|
|
98
|
-
);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
// Allow users to disable db rewrite plugin
|
|
103
|
-
if (userConfig?.build?.dbRewrite === false) {
|
|
104
|
-
dbRewriteEnabled = false;
|
|
105
|
-
logger.debug('DB rewrite: disabled via agentuity.config.ts');
|
|
106
|
-
}
|
|
107
|
-
} catch (error) {
|
|
108
|
-
logger.debug('Failed to load agentuity.config.ts for externals:', error);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
// Combine runtime externals with custom externals for installation
|
|
113
|
-
const installPatterns = [...runtimeExternals, ...customExternals];
|
|
114
|
-
|
|
115
|
-
// All external patterns (runtime + build tools + custom) for Bun.build
|
|
116
|
-
const allExternalPatterns = [...runtimeExternals, ...buildToolExternals, ...customExternals];
|
|
117
|
-
let external = allExternalPatterns;
|
|
118
|
-
|
|
119
|
-
// For production builds: install ONLY runtime externals, then discover full dependency tree
|
|
120
|
-
if (!dev) {
|
|
121
|
-
logger.debug('Installing externalized packages to discover full dependency tree...');
|
|
122
|
-
|
|
123
|
-
// Step 1: Collect packages matching RUNTIME external patterns (skip build tools)
|
|
124
|
-
const externalInstalls: string[] = [];
|
|
125
|
-
for (const pattern of installPatterns) {
|
|
126
|
-
if (pattern.endsWith('/*')) {
|
|
127
|
-
// Pattern like @org/* - install all packages under that scope
|
|
128
|
-
const prefix = pattern.slice(0, -2);
|
|
129
|
-
const nmDir = join(rootDir, 'node_modules', prefix);
|
|
130
|
-
const nmDirExists = await stat(nmDir)
|
|
131
|
-
.then((s) => s.isDirectory())
|
|
132
|
-
.catch(() => false);
|
|
133
|
-
if (nmDirExists) {
|
|
134
|
-
const entries = await readdir(nmDir);
|
|
135
|
-
for (const entry of entries) {
|
|
136
|
-
const pkgName = `${prefix}/${entry}`;
|
|
137
|
-
const pkgJsonExists = await Bun.file(
|
|
138
|
-
join(rootDir, 'node_modules', pkgName, 'package.json')
|
|
139
|
-
).exists();
|
|
140
|
-
if (pkgJsonExists) {
|
|
141
|
-
externalInstalls.push(pkgName);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
} else {
|
|
146
|
-
// Exact package name
|
|
147
|
-
const pkgJsonExists = await Bun.file(
|
|
148
|
-
join(rootDir, 'node_modules', pattern, 'package.json')
|
|
149
|
-
).exists();
|
|
150
|
-
if (pkgJsonExists) {
|
|
151
|
-
externalInstalls.push(pattern);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
// Step 2: Write minimal package.json and install externals
|
|
157
|
-
if (externalInstalls.length > 0) {
|
|
158
|
-
const pkgPath = join(rootDir, 'package.json');
|
|
159
|
-
const pkgContents = await Bun.file(pkgPath).json();
|
|
160
|
-
|
|
161
|
-
await Bun.write(
|
|
162
|
-
join(outDir, 'package.json'),
|
|
163
|
-
JSON.stringify({ name: pkgContents.name, version: pkgContents.version }, null, 2)
|
|
164
|
-
);
|
|
165
|
-
|
|
166
|
-
logger.debug(
|
|
167
|
-
'Installing %d packages: %s',
|
|
168
|
-
externalInstalls.length,
|
|
169
|
-
externalInstalls.join(', ')
|
|
170
|
-
);
|
|
171
|
-
|
|
172
|
-
// Collect platform-specific optional dependencies for native modules
|
|
173
|
-
// Bun's --target flag doesn't correctly install cross-platform optional deps,
|
|
174
|
-
// so we need to explicitly install them (e.g., @img/sharp-linux-x64 for sharp)
|
|
175
|
-
const platformOptionalDeps: string[] = [];
|
|
176
|
-
for (const pkg of externalInstalls) {
|
|
177
|
-
const pkgJsonPath = join(rootDir, 'node_modules', pkg, 'package.json');
|
|
178
|
-
if (await Bun.file(pkgJsonPath).exists()) {
|
|
179
|
-
try {
|
|
180
|
-
const pkgJson = await Bun.file(pkgJsonPath).json();
|
|
181
|
-
if (pkgJson.optionalDependencies) {
|
|
182
|
-
// Find linux-x64 specific optional dependencies (glibc, not musl)
|
|
183
|
-
// Match patterns like: @img/sharp-linux-x64, @img/sharp-libvips-linux-x64
|
|
184
|
-
for (const optDep of Object.keys(pkgJson.optionalDependencies)) {
|
|
185
|
-
if (optDep.includes('linux-x64') && !optDep.includes('musl')) {
|
|
186
|
-
platformOptionalDeps.push(optDep);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
} catch {
|
|
191
|
-
// Ignore parse errors
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
if (platformOptionalDeps.length > 0) {
|
|
197
|
-
logger.debug(
|
|
198
|
-
'Found %d platform-specific optional deps: %s',
|
|
199
|
-
platformOptionalDeps.length,
|
|
200
|
-
platformOptionalDeps.join(', ')
|
|
201
|
-
);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
// Use npm with --force for cross-platform installs since Bun's --target flag
|
|
205
|
-
// doesn't correctly handle optional dependencies for other platforms
|
|
206
|
-
const allPackagesToInstall = [...externalInstalls, ...platformOptionalDeps];
|
|
207
|
-
logger.debug('Installing with npm (cross-platform): %s', allPackagesToInstall.join(', '));
|
|
208
|
-
|
|
209
|
-
const proc = Bun.spawn(
|
|
210
|
-
[
|
|
211
|
-
'npm',
|
|
212
|
-
'install',
|
|
213
|
-
'--no-save',
|
|
214
|
-
'--ignore-scripts',
|
|
215
|
-
'--os=linux',
|
|
216
|
-
'--cpu=x64',
|
|
217
|
-
'--force',
|
|
218
|
-
...allPackagesToInstall,
|
|
219
|
-
],
|
|
220
|
-
{
|
|
221
|
-
cwd: outDir,
|
|
222
|
-
stdout: 'pipe',
|
|
223
|
-
stderr: 'pipe',
|
|
224
|
-
}
|
|
225
|
-
);
|
|
226
|
-
|
|
227
|
-
const exitCode = await proc.exited;
|
|
228
|
-
|
|
229
|
-
if (exitCode !== 0) {
|
|
230
|
-
const stderr = await new Response(proc.stderr).text();
|
|
231
|
-
throw new Error(
|
|
232
|
-
`Failed to install external dependencies (exit code ${exitCode}):\n${stderr}`
|
|
233
|
-
);
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
// Step 3: Scan what actually got installed (includes transitive dependencies)
|
|
237
|
-
const installedNmDir = join(outDir, 'node_modules');
|
|
238
|
-
const installedNmDirExists = await stat(installedNmDir)
|
|
239
|
-
.then((s) => s.isDirectory())
|
|
240
|
-
.catch(() => false);
|
|
241
|
-
if (installedNmDirExists) {
|
|
242
|
-
const allInstalled: string[] = [];
|
|
243
|
-
|
|
244
|
-
// Recursively find all installed packages
|
|
245
|
-
const scanDir = async (dir: string, prefix = '') => {
|
|
246
|
-
const entries = await readdir(dir, { withFileTypes: true });
|
|
247
|
-
for (const entry of entries) {
|
|
248
|
-
if (entry.isDirectory()) {
|
|
249
|
-
const pkgName = prefix ? `${prefix}/${entry.name}` : entry.name;
|
|
250
|
-
|
|
251
|
-
// Check if this is a package (has package.json)
|
|
252
|
-
const pkgJsonExists = await Bun.file(
|
|
253
|
-
join(dir, entry.name, 'package.json')
|
|
254
|
-
).exists();
|
|
255
|
-
if (pkgJsonExists) {
|
|
256
|
-
allInstalled.push(pkgName);
|
|
257
|
-
}
|
|
258
|
-
|
|
259
|
-
// Recurse into scoped packages (@org/package)
|
|
260
|
-
if (entry.name.startsWith('@')) {
|
|
261
|
-
await scanDir(join(dir, entry.name), entry.name);
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
};
|
|
266
|
-
|
|
267
|
-
await scanDir(installedNmDir);
|
|
268
|
-
logger.debug(
|
|
269
|
-
'Discovered %d total packages (including transitive deps)',
|
|
270
|
-
allInstalled.length
|
|
271
|
-
);
|
|
272
|
-
|
|
273
|
-
// Step 4: Use ALL installed packages + build tool externals for bundling
|
|
274
|
-
external = [...allInstalled, ...buildToolExternals];
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
} else {
|
|
278
|
-
// Dev mode: just use all external patterns as-is
|
|
279
|
-
external = allExternalPatterns;
|
|
280
|
-
}
|
|
281
|
-
|
|
282
|
-
// Build server bundle
|
|
283
|
-
logger.debug('Building server with Bun.build...');
|
|
284
|
-
logger.debug(`External packages (${external.length}): ${external.join(', ')}`);
|
|
285
|
-
|
|
286
|
-
// Create Bun plugin to apply LLM patches during bundling
|
|
287
|
-
const patches = generatePatches();
|
|
288
|
-
logger.debug(`Loaded ${patches.size} patch(es) for LLM providers`);
|
|
289
|
-
|
|
290
|
-
const patchPlugin: BunPlugin = {
|
|
291
|
-
name: 'agentuity:patch',
|
|
292
|
-
setup(build) {
|
|
293
|
-
for (const [, patch] of patches) {
|
|
294
|
-
build.onLoad(
|
|
295
|
-
{
|
|
296
|
-
filter: buildPatchFilter(patch.module, patch.filename),
|
|
297
|
-
namespace: 'file',
|
|
298
|
-
},
|
|
299
|
-
async (args) => {
|
|
300
|
-
if (build.config.target !== 'bun') {
|
|
301
|
-
return;
|
|
302
|
-
}
|
|
303
|
-
logger.trace(`Applying patch to: ${args.path}`);
|
|
304
|
-
const [contents, loader] = await applyPatch(args.path, patch);
|
|
305
|
-
return {
|
|
306
|
-
contents,
|
|
307
|
-
loader,
|
|
308
|
-
};
|
|
309
|
-
}
|
|
310
|
-
);
|
|
311
|
-
}
|
|
312
|
-
},
|
|
313
|
-
};
|
|
314
|
-
|
|
315
|
-
// Detect files belonging to @agentuity/postgres or @agentuity/drizzle.
|
|
316
|
-
// Matches both published paths (node_modules/@agentuity/postgres/) and
|
|
317
|
-
// symlinked/monorepo paths (packages/postgres/dist/, packages/postgres/src/).
|
|
318
|
-
const isAgentuityPostgres = (filePath: string) =>
|
|
319
|
-
filePath.includes('/@agentuity/postgres/') ||
|
|
320
|
-
filePath.includes('\\@agentuity\\postgres\\') ||
|
|
321
|
-
filePath.includes('/packages/postgres/');
|
|
322
|
-
|
|
323
|
-
const isAgentuityDrizzle = (filePath: string) =>
|
|
324
|
-
filePath.includes('/@agentuity/drizzle/') ||
|
|
325
|
-
filePath.includes('\\@agentuity\\drizzle\\') ||
|
|
326
|
-
filePath.includes('/packages/drizzle/');
|
|
327
|
-
|
|
328
|
-
const dbRewritePlugin: BunPlugin = {
|
|
329
|
-
name: 'agentuity:db-rewrite',
|
|
330
|
-
setup(build) {
|
|
331
|
-
build.onResolve({ filter: /^drizzle-orm\/bun-sql$/ }, (args) => {
|
|
332
|
-
// Don't redirect if the importer is @agentuity/drizzle itself — that would create a cycle.
|
|
333
|
-
// Matches both published packages in node_modules and symlinked monorepo paths.
|
|
334
|
-
if (args.importer && isAgentuityDrizzle(args.importer)) {
|
|
335
|
-
return; // Let default resolution handle it
|
|
336
|
-
}
|
|
337
|
-
// Resolve to @agentuity/drizzle — the bundler will find it in node_modules
|
|
338
|
-
// and bundle it into .agentuity/app.js (NOT kept external).
|
|
339
|
-
const resolved = import.meta.resolveSync('@agentuity/drizzle', args.importer);
|
|
340
|
-
logger.debug('DB rewrite: redirected drizzle-orm/bun-sql → @agentuity/drizzle');
|
|
341
|
-
return { path: resolved };
|
|
342
|
-
});
|
|
343
|
-
|
|
344
|
-
build.onLoad(
|
|
345
|
-
{
|
|
346
|
-
filter: /\.[cm]?[jt]sx?$/,
|
|
347
|
-
namespace: 'file',
|
|
348
|
-
},
|
|
349
|
-
async (args) => {
|
|
350
|
-
// Skip node_modules and the rewrite-target packages themselves.
|
|
351
|
-
// The symlink check is needed because symlinked packages (e.g. via
|
|
352
|
-
// workspace links) resolve to paths outside node_modules/ (like
|
|
353
|
-
// ../../sdk/packages/postgres/dist/) and would otherwise be rewritten,
|
|
354
|
-
// creating circular imports (postgres importing from itself).
|
|
355
|
-
if (
|
|
356
|
-
args.path.includes('/node_modules/') ||
|
|
357
|
-
isAgentuityPostgres(args.path) ||
|
|
358
|
-
isAgentuityDrizzle(args.path)
|
|
359
|
-
) {
|
|
360
|
-
return;
|
|
361
|
-
}
|
|
362
|
-
const contents = await Bun.file(args.path).text();
|
|
363
|
-
let updated = contents;
|
|
364
|
-
let didRewrite = false;
|
|
365
|
-
|
|
366
|
-
const bunResult = rewriteBunImports(updated);
|
|
367
|
-
if (bunResult.changed) {
|
|
368
|
-
logger.debug('DB rewrite: redirected bun → @agentuity/postgres');
|
|
369
|
-
updated = bunResult.contents;
|
|
370
|
-
didRewrite = true;
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
const pgResult = rewritePgImports(updated);
|
|
374
|
-
if (pgResult.changed) {
|
|
375
|
-
logger.debug('DB rewrite: redirected pg → @agentuity/postgres');
|
|
376
|
-
updated = pgResult.contents;
|
|
377
|
-
didRewrite = true;
|
|
378
|
-
}
|
|
379
|
-
|
|
380
|
-
if (!didRewrite) {
|
|
381
|
-
return;
|
|
382
|
-
}
|
|
383
|
-
|
|
384
|
-
return {
|
|
385
|
-
contents: updated,
|
|
386
|
-
loader: getLoaderForPath(args.path) as Bun.Loader,
|
|
387
|
-
};
|
|
388
|
-
}
|
|
389
|
-
);
|
|
390
|
-
},
|
|
391
|
-
};
|
|
392
|
-
|
|
393
|
-
const buildConfig = {
|
|
394
|
-
entrypoints: [entryPath],
|
|
395
|
-
outdir: outDir, // Output to .agentuity/ directly (not .agentuity/server/)
|
|
396
|
-
target: 'bun' as const,
|
|
397
|
-
format: 'esm' as const,
|
|
398
|
-
splitting: false, // Disable splitting - causes issues with externalized CommonJS packages
|
|
399
|
-
minify: !dev,
|
|
400
|
-
sourcemap: (dev ? 'inline' : 'external') as 'inline' | 'external',
|
|
401
|
-
external,
|
|
402
|
-
// CRITICAL: Disable environment variable inlining for server builds
|
|
403
|
-
// Server code must read process.env at RUNTIME, not have values baked in at build time
|
|
404
|
-
// Without this, NODE_ENV and other env vars get inlined as string literals
|
|
405
|
-
env: 'disable' as const,
|
|
406
|
-
define: userDefine, // Include custom define values from agentuity.config.ts
|
|
407
|
-
plugins: dbRewriteEnabled ? [patchPlugin, dbRewritePlugin] : [patchPlugin],
|
|
408
|
-
naming: {
|
|
409
|
-
entry: 'app.js', // Output as app.js (not app.generated.js)
|
|
410
|
-
},
|
|
411
|
-
};
|
|
412
|
-
|
|
413
|
-
logger.debug(
|
|
414
|
-
`Bun.build config: ${JSON.stringify({ ...buildConfig, external: `[${external.length} packages]` }, null, 2)}`
|
|
415
|
-
);
|
|
416
|
-
|
|
417
|
-
// WORKAROUND: Temporarily delete NODE_ENV to prevent Bun.build from inlining it
|
|
418
|
-
// See: https://github.com/oven-sh/bun/issues/20183
|
|
419
|
-
// Even with env: 'disable', Bun.build still inlines NODE_ENV at build time
|
|
420
|
-
const originalNodeEnv = process.env.NODE_ENV;
|
|
421
|
-
delete process.env.NODE_ENV;
|
|
422
|
-
|
|
423
|
-
// Verify entry point exists before building
|
|
424
|
-
if (!(await Bun.file(entryPath).exists())) {
|
|
425
|
-
throw new Error(`Entry point not found: ${entryPath}`);
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
logger.debug(`Entry point verified: ${entryPath}`);
|
|
429
|
-
|
|
430
|
-
let result: BuildOutput;
|
|
431
|
-
try {
|
|
432
|
-
result = await Bun.build(buildConfig);
|
|
433
|
-
} catch (error: unknown) {
|
|
434
|
-
// Restore NODE_ENV after build attempt
|
|
435
|
-
if (originalNodeEnv !== undefined) {
|
|
436
|
-
process.env.NODE_ENV = originalNodeEnv;
|
|
437
|
-
}
|
|
438
|
-
|
|
439
|
-
// Handle AggregateError with build/resolve messages
|
|
440
|
-
if (error instanceof AggregateError && error.errors) {
|
|
441
|
-
const formattedErrors = error.errors
|
|
442
|
-
.map((err) => {
|
|
443
|
-
// Try to use formatBuildLog if it looks like a BuildMessage/ResolveMessage
|
|
444
|
-
if (err && typeof err === 'object' && 'name' in err) {
|
|
445
|
-
const formatted = formatBuildLog(err as BuildMessage | ResolveMessage);
|
|
446
|
-
if (formatted) return formatted;
|
|
447
|
-
}
|
|
448
|
-
// Fallback for other error types
|
|
449
|
-
const parts = [err.message || err.text || 'Unknown error'];
|
|
450
|
-
if (err.position) {
|
|
451
|
-
parts.push(
|
|
452
|
-
` at ${err.position.file}:${err.position.line}:${err.position.column}`
|
|
453
|
-
);
|
|
454
|
-
}
|
|
455
|
-
return parts.join('\n');
|
|
456
|
-
})
|
|
457
|
-
.filter(Boolean)
|
|
458
|
-
.join('\n');
|
|
459
|
-
|
|
460
|
-
throw new Error(formattedErrors || 'Build failed');
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
throw error;
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
// Restore NODE_ENV after successful build
|
|
467
|
-
if (originalNodeEnv !== undefined) {
|
|
468
|
-
process.env.NODE_ENV = originalNodeEnv;
|
|
469
|
-
}
|
|
470
|
-
|
|
471
|
-
if (!result.success) {
|
|
472
|
-
const errorMessages = result.logs
|
|
473
|
-
.map((log) => formatBuildLog(log))
|
|
474
|
-
.filter(Boolean)
|
|
475
|
-
.join('\n');
|
|
476
|
-
|
|
477
|
-
throw new Error(errorMessages || 'Build failed with no error messages');
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
logger.debug(`Server build complete: ${result.outputs.length} files`);
|
|
481
|
-
}
|