@agentuity/cli 0.1.9 → 0.1.11

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 (323) 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/build.d.ts +5 -0
  129. package/dist/cmd/cloud/sandbox/snapshot/build.d.ts.map +1 -0
  130. package/dist/cmd/cloud/sandbox/snapshot/build.js +574 -0
  131. package/dist/cmd/cloud/sandbox/snapshot/build.js.map +1 -0
  132. package/dist/cmd/cloud/sandbox/snapshot/create.d.ts.map +1 -1
  133. package/dist/cmd/cloud/sandbox/snapshot/create.js +5 -3
  134. package/dist/cmd/cloud/sandbox/snapshot/create.js.map +1 -1
  135. package/dist/cmd/cloud/sandbox/snapshot/delete.js +4 -4
  136. package/dist/cmd/cloud/sandbox/snapshot/delete.js.map +1 -1
  137. package/dist/cmd/cloud/sandbox/snapshot/generate.d.ts +3 -0
  138. package/dist/cmd/cloud/sandbox/snapshot/generate.d.ts.map +1 -0
  139. package/dist/cmd/cloud/sandbox/snapshot/generate.js +127 -0
  140. package/dist/cmd/cloud/sandbox/snapshot/generate.js.map +1 -0
  141. package/dist/cmd/cloud/sandbox/snapshot/get.d.ts.map +1 -1
  142. package/dist/cmd/cloud/sandbox/snapshot/get.js +20 -4
  143. package/dist/cmd/cloud/sandbox/snapshot/get.js.map +1 -1
  144. package/dist/cmd/cloud/sandbox/snapshot/index.d.ts.map +1 -1
  145. package/dist/cmd/cloud/sandbox/snapshot/index.js +20 -2
  146. package/dist/cmd/cloud/sandbox/snapshot/index.js.map +1 -1
  147. package/dist/cmd/cloud/sandbox/snapshot/list.js +4 -4
  148. package/dist/cmd/cloud/sandbox/snapshot/list.js.map +1 -1
  149. package/dist/cmd/cloud/sandbox/snapshot/tag.d.ts.map +1 -1
  150. package/dist/cmd/cloud/sandbox/snapshot/tag.js +4 -4
  151. package/dist/cmd/cloud/sandbox/snapshot/tag.js.map +1 -1
  152. package/dist/cmd/cloud/sandbox/upload.d.ts.map +1 -1
  153. package/dist/cmd/cloud/sandbox/upload.js +4 -3
  154. package/dist/cmd/cloud/sandbox/upload.js.map +1 -1
  155. package/dist/cmd/cloud/sandbox/util.d.ts +13 -0
  156. package/dist/cmd/cloud/sandbox/util.d.ts.map +1 -1
  157. package/dist/cmd/cloud/sandbox/util.js +40 -1
  158. package/dist/cmd/cloud/sandbox/util.js.map +1 -1
  159. package/dist/cmd/cloud/scp/download.d.ts.map +1 -1
  160. package/dist/cmd/cloud/scp/download.js +6 -2
  161. package/dist/cmd/cloud/scp/download.js.map +1 -1
  162. package/dist/cmd/cloud/scp/upload.d.ts.map +1 -1
  163. package/dist/cmd/cloud/scp/upload.js +6 -2
  164. package/dist/cmd/cloud/scp/upload.js.map +1 -1
  165. package/dist/cmd/cloud/session/get.js +4 -4
  166. package/dist/cmd/cloud/session/get.js.map +1 -1
  167. package/dist/cmd/cloud/session/list.js +4 -4
  168. package/dist/cmd/cloud/session/list.js.map +1 -1
  169. package/dist/cmd/cloud/ssh.d.ts.map +1 -1
  170. package/dist/cmd/cloud/ssh.js +7 -2
  171. package/dist/cmd/cloud/ssh.js.map +1 -1
  172. package/dist/cmd/cloud/storage/delete.d.ts.map +1 -1
  173. package/dist/cmd/cloud/storage/delete.js +46 -10
  174. package/dist/cmd/cloud/storage/delete.js.map +1 -1
  175. package/dist/cmd/cloud/storage/download.d.ts.map +1 -1
  176. package/dist/cmd/cloud/storage/download.js +19 -6
  177. package/dist/cmd/cloud/storage/download.js.map +1 -1
  178. package/dist/cmd/cloud/storage/get.d.ts.map +1 -1
  179. package/dist/cmd/cloud/storage/get.js +19 -6
  180. package/dist/cmd/cloud/storage/get.js.map +1 -1
  181. package/dist/cmd/cloud/storage/list.d.ts.map +1 -1
  182. package/dist/cmd/cloud/storage/list.js +17 -7
  183. package/dist/cmd/cloud/storage/list.js.map +1 -1
  184. package/dist/cmd/cloud/storage/upload.d.ts.map +1 -1
  185. package/dist/cmd/cloud/storage/upload.js +19 -6
  186. package/dist/cmd/cloud/storage/upload.js.map +1 -1
  187. package/dist/cmd/cloud/thread/delete.js +4 -4
  188. package/dist/cmd/cloud/thread/delete.js.map +1 -1
  189. package/dist/cmd/cloud/thread/get.js +4 -4
  190. package/dist/cmd/cloud/thread/get.js.map +1 -1
  191. package/dist/cmd/cloud/thread/list.js +4 -4
  192. package/dist/cmd/cloud/thread/list.js.map +1 -1
  193. package/dist/cmd/project/auth/init.d.ts.map +1 -1
  194. package/dist/cmd/project/auth/init.js +6 -3
  195. package/dist/cmd/project/auth/init.js.map +1 -1
  196. package/dist/cmd/project/auth/shared.d.ts +6 -2
  197. package/dist/cmd/project/auth/shared.d.ts.map +1 -1
  198. package/dist/cmd/project/auth/shared.js +41 -13
  199. package/dist/cmd/project/auth/shared.js.map +1 -1
  200. package/dist/config.d.ts +37 -0
  201. package/dist/config.d.ts.map +1 -1
  202. package/dist/config.js +55 -8
  203. package/dist/config.js.map +1 -1
  204. package/dist/env-util.d.ts +25 -2
  205. package/dist/env-util.d.ts.map +1 -1
  206. package/dist/env-util.js +44 -4
  207. package/dist/env-util.js.map +1 -1
  208. package/dist/utils/apt-validator.d.ts +20 -0
  209. package/dist/utils/apt-validator.d.ts.map +1 -0
  210. package/dist/utils/apt-validator.js +157 -0
  211. package/dist/utils/apt-validator.js.map +1 -0
  212. package/package.json +6 -6
  213. package/src/cache/index.ts +11 -0
  214. package/src/cache/resource-region.ts +183 -0
  215. package/src/cli.ts +47 -38
  216. package/src/cmd/ai/capabilities/show.ts +12 -15
  217. package/src/cmd/ai/prompt/llm.ts +5 -5
  218. package/src/cmd/auth/logout.ts +5 -2
  219. package/src/cmd/build/ast.ts +160 -1
  220. package/src/cmd/build/vite/vite-asset-server-config.ts +7 -3
  221. package/src/cmd/build/vite/vite-asset-server.ts +6 -3
  222. package/src/cmd/cloud/db/delete.ts +83 -11
  223. package/src/cmd/cloud/db/get.ts +29 -7
  224. package/src/cmd/cloud/db/list.ts +16 -7
  225. package/src/cmd/cloud/db/logs.ts +33 -4
  226. package/src/cmd/cloud/deploy.ts +49 -0
  227. package/src/cmd/cloud/env/delete.ts +36 -12
  228. package/src/cmd/cloud/env/get.ts +28 -27
  229. package/src/cmd/cloud/env/import.ts +43 -56
  230. package/src/cmd/cloud/env/index.ts +6 -2
  231. package/src/cmd/cloud/env/list.ts +57 -30
  232. package/src/cmd/cloud/env/pull.ts +9 -3
  233. package/src/cmd/cloud/env/push.ts +44 -11
  234. package/src/cmd/cloud/env/set.ts +49 -30
  235. package/src/cmd/cloud/index.ts +0 -2
  236. package/src/cmd/cloud/region-lookup.ts +89 -0
  237. package/src/cmd/cloud/sandbox/cp.ts +5 -3
  238. package/src/cmd/cloud/sandbox/create.ts +50 -6
  239. package/src/cmd/cloud/sandbox/delete.ts +6 -3
  240. package/src/cmd/cloud/sandbox/download.ts +4 -3
  241. package/src/cmd/cloud/sandbox/env.ts +4 -3
  242. package/src/cmd/cloud/sandbox/exec.ts +4 -3
  243. package/src/cmd/cloud/sandbox/execution/get.ts +4 -4
  244. package/src/cmd/cloud/sandbox/execution/index.ts +1 -1
  245. package/src/cmd/cloud/sandbox/execution/list.ts +4 -3
  246. package/src/cmd/cloud/sandbox/get.ts +10 -4
  247. package/src/cmd/cloud/sandbox/index.ts +1 -1
  248. package/src/cmd/cloud/sandbox/list.ts +4 -4
  249. package/src/cmd/cloud/sandbox/ls.ts +4 -3
  250. package/src/cmd/cloud/sandbox/mkdir.ts +4 -3
  251. package/src/cmd/cloud/sandbox/rm.ts +4 -3
  252. package/src/cmd/cloud/sandbox/rmdir.ts +4 -3
  253. package/src/cmd/cloud/sandbox/run.ts +51 -6
  254. package/src/cmd/cloud/sandbox/runtime/index.ts +1 -1
  255. package/src/cmd/cloud/sandbox/runtime/list.ts +4 -4
  256. package/src/cmd/cloud/sandbox/snapshot/build.ts +696 -0
  257. package/src/cmd/cloud/sandbox/snapshot/create.ts +11 -5
  258. package/src/cmd/cloud/sandbox/snapshot/delete.ts +4 -4
  259. package/src/cmd/cloud/sandbox/snapshot/generate.ts +134 -0
  260. package/src/cmd/cloud/sandbox/snapshot/get.ts +23 -4
  261. package/src/cmd/cloud/sandbox/snapshot/index.ts +20 -2
  262. package/src/cmd/cloud/sandbox/snapshot/list.ts +4 -4
  263. package/src/cmd/cloud/sandbox/snapshot/tag.ts +7 -5
  264. package/src/cmd/cloud/sandbox/upload.ts +4 -3
  265. package/src/cmd/cloud/sandbox/util.ts +60 -1
  266. package/src/cmd/cloud/scp/download.ts +14 -2
  267. package/src/cmd/cloud/scp/upload.ts +14 -2
  268. package/src/cmd/cloud/session/get.ts +4 -4
  269. package/src/cmd/cloud/session/list.ts +4 -4
  270. package/src/cmd/cloud/ssh.ts +15 -2
  271. package/src/cmd/cloud/storage/delete.ts +61 -10
  272. package/src/cmd/cloud/storage/download.ts +31 -6
  273. package/src/cmd/cloud/storage/get.ts +31 -6
  274. package/src/cmd/cloud/storage/list.ts +18 -7
  275. package/src/cmd/cloud/storage/upload.ts +31 -6
  276. package/src/cmd/cloud/thread/delete.ts +4 -4
  277. package/src/cmd/cloud/thread/get.ts +4 -4
  278. package/src/cmd/cloud/thread/list.ts +4 -4
  279. package/src/cmd/project/auth/init.ts +7 -3
  280. package/src/cmd/project/auth/shared.ts +53 -14
  281. package/src/config.ts +69 -8
  282. package/src/env-util.ts +50 -5
  283. package/src/utils/apt-validator.ts +215 -0
  284. package/dist/cmd/cloud/secret/delete.d.ts +0 -2
  285. package/dist/cmd/cloud/secret/delete.d.ts.map +0 -1
  286. package/dist/cmd/cloud/secret/delete.js +0 -53
  287. package/dist/cmd/cloud/secret/delete.js.map +0 -1
  288. package/dist/cmd/cloud/secret/get.d.ts +0 -2
  289. package/dist/cmd/cloud/secret/get.d.ts.map +0 -1
  290. package/dist/cmd/cloud/secret/get.js +0 -73
  291. package/dist/cmd/cloud/secret/get.js.map +0 -1
  292. package/dist/cmd/cloud/secret/import.d.ts +0 -2
  293. package/dist/cmd/cloud/secret/import.d.ts.map +0 -1
  294. package/dist/cmd/cloud/secret/import.js +0 -91
  295. package/dist/cmd/cloud/secret/import.js.map +0 -1
  296. package/dist/cmd/cloud/secret/index.d.ts +0 -3
  297. package/dist/cmd/cloud/secret/index.d.ts.map +0 -1
  298. package/dist/cmd/cloud/secret/index.js +0 -33
  299. package/dist/cmd/cloud/secret/index.js.map +0 -1
  300. package/dist/cmd/cloud/secret/list.d.ts +0 -2
  301. package/dist/cmd/cloud/secret/list.d.ts.map +0 -1
  302. package/dist/cmd/cloud/secret/list.js +0 -65
  303. package/dist/cmd/cloud/secret/list.js.map +0 -1
  304. package/dist/cmd/cloud/secret/pull.d.ts +0 -2
  305. package/dist/cmd/cloud/secret/pull.d.ts.map +0 -1
  306. package/dist/cmd/cloud/secret/pull.js +0 -82
  307. package/dist/cmd/cloud/secret/pull.js.map +0 -1
  308. package/dist/cmd/cloud/secret/push.d.ts +0 -2
  309. package/dist/cmd/cloud/secret/push.d.ts.map +0 -1
  310. package/dist/cmd/cloud/secret/push.js +0 -61
  311. package/dist/cmd/cloud/secret/push.js.map +0 -1
  312. package/dist/cmd/cloud/secret/set.d.ts +0 -2
  313. package/dist/cmd/cloud/secret/set.d.ts.map +0 -1
  314. package/dist/cmd/cloud/secret/set.js +0 -63
  315. package/dist/cmd/cloud/secret/set.js.map +0 -1
  316. package/src/cmd/cloud/secret/delete.ts +0 -65
  317. package/src/cmd/cloud/secret/get.ts +0 -77
  318. package/src/cmd/cloud/secret/import.ts +0 -110
  319. package/src/cmd/cloud/secret/index.ts +0 -33
  320. package/src/cmd/cloud/secret/list.ts +0 -70
  321. package/src/cmd/cloud/secret/pull.ts +0 -92
  322. package/src/cmd/cloud/secret/push.ts +0 -69
  323. package/src/cmd/cloud/secret/set.ts +0 -76
