@agentuity/cli 0.1.10 → 0.1.12

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 (126) hide show
  1. package/dist/auth.d.ts.map +1 -1
  2. package/dist/auth.js +6 -10
  3. package/dist/auth.js.map +1 -1
  4. package/dist/cli.d.ts.map +1 -1
  5. package/dist/cli.js +89 -41
  6. package/dist/cli.js.map +1 -1
  7. package/dist/cmd/auth/login.d.ts.map +1 -1
  8. package/dist/cmd/auth/login.js +49 -5
  9. package/dist/cmd/auth/login.js.map +1 -1
  10. package/dist/cmd/build/patch/_util.d.ts.map +1 -1
  11. package/dist/cmd/build/patch/_util.js +6 -2
  12. package/dist/cmd/build/patch/_util.js.map +1 -1
  13. package/dist/cmd/cloud/agent/get.d.ts.map +1 -1
  14. package/dist/cmd/cloud/agent/get.js +10 -6
  15. package/dist/cmd/cloud/agent/get.js.map +1 -1
  16. package/dist/cmd/cloud/db/create.d.ts.map +1 -1
  17. package/dist/cmd/cloud/db/create.js +14 -3
  18. package/dist/cmd/cloud/db/create.js.map +1 -1
  19. package/dist/cmd/cloud/db/get.d.ts.map +1 -1
  20. package/dist/cmd/cloud/db/get.js +13 -3
  21. package/dist/cmd/cloud/db/get.js.map +1 -1
  22. package/dist/cmd/cloud/db/list.d.ts.map +1 -1
  23. package/dist/cmd/cloud/db/list.js +17 -25
  24. package/dist/cmd/cloud/db/list.js.map +1 -1
  25. package/dist/cmd/cloud/deployment/show.d.ts.map +1 -1
  26. package/dist/cmd/cloud/deployment/show.js +50 -37
  27. package/dist/cmd/cloud/deployment/show.js.map +1 -1
  28. package/dist/cmd/cloud/sandbox/create.d.ts.map +1 -1
  29. package/dist/cmd/cloud/sandbox/create.js +19 -2
  30. package/dist/cmd/cloud/sandbox/create.js.map +1 -1
  31. package/dist/cmd/cloud/sandbox/execution/get.d.ts.map +1 -1
  32. package/dist/cmd/cloud/sandbox/execution/get.js +14 -11
  33. package/dist/cmd/cloud/sandbox/execution/get.js.map +1 -1
  34. package/dist/cmd/cloud/sandbox/get.d.ts.map +1 -1
  35. package/dist/cmd/cloud/sandbox/get.js +48 -39
  36. package/dist/cmd/cloud/sandbox/get.js.map +1 -1
  37. package/dist/cmd/cloud/sandbox/list.d.ts.map +1 -1
  38. package/dist/cmd/cloud/sandbox/list.js +6 -1
  39. package/dist/cmd/cloud/sandbox/list.js.map +1 -1
  40. package/dist/cmd/cloud/sandbox/run.d.ts.map +1 -1
  41. package/dist/cmd/cloud/sandbox/run.js +5 -1
  42. package/dist/cmd/cloud/sandbox/run.js.map +1 -1
  43. package/dist/cmd/cloud/sandbox/snapshot/build.d.ts +5 -0
  44. package/dist/cmd/cloud/sandbox/snapshot/build.d.ts.map +1 -0
  45. package/dist/cmd/cloud/sandbox/snapshot/build.js +590 -0
  46. package/dist/cmd/cloud/sandbox/snapshot/build.js.map +1 -0
  47. package/dist/cmd/cloud/sandbox/snapshot/generate.d.ts +3 -0
  48. package/dist/cmd/cloud/sandbox/snapshot/generate.d.ts.map +1 -0
  49. package/dist/cmd/cloud/sandbox/snapshot/generate.js +129 -0
  50. package/dist/cmd/cloud/sandbox/snapshot/generate.js.map +1 -0
  51. package/dist/cmd/cloud/sandbox/snapshot/get.d.ts.map +1 -1
  52. package/dist/cmd/cloud/sandbox/snapshot/get.js +25 -6
  53. package/dist/cmd/cloud/sandbox/snapshot/get.js.map +1 -1
  54. package/dist/cmd/cloud/sandbox/snapshot/index.d.ts.map +1 -1
  55. package/dist/cmd/cloud/sandbox/snapshot/index.js +19 -1
  56. package/dist/cmd/cloud/sandbox/snapshot/index.js.map +1 -1
  57. package/dist/cmd/cloud/session/get.d.ts.map +1 -1
  58. package/dist/cmd/cloud/session/get.js +24 -23
  59. package/dist/cmd/cloud/session/get.js.map +1 -1
  60. package/dist/cmd/cloud/session/list.d.ts.map +1 -1
  61. package/dist/cmd/cloud/session/list.js +7 -2
  62. package/dist/cmd/cloud/session/list.js.map +1 -1
  63. package/dist/cmd/cloud/thread/get.d.ts.map +1 -1
  64. package/dist/cmd/cloud/thread/get.js +11 -8
  65. package/dist/cmd/cloud/thread/get.js.map +1 -1
  66. package/dist/cmd/cloud/thread/list.d.ts.map +1 -1
  67. package/dist/cmd/cloud/thread/list.js +6 -1
  68. package/dist/cmd/cloud/thread/list.js.map +1 -1
  69. package/dist/cmd/dev/file-watcher.d.ts.map +1 -1
  70. package/dist/cmd/dev/file-watcher.js +2 -0
  71. package/dist/cmd/dev/file-watcher.js.map +1 -1
  72. package/dist/cmd/dev/index.d.ts.map +1 -1
  73. package/dist/cmd/dev/index.js +62 -4
  74. package/dist/cmd/dev/index.js.map +1 -1
  75. package/dist/cmd/project/auth/shared.js +1 -1
  76. package/dist/cmd/project/auth/shared.js.map +1 -1
  77. package/dist/cmd/project/template-flow.d.ts.map +1 -1
  78. package/dist/cmd/project/template-flow.js +15 -1
  79. package/dist/cmd/project/template-flow.js.map +1 -1
  80. package/dist/cmd/setup/index.d.ts.map +1 -1
  81. package/dist/cmd/setup/index.js +40 -3
  82. package/dist/cmd/setup/index.js.map +1 -1
  83. package/dist/config.d.ts.map +1 -1
  84. package/dist/config.js +10 -5
  85. package/dist/config.js.map +1 -1
  86. package/dist/steps.d.ts.map +1 -1
  87. package/dist/steps.js +4 -2
  88. package/dist/steps.js.map +1 -1
  89. package/dist/tui.d.ts +11 -1
  90. package/dist/tui.d.ts.map +1 -1
  91. package/dist/tui.js +47 -12
  92. package/dist/tui.js.map +1 -1
  93. package/dist/utils/apt-validator.js +3 -3
  94. package/dist/utils/apt-validator.js.map +1 -1
  95. package/package.json +6 -6
  96. package/src/auth.ts +12 -11
  97. package/src/cli.ts +121 -43
  98. package/src/cmd/auth/login.ts +57 -5
  99. package/src/cmd/build/patch/_util.ts +6 -2
  100. package/src/cmd/cloud/agent/get.ts +14 -6
  101. package/src/cmd/cloud/db/create.ts +15 -3
  102. package/src/cmd/cloud/db/get.ts +14 -3
  103. package/src/cmd/cloud/db/list.ts +16 -26
  104. package/src/cmd/cloud/deployment/show.ts +53 -47
  105. package/src/cmd/cloud/sandbox/create.ts +20 -2
  106. package/src/cmd/cloud/sandbox/execution/get.ts +16 -13
  107. package/src/cmd/cloud/sandbox/get.ts +48 -38
  108. package/src/cmd/cloud/sandbox/list.ts +6 -1
  109. package/src/cmd/cloud/sandbox/run.ts +5 -1
  110. package/src/cmd/cloud/sandbox/snapshot/build.ts +723 -0
  111. package/src/cmd/cloud/sandbox/snapshot/generate.ts +136 -0
  112. package/src/cmd/cloud/sandbox/snapshot/get.ts +29 -6
  113. package/src/cmd/cloud/sandbox/snapshot/index.ts +19 -1
  114. package/src/cmd/cloud/session/get.ts +25 -29
  115. package/src/cmd/cloud/session/list.ts +7 -2
  116. package/src/cmd/cloud/thread/get.ts +12 -8
  117. package/src/cmd/cloud/thread/list.ts +6 -1
  118. package/src/cmd/dev/file-watcher.ts +2 -0
  119. package/src/cmd/dev/index.ts +76 -4
  120. package/src/cmd/project/auth/shared.ts +1 -1
  121. package/src/cmd/project/template-flow.ts +15 -1
  122. package/src/cmd/setup/index.ts +41 -3
  123. package/src/config.ts +11 -5
  124. package/src/steps.ts +4 -2
  125. package/src/tui.ts +61 -12
  126. package/src/utils/apt-validator.ts +3 -3
