@agentuity/cli 0.1.8 → 0.1.10
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/README.md +2 -2
- package/bin/cli.ts +8 -0
- package/dist/cache/index.d.ts +2 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +2 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/resource-region.d.ts +46 -0
- package/dist/cache/resource-region.d.ts.map +1 -0
- package/dist/cache/resource-region.js +115 -0
- package/dist/cache/resource-region.js.map +1 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +44 -18
- package/dist/cli.js.map +1 -1
- package/dist/cmd/ai/capabilities/show.d.ts.map +1 -1
- package/dist/cmd/ai/capabilities/show.js +12 -15
- package/dist/cmd/ai/capabilities/show.js.map +1 -1
- package/dist/cmd/ai/prompt/llm.js +5 -5
- package/dist/cmd/ai/prompt/llm.js.map +1 -1
- package/dist/cmd/ai/skills/generator.d.ts.map +1 -1
- package/dist/cmd/ai/skills/generator.js +9 -1
- package/dist/cmd/ai/skills/generator.js.map +1 -1
- package/dist/cmd/auth/logout.d.ts.map +1 -1
- package/dist/cmd/auth/logout.js +5 -2
- package/dist/cmd/auth/logout.js.map +1 -1
- package/dist/cmd/build/ast.d.ts.map +1 -1
- package/dist/cmd/build/ast.js +87 -1
- package/dist/cmd/build/ast.js.map +1 -1
- package/dist/cmd/build/vite/metadata-generator.js +1 -1
- package/dist/cmd/build/vite/metadata-generator.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server-config.js +8 -3
- package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-asset-server.js +5 -3
- package/dist/cmd/build/vite/vite-asset-server.js.map +1 -1
- package/dist/cmd/cloud/db/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/db/delete.js +69 -11
- 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 +23 -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 +15 -7
- 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 +24 -4
- package/dist/cmd/cloud/db/logs.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +50 -1
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/cloud/env/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/env/delete.js +30 -13
- package/dist/cmd/cloud/env/delete.js.map +1 -1
- package/dist/cmd/cloud/env/get.d.ts.map +1 -1
- package/dist/cmd/cloud/env/get.js +27 -30
- package/dist/cmd/cloud/env/get.js.map +1 -1
- package/dist/cmd/cloud/env/import.d.ts.map +1 -1
- package/dist/cmd/cloud/env/import.js +41 -48
- package/dist/cmd/cloud/env/import.js.map +1 -1
- package/dist/cmd/cloud/env/index.d.ts.map +1 -1
- package/dist/cmd/cloud/env/index.js +6 -2
- package/dist/cmd/cloud/env/index.js.map +1 -1
- package/dist/cmd/cloud/env/list.d.ts.map +1 -1
- package/dist/cmd/cloud/env/list.js +51 -28
- package/dist/cmd/cloud/env/list.js.map +1 -1
- package/dist/cmd/cloud/env/pull.d.ts.map +1 -1
- package/dist/cmd/cloud/env/pull.js +3 -3
- package/dist/cmd/cloud/env/pull.js.map +1 -1
- package/dist/cmd/cloud/env/push.d.ts.map +1 -1
- package/dist/cmd/cloud/env/push.js +31 -11
- package/dist/cmd/cloud/env/push.js.map +1 -1
- package/dist/cmd/cloud/env/set.d.ts.map +1 -1
- package/dist/cmd/cloud/env/set.js +41 -26
- package/dist/cmd/cloud/env/set.js.map +1 -1
- package/dist/cmd/cloud/index.d.ts.map +1 -1
- package/dist/cmd/cloud/index.js +0 -2
- package/dist/cmd/cloud/index.js.map +1 -1
- package/dist/cmd/cloud/region-lookup.d.ts +18 -0
- package/dist/cmd/cloud/region-lookup.d.ts.map +1 -0
- package/dist/cmd/cloud/region-lookup.js +64 -0
- package/dist/cmd/cloud/region-lookup.js.map +1 -0
- package/dist/cmd/cloud/sandbox/cp.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/cp.js +5 -3
- package/dist/cmd/cloud/sandbox/cp.js.map +1 -1
- package/dist/cmd/cloud/sandbox/create.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/create.js +54 -2
- package/dist/cmd/cloud/sandbox/create.js.map +1 -1
- package/dist/cmd/cloud/sandbox/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/delete.js +5 -3
- package/dist/cmd/cloud/sandbox/delete.js.map +1 -1
- package/dist/cmd/cloud/sandbox/download.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/download.js +4 -3
- package/dist/cmd/cloud/sandbox/download.js.map +1 -1
- package/dist/cmd/cloud/sandbox/env.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/env.js +4 -3
- package/dist/cmd/cloud/sandbox/env.js.map +1 -1
- package/dist/cmd/cloud/sandbox/exec.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/exec.js +4 -3
- package/dist/cmd/cloud/sandbox/exec.js.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/index.js +1 -1
- package/dist/cmd/cloud/sandbox/execution/index.js.map +1 -1
- package/dist/cmd/cloud/sandbox/execution/list.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/execution/list.js +4 -3
- package/dist/cmd/cloud/sandbox/execution/list.js.map +1 -1
- package/dist/cmd/cloud/sandbox/get.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/get.js +26 -4
- package/dist/cmd/cloud/sandbox/get.js.map +1 -1
- package/dist/cmd/cloud/sandbox/index.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/index.js +3 -1
- package/dist/cmd/cloud/sandbox/index.js.map +1 -1
- package/dist/cmd/cloud/sandbox/list.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/list.js +16 -9
- package/dist/cmd/cloud/sandbox/list.js.map +1 -1
- package/dist/cmd/cloud/sandbox/ls.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/ls.js +4 -3
- package/dist/cmd/cloud/sandbox/ls.js.map +1 -1
- package/dist/cmd/cloud/sandbox/mkdir.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/mkdir.js +4 -3
- package/dist/cmd/cloud/sandbox/mkdir.js.map +1 -1
- package/dist/cmd/cloud/sandbox/rm.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/rm.js +4 -3
- package/dist/cmd/cloud/sandbox/rm.js.map +1 -1
- package/dist/cmd/cloud/sandbox/rmdir.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/rmdir.js +4 -3
- package/dist/cmd/cloud/sandbox/rmdir.js.map +1 -1
- package/dist/cmd/cloud/sandbox/run.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/run.js +51 -2
- package/dist/cmd/cloud/sandbox/run.js.map +1 -1
- package/dist/cmd/cloud/sandbox/runtime/index.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/runtime/index.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/runtime/index.js +19 -0
- package/dist/cmd/cloud/sandbox/runtime/index.js.map +1 -0
- package/dist/cmd/cloud/sandbox/runtime/list.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/runtime/list.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/runtime/list.js +68 -0
- package/dist/cmd/cloud/sandbox/runtime/list.js.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/create.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/create.js +41 -8
- package/dist/cmd/cloud/sandbox/snapshot/create.js.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.js +5 -5
- package/dist/cmd/cloud/sandbox/snapshot/get.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/index.js +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/index.js.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/list.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/snapshot/list.js +8 -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 +14 -4
- package/dist/cmd/cloud/sandbox/snapshot/tag.js.map +1 -1
- package/dist/cmd/cloud/sandbox/upload.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/upload.js +4 -3
- package/dist/cmd/cloud/sandbox/upload.js.map +1 -1
- package/dist/cmd/cloud/sandbox/util.d.ts +13 -0
- package/dist/cmd/cloud/sandbox/util.d.ts.map +1 -1
- package/dist/cmd/cloud/sandbox/util.js +40 -1
- package/dist/cmd/cloud/sandbox/util.js.map +1 -1
- package/dist/cmd/cloud/scp/download.d.ts.map +1 -1
- package/dist/cmd/cloud/scp/download.js +6 -2
- package/dist/cmd/cloud/scp/download.js.map +1 -1
- package/dist/cmd/cloud/scp/upload.d.ts.map +1 -1
- package/dist/cmd/cloud/scp/upload.js +6 -2
- package/dist/cmd/cloud/scp/upload.js.map +1 -1
- package/dist/cmd/cloud/session/get.js +4 -4
- package/dist/cmd/cloud/session/get.js.map +1 -1
- package/dist/cmd/cloud/session/list.js +4 -4
- package/dist/cmd/cloud/session/list.js.map +1 -1
- package/dist/cmd/cloud/ssh.d.ts.map +1 -1
- package/dist/cmd/cloud/ssh.js +7 -2
- package/dist/cmd/cloud/ssh.js.map +1 -1
- package/dist/cmd/cloud/storage/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/delete.js +46 -10
- 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 +19 -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 +19 -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 +17 -7
- 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 +19 -6
- package/dist/cmd/cloud/storage/upload.js.map +1 -1
- package/dist/cmd/cloud/thread/delete.js +4 -4
- package/dist/cmd/cloud/thread/delete.js.map +1 -1
- package/dist/cmd/cloud/thread/get.js +4 -4
- package/dist/cmd/cloud/thread/get.js.map +1 -1
- package/dist/cmd/cloud/thread/list.js +4 -4
- package/dist/cmd/cloud/thread/list.js.map +1 -1
- package/dist/cmd/project/auth/init.d.ts.map +1 -1
- package/dist/cmd/project/auth/init.js +6 -3
- package/dist/cmd/project/auth/init.js.map +1 -1
- package/dist/cmd/project/auth/shared.d.ts +6 -2
- package/dist/cmd/project/auth/shared.d.ts.map +1 -1
- package/dist/cmd/project/auth/shared.js +40 -12
- package/dist/cmd/project/auth/shared.js.map +1 -1
- package/dist/config.d.ts +37 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +61 -8
- package/dist/config.js.map +1 -1
- package/dist/env-util.d.ts +25 -2
- package/dist/env-util.d.ts.map +1 -1
- package/dist/env-util.js +44 -4
- package/dist/env-util.js.map +1 -1
- package/dist/utils/apt-validator.d.ts +20 -0
- package/dist/utils/apt-validator.d.ts.map +1 -0
- package/dist/utils/apt-validator.js +157 -0
- package/dist/utils/apt-validator.js.map +1 -0
- package/package.json +6 -6
- package/src/cache/index.ts +11 -0
- package/src/cache/resource-region.ts +183 -0
- package/src/cli.ts +51 -17
- package/src/cmd/ai/capabilities/show.ts +12 -15
- package/src/cmd/ai/prompt/llm.ts +5 -5
- package/src/cmd/ai/skills/generator.ts +9 -1
- package/src/cmd/auth/logout.ts +5 -2
- package/src/cmd/build/ast.ts +160 -1
- package/src/cmd/build/vite/metadata-generator.ts +1 -1
- package/src/cmd/build/vite/vite-asset-server-config.ts +7 -3
- package/src/cmd/build/vite/vite-asset-server.ts +6 -3
- package/src/cmd/cloud/db/delete.ts +83 -11
- package/src/cmd/cloud/db/get.ts +29 -7
- package/src/cmd/cloud/db/list.ts +16 -7
- package/src/cmd/cloud/db/logs.ts +33 -4
- package/src/cmd/cloud/deploy.ts +63 -0
- package/src/cmd/cloud/env/delete.ts +36 -12
- package/src/cmd/cloud/env/get.ts +28 -27
- package/src/cmd/cloud/env/import.ts +43 -56
- package/src/cmd/cloud/env/index.ts +6 -2
- package/src/cmd/cloud/env/list.ts +57 -30
- package/src/cmd/cloud/env/pull.ts +9 -3
- package/src/cmd/cloud/env/push.ts +44 -11
- package/src/cmd/cloud/env/set.ts +49 -30
- package/src/cmd/cloud/index.ts +0 -2
- package/src/cmd/cloud/region-lookup.ts +89 -0
- package/src/cmd/cloud/sandbox/cp.ts +5 -3
- package/src/cmd/cloud/sandbox/create.ts +61 -2
- package/src/cmd/cloud/sandbox/delete.ts +6 -3
- package/src/cmd/cloud/sandbox/download.ts +4 -3
- package/src/cmd/cloud/sandbox/env.ts +4 -3
- package/src/cmd/cloud/sandbox/exec.ts +4 -3
- package/src/cmd/cloud/sandbox/execution/get.ts +4 -4
- package/src/cmd/cloud/sandbox/execution/index.ts +1 -1
- package/src/cmd/cloud/sandbox/execution/list.ts +4 -3
- package/src/cmd/cloud/sandbox/get.ts +27 -4
- package/src/cmd/cloud/sandbox/index.ts +3 -1
- package/src/cmd/cloud/sandbox/list.ts +16 -9
- package/src/cmd/cloud/sandbox/ls.ts +4 -3
- package/src/cmd/cloud/sandbox/mkdir.ts +4 -3
- package/src/cmd/cloud/sandbox/rm.ts +4 -3
- package/src/cmd/cloud/sandbox/rmdir.ts +4 -3
- package/src/cmd/cloud/sandbox/run.ts +58 -2
- package/src/cmd/cloud/sandbox/runtime/index.ts +20 -0
- package/src/cmd/cloud/sandbox/runtime/list.ts +75 -0
- package/src/cmd/cloud/sandbox/snapshot/create.ts +53 -8
- package/src/cmd/cloud/sandbox/snapshot/delete.ts +4 -4
- package/src/cmd/cloud/sandbox/snapshot/get.ts +5 -5
- package/src/cmd/cloud/sandbox/snapshot/index.ts +1 -1
- package/src/cmd/cloud/sandbox/snapshot/list.ts +8 -4
- package/src/cmd/cloud/sandbox/snapshot/tag.ts +20 -4
- package/src/cmd/cloud/sandbox/upload.ts +4 -3
- package/src/cmd/cloud/sandbox/util.ts +60 -1
- package/src/cmd/cloud/scp/download.ts +14 -2
- package/src/cmd/cloud/scp/upload.ts +14 -2
- package/src/cmd/cloud/session/get.ts +4 -4
- package/src/cmd/cloud/session/list.ts +4 -4
- package/src/cmd/cloud/ssh.ts +15 -2
- package/src/cmd/cloud/storage/delete.ts +61 -10
- package/src/cmd/cloud/storage/download.ts +31 -6
- package/src/cmd/cloud/storage/get.ts +31 -6
- package/src/cmd/cloud/storage/list.ts +18 -7
- package/src/cmd/cloud/storage/upload.ts +31 -6
- package/src/cmd/cloud/thread/delete.ts +4 -4
- package/src/cmd/cloud/thread/get.ts +4 -4
- package/src/cmd/cloud/thread/list.ts +4 -4
- package/src/cmd/project/auth/init.ts +7 -3
- package/src/cmd/project/auth/shared.ts +52 -13
- package/src/config.ts +74 -8
- package/src/env-util.ts +50 -5
- package/src/utils/apt-validator.ts +215 -0
- package/dist/cmd/cloud/secret/delete.d.ts +0 -2
- package/dist/cmd/cloud/secret/delete.d.ts.map +0 -1
- package/dist/cmd/cloud/secret/delete.js +0 -53
- package/dist/cmd/cloud/secret/delete.js.map +0 -1
- package/dist/cmd/cloud/secret/get.d.ts +0 -2
- package/dist/cmd/cloud/secret/get.d.ts.map +0 -1
- package/dist/cmd/cloud/secret/get.js +0 -73
- package/dist/cmd/cloud/secret/get.js.map +0 -1
- package/dist/cmd/cloud/secret/import.d.ts +0 -2
- package/dist/cmd/cloud/secret/import.d.ts.map +0 -1
- package/dist/cmd/cloud/secret/import.js +0 -91
- package/dist/cmd/cloud/secret/import.js.map +0 -1
- package/dist/cmd/cloud/secret/index.d.ts +0 -3
- package/dist/cmd/cloud/secret/index.d.ts.map +0 -1
- package/dist/cmd/cloud/secret/index.js +0 -33
- package/dist/cmd/cloud/secret/index.js.map +0 -1
- package/dist/cmd/cloud/secret/list.d.ts +0 -2
- package/dist/cmd/cloud/secret/list.d.ts.map +0 -1
- package/dist/cmd/cloud/secret/list.js +0 -65
- package/dist/cmd/cloud/secret/list.js.map +0 -1
- package/dist/cmd/cloud/secret/pull.d.ts +0 -2
- package/dist/cmd/cloud/secret/pull.d.ts.map +0 -1
- package/dist/cmd/cloud/secret/pull.js +0 -82
- package/dist/cmd/cloud/secret/pull.js.map +0 -1
- package/dist/cmd/cloud/secret/push.d.ts +0 -2
- package/dist/cmd/cloud/secret/push.d.ts.map +0 -1
- package/dist/cmd/cloud/secret/push.js +0 -61
- package/dist/cmd/cloud/secret/push.js.map +0 -1
- package/dist/cmd/cloud/secret/set.d.ts +0 -2
- package/dist/cmd/cloud/secret/set.d.ts.map +0 -1
- package/dist/cmd/cloud/secret/set.js +0 -63
- package/dist/cmd/cloud/secret/set.js.map +0 -1
- package/src/cmd/cloud/secret/delete.ts +0 -65
- package/src/cmd/cloud/secret/get.ts +0 -77
- package/src/cmd/cloud/secret/import.ts +0 -110
- package/src/cmd/cloud/secret/index.ts +0 -33
- package/src/cmd/cloud/secret/list.ts +0 -70
- package/src/cmd/cloud/secret/pull.ts +0 -92
- package/src/cmd/cloud/secret/push.ts +0 -69
- package/src/cmd/cloud/secret/set.ts +0 -76
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { join } from 'node:path';
|
|
3
|
-
import { createSubcommand } from '../../../types';
|
|
4
|
-
import * as tui from '../../../tui';
|
|
5
|
-
import { projectGet } from '@agentuity/server';
|
|
6
|
-
import { findExistingEnvFile, readEnvFile, writeEnvFile, mergeEnvVars } from '../../../env-util';
|
|
7
|
-
import { getCommand } from '../../../command-prefix';
|
|
8
|
-
|
|
9
|
-
const SecretPullResponseSchema = z.object({
|
|
10
|
-
success: z.boolean().describe('Whether pull succeeded'),
|
|
11
|
-
pulled: z.number().describe('Number of items pulled'),
|
|
12
|
-
path: z.string().describe('Local file path where secrets were saved'),
|
|
13
|
-
force: z.boolean().describe('Whether force mode was used'),
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
export const pullSubcommand = createSubcommand({
|
|
17
|
-
name: 'pull',
|
|
18
|
-
description: 'Pull secrets from cloud to local .env file',
|
|
19
|
-
tags: ['slow', 'requires-auth', 'requires-project'],
|
|
20
|
-
idempotent: true,
|
|
21
|
-
examples: [
|
|
22
|
-
{ command: getCommand('secret pull'), description: 'Run pull command' },
|
|
23
|
-
{ command: getCommand('secret pull --force'), description: 'Use force option' },
|
|
24
|
-
],
|
|
25
|
-
requires: { auth: true, project: true, apiClient: true },
|
|
26
|
-
prerequisites: ['cloud deploy'],
|
|
27
|
-
schema: {
|
|
28
|
-
options: z.object({
|
|
29
|
-
force: z.boolean().default(false).describe('overwrite local values with cloud values'),
|
|
30
|
-
}),
|
|
31
|
-
response: SecretPullResponseSchema,
|
|
32
|
-
},
|
|
33
|
-
|
|
34
|
-
async handler(ctx) {
|
|
35
|
-
const { opts, apiClient, project, projectDir } = ctx;
|
|
36
|
-
|
|
37
|
-
// Fetch project with unmasked secrets
|
|
38
|
-
const projectData = await tui.spinner('Pulling secrets from cloud', () => {
|
|
39
|
-
return projectGet(apiClient, { id: project.projectId, mask: false });
|
|
40
|
-
});
|
|
41
|
-
|
|
42
|
-
const cloudSecrets = { ...projectData.env, ...projectData.secrets }; // secret pull with actually do both secrets and env since thats likely what the user would want
|
|
43
|
-
|
|
44
|
-
// Target file is always .env
|
|
45
|
-
const targetEnvPath = await findExistingEnvFile(projectDir);
|
|
46
|
-
const localEnv = await readEnvFile(targetEnvPath);
|
|
47
|
-
|
|
48
|
-
// Merge: cloud values override local if force=true, otherwise keep local
|
|
49
|
-
let mergedEnv: Record<string, string>;
|
|
50
|
-
if (opts?.force) {
|
|
51
|
-
// Cloud values take priority
|
|
52
|
-
mergedEnv = mergeEnvVars(localEnv, cloudSecrets);
|
|
53
|
-
} else {
|
|
54
|
-
// Local values take priority (only add new keys from cloud)
|
|
55
|
-
mergedEnv = mergeEnvVars(cloudSecrets, localEnv);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
// Write to .env (skip AGENTUITY_ keys)
|
|
59
|
-
await writeEnvFile(targetEnvPath, mergedEnv, {
|
|
60
|
-
skipKeys: Object.keys(mergedEnv).filter((k) => k.startsWith('AGENTUITY_')),
|
|
61
|
-
});
|
|
62
|
-
|
|
63
|
-
// Write AGENTUITY_SDK_KEY to .env if present and missing locally
|
|
64
|
-
if (projectData.api_key) {
|
|
65
|
-
const dotEnvPath = join(projectDir, '.env');
|
|
66
|
-
const dotEnv = await readEnvFile(dotEnvPath);
|
|
67
|
-
|
|
68
|
-
if (!dotEnv.AGENTUITY_SDK_KEY) {
|
|
69
|
-
dotEnv.AGENTUITY_SDK_KEY = projectData.api_key;
|
|
70
|
-
await writeEnvFile(dotEnvPath, dotEnv, {
|
|
71
|
-
addComment: (key) => {
|
|
72
|
-
if (key === 'AGENTUITY_SDK_KEY') {
|
|
73
|
-
return 'AGENTUITY_SDK_KEY is a sensitive value and should not be committed to version control.';
|
|
74
|
-
}
|
|
75
|
-
return null;
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
tui.info(`Wrote AGENTUITY_SDK_KEY to ${dotEnvPath}`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
const count = Object.keys(cloudSecrets).length;
|
|
83
|
-
tui.success(`Pulled ${count} secret${count !== 1 ? 's' : ''} to ${targetEnvPath}`);
|
|
84
|
-
|
|
85
|
-
return {
|
|
86
|
-
success: true,
|
|
87
|
-
pulled: count,
|
|
88
|
-
path: targetEnvPath,
|
|
89
|
-
force: opts?.force ?? false,
|
|
90
|
-
};
|
|
91
|
-
},
|
|
92
|
-
});
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { createSubcommand } from '../../../types';
|
|
3
|
-
import * as tui from '../../../tui';
|
|
4
|
-
import { projectEnvUpdate } from '@agentuity/server';
|
|
5
|
-
import { findExistingEnvFile, readEnvFile, filterAgentuitySdkKeys } from '../../../env-util';
|
|
6
|
-
import { getCommand } from '../../../command-prefix';
|
|
7
|
-
|
|
8
|
-
const SecretPushResponseSchema = z.object({
|
|
9
|
-
success: z.boolean().describe('Whether push succeeded'),
|
|
10
|
-
pushed: z.number().describe('Number of items pushed'),
|
|
11
|
-
source: z.string().describe('Source file path'),
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
export const pushSubcommand = createSubcommand({
|
|
15
|
-
name: 'push',
|
|
16
|
-
description: 'Push secrets from local .env file to cloud',
|
|
17
|
-
tags: [
|
|
18
|
-
'mutating',
|
|
19
|
-
'updates-resource',
|
|
20
|
-
'slow',
|
|
21
|
-
'api-intensive',
|
|
22
|
-
'requires-auth',
|
|
23
|
-
'requires-project',
|
|
24
|
-
],
|
|
25
|
-
idempotent: true,
|
|
26
|
-
examples: [{ command: getCommand('secret push'), description: 'Run push command' }],
|
|
27
|
-
requires: { auth: true, project: true, apiClient: true },
|
|
28
|
-
prerequisites: ['secret set'],
|
|
29
|
-
schema: {
|
|
30
|
-
response: SecretPushResponseSchema,
|
|
31
|
-
},
|
|
32
|
-
|
|
33
|
-
async handler(ctx) {
|
|
34
|
-
const { apiClient, project, projectDir } = ctx;
|
|
35
|
-
|
|
36
|
-
// Read local env file
|
|
37
|
-
const envFilePath = await findExistingEnvFile(projectDir);
|
|
38
|
-
const localEnv = await readEnvFile(envFilePath);
|
|
39
|
-
|
|
40
|
-
// Filter out AGENTUITY_ prefixed keys (don't push SDK keys)
|
|
41
|
-
const filteredSecrets = filterAgentuitySdkKeys(localEnv);
|
|
42
|
-
|
|
43
|
-
if (Object.keys(filteredSecrets).length === 0) {
|
|
44
|
-
tui.warning('No secrets to push');
|
|
45
|
-
return {
|
|
46
|
-
success: false,
|
|
47
|
-
pushed: 0,
|
|
48
|
-
source: envFilePath,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Push to cloud (using secrets field)
|
|
53
|
-
await tui.spinner('Pushing secrets to cloud', () => {
|
|
54
|
-
return projectEnvUpdate(apiClient, {
|
|
55
|
-
id: project.projectId,
|
|
56
|
-
secrets: filteredSecrets,
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
const count = Object.keys(filteredSecrets).length;
|
|
61
|
-
tui.success(`Pushed ${count} secret${count !== 1 ? 's' : ''} to cloud`);
|
|
62
|
-
|
|
63
|
-
return {
|
|
64
|
-
success: true,
|
|
65
|
-
pushed: count,
|
|
66
|
-
source: envFilePath,
|
|
67
|
-
};
|
|
68
|
-
},
|
|
69
|
-
});
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { createSubcommand } from '../../../types';
|
|
3
|
-
import * as tui from '../../../tui';
|
|
4
|
-
import { projectEnvUpdate } from '@agentuity/server';
|
|
5
|
-
import {
|
|
6
|
-
findExistingEnvFile,
|
|
7
|
-
readEnvFile,
|
|
8
|
-
writeEnvFile,
|
|
9
|
-
filterAgentuitySdkKeys,
|
|
10
|
-
} from '../../../env-util';
|
|
11
|
-
import { getCommand } from '../../../command-prefix';
|
|
12
|
-
|
|
13
|
-
const SecretSetResponseSchema = z.object({
|
|
14
|
-
success: z.boolean().describe('Whether the operation succeeded'),
|
|
15
|
-
key: z.string().describe('Secret key name'),
|
|
16
|
-
path: z.string().describe('Local file path where secret was saved'),
|
|
17
|
-
});
|
|
18
|
-
|
|
19
|
-
export const setSubcommand = createSubcommand({
|
|
20
|
-
name: 'set',
|
|
21
|
-
description: 'Set a secret',
|
|
22
|
-
tags: ['mutating', 'updates-resource', 'slow', 'requires-auth', 'requires-project'],
|
|
23
|
-
idempotent: true,
|
|
24
|
-
examples: [
|
|
25
|
-
{
|
|
26
|
-
command: getCommand('secret set DATABASE_URL "postgres://user:pass@host:5432/db"'),
|
|
27
|
-
description: 'Set the DATABASE_URL environment secret',
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
command: getCommand('secret set STRIPE_SECRET_KEY "sk_live_..."'),
|
|
31
|
-
description: 'Set the STRIPE_SECRET_KEY environment secret',
|
|
32
|
-
},
|
|
33
|
-
],
|
|
34
|
-
requires: { auth: true, project: true, apiClient: true },
|
|
35
|
-
schema: {
|
|
36
|
-
args: z.object({
|
|
37
|
-
key: z.string().min(1, 'key must not be empty').describe('the secret key'),
|
|
38
|
-
value: z.string().min(1, 'value must not be empty').describe('the secret value'),
|
|
39
|
-
}),
|
|
40
|
-
response: SecretSetResponseSchema,
|
|
41
|
-
},
|
|
42
|
-
|
|
43
|
-
async handler(ctx) {
|
|
44
|
-
const { args, apiClient, project, projectDir } = ctx;
|
|
45
|
-
|
|
46
|
-
// Validate key doesn't start with AGENTUITY_
|
|
47
|
-
if (args.key.startsWith('AGENTUITY_')) {
|
|
48
|
-
tui.fatal('Cannot set AGENTUITY_ prefixed variables. These are reserved for system use.');
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// Set in cloud (using secrets field)
|
|
52
|
-
await tui.spinner('Setting secret in cloud', () => {
|
|
53
|
-
return projectEnvUpdate(apiClient, {
|
|
54
|
-
id: project.projectId,
|
|
55
|
-
secrets: { [args.key]: args.value },
|
|
56
|
-
});
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
// Update local .env file
|
|
60
|
-
const envFilePath = await findExistingEnvFile(projectDir);
|
|
61
|
-
const currentEnv = await readEnvFile(envFilePath);
|
|
62
|
-
currentEnv[args.key] = args.value;
|
|
63
|
-
|
|
64
|
-
// Filter out AGENTUITY_ keys before writing
|
|
65
|
-
const filteredEnv = filterAgentuitySdkKeys(currentEnv);
|
|
66
|
-
await writeEnvFile(envFilePath, filteredEnv);
|
|
67
|
-
|
|
68
|
-
tui.success(`Secret '${args.key}' set successfully (cloud + ${envFilePath})`);
|
|
69
|
-
|
|
70
|
-
return {
|
|
71
|
-
success: true,
|
|
72
|
-
key: args.key,
|
|
73
|
-
path: envFilePath,
|
|
74
|
-
};
|
|
75
|
-
},
|
|
76
|
-
});
|