@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.
Files changed (225) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +93 -21
  3. package/dist/cli.js.map +1 -1
  4. package/dist/cmd/build/ast.d.ts.map +1 -1
  5. package/dist/cmd/build/ast.js +130 -4
  6. package/dist/cmd/build/ast.js.map +1 -1
  7. package/dist/cmd/build/entry-generator.d.ts.map +1 -1
  8. package/dist/cmd/build/entry-generator.js +8 -2
  9. package/dist/cmd/build/entry-generator.js.map +1 -1
  10. package/dist/cmd/build/vite/metadata-generator.d.ts +2 -1
  11. package/dist/cmd/build/vite/metadata-generator.d.ts.map +1 -1
  12. package/dist/cmd/build/vite/metadata-generator.js +14 -0
  13. package/dist/cmd/build/vite/metadata-generator.js.map +1 -1
  14. package/dist/cmd/build/vite/registry-generator.d.ts.map +1 -1
  15. package/dist/cmd/build/vite/registry-generator.js +8 -9
  16. package/dist/cmd/build/vite/registry-generator.js.map +1 -1
  17. package/dist/cmd/build/vite/vite-builder.d.ts +2 -1
  18. package/dist/cmd/build/vite/vite-builder.d.ts.map +1 -1
  19. package/dist/cmd/build/vite/vite-builder.js +1 -0
  20. package/dist/cmd/build/vite/vite-builder.js.map +1 -1
  21. package/dist/cmd/build/vite-bundler.d.ts +2 -1
  22. package/dist/cmd/build/vite-bundler.d.ts.map +1 -1
  23. package/dist/cmd/build/vite-bundler.js +2 -1
  24. package/dist/cmd/build/vite-bundler.js.map +1 -1
  25. package/dist/cmd/cloud/db/create.d.ts.map +1 -1
  26. package/dist/cmd/cloud/db/create.js +11 -2
  27. package/dist/cmd/cloud/db/create.js.map +1 -1
  28. package/dist/cmd/cloud/db/delete.d.ts.map +1 -1
  29. package/dist/cmd/cloud/db/delete.js +13 -2
  30. package/dist/cmd/cloud/db/delete.js.map +1 -1
  31. package/dist/cmd/cloud/deploy.d.ts.map +1 -1
  32. package/dist/cmd/cloud/deploy.js +7 -42
  33. package/dist/cmd/cloud/deploy.js.map +1 -1
  34. package/dist/cmd/cloud/env/delete.js +1 -1
  35. package/dist/cmd/cloud/env/delete.js.map +1 -1
  36. package/dist/cmd/cloud/env/import.js +4 -4
  37. package/dist/cmd/cloud/env/import.js.map +1 -1
  38. package/dist/cmd/cloud/env/pull.d.ts.map +1 -1
  39. package/dist/cmd/cloud/env/pull.js +7 -9
  40. package/dist/cmd/cloud/env/pull.js.map +1 -1
  41. package/dist/cmd/cloud/env/push.js +2 -2
  42. package/dist/cmd/cloud/env/push.js.map +1 -1
  43. package/dist/cmd/cloud/env/set.js +3 -3
  44. package/dist/cmd/cloud/env/set.js.map +1 -1
  45. package/dist/cmd/cloud/index.d.ts.map +1 -1
  46. package/dist/cmd/cloud/index.js +2 -0
  47. package/dist/cmd/cloud/index.js.map +1 -1
  48. package/dist/cmd/cloud/sandbox/cp.d.ts +3 -0
  49. package/dist/cmd/cloud/sandbox/cp.d.ts.map +1 -0
  50. package/dist/cmd/cloud/sandbox/cp.js +334 -0
  51. package/dist/cmd/cloud/sandbox/cp.js.map +1 -0
  52. package/dist/cmd/cloud/sandbox/create.d.ts +3 -0
  53. package/dist/cmd/cloud/sandbox/create.d.ts.map +1 -0
  54. package/dist/cmd/cloud/sandbox/create.js +105 -0
  55. package/dist/cmd/cloud/sandbox/create.js.map +1 -0
  56. package/dist/cmd/cloud/sandbox/delete.d.ts +3 -0
  57. package/dist/cmd/cloud/sandbox/delete.d.ts.map +1 -0
  58. package/dist/cmd/cloud/sandbox/delete.js +72 -0
  59. package/dist/cmd/cloud/sandbox/delete.js.map +1 -0
  60. package/dist/cmd/cloud/sandbox/exec.d.ts +3 -0
  61. package/dist/cmd/cloud/sandbox/exec.d.ts.map +1 -0
  62. package/dist/cmd/cloud/sandbox/exec.js +211 -0
  63. package/dist/cmd/cloud/sandbox/exec.js.map +1 -0
  64. package/dist/cmd/cloud/sandbox/execution/get.d.ts +3 -0
  65. package/dist/cmd/cloud/sandbox/execution/get.d.ts.map +1 -0
  66. package/dist/cmd/cloud/sandbox/execution/get.js +96 -0
  67. package/dist/cmd/cloud/sandbox/execution/get.js.map +1 -0
  68. package/dist/cmd/cloud/sandbox/execution/index.d.ts +3 -0
  69. package/dist/cmd/cloud/sandbox/execution/index.d.ts.map +1 -0
  70. package/dist/cmd/cloud/sandbox/execution/index.js +24 -0
  71. package/dist/cmd/cloud/sandbox/execution/index.js.map +1 -0
  72. package/dist/cmd/cloud/sandbox/execution/list.d.ts +3 -0
  73. package/dist/cmd/cloud/sandbox/execution/list.d.ts.map +1 -0
  74. package/dist/cmd/cloud/sandbox/execution/list.js +100 -0
  75. package/dist/cmd/cloud/sandbox/execution/list.js.map +1 -0
  76. package/dist/cmd/cloud/sandbox/get.d.ts +3 -0
  77. package/dist/cmd/cloud/sandbox/get.d.ts.map +1 -0
  78. package/dist/cmd/cloud/sandbox/get.js +95 -0
  79. package/dist/cmd/cloud/sandbox/get.js.map +1 -0
  80. package/dist/cmd/cloud/sandbox/index.d.ts +3 -0
  81. package/dist/cmd/cloud/sandbox/index.d.ts.map +1 -0
  82. package/dist/cmd/cloud/sandbox/index.js +45 -0
  83. package/dist/cmd/cloud/sandbox/index.js.map +1 -0
  84. package/dist/cmd/cloud/sandbox/list.d.ts +3 -0
  85. package/dist/cmd/cloud/sandbox/list.d.ts.map +1 -0
  86. package/dist/cmd/cloud/sandbox/list.js +120 -0
  87. package/dist/cmd/cloud/sandbox/list.js.map +1 -0
  88. package/dist/cmd/cloud/sandbox/run.d.ts +3 -0
  89. package/dist/cmd/cloud/sandbox/run.d.ts.map +1 -0
  90. package/dist/cmd/cloud/sandbox/run.js +152 -0
  91. package/dist/cmd/cloud/sandbox/run.js.map +1 -0
  92. package/dist/cmd/cloud/sandbox/snapshot/create.d.ts +3 -0
  93. package/dist/cmd/cloud/sandbox/snapshot/create.d.ts.map +1 -0
  94. package/dist/cmd/cloud/sandbox/snapshot/create.js +65 -0
  95. package/dist/cmd/cloud/sandbox/snapshot/create.js.map +1 -0
  96. package/dist/cmd/cloud/sandbox/snapshot/delete.d.ts +3 -0
  97. package/dist/cmd/cloud/sandbox/snapshot/delete.d.ts.map +1 -0
  98. package/dist/cmd/cloud/sandbox/snapshot/delete.js +66 -0
  99. package/dist/cmd/cloud/sandbox/snapshot/delete.js.map +1 -0
  100. package/dist/cmd/cloud/sandbox/snapshot/get.d.ts +3 -0
  101. package/dist/cmd/cloud/sandbox/snapshot/get.d.ts.map +1 -0
  102. package/dist/cmd/cloud/sandbox/snapshot/get.js +154 -0
  103. package/dist/cmd/cloud/sandbox/snapshot/get.js.map +1 -0
  104. package/dist/cmd/cloud/sandbox/snapshot/index.d.ts +3 -0
  105. package/dist/cmd/cloud/sandbox/snapshot/index.d.ts.map +1 -0
  106. package/dist/cmd/cloud/sandbox/snapshot/index.js +27 -0
  107. package/dist/cmd/cloud/sandbox/snapshot/index.js.map +1 -0
  108. package/dist/cmd/cloud/sandbox/snapshot/list.d.ts +3 -0
  109. package/dist/cmd/cloud/sandbox/snapshot/list.d.ts.map +1 -0
  110. package/dist/cmd/cloud/sandbox/snapshot/list.js +83 -0
  111. package/dist/cmd/cloud/sandbox/snapshot/list.js.map +1 -0
  112. package/dist/cmd/cloud/sandbox/snapshot/tag.d.ts +3 -0
  113. package/dist/cmd/cloud/sandbox/snapshot/tag.d.ts.map +1 -0
  114. package/dist/cmd/cloud/sandbox/snapshot/tag.js +63 -0
  115. package/dist/cmd/cloud/sandbox/snapshot/tag.js.map +1 -0
  116. package/dist/cmd/cloud/sandbox/util.d.ts +15 -0
  117. package/dist/cmd/cloud/sandbox/util.d.ts.map +1 -0
  118. package/dist/cmd/cloud/sandbox/util.js +50 -0
  119. package/dist/cmd/cloud/sandbox/util.js.map +1 -0
  120. package/dist/cmd/cloud/secret/delete.d.ts.map +1 -1
  121. package/dist/cmd/cloud/secret/delete.js +3 -3
  122. package/dist/cmd/cloud/secret/delete.js.map +1 -1
  123. package/dist/cmd/cloud/secret/import.js +6 -6
  124. package/dist/cmd/cloud/secret/import.js.map +1 -1
  125. package/dist/cmd/cloud/secret/index.d.ts.map +1 -1
  126. package/dist/cmd/cloud/secret/index.js +1 -0
  127. package/dist/cmd/cloud/secret/index.js.map +1 -1
  128. package/dist/cmd/cloud/secret/pull.d.ts.map +1 -1
  129. package/dist/cmd/cloud/secret/pull.js +7 -9
  130. package/dist/cmd/cloud/secret/pull.js.map +1 -1
  131. package/dist/cmd/cloud/secret/push.js +3 -3
  132. package/dist/cmd/cloud/secret/push.js.map +1 -1
  133. package/dist/cmd/cloud/secret/set.d.ts.map +1 -1
  134. package/dist/cmd/cloud/secret/set.js +3 -3
  135. package/dist/cmd/cloud/secret/set.js.map +1 -1
  136. package/dist/cmd/cloud/storage/create.d.ts.map +1 -1
  137. package/dist/cmd/cloud/storage/create.js +13 -2
  138. package/dist/cmd/cloud/storage/create.js.map +1 -1
  139. package/dist/cmd/cloud/storage/delete.d.ts.map +1 -1
  140. package/dist/cmd/cloud/storage/delete.js +13 -2
  141. package/dist/cmd/cloud/storage/delete.js.map +1 -1
  142. package/dist/cmd/cloud/stream/list.d.ts.map +1 -1
  143. package/dist/cmd/cloud/stream/list.js +2 -13
  144. package/dist/cmd/cloud/stream/list.js.map +1 -1
  145. package/dist/cmd/dev/index.d.ts.map +1 -1
  146. package/dist/cmd/dev/index.js +1 -0
  147. package/dist/cmd/dev/index.js.map +1 -1
  148. package/dist/cmd/profile/create.d.ts.map +1 -1
  149. package/dist/cmd/profile/create.js +1 -0
  150. package/dist/cmd/profile/create.js.map +1 -1
  151. package/dist/cmd/project/template-flow.d.ts.map +1 -1
  152. package/dist/cmd/project/template-flow.js +27 -10
  153. package/dist/cmd/project/template-flow.js.map +1 -1
  154. package/dist/config.d.ts +0 -2
  155. package/dist/config.d.ts.map +1 -1
  156. package/dist/config.js +3 -0
  157. package/dist/config.js.map +1 -1
  158. package/dist/env-util.d.ts +16 -8
  159. package/dist/env-util.d.ts.map +1 -1
  160. package/dist/env-util.js +46 -18
  161. package/dist/env-util.js.map +1 -1
  162. package/dist/tui.d.ts +20 -3
  163. package/dist/tui.d.ts.map +1 -1
  164. package/dist/tui.js +82 -23
  165. package/dist/tui.js.map +1 -1
  166. package/dist/types.d.ts +42 -4
  167. package/dist/types.d.ts.map +1 -1
  168. package/dist/types.js +23 -0
  169. package/dist/types.js.map +1 -1
  170. package/package.json +4 -4
  171. package/src/cli.ts +99 -21
  172. package/src/cmd/build/ast.ts +163 -4
  173. package/src/cmd/build/entry-generator.ts +8 -2
  174. package/src/cmd/build/vite/metadata-generator.ts +17 -1
  175. package/src/cmd/build/vite/registry-generator.ts +8 -11
  176. package/src/cmd/build/vite/vite-builder.ts +3 -1
  177. package/src/cmd/build/vite-bundler.ts +4 -1
  178. package/src/cmd/cloud/db/create.ts +13 -2
  179. package/src/cmd/cloud/db/delete.ts +15 -2
  180. package/src/cmd/cloud/deploy.ts +7 -43
  181. package/src/cmd/cloud/env/delete.ts +1 -1
  182. package/src/cmd/cloud/env/import.ts +4 -4
  183. package/src/cmd/cloud/env/pull.ts +7 -16
  184. package/src/cmd/cloud/env/push.ts +2 -2
  185. package/src/cmd/cloud/env/set.ts +3 -3
  186. package/src/cmd/cloud/index.ts +2 -0
  187. package/src/cmd/cloud/sandbox/cp.ts +531 -0
  188. package/src/cmd/cloud/sandbox/create.ts +114 -0
  189. package/src/cmd/cloud/sandbox/delete.ts +80 -0
  190. package/src/cmd/cloud/sandbox/exec.ts +254 -0
  191. package/src/cmd/cloud/sandbox/execution/get.ts +106 -0
  192. package/src/cmd/cloud/sandbox/execution/index.ts +25 -0
  193. package/src/cmd/cloud/sandbox/execution/list.ts +111 -0
  194. package/src/cmd/cloud/sandbox/get.ts +104 -0
  195. package/src/cmd/cloud/sandbox/index.ts +46 -0
  196. package/src/cmd/cloud/sandbox/list.ts +129 -0
  197. package/src/cmd/cloud/sandbox/run.ts +170 -0
  198. package/src/cmd/cloud/sandbox/snapshot/create.ts +71 -0
  199. package/src/cmd/cloud/sandbox/snapshot/delete.ts +74 -0
  200. package/src/cmd/cloud/sandbox/snapshot/get.ts +188 -0
  201. package/src/cmd/cloud/sandbox/snapshot/index.ts +28 -0
  202. package/src/cmd/cloud/sandbox/snapshot/list.ts +90 -0
  203. package/src/cmd/cloud/sandbox/snapshot/tag.ts +70 -0
  204. package/src/cmd/cloud/sandbox/util.ts +59 -0
  205. package/src/cmd/cloud/secret/delete.ts +8 -3
  206. package/src/cmd/cloud/secret/import.ts +6 -6
  207. package/src/cmd/cloud/secret/index.ts +1 -0
  208. package/src/cmd/cloud/secret/pull.ts +7 -16
  209. package/src/cmd/cloud/secret/push.ts +3 -3
  210. package/src/cmd/cloud/secret/set.ts +8 -3
  211. package/src/cmd/cloud/storage/create.ts +15 -2
  212. package/src/cmd/cloud/storage/delete.ts +15 -2
  213. package/src/cmd/cloud/stream/list.ts +2 -9
  214. package/src/cmd/dev/index.ts +1 -0
  215. package/src/cmd/profile/create.ts +1 -0
  216. package/src/cmd/project/template-flow.ts +29 -13
  217. package/src/config.ts +3 -0
  218. package/src/env-util.ts +52 -21
  219. package/src/tui.ts +131 -39
  220. package/src/types.ts +43 -16
  221. package/dist/schemas/deploy.d.ts +0 -24
  222. package/dist/schemas/deploy.d.ts.map +0 -1
  223. package/dist/schemas/deploy.js +0 -26
  224. package/dist/schemas/deploy.js.map +0 -1
  225. 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
- tui.success(`Deleted database: ${tui.bold(deleted[0])}`);
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: deleted[0],
128
+ name: resource.name,
116
129
  };
117
130
  } else {
118
131
  tui.error('Failed to delete database');
@@ -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
- findEnvFile,
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 local env file (.env.production or .env)
180
- const envFilePath = await findEnvFile(projectDir);
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
- useExistingDeployment ? 'debug' : options.logLevel
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.production, fallback to .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
- findEnvFile,
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.production',
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 with local .env.production file
135
- const localEnvPath = await findEnvFile(projectDir);
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.production file',
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
- // Read current local env from existing file (.env.production or .env)
51
- const existingEnvPath = await findExistingEnvFile(projectDir);
52
- const localEnv = await readEnvFile(existingEnvPath);
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.production (skip AGENTUITY_ keys)
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.production file to cloud',
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.production, fallback to .env)
36
+ // Read local env file (prefer .env)
37
37
  const envFilePath = await findExistingEnvFile(projectDir);
38
38
  const localEnv = await readEnvFile(envFilePath);
39
39
 
@@ -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
- findEnvFile,
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.production file
79
- const envFilePath = await findEnvFile(projectDir);
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
 
@@ -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,