@@ -1,9 +1,10 @@
1
1
  import { z } from 'zod';
2
2
  import { createCommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
- import { createSandboxClient } from './util';
4
+ import { cacheSandboxRegion } from './util';
5
5
  import { getCommand } from '../../../command-prefix';
6
6
  import { sandboxGet } from '@agentuity/server';
7
+ import { getGlobalCatalystAPIClient } from '../../../config';
7
8
 
8
9
  const SandboxResourcesSchema = z.object({
9
10
  memory: z.string().optional().describe('Memory limit (e.g., "512Mi", "1Gi")'),
@@ -35,7 +36,7 @@ export const getSubcommand = createCommand({
35
36
  aliases: ['info', 'show'],
36
37
  description: 'Get information about a sandbox',
37
38
  tags: ['read-only', 'fast', 'requires-auth'],
38
- requires: { auth: true, region: true, org: true },
39
+ requires: { auth: true, org: true },
39
40
  idempotent: true,
40
41
  examples: [
41
42
  {
@@ -51,11 +52,16 @@ export const getSubcommand = createCommand({
51
52
  },
52
53
 
53
54
  async handler(ctx) {
54
- const { args, options, auth, region, logger, orgId } = ctx;
55
- const client = createSandboxClient(logger, auth, region);
55
+ const { args, options, auth, logger, orgId, config } = ctx;
56
+ const client = await getGlobalCatalystAPIClient(logger, auth, config?.name);
56
57
 
57
58
  const result = await sandboxGet(client, { sandboxId: args.sandboxId, orgId });
58
59
 
60
+ // Cache the region for future lookups
61
+ if (result.region) {
62
+ await cacheSandboxRegion(config?.name, args.sandboxId, result.region);
63
+ }
64
+
59
65
  if (!options.json) {
60
66
  const statusColor =
61
67
  result.status === 'running'
@@ -56,7 +56,7 @@ export const command = createCommand({
56
56
  uploadSubcommand,
57
57
  envSubcommand,
58
58
  ],
59
- requires: { auth: true, region: true, org: true },
59
+ requires: { auth: true, org: true },
60
60
  });
61
61
 
62
62
  export default command;
@@ -3,7 +3,7 @@ import { createCommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
4
  import { getCommand } from '../../../command-prefix';
5
5
  import { sandboxList } from '@agentuity/server';
6
- import { createSandboxClient } from './util';
6
+ import { getGlobalCatalystAPIClient } from '../../../config';
7
7
  import type { SandboxStatus } from '@agentuity/core';
8
8
 
9
9
  const SandboxInfoSchema = z.object({
@@ -30,7 +30,7 @@ export const listSubcommand = createCommand({
30
30
  aliases: ['ls'],
31
31
  description: 'List sandboxes with optional filtering',
32
32
  tags: ['read-only', 'slow', 'requires-auth'],
33
- requires: { auth: true, region: true, org: true },
33
+ requires: { auth: true, org: true },
34
34
  optional: { project: true },
35
35
  idempotent: true,
36
36
  pagination: {
@@ -74,8 +74,8 @@ export const listSubcommand = createCommand({
74
74
  },
75
75
 
76
76
  async handler(ctx) {
77
- const { opts, options, auth, project, region, logger, orgId } = ctx;
78
- const client = createSandboxClient(logger, auth, region);
77
+ const { opts, options, auth, project, logger, orgId, config } = ctx;
78
+ const client = await getGlobalCatalystAPIClient(logger, auth, config?.name);
79
79
 
80
80
  const projectId = opts.projectId || project?.projectId;
81
81
 
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { createCommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
- import { createSandboxClient } from './util';
4
+ import { getSandboxRegion, createSandboxClient } from './util';
5
5
  import { getCommand } from '../../../command-prefix';
6
6
  import { sandboxListFiles } from '@agentuity/server';
7
7
 
@@ -23,7 +23,7 @@ export const lsSubcommand = createCommand({
23
23
  aliases: ['lsf'],
24
24
  description: 'List files in a sandbox directory',
25
25
  tags: ['slow', 'requires-auth'],
26
- requires: { auth: true, region: true, org: true },
26
+ requires: { auth: true, org: true },
27
27
  examples: [
28
28
  {
29
29
  command: getCommand('cloud sandbox files sbx_abc123'),
@@ -61,7 +61,8 @@ export const lsSubcommand = createCommand({
61
61
  },
62
62
 
63
63
  async handler(ctx) {
64
- const { args, opts, options, auth, region, logger, orgId } = ctx;
64
+ const { args, opts, options, auth, config, logger, orgId } = ctx;
65
+ const region = await getSandboxRegion(logger, auth, config?.name, args.sandboxId, orgId);
65
66
  const client = createSandboxClient(logger, auth, region);
66
67
 
67
68
  const result = await sandboxListFiles(client, {
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { createCommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
- import { createSandboxClient } from './util';
4
+ import { createSandboxClient, getSandboxRegion } from './util';
5
5
  import { getCommand } from '../../../command-prefix';
6
6
  import { sandboxMkDir } from '@agentuity/server';
7
7
 
@@ -14,7 +14,7 @@ export const mkdirSubcommand = createCommand({
14
14
  name: 'mkdir',
15
15
  description: 'Create a directory in a sandbox',
16
16
  tags: ['slow', 'requires-auth'],
17
- requires: { auth: true, region: true, org: true },
17
+ requires: { auth: true, org: true },
18
18
  examples: [
19
19
  {
20
20
  command: getCommand('cloud sandbox mkdir sbx_abc123 /path/to/dir'),
@@ -44,7 +44,8 @@ export const mkdirSubcommand = createCommand({
44
44
  },
45
45
 
46
46
  async handler(ctx) {
47
- const { args, opts, options, auth, region, logger, orgId } = ctx;
47
+ const { args, opts, options, auth, logger, orgId, config } = ctx;
48
+ const region = await getSandboxRegion(logger, auth, config?.name, args.sandboxId, orgId);
48
49
  const client = createSandboxClient(logger, auth, region);
49
50
 
50
51
  await sandboxMkDir(client, {
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { createCommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
- import { createSandboxClient } from './util';
4
+ import { getSandboxRegion, createSandboxClient } from './util';
5
5
  import { getCommand } from '../../../command-prefix';
6
6
  import { sandboxRmFile } from '@agentuity/server';
7
7
 
@@ -14,7 +14,7 @@ export const rmSubcommand = createCommand({
14
14
  name: 'rm',
15
15
  description: 'Remove a file from a sandbox',
16
16
  tags: ['slow', 'requires-auth'],
17
- requires: { auth: true, region: true, org: true },
17
+ requires: { auth: true, org: true },
18
18
  examples: [
19
19
  {
20
20
  command: getCommand('cloud sandbox rm sbx_abc123 /path/to/file.txt'),
@@ -31,7 +31,8 @@ export const rmSubcommand = createCommand({
31
31
  },
32
32
 
33
33
  async handler(ctx) {
34
- const { args, options, auth, region, logger, orgId } = ctx;
34
+ const { args, options, auth, logger, orgId, config } = ctx;
35
+ const region = await getSandboxRegion(logger, auth, config?.name, args.sandboxId, orgId);
35
36
  const client = createSandboxClient(logger, auth, region);
36
37
 
37
38
  await sandboxRmFile(client, {
@@ -1,7 +1,7 @@
1
1
  import { z } from 'zod';
2
2
  import { createCommand } from '../../../types';
3
3
  import * as tui from '../../../tui';
4
- import { createSandboxClient } from './util';
4
+ import { createSandboxClient, getSandboxRegion } from './util';
5
5
  import { getCommand } from '../../../command-prefix';
6
6
  import { sandboxRmDir } from '@agentuity/server';
7
7
 
@@ -14,7 +14,7 @@ export const rmdirSubcommand = createCommand({
14
14
  name: 'rmdir',
15
15
  description: 'Remove a directory from a sandbox',
16
16
  tags: ['slow', 'requires-auth'],
17
- requires: { auth: true, region: true, org: true },
17
+ requires: { auth: true, org: true },
18
18
  examples: [
19
19
  {
20
20
  command: getCommand('cloud sandbox rmdir sbx_abc123 /path/to/dir'),
@@ -44,7 +44,8 @@ export const rmdirSubcommand = createCommand({
44
44
  },
45
45
 
46
46
  async handler(ctx) {
47
- const { args, opts, options, auth, region, logger, orgId } = ctx;
47
+ const { args, opts, options, auth, logger, orgId, config } = ctx;
48
+ const region = await getSandboxRegion(logger, auth, config?.name, args.sandboxId, orgId);
48
49
  const client = createSandboxClient(logger, auth, region);
49
50
 
50
51
  await sandboxRmDir(client, {
@@ -2,9 +2,11 @@ import { z } from 'zod';
2
2
  import { Writable } from 'node:stream';
3
3
  import { createCommand } from '../../../types';
4
4
  import * as tui from '../../../tui';
5
- import { createSandboxClient, parseFileArgs } from './util';
5
+ import { createSandboxClient, parseFileArgs, cacheSandboxRegion } from './util';
6
6
  import { getCommand } from '../../../command-prefix';
7
7
  import { sandboxRun } from '@agentuity/server';
8
+ import { validateAptDependencies } from '../../../utils/apt-validator';
9
+ import { ErrorCode } from '../../../errors';
8
10
 
9
11
  const SandboxRunResponseSchema = z.object({
10
12
  sandboxId: z.string().describe('Sandbox ID'),
@@ -37,10 +39,7 @@ export const runSubcommand = createCommand({
37
39
  command: z.array(z.string()).describe('Command and arguments to execute'),
38
40
  }),
39
41
  options: z.object({
40
- runtime: z
41
- .string()
42
- .optional()
43
- .describe('Runtime name (e.g., "bun:1", "python:3.14")'),
42
+ runtime: z.string().optional().describe('Runtime name (e.g., "bun:1", "python:3.14")'),
44
43
  runtimeId: z.string().optional().describe('Runtime ID (e.g., "srt_xxx")'),
45
44
  name: z.string().optional().describe('Sandbox name'),
46
45
  description: z.string().optional().describe('Sandbox description'),
@@ -69,10 +68,53 @@ export const runSubcommand = createCommand({
69
68
  },
70
69
 
71
70
  async handler(ctx) {
72
- const { args, opts, options, auth, region, logger, orgId } = ctx;
71
+ const { args, opts, options, auth, region, config, logger, orgId } = ctx;
73
72
  const client = createSandboxClient(logger, auth, region);
74
73
  const started = Date.now();
75
74
 
75
+ // Validate apt dependencies before running sandbox
76
+ if (opts.dependency && opts.dependency.length > 0) {
77
+ const aptValidation = await tui.spinner({
78
+ message: 'Validating apt dependencies...',
79
+ type: 'simple',
80
+ callback: async () => {
81
+ return await validateAptDependencies(opts.dependency!, region, config, logger);
82
+ },
83
+ });
84
+
85
+ if (aptValidation.invalid.length > 0) {
86
+ if (options.json) {
87
+ return {
88
+ sandboxId: '',
89
+ exitCode: 1,
90
+ durationMs: 0,
91
+ errors: aptValidation.invalid.map((pkg) => ({
92
+ type: 'invalid-apt-dependency',
93
+ package: pkg.package,
94
+ error: pkg.error,
95
+ searchUrl: pkg.searchUrl,
96
+ availableVersions: pkg.availableVersions,
97
+ })),
98
+ } as never;
99
+ }
100
+
101
+ tui.error('Invalid apt dependencies:');
102
+ tui.newline();
103
+ for (const pkg of aptValidation.invalid) {
104
+ tui.bullet(`${tui.bold(pkg.package)}: ${pkg.error}`);
105
+ if (pkg.availableVersions && pkg.availableVersions.length > 0) {
106
+ tui.muted(` Available versions: ${pkg.availableVersions.join(', ')}`);
107
+ }
108
+ tui.muted(` Search: ${tui.link(pkg.searchUrl)}`);
109
+ }
110
+ tui.newline();
111
+ tui.fatal(
112
+ 'Fix the apt dependencies and try again. Search for valid packages at: https://packages.debian.org/stable/',
113
+ ErrorCode.CONFIG_INVALID
114
+ );
115
+ }
116
+ }
117
+
76
118
  const envMap: Record<string, string> = {};
77
119
  if (opts.env) {
78
120
  for (const e of opts.env) {
@@ -142,6 +184,9 @@ export const runSubcommand = createCommand({
142
184
  logger,
143
185
  });
144
186
 
187
+ // Cache the region for future lookups (sandbox is destroyed after run but cache helps with lookups during execution)
188
+ await cacheSandboxRegion(config?.name, result.sandboxId, region);
189
+
145
190
  const duration = Date.now() - started;
146
191
  const output = outputChunks.join('');
147
192
 
@@ -14,7 +14,7 @@ export const runtimeCommand = createCommand({
14
14
  },
15
15
  ],
16
16
  subcommands: [listSubcommand],
17
- requires: { auth: true, region: true, org: true },
17
+ requires: { auth: true, org: true },
18
18
  });
19
19
 
20
20
  export default runtimeCommand;
@@ -1,9 +1,9 @@
1
1
  import { z } from 'zod';
2
2
  import { createCommand } from '../../../../types';
3
3
  import * as tui from '../../../../tui';
4
- import { createSandboxClient } from '../util';
5
4
  import { getCommand } from '../../../../command-prefix';
6
5
  import { runtimeList } from '@agentuity/server';
6
+ import { getGlobalCatalystAPIClient } from '../../../../config';
7
7
 
8
8
  const RuntimeInfoSchema = z.object({
9
9
  id: z.string().describe('Runtime ID'),
@@ -21,7 +21,7 @@ export const listSubcommand = createCommand({
21
21
  aliases: ['ls'],
22
22
  description: 'List available sandbox runtimes',
23
23
  tags: ['read-only', 'slow', 'requires-auth'],
24
- requires: { auth: true, region: true, org: true },
24
+ requires: { auth: true, org: true },
25
25
  idempotent: true,
26
26
  examples: [
27
27
  {
@@ -38,8 +38,8 @@ export const listSubcommand = createCommand({
38
38
  },
39
39
 
40
40
  async handler(ctx) {
41
- const { opts, options, auth, region, logger, orgId } = ctx;
42
- const client = createSandboxClient(logger, auth, region);
41
+ const { opts, options, auth, logger, orgId, config } = ctx;
42
+ const client = await getGlobalCatalystAPIClient(logger, auth, config?.name);
43
43
 
44
44
  const result = await runtimeList(client, {
45
45
  orgId,