@agentuity/cli 0.1.15 → 0.1.17

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 (255) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +18 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/cmd/ai/opencode/install.js +1 -1
  5. package/dist/cmd/ai/opencode/install.js.map +1 -1
  6. package/dist/cmd/build/ast.d.ts.map +1 -1
  7. package/dist/cmd/build/ast.js +68 -2
  8. package/dist/cmd/build/ast.js.map +1 -1
  9. package/dist/cmd/build/vite/registry-generator.d.ts.map +1 -1
  10. package/dist/cmd/build/vite/registry-generator.js +112 -23
  11. package/dist/cmd/build/vite/registry-generator.js.map +1 -1
  12. package/dist/cmd/build/vite/route-discovery.d.ts +4 -0
  13. package/dist/cmd/build/vite/route-discovery.d.ts.map +1 -1
  14. package/dist/cmd/build/vite/route-discovery.js +4 -0
  15. package/dist/cmd/build/vite/route-discovery.js.map +1 -1
  16. package/dist/cmd/cloud/env/delete.d.ts.map +1 -1
  17. package/dist/cmd/cloud/env/delete.js +93 -34
  18. package/dist/cmd/cloud/env/delete.js.map +1 -1
  19. package/dist/cmd/cloud/env/get.d.ts.map +1 -1
  20. package/dist/cmd/cloud/env/get.js +53 -16
  21. package/dist/cmd/cloud/env/get.js.map +1 -1
  22. package/dist/cmd/cloud/env/import.d.ts.map +1 -1
  23. package/dist/cmd/cloud/env/import.js +80 -39
  24. package/dist/cmd/cloud/env/import.js.map +1 -1
  25. package/dist/cmd/cloud/env/index.d.ts.map +1 -1
  26. package/dist/cmd/cloud/env/index.js +6 -2
  27. package/dist/cmd/cloud/env/index.js.map +1 -1
  28. package/dist/cmd/cloud/env/list.d.ts.map +1 -1
  29. package/dist/cmd/cloud/env/list.js +99 -23
  30. package/dist/cmd/cloud/env/list.js.map +1 -1
  31. package/dist/cmd/cloud/env/org-util.d.ts +16 -0
  32. package/dist/cmd/cloud/env/org-util.d.ts.map +1 -0
  33. package/dist/cmd/cloud/env/org-util.js +28 -0
  34. package/dist/cmd/cloud/env/org-util.js.map +1 -0
  35. package/dist/cmd/cloud/env/pull.d.ts.map +1 -1
  36. package/dist/cmd/cloud/env/pull.js +61 -29
  37. package/dist/cmd/cloud/env/pull.js.map +1 -1
  38. package/dist/cmd/cloud/env/push.d.ts.map +1 -1
  39. package/dist/cmd/cloud/env/push.js +70 -30
  40. package/dist/cmd/cloud/env/push.js.map +1 -1
  41. package/dist/cmd/cloud/env/set.d.ts.map +1 -1
  42. package/dist/cmd/cloud/env/set.js +72 -26
  43. package/dist/cmd/cloud/env/set.js.map +1 -1
  44. package/dist/cmd/cloud/index.d.ts.map +1 -1
  45. package/dist/cmd/cloud/index.js +2 -0
  46. package/dist/cmd/cloud/index.js.map +1 -1
  47. package/dist/cmd/cloud/keyvalue/create-namespace.js +1 -1
  48. package/dist/cmd/cloud/keyvalue/create-namespace.js.map +1 -1
  49. package/dist/cmd/cloud/keyvalue/delete-namespace.js +2 -2
  50. package/dist/cmd/cloud/keyvalue/delete-namespace.js.map +1 -1
  51. package/dist/cmd/cloud/keyvalue/delete.js +1 -1
  52. package/dist/cmd/cloud/keyvalue/delete.js.map +1 -1
  53. package/dist/cmd/cloud/keyvalue/get.js +1 -1
  54. package/dist/cmd/cloud/keyvalue/get.js.map +1 -1
  55. package/dist/cmd/cloud/keyvalue/index.js +1 -1
  56. package/dist/cmd/cloud/keyvalue/index.js.map +1 -1
  57. package/dist/cmd/cloud/keyvalue/keys.js +1 -1
  58. package/dist/cmd/cloud/keyvalue/keys.js.map +1 -1
  59. package/dist/cmd/cloud/keyvalue/list-namespaces.js +1 -1
  60. package/dist/cmd/cloud/keyvalue/list-namespaces.js.map +1 -1
  61. package/dist/cmd/cloud/keyvalue/repl.d.ts.map +1 -1
  62. package/dist/cmd/cloud/keyvalue/repl.js +8 -5
  63. package/dist/cmd/cloud/keyvalue/repl.js.map +1 -1
  64. package/dist/cmd/cloud/keyvalue/search.js +1 -1
  65. package/dist/cmd/cloud/keyvalue/search.js.map +1 -1
  66. package/dist/cmd/cloud/keyvalue/set.js +1 -1
  67. package/dist/cmd/cloud/keyvalue/set.js.map +1 -1
  68. package/dist/cmd/cloud/keyvalue/stats.js +1 -1
  69. package/dist/cmd/cloud/keyvalue/stats.js.map +1 -1
  70. package/dist/cmd/cloud/keyvalue/util.d.ts +4 -4
  71. package/dist/cmd/cloud/keyvalue/util.d.ts.map +1 -1
  72. package/dist/cmd/cloud/keyvalue/util.js +4 -9
  73. package/dist/cmd/cloud/keyvalue/util.js.map +1 -1
  74. package/dist/cmd/cloud/queue/ack.d.ts +3 -0
  75. package/dist/cmd/cloud/queue/ack.d.ts.map +1 -0
  76. package/dist/cmd/cloud/queue/ack.js +45 -0
  77. package/dist/cmd/cloud/queue/ack.js.map +1 -0
  78. package/dist/cmd/cloud/queue/create.d.ts +3 -0
  79. package/dist/cmd/cloud/queue/create.d.ts.map +1 -0
  80. package/dist/cmd/cloud/queue/create.js +80 -0
  81. package/dist/cmd/cloud/queue/create.js.map +1 -0
  82. package/dist/cmd/cloud/queue/delete.d.ts +3 -0
  83. package/dist/cmd/cloud/queue/delete.d.ts.map +1 -0
  84. package/dist/cmd/cloud/queue/delete.js +50 -0
  85. package/dist/cmd/cloud/queue/delete.js.map +1 -0
  86. package/dist/cmd/cloud/queue/destinations.d.ts +3 -0
  87. package/dist/cmd/cloud/queue/destinations.d.ts.map +1 -0
  88. package/dist/cmd/cloud/queue/destinations.js +232 -0
  89. package/dist/cmd/cloud/queue/destinations.js.map +1 -0
  90. package/dist/cmd/cloud/queue/dlq.d.ts +3 -0
  91. package/dist/cmd/cloud/queue/dlq.d.ts.map +1 -0
  92. package/dist/cmd/cloud/queue/dlq.js +168 -0
  93. package/dist/cmd/cloud/queue/dlq.js.map +1 -0
  94. package/dist/cmd/cloud/queue/get.d.ts +3 -0
  95. package/dist/cmd/cloud/queue/get.d.ts.map +1 -0
  96. package/dist/cmd/cloud/queue/get.js +130 -0
  97. package/dist/cmd/cloud/queue/get.js.map +1 -0
  98. package/dist/cmd/cloud/queue/index.d.ts +3 -0
  99. package/dist/cmd/cloud/queue/index.d.ts.map +1 -0
  100. package/dist/cmd/cloud/queue/index.js +65 -0
  101. package/dist/cmd/cloud/queue/index.js.map +1 -0
  102. package/dist/cmd/cloud/queue/list.d.ts +3 -0
  103. package/dist/cmd/cloud/queue/list.d.ts.map +1 -0
  104. package/dist/cmd/cloud/queue/list.js +71 -0
  105. package/dist/cmd/cloud/queue/list.js.map +1 -0
  106. package/dist/cmd/cloud/queue/messages.d.ts +3 -0
  107. package/dist/cmd/cloud/queue/messages.d.ts.map +1 -0
  108. package/dist/cmd/cloud/queue/messages.js +137 -0
  109. package/dist/cmd/cloud/queue/messages.js.map +1 -0
  110. package/dist/cmd/cloud/queue/nack.d.ts +3 -0
  111. package/dist/cmd/cloud/queue/nack.d.ts.map +1 -0
  112. package/dist/cmd/cloud/queue/nack.js +45 -0
  113. package/dist/cmd/cloud/queue/nack.js.map +1 -0
  114. package/dist/cmd/cloud/queue/pause.d.ts +3 -0
  115. package/dist/cmd/cloud/queue/pause.d.ts.map +1 -0
  116. package/dist/cmd/cloud/queue/pause.js +36 -0
  117. package/dist/cmd/cloud/queue/pause.js.map +1 -0
  118. package/dist/cmd/cloud/queue/publish.d.ts +3 -0
  119. package/dist/cmd/cloud/queue/publish.d.ts.map +1 -0
  120. package/dist/cmd/cloud/queue/publish.js +76 -0
  121. package/dist/cmd/cloud/queue/publish.js.map +1 -0
  122. package/dist/cmd/cloud/queue/receive.d.ts +3 -0
  123. package/dist/cmd/cloud/queue/receive.d.ts.map +1 -0
  124. package/dist/cmd/cloud/queue/receive.js +67 -0
  125. package/dist/cmd/cloud/queue/receive.js.map +1 -0
  126. package/dist/cmd/cloud/queue/resume.d.ts +3 -0
  127. package/dist/cmd/cloud/queue/resume.d.ts.map +1 -0
  128. package/dist/cmd/cloud/queue/resume.js +35 -0
  129. package/dist/cmd/cloud/queue/resume.js.map +1 -0
  130. package/dist/cmd/cloud/queue/sources.d.ts +3 -0
  131. package/dist/cmd/cloud/queue/sources.d.ts.map +1 -0
  132. package/dist/cmd/cloud/queue/sources.js +290 -0
  133. package/dist/cmd/cloud/queue/sources.js.map +1 -0
  134. package/dist/cmd/cloud/queue/stats.d.ts +3 -0
  135. package/dist/cmd/cloud/queue/stats.d.ts.map +1 -0
  136. package/dist/cmd/cloud/queue/stats.js +239 -0
  137. package/dist/cmd/cloud/queue/stats.js.map +1 -0
  138. package/dist/cmd/cloud/queue/util.d.ts +26 -0
  139. package/dist/cmd/cloud/queue/util.d.ts.map +1 -0
  140. package/dist/cmd/cloud/queue/util.js +19 -0
  141. package/dist/cmd/cloud/queue/util.js.map +1 -0
  142. package/dist/cmd/cloud/sandbox/snapshot/build.d.ts.map +1 -1
  143. package/dist/cmd/cloud/sandbox/snapshot/build.js +122 -28
  144. package/dist/cmd/cloud/sandbox/snapshot/build.js.map +1 -1
  145. package/dist/cmd/cloud/sandbox/snapshot/create.d.ts.map +1 -1
  146. package/dist/cmd/cloud/sandbox/snapshot/create.js +19 -7
  147. package/dist/cmd/cloud/sandbox/snapshot/create.js.map +1 -1
  148. package/dist/cmd/cloud/sandbox/snapshot/get.d.ts.map +1 -1
  149. package/dist/cmd/cloud/sandbox/snapshot/get.js +16 -0
  150. package/dist/cmd/cloud/sandbox/snapshot/get.js.map +1 -1
  151. package/dist/cmd/cloud/sandbox/snapshot/list.d.ts.map +1 -1
  152. package/dist/cmd/cloud/sandbox/snapshot/list.js +4 -0
  153. package/dist/cmd/cloud/sandbox/snapshot/list.js.map +1 -1
  154. package/dist/cmd/cloud/vector/stats.d.ts.map +1 -1
  155. package/dist/cmd/cloud/vector/stats.js +8 -0
  156. package/dist/cmd/cloud/vector/stats.js.map +1 -1
  157. package/dist/cmd/project/create.d.ts.map +1 -1
  158. package/dist/cmd/project/create.js +12 -0
  159. package/dist/cmd/project/create.js.map +1 -1
  160. package/dist/cmd/project/template-flow.d.ts +3 -0
  161. package/dist/cmd/project/template-flow.d.ts.map +1 -1
  162. package/dist/cmd/project/template-flow.js +157 -68
  163. package/dist/cmd/project/template-flow.js.map +1 -1
  164. package/dist/cmd/setup/index.d.ts.map +1 -1
  165. package/dist/cmd/setup/index.js +2 -1
  166. package/dist/cmd/setup/index.js.map +1 -1
  167. package/dist/env-util.d.ts +6 -1
  168. package/dist/env-util.d.ts.map +1 -1
  169. package/dist/env-util.js +16 -2
  170. package/dist/env-util.js.map +1 -1
  171. package/dist/errors.d.ts +4 -2
  172. package/dist/errors.d.ts.map +1 -1
  173. package/dist/errors.js +6 -0
  174. package/dist/errors.js.map +1 -1
  175. package/dist/onboarding/agentPrompt.d.ts +8 -0
  176. package/dist/onboarding/agentPrompt.d.ts.map +1 -0
  177. package/dist/onboarding/agentPrompt.js +263 -0
  178. package/dist/onboarding/agentPrompt.js.map +1 -0
  179. package/dist/schema-generator.d.ts +1 -1
  180. package/dist/schema-generator.d.ts.map +1 -1
  181. package/dist/schema-parser.d.ts +1 -1
  182. package/dist/schema-parser.d.ts.map +1 -1
  183. package/dist/schema-parser.js +36 -1
  184. package/dist/schema-parser.js.map +1 -1
  185. package/dist/tui/box.d.ts +4 -0
  186. package/dist/tui/box.d.ts.map +1 -1
  187. package/dist/tui/box.js +39 -0
  188. package/dist/tui/box.js.map +1 -1
  189. package/dist/tui.d.ts +11 -1
  190. package/dist/tui.d.ts.map +1 -1
  191. package/dist/tui.js +33 -15
  192. package/dist/tui.js.map +1 -1
  193. package/dist/types.d.ts.map +1 -1
  194. package/dist/types.js.map +1 -1
  195. package/package.json +6 -6
  196. package/src/cli.ts +19 -2
  197. package/src/cmd/ai/opencode/install.ts +1 -1
  198. package/src/cmd/build/ast.ts +88 -2
  199. package/src/cmd/build/vite/registry-generator.ts +120 -24
  200. package/src/cmd/build/vite/route-discovery.ts +16 -0
  201. package/src/cmd/cloud/env/delete.ts +113 -41
  202. package/src/cmd/cloud/env/get.ts +60 -16
  203. package/src/cmd/cloud/env/import.ts +92 -44
  204. package/src/cmd/cloud/env/index.ts +6 -2
  205. package/src/cmd/cloud/env/list.ts +112 -27
  206. package/src/cmd/cloud/env/org-util.ts +37 -0
  207. package/src/cmd/cloud/env/pull.ts +72 -31
  208. package/src/cmd/cloud/env/push.ts +84 -35
  209. package/src/cmd/cloud/env/set.ts +89 -33
  210. package/src/cmd/cloud/index.ts +2 -0
  211. package/src/cmd/cloud/keyvalue/create-namespace.ts +1 -1
  212. package/src/cmd/cloud/keyvalue/delete-namespace.ts +2 -2
  213. package/src/cmd/cloud/keyvalue/delete.ts +1 -1
  214. package/src/cmd/cloud/keyvalue/get.ts +1 -1
  215. package/src/cmd/cloud/keyvalue/index.ts +1 -1
  216. package/src/cmd/cloud/keyvalue/keys.ts +1 -1
  217. package/src/cmd/cloud/keyvalue/list-namespaces.ts +1 -1
  218. package/src/cmd/cloud/keyvalue/repl.ts +8 -5
  219. package/src/cmd/cloud/keyvalue/search.ts +1 -1
  220. package/src/cmd/cloud/keyvalue/set.ts +1 -1
  221. package/src/cmd/cloud/keyvalue/stats.ts +1 -1
  222. package/src/cmd/cloud/keyvalue/util.ts +8 -17
  223. package/src/cmd/cloud/queue/ack.ts +50 -0
  224. package/src/cmd/cloud/queue/create.ts +91 -0
  225. package/src/cmd/cloud/queue/delete.ts +57 -0
  226. package/src/cmd/cloud/queue/destinations.ts +287 -0
  227. package/src/cmd/cloud/queue/dlq.ts +203 -0
  228. package/src/cmd/cloud/queue/get.ts +158 -0
  229. package/src/cmd/cloud/queue/index.ts +66 -0
  230. package/src/cmd/cloud/queue/list.ts +81 -0
  231. package/src/cmd/cloud/queue/messages.ts +160 -0
  232. package/src/cmd/cloud/queue/nack.ts +50 -0
  233. package/src/cmd/cloud/queue/pause.ts +41 -0
  234. package/src/cmd/cloud/queue/publish.ts +88 -0
  235. package/src/cmd/cloud/queue/receive.ts +76 -0
  236. package/src/cmd/cloud/queue/resume.ts +40 -0
  237. package/src/cmd/cloud/queue/sources.ts +352 -0
  238. package/src/cmd/cloud/queue/stats.ts +297 -0
  239. package/src/cmd/cloud/queue/util.ts +34 -0
  240. package/src/cmd/cloud/sandbox/snapshot/build.ts +146 -29
  241. package/src/cmd/cloud/sandbox/snapshot/create.ts +24 -7
  242. package/src/cmd/cloud/sandbox/snapshot/get.ts +16 -0
  243. package/src/cmd/cloud/sandbox/snapshot/list.ts +4 -0
  244. package/src/cmd/cloud/vector/stats.ts +9 -0
  245. package/src/cmd/project/create.ts +12 -0
  246. package/src/cmd/project/template-flow.ts +181 -69
  247. package/src/cmd/setup/index.ts +2 -1
  248. package/src/env-util.ts +17 -2
  249. package/src/errors.ts +8 -0
  250. package/src/onboarding/agentPrompt.ts +263 -0
  251. package/src/schema-generator.ts +1 -1
  252. package/src/schema-parser.ts +45 -3
  253. package/src/tui/box.ts +52 -0
  254. package/src/tui.ts +47 -17
  255. package/src/types.ts +0 -1
