@agentuity/cli 0.0.105 → 0.0.107
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/cli.d.ts.map +1 -1
- package/dist/cli.js +93 -21
- package/dist/cli.js.map +1 -1
- package/dist/cmd/build/ast.d.ts.map +1 -1
- package/dist/cmd/build/ast.js +130 -4
- package/dist/cmd/build/ast.js.map +1 -1
- package/dist/cmd/build/entry-generator.d.ts.map +1 -1
- package/dist/cmd/build/entry-generator.js +8 -2
- package/dist/cmd/build/entry-generator.js.map +1 -1
- package/dist/cmd/build/vite/metadata-generator.d.ts +2 -1
- package/dist/cmd/build/vite/metadata-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/metadata-generator.js +14 -0
- package/dist/cmd/build/vite/metadata-generator.js.map +1 -1
- package/dist/cmd/build/vite/registry-generator.d.ts.map +1 -1
- package/dist/cmd/build/vite/registry-generator.js +8 -9
- package/dist/cmd/build/vite/registry-generator.js.map +1 -1
- package/dist/cmd/build/vite/vite-builder.d.ts +2 -1
- package/dist/cmd/build/vite/vite-builder.d.ts.map +1 -1
- package/dist/cmd/build/vite/vite-builder.js +1 -0
- package/dist/cmd/build/vite/vite-builder.js.map +1 -1
- package/dist/cmd/build/vite-bundler.d.ts +2 -1
- package/dist/cmd/build/vite-bundler.d.ts.map +1 -1
- package/dist/cmd/build/vite-bundler.js +2 -1
- package/dist/cmd/build/vite-bundler.js.map +1 -1
- package/dist/cmd/cloud/db/create.d.ts.map +1 -1
- package/dist/cmd/cloud/db/create.js +11 -2
- 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 +13 -2
- package/dist/cmd/cloud/db/delete.js.map +1 -1
- package/dist/cmd/cloud/deploy.d.ts.map +1 -1
- package/dist/cmd/cloud/deploy.js +7 -42
- package/dist/cmd/cloud/deploy.js.map +1 -1
- package/dist/cmd/cloud/env/delete.js +1 -1
- package/dist/cmd/cloud/env/delete.js.map +1 -1
- package/dist/cmd/cloud/env/import.js +4 -4
- package/dist/cmd/cloud/env/import.js.map +1 -1
- package/dist/cmd/cloud/env/pull.d.ts.map +1 -1
- package/dist/cmd/cloud/env/pull.js +7 -9
- package/dist/cmd/cloud/env/pull.js.map +1 -1
- package/dist/cmd/cloud/env/push.js +2 -2
- package/dist/cmd/cloud/env/push.js.map +1 -1
- package/dist/cmd/cloud/env/set.js +3 -3
- 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 +2 -0
- package/dist/cmd/cloud/index.js.map +1 -1
- package/dist/cmd/cloud/sandbox/cp.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/cp.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/cp.js +334 -0
- package/dist/cmd/cloud/sandbox/cp.js.map +1 -0
- package/dist/cmd/cloud/sandbox/create.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/create.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/create.js +105 -0
- package/dist/cmd/cloud/sandbox/create.js.map +1 -0
- package/dist/cmd/cloud/sandbox/delete.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/delete.js +72 -0
- package/dist/cmd/cloud/sandbox/delete.js.map +1 -0
- package/dist/cmd/cloud/sandbox/exec.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/exec.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/exec.js +211 -0
- package/dist/cmd/cloud/sandbox/exec.js.map +1 -0
- package/dist/cmd/cloud/sandbox/execution/get.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/execution/get.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/execution/get.js +96 -0
- package/dist/cmd/cloud/sandbox/execution/get.js.map +1 -0
- package/dist/cmd/cloud/sandbox/execution/index.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/execution/index.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/execution/index.js +24 -0
- package/dist/cmd/cloud/sandbox/execution/index.js.map +1 -0
- package/dist/cmd/cloud/sandbox/execution/list.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/execution/list.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/execution/list.js +100 -0
- package/dist/cmd/cloud/sandbox/execution/list.js.map +1 -0
- package/dist/cmd/cloud/sandbox/get.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/get.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/get.js +95 -0
- package/dist/cmd/cloud/sandbox/get.js.map +1 -0
- package/dist/cmd/cloud/sandbox/index.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/index.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/index.js +45 -0
- package/dist/cmd/cloud/sandbox/index.js.map +1 -0
- package/dist/cmd/cloud/sandbox/list.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/list.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/list.js +120 -0
- package/dist/cmd/cloud/sandbox/list.js.map +1 -0
- package/dist/cmd/cloud/sandbox/run.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/run.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/run.js +152 -0
- package/dist/cmd/cloud/sandbox/run.js.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/create.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/snapshot/create.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/create.js +65 -0
- package/dist/cmd/cloud/sandbox/snapshot/create.js.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/delete.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/snapshot/delete.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/delete.js +66 -0
- package/dist/cmd/cloud/sandbox/snapshot/delete.js.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/get.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/snapshot/get.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/get.js +154 -0
- package/dist/cmd/cloud/sandbox/snapshot/get.js.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/index.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/snapshot/index.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/index.js +27 -0
- package/dist/cmd/cloud/sandbox/snapshot/index.js.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/list.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/snapshot/list.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/list.js +83 -0
- package/dist/cmd/cloud/sandbox/snapshot/list.js.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/tag.d.ts +3 -0
- package/dist/cmd/cloud/sandbox/snapshot/tag.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/snapshot/tag.js +63 -0
- package/dist/cmd/cloud/sandbox/snapshot/tag.js.map +1 -0
- package/dist/cmd/cloud/sandbox/util.d.ts +15 -0
- package/dist/cmd/cloud/sandbox/util.d.ts.map +1 -0
- package/dist/cmd/cloud/sandbox/util.js +50 -0
- package/dist/cmd/cloud/sandbox/util.js.map +1 -0
- package/dist/cmd/cloud/secret/delete.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/delete.js +3 -3
- package/dist/cmd/cloud/secret/delete.js.map +1 -1
- package/dist/cmd/cloud/secret/import.js +6 -6
- package/dist/cmd/cloud/secret/import.js.map +1 -1
- package/dist/cmd/cloud/secret/index.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/index.js +1 -0
- package/dist/cmd/cloud/secret/index.js.map +1 -1
- package/dist/cmd/cloud/secret/pull.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/pull.js +7 -9
- package/dist/cmd/cloud/secret/pull.js.map +1 -1
- package/dist/cmd/cloud/secret/push.js +3 -3
- package/dist/cmd/cloud/secret/push.js.map +1 -1
- package/dist/cmd/cloud/secret/set.d.ts.map +1 -1
- package/dist/cmd/cloud/secret/set.js +3 -3
- package/dist/cmd/cloud/secret/set.js.map +1 -1
- package/dist/cmd/cloud/storage/create.d.ts.map +1 -1
- package/dist/cmd/cloud/storage/create.js +13 -2
- 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 +13 -2
- package/dist/cmd/cloud/storage/delete.js.map +1 -1
- package/dist/cmd/cloud/stream/list.d.ts.map +1 -1
- package/dist/cmd/cloud/stream/list.js +2 -13
- package/dist/cmd/cloud/stream/list.js.map +1 -1
- package/dist/cmd/dev/index.d.ts.map +1 -1
- package/dist/cmd/dev/index.js +1 -0
- package/dist/cmd/dev/index.js.map +1 -1
- package/dist/cmd/profile/create.d.ts.map +1 -1
- package/dist/cmd/profile/create.js +1 -0
- package/dist/cmd/profile/create.js.map +1 -1
- package/dist/cmd/project/template-flow.d.ts.map +1 -1
- package/dist/cmd/project/template-flow.js +27 -10
- package/dist/cmd/project/template-flow.js.map +1 -1
- package/dist/config.d.ts +0 -2
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/env-util.d.ts +16 -8
- package/dist/env-util.d.ts.map +1 -1
- package/dist/env-util.js +46 -18
- package/dist/env-util.js.map +1 -1
- package/dist/tui.d.ts +20 -3
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +82 -23
- package/dist/tui.js.map +1 -1
- package/dist/types.d.ts +42 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +23 -0
- package/dist/types.js.map +1 -1
- package/package.json +4 -4
- package/src/cli.ts +99 -21
- package/src/cmd/build/ast.ts +163 -4
- package/src/cmd/build/entry-generator.ts +8 -2
- package/src/cmd/build/vite/metadata-generator.ts +17 -1
- package/src/cmd/build/vite/registry-generator.ts +8 -11
- package/src/cmd/build/vite/vite-builder.ts +3 -1
- package/src/cmd/build/vite-bundler.ts +4 -1
- package/src/cmd/cloud/db/create.ts +13 -2
- package/src/cmd/cloud/db/delete.ts +15 -2
- package/src/cmd/cloud/deploy.ts +7 -43
- package/src/cmd/cloud/env/delete.ts +1 -1
- package/src/cmd/cloud/env/import.ts +4 -4
- package/src/cmd/cloud/env/pull.ts +7 -16
- package/src/cmd/cloud/env/push.ts +2 -2
- package/src/cmd/cloud/env/set.ts +3 -3
- package/src/cmd/cloud/index.ts +2 -0
- package/src/cmd/cloud/sandbox/cp.ts +531 -0
- package/src/cmd/cloud/sandbox/create.ts +114 -0
- package/src/cmd/cloud/sandbox/delete.ts +80 -0
- package/src/cmd/cloud/sandbox/exec.ts +254 -0
- package/src/cmd/cloud/sandbox/execution/get.ts +106 -0
- package/src/cmd/cloud/sandbox/execution/index.ts +25 -0
- package/src/cmd/cloud/sandbox/execution/list.ts +111 -0
- package/src/cmd/cloud/sandbox/get.ts +104 -0
- package/src/cmd/cloud/sandbox/index.ts +46 -0
- package/src/cmd/cloud/sandbox/list.ts +129 -0
- package/src/cmd/cloud/sandbox/run.ts +170 -0
- package/src/cmd/cloud/sandbox/snapshot/create.ts +71 -0
- package/src/cmd/cloud/sandbox/snapshot/delete.ts +74 -0
- package/src/cmd/cloud/sandbox/snapshot/get.ts +188 -0
- package/src/cmd/cloud/sandbox/snapshot/index.ts +28 -0
- package/src/cmd/cloud/sandbox/snapshot/list.ts +90 -0
- package/src/cmd/cloud/sandbox/snapshot/tag.ts +70 -0
- package/src/cmd/cloud/sandbox/util.ts +59 -0
- package/src/cmd/cloud/secret/delete.ts +8 -3
- package/src/cmd/cloud/secret/import.ts +6 -6
- package/src/cmd/cloud/secret/index.ts +1 -0
- package/src/cmd/cloud/secret/pull.ts +7 -16
- package/src/cmd/cloud/secret/push.ts +3 -3
- package/src/cmd/cloud/secret/set.ts +8 -3
- package/src/cmd/cloud/storage/create.ts +15 -2
- package/src/cmd/cloud/storage/delete.ts +15 -2
- package/src/cmd/cloud/stream/list.ts +2 -9
- package/src/cmd/dev/index.ts +1 -0
- package/src/cmd/profile/create.ts +1 -0
- package/src/cmd/project/template-flow.ts +29 -13
- package/src/config.ts +3 -0
- package/src/env-util.ts +52 -21
- package/src/tui.ts +131 -39
- package/src/types.ts +43 -16
- package/dist/schemas/deploy.d.ts +0 -24
- package/dist/schemas/deploy.d.ts.map +0 -1
- package/dist/schemas/deploy.js +0 -26
- package/dist/schemas/deploy.js.map +0 -1
- package/src/schemas/deploy.ts +0 -28
|
@@ -7,6 +7,7 @@ import { getCatalystAPIClient } from '../../../config';
|
|
|
7
7
|
import { getCommand } from '../../../command-prefix';
|
|
8
8
|
import { isDryRunMode, outputDryRun } from '../../../explain';
|
|
9
9
|
import { ErrorCode } from '../../../errors';
|
|
10
|
+
import { removeResourceEnvVars } from '../../../env-util';
|
|
10
11
|
|
|
11
12
|
export const deleteSubcommand = createSubcommand({
|
|
12
13
|
name: 'delete',
|
|
@@ -109,10 +110,22 @@ export const deleteSubcommand = createSubcommand({
|
|
|
109
110
|
});
|
|
110
111
|
|
|
111
112
|
if (deleted.length > 0) {
|
|
112
|
-
|
|
113
|
+
const resource = deleted[0];
|
|
114
|
+
|
|
115
|
+
// Remove env vars from .env if running inside a project
|
|
116
|
+
if (ctx.projectDir && resource.env_keys.length > 0) {
|
|
117
|
+
await removeResourceEnvVars(ctx.projectDir, resource.env_keys);
|
|
118
|
+
if (!options.json) {
|
|
119
|
+
tui.info(`Removed ${resource.env_keys.join(', ')} from .env`);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (!options.json) {
|
|
124
|
+
tui.success(`Deleted database: ${tui.bold(resource.name)}`);
|
|
125
|
+
}
|
|
113
126
|
return {
|
|
114
127
|
success: true,
|
|
115
|
-
name:
|
|
128
|
+
name: resource.name,
|
|
116
129
|
};
|
|
117
130
|
} else {
|
|
118
131
|
tui.error('Failed to delete database');
|
package/src/cmd/cloud/deploy.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { createReadStream, createWriteStream, existsSync, mkdirSync, writeFileSy
|
|
|
5
5
|
import { tmpdir } from 'node:os';
|
|
6
6
|
import { StructuredError } from '@agentuity/core';
|
|
7
7
|
import { isRunningFromExecutable } from '../upgrade';
|
|
8
|
-
import { createSubcommand } from '../../types';
|
|
8
|
+
import { createSubcommand, DeployOptionsSchema } from '../../types';
|
|
9
9
|
import { getUserAgent } from '../../api';
|
|
10
10
|
import * as tui from '../../tui';
|
|
11
11
|
import { saveProjectDir, getDefaultConfigDir, loadProjectSDKKey } from '../../config';
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
getAppBaseURL,
|
|
35
35
|
} from '@agentuity/server';
|
|
36
36
|
import {
|
|
37
|
-
|
|
37
|
+
findExistingEnvFile,
|
|
38
38
|
readEnvFile,
|
|
39
39
|
filterAgentuitySdkKeys,
|
|
40
40
|
splitEnvAndSecrets,
|
|
@@ -43,7 +43,6 @@ import { zipDir } from '../../utils/zip';
|
|
|
43
43
|
import { encryptFIPSKEMDEMStream } from '../../crypto/box';
|
|
44
44
|
import { getCommand } from '../../command-prefix';
|
|
45
45
|
import * as domain from '../../domain';
|
|
46
|
-
import { DeployOptionsSchema } from '../../schemas/deploy';
|
|
47
46
|
import { ErrorCode } from '../../errors';
|
|
48
47
|
|
|
49
48
|
const DeploymentCancelledError = StructuredError(
|
|
@@ -84,10 +83,6 @@ export const deploySubcommand = createSubcommand({
|
|
|
84
83
|
command: getCommand('cloud deploy --log-level=debug'),
|
|
85
84
|
description: 'Deploy with verbose output',
|
|
86
85
|
},
|
|
87
|
-
{
|
|
88
|
-
command: getCommand('cloud deploy --tag a --tag b'),
|
|
89
|
-
description: 'Deploy with specific tags',
|
|
90
|
-
},
|
|
91
86
|
],
|
|
92
87
|
toplevel: true,
|
|
93
88
|
idempotent: false,
|
|
@@ -99,7 +94,7 @@ export const deploySubcommand = createSubcommand({
|
|
|
99
94
|
},
|
|
100
95
|
|
|
101
96
|
async handler(ctx) {
|
|
102
|
-
const { project, apiClient, projectDir, config, options, logger } = ctx;
|
|
97
|
+
const { project, apiClient, projectDir, config, options, logger, opts } = ctx;
|
|
103
98
|
|
|
104
99
|
let deployment: Deployment | undefined;
|
|
105
100
|
let build: BuildMetadata | undefined;
|
|
@@ -108,35 +103,6 @@ export const deploySubcommand = createSubcommand({
|
|
|
108
103
|
let statusResult: DeploymentStatusResult | undefined;
|
|
109
104
|
const logs: string[] = [];
|
|
110
105
|
|
|
111
|
-
// Check for pre-created deployment from CI/Nova
|
|
112
|
-
const deploymentEnv = process.env.AGENTUITY_DEPLOYMENT;
|
|
113
|
-
let useExistingDeployment = false;
|
|
114
|
-
if (deploymentEnv) {
|
|
115
|
-
const ExistingDeploymentSchema = z.object({
|
|
116
|
-
id: z.string(),
|
|
117
|
-
orgId: z.string(),
|
|
118
|
-
publicKey: z.string(),
|
|
119
|
-
});
|
|
120
|
-
try {
|
|
121
|
-
const parsed = JSON.parse(deploymentEnv);
|
|
122
|
-
const result = ExistingDeploymentSchema.safeParse(parsed);
|
|
123
|
-
if (result.success) {
|
|
124
|
-
deployment = result.data;
|
|
125
|
-
useExistingDeployment = true;
|
|
126
|
-
logger.info(`Using existing deployment: ${result.data.id}`);
|
|
127
|
-
} else {
|
|
128
|
-
const errors = result.error.issues
|
|
129
|
-
.map((i) => `${i.path.join('.')}: ${i.message}`)
|
|
130
|
-
.join(', ');
|
|
131
|
-
logger.warn(`Invalid AGENTUITY_DEPLOYMENT schema: ${errors}`);
|
|
132
|
-
}
|
|
133
|
-
} catch (err) {
|
|
134
|
-
logger.warn(
|
|
135
|
-
`Failed to parse AGENTUITY_DEPLOYMENT: ${err instanceof Error ? err.message : String(err)}`
|
|
136
|
-
);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
106
|
const sdkKey = await loadProjectSDKKey(ctx.logger, ctx.projectDir);
|
|
141
107
|
|
|
142
108
|
// Ensure SDK key is present before proceeding
|
|
@@ -176,8 +142,8 @@ export const deploySubcommand = createSubcommand({
|
|
|
176
142
|
label: 'Sync Env & Secrets',
|
|
177
143
|
run: async () => {
|
|
178
144
|
try {
|
|
179
|
-
// Read
|
|
180
|
-
const envFilePath = await
|
|
145
|
+
// Read env file
|
|
146
|
+
const envFilePath = await findExistingEnvFile(projectDir);
|
|
181
147
|
const localEnv = await readEnvFile(envFilePath);
|
|
182
148
|
|
|
183
149
|
// Filter out AGENTUITY_ keys
|
|
@@ -212,9 +178,6 @@ export const deploySubcommand = createSubcommand({
|
|
|
212
178
|
{
|
|
213
179
|
label: 'Create Deployment',
|
|
214
180
|
run: async () => {
|
|
215
|
-
if (useExistingDeployment && deployment) {
|
|
216
|
-
return stepSkipped('using existing deployment');
|
|
217
|
-
}
|
|
218
181
|
try {
|
|
219
182
|
deployment = await projectDeploymentCreate(
|
|
220
183
|
apiClient,
|
|
@@ -244,6 +207,7 @@ export const deploySubcommand = createSubcommand({
|
|
|
244
207
|
projectId: project.projectId,
|
|
245
208
|
region: project.region,
|
|
246
209
|
logger: ctx.logger,
|
|
210
|
+
deploymentOptions: opts,
|
|
247
211
|
});
|
|
248
212
|
capturedOutput = bundleResult.output;
|
|
249
213
|
build = await loadBuildMetadata(join(projectDir, '.agentuity'));
|
|
@@ -462,7 +426,7 @@ export const deploySubcommand = createSubcommand({
|
|
|
462
426
|
},
|
|
463
427
|
},
|
|
464
428
|
].filter(Boolean) as Step[],
|
|
465
|
-
|
|
429
|
+
options.logLevel
|
|
466
430
|
);
|
|
467
431
|
|
|
468
432
|
if (!deployment) {
|
|
@@ -45,7 +45,7 @@ export const deleteSubcommand = createSubcommand({
|
|
|
45
45
|
});
|
|
46
46
|
});
|
|
47
47
|
|
|
48
|
-
// Update local .env file (prefer .env
|
|
48
|
+
// Update local .env file (prefer .env)
|
|
49
49
|
const envFilePath = await findExistingEnvFile(projectDir);
|
|
50
50
|
const currentEnv = await readEnvFile(envFilePath);
|
|
51
51
|
delete currentEnv[args.key];
|
|
@@ -3,7 +3,7 @@ import { createSubcommand } from '../../../types';
|
|
|
3
3
|
import * as tui from '../../../tui';
|
|
4
4
|
import { projectEnvUpdate } from '@agentuity/server';
|
|
5
5
|
import {
|
|
6
|
-
|
|
6
|
+
findExistingEnvFile,
|
|
7
7
|
readEnvFile,
|
|
8
8
|
writeEnvFile,
|
|
9
9
|
filterAgentuitySdkKeys,
|
|
@@ -23,7 +23,7 @@ const EnvImportResponseSchema = z.object({
|
|
|
23
23
|
|
|
24
24
|
export const importSubcommand = createSubcommand({
|
|
25
25
|
name: 'import',
|
|
26
|
-
description: 'Import environment variables from a file to cloud and local .env
|
|
26
|
+
description: 'Import environment variables from a file to cloud and local .env',
|
|
27
27
|
tags: [
|
|
28
28
|
'mutating',
|
|
29
29
|
'creates-resource',
|
|
@@ -131,8 +131,8 @@ export const importSubcommand = createSubcommand({
|
|
|
131
131
|
});
|
|
132
132
|
});
|
|
133
133
|
|
|
134
|
-
// Merge
|
|
135
|
-
const localEnvPath = await
|
|
134
|
+
// Merge environment
|
|
135
|
+
const localEnvPath = await findExistingEnvFile(projectDir);
|
|
136
136
|
const localEnv = await readEnvFile(localEnvPath);
|
|
137
137
|
const mergedEnv = mergeEnvVars(localEnv, filteredEnv);
|
|
138
138
|
|
|
@@ -3,13 +3,7 @@ import { join } from 'node:path';
|
|
|
3
3
|
import { createSubcommand } from '../../../types';
|
|
4
4
|
import * as tui from '../../../tui';
|
|
5
5
|
import { projectGet } from '@agentuity/server';
|
|
6
|
-
import {
|
|
7
|
-
findEnvFile,
|
|
8
|
-
findExistingEnvFile,
|
|
9
|
-
readEnvFile,
|
|
10
|
-
writeEnvFile,
|
|
11
|
-
mergeEnvVars,
|
|
12
|
-
} from '../../../env-util';
|
|
6
|
+
import { findExistingEnvFile, readEnvFile, writeEnvFile, mergeEnvVars } from '../../../env-util';
|
|
13
7
|
import { getCommand } from '../../../command-prefix';
|
|
14
8
|
|
|
15
9
|
const EnvPullResponseSchema = z.object({
|
|
@@ -21,7 +15,7 @@ const EnvPullResponseSchema = z.object({
|
|
|
21
15
|
|
|
22
16
|
export const pullSubcommand = createSubcommand({
|
|
23
17
|
name: 'pull',
|
|
24
|
-
description: 'Pull environment variables from cloud to local .env
|
|
18
|
+
description: 'Pull environment variables from cloud to local .env file',
|
|
25
19
|
tags: ['slow', 'requires-auth', 'requires-project'],
|
|
26
20
|
idempotent: true,
|
|
27
21
|
examples: [
|
|
@@ -45,14 +39,11 @@ export const pullSubcommand = createSubcommand({
|
|
|
45
39
|
return projectGet(apiClient, { id: project.projectId, mask: false });
|
|
46
40
|
});
|
|
47
41
|
|
|
48
|
-
const cloudEnv = projectData.env
|
|
42
|
+
const cloudEnv = { ...projectData.env, ...projectData.secrets }; // env pull with actually do both secrets and env since thats likely what the user would want
|
|
49
43
|
|
|
50
|
-
//
|
|
51
|
-
const
|
|
52
|
-
const localEnv = await readEnvFile(
|
|
53
|
-
|
|
54
|
-
// Target file is always .env.production
|
|
55
|
-
const targetEnvPath = await findEnvFile(projectDir);
|
|
44
|
+
// Target file is always .env
|
|
45
|
+
const targetEnvPath = await findExistingEnvFile(projectDir);
|
|
46
|
+
const localEnv = await readEnvFile(targetEnvPath);
|
|
56
47
|
|
|
57
48
|
// Merge: cloud values override local if force=true, otherwise keep local
|
|
58
49
|
let mergedEnv: Record<string, string>;
|
|
@@ -64,7 +55,7 @@ export const pullSubcommand = createSubcommand({
|
|
|
64
55
|
mergedEnv = mergeEnvVars(cloudEnv, localEnv);
|
|
65
56
|
}
|
|
66
57
|
|
|
67
|
-
// Write to .env
|
|
58
|
+
// Write to .env (skip AGENTUITY_ keys)
|
|
68
59
|
await writeEnvFile(targetEnvPath, mergedEnv, {
|
|
69
60
|
skipKeys: Object.keys(mergedEnv).filter((k) => k.startsWith('AGENTUITY_')),
|
|
70
61
|
});
|
|
@@ -13,7 +13,7 @@ const EnvPushResponseSchema = z.object({
|
|
|
13
13
|
|
|
14
14
|
export const pushSubcommand = createSubcommand({
|
|
15
15
|
name: 'push',
|
|
16
|
-
description: 'Push environment variables from local .env
|
|
16
|
+
description: 'Push environment variables from local .env file to cloud',
|
|
17
17
|
tags: [
|
|
18
18
|
'mutating',
|
|
19
19
|
'updates-resource',
|
|
@@ -33,7 +33,7 @@ export const pushSubcommand = createSubcommand({
|
|
|
33
33
|
async handler(ctx) {
|
|
34
34
|
const { apiClient, project, projectDir } = ctx;
|
|
35
35
|
|
|
36
|
-
// Read local env file (prefer .env
|
|
36
|
+
// Read local env file (prefer .env)
|
|
37
37
|
const envFilePath = await findExistingEnvFile(projectDir);
|
|
38
38
|
const localEnv = await readEnvFile(envFilePath);
|
|
39
39
|
|
package/src/cmd/cloud/env/set.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { createSubcommand } from '../../../types';
|
|
|
3
3
|
import * as tui from '../../../tui';
|
|
4
4
|
import { projectEnvUpdate } from '@agentuity/server';
|
|
5
5
|
import {
|
|
6
|
-
|
|
6
|
+
findExistingEnvFile,
|
|
7
7
|
readEnvFile,
|
|
8
8
|
writeEnvFile,
|
|
9
9
|
filterAgentuitySdkKeys,
|
|
@@ -75,8 +75,8 @@ export const setSubcommand = createSubcommand({
|
|
|
75
75
|
});
|
|
76
76
|
});
|
|
77
77
|
|
|
78
|
-
// Update local .env
|
|
79
|
-
const envFilePath = await
|
|
78
|
+
// Update local .env file
|
|
79
|
+
const envFilePath = await findExistingEnvFile(projectDir);
|
|
80
80
|
const currentEnv = await readEnvFile(envFilePath);
|
|
81
81
|
currentEnv[args.key] = args.value;
|
|
82
82
|
|
package/src/cmd/cloud/index.ts
CHANGED
|
@@ -15,6 +15,7 @@ import secretCommand from './secret';
|
|
|
15
15
|
import apikeyCommand from './apikey';
|
|
16
16
|
import streamCommand from './stream';
|
|
17
17
|
import vectorCommand from './vector';
|
|
18
|
+
import sandboxCommand from './sandbox';
|
|
18
19
|
import { getCommand } from '../../command-prefix';
|
|
19
20
|
|
|
20
21
|
export const command = createCommand({
|
|
@@ -31,6 +32,7 @@ export const command = createCommand({
|
|
|
31
32
|
agentCommand,
|
|
32
33
|
streamCommand,
|
|
33
34
|
vectorCommand,
|
|
35
|
+
sandboxCommand,
|
|
34
36
|
envCommand,
|
|
35
37
|
secretCommand,
|
|
36
38
|
deploySubcommand,
|