@agentuity/cli 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/README.md +2 -2
  2. package/bin/cli.ts +8 -0
  3. package/dist/cache/index.d.ts +2 -0
  4. package/dist/cache/index.d.ts.map +1 -0
  5. package/dist/cache/index.js +2 -0
  6. package/dist/cache/index.js.map +1 -0
  7. package/dist/cache/resource-region.d.ts +46 -0
  8. package/dist/cache/resource-region.d.ts.map +1 -0
  9. package/dist/cache/resource-region.js +115 -0
  10. package/dist/cache/resource-region.js.map +1 -0
  11. package/dist/cli.d.ts.map +1 -1
  12. package/dist/cli.js +44 -32
  13. package/dist/cli.js.map +1 -1
  14. package/dist/cmd/ai/capabilities/show.d.ts.map +1 -1
  15. package/dist/cmd/ai/capabilities/show.js +12 -15
  16. package/dist/cmd/ai/capabilities/show.js.map +1 -1
  17. package/dist/cmd/ai/prompt/llm.js +5 -5
  18. package/dist/cmd/ai/prompt/llm.js.map +1 -1
  19. package/dist/cmd/auth/logout.d.ts.map +1 -1
  20. package/dist/cmd/auth/logout.js +5 -2
  21. package/dist/cmd/auth/logout.js.map +1 -1
  22. package/dist/cmd/build/ast.d.ts.map +1 -1
  23. package/dist/cmd/build/ast.js +87 -1
  24. package/dist/cmd/build/ast.js.map +1 -1
  25. package/dist/cmd/build/vite/vite-asset-server-config.d.ts.map +1 -1
  26. package/dist/cmd/build/vite/vite-asset-server-config.js +8 -3
  27. package/dist/cmd/build/vite/vite-asset-server-config.js.map +1 -1
  28. package/dist/cmd/build/vite/vite-asset-server.d.ts.map +1 -1
  29. package/dist/cmd/build/vite/vite-asset-server.js +5 -3
  30. package/dist/cmd/build/vite/vite-asset-server.js.map +1 -1
  31. package/dist/cmd/cloud/db/delete.d.ts.map +1 -1
  32. package/dist/cmd/cloud/db/delete.js +69 -11
  33. package/dist/cmd/cloud/db/delete.js.map +1 -1
  34. package/dist/cmd/cloud/db/get.d.ts.map +1 -1
  35. package/dist/cmd/cloud/db/get.js +23 -7
  36. package/dist/cmd/cloud/db/get.js.map +1 -1
  37. package/dist/cmd/cloud/db/list.d.ts.map +1 -1
  38. package/dist/cmd/cloud/db/list.js +15 -7
  39. package/dist/cmd/cloud/db/list.js.map +1 -1
  40. package/dist/cmd/cloud/db/logs.d.ts.map +1 -1
  41. package/dist/cmd/cloud/db/logs.js +24 -4
  42. package/dist/cmd/cloud/db/logs.js.map +1 -1
  43. package/dist/cmd/cloud/deploy.d.ts.map +1 -1
  44. package/dist/cmd/cloud/deploy.js +38 -0
  45. package/dist/cmd/cloud/deploy.js.map +1 -1
  46. package/dist/cmd/cloud/env/delete.d.ts.map +1 -1
  47. package/dist/cmd/cloud/env/delete.js +30 -13
  48. package/dist/cmd/cloud/env/delete.js.map +1 -1
  49. package/dist/cmd/cloud/env/get.d.ts.map +1 -1
  50. package/dist/cmd/cloud/env/get.js +27 -30
  51. package/dist/cmd/cloud/env/get.js.map +1 -1
  52. package/dist/cmd/cloud/env/import.d.ts.map +1 -1
  53. package/dist/cmd/cloud/env/import.js +41 -48
  54. package/dist/cmd/cloud/env/import.js.map +1 -1
  55. package/dist/cmd/cloud/env/index.d.ts.map +1 -1
  56. package/dist/cmd/cloud/env/index.js +6 -2
  57. package/dist/cmd/cloud/env/index.js.map +1 -1
  58. package/dist/cmd/cloud/env/list.d.ts.map +1 -1
  59. package/dist/cmd/cloud/env/list.js +51 -28
  60. package/dist/cmd/cloud/env/list.js.map +1 -1
  61. package/dist/cmd/cloud/env/pull.d.ts.map +1 -1
  62. package/dist/cmd/cloud/env/pull.js +3 -3
  63. package/dist/cmd/cloud/env/pull.js.map +1 -1
  64. package/dist/cmd/cloud/env/push.d.ts.map +1 -1
  65. package/dist/cmd/cloud/env/push.js +31 -11
  66. package/dist/cmd/cloud/env/push.js.map +1 -1
  67. package/dist/cmd/cloud/env/set.d.ts.map +1 -1
  68. package/dist/cmd/cloud/env/set.js +41 -26
  69. package/dist/cmd/cloud/env/set.js.map +1 -1
  70. package/dist/cmd/cloud/index.d.ts.map +1 -1
  71. package/dist/cmd/cloud/index.js +0 -2
  72. package/dist/cmd/cloud/index.js.map +1 -1
  73. package/dist/cmd/cloud/region-lookup.d.ts +18 -0
  74. package/dist/cmd/cloud/region-lookup.d.ts.map +1 -0
  75. package/dist/cmd/cloud/region-lookup.js +64 -0
  76. package/dist/cmd/cloud/region-lookup.js.map +1 -0
  77. package/dist/cmd/cloud/sandbox/cp.d.ts.map +1 -1
  78. package/dist/cmd/cloud/sandbox/cp.js +5 -3
  79. package/dist/cmd/cloud/sandbox/cp.js.map +1 -1
  80. package/dist/cmd/cloud/sandbox/create.d.ts.map +1 -1
  81. package/dist/cmd/cloud/sandbox/create.js +43 -6
  82. package/dist/cmd/cloud/sandbox/create.js.map +1 -1
  83. package/dist/cmd/cloud/sandbox/delete.d.ts.map +1 -1
  84. package/dist/cmd/cloud/sandbox/delete.js +5 -3
  85. package/dist/cmd/cloud/sandbox/delete.js.map +1 -1
  86. package/dist/cmd/cloud/sandbox/download.d.ts.map +1 -1
  87. package/dist/cmd/cloud/sandbox/download.js +4 -3
  88. package/dist/cmd/cloud/sandbox/download.js.map +1 -1
  89. package/dist/cmd/cloud/sandbox/env.d.ts.map +1 -1
  90. package/dist/cmd/cloud/sandbox/env.js +4 -3
  91. package/dist/cmd/cloud/sandbox/env.js.map +1 -1
  92. package/dist/cmd/cloud/sandbox/exec.d.ts.map +1 -1
  93. package/dist/cmd/cloud/sandbox/exec.js +4 -3
  94. package/dist/cmd/cloud/sandbox/exec.js.map +1 -1
  95. package/dist/cmd/cloud/sandbox/execution/get.js +4 -4
  96. package/dist/cmd/cloud/sandbox/execution/get.js.map +1 -1
  97. package/dist/cmd/cloud/sandbox/execution/index.js +1 -1
  98. package/dist/cmd/cloud/sandbox/execution/index.js.map +1 -1
  99. package/dist/cmd/cloud/sandbox/execution/list.d.ts.map +1 -1
  100. package/dist/cmd/cloud/sandbox/execution/list.js +4 -3
  101. package/dist/cmd/cloud/sandbox/execution/list.js.map +1 -1
  102. package/dist/cmd/cloud/sandbox/get.d.ts.map +1 -1
  103. package/dist/cmd/cloud/sandbox/get.js +9 -4
  104. package/dist/cmd/cloud/sandbox/get.js.map +1 -1
  105. package/dist/cmd/cloud/sandbox/index.js +1 -1
  106. package/dist/cmd/cloud/sandbox/index.js.map +1 -1
  107. package/dist/cmd/cloud/sandbox/list.js +4 -4
  108. package/dist/cmd/cloud/sandbox/list.js.map +1 -1
  109. package/dist/cmd/cloud/sandbox/ls.d.ts.map +1 -1
  110. package/dist/cmd/cloud/sandbox/ls.js +4 -3
  111. package/dist/cmd/cloud/sandbox/ls.js.map +1 -1
  112. package/dist/cmd/cloud/sandbox/mkdir.d.ts.map +1 -1
  113. package/dist/cmd/cloud/sandbox/mkdir.js +4 -3
  114. package/dist/cmd/cloud/sandbox/mkdir.js.map +1 -1
  115. package/dist/cmd/cloud/sandbox/rm.d.ts.map +1 -1
  116. package/dist/cmd/cloud/sandbox/rm.js +4 -3
  117. package/dist/cmd/cloud/sandbox/rm.js.map +1 -1
  118. package/dist/cmd/cloud/sandbox/rmdir.d.ts.map +1 -1
  119. package/dist/cmd/cloud/sandbox/rmdir.js +4 -3
  120. package/dist/cmd/cloud/sandbox/rmdir.js.map +1 -1
  121. package/dist/cmd/cloud/sandbox/run.d.ts.map +1 -1
  122. package/dist/cmd/cloud/sandbox/run.js +44 -6
  123. package/dist/cmd/cloud/sandbox/run.js.map +1 -1
  124. package/dist/cmd/cloud/sandbox/runtime/index.js +1 -1
  125. package/dist/cmd/cloud/sandbox/runtime/index.js.map +1 -1
  126. package/dist/cmd/cloud/sandbox/runtime/list.js +4 -4
  127. package/dist/cmd/cloud/sandbox/runtime/list.js.map +1 -1
  128. package/dist/cmd/cloud/sandbox/snapshot/create.d.ts.map +1 -1
  129. package/dist/cmd/cloud/sandbox/snapshot/create.js +5 -3
  130. package/dist/cmd/cloud/sandbox/snapshot/create.js.map +1 -1
  131. package/dist/cmd/cloud/sandbox/snapshot/delete.js +4 -4
  132. package/dist/cmd/cloud/sandbox/snapshot/delete.js.map +1 -1
  133. package/dist/cmd/cloud/sandbox/snapshot/get.js +4 -4
  134. package/dist/cmd/cloud/sandbox/snapshot/get.js.map +1 -1
  135. package/dist/cmd/cloud/sandbox/snapshot/index.js +1 -1
  136. package/dist/cmd/cloud/sandbox/snapshot/index.js.map +1 -1
  137. package/dist/cmd/cloud/sandbox/snapshot/list.js +4 -4
  138. package/dist/cmd/cloud/sandbox/snapshot/list.js.map +1 -1
  139. package/dist/cmd/cloud/sandbox/snapshot/tag.d.ts.map +1 -1
  140. package/dist/cmd/cloud/sandbox/snapshot/tag.js +4 -4
  141. package/dist/cmd/cloud/sandbox/snapshot/tag.js.map +1 -1
  142. package/dist/cmd/cloud/sandbox/upload.d.ts.map +1 -1
  143. package/dist/cmd/cloud/sandbox/upload.js +4 -3
  144. package/dist/cmd/cloud/sandbox/upload.js.map +1 -1
  145. package/dist/cmd/cloud/sandbox/util.d.ts +13 -0
  146. package/dist/cmd/cloud/sandbox/util.d.ts.map +1 -1
  147. package/dist/cmd/cloud/sandbox/util.js +40 -1
  148. package/dist/cmd/cloud/sandbox/util.js.map +1 -1
  149. package/dist/cmd/cloud/scp/download.d.ts.map +1 -1
  150. package/dist/cmd/cloud/scp/download.js +6 -2
  151. package/dist/cmd/cloud/scp/download.js.map +1 -1
  152. package/dist/cmd/cloud/scp/upload.d.ts.map +1 -1
  153. package/dist/cmd/cloud/scp/upload.js +6 -2
  154. package/dist/cmd/cloud/scp/upload.js.map +1 -1
  155. package/dist/cmd/cloud/session/get.js +4 -4
  156. package/dist/cmd/cloud/session/get.js.map +1 -1
  157. package/dist/cmd/cloud/session/list.js +4 -4
  158. package/dist/cmd/cloud/session/list.js.map +1 -1
  159. package/dist/cmd/cloud/ssh.d.ts.map +1 -1
  160. package/dist/cmd/cloud/ssh.js +7 -2
  161. package/dist/cmd/cloud/ssh.js.map +1 -1
  162. package/dist/cmd/cloud/storage/delete.d.ts.map +1 -1
  163. package/dist/cmd/cloud/storage/delete.js +46 -10
  164. package/dist/cmd/cloud/storage/delete.js.map +1 -1
  165. package/dist/cmd/cloud/storage/download.d.ts.map +1 -1
  166. package/dist/cmd/cloud/storage/download.js +19 -6
  167. package/dist/cmd/cloud/storage/download.js.map +1 -1
  168. package/dist/cmd/cloud/storage/get.d.ts.map +1 -1
  169. package/dist/cmd/cloud/storage/get.js +19 -6
  170. package/dist/cmd/cloud/storage/get.js.map +1 -1
  171. package/dist/cmd/cloud/storage/list.d.ts.map +1 -1
  172. package/dist/cmd/cloud/storage/list.js +17 -7
  173. package/dist/cmd/cloud/storage/list.js.map +1 -1
  174. package/dist/cmd/cloud/storage/upload.d.ts.map +1 -1
  175. package/dist/cmd/cloud/storage/upload.js +19 -6
  176. package/dist/cmd/cloud/storage/upload.js.map +1 -1
  177. package/dist/cmd/cloud/thread/delete.js +4 -4
  178. package/dist/cmd/cloud/thread/delete.js.map +1 -1
  179. package/dist/cmd/cloud/thread/get.js +4 -4
  180. package/dist/cmd/cloud/thread/get.js.map +1 -1
  181. package/dist/cmd/cloud/thread/list.js +4 -4
  182. package/dist/cmd/cloud/thread/list.js.map +1 -1
  183. package/dist/cmd/project/auth/init.d.ts.map +1 -1
  184. package/dist/cmd/project/auth/init.js +6 -3
  185. package/dist/cmd/project/auth/init.js.map +1 -1
  186. package/dist/cmd/project/auth/shared.d.ts +6 -2
  187. package/dist/cmd/project/auth/shared.d.ts.map +1 -1
  188. package/dist/cmd/project/auth/shared.js +40 -12
  189. package/dist/cmd/project/auth/shared.js.map +1 -1
  190. package/dist/config.d.ts +37 -0
  191. package/dist/config.d.ts.map +1 -1
  192. package/dist/config.js +51 -8
  193. package/dist/config.js.map +1 -1
  194. package/dist/env-util.d.ts +25 -2
  195. package/dist/env-util.d.ts.map +1 -1
  196. package/dist/env-util.js +44 -4
  197. package/dist/env-util.js.map +1 -1
  198. package/dist/utils/apt-validator.d.ts +20 -0
  199. package/dist/utils/apt-validator.d.ts.map +1 -0
  200. package/dist/utils/apt-validator.js +157 -0
  201. package/dist/utils/apt-validator.js.map +1 -0
  202. package/package.json +6 -6
  203. package/src/cache/index.ts +11 -0
  204. package/src/cache/resource-region.ts +183 -0
  205. package/src/cli.ts +47 -38
  206. package/src/cmd/ai/capabilities/show.ts +12 -15
  207. package/src/cmd/ai/prompt/llm.ts +5 -5
  208. package/src/cmd/auth/logout.ts +5 -2
  209. package/src/cmd/build/ast.ts +160 -1
  210. package/src/cmd/build/vite/vite-asset-server-config.ts +7 -3
  211. package/src/cmd/build/vite/vite-asset-server.ts +6 -3
  212. package/src/cmd/cloud/db/delete.ts +83 -11
  213. package/src/cmd/cloud/db/get.ts +29 -7
  214. package/src/cmd/cloud/db/list.ts +16 -7
  215. package/src/cmd/cloud/db/logs.ts +33 -4
  216. package/src/cmd/cloud/deploy.ts +49 -0
  217. package/src/cmd/cloud/env/delete.ts +36 -12
  218. package/src/cmd/cloud/env/get.ts +28 -27
  219. package/src/cmd/cloud/env/import.ts +43 -56
  220. package/src/cmd/cloud/env/index.ts +6 -2
  221. package/src/cmd/cloud/env/list.ts +57 -30
  222. package/src/cmd/cloud/env/pull.ts +9 -3
  223. package/src/cmd/cloud/env/push.ts +44 -11
  224. package/src/cmd/cloud/env/set.ts +49 -30
  225. package/src/cmd/cloud/index.ts +0 -2
  226. package/src/cmd/cloud/region-lookup.ts +89 -0
  227. package/src/cmd/cloud/sandbox/cp.ts +5 -3
  228. package/src/cmd/cloud/sandbox/create.ts +50 -6
  229. package/src/cmd/cloud/sandbox/delete.ts +6 -3
  230. package/src/cmd/cloud/sandbox/download.ts +4 -3
  231. package/src/cmd/cloud/sandbox/env.ts +4 -3
  232. package/src/cmd/cloud/sandbox/exec.ts +4 -3
  233. package/src/cmd/cloud/sandbox/execution/get.ts +4 -4
  234. package/src/cmd/cloud/sandbox/execution/index.ts +1 -1
  235. package/src/cmd/cloud/sandbox/execution/list.ts +4 -3
  236. package/src/cmd/cloud/sandbox/get.ts +10 -4
  237. package/src/cmd/cloud/sandbox/index.ts +1 -1
  238. package/src/cmd/cloud/sandbox/list.ts +4 -4
  239. package/src/cmd/cloud/sandbox/ls.ts +4 -3
  240. package/src/cmd/cloud/sandbox/mkdir.ts +4 -3
  241. package/src/cmd/cloud/sandbox/rm.ts +4 -3
  242. package/src/cmd/cloud/sandbox/rmdir.ts +4 -3
  243. package/src/cmd/cloud/sandbox/run.ts +51 -6
  244. package/src/cmd/cloud/sandbox/runtime/index.ts +1 -1
  245. package/src/cmd/cloud/sandbox/runtime/list.ts +4 -4
  246. package/src/cmd/cloud/sandbox/snapshot/create.ts +11 -5
  247. package/src/cmd/cloud/sandbox/snapshot/delete.ts +4 -4
  248. package/src/cmd/cloud/sandbox/snapshot/get.ts +4 -4
  249. package/src/cmd/cloud/sandbox/snapshot/index.ts +1 -1
  250. package/src/cmd/cloud/sandbox/snapshot/list.ts +4 -4
  251. package/src/cmd/cloud/sandbox/snapshot/tag.ts +7 -5
  252. package/src/cmd/cloud/sandbox/upload.ts +4 -3
  253. package/src/cmd/cloud/sandbox/util.ts +60 -1
  254. package/src/cmd/cloud/scp/download.ts +14 -2
  255. package/src/cmd/cloud/scp/upload.ts +14 -2
  256. package/src/cmd/cloud/session/get.ts +4 -4
  257. package/src/cmd/cloud/session/list.ts +4 -4
  258. package/src/cmd/cloud/ssh.ts +15 -2
  259. package/src/cmd/cloud/storage/delete.ts +61 -10
  260. package/src/cmd/cloud/storage/download.ts +31 -6
  261. package/src/cmd/cloud/storage/get.ts +31 -6
  262. package/src/cmd/cloud/storage/list.ts +18 -7
  263. package/src/cmd/cloud/storage/upload.ts +31 -6
  264. package/src/cmd/cloud/thread/delete.ts +4 -4
  265. package/src/cmd/cloud/thread/get.ts +4 -4
  266. package/src/cmd/cloud/thread/list.ts +4 -4
  267. package/src/cmd/project/auth/init.ts +7 -3
  268. package/src/cmd/project/auth/shared.ts +52 -13
  269. package/src/config.ts +64 -8
  270. package/src/env-util.ts +50 -5
  271. package/src/utils/apt-validator.ts +215 -0
  272. package/dist/cmd/cloud/secret/delete.d.ts +0 -2
  273. package/dist/cmd/cloud/secret/delete.d.ts.map +0 -1
  274. package/dist/cmd/cloud/secret/delete.js +0 -53
  275. package/dist/cmd/cloud/secret/delete.js.map +0 -1
  276. package/dist/cmd/cloud/secret/get.d.ts +0 -2
  277. package/dist/cmd/cloud/secret/get.d.ts.map +0 -1
  278. package/dist/cmd/cloud/secret/get.js +0 -73
  279. package/dist/cmd/cloud/secret/get.js.map +0 -1
  280. package/dist/cmd/cloud/secret/import.d.ts +0 -2
  281. package/dist/cmd/cloud/secret/import.d.ts.map +0 -1
  282. package/dist/cmd/cloud/secret/import.js +0 -91
  283. package/dist/cmd/cloud/secret/import.js.map +0 -1
  284. package/dist/cmd/cloud/secret/index.d.ts +0 -3
  285. package/dist/cmd/cloud/secret/index.d.ts.map +0 -1
  286. package/dist/cmd/cloud/secret/index.js +0 -33
  287. package/dist/cmd/cloud/secret/index.js.map +0 -1
  288. package/dist/cmd/cloud/secret/list.d.ts +0 -2
  289. package/dist/cmd/cloud/secret/list.d.ts.map +0 -1
  290. package/dist/cmd/cloud/secret/list.js +0 -65
  291. package/dist/cmd/cloud/secret/list.js.map +0 -1
  292. package/dist/cmd/cloud/secret/pull.d.ts +0 -2
  293. package/dist/cmd/cloud/secret/pull.d.ts.map +0 -1
  294. package/dist/cmd/cloud/secret/pull.js +0 -82
  295. package/dist/cmd/cloud/secret/pull.js.map +0 -1
  296. package/dist/cmd/cloud/secret/push.d.ts +0 -2
  297. package/dist/cmd/cloud/secret/push.d.ts.map +0 -1
  298. package/dist/cmd/cloud/secret/push.js +0 -61
  299. package/dist/cmd/cloud/secret/push.js.map +0 -1
  300. package/dist/cmd/cloud/secret/set.d.ts +0 -2
  301. package/dist/cmd/cloud/secret/set.d.ts.map +0 -1
  302. package/dist/cmd/cloud/secret/set.js +0 -63
  303. package/dist/cmd/cloud/secret/set.js.map +0 -1
  304. package/src/cmd/cloud/secret/delete.ts +0 -65
  305. package/src/cmd/cloud/secret/get.ts +0 -77
  306. package/src/cmd/cloud/secret/import.ts +0 -110
  307. package/src/cmd/cloud/secret/index.ts +0 -33
  308. package/src/cmd/cloud/secret/list.ts +0 -70
  309. package/src/cmd/cloud/secret/pull.ts +0 -92
  310. package/src/cmd/cloud/secret/push.ts +0 -69
  311. package/src/cmd/cloud/secret/set.ts +0 -76