@@ -1,29 +1,27 @@
1
1
  import { z } from 'zod';
2
2
  import { createSubcommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
- import { projectEnvUpdate } from '@agentuity/server';
4
+ import { projectEnvUpdate, orgEnvUpdate } from '@agentuity/server';
5
5
  import { findExistingEnvFile, readEnvFile, writeEnvFile, filterAgentuitySdkKeys, mergeEnvVars, splitEnvAndSecrets, validateNoPublicSecrets, isReservedAgentuityKey, } from '../../../env-util';
6
6
  import { getCommand } from '../../../command-prefix';
7
+ import { resolveOrgId, isOrgScope } from './org-util';
7
8
  const EnvImportResponseSchema = z.object({
8
9
  success: z.boolean().describe('Whether import succeeded'),
9
10
  imported: z.number().describe('Number of items imported'),
10
11
  envCount: z.number().describe('Number of env vars imported'),
11
12
  secretCount: z.number().describe('Number of secrets imported'),
12
13
  skipped: z.number().describe('Number of items skipped'),
13
- path: z.string().describe('Local file path where variables were saved'),
14
+ path: z
15
+ .string()
16
+ .optional()
17
+ .describe('Local file path where variables were saved (project scope only)'),
14
18
  file: z.string().describe('Source file path'),
19
+ scope: z.enum(['project', 'org']).describe('The scope where variables were imported'),
15
20
  });
16
21
  export const importSubcommand = createSubcommand({
17
22
  name: 'import',
18
23
  description: 'Import environment variables and secrets from a file to cloud and local .env',
19
- tags: [
20
- 'mutating',
21
- 'creates-resource',
22
- 'slow',
23
- 'api-intensive',
24
- 'requires-auth',
25
- 'requires-project',
26
- ],
24
+ tags: ['mutating', 'creates-resource', 'slow', 'api-intensive', 'requires-auth'],
27
25
  examples: [
28
26
  {
29
27
  command: getCommand('cloud env import .env.backup'),
@@ -33,17 +31,33 @@ export const importSubcommand = createSubcommand({
33
31
  command: getCommand('cloud env import .env.local'),
34
32
  description: 'Import from .env.local file',
35
33
  },
34
+ {
35
+ command: getCommand('cloud env import .env.shared --org'),
36
+ description: 'Import to organization level',
37
+ },
36
38
  ],
37
39
  idempotent: false,
38
- requires: { auth: true, project: true, apiClient: true },
40
+ requires: { auth: true, apiClient: true },
41
+ optional: { project: true },
39
42
  schema: {
40
43
  args: z.object({
41
44
  file: z.string().describe('path to the .env file to import'),
42
45
  }),
46
+ options: z.object({
47
+ org: z
48
+ .union([z.boolean(), z.string()])
49
+ .optional()
50
+ .describe('import to organization level (use --org for default org)'),
51
+ }),
43
52
  response: EnvImportResponseSchema,
44
53
  },
45
54
  async handler(ctx) {
46
- const { args, apiClient, project, projectDir } = ctx;
55
+ const { args, apiClient, project, projectDir, config, opts } = ctx;
56
+ const useOrgScope = isOrgScope(opts?.org);
57
+ // Require project context if not using org scope
58
+ if (!useOrgScope && !project) {
59
+ tui.fatal('Project context required. Run from a project directory or use --org for organization scope.');
60
+ }
47
61
  // Read the import file
48
62
  const importedVars = await readEnvFile(args.file);
49
63
  if (Object.keys(importedVars).length === 0) {
@@ -54,8 +68,8 @@ export const importSubcommand = createSubcommand({
54
68
  envCount: 0,
55
69
  secretCount: 0,
56
70
  skipped: 0,
57
- path: '',
58
71
  file: args.file,
72
+ scope: useOrgScope ? 'org' : 'project',
59
73
  };
60
74
  }
61
75
  // Filter out reserved AGENTUITY_ prefixed keys
@@ -68,8 +82,8 @@ export const importSubcommand = createSubcommand({
68
82
  envCount: 0,
69
83
  secretCount: 0,
70
84
  skipped: Object.keys(importedVars).length,
71
- path: '',
72
85
  file: args.file,
86
+ scope: useOrgScope ? 'org' : 'project',
73
87
  };
74
88
  }
75
89
  // Split into env and secrets based on key naming conventions
@@ -83,34 +97,61 @@ export const importSubcommand = createSubcommand({
83
97
  env[key] = filteredVars[key];
84
98
  }
85
99
  }
86
- // Push to cloud
87
- await tui.spinner('Importing variables to cloud', () => {
88
- return projectEnvUpdate(apiClient, {
89
- id: project.projectId,
90
- env,
91
- secrets,
92
- });
93
- });
94
- // Merge with local .env file
95
- const localEnvPath = await findExistingEnvFile(projectDir);
96
- const localEnv = await readEnvFile(localEnvPath);
97
- const mergedEnv = mergeEnvVars(localEnv, filteredVars);
98
- await writeEnvFile(localEnvPath, mergedEnv, {
99
- skipKeys: Object.keys(mergedEnv).filter(isReservedAgentuityKey),
100
- });
101
100
  const envCount = Object.keys(env).length;
102
101
  const secretCount = Object.keys(secrets).length;
103
102
  const totalCount = envCount + secretCount;
104
- tui.success(`Imported ${totalCount} variable${totalCount !== 1 ? 's' : ''} from ${args.file} (${envCount} env, ${secretCount} secret${secretCount !== 1 ? 's' : ''})`);
105
- return {
106
- success: true,
107
- imported: totalCount,
108
- envCount,
109
- secretCount,
110
- skipped: Object.keys(importedVars).length - totalCount,
111
- path: localEnvPath,
112
- file: args.file,
113
- };
103
+ if (useOrgScope) {
104
+ // Organization scope
105
+ const orgId = await resolveOrgId(apiClient, config, opts.org);
106
+ await tui.spinner('Importing variables to organization', () => {
107
+ return orgEnvUpdate(apiClient, {
108
+ id: orgId,
109
+ env,
110
+ secrets,
111
+ });
112
+ });
113
+ tui.success(`Imported ${totalCount} variable${totalCount !== 1 ? 's' : ''} to organization from ${args.file} (${envCount} env, ${secretCount} secret${secretCount !== 1 ? 's' : ''})`);
114
+ return {
115
+ success: true,
116
+ imported: totalCount,
117
+ envCount,
118
+ secretCount,
119
+ skipped: Object.keys(importedVars).length - totalCount,
120
+ file: args.file,
121
+ scope: 'org',
122
+ };
123
+ }
124
+ else {
125
+ // Project scope (existing behavior)
126
+ await tui.spinner('Importing variables to cloud', () => {
127
+ return projectEnvUpdate(apiClient, {
128
+ id: project.projectId,
129
+ env,
130
+ secrets,
131
+ });
132
+ });
133
+ // Merge with local .env file only if we have a project directory
134
+ let localEnvPath;
135
+ if (projectDir) {
136
+ localEnvPath = await findExistingEnvFile(projectDir);
137
+ const localEnv = await readEnvFile(localEnvPath);
138
+ const mergedEnv = mergeEnvVars(localEnv, filteredVars);
139
+ await writeEnvFile(localEnvPath, mergedEnv, {
140
+ skipKeys: Object.keys(mergedEnv).filter(isReservedAgentuityKey),
141
+ });
142
+ }
143
+ tui.success(`Imported ${totalCount} variable${totalCount !== 1 ? 's' : ''} from ${args.file} (${envCount} env, ${secretCount} secret${secretCount !== 1 ? 's' : ''})`);
144
+ return {
145
+ success: true,
146
+ imported: totalCount,
147
+ envCount,
148
+ secretCount,
149
+ skipped: Object.keys(importedVars).length - totalCount,
150
+ path: localEnvPath,
151
+ file: args.file,
152
+ scope: 'project',
153
+ };
154
+ }
114
155
  },
115
156
  });
116
157
  //# sourceMappingURL=import.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/import.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/import.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EACN,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,GACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACzD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;IACzD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;IAC9D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;IACvD,IAAI,EAAE,CAAC;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iEAAiE,CAAC;IAC7E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;IAC7C,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,yCAAyC,CAAC;CACrF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;IAChD,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,8EAA8E;IAC3F,IAAI,EAAE,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,CAAC;IAChF,QAAQ,EAAE;QACT;YACC,OAAO,EAAE,UAAU,CAAC,8BAA8B,CAAC;YACnD,WAAW,EAAE,mCAAmC;SAChD;QACD;YACC,OAAO,EAAE,UAAU,CAAC,6BAA6B,CAAC;YAClD,WAAW,EAAE,6BAA6B;SAC1C;QACD;YACC,OAAO,EAAE,UAAU,CAAC,oCAAoC,CAAC;YACzD,WAAW,EAAE,8BAA8B;SAC3C;KACD;IACD,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IACzC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;IAC3B,MAAM,EAAE;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SAC5D,CAAC;QACF,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,GAAG,EAAE,CAAC;iBACJ,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;iBAChC,QAAQ,EAAE;iBACV,QAAQ,CAAC,0DAA0D,CAAC;SACtE,CAAC;QACF,QAAQ,EAAE,uBAAuB;KACjC;IAED,KAAK,CAAC,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QACnE,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAE1C,iDAAiD;QACjD,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;YAC9B,GAAG,CAAC,KAAK,CACR,6FAA6F,CAC7F,CAAC;QACH,CAAC;QAED,uBAAuB;QACvB,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,OAAO,CAAC,yBAAyB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAClD,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,WAAW,EAAE,CAAC;gBACd,OAAO,EAAE,CAAC;gBACV,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,WAAW,CAAC,CAAC,CAAE,KAAe,CAAC,CAAC,CAAE,SAAmB;aAC5D,CAAC;QACH,CAAC;QAED,+CAA+C;QAC/C,MAAM,YAAY,GAAG,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAE1D,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5C,GAAG,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC;YACpF,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;gBACX,WAAW,EAAE,CAAC;gBACd,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM;gBACzC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,WAAW,CAAC,CAAC,CAAE,KAAe,CAAC,CAAC,CAAE,SAAmB;aAC5D,CAAC;QACH,CAAC;QAED,6DAA6D;QAC7D,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC;QAE1D,oEAAoE;QACpE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC1D,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,OAAO,CACV,mCAAmC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,sCAAsC,CACpG,CAAC;YACF,KAAK,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBACpC,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC;gBACpB,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACzC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QAChD,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;QAE1C,IAAI,WAAW,EAAE,CAAC;YACjB,qBAAqB;YACrB,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,IAAK,CAAC,GAAI,CAAC,CAAC;YAEhE,MAAM,GAAG,CAAC,OAAO,CAAC,qCAAqC,EAAE,GAAG,EAAE;gBAC7D,OAAO,YAAY,CAAC,SAAS,EAAE;oBAC9B,EAAE,EAAE,KAAK;oBACT,GAAG;oBACH,OAAO;iBACP,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,OAAO,CACV,YAAY,UAAU,YAAY,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,yBAAyB,IAAI,CAAC,IAAI,KAAK,QAAQ,SAAS,WAAW,UAAU,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CACzK,CAAC;YAEF,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,UAAU;gBACpB,QAAQ;gBACR,WAAW;gBACX,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,UAAU;gBACtD,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,KAAc;aACrB,CAAC;QACH,CAAC;aAAM,CAAC;YACP,oCAAoC;YACpC,MAAM,GAAG,CAAC,OAAO,CAAC,8BAA8B,EAAE,GAAG,EAAE;gBACtD,OAAO,gBAAgB,CAAC,SAAS,EAAE;oBAClC,EAAE,EAAE,OAAQ,CAAC,SAAS;oBACtB,GAAG;oBACH,OAAO;iBACP,CAAC,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,iEAAiE;YACjE,IAAI,YAAgC,CAAC;YACrC,IAAI,UAAU,EAAE,CAAC;gBAChB,YAAY,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;gBACrD,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC;gBACjD,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;gBAEvD,MAAM,YAAY,CAAC,YAAY,EAAE,SAAS,EAAE;oBAC3C,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC;iBAC/D,CAAC,CAAC;YACJ,CAAC;YAED,GAAG,CAAC,OAAO,CACV,YAAY,UAAU,YAAY,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,CAAC,IAAI,KAAK,QAAQ,SAAS,WAAW,UAAU,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CACzJ,CAAC;YAEF,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,UAAU;gBACpB,QAAQ;gBACR,WAAW;gBACX,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,UAAU;gBACtD,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,SAAkB;aACzB,CAAC;QACH,CAAC;IACF,CAAC;CACD,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,OAAO,sCAwBlB,CAAC;AACH,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,OAAO,sCA4BlB,CAAC;AACH,eAAe,OAAO,CAAC"}
@@ -9,8 +9,8 @@ import { listSubcommand } from './list';
9
9
  import { getCommand } from '../../../command-prefix';
10
10
  export const command = createCommand({
11
11
  name: 'env',
12
- description: 'Manage environment variables and secrets for your project',
13
- tags: ['fast', 'requires-auth', 'requires-project'],
12
+ description: 'Manage environment variables and secrets for your project or organization',
13
+ tags: ['fast', 'requires-auth'],
14
14
  examples: [
15
15
  { command: getCommand('cloud env list'), description: 'List all variables and secrets' },
16
16
  {
@@ -21,6 +21,10 @@ export const command = createCommand({
21
21
  command: getCommand('cloud env set API_KEY "sk_..." --secret'),
22
22
  description: 'Set a secret',
23
23
  },
24
+ {
25
+ command: getCommand('cloud env set OPENAI_API_KEY "sk_..." --secret --org'),
26
+ description: 'Set an organization-wide secret',
27
+ },
24
28
  ],
25
29
  subcommands: [
26
30
  listSubcommand,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;IACpC,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,2DAA2D;IACxE,IAAI,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,kBAAkB,CAAC;IACnD,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE;QACxF;YACC,OAAO,EAAE,UAAU,CAAC,mCAAmC,CAAC;YACxD,WAAW,EAAE,0BAA0B;SACvC;QACD;YACC,OAAO,EAAE,UAAU,CAAC,yCAAyC,CAAC;YAC9D,WAAW,EAAE,cAAc;SAC3B;KACD;IACD,WAAW,EAAE;QACZ,cAAc;QACd,cAAc;QACd,cAAc;QACd,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,gBAAgB;KAChB;CACD,CAAC,CAAC;AACH,eAAe,OAAO,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,OAAO,GAAG,aAAa,CAAC;IACpC,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,2EAA2E;IACxF,IAAI,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAC/B,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,UAAU,CAAC,gBAAgB,CAAC,EAAE,WAAW,EAAE,gCAAgC,EAAE;QACxF;YACC,OAAO,EAAE,UAAU,CAAC,mCAAmC,CAAC;YACxD,WAAW,EAAE,0BAA0B;SACvC;QACD;YACC,OAAO,EAAE,UAAU,CAAC,yCAAyC,CAAC;YAC9D,WAAW,EAAE,cAAc;SAC3B;QACD;YACC,OAAO,EAAE,UAAU,CAAC,sDAAsD,CAAC;YAC3E,WAAW,EAAE,iCAAiC;SAC9C;KACD;IACD,WAAW,EAAE;QACZ,cAAc;QACd,cAAc;QACd,cAAc;QACd,aAAa;QACb,aAAa;QACb,gBAAgB;QAChB,gBAAgB;KAChB;CACD,CAAC,CAAC;AACH,eAAe,OAAO,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/list.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,cAAc,yCAsFzB,CAAC"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/list.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,cAAc,yCAyKzB,CAAC"}
@@ -1,25 +1,32 @@
1
1
  import { z } from 'zod';
2
2
  import { createSubcommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
- import { projectGet } from '@agentuity/server';
4
+ import { projectGet, orgEnvGet } from '@agentuity/server';
5
5
  import { getCommand } from '../../../command-prefix';
6
+ import { resolveOrgId, isOrgScope } from './org-util';
6
7
  const EnvItemSchema = z.object({
7
8
  value: z.string().describe('Variable value'),
8
9
  secret: z.boolean().describe('Whether this is a secret'),
10
+ scope: z.enum(['project', 'org']).describe('The scope of the variable'),
9
11
  });
10
12
  const EnvListResponseSchema = z.record(z.string(), EnvItemSchema);
11
13
  export const listSubcommand = createSubcommand({
12
14
  name: 'list',
13
15
  aliases: ['ls'],
14
16
  description: 'List all environment variables and secrets',
15
- tags: ['read-only', 'fast', 'requires-auth', 'requires-project'],
17
+ tags: ['read-only', 'fast', 'requires-auth'],
16
18
  examples: [
17
- { command: getCommand('env list'), description: 'List all variables' },
19
+ { command: getCommand('env list'), description: 'List all variables (project + org merged)' },
18
20
  { command: getCommand('env list --no-mask'), description: 'Show unmasked values' },
19
21
  { command: getCommand('env list --secrets'), description: 'List only secrets' },
20
22
  { command: getCommand('env list --env-only'), description: 'List only env vars' },
23
+ {
24
+ command: getCommand('env list --org'),
25
+ description: 'List only organization-level variables',
26
+ },
21
27
  ],
22
- requires: { auth: true, project: true, apiClient: true },
28
+ requires: { auth: true, apiClient: true },
29
+ optional: { project: true },
23
30
  idempotent: true,
24
31
  schema: {
25
32
  options: z.object({
@@ -29,33 +36,96 @@ export const listSubcommand = createSubcommand({
29
36
  .describe('mask secret values in output (use --no-mask to show values)'),
30
37
  secrets: z.boolean().default(false).describe('list only secrets'),
31
38
  'env-only': z.boolean().default(false).describe('list only environment variables'),
39
+ org: z
40
+ .union([z.boolean(), z.string()])
41
+ .optional()
42
+ .describe('list organization-level variables only (use --org for default org)'),
32
43
  }),
33
44
  response: EnvListResponseSchema,
34
45
  },
35
- webUrl: (ctx) => `/projects/${encodeURIComponent(ctx.project.projectId)}/settings`,
46
+ webUrl: (ctx) => {
47
+ // If --org flag is used, link to org settings; otherwise link to project settings
48
+ if (ctx.opts?.org) {
49
+ return `/settings/organization/env`;
50
+ }
51
+ return ctx.project
52
+ ? `/projects/${encodeURIComponent(ctx.project.projectId)}/settings`
53
+ : undefined;
54
+ },
36
55
  async handler(ctx) {
37
- const { opts, apiClient, project, options } = ctx;
38
- // Fetch project with unmasked values
39
- const projectData = await tui.spinner('Fetching variables', () => {
40
- return projectGet(apiClient, { id: project.projectId, mask: false });
41
- });
42
- const env = projectData.env || {};
43
- const secrets = projectData.secrets || {};
44
- // Build combined result with type info
56
+ const { opts, apiClient, project, options, config } = ctx;
57
+ const useOrgScope = isOrgScope(opts?.org);
58
+ // Build combined result with type info and scope
45
59
  const result = {};
46
60
  // Filter based on options
47
61
  const showEnv = !opts?.secrets;
48
62
  const showSecrets = !opts?.['env-only'];
49
- if (showEnv) {
50
- for (const [key, value] of Object.entries(env)) {
51
- result[key] = { value, secret: false };
63
+ if (useOrgScope) {
64
+ // Organization scope only
65
+ const orgId = await resolveOrgId(apiClient, config, opts.org);
66
+ const orgData = await tui.spinner('Fetching organization variables', () => {
67
+ return orgEnvGet(apiClient, { id: orgId, mask: false });
68
+ });
69
+ const orgEnv = orgData.env || {};
70
+ const orgSecrets = orgData.secrets || {};
71
+ if (showEnv) {
72
+ for (const [key, value] of Object.entries(orgEnv)) {
73
+ result[key] = { value, secret: false, scope: 'org' };
74
+ }
75
+ }
76
+ if (showSecrets) {
77
+ for (const [key, value] of Object.entries(orgSecrets)) {
78
+ result[key] = { value, secret: true, scope: 'org' };
79
+ }
52
80
  }
53
81
  }
54
- if (showSecrets) {
55
- for (const [key, value] of Object.entries(secrets)) {
56
- result[key] = { value, secret: true };
82
+ else if (project) {
83
+ // Project context: show merged view (org + project, project takes precedence)
84
+ // First, get project's org ID and fetch org env
85
+ const projectData = await tui.spinner('Fetching variables', () => {
86
+ return projectGet(apiClient, { id: project.projectId, mask: false });
87
+ });
88
+ const projectEnv = projectData.env || {};
89
+ const projectSecrets = projectData.secrets || {};
90
+ // Try to get org-level env (may fail if no access, that's ok)
91
+ let orgEnv = {};
92
+ let orgSecrets = {};
93
+ if (projectData.orgId) {
94
+ try {
95
+ const orgData = await orgEnvGet(apiClient, { id: projectData.orgId, mask: false });
96
+ orgEnv = orgData.env || {};
97
+ orgSecrets = orgData.secrets || {};
98
+ }
99
+ catch {
100
+ // Ignore errors - user may not have org env access
101
+ }
102
+ }
103
+ // Add org-level first (will be overridden by project-level)
104
+ if (showEnv) {
105
+ for (const [key, value] of Object.entries(orgEnv)) {
106
+ result[key] = { value, secret: false, scope: 'org' };
107
+ }
108
+ }
109
+ if (showSecrets) {
110
+ for (const [key, value] of Object.entries(orgSecrets)) {
111
+ result[key] = { value, secret: true, scope: 'org' };
112
+ }
113
+ }
114
+ // Add project-level (overrides org-level)
115
+ if (showEnv) {
116
+ for (const [key, value] of Object.entries(projectEnv)) {
117
+ result[key] = { value, secret: false, scope: 'project' };
118
+ }
119
+ }
120
+ if (showSecrets) {
121
+ for (const [key, value] of Object.entries(projectSecrets)) {
122
+ result[key] = { value, secret: true, scope: 'project' };
123
+ }
57
124
  }
58
125
  }
126
+ else {
127
+ tui.fatal('Project context required. Run from a project directory or use --org for organization scope.');
128
+ }
59
129
  // Skip TUI output in JSON mode
60
130
  if (!options.json) {
61
131
  if (Object.keys(result).length === 0) {
@@ -63,22 +133,28 @@ export const listSubcommand = createSubcommand({
63
133
  }
64
134
  else {
65
135
  tui.newline();
66
- const envCount = showEnv ? Object.keys(env).length : 0;
67
- const secretCount = showSecrets ? Object.keys(secrets).length : 0;
136
+ const projectCount = Object.values(result).filter((v) => v.scope === 'project').length;
137
+ const orgCount = Object.values(result).filter((v) => v.scope === 'org').length;
138
+ const secretCount = Object.values(result).filter((v) => v.secret).length;
139
+ const envCount = Object.values(result).filter((v) => !v.secret).length;
68
140
  const parts = [];
69
141
  if (envCount > 0)
70
142
  parts.push(`${envCount} env`);
71
143
  if (secretCount > 0)
72
144
  parts.push(`${secretCount} secret${secretCount !== 1 ? 's' : ''}`);
145
+ if (!useOrgScope && projectCount > 0 && orgCount > 0) {
146
+ parts.push(`${projectCount} project, ${orgCount} org`);
147
+ }
73
148
  tui.info(`Variables (${parts.join(', ')}):`);
74
149
  tui.newline();
75
150
  const sortedKeys = Object.keys(result).sort();
76
151
  const shouldMask = opts?.mask !== false;
77
152
  for (const key of sortedKeys) {
78
- const { value, secret } = result[key];
153
+ const { value, secret, scope } = result[key];
79
154
  const displayValue = shouldMask && secret ? tui.maskSecret(value) : value;
80
155
  const typeIndicator = secret ? ' [secret]' : '';
81
- console.log(`${tui.bold(key)}=${displayValue}${tui.muted(typeIndicator)}`);
156
+ const scopeIndicator = !useOrgScope ? ` [${scope}]` : '';
157
+ console.log(`${tui.bold(key)}=${displayValue}${tui.muted(typeIndicator + scopeIndicator)}`);
82
158
  }
83
159
  }
84
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;CACxD,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC;AAElE,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;IAC9C,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,WAAW,EAAE,4CAA4C;IACzD,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,kBAAkB,CAAC;IAChE,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,UAAU,CAAC,UAAU,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE;QACtE,EAAE,OAAO,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE;QAClF,EAAE,OAAO,EAAE,UAAU,CAAC,oBAAoB,CAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE;QAC/E,EAAE,OAAO,EAAE,UAAU,CAAC,qBAAqB,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE;KACjF;IACD,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IACxD,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE;QACP,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,CAAC;iBACL,OAAO,EAAE;iBACT,OAAO,CAAC,IAAI,CAAC;iBACb,QAAQ,CAAC,6DAA6D,CAAC;YACzE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;YACjE,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,iCAAiC,CAAC;SAClF,CAAC;QACF,QAAQ,EAAE,qBAAqB;KAC/B;IACD,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW;IAElF,KAAK,CAAC,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC;QAElD,qCAAqC;QACrC,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,GAAG,EAAE;YAChE,OAAO,UAAU,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,IAAI,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;QAE1C,uCAAuC;QACvC,MAAM,MAAM,GAAuD,EAAE,CAAC;QAEtE,0BAA0B;QAC1B,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/B,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,CAAC;QAExC,IAAI,OAAO,EAAE,CAAC;YACb,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;YACxC,CAAC;QACF,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YACjB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACpD,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;YACvC,CAAC;QACF,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACtC,GAAG,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAChC,CAAC;iBAAM,CAAC;gBACP,GAAG,CAAC,OAAO,EAAE,CAAC;gBAEd,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,IAAI,QAAQ,GAAG,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,MAAM,CAAC,CAAC;gBAChD,IAAI,WAAW,GAAG,CAAC;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,WAAW,UAAU,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAExF,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,GAAG,CAAC,OAAO,EAAE,CAAC;gBAEd,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC9C,MAAM,UAAU,GAAG,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC;gBAExC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;oBACtC,MAAM,YAAY,GAAG,UAAU,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAC1E,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChD,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;gBAC5E,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;CACD,CAAC,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { APIClient } from '../../../api';
2
+ import type { Config } from '../../../types';
3
+ /**
4
+ * Resolves the organization ID for org-scoped env operations.
5
+ *
6
+ * @param apiClient - The API client
7
+ * @param config - The CLI config (may be null)
8
+ * @param orgOption - The --org option value (true for default/prompt, or explicit org ID)
9
+ * @returns The resolved organization ID
10
+ */
11
+ export declare function resolveOrgId(apiClient: APIClient, config: Config | null, orgOption: boolean | string): Promise<string>;
12
+ /**
13
+ * Checks if we're operating in org scope based on the --org option.
14
+ */
15
+ export declare function isOrgScope(orgOption: boolean | string | undefined): boolean;
16
+ //# sourceMappingURL=org-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-util.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/org-util.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C;;;;;;;GAOG;AACH,wBAAsB,YAAY,CACjC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,SAAS,EAAE,OAAO,GAAG,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAE3E"}
@@ -0,0 +1,28 @@
1
+ import * as tui from '../../../tui';
2
+ import { listOrganizations } from '@agentuity/server';
3
+ /**
4
+ * Resolves the organization ID for org-scoped env operations.
5
+ *
6
+ * @param apiClient - The API client
7
+ * @param config - The CLI config (may be null)
8
+ * @param orgOption - The --org option value (true for default/prompt, or explicit org ID)
9
+ * @returns The resolved organization ID
10
+ */
11
+ export async function resolveOrgId(apiClient, config, orgOption) {
12
+ // If an explicit org ID was provided (string), use it directly
13
+ if (typeof orgOption === 'string' && orgOption !== 'true') {
14
+ return orgOption;
15
+ }
16
+ // Otherwise, we need to select an org
17
+ const orgs = await tui.spinner('Fetching organizations', () => listOrganizations(apiClient));
18
+ // Use preference if available, otherwise prompt
19
+ const preferredOrgId = config?.preferences?.orgId;
20
+ return tui.selectOrganization(orgs, preferredOrgId);
21
+ }
22
+ /**
23
+ * Checks if we're operating in org scope based on the --org option.
24
+ */
25
+ export function isOrgScope(orgOption) {
26
+ return orgOption === true || (typeof orgOption === 'string' && orgOption.length > 0);
27
+ }
28
+ //# sourceMappingURL=org-util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"org-util.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/org-util.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,GAAG,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CACjC,SAAoB,EACpB,MAAqB,EACrB,SAA2B;IAE3B,+DAA+D;IAC/D,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAC3D,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,sCAAsC;IACtC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC;IAE7F,gDAAgD;IAChD,MAAM,cAAc,GAAG,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC;IAClD,OAAO,GAAG,CAAC,kBAAkB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,SAAuC;IACjE,OAAO,SAAS,KAAK,IAAI,IAAI,CAAC,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACtF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/pull.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,cAAc,yCA8EzB,CAAC"}
1
+ {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/env/pull.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,cAAc,yCAqHzB,CAAC"}