@agentuity/cli 2.0.11 → 3.0.0-alpha.1
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,152 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Workbench file generator for Vite builds
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import { join } from 'node:path';
|
|
6
|
-
import { mkdirSync, existsSync, cpSync } from 'node:fs';
|
|
7
|
-
import {
|
|
8
|
-
encodeWorkbenchConfig,
|
|
9
|
-
type WorkbenchConfig as CoreWorkbenchConfig,
|
|
10
|
-
} from '@agentuity/core';
|
|
11
|
-
import type { Logger, WorkbenchConfig } from '../../../types';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Find the @agentuity/workbench package path
|
|
15
|
-
*/
|
|
16
|
-
async function findWorkbenchPackage(rootDir: string, logger: Logger): Promise<string | null> {
|
|
17
|
-
// Try app-level node_modules first
|
|
18
|
-
const appLevel = join(rootDir, 'node_modules', '@agentuity', 'workbench');
|
|
19
|
-
if (existsSync(appLevel)) {
|
|
20
|
-
return appLevel;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// Try workspace root (walk up looking for workspace)
|
|
24
|
-
let current = rootDir;
|
|
25
|
-
while (true) {
|
|
26
|
-
const pkgPath = join(current, 'package.json');
|
|
27
|
-
if (existsSync(pkgPath)) {
|
|
28
|
-
try {
|
|
29
|
-
const pkg = JSON.parse(await Bun.file(pkgPath).text());
|
|
30
|
-
if (pkg.workspaces) {
|
|
31
|
-
// Found workspace root
|
|
32
|
-
const workspaceWorkbench = join(current, 'node_modules', '@agentuity', 'workbench');
|
|
33
|
-
if (existsSync(workspaceWorkbench)) {
|
|
34
|
-
return workspaceWorkbench;
|
|
35
|
-
}
|
|
36
|
-
// Try workspace packages directory
|
|
37
|
-
const packagesWorkbench = join(current, 'packages', 'workbench');
|
|
38
|
-
if (existsSync(packagesWorkbench)) {
|
|
39
|
-
return packagesWorkbench;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
} catch {
|
|
43
|
-
// Ignore parse errors
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
const parent = join(current, '..');
|
|
47
|
-
if (parent === current) break;
|
|
48
|
-
current = parent;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
logger.warn('Could not find @agentuity/workbench package');
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Generate workbench main.tsx file
|
|
57
|
-
*/
|
|
58
|
-
function generateMainTsx(config: CoreWorkbenchConfig): string {
|
|
59
|
-
const encodedConfig = encodeWorkbenchConfig(config);
|
|
60
|
-
return `// Generated workbench entry point
|
|
61
|
-
import React from 'react';
|
|
62
|
-
import { createRoot } from 'react-dom/client';
|
|
63
|
-
import { App } from '@agentuity/workbench';
|
|
64
|
-
import './styles.css'; // Import CSS for Vite HMR
|
|
65
|
-
|
|
66
|
-
// Root element
|
|
67
|
-
const rootElement = document.getElementById('root');
|
|
68
|
-
if (!rootElement) {
|
|
69
|
-
throw new Error('Root element not found');
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Render the app
|
|
73
|
-
const root = createRoot(rootElement);
|
|
74
|
-
root.render(<App configBase64="${encodedConfig}" />);
|
|
75
|
-
`;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Generate workbench index.html file
|
|
80
|
-
*/
|
|
81
|
-
function generateIndexHtml(): string {
|
|
82
|
-
return `<!DOCTYPE html>
|
|
83
|
-
<html lang="en">
|
|
84
|
-
<head>
|
|
85
|
-
<meta charset="UTF-8">
|
|
86
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
87
|
-
<title>Agentuity Workbench</title>
|
|
88
|
-
</head>
|
|
89
|
-
<body>
|
|
90
|
-
<div id="root"></div>
|
|
91
|
-
<script type="module" src="./main.tsx"></script>
|
|
92
|
-
</body>
|
|
93
|
-
</html>`;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
/**
|
|
97
|
-
* Generate workbench files in .agentuity/workbench-src/
|
|
98
|
-
* This keeps them separate from user's source code
|
|
99
|
-
*/
|
|
100
|
-
export async function generateWorkbenchFiles(
|
|
101
|
-
rootDir: string,
|
|
102
|
-
_projectId: string,
|
|
103
|
-
config: WorkbenchConfig,
|
|
104
|
-
logger: Logger
|
|
105
|
-
): Promise<void> {
|
|
106
|
-
const workbenchDir = join(rootDir, '.agentuity', 'workbench-src');
|
|
107
|
-
|
|
108
|
-
// Create directory if it doesn't exist
|
|
109
|
-
if (!existsSync(workbenchDir)) {
|
|
110
|
-
mkdirSync(workbenchDir, { recursive: true });
|
|
111
|
-
logger.debug('Created workbench directory: %s', workbenchDir);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
// Create core workbench config
|
|
115
|
-
const coreConfig: CoreWorkbenchConfig = {
|
|
116
|
-
route: config.route ?? '/workbench',
|
|
117
|
-
headers: config.headers ?? {},
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
// Generate main.tsx
|
|
121
|
-
const mainTsxPath = join(workbenchDir, 'main.tsx');
|
|
122
|
-
await Bun.write(mainTsxPath, generateMainTsx(coreConfig));
|
|
123
|
-
logger.debug('Generated workbench main.tsx');
|
|
124
|
-
|
|
125
|
-
// Generate index.html
|
|
126
|
-
const indexHtmlPath = join(workbenchDir, 'index.html');
|
|
127
|
-
await Bun.write(indexHtmlPath, generateIndexHtml());
|
|
128
|
-
logger.debug('Generated workbench index.html');
|
|
129
|
-
|
|
130
|
-
// Copy standalone CSS from @agentuity/workbench package
|
|
131
|
-
const workbenchPackage = await findWorkbenchPackage(rootDir, logger);
|
|
132
|
-
if (workbenchPackage) {
|
|
133
|
-
const distCss = join(workbenchPackage, 'dist', 'standalone.css');
|
|
134
|
-
const srcCss = join(workbenchPackage, 'src', 'standalone.css');
|
|
135
|
-
const destCss = join(workbenchDir, 'styles.css');
|
|
136
|
-
|
|
137
|
-
if (existsSync(distCss)) {
|
|
138
|
-
cpSync(distCss, destCss);
|
|
139
|
-
logger.debug('Copied workbench standalone.css from dist');
|
|
140
|
-
} else if (existsSync(srcCss)) {
|
|
141
|
-
cpSync(srcCss, destCss);
|
|
142
|
-
logger.warn('Using source standalone.css (ensure @agentuity/workbench is built)');
|
|
143
|
-
} else {
|
|
144
|
-
logger.error('Workbench styles not found in package: %s', workbenchPackage);
|
|
145
|
-
throw new Error('Workbench styles not found. Ensure @agentuity/workbench is installed.');
|
|
146
|
-
}
|
|
147
|
-
} else {
|
|
148
|
-
throw new Error('Could not find @agentuity/workbench package. Ensure it is installed.');
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
logger.trace('Workbench files generated successfully');
|
|
152
|
-
}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WebSocket-aware front-door TCP proxy for dev mode.
|
|
3
|
-
*
|
|
4
|
-
* Bun's node:http has several bugs that prevent Vite's built-in http-proxy
|
|
5
|
-
* from proxying WebSocket upgrades (see linked PRs). Rather than polyfilling
|
|
6
|
-
* those bugs, this module places a lightweight `net.createServer` on the
|
|
7
|
-
* user-facing port. It inspects the first bytes of each TCP connection and
|
|
8
|
-
* routes accordingly:
|
|
9
|
-
*
|
|
10
|
-
* - **WebSocket upgrades to backend paths** → piped directly to Bun backend
|
|
11
|
-
* (Bun's native `server.upgrade()` works perfectly over raw TCP)
|
|
12
|
-
* - **Everything else** (HTTP requests, Vite HMR WebSocket) → piped to Vite
|
|
13
|
-
*
|
|
14
|
-
* From the browser's perspective there is only one port. Vite and Bun both
|
|
15
|
-
* listen on internal ports that are never exposed.
|
|
16
|
-
*
|
|
17
|
-
* Bun bugs this works around:
|
|
18
|
-
* - https://github.com/oven-sh/bun/pull/27237 (socket.write drops data)
|
|
19
|
-
* - https://github.com/oven-sh/bun/pull/26264 (missing destroySoon)
|
|
20
|
-
* - https://github.com/oven-sh/bun/pull/27859 (http.request upgrade event)
|
|
21
|
-
* - Server-side upgrade socket read broken (HTTP parser doesn't hand off)
|
|
22
|
-
*
|
|
23
|
-
* This entire module can be removed once those Bun PRs are merged and the
|
|
24
|
-
* Vite `ws: true` proxy works natively under Bun.
|
|
25
|
-
*
|
|
26
|
-
* ```
|
|
27
|
-
* Browser ──TCP──▶ net.Server (:3500, user-facing)
|
|
28
|
-
* │
|
|
29
|
-
* ┌───────────┴───────────┐
|
|
30
|
-
* ▼ (WS upgrade to ▼ (everything else)
|
|
31
|
-
* backend paths)
|
|
32
|
-
* Bun backend (:3501) Vite server (:3502)
|
|
33
|
-
* ```
|
|
34
|
-
*/
|
|
35
|
-
|
|
36
|
-
import { createServer, connect, type Server } from 'node:net';
|
|
37
|
-
import type { Logger } from '../../../types';
|
|
38
|
-
|
|
39
|
-
export interface WsProxyOptions {
|
|
40
|
-
/** Port the front-door proxy listens on (user-facing) */
|
|
41
|
-
port: number;
|
|
42
|
-
/** Port of the Vite dev server (internal) */
|
|
43
|
-
vitePort: number;
|
|
44
|
-
/** Port of the Bun backend server (internal) */
|
|
45
|
-
backendPort: number;
|
|
46
|
-
/** Route path prefixes that should be proxied to the backend */
|
|
47
|
-
routePaths: string[];
|
|
48
|
-
logger: Logger;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Start a front-door TCP proxy that routes WebSocket upgrades to the Bun
|
|
53
|
-
* backend and everything else to Vite. Returns the `net.Server` instance.
|
|
54
|
-
*/
|
|
55
|
-
export function startWsProxy(options: WsProxyOptions): Promise<Server> {
|
|
56
|
-
const { port, vitePort, backendPort, routePaths, logger } = options;
|
|
57
|
-
|
|
58
|
-
// Prefixes whose WebSocket upgrades go to Bun instead of Vite
|
|
59
|
-
const wsPathPrefixes = ['/_agentuity', ...routePaths];
|
|
60
|
-
|
|
61
|
-
return new Promise((resolve, reject) => {
|
|
62
|
-
const server = createServer((socket) => {
|
|
63
|
-
let handled = false;
|
|
64
|
-
|
|
65
|
-
// Peek at the first chunk to decide where to route
|
|
66
|
-
socket.once('data', (firstChunk) => {
|
|
67
|
-
handled = true;
|
|
68
|
-
|
|
69
|
-
const header = firstChunk.toString('utf8', 0, Math.min(firstChunk.length, 4096));
|
|
70
|
-
|
|
71
|
-
// Detect: is this a WebSocket upgrade for a backend path?
|
|
72
|
-
const isUpgrade = /upgrade:\s*websocket/i.test(header);
|
|
73
|
-
let targetPort = vitePort;
|
|
74
|
-
|
|
75
|
-
if (isUpgrade) {
|
|
76
|
-
const pathMatch = header.match(/^(?:GET|POST)\s+(\S+)/);
|
|
77
|
-
const pathname = (pathMatch?.[1] ?? '/').split('?')[0] ?? '/';
|
|
78
|
-
|
|
79
|
-
const isBackendPath = wsPathPrefixes.some(
|
|
80
|
-
(prefix) => pathname === prefix || pathname.startsWith(prefix + '/')
|
|
81
|
-
);
|
|
82
|
-
|
|
83
|
-
if (isBackendPath) {
|
|
84
|
-
targetPort = backendPort;
|
|
85
|
-
logger.debug('WS upgrade %s → Bun :%d', pathname, backendPort);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const target = connect(targetPort, '127.0.0.1');
|
|
90
|
-
|
|
91
|
-
target.on('connect', () => {
|
|
92
|
-
target.write(firstChunk);
|
|
93
|
-
socket.pipe(target);
|
|
94
|
-
target.pipe(socket);
|
|
95
|
-
});
|
|
96
|
-
|
|
97
|
-
target.on('error', () => {
|
|
98
|
-
if (!socket.destroyed) socket.destroy();
|
|
99
|
-
});
|
|
100
|
-
socket.on('error', () => {
|
|
101
|
-
if (!target.destroyed) target.destroy();
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
// Client disconnected before sending anything
|
|
106
|
-
socket.on('close', () => {
|
|
107
|
-
if (!handled) socket.destroy();
|
|
108
|
-
});
|
|
109
|
-
socket.on('error', () => {
|
|
110
|
-
if (!handled) socket.destroy();
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
|
|
114
|
-
server.on('error', reject);
|
|
115
|
-
|
|
116
|
-
server.listen(port, '127.0.0.1', () => {
|
|
117
|
-
logger.debug(
|
|
118
|
-
'WS front-door proxy on :%d (Vite :%d, Bun :%d)',
|
|
119
|
-
port,
|
|
120
|
-
vitePort,
|
|
121
|
-
backendPort
|
|
122
|
-
);
|
|
123
|
-
resolve(server);
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vite-based bundler
|
|
3
|
-
*
|
|
4
|
-
* Replaces the Bun bundler with Vite for client and server builds
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { join } from 'node:path';
|
|
8
|
-
import { stat } from 'node:fs/promises';
|
|
9
|
-
import { StructuredError } from '@agentuity/core';
|
|
10
|
-
import type { Logger, DeployOptions } from '../../types';
|
|
11
|
-
import { runAllBuilds } from './vite/vite-builder';
|
|
12
|
-
import { checkAndUpgradeDependencies } from '../../utils/dependency-checker';
|
|
13
|
-
import { checkBunVersion } from '../../utils/bun-version-checker';
|
|
14
|
-
import * as tui from '../../tui';
|
|
15
|
-
import type { BuildReportCollector } from '../../build-report';
|
|
16
|
-
|
|
17
|
-
const AppFileNotFoundError = StructuredError('AppFileNotFoundError');
|
|
18
|
-
const BuildFailedError = StructuredError('BuildFailedError');
|
|
19
|
-
|
|
20
|
-
export interface ViteBundleOptions {
|
|
21
|
-
rootDir: string;
|
|
22
|
-
dev?: boolean;
|
|
23
|
-
projectId?: string;
|
|
24
|
-
orgId?: string;
|
|
25
|
-
region?: string;
|
|
26
|
-
deploymentId?: string;
|
|
27
|
-
port?: number;
|
|
28
|
-
logger: Logger;
|
|
29
|
-
deploymentOptions?: DeployOptions;
|
|
30
|
-
/** Deployment config from agentuity.json (resources, mode, dependencies, domains) */
|
|
31
|
-
deploymentConfig?: Record<string, unknown>;
|
|
32
|
-
/** Optional collector for structured error reporting */
|
|
33
|
-
collector?: BuildReportCollector;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* Bundle the project using Vite
|
|
38
|
-
*/
|
|
39
|
-
export async function viteBundle(options: ViteBundleOptions): Promise<{ output: string[] }> {
|
|
40
|
-
const {
|
|
41
|
-
rootDir,
|
|
42
|
-
projectId = '',
|
|
43
|
-
orgId = '',
|
|
44
|
-
region = 'local',
|
|
45
|
-
deploymentId = '',
|
|
46
|
-
port = 3500,
|
|
47
|
-
logger,
|
|
48
|
-
deploymentOptions,
|
|
49
|
-
deploymentConfig,
|
|
50
|
-
collector,
|
|
51
|
-
} = options;
|
|
52
|
-
|
|
53
|
-
const output: string[] = [];
|
|
54
|
-
|
|
55
|
-
// Check Bun version meets minimum requirements
|
|
56
|
-
const versionOutput = await checkBunVersion();
|
|
57
|
-
output.push(...versionOutput);
|
|
58
|
-
|
|
59
|
-
// Verify app.ts exists
|
|
60
|
-
const appFile = join(rootDir, 'app.ts');
|
|
61
|
-
if (!(await Bun.file(appFile).exists())) {
|
|
62
|
-
const errorMessage = `App file not found at expected location: ${appFile}`;
|
|
63
|
-
collector?.addGeneralError('build', errorMessage, 'BUILD001');
|
|
64
|
-
throw new AppFileNotFoundError({
|
|
65
|
-
message: errorMessage,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
// Verify src directory exists
|
|
70
|
-
const srcDir = join(rootDir, 'src');
|
|
71
|
-
const srcDirExists = await stat(srcDir)
|
|
72
|
-
.then((s) => s.isDirectory())
|
|
73
|
-
.catch(() => false);
|
|
74
|
-
if (!srcDirExists) {
|
|
75
|
-
const errorMessage = `Source directory not found: ${srcDir}`;
|
|
76
|
-
collector?.addGeneralError('build', errorMessage, 'BUILD002');
|
|
77
|
-
throw new BuildFailedError({
|
|
78
|
-
message: errorMessage,
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// Check and upgrade @agentuity/* dependencies if needed
|
|
83
|
-
const upgradeResult = await checkAndUpgradeDependencies(rootDir, logger);
|
|
84
|
-
if (upgradeResult.failed.length > 0 && process.stdin.isTTY) {
|
|
85
|
-
const errorMessage = `Failed to upgrade dependencies: ${upgradeResult.failed.join(', ')}`;
|
|
86
|
-
collector?.addGeneralError('build', errorMessage, 'BUILD003');
|
|
87
|
-
throw new BuildFailedError({
|
|
88
|
-
message: errorMessage,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
try {
|
|
93
|
-
// Run all builds (client -> workbench -> server)
|
|
94
|
-
logger.debug('Starting builds...');
|
|
95
|
-
|
|
96
|
-
const result = await runAllBuilds({
|
|
97
|
-
rootDir,
|
|
98
|
-
dev: options.dev || false, // Pass through dev flag for development builds
|
|
99
|
-
port,
|
|
100
|
-
projectId,
|
|
101
|
-
orgId,
|
|
102
|
-
region,
|
|
103
|
-
deploymentId,
|
|
104
|
-
logger,
|
|
105
|
-
deploymentOptions,
|
|
106
|
-
deploymentConfig,
|
|
107
|
-
collector,
|
|
108
|
-
});
|
|
109
|
-
|
|
110
|
-
if (result.client.included) {
|
|
111
|
-
output.push(tui.muted(`✓ Client built in ${result.client.duration}ms`));
|
|
112
|
-
}
|
|
113
|
-
if (result.workbench.included) {
|
|
114
|
-
output.push(tui.muted(`✓ Workbench built in ${result.workbench.duration}ms`));
|
|
115
|
-
}
|
|
116
|
-
if (result.static.included) {
|
|
117
|
-
output.push(
|
|
118
|
-
tui.muted(
|
|
119
|
-
`✓ ${result.static.routes} routes pre-rendered in ${result.static.duration}ms`
|
|
120
|
-
)
|
|
121
|
-
);
|
|
122
|
-
}
|
|
123
|
-
if (result.server.included) {
|
|
124
|
-
output.push(tui.muted(`✓ Server built in ${result.server.duration}ms`));
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
logger.debug('All builds complete');
|
|
128
|
-
|
|
129
|
-
return { output };
|
|
130
|
-
} catch (error) {
|
|
131
|
-
const errorMessage = `Build failed: ${error instanceof Error ? error.message : String(error)}`;
|
|
132
|
-
collector?.addGeneralError('build', errorMessage, 'BUILD004');
|
|
133
|
-
throw new BuildFailedError({
|
|
134
|
-
message: errorMessage,
|
|
135
|
-
});
|
|
136
|
-
}
|
|
137
|
-
}
|
package/src/cmd/dev/agents.ts
DELETED
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { createSubcommand } from '../../types';
|
|
3
|
-
import * as tui from '../../tui';
|
|
4
|
-
import { APIResponseSchema } from '@agentuity/server';
|
|
5
|
-
import { abbreviate, abbreviateDescription } from '../../utils/format';
|
|
6
|
-
import { getCommand } from '../../command-prefix';
|
|
7
|
-
|
|
8
|
-
const AgentSchema = z.object({
|
|
9
|
-
id: z.string(),
|
|
10
|
-
name: z.string(),
|
|
11
|
-
description: z.string().nullable(),
|
|
12
|
-
identifier: z.string().nullable(), // nullable for legacy records
|
|
13
|
-
version: z.string().nullable(),
|
|
14
|
-
deploymentId: z.string().nullable(),
|
|
15
|
-
devmode: z.boolean(),
|
|
16
|
-
metadata: z.record(z.string(), z.unknown()).nullable(),
|
|
17
|
-
createdAt: z.string(),
|
|
18
|
-
updatedAt: z.string(),
|
|
19
|
-
evals: z.array(
|
|
20
|
-
z.object({
|
|
21
|
-
id: z.string(),
|
|
22
|
-
name: z.string(),
|
|
23
|
-
description: z.string().nullable(),
|
|
24
|
-
identifier: z.string().nullable(),
|
|
25
|
-
deploymentId: z.string().nullable(),
|
|
26
|
-
version: z.string().nullable(),
|
|
27
|
-
devmode: z.boolean(),
|
|
28
|
-
createdAt: z.string(),
|
|
29
|
-
updatedAt: z.string(),
|
|
30
|
-
})
|
|
31
|
-
),
|
|
32
|
-
});
|
|
33
|
-
|
|
34
|
-
const AgentsResponseSchema = APIResponseSchema(z.array(AgentSchema));
|
|
35
|
-
|
|
36
|
-
export const agentsSubcommand = createSubcommand({
|
|
37
|
-
name: 'agents',
|
|
38
|
-
description: 'Show devmode agent results',
|
|
39
|
-
examples: [
|
|
40
|
-
{ command: getCommand('dev agents'), description: 'Show all development mode agents' },
|
|
41
|
-
{ command: getCommand('dev agents --verbose'), description: 'Show agents with full details' },
|
|
42
|
-
],
|
|
43
|
-
requires: { auth: true, apiClient: true, project: true },
|
|
44
|
-
schema: {
|
|
45
|
-
options: z.object({
|
|
46
|
-
deploymentId: z.string().optional().describe('Filter by deployment ID'),
|
|
47
|
-
format: z
|
|
48
|
-
.enum(['json', 'table'])
|
|
49
|
-
.optional()
|
|
50
|
-
.default('table')
|
|
51
|
-
.describe('Output format: json or table'),
|
|
52
|
-
verbose: z.boolean().optional().default(false).describe('Show full IDs and descriptions'),
|
|
53
|
-
}),
|
|
54
|
-
response: z.array(AgentSchema),
|
|
55
|
-
},
|
|
56
|
-
async handler(ctx) {
|
|
57
|
-
const { opts, apiClient, project, options } = ctx;
|
|
58
|
-
const projectId = project.projectId;
|
|
59
|
-
const format = opts?.format ?? 'table';
|
|
60
|
-
const verbose = opts?.verbose ?? false;
|
|
61
|
-
|
|
62
|
-
const deploymentId = opts?.deploymentId;
|
|
63
|
-
const queryParams = deploymentId ? `?deploymentId=${deploymentId}` : '';
|
|
64
|
-
|
|
65
|
-
const response = options.json
|
|
66
|
-
? await apiClient.get(`/cli/agent/${projectId}${queryParams}`, AgentsResponseSchema)
|
|
67
|
-
: await tui.spinner('Fetching agents', async () => {
|
|
68
|
-
return apiClient.get(`/cli/agent/${projectId}${queryParams}`, AgentsResponseSchema);
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
if (!response.success) {
|
|
72
|
-
tui.fatal(`Failed to fetch agents: ${response.message ?? 'Unknown error'}`);
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Filter out legacy agents without identifiers
|
|
76
|
-
const agents = response.data.filter((agent) => agent.identifier !== null);
|
|
77
|
-
|
|
78
|
-
if (format === 'json' && !options.json) {
|
|
79
|
-
console.log(JSON.stringify(agents, null, 2));
|
|
80
|
-
return agents;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
if (!options.json) {
|
|
84
|
-
tui.info(`Agents (${agents.length})`);
|
|
85
|
-
if (agents.length === 0) {
|
|
86
|
-
tui.muted('No agents found');
|
|
87
|
-
} else {
|
|
88
|
-
tui.table(
|
|
89
|
-
agents.map((agent) => ({
|
|
90
|
-
name: agent.name,
|
|
91
|
-
id: verbose ? agent.id : abbreviate(agent.id, 20),
|
|
92
|
-
identifier: verbose ? agent.identifier! : abbreviate(agent.identifier!, 20),
|
|
93
|
-
deployment: abbreviate(agent.deploymentId, 20),
|
|
94
|
-
version: verbose
|
|
95
|
-
? (agent.version ?? 'N/A')
|
|
96
|
-
: (abbreviate(agent.version, 20) ?? 'N/A'),
|
|
97
|
-
evals: agent.evals.length,
|
|
98
|
-
createdAt: new Date(agent.createdAt).toLocaleString(),
|
|
99
|
-
})),
|
|
100
|
-
['name', 'id', 'identifier', 'deployment', 'version', 'evals', 'createdAt']
|
|
101
|
-
);
|
|
102
|
-
|
|
103
|
-
// Show evals for each agent
|
|
104
|
-
for (const agent of agents) {
|
|
105
|
-
if (agent.evals.length > 0) {
|
|
106
|
-
console.log(`\n Evals for ${agent.name}:`);
|
|
107
|
-
tui.table(
|
|
108
|
-
agent.evals.map((evalItem) => ({
|
|
109
|
-
name: evalItem.name,
|
|
110
|
-
id: verbose ? evalItem.id : abbreviate(evalItem.id, 20),
|
|
111
|
-
identifier: verbose
|
|
112
|
-
? (evalItem.identifier ?? 'N/A')
|
|
113
|
-
: (abbreviate(evalItem.identifier, 20) ?? 'N/A'),
|
|
114
|
-
deployment: abbreviate(evalItem.deploymentId, 20),
|
|
115
|
-
version: verbose
|
|
116
|
-
? (evalItem.version ?? 'N/A')
|
|
117
|
-
: (abbreviate(evalItem.version, 20) ?? 'N/A'),
|
|
118
|
-
description: verbose
|
|
119
|
-
? (evalItem.description ?? 'N/A')
|
|
120
|
-
: abbreviateDescription(evalItem.description),
|
|
121
|
-
createdAt: new Date(evalItem.createdAt).toLocaleString(),
|
|
122
|
-
})),
|
|
123
|
-
[
|
|
124
|
-
'name',
|
|
125
|
-
'id',
|
|
126
|
-
'identifier',
|
|
127
|
-
'deployment',
|
|
128
|
-
'version',
|
|
129
|
-
'description',
|
|
130
|
-
'createdAt',
|
|
131
|
-
]
|
|
132
|
-
);
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
return agents;
|
|
139
|
-
},
|
|
140
|
-
});
|
package/src/cmd/dev/api.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { APIResponseSchema } from '@agentuity/server';
|
|
2
|
-
import { z } from 'zod';
|
|
3
|
-
import type { APIClient } from '../../api';
|
|
4
|
-
import { StructuredError } from '@agentuity/core';
|
|
5
|
-
import { createPublicKey } from 'crypto';
|
|
6
|
-
|
|
7
|
-
const DevmodeRequestSchema = z.object({
|
|
8
|
-
hostname: z.string().optional().describe('the hostname for the endpoint'),
|
|
9
|
-
publicKey: z.string().optional().describe('the public key PEM for the endpoint'),
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
type DevmodeRequest = z.infer<typeof DevmodeRequestSchema>;
|
|
13
|
-
|
|
14
|
-
function extractPublicKeyPEM(privateKeyPEM: string): string | undefined {
|
|
15
|
-
try {
|
|
16
|
-
const publicKey = createPublicKey(privateKeyPEM);
|
|
17
|
-
return publicKey.export({ type: 'spki', format: 'pem' }) as string;
|
|
18
|
-
} catch {
|
|
19
|
-
return undefined;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
const DevmodeResponseSchema = z.object({
|
|
24
|
-
id: z.string(),
|
|
25
|
-
hostname: z.string(),
|
|
26
|
-
privateKey: z.string().optional(),
|
|
27
|
-
});
|
|
28
|
-
export type DevmodeResponse = z.infer<typeof DevmodeResponseSchema>;
|
|
29
|
-
|
|
30
|
-
const DevmodeResponseAPISchema = APIResponseSchema(DevmodeResponseSchema);
|
|
31
|
-
type DevmodeResponseAPI = z.infer<typeof DevmodeResponseAPISchema>;
|
|
32
|
-
|
|
33
|
-
const DevmodeEndpointError = StructuredError('DevmodeEndpointError');
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Generate an Endpoint ID and Hostname
|
|
37
|
-
*
|
|
38
|
-
* @param apiClient the api client to use
|
|
39
|
-
* @param projectId the project id
|
|
40
|
-
* @param hostname the hostname is already configured
|
|
41
|
-
* @param privateKey the private key PEM if already configured
|
|
42
|
-
* @returns
|
|
43
|
-
*/
|
|
44
|
-
export async function generateEndpoint(
|
|
45
|
-
apiClient: APIClient,
|
|
46
|
-
projectId: string,
|
|
47
|
-
hostname?: string,
|
|
48
|
-
privateKey?: string
|
|
49
|
-
): Promise<DevmodeResponse> {
|
|
50
|
-
const publicKey = privateKey ? extractPublicKeyPEM(privateKey) : undefined;
|
|
51
|
-
|
|
52
|
-
const resp = await apiClient.request<DevmodeResponseAPI, DevmodeRequest>(
|
|
53
|
-
'POST',
|
|
54
|
-
`/cli/devmode/3/${projectId}`,
|
|
55
|
-
DevmodeResponseAPISchema,
|
|
56
|
-
{ hostname, publicKey },
|
|
57
|
-
DevmodeRequestSchema
|
|
58
|
-
);
|
|
59
|
-
|
|
60
|
-
if (!resp.success) {
|
|
61
|
-
throw new DevmodeEndpointError({ message: resp.message });
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return resp.data;
|
|
65
|
-
}
|