@agentuity/cli 1.0.31 → 1.0.33
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/agent-detection.js +1 -1
- package/dist/agent-detection.js.map +1 -1
- package/dist/api.d.ts +1 -1
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +1 -1
- package/dist/api.js.map +1 -1
- package/dist/cache/agent-intro.d.ts.map +1 -1
- package/dist/cache/agent-intro.js.map +1 -1
- package/dist/cache/resource-region.d.ts.map +1 -1
- package/dist/cache/resource-region.js.map +1 -1
- package/dist/cache/user-cache.d.ts.map +1 -1
- package/dist/cache/user-cache.js.map +1 -1
- package/dist/catalyst.d.ts +3 -1
- package/dist/catalyst.d.ts.map +1 -1
- package/dist/catalyst.js +5 -1
- package/dist/catalyst.js.map +1 -1
- package/dist/cmd/ai/opencode/install.js +1 -1
- package/dist/cmd/ai/opencode/install.js.map +1 -1
- package/dist/cmd/build/ast.js +2 -2
- package/dist/cmd/build/ast.js.map +1 -1
- package/dist/cmd/build/patch/_util.d.ts +1 -1
- package/dist/cmd/build/patch/_util.d.ts.map +1 -1
- package/dist/cmd/build/patch/_util.js +2 -2
- package/dist/cmd/build/patch/_util.js.map +1 -1
- package/dist/cmd/build/vite/bun-dev-server.js +9 -1
- package/dist/cmd/build/vite/bun-dev-server.js.map +1 -1
- package/dist/cmd/build/vite/config-loader.js +9 -1
- package/dist/cmd/build/vite/config-loader.js.map +1 -1
- package/dist/cmd/build/vite/registry-generator.js.map +1 -1
- package/dist/cmd/build/vite/server-bundler.js +9 -1
- package/dist/cmd/build/vite/server-bundler.js.map +1 -1
- package/dist/cmd/build/vite/static-renderer.js +11 -3
- package/dist/cmd/build/vite/static-renderer.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js +9 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.js +9 -1
- package/dist/cmd/build/vite/vite-asset-server.js.map +1 -1
- package/dist/cmd/build/vite/vite-builder.js +10 -2
- package/dist/cmd/build/vite/vite-builder.js.map +1 -1
- package/dist/cmd/build/vite/workbench-generator.d.ts +1 -1
- package/dist/cmd/build/vite/workbench-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/workbench-generator.js +1 -1
- package/dist/cmd/build/vite/workbench-generator.js.map +1 -1
- package/dist/cmd/cloud/db/create.d.ts.map +1 -1
- package/dist/cmd/cloud/db/create.js +8 -10
- package/dist/cmd/cloud/db/create.js.map +1 -1
- package/dist/cmd/cloud/db/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/db/delete.js +12 -14
- package/dist/cmd/cloud/db/delete.js.map +1 -1
- package/dist/cmd/cloud/db/get.d.ts.map +1 -1
- package/dist/cmd/cloud/db/get.js +7 -7
- package/dist/cmd/cloud/db/get.js.map +1 -1
- package/dist/cmd/cloud/db/list.d.ts.map +1 -1
- package/dist/cmd/cloud/db/list.js +5 -5
- package/dist/cmd/cloud/db/list.js.map +1 -1
- package/dist/cmd/cloud/db/logs.d.ts.map +1 -1
- package/dist/cmd/cloud/db/logs.js +7 -7
- package/dist/cmd/cloud/db/logs.js.map +1 -1
- package/dist/cmd/cloud/db/sql.js +5 -5
- package/dist/cmd/cloud/db/sql.js.map +1 -1
- package/dist/cmd/cloud/db/stats.d.ts.map +1 -1
- package/dist/cmd/cloud/db/stats.js +5 -5
- package/dist/cmd/cloud/db/stats.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +1 -1
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/cloud/email/stats.d.ts.map +1 -1
- package/dist/cmd/cloud/email/stats.js +5 -5
- package/dist/cmd/cloud/email/stats.js.map +1 -1
- package/dist/cmd/cloud/email/util.d.ts +2 -2
- package/dist/cmd/cloud/email/util.d.ts.map +1 -1
- package/dist/cmd/cloud/email/util.js +2 -2
- package/dist/cmd/cloud/email/util.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/repl.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/repl.js +4 -2
- package/dist/cmd/cloud/keyvalue/repl.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/search.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/search.js.map +1 -1
- package/dist/cmd/cloud/keyvalue/util.d.ts.map +1 -1
- package/dist/cmd/cloud/keyvalue/util.js +1 -1
- package/dist/cmd/cloud/keyvalue/util.js.map +1 -1
- package/dist/cmd/cloud/machine/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/machine/delete.js +6 -6
- package/dist/cmd/cloud/machine/delete.js.map +1 -1
- package/dist/cmd/cloud/machine/deployments.d.ts.map +1 -1
- package/dist/cmd/cloud/machine/deployments.js +5 -5
- package/dist/cmd/cloud/machine/deployments.js.map +1 -1
- package/dist/cmd/cloud/machine/get.d.ts.map +1 -1
- package/dist/cmd/cloud/machine/get.js +5 -5
- package/dist/cmd/cloud/machine/get.js.map +1 -1
- package/dist/cmd/cloud/machine/list.d.ts.map +1 -1
- package/dist/cmd/cloud/machine/list.js +5 -5
- package/dist/cmd/cloud/machine/list.js.map +1 -1
- package/dist/cmd/cloud/queue/util.d.ts +1 -1
- package/dist/cmd/cloud/queue/util.d.ts.map +1 -1
- package/dist/cmd/cloud/queue/util.js +1 -1
- package/dist/cmd/cloud/queue/util.js.map +1 -1
- package/dist/cmd/cloud/redis/get.js +5 -5
- package/dist/cmd/cloud/redis/get.js.map +1 -1
- package/dist/cmd/cloud/sandbox/cp.js +2 -2
- package/dist/cmd/cloud/sandbox/cp.js.map +1 -1
- package/dist/cmd/cloud/sandbox/execution/get.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/execution/get.js +4 -4
- package/dist/cmd/cloud/sandbox/execution/get.js.map +1 -1
- package/dist/cmd/cloud/sandbox/execution/list.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/execution/list.js +5 -5
- package/dist/cmd/cloud/sandbox/execution/list.js.map +1 -1
- package/dist/cmd/cloud/sandbox/runtime/list.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/runtime/list.js +4 -4
- package/dist/cmd/cloud/sandbox/runtime/list.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/build.js +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/build.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/create.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/create.js +5 -5
- package/dist/cmd/cloud/sandbox/snapshot/create.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/delete.js +4 -4
- package/dist/cmd/cloud/sandbox/snapshot/delete.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/get.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/get.js +4 -4
- package/dist/cmd/cloud/sandbox/snapshot/get.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/list.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/list.js +4 -4
- package/dist/cmd/cloud/sandbox/snapshot/list.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/tag.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/tag.js +4 -4
- package/dist/cmd/cloud/sandbox/snapshot/tag.js.map +1 -1
- package/dist/cmd/cloud/sandbox/stats.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/stats.js +5 -5
- package/dist/cmd/cloud/sandbox/stats.js.map +1 -1
- package/dist/cmd/cloud/sandbox/util.d.ts +3 -3
- package/dist/cmd/cloud/sandbox/util.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/util.js +5 -5
- package/dist/cmd/cloud/sandbox/util.js.map +1 -1
- package/dist/cmd/cloud/schedule/stats.d.ts.map +1 -1
- package/dist/cmd/cloud/schedule/stats.js +5 -5
- package/dist/cmd/cloud/schedule/stats.js.map +1 -1
- package/dist/cmd/cloud/schedule/util.d.ts +1 -1
- package/dist/cmd/cloud/schedule/util.d.ts.map +1 -1
- package/dist/cmd/cloud/schedule/util.js +1 -1
- package/dist/cmd/cloud/schedule/util.js.map +1 -1
- package/dist/cmd/cloud/services/stats.d.ts.map +1 -1
- package/dist/cmd/cloud/services/stats.js +5 -5
- package/dist/cmd/cloud/services/stats.js.map +1 -1
- package/dist/cmd/cloud/session/get.d.ts.map +1 -1
- package/dist/cmd/cloud/session/get.js +5 -5
- package/dist/cmd/cloud/session/get.js.map +1 -1
- package/dist/cmd/cloud/session/list.d.ts.map +1 -1
- package/dist/cmd/cloud/session/list.js +5 -5
- package/dist/cmd/cloud/session/list.js.map +1 -1
- package/dist/cmd/cloud/storage/config.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/config.js +8 -9
- package/dist/cmd/cloud/storage/config.js.map +1 -1
- package/dist/cmd/cloud/storage/create.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/create.js +8 -10
- package/dist/cmd/cloud/storage/create.js.map +1 -1
- package/dist/cmd/cloud/storage/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/delete.js +12 -14
- package/dist/cmd/cloud/storage/delete.js.map +1 -1
- package/dist/cmd/cloud/storage/download.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/download.js +6 -6
- package/dist/cmd/cloud/storage/download.js.map +1 -1
- package/dist/cmd/cloud/storage/get.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/get.js +6 -6
- package/dist/cmd/cloud/storage/get.js.map +1 -1
- package/dist/cmd/cloud/storage/list.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/list.js +6 -6
- package/dist/cmd/cloud/storage/list.js.map +1 -1
- package/dist/cmd/cloud/storage/upload.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/upload.js +7 -7
- package/dist/cmd/cloud/storage/upload.js.map +1 -1
- package/dist/cmd/cloud/stream/create.js +1 -1
- package/dist/cmd/cloud/stream/create.js.map +1 -1
- package/dist/cmd/cloud/stream/stats.d.ts.map +1 -1
- package/dist/cmd/cloud/stream/stats.js +5 -5
- package/dist/cmd/cloud/stream/stats.js.map +1 -1
- package/dist/cmd/cloud/task/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/task/delete.js +6 -1
- package/dist/cmd/cloud/task/delete.js.map +1 -1
- package/dist/cmd/cloud/task/stats.d.ts.map +1 -1
- package/dist/cmd/cloud/task/stats.js +5 -5
- package/dist/cmd/cloud/task/stats.js.map +1 -1
- package/dist/cmd/cloud/task/util.d.ts +1 -1
- package/dist/cmd/cloud/task/util.d.ts.map +1 -1
- package/dist/cmd/cloud/task/util.js +2 -2
- package/dist/cmd/cloud/task/util.js.map +1 -1
- package/dist/cmd/cloud/thread/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/thread/delete.js +5 -5
- package/dist/cmd/cloud/thread/delete.js.map +1 -1
- package/dist/cmd/cloud/thread/get.d.ts.map +1 -1
- package/dist/cmd/cloud/thread/get.js +5 -5
- package/dist/cmd/cloud/thread/get.js.map +1 -1
- package/dist/cmd/cloud/thread/list.d.ts.map +1 -1
- package/dist/cmd/cloud/thread/list.js +5 -5
- package/dist/cmd/cloud/thread/list.js.map +1 -1
- package/dist/cmd/cloud/vector/util.d.ts.map +1 -1
- package/dist/cmd/cloud/vector/util.js +1 -1
- package/dist/cmd/cloud/vector/util.js.map +1 -1
- package/dist/cmd/cloud/webhook/util.d.ts +1 -1
- package/dist/cmd/cloud/webhook/util.d.ts.map +1 -1
- package/dist/cmd/cloud/webhook/util.js +1 -1
- package/dist/cmd/cloud/webhook/util.js.map +1 -1
- package/dist/cmd/dev/dev-lock.js +2 -2
- package/dist/cmd/dev/dev-lock.js.map +1 -1
- package/dist/cmd/dev/templates.d.ts.map +1 -1
- package/dist/cmd/dev/templates.js +0 -1
- package/dist/cmd/dev/templates.js.map +1 -1
- package/dist/cmd/git/api.d.ts +38 -0
- package/dist/cmd/git/api.d.ts.map +1 -1
- package/dist/cmd/git/api.js +55 -0
- package/dist/cmd/git/api.js.map +1 -1
- package/dist/cmd/project/add/database.js +8 -8
- package/dist/cmd/project/add/database.js.map +1 -1
- package/dist/cmd/project/add/storage.js +8 -8
- package/dist/cmd/project/add/storage.js.map +1 -1
- package/dist/cmd/project/auth/init.d.ts.map +1 -1
- package/dist/cmd/project/auth/init.js +7 -6
- package/dist/cmd/project/auth/init.js.map +1 -1
- package/dist/cmd/project/auth/shared.d.ts +2 -3
- package/dist/cmd/project/auth/shared.d.ts.map +1 -1
- package/dist/cmd/project/auth/shared.js +7 -7
- package/dist/cmd/project/auth/shared.js.map +1 -1
- package/dist/cmd/project/download.d.ts +12 -1
- package/dist/cmd/project/download.d.ts.map +1 -1
- package/dist/cmd/project/download.js +38 -15
- package/dist/cmd/project/download.js.map +1 -1
- package/dist/cmd/project/import.d.ts.map +1 -1
- package/dist/cmd/project/import.js +67 -9
- package/dist/cmd/project/import.js.map +1 -1
- package/dist/cmd/project/remote-import.d.ts +41 -0
- package/dist/cmd/project/remote-import.d.ts.map +1 -0
- package/dist/cmd/project/remote-import.js +1074 -0
- package/dist/cmd/project/remote-import.js.map +1 -0
- package/dist/cmd/project/template-flow.d.ts +1 -1
- package/dist/cmd/project/template-flow.d.ts.map +1 -1
- package/dist/cmd/project/template-flow.js +27 -11
- package/dist/cmd/project/template-flow.js.map +1 -1
- package/dist/config.d.ts +29 -5
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +13 -14
- package/dist/config.js.map +1 -1
- package/dist/domain.js +1 -1
- package/dist/domain.js.map +1 -1
- package/dist/schema-generator.d.ts +1 -1
- package/dist/schema-generator.d.ts.map +1 -1
- package/dist/schema-generator.js +1 -1
- package/dist/schema-generator.js.map +1 -1
- package/dist/schema-parser.d.ts.map +1 -1
- package/dist/schema-parser.js +48 -6
- package/dist/schema-parser.js.map +1 -1
- package/dist/terminal.d.ts.map +1 -1
- package/dist/terminal.js +12 -17
- package/dist/terminal.js.map +1 -1
- package/dist/tui.js +1 -1
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +28 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +42 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/date.js +1 -1
- package/dist/utils/date.js.map +1 -1
- package/package.json +6 -6
- package/src/agent-detection.ts +1 -1
- package/src/api.ts +1 -1
- package/src/cache/agent-intro.ts +3 -4
- package/src/cache/resource-region.ts +3 -1
- package/src/cache/user-cache.ts +3 -4
- package/src/catalyst.ts +9 -1
- package/src/cmd/ai/opencode/install.ts +1 -1
- package/src/cmd/build/ast.ts +2 -2
- package/src/cmd/build/patch/_util.ts +2 -2
- package/src/cmd/build/vite/registry-generator.ts +4 -4
- package/src/cmd/build/vite/workbench-generator.ts +1 -1
- package/src/cmd/cloud/db/create.ts +8 -9
- package/src/cmd/cloud/db/delete.ts +18 -13
- package/src/cmd/cloud/db/get.ts +13 -7
- package/src/cmd/cloud/db/list.ts +11 -5
- package/src/cmd/cloud/db/logs.ts +13 -7
- package/src/cmd/cloud/db/sql.ts +5 -5
- package/src/cmd/cloud/db/stats.ts +11 -5
- package/src/cmd/cloud/deploy.ts +7 -1
- package/src/cmd/cloud/email/stats.ts +11 -5
- package/src/cmd/cloud/email/util.ts +4 -4
- package/src/cmd/cloud/keyvalue/repl.ts +6 -2
- package/src/cmd/cloud/keyvalue/search.ts +2 -1
- package/src/cmd/cloud/keyvalue/util.ts +2 -2
- package/src/cmd/cloud/machine/delete.ts +12 -6
- package/src/cmd/cloud/machine/deployments.ts +11 -5
- package/src/cmd/cloud/machine/get.ts +11 -5
- package/src/cmd/cloud/machine/list.ts +11 -5
- package/src/cmd/cloud/queue/util.ts +2 -2
- package/src/cmd/cloud/redis/get.ts +5 -5
- package/src/cmd/cloud/sandbox/cp.ts +2 -2
- package/src/cmd/cloud/sandbox/execution/get.ts +10 -4
- package/src/cmd/cloud/sandbox/execution/list.ts +6 -5
- package/src/cmd/cloud/sandbox/runtime/list.ts +10 -4
- package/src/cmd/cloud/sandbox/snapshot/build.ts +1 -1
- package/src/cmd/cloud/sandbox/snapshot/create.ts +12 -5
- package/src/cmd/cloud/sandbox/snapshot/delete.ts +10 -4
- package/src/cmd/cloud/sandbox/snapshot/get.ts +12 -6
- package/src/cmd/cloud/sandbox/snapshot/list.ts +10 -4
- package/src/cmd/cloud/sandbox/snapshot/tag.ts +10 -4
- package/src/cmd/cloud/sandbox/stats.ts +11 -5
- package/src/cmd/cloud/sandbox/util.ts +14 -7
- package/src/cmd/cloud/schedule/stats.ts +11 -5
- package/src/cmd/cloud/schedule/util.ts +3 -3
- package/src/cmd/cloud/services/stats.ts +13 -7
- package/src/cmd/cloud/session/get.ts +14 -8
- package/src/cmd/cloud/session/list.ts +11 -5
- package/src/cmd/cloud/storage/config.ts +27 -20
- package/src/cmd/cloud/storage/create.ts +8 -9
- package/src/cmd/cloud/storage/delete.ts +18 -13
- package/src/cmd/cloud/storage/download.ts +12 -6
- package/src/cmd/cloud/storage/get.ts +12 -6
- package/src/cmd/cloud/storage/list.ts +20 -9
- package/src/cmd/cloud/storage/upload.ts +13 -7
- package/src/cmd/cloud/stream/create.ts +1 -1
- package/src/cmd/cloud/stream/stats.ts +11 -5
- package/src/cmd/cloud/task/delete.ts +13 -2
- package/src/cmd/cloud/task/stats.ts +11 -5
- package/src/cmd/cloud/task/util.ts +4 -4
- package/src/cmd/cloud/thread/delete.ts +11 -5
- package/src/cmd/cloud/thread/get.ts +11 -5
- package/src/cmd/cloud/thread/list.ts +11 -5
- package/src/cmd/cloud/vector/util.ts +2 -2
- package/src/cmd/cloud/webhook/util.ts +2 -2
- package/src/cmd/dev/dev-lock.ts +2 -2
- package/src/cmd/dev/templates.ts +0 -1
- package/src/cmd/git/api.ts +127 -0
- package/src/cmd/project/add/database.ts +9 -9
- package/src/cmd/project/add/storage.ts +9 -9
- package/src/cmd/project/auth/init.ts +11 -10
- package/src/cmd/project/auth/shared.ts +15 -10
- package/src/cmd/project/download.ts +53 -17
- package/src/cmd/project/import.ts +71 -9
- package/src/cmd/project/remote-import.ts +1347 -0
- package/src/cmd/project/template-flow.ts +38 -22
- package/src/config.ts +23 -18
- package/src/domain.ts +3 -3
- package/src/schema-generator.ts +1 -1
- package/src/schema-parser.ts +49 -6
- package/src/terminal.ts +12 -14
- package/src/tui.ts +1 -1
- package/src/types.ts +45 -0
- package/src/utils/date.ts +1 -1
|
@@ -1,44 +1,45 @@
|
|
|
1
|
-
import { basename, resolve } from 'node:path';
|
|
2
1
|
import { existsSync, readdirSync, rmSync, statSync } from 'node:fs';
|
|
3
|
-
import { cwd } from 'node:process';
|
|
4
2
|
import { homedir } from 'node:os';
|
|
3
|
+
import { basename, resolve } from 'node:path';
|
|
4
|
+
import { cwd } from 'node:process';
|
|
5
|
+
import type { Logger } from '@agentuity/core';
|
|
5
6
|
import {
|
|
6
|
-
|
|
7
|
-
|
|
7
|
+
createResources,
|
|
8
|
+
getServiceUrls,
|
|
8
9
|
listResources,
|
|
10
|
+
projectCreate,
|
|
9
11
|
projectEnvUpdate,
|
|
10
|
-
|
|
12
|
+
projectExists,
|
|
11
13
|
APIClient as ServerAPIClient,
|
|
12
|
-
createResources,
|
|
13
|
-
validateDatabaseName,
|
|
14
14
|
validateBucketName,
|
|
15
|
+
validateDatabaseName,
|
|
15
16
|
} from '@agentuity/server';
|
|
16
|
-
import type { Logger } from '@agentuity/core';
|
|
17
|
-
import * as tui from '../../tui';
|
|
18
|
-
import { createPrompt, note } from '../../tui';
|
|
19
|
-
import { playSound } from '../../sound';
|
|
20
|
-
import { fetchTemplates, type TemplateInfo } from './templates';
|
|
21
|
-
import { downloadTemplate, setupProject, initGitRepo } from './download';
|
|
22
|
-
import { type AuthData, type Config } from '../../types';
|
|
23
|
-
import { ErrorCode } from '../../errors';
|
|
24
17
|
import type { APIClient } from '../../api';
|
|
25
18
|
import { createProjectConfig } from '../../config';
|
|
19
|
+
import { promptForDNS } from '../../domain';
|
|
26
20
|
import {
|
|
21
|
+
addResourceEnvVars,
|
|
22
|
+
type EnvVars,
|
|
23
|
+
filterAgentuitySdkKeys,
|
|
27
24
|
findExistingEnvFile,
|
|
28
25
|
readEnvFile,
|
|
29
|
-
filterAgentuitySdkKeys,
|
|
30
26
|
splitEnvAndSecrets,
|
|
31
|
-
addResourceEnvVars,
|
|
32
|
-
type EnvVars,
|
|
33
27
|
} from '../../env-util';
|
|
34
|
-
import {
|
|
28
|
+
import { ErrorCode } from '../../errors';
|
|
29
|
+
import { playSound } from '../../sound';
|
|
30
|
+
import * as tui from '../../tui';
|
|
31
|
+
import { createPrompt, note } from '../../tui';
|
|
32
|
+
import type { AuthData, Config } from '../../types';
|
|
33
|
+
import { getGithubBotIdentity } from '../git/api';
|
|
35
34
|
import {
|
|
36
35
|
ensureAuthDependencies,
|
|
37
|
-
runAuthMigrations,
|
|
38
36
|
generateAuthFileContent,
|
|
39
|
-
printIntegrationExamples,
|
|
40
37
|
generateAuthSchemaSql,
|
|
38
|
+
printIntegrationExamples,
|
|
39
|
+
runAuthMigrations,
|
|
41
40
|
} from './auth/shared';
|
|
41
|
+
import { downloadTemplate, initGitRepo, setupProject } from './download';
|
|
42
|
+
import { fetchTemplates, type TemplateInfo } from './templates';
|
|
42
43
|
|
|
43
44
|
interface CreateFlowOptions {
|
|
44
45
|
projectName?: string;
|
|
@@ -655,6 +656,7 @@ export async function runCreateFlow(options: CreateFlowOptions): Promise<CreateF
|
|
|
655
656
|
region,
|
|
656
657
|
databaseName: authDatabaseName,
|
|
657
658
|
sql,
|
|
659
|
+
config,
|
|
658
660
|
});
|
|
659
661
|
}
|
|
660
662
|
}
|
|
@@ -755,8 +757,22 @@ export async function runCreateFlow(options: CreateFlowOptions): Promise<CreateF
|
|
|
755
757
|
}
|
|
756
758
|
}
|
|
757
759
|
|
|
760
|
+
// Fetch GitHub App bot identity for commit authorship (if authenticated)
|
|
761
|
+
let botAuthor: { name: string; email: string } | undefined;
|
|
762
|
+
if (apiClient) {
|
|
763
|
+
try {
|
|
764
|
+
botAuthor = await getGithubBotIdentity(apiClient);
|
|
765
|
+
} catch {
|
|
766
|
+
// Non-fatal: fall back to generic Agentuity author
|
|
767
|
+
}
|
|
768
|
+
}
|
|
769
|
+
|
|
758
770
|
// Initialize git repository after all files are generated
|
|
759
|
-
await initGitRepo(dest
|
|
771
|
+
await initGitRepo(dest, {
|
|
772
|
+
projectName,
|
|
773
|
+
source: `template: ${selectedTemplate.name}`,
|
|
774
|
+
author: botAuthor,
|
|
775
|
+
});
|
|
760
776
|
|
|
761
777
|
// Show completion message
|
|
762
778
|
if (isInteractive) {
|
package/src/config.ts
CHANGED
|
@@ -1,25 +1,29 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
1
|
import { existsSync, mkdirSync } from 'node:fs';
|
|
3
|
-
import {
|
|
4
|
-
import { BuildMetadataSchema, type BuildMetadata, getServiceUrls } from '@agentuity/server';
|
|
5
|
-
import { APIClient as ServerAPIClient } from '@agentuity/server';
|
|
6
|
-
import { YAML } from 'bun';
|
|
7
|
-
import { join, extname, basename, resolve, normalize } from 'node:path';
|
|
2
|
+
import { chmod, mkdir, readdir, readFile, writeFile } from 'node:fs/promises';
|
|
8
3
|
import { homedir } from 'node:os';
|
|
9
|
-
import {
|
|
4
|
+
import { basename, extname, join, normalize, resolve } from 'node:path';
|
|
5
|
+
import { type Logger, StructuredError } from '@agentuity/core';
|
|
6
|
+
import {
|
|
7
|
+
type BuildMetadata,
|
|
8
|
+
BuildMetadataSchema,
|
|
9
|
+
getServiceUrls,
|
|
10
|
+
APIClient as ServerAPIClient,
|
|
11
|
+
} from '@agentuity/server';
|
|
12
|
+
import { YAML } from 'bun';
|
|
10
13
|
import JSON5 from 'json5';
|
|
11
|
-
import
|
|
12
|
-
import {
|
|
13
|
-
import * as tui from './tui';
|
|
14
|
+
import { z } from 'zod';
|
|
15
|
+
import { clearProfileCache } from './cache';
|
|
14
16
|
import { getCatalystUrl } from './catalyst';
|
|
17
|
+
import { readEnvFile, writeEnvFile } from './env-util';
|
|
15
18
|
import {
|
|
19
|
+
deleteAuthFromKeychain,
|
|
20
|
+
getAuthFromKeychain,
|
|
16
21
|
isMacOS,
|
|
17
22
|
saveAuthToKeychain,
|
|
18
|
-
getAuthFromKeychain,
|
|
19
|
-
deleteAuthFromKeychain,
|
|
20
23
|
} from './keychain';
|
|
21
|
-
import
|
|
22
|
-
import {
|
|
24
|
+
import * as tui from './tui';
|
|
25
|
+
import type { AuthData, Config, Profile } from './types';
|
|
26
|
+
import { ConfigSchema, ProjectSchema } from './types';
|
|
23
27
|
|
|
24
28
|
export const defaultProfileName = 'production';
|
|
25
29
|
|
|
@@ -768,16 +772,17 @@ export async function loadProjectSDKKey(
|
|
|
768
772
|
logger.trace(`[SDK_KEY] File does not exist: ${fn}`);
|
|
769
773
|
}
|
|
770
774
|
}
|
|
771
|
-
logger.trace(
|
|
775
|
+
logger.trace('[SDK_KEY] AGENTUITY_SDK_KEY not found in any file');
|
|
772
776
|
}
|
|
773
777
|
|
|
774
778
|
export function getCatalystAPIClient(
|
|
775
779
|
logger: Logger,
|
|
776
780
|
auth: AuthData,
|
|
777
781
|
region: string,
|
|
778
|
-
orgId?: string
|
|
782
|
+
orgId?: string,
|
|
783
|
+
config?: Config | null
|
|
779
784
|
) {
|
|
780
|
-
const catalystUrl = getCatalystUrl(region);
|
|
785
|
+
const catalystUrl = getCatalystUrl(region, config?.overrides);
|
|
781
786
|
const headers: Record<string, string> = {};
|
|
782
787
|
if (orgId) {
|
|
783
788
|
headers['x-agentuity-orgid'] = orgId;
|
|
@@ -857,7 +862,7 @@ export async function getGlobalCatalystAPIClient(
|
|
|
857
862
|
config?: Config | null
|
|
858
863
|
) {
|
|
859
864
|
const region = await getDefaultRegion(profileName, config);
|
|
860
|
-
return getCatalystAPIClient(logger, auth, region, orgId);
|
|
865
|
+
return getCatalystAPIClient(logger, auth, region, orgId, config);
|
|
861
866
|
}
|
|
862
867
|
|
|
863
868
|
export function getIONHost(config: Config | null, region: string) {
|
package/src/domain.ts
CHANGED
|
@@ -54,7 +54,7 @@ export function isPending(x: DNSResult): x is DNSPending {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
export function isSuccess(x: DNSResult): x is DNSSuccess {
|
|
57
|
-
return x.success
|
|
57
|
+
return x.success === true && !('pending' in x) && !('error' in x) && !('misconfigured' in x);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
const timeoutMs = 5000;
|
|
@@ -195,8 +195,8 @@ export async function checkCustomDomainForDNS(
|
|
|
195
195
|
if (timeoutId) clearTimeout(timeoutId);
|
|
196
196
|
});
|
|
197
197
|
|
|
198
|
-
|
|
199
|
-
|
|
198
|
+
if (result) {
|
|
199
|
+
if (result === proxy) {
|
|
200
200
|
// DNS is correct — verify TLS certificate (also triggers Let's Encrypt provisioning)
|
|
201
201
|
const tlsValid = await checkTLSCertificate(domain);
|
|
202
202
|
if (tlsValid) {
|
package/src/schema-generator.ts
CHANGED
|
@@ -290,7 +290,7 @@ function extractSubcommandSchema(def: SubcommandDefinition): SchemaCommand {
|
|
|
290
290
|
* Generate JSON schema for the entire CLI
|
|
291
291
|
*/
|
|
292
292
|
export function generateCLISchema(
|
|
293
|
-
|
|
293
|
+
_program: Command,
|
|
294
294
|
commands: CommandDefinition[],
|
|
295
295
|
version: string
|
|
296
296
|
): CLISchema {
|
package/src/schema-parser.ts
CHANGED
|
@@ -113,6 +113,34 @@ function getShape(schema: ZodType): Record<string, unknown> {
|
|
|
113
113
|
return { ...leftShape, ...rightShape };
|
|
114
114
|
}
|
|
115
115
|
|
|
116
|
+
if (typeId === 'ZodTuple' || typeId === 'tuple') {
|
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
118
|
+
const items = (unwrapped as any)._def?.items as unknown[];
|
|
119
|
+
if (Array.isArray(items)) {
|
|
120
|
+
const result: Record<string, unknown> = {};
|
|
121
|
+
for (let i = 0; i < items.length; i++) {
|
|
122
|
+
const item = items[i] as ZodTypeInternal;
|
|
123
|
+
// Try to extract a name from the description — check the item directly (Zod 4),
|
|
124
|
+
// the _def (Zod 3), and the unwrapped inner schema
|
|
125
|
+
const desc =
|
|
126
|
+
(item as unknown as { description?: string })?.description ||
|
|
127
|
+
item?._def?.description ||
|
|
128
|
+
(unwrapSchema(item) as ZodTypeInternal)?._def?.description ||
|
|
129
|
+
(unwrapSchema(item) as unknown as { description?: string })?.description;
|
|
130
|
+
let name = `arg${i}`;
|
|
131
|
+
if (desc) {
|
|
132
|
+
// Slugify: lowercase, replace non-alphanumeric with dashes, trim
|
|
133
|
+
name = desc
|
|
134
|
+
.toLowerCase()
|
|
135
|
+
.replace(/[^a-z0-9]+/g, '-')
|
|
136
|
+
.replace(/^-|-$/g, '');
|
|
137
|
+
}
|
|
138
|
+
result[name] = item;
|
|
139
|
+
}
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
|
|
116
144
|
return {};
|
|
117
145
|
}
|
|
118
146
|
|
|
@@ -371,11 +399,26 @@ export function buildValidationInput(
|
|
|
371
399
|
const result = { args: {} as Record<string, unknown>, options: {} as Record<string, unknown> };
|
|
372
400
|
|
|
373
401
|
if (schemas.args) {
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
402
|
+
// Check if the schema is a tuple — tuples need array input, not object
|
|
403
|
+
const unwrapped = unwrapSchema(schemas.args) as ZodTypeInternal;
|
|
404
|
+
const typeId = unwrapped?._def?.typeName || unwrapped?._def?.type;
|
|
405
|
+
if (typeId === 'ZodTuple' || typeId === 'tuple') {
|
|
406
|
+
// Tuple schemas — map each item to a named key from the schema
|
|
407
|
+
// (rawArgs may include trailing Commander.js options object)
|
|
408
|
+
const parsed = parseArgsSchema(schemas.args);
|
|
409
|
+
for (let i = 0; i < parsed.names.length; i++) {
|
|
410
|
+
const name = parsed.names[i];
|
|
411
|
+
if (name !== undefined) {
|
|
412
|
+
result.args[name] = rawArgs[i];
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
} else {
|
|
416
|
+
const parsed = parseArgsSchema(schemas.args);
|
|
417
|
+
for (let i = 0; i < parsed.names.length; i++) {
|
|
418
|
+
const name = parsed.names[i];
|
|
419
|
+
if (name !== undefined) {
|
|
420
|
+
result.args[name] = rawArgs[i];
|
|
421
|
+
}
|
|
379
422
|
}
|
|
380
423
|
}
|
|
381
424
|
}
|
|
@@ -421,7 +464,7 @@ export async function buildValidationInputAsync(
|
|
|
421
464
|
if (schemas.options && !options?.usesStdin) {
|
|
422
465
|
// Use getShape() instead of parseOptionsSchema() to avoid re-evaluating function defaults
|
|
423
466
|
const shape = getShape(schemas.options);
|
|
424
|
-
const hasConfirmOption = Object.
|
|
467
|
+
const hasConfirmOption = Object.hasOwn(shape, 'confirm');
|
|
425
468
|
const confirmValue = result.options.confirm;
|
|
426
469
|
|
|
427
470
|
if (hasConfirmOption && confirmValue === undefined) {
|
package/src/terminal.ts
CHANGED
|
@@ -31,9 +31,8 @@ export async function detectColorScheme(): Promise<ColorScheme> {
|
|
|
31
31
|
`[DEBUG] OSC 11 response: rgb(${bgColor.r},${bgColor.g},${bgColor.b}), luminance: ${luminance.toFixed(2)}, scheme: ${scheme}`
|
|
32
32
|
);
|
|
33
33
|
return scheme;
|
|
34
|
-
} else {
|
|
35
|
-
if (debug) console.log('[DEBUG] OSC 11 query timed out or no response');
|
|
36
34
|
}
|
|
35
|
+
if (debug) console.log('[DEBUG] OSC 11 query timed out or no response');
|
|
37
36
|
} catch (error) {
|
|
38
37
|
if (debug) console.log('[DEBUG] OSC 11 query failed:', error);
|
|
39
38
|
}
|
|
@@ -44,8 +43,8 @@ export async function detectColorScheme(): Promise<ColorScheme> {
|
|
|
44
43
|
// COLORFGBG format is "foreground;background"
|
|
45
44
|
// This is unreliable but better than nothing
|
|
46
45
|
const parts = process.env.COLORFGBG.split(';');
|
|
47
|
-
const fg = parseInt(parts[0] || '7', 10);
|
|
48
|
-
const bg = parseInt(parts[1] || '0', 10);
|
|
46
|
+
const fg = Number.parseInt(parts[0] || '7', 10);
|
|
47
|
+
const bg = Number.parseInt(parts[1] || '0', 10);
|
|
49
48
|
|
|
50
49
|
// Heuristic: if background is 0 (black) and foreground is light (>=7), it's likely dark mode
|
|
51
50
|
// if background is light (>=7) and foreground is dark (<7), it's likely light mode
|
|
@@ -88,7 +87,6 @@ async function queryTerminalBackground(): Promise<RGBColor | null> {
|
|
|
88
87
|
// Pattern 1: ESC ] 11 ; rgb:RRRR/GGGG/BBBB ESC \ (xterm with ESC \ terminator)
|
|
89
88
|
// Pattern 2: ESC ] 11 ; rgb:RRRR/GGGG/BBBB BEL (xterm with BEL terminator)
|
|
90
89
|
// The color values can be 8-bit (RR), 12-bit (RRR), or 16-bit (RRRR)
|
|
91
|
-
// biome-ignore lint/suspicious/noControlCharactersInRegex: Control characters needed for ANSI escape sequences
|
|
92
90
|
const match = response.match(
|
|
93
91
|
// eslint-disable-next-line no-control-regex
|
|
94
92
|
/\x1b\]11;rgb:([0-9a-f]+)\/([0-9a-f]+)\/([0-9a-f]+)(?:\x1b\\|\x07)/i
|
|
@@ -103,14 +101,14 @@ async function queryTerminalBackground(): Promise<RGBColor | null> {
|
|
|
103
101
|
if (!hex) return 0;
|
|
104
102
|
if (hex.length === 4) {
|
|
105
103
|
// 16-bit: RRRR -> take first 2 chars
|
|
106
|
-
return parseInt(hex.slice(0, 2), 16);
|
|
107
|
-
}
|
|
104
|
+
return Number.parseInt(hex.slice(0, 2), 16);
|
|
105
|
+
}
|
|
106
|
+
if (hex.length === 3) {
|
|
108
107
|
// 12-bit: RRR -> take first 2 chars
|
|
109
|
-
return parseInt(hex.slice(0, 2), 16);
|
|
110
|
-
} else {
|
|
111
|
-
// 8-bit: RR
|
|
112
|
-
return parseInt(hex, 16);
|
|
108
|
+
return Number.parseInt(hex.slice(0, 2), 16);
|
|
113
109
|
}
|
|
110
|
+
// 8-bit: RR
|
|
111
|
+
return Number.parseInt(hex, 16);
|
|
114
112
|
};
|
|
115
113
|
|
|
116
114
|
const r = parseColorValue(match[1]);
|
|
@@ -145,9 +143,9 @@ function calculateLuminance(color: RGBColor): number {
|
|
|
145
143
|
const gsRGB = color.g / 255;
|
|
146
144
|
const bsRGB = color.b / 255;
|
|
147
145
|
|
|
148
|
-
const r = rsRGB <= 0.03928 ? rsRGB / 12.92 :
|
|
149
|
-
const g = gsRGB <= 0.03928 ? gsRGB / 12.92 :
|
|
150
|
-
const b = bsRGB <= 0.03928 ? bsRGB / 12.92 :
|
|
146
|
+
const r = rsRGB <= 0.03928 ? rsRGB / 12.92 : ((rsRGB + 0.055) / 1.055) ** 2.4;
|
|
147
|
+
const g = gsRGB <= 0.03928 ? gsRGB / 12.92 : ((gsRGB + 0.055) / 1.055) ** 2.4;
|
|
148
|
+
const b = bsRGB <= 0.03928 ? bsRGB / 12.92 : ((bsRGB + 0.055) / 1.055) ** 2.4;
|
|
151
149
|
|
|
152
150
|
return 0.2126 * r + 0.7152 * g + 0.0722 * b;
|
|
153
151
|
}
|
package/src/tui.ts
CHANGED
|
@@ -130,7 +130,7 @@ export function getTerminalWidth(defaultWidth = 80): number {
|
|
|
130
130
|
}
|
|
131
131
|
if (process.env.COLUMNS) {
|
|
132
132
|
const cols = parseInt(process.env.COLUMNS, 10);
|
|
133
|
-
if (!isNaN(cols) && cols > 0) {
|
|
133
|
+
if (!Number.isNaN(cols) && cols > 0) {
|
|
134
134
|
return cols;
|
|
135
135
|
}
|
|
136
136
|
}
|
package/src/types.ts
CHANGED
|
@@ -716,6 +716,50 @@ export type SubcommandDefinition =
|
|
|
716
716
|
optional?: Optional & { auth?: never };
|
|
717
717
|
});
|
|
718
718
|
|
|
719
|
+
const TemplateResourceSchema = zod.object({
|
|
720
|
+
type: zod.enum(['database', 'queue']).describe('the type of resource required'),
|
|
721
|
+
envVar: zod
|
|
722
|
+
.string()
|
|
723
|
+
.describe('the environment variable that holds the resource connection info'),
|
|
724
|
+
description: zod.string().optional().describe('human-readable description of the resource'),
|
|
725
|
+
defaultName: zod
|
|
726
|
+
.string()
|
|
727
|
+
.optional()
|
|
728
|
+
.describe('suggested default name when provisioning this resource'),
|
|
729
|
+
queueType: zod
|
|
730
|
+
.enum(['worker', 'pubsub'])
|
|
731
|
+
.optional()
|
|
732
|
+
.describe('queue type — required when type is "queue"'),
|
|
733
|
+
});
|
|
734
|
+
|
|
735
|
+
const TemplateEnvSchema = zod.object({
|
|
736
|
+
key: zod.string().describe('the environment variable name'),
|
|
737
|
+
required: zod.boolean().describe('whether this env var is required'),
|
|
738
|
+
description: zod.string().optional().describe('human-readable description'),
|
|
739
|
+
secret: zod.boolean().optional().describe('whether this env var is a secret'),
|
|
740
|
+
defaultValue: zod.string().optional().describe('default or example value'),
|
|
741
|
+
});
|
|
742
|
+
|
|
743
|
+
const TemplateSchema = zod.object({
|
|
744
|
+
source: zod
|
|
745
|
+
.string()
|
|
746
|
+
.optional()
|
|
747
|
+
.describe('where the template came from (e.g. github.com/owner/repo)'),
|
|
748
|
+
requirements: zod
|
|
749
|
+
.object({
|
|
750
|
+
resources: zod
|
|
751
|
+
.array(TemplateResourceSchema)
|
|
752
|
+
.optional()
|
|
753
|
+
.describe('platform resources the project needs'),
|
|
754
|
+
env: zod
|
|
755
|
+
.array(TemplateEnvSchema)
|
|
756
|
+
.optional()
|
|
757
|
+
.describe('environment variables the project needs'),
|
|
758
|
+
})
|
|
759
|
+
.optional()
|
|
760
|
+
.describe('what the template requires to run'),
|
|
761
|
+
});
|
|
762
|
+
|
|
719
763
|
export const ProjectSchema = zod.object({
|
|
720
764
|
projectId: zod.string().describe('the project id'),
|
|
721
765
|
orgId: zod.string().describe('the organization id'),
|
|
@@ -726,6 +770,7 @@ export const ProjectSchema = zod.object({
|
|
|
726
770
|
.boolean()
|
|
727
771
|
.optional()
|
|
728
772
|
.describe('whether to skip the git integration setup prompt during deploy'),
|
|
773
|
+
template: TemplateSchema.optional().describe('template metadata and requirements'),
|
|
729
774
|
});
|
|
730
775
|
|
|
731
776
|
export const BuildMetadataSchema = ServerBuildMetadataSchema;
|
package/src/utils/date.ts
CHANGED
|
@@ -19,7 +19,7 @@ export function parseExpiresAt(input: string): string {
|
|
|
19
19
|
if (input.includes('T') || input.includes('-')) {
|
|
20
20
|
// Validate it's a valid date
|
|
21
21
|
const date = new Date(input);
|
|
22
|
-
if (isNaN(date.getTime())) {
|
|
22
|
+
if (Number.isNaN(date.getTime())) {
|
|
23
23
|
throw new InvalidDateFormatError({ input, message: `Invalid date format: ${input}` });
|
|
24
24
|
}
|
|
25
25
|
return date.toISOString();
|