@@ -1,73 +0,0 @@
1
- import { z } from 'zod';
2
- import { createSubcommand } from '../../../types';
3
- import * as tui from '../../../tui';
4
- import { projectGet } from '@agentuity/server';
5
- import { getCommand } from '../../../command-prefix';
6
- import { ErrorCode } from '../../../errors';
7
- const SecretGetResponseSchema = z.object({
8
- key: z.string().describe('Secret key name'),
9
- value: z.string().describe('Secret value'),
10
- });
11
- export const getSubcommand = createSubcommand({
12
- name: 'get',
13
- description: 'Get a secret value',
14
- tags: ['read-only', 'fast', 'requires-auth', 'requires-project'],
15
- examples: [
16
- { command: getCommand('secret get DATABASE_URL'), description: 'Get item details' },
17
- {
18
- command: getCommand('secret get STRIPE_SECRET_KEY --no-mask'),
19
- description: 'Use no mask option',
20
- },
21
- ],
22
- requires: { auth: true, project: true, apiClient: true },
23
- schema: {
24
- args: z.object({
25
- key: z.string().describe('the secret key'),
26
- }),
27
- options: z.object({
28
- mask: z
29
- .boolean()
30
- .default(!!process.stdout.isTTY)
31
- .describe('mask the value in output (default: true in TTY, false otherwise)'),
32
- }),
33
- response: SecretGetResponseSchema,
34
- },
35
- idempotent: true,
36
- async handler(ctx) {
37
- const { args, opts, apiClient, project, options } = ctx;
38
- // Fetch project with unmasked secrets
39
- const projectData = await tui.spinner('Fetching secrets', () => {
40
- return projectGet(apiClient, { id: project.projectId, mask: false });
41
- });
42
- // Look for the key in secrets
43
- const value = projectData.secrets?.[args.key];
44
- if (value === undefined) {
45
- tui.fatal(`Secret '${args.key}' not found`, ErrorCode.RESOURCE_NOT_FOUND);
46
- }
47
- if (!options.json) {
48
- if (process.stdout.isTTY) {
49
- // Display the value, masked by default
50
- if (opts?.mask) {
51
- tui.success(`${args.key}=${tui.maskSecret(value)}`);
52
- }
53
- else {
54
- tui.success(`${args.key}=${value}`);
55
- }
56
- }
57
- else {
58
- // Display the value, masked by default
59
- if (opts?.mask) {
60
- console.log(`${args.key}=${tui.maskSecret(value)}`);
61
- }
62
- else {
63
- console.log(`${args.key}=${value}`);
64
- }
65
- }
66
- }
67
- return {
68
- key: args.key,
69
- value,
70
- };
71
- },
72
- });
73
- //# sourceMappingURL=get.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/get.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const importSubcommand: import("../../..").SubcommandDefinition;
2
- //# sourceMappingURL=import.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/import.ts"],"names":[],"mappings":"AAqBA,eAAO,MAAM,gBAAgB,yCAwF3B,CAAC"}
@@ -1,91 +0,0 @@
1
- import { z } from 'zod';
2
- import { createSubcommand } from '../../../types';
3
- import * as tui from '../../../tui';
4
- import { projectEnvUpdate } from '@agentuity/server';
5
- import { findExistingEnvFile, readEnvFile, writeEnvFile, filterAgentuitySdkKeys, mergeEnvVars, } from '../../../env-util';
6
- import { getCommand } from '../../../command-prefix';
7
- const SecretImportResponseSchema = z.object({
8
- success: z.boolean().describe('Whether import succeeded'),
9
- imported: z.number().describe('Number of items imported'),
10
- skipped: z.number().describe('Number of items skipped'),
11
- path: z.string().describe('Local file path where secrets were saved'),
12
- file: z.string().describe('Source file path'),
13
- });
14
- export const importSubcommand = createSubcommand({
15
- name: 'import',
16
- description: 'Import secrets from a file to cloud and local .env',
17
- tags: [
18
- 'mutating',
19
- 'creates-resource',
20
- 'slow',
21
- 'api-intensive',
22
- 'requires-auth',
23
- 'requires-project',
24
- ],
25
- examples: [
26
- { command: getCommand('secret import .env.local'), description: 'Run .env.local command' },
27
- {
28
- command: getCommand('secret import .env.backup'),
29
- description: 'Run .env.backup command',
30
- },
31
- ],
32
- idempotent: false,
33
- requires: { auth: true, project: true, apiClient: true },
34
- schema: {
35
- args: z.object({
36
- file: z.string().describe('path to the .env file to import'),
37
- }),
38
- response: SecretImportResponseSchema,
39
- },
40
- async handler(ctx) {
41
- const { args, apiClient, project, projectDir } = ctx;
42
- // Read the import file
43
- const importedSecrets = await readEnvFile(args.file);
44
- if (Object.keys(importedSecrets).length === 0) {
45
- tui.warning(`No secrets found in ${args.file}`);
46
- return {
47
- success: false,
48
- imported: 0,
49
- skipped: 0,
50
- path: '',
51
- file: args.file,
52
- };
53
- }
54
- // Filter out AGENTUITY_ prefixed keys
55
- const filteredSecrets = filterAgentuitySdkKeys(importedSecrets);
56
- if (Object.keys(filteredSecrets).length === 0) {
57
- tui.warning('No valid secrets to import (all were AGENTUITY_ prefixed)');
58
- return {
59
- success: false,
60
- imported: 0,
61
- skipped: Object.keys(importedSecrets).length,
62
- path: '',
63
- file: args.file,
64
- };
65
- }
66
- // Push to cloud (using secrets field)
67
- await tui.spinner('Importing secrets to cloud', () => {
68
- return projectEnvUpdate(apiClient, {
69
- id: project.projectId,
70
- secrets: filteredSecrets,
71
- });
72
- });
73
- // Merge with local .env file
74
- const localEnvPath = await findExistingEnvFile(projectDir);
75
- const localEnv = await readEnvFile(localEnvPath);
76
- const mergedEnv = mergeEnvVars(localEnv, filteredSecrets);
77
- await writeEnvFile(localEnvPath, mergedEnv, {
78
- skipKeys: Object.keys(mergedEnv).filter((k) => k.startsWith('AGENTUITY_')),
79
- });
80
- const count = Object.keys(filteredSecrets).length;
81
- tui.success(`Imported ${count} secret${count !== 1 ? 's' : ''} from ${args.file} to cloud and ${localEnvPath}`);
82
- return {
83
- success: true,
84
- imported: count,
85
- skipped: Object.keys(importedSecrets).length - count,
86
- path: localEnvPath,
87
- file: args.file,
88
- };
89
- },
90
- });
91
- //# sourceMappingURL=import.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/import.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export declare const command: import("../../..").CommandDefinition;
2
- export default command;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/index.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,OAAO,sCAqBlB,CAAC;AACH,eAAe,OAAO,CAAC"}
@@ -1,33 +0,0 @@
1
- import { createCommand } from '../../../types';
2
- import { pullSubcommand } from './pull';
3
- import { pushSubcommand } from './push';
4
- import { setSubcommand } from './set';
5
- import { getSubcommand } from './get';
6
- import { deleteSubcommand } from './delete';
7
- import { importSubcommand } from './import';
8
- import { listSubcommand } from './list';
9
- import { getCommand } from '../../../command-prefix';
10
- export const command = createCommand({
11
- name: 'secret',
12
- aliases: ['secrets'],
13
- description: 'Manage secrets for your project',
14
- tags: ['fast', 'requires-auth', 'requires-project'],
15
- examples: [
16
- { command: getCommand('cloud secret list'), description: 'List all secrets' },
17
- {
18
- command: getCommand('cloud secret set API_KEY "sk_..."'),
19
- description: 'Set a secret value',
20
- },
21
- ],
22
- subcommands: [
23
- listSubcommand,
24
- pullSubcommand,
25
- pushSubcommand,
26
- setSubcommand,
27
- getSubcommand,
28
- deleteSubcommand,
29
- importSubcommand,
30
- ],
31
- });
32
- export default command;
33
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/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,QAAQ;IACd,OAAO,EAAE,CAAC,SAAS,CAAC;IACpB,WAAW,EAAE,iCAAiC;IAC9C,IAAI,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,kBAAkB,CAAC;IACnD,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE;QAC7E;YACC,OAAO,EAAE,UAAU,CAAC,mCAAmC,CAAC;YACxD,WAAW,EAAE,oBAAoB;SACjC;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,2 +0,0 @@
1
- export declare const listSubcommand: import("../../..").SubcommandDefinition;
2
- //# sourceMappingURL=list.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/list.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,cAAc,yCA6DzB,CAAC"}
@@ -1,65 +0,0 @@
1
- import { z } from 'zod';
2
- import { createSubcommand } from '../../../types';
3
- import * as tui from '../../../tui';
4
- import { projectGet } from '@agentuity/server';
5
- import { getCommand } from '../../../command-prefix';
6
- const SecretListResponseSchema = z.record(z.string(), z.string().describe('Secret value'));
7
- export const listSubcommand = createSubcommand({
8
- name: 'list',
9
- aliases: ['ls'],
10
- description: 'List all secrets',
11
- tags: ['read-only', 'fast', 'requires-auth', 'requires-project'],
12
- examples: [
13
- { command: getCommand('secret list'), description: 'List items' },
14
- { command: getCommand('secret list --no-mask'), description: 'Use no mask option' },
15
- ],
16
- requires: { auth: true, project: true, apiClient: true },
17
- idempotent: true,
18
- schema: {
19
- options: z.object({
20
- mask: z
21
- .boolean()
22
- .default(!!process.stdout.isTTY)
23
- .describe('mask the values in output (default: true in TTY for secrets)'),
24
- }),
25
- response: SecretListResponseSchema,
26
- },
27
- webUrl: (ctx) => `/projects/${encodeURIComponent(ctx.project.projectId)}/settings`,
28
- async handler(ctx) {
29
- const { opts, apiClient, project, options } = ctx;
30
- // Fetch project with unmasked secrets
31
- const projectData = await tui.spinner('Fetching secrets', () => {
32
- return projectGet(apiClient, { id: project.projectId, mask: false });
33
- });
34
- const secrets = projectData.secrets || {};
35
- // Skip TUI output in JSON mode
36
- if (!options.json) {
37
- if (Object.keys(secrets).length === 0) {
38
- tui.info('No secrets found');
39
- }
40
- else {
41
- // Display the secrets
42
- if (process.stdout.isTTY) {
43
- tui.newline();
44
- tui.success(`Secrets (${Object.keys(secrets).length}):`);
45
- tui.newline();
46
- }
47
- const sortedKeys = Object.keys(secrets).sort();
48
- // For secrets, masking is enabled by default in TTY (can be disabled with --no-mask)
49
- const shouldMask = opts?.mask !== false;
50
- for (const key of sortedKeys) {
51
- const value = secrets[key];
52
- const displayValue = shouldMask ? tui.maskSecret(value) : value;
53
- if (process.stdout.isTTY) {
54
- console.log(`${tui.bold(key)}=${displayValue}`);
55
- }
56
- else {
57
- console.log(`${key}=${displayValue}`);
58
- }
59
- }
60
- }
61
- }
62
- return secrets;
63
- },
64
- });
65
- //# sourceMappingURL=list.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/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,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;AAE3F,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;IAC9C,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,CAAC,IAAI,CAAC;IACf,WAAW,EAAE,kBAAkB;IAC/B,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,kBAAkB,CAAC;IAChE,QAAQ,EAAE;QACT,EAAE,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE;QACjE,EAAE,OAAO,EAAE,UAAU,CAAC,uBAAuB,CAAC,EAAE,WAAW,EAAE,oBAAoB,EAAE;KACnF;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,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC/B,QAAQ,CAAC,8DAA8D,CAAC;SAC1E,CAAC;QACF,QAAQ,EAAE,wBAAwB;KAClC;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,sCAAsC;QACtC,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,EAAE;YAC9D,OAAO,UAAU,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;QAE1C,+BAA+B;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YACnB,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvC,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACP,sBAAsB;gBACtB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBAC1B,GAAG,CAAC,OAAO,EAAE,CAAC;oBACd,GAAG,CAAC,OAAO,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;oBACzD,GAAG,CAAC,OAAO,EAAE,CAAC;gBACf,CAAC;gBAED,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/C,qFAAqF;gBACrF,MAAM,UAAU,GAAG,IAAI,EAAE,IAAI,KAAK,KAAK,CAAC;gBACxC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;oBAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;oBAC3B,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;oBAChE,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;wBAC1B,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC,CAAC;oBACjD,CAAC;yBAAM,CAAC;wBACP,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,YAAY,EAAE,CAAC,CAAC;oBACvC,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,OAAO,CAAC;IAChB,CAAC;CACD,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const pullSubcommand: import("../../..").SubcommandDefinition;
2
- //# sourceMappingURL=pull.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pull.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/pull.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,cAAc,yCA4EzB,CAAC"}
@@ -1,82 +0,0 @@
1
- import { z } from 'zod';
2
- import { join } from 'node:path';
3
- import { createSubcommand } from '../../../types';
4
- import * as tui from '../../../tui';
5
- import { projectGet } from '@agentuity/server';
6
- import { findExistingEnvFile, readEnvFile, writeEnvFile, mergeEnvVars } from '../../../env-util';
7
- import { getCommand } from '../../../command-prefix';
8
- const SecretPullResponseSchema = z.object({
9
- success: z.boolean().describe('Whether pull succeeded'),
10
- pulled: z.number().describe('Number of items pulled'),
11
- path: z.string().describe('Local file path where secrets were saved'),
12
- force: z.boolean().describe('Whether force mode was used'),
13
- });
14
- export const pullSubcommand = createSubcommand({
15
- name: 'pull',
16
- description: 'Pull secrets from cloud to local .env file',
17
- tags: ['slow', 'requires-auth', 'requires-project'],
18
- idempotent: true,
19
- examples: [
20
- { command: getCommand('secret pull'), description: 'Run pull command' },
21
- { command: getCommand('secret pull --force'), description: 'Use force option' },
22
- ],
23
- requires: { auth: true, project: true, apiClient: true },
24
- prerequisites: ['cloud deploy'],
25
- schema: {
26
- options: z.object({
27
- force: z.boolean().default(false).describe('overwrite local values with cloud values'),
28
- }),
29
- response: SecretPullResponseSchema,
30
- },
31
- async handler(ctx) {
32
- const { opts, apiClient, project, projectDir } = ctx;
33
- // Fetch project with unmasked secrets
34
- const projectData = await tui.spinner('Pulling secrets from cloud', () => {
35
- return projectGet(apiClient, { id: project.projectId, mask: false });
36
- });
37
- const cloudSecrets = { ...projectData.env, ...projectData.secrets }; // secret pull with actually do both secrets and env since thats likely what the user would want
38
- // Target file is always .env
39
- const targetEnvPath = await findExistingEnvFile(projectDir);
40
- const localEnv = await readEnvFile(targetEnvPath);
41
- // Merge: cloud values override local if force=true, otherwise keep local
42
- let mergedEnv;
43
- if (opts?.force) {
44
- // Cloud values take priority
45
- mergedEnv = mergeEnvVars(localEnv, cloudSecrets);
46
- }
47
- else {
48
- // Local values take priority (only add new keys from cloud)
49
- mergedEnv = mergeEnvVars(cloudSecrets, localEnv);
50
- }
51
- // Write to .env (skip AGENTUITY_ keys)
52
- await writeEnvFile(targetEnvPath, mergedEnv, {
53
- skipKeys: Object.keys(mergedEnv).filter((k) => k.startsWith('AGENTUITY_')),
54
- });
55
- // Write AGENTUITY_SDK_KEY to .env if present and missing locally
56
- if (projectData.api_key) {
57
- const dotEnvPath = join(projectDir, '.env');
58
- const dotEnv = await readEnvFile(dotEnvPath);
59
- if (!dotEnv.AGENTUITY_SDK_KEY) {
60
- dotEnv.AGENTUITY_SDK_KEY = projectData.api_key;
61
- await writeEnvFile(dotEnvPath, dotEnv, {
62
- addComment: (key) => {
63
- if (key === 'AGENTUITY_SDK_KEY') {
64
- return 'AGENTUITY_SDK_KEY is a sensitive value and should not be committed to version control.';
65
- }
66
- return null;
67
- },
68
- });
69
- tui.info(`Wrote AGENTUITY_SDK_KEY to ${dotEnvPath}`);
70
- }
71
- }
72
- const count = Object.keys(cloudSecrets).length;
73
- tui.success(`Pulled ${count} secret${count !== 1 ? 's' : ''} to ${targetEnvPath}`);
74
- return {
75
- success: true,
76
- pulled: count,
77
- path: targetEnvPath,
78
- force: opts?.force ?? false,
79
- };
80
- },
81
- });
82
- //# sourceMappingURL=pull.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pull.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/pull.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const pushSubcommand: import("../../..").SubcommandDefinition;
2
- //# sourceMappingURL=push.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/push.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,cAAc,yCAuDzB,CAAC"}
@@ -1,61 +0,0 @@
1
- import { z } from 'zod';
2
- import { createSubcommand } from '../../../types';
3
- import * as tui from '../../../tui';
4
- import { projectEnvUpdate } from '@agentuity/server';
5
- import { findExistingEnvFile, readEnvFile, filterAgentuitySdkKeys } from '../../../env-util';
6
- import { getCommand } from '../../../command-prefix';
7
- const SecretPushResponseSchema = z.object({
8
- success: z.boolean().describe('Whether push succeeded'),
9
- pushed: z.number().describe('Number of items pushed'),
10
- source: z.string().describe('Source file path'),
11
- });
12
- export const pushSubcommand = createSubcommand({
13
- name: 'push',
14
- description: 'Push secrets from local .env file to cloud',
15
- tags: [
16
- 'mutating',
17
- 'updates-resource',
18
- 'slow',
19
- 'api-intensive',
20
- 'requires-auth',
21
- 'requires-project',
22
- ],
23
- idempotent: true,
24
- examples: [{ command: getCommand('secret push'), description: 'Run push command' }],
25
- requires: { auth: true, project: true, apiClient: true },
26
- prerequisites: ['secret set'],
27
- schema: {
28
- response: SecretPushResponseSchema,
29
- },
30
- async handler(ctx) {
31
- const { apiClient, project, projectDir } = ctx;
32
- // Read local env file
33
- const envFilePath = await findExistingEnvFile(projectDir);
34
- const localEnv = await readEnvFile(envFilePath);
35
- // Filter out AGENTUITY_ prefixed keys (don't push SDK keys)
36
- const filteredSecrets = filterAgentuitySdkKeys(localEnv);
37
- if (Object.keys(filteredSecrets).length === 0) {
38
- tui.warning('No secrets to push');
39
- return {
40
- success: false,
41
- pushed: 0,
42
- source: envFilePath,
43
- };
44
- }
45
- // Push to cloud (using secrets field)
46
- await tui.spinner('Pushing secrets to cloud', () => {
47
- return projectEnvUpdate(apiClient, {
48
- id: project.projectId,
49
- secrets: filteredSecrets,
50
- });
51
- });
52
- const count = Object.keys(filteredSecrets).length;
53
- tui.success(`Pushed ${count} secret${count !== 1 ? 's' : ''} to cloud`);
54
- return {
55
- success: true,
56
- pushed: count,
57
- source: envFilePath,
58
- };
59
- },
60
- });
61
- //# sourceMappingURL=push.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/push.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,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACvD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IACrD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;CAC/C,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC;IAC9C,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,4CAA4C;IACzD,IAAI,EAAE;QACL,UAAU;QACV,kBAAkB;QAClB,MAAM;QACN,eAAe;QACf,eAAe;QACf,kBAAkB;KAClB;IACD,UAAU,EAAE,IAAI;IAChB,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;IACnF,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;IACxD,aAAa,EAAE,CAAC,YAAY,CAAC;IAC7B,MAAM,EAAE;QACP,QAAQ,EAAE,wBAAwB;KAClC;IAED,KAAK,CAAC,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAG,CAAC;QAE/C,sBAAsB;QACtB,MAAM,WAAW,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,CAAC;QAEhD,4DAA4D;QAC5D,MAAM,eAAe,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QAEzD,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAClC,OAAO;gBACN,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,WAAW;aACnB,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,MAAM,GAAG,CAAC,OAAO,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClD,OAAO,gBAAgB,CAAC,SAAS,EAAE;gBAClC,EAAE,EAAE,OAAO,CAAC,SAAS;gBACrB,OAAO,EAAE,eAAe;aACxB,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;QAClD,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;QAExE,OAAO;YACN,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,WAAW;SACnB,CAAC;IACH,CAAC;CACD,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export declare const setSubcommand: import("../../..").SubcommandDefinition;
2
- //# sourceMappingURL=set.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/set.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,aAAa,yCAyDxB,CAAC"}
@@ -1,63 +0,0 @@
1
- import { z } from 'zod';
2
- import { createSubcommand } from '../../../types';
3
- import * as tui from '../../../tui';
4
- import { projectEnvUpdate } from '@agentuity/server';
5
- import { findExistingEnvFile, readEnvFile, writeEnvFile, filterAgentuitySdkKeys, } from '../../../env-util';
6
- import { getCommand } from '../../../command-prefix';
7
- const SecretSetResponseSchema = z.object({
8
- success: z.boolean().describe('Whether the operation succeeded'),
9
- key: z.string().describe('Secret key name'),
10
- path: z.string().describe('Local file path where secret was saved'),
11
- });
12
- export const setSubcommand = createSubcommand({
13
- name: 'set',
14
- description: 'Set a secret',
15
- tags: ['mutating', 'updates-resource', 'slow', 'requires-auth', 'requires-project'],
16
- idempotent: true,
17
- examples: [
18
- {
19
- command: getCommand('secret set DATABASE_URL "postgres://user:pass@host:5432/db"'),
20
- description: 'Set the DATABASE_URL environment secret',
21
- },
22
- {
23
- command: getCommand('secret set STRIPE_SECRET_KEY "sk_live_..."'),
24
- description: 'Set the STRIPE_SECRET_KEY environment secret',
25
- },
26
- ],
27
- requires: { auth: true, project: true, apiClient: true },
28
- schema: {
29
- args: z.object({
30
- key: z.string().min(1, 'key must not be empty').describe('the secret key'),
31
- value: z.string().min(1, 'value must not be empty').describe('the secret value'),
32
- }),
33
- response: SecretSetResponseSchema,
34
- },
35
- async handler(ctx) {
36
- const { args, apiClient, project, projectDir } = ctx;
37
- // Validate key doesn't start with AGENTUITY_
38
- if (args.key.startsWith('AGENTUITY_')) {
39
- tui.fatal('Cannot set AGENTUITY_ prefixed variables. These are reserved for system use.');
40
- }
41
- // Set in cloud (using secrets field)
42
- await tui.spinner('Setting secret in cloud', () => {
43
- return projectEnvUpdate(apiClient, {
44
- id: project.projectId,
45
- secrets: { [args.key]: args.value },
46
- });
47
- });
48
- // Update local .env file
49
- const envFilePath = await findExistingEnvFile(projectDir);
50
- const currentEnv = await readEnvFile(envFilePath);
51
- currentEnv[args.key] = args.value;
52
- // Filter out AGENTUITY_ keys before writing
53
- const filteredEnv = filterAgentuitySdkKeys(currentEnv);
54
- await writeEnvFile(envFilePath, filteredEnv);
55
- tui.success(`Secret '${args.key}' set successfully (cloud + ${envFilePath})`);
56
- return {
57
- success: true,
58
- key: args.key,
59
- path: envFilePath,
60
- };
61
- },
62
- });
63
- //# sourceMappingURL=set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../../src/cmd/cloud/secret/set.ts"],"names":[],"mappings":"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"}
@@ -1,65 +0,0 @@
1
- import { z } from 'zod';
2
- import { createSubcommand } from '../../../types';
3
- import * as tui from '../../../tui';
4
- import { projectEnvDelete } from '@agentuity/server';
5
- import {
6
- findExistingEnvFile,
7
- readEnvFile,
8
- writeEnvFile,
9
- filterAgentuitySdkKeys,
10
- } from '../../../env-util';
11
- import { getCommand } from '../../../command-prefix';
12
-
13
- const SecretDeleteResponseSchema = z.object({
14
- success: z.boolean().describe('Whether the operation succeeded'),
15
- key: z.string().describe('Secret key name that was deleted'),
16
- path: z.string().describe('Local file path where secret was removed'),
17
- });
18
-
19
- export const deleteSubcommand = createSubcommand({
20
- name: 'delete',
21
- aliases: ['del', 'remove', 'rm'],
22
- description: 'Delete a secret',
23
- tags: ['destructive', 'deletes-resource', 'slow', 'requires-auth', 'requires-project'],
24
- idempotent: true,
25
- examples: [
26
- { command: getCommand('secret delete OLD_API_KEY'), description: 'Delete item' },
27
- { command: getCommand('secret rm DATABASE_URL'), description: 'Delete item' },
28
- ],
29
- requires: { auth: true, project: true, apiClient: true },
30
- schema: {
31
- args: z.object({
32
- key: z.string().describe('the secret key to delete'),
33
- }),
34
- response: SecretDeleteResponseSchema,
35
- },
36
-
37
- async handler(ctx) {
38
- const { args, apiClient, project, projectDir } = ctx;
39
-
40
- // Delete from cloud (using secrets field)
41
- await tui.spinner('Deleting secret from cloud', () => {
42
- return projectEnvDelete(apiClient, {
43
- id: project.projectId,
44
- secrets: [args.key],
45
- });
46
- });
47
-
48
- // Update local .env file
49
- const envFilePath = await findExistingEnvFile(projectDir);
50
- const currentEnv = await readEnvFile(envFilePath);
51
- delete currentEnv[args.key];
52
-
53
- // Filter out AGENTUITY_ keys before writing
54
- const filteredEnv = filterAgentuitySdkKeys(currentEnv);
55
- await writeEnvFile(envFilePath, filteredEnv);
56
-
57
- tui.success(`Secret '${args.key}' deleted successfully (cloud + ${envFilePath})`);
58
-
59
- return {
60
- success: true,
61
- key: args.key,
62
- path: envFilePath,
63
- };
64
- },
65
- });