@@ -29,6 +29,7 @@ const SandboxGetResponseSchema = z.object({
29
29
  dependencies: z.array(z.string()).optional().describe('Apt packages installed'),
30
30
  metadata: z.record(z.string(), z.unknown()).optional().describe('User-defined metadata'),
31
31
  resources: SandboxResourcesSchema.optional().describe('Resource limits'),
32
+ url: z.string().optional().describe('Public URL for the sandbox (if network port configured)'),
32
33
  });
33
34
 
34
35
  export const getSubcommand = createCommand({
@@ -72,57 +73,65 @@ export const getSubcommand = createCommand({
72
73
  ? tui.colorError
73
74
  : tui.colorMuted;
74
75
 
75
- console.log(`${tui.muted('Sandbox:')} ${tui.bold(result.sandboxId)}`);
76
- if (result.name) {
77
- console.log(`${tui.muted('Name:')} ${result.name}`);
78
- }
79
- if (result.description) {
80
- console.log(`${tui.muted('Description:')} ${result.description}`);
81
- }
82
- console.log(`${tui.muted('Status:')} ${statusColor(result.status)}`);
83
- console.log(`${tui.muted('Created:')} ${result.createdAt}`);
84
- if (result.runtimeName) {
85
- console.log(`${tui.muted('Runtime:')} ${result.runtimeName}`);
86
- }
87
- if (result.region) {
88
- console.log(`${tui.muted('Region:')} ${result.region}`);
89
- }
90
- if (result.snapshotId || result.snapshotTag) {
91
- const snapshotDisplay = result.snapshotTag
92
- ? `${result.snapshotTag} ${tui.muted('(' + result.snapshotId + ')')}`
93
- : result.snapshotId;
94
- console.log(`${tui.muted('Snapshot:')} ${snapshotDisplay}`);
95
- }
96
- console.log(`${tui.muted('Executions:')} ${result.executions}`);
76
+ const snapshotDisplay =
77
+ result.snapshotId || result.snapshotTag
78
+ ? result.snapshotTag
79
+ ? result.snapshotId
80
+ ? `${result.snapshotTag} ${tui.muted('(' + result.snapshotId + ')')}`
81
+ : result.snapshotTag
82
+ : result.snapshotId
83
+ : undefined;
84
+
85
+ let streamDisplay: string | undefined;
97
86
  if (
98
87
  result.stdoutStreamUrl &&
99
88
  result.stderrStreamUrl &&
100
89
  result.stdoutStreamUrl === result.stderrStreamUrl
101
90
  ) {
102
- console.log(`${tui.muted('Stream:')} ${tui.link(result.stdoutStreamUrl)}`);
103
- } else {
104
- if (result.stdoutStreamUrl) {
105
- console.log(`${tui.muted('Stream (stdout):')} ${tui.link(result.stdoutStreamUrl)}`);
106
- }
107
- if (result.stderrStreamUrl) {
108
- console.log(`${tui.muted('Stream (stderr):')} ${tui.link(result.stderrStreamUrl)}`);
109
- }
110
- }
111
- if (result.dependencies && result.dependencies.length > 0) {
112
- console.log(`${tui.muted('Dependencies:')} ${result.dependencies.join(', ')}`);
91
+ streamDisplay = tui.link(result.stdoutStreamUrl);
113
92
  }
93
+
94
+ const resourceParts: string[] = [];
114
95
  if (result.resources) {
115
- const resourceParts: string[] = [];
116
96
  if (result.resources.memory) resourceParts.push(`memory=${result.resources.memory}`);
117
97
  if (result.resources.cpu) resourceParts.push(`cpu=${result.resources.cpu}`);
118
98
  if (result.resources.disk) resourceParts.push(`disk=${result.resources.disk}`);
119
- if (resourceParts.length > 0) {
120
- console.log(`${tui.muted('Resources:')} ${resourceParts.join(', ')}`);
121
- }
99
+ }
100
+
101
+ const tableData: Record<string, string | number> = {
102
+ Sandbox: tui.bold(result.sandboxId),
103
+ };
104
+
105
+ if (result.name) tableData['Name'] = result.name;
106
+ if (result.description) tableData['Description'] = result.description;
107
+ tableData['Status'] = statusColor(result.status);
108
+ tableData['Created'] = result.createdAt;
109
+ if (result.runtimeName) tableData['Runtime'] = result.runtimeName;
110
+ if (result.region) tableData['Region'] = result.region;
111
+ if (snapshotDisplay) tableData['Snapshot'] = snapshotDisplay;
112
+ tableData['Executions'] = result.executions;
113
+ if (streamDisplay) {
114
+ tableData['Stream'] = streamDisplay;
115
+ } else {
116
+ if (result.stdoutStreamUrl)
117
+ tableData['Stream (stdout)'] = tui.link(result.stdoutStreamUrl);
118
+ if (result.stderrStreamUrl)
119
+ tableData['Stream (stderr)'] = tui.link(result.stderrStreamUrl);
120
+ }
121
+ if (result.dependencies && result.dependencies.length > 0) {
122
+ tableData['Dependencies'] = result.dependencies.join(', ');
123
+ }
124
+ if (resourceParts.length > 0) {
125
+ tableData['Resources'] = resourceParts.join(', ');
122
126
  }
123
127
  if (result.metadata && Object.keys(result.metadata).length > 0) {
124
- console.log(`${tui.muted('Metadata:')} ${JSON.stringify(result.metadata)}`);
128
+ tableData['Metadata'] = JSON.stringify(result.metadata);
125
129
  }
130
+ if (result.url) {
131
+ tableData['URL'] = tui.link(result.url);
132
+ }
133
+
134
+ tui.table([tableData], Object.keys(tableData), { layout: 'vertical', padStart: ' ' });
126
135
  }
127
136
 
128
137
  return {
@@ -142,6 +151,7 @@ export const getSubcommand = createCommand({
142
151
  dependencies: result.dependencies,
143
152
  metadata: result.metadata,
144
153
  resources: result.resources,
154
+ url: result.url,
145
155
  };
146
156
  },
147
157
  });
@@ -59,6 +59,10 @@ export const listSubcommand = createCommand({
59
59
  command: getCommand('cloud sandbox list --limit 10 --offset 20'),
60
60
  description: 'List with pagination',
61
61
  },
62
+ {
63
+ command: getCommand('cloud sandbox list --all'),
64
+ description: 'List all sandboxes regardless of project context',
65
+ },
62
66
  ],
63
67
  schema: {
64
68
  options: z.object({
@@ -67,6 +71,7 @@ export const listSubcommand = createCommand({
67
71
  .optional()
68
72
  .describe('Filter by status'),
69
73
  projectId: z.string().optional().describe('Filter by project ID'),
74
+ all: z.boolean().optional().describe('List all sandboxes regardless of project context'),
70
75
  limit: z.number().optional().describe('Maximum number of results (default: 50, max: 100)'),
71
76
  offset: z.number().optional().describe('Pagination offset'),
72
77
  }),
@@ -77,7 +82,7 @@ export const listSubcommand = createCommand({
77
82
  const { opts, options, auth, project, logger, orgId, config } = ctx;
78
83
  const client = await getGlobalCatalystAPIClient(logger, auth, config?.name);
79
84
 
80
- const projectId = opts.projectId || project?.projectId;
85
+ const projectId = opts.all ? undefined : opts.projectId || project?.projectId;
81
86
 
82
87
  const result = await sandboxList(client, {
83
88
  orgId,
@@ -20,6 +20,7 @@ export const runSubcommand = createCommand({
20
20
  description: 'Run a one-shot command in a sandbox (creates, executes, destroys)',
21
21
  tags: ['slow', 'requires-auth'],
22
22
  requires: { auth: true, region: true, org: true },
23
+ optional: { project: true },
23
24
  examples: [
24
25
  {
25
26
  command: getCommand('cloud sandbox run -- echo "hello world"'),
@@ -63,12 +64,14 @@ export const runSubcommand = createCommand({
63
64
  .array(z.string())
64
65
  .optional()
65
66
  .describe('Apt packages to install (can be specified multiple times)'),
67
+ projectId: z.string().optional().describe('Project ID to associate this sandbox with'),
66
68
  }),
67
69
  response: SandboxRunResponseSchema,
68
70
  },
69
71
 
70
72
  async handler(ctx) {
71
- const { args, opts, options, auth, region, config, logger, orgId } = ctx;
73
+ const { args, opts, options, auth, region, config, logger, orgId, project } = ctx;
74
+ const projectId = opts.projectId || project?.projectId;
72
75
  const client = createSandboxClient(logger, auth, region);
73
76
  const started = Date.now();
74
77
 
@@ -151,6 +154,7 @@ export const runSubcommand = createCommand({
151
154
  try {
152
155
  const result = await sandboxRun(client, {
153
156
  options: {
157
+ projectId,
154
158
  runtime: opts.runtime,
155
159
  runtimeId: opts.runtimeId,
156
160
  name: opts.name,