@agentuity/cli 2.0.6 → 2.0.8

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 (201) hide show
  1. package/README.md +11 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +4 -2
  4. package/dist/cli.js.map +1 -1
  5. package/dist/cmd/build/vite/route-discovery.d.ts.map +1 -1
  6. package/dist/cmd/build/vite/route-discovery.js +6 -0
  7. package/dist/cmd/build/vite/route-discovery.js.map +1 -1
  8. package/dist/cmd/cloud/sandbox/fs/rm.d.ts.map +1 -1
  9. package/dist/cmd/cloud/sandbox/fs/rm.js +9 -3
  10. package/dist/cmd/cloud/sandbox/fs/rm.js.map +1 -1
  11. package/dist/cmd/cloud/sandbox/fs/rmdir.d.ts.map +1 -1
  12. package/dist/cmd/cloud/sandbox/fs/rmdir.js +9 -3
  13. package/dist/cmd/cloud/sandbox/fs/rmdir.js.map +1 -1
  14. package/dist/cmd/cloud/task/close.d.ts +3 -0
  15. package/dist/cmd/cloud/task/close.d.ts.map +1 -0
  16. package/dist/cmd/cloud/task/close.js +286 -0
  17. package/dist/cmd/cloud/task/close.js.map +1 -0
  18. package/dist/cmd/cloud/task/delete.d.ts +1 -5
  19. package/dist/cmd/cloud/task/delete.d.ts.map +1 -1
  20. package/dist/cmd/cloud/task/delete.js +15 -38
  21. package/dist/cmd/cloud/task/delete.js.map +1 -1
  22. package/dist/cmd/cloud/task/index.d.ts.map +1 -1
  23. package/dist/cmd/cloud/task/index.js +10 -0
  24. package/dist/cmd/cloud/task/index.js.map +1 -1
  25. package/dist/cmd/cloud/task/list.d.ts.map +1 -1
  26. package/dist/cmd/cloud/task/list.js +97 -3
  27. package/dist/cmd/cloud/task/list.js.map +1 -1
  28. package/dist/cmd/cloud/task/util.d.ts +10 -0
  29. package/dist/cmd/cloud/task/util.d.ts.map +1 -1
  30. package/dist/cmd/cloud/task/util.js +47 -3
  31. package/dist/cmd/cloud/task/util.js.map +1 -1
  32. package/dist/cmd/coder/archive.d.ts +2 -0
  33. package/dist/cmd/coder/archive.d.ts.map +1 -0
  34. package/dist/cmd/coder/archive.js +57 -0
  35. package/dist/cmd/coder/archive.js.map +1 -0
  36. package/dist/cmd/coder/create.d.ts +2 -0
  37. package/dist/cmd/coder/create.d.ts.map +1 -0
  38. package/dist/cmd/coder/create.js +245 -0
  39. package/dist/cmd/coder/create.js.map +1 -0
  40. package/dist/cmd/coder/delete.d.ts +2 -0
  41. package/dist/cmd/coder/delete.d.ts.map +1 -0
  42. package/dist/cmd/coder/delete.js +64 -0
  43. package/dist/cmd/coder/delete.js.map +1 -0
  44. package/dist/cmd/coder/events.d.ts +2 -0
  45. package/dist/cmd/coder/events.d.ts.map +1 -0
  46. package/dist/cmd/coder/events.js +99 -0
  47. package/dist/cmd/coder/events.js.map +1 -0
  48. package/dist/cmd/coder/extension-path.d.ts +8 -0
  49. package/dist/cmd/coder/extension-path.d.ts.map +1 -0
  50. package/dist/cmd/coder/extension-path.js +59 -0
  51. package/dist/cmd/coder/extension-path.js.map +1 -0
  52. package/dist/cmd/coder/get.d.ts +2 -0
  53. package/dist/cmd/coder/get.d.ts.map +1 -0
  54. package/dist/cmd/coder/{inspect.js → get.js} +37 -33
  55. package/dist/cmd/coder/get.js.map +1 -0
  56. package/dist/cmd/coder/index.d.ts.map +1 -1
  57. package/dist/cmd/coder/index.js +54 -4
  58. package/dist/cmd/coder/index.js.map +1 -1
  59. package/dist/cmd/coder/list.d.ts.map +1 -1
  60. package/dist/cmd/coder/list.js +25 -34
  61. package/dist/cmd/coder/list.js.map +1 -1
  62. package/dist/cmd/coder/loop.d.ts +2 -0
  63. package/dist/cmd/coder/loop.d.ts.map +1 -0
  64. package/dist/cmd/coder/loop.js +78 -0
  65. package/dist/cmd/coder/loop.js.map +1 -0
  66. package/dist/cmd/coder/participants.d.ts +2 -0
  67. package/dist/cmd/coder/participants.d.ts.map +1 -0
  68. package/dist/cmd/coder/participants.js +93 -0
  69. package/dist/cmd/coder/participants.js.map +1 -0
  70. package/dist/cmd/coder/replay.d.ts +2 -0
  71. package/dist/cmd/coder/replay.d.ts.map +1 -0
  72. package/dist/cmd/coder/replay.js +53 -0
  73. package/dist/cmd/coder/replay.js.map +1 -0
  74. package/dist/cmd/coder/resolve-repo.d.ts +27 -0
  75. package/dist/cmd/coder/resolve-repo.d.ts.map +1 -0
  76. package/dist/cmd/coder/resolve-repo.js +97 -0
  77. package/dist/cmd/coder/resolve-repo.js.map +1 -0
  78. package/dist/cmd/coder/skill/buckets.d.ts +2 -0
  79. package/dist/cmd/coder/skill/buckets.d.ts.map +1 -0
  80. package/dist/cmd/coder/skill/buckets.js +174 -0
  81. package/dist/cmd/coder/skill/buckets.js.map +1 -0
  82. package/dist/cmd/coder/skill/delete.d.ts +2 -0
  83. package/dist/cmd/coder/skill/delete.d.ts.map +1 -0
  84. package/dist/cmd/coder/skill/delete.js +64 -0
  85. package/dist/cmd/coder/skill/delete.js.map +1 -0
  86. package/dist/cmd/coder/skill/index.d.ts +2 -0
  87. package/dist/cmd/coder/skill/index.d.ts.map +1 -0
  88. package/dist/cmd/coder/skill/index.js +33 -0
  89. package/dist/cmd/coder/skill/index.js.map +1 -0
  90. package/dist/cmd/coder/skill/list.d.ts +2 -0
  91. package/dist/cmd/coder/skill/list.d.ts.map +1 -0
  92. package/dist/cmd/coder/skill/list.js +93 -0
  93. package/dist/cmd/coder/skill/list.js.map +1 -0
  94. package/dist/cmd/coder/skill/save.d.ts +2 -0
  95. package/dist/cmd/coder/skill/save.d.ts.map +1 -0
  96. package/dist/cmd/coder/skill/save.js +77 -0
  97. package/dist/cmd/coder/skill/save.js.map +1 -0
  98. package/dist/cmd/coder/start.d.ts.map +1 -1
  99. package/dist/cmd/coder/start.js +88 -117
  100. package/dist/cmd/coder/start.js.map +1 -1
  101. package/dist/cmd/coder/tui-init.d.ts +4 -1
  102. package/dist/cmd/coder/tui-init.d.ts.map +1 -1
  103. package/dist/cmd/coder/tui-init.js +9 -3
  104. package/dist/cmd/coder/tui-init.js.map +1 -1
  105. package/dist/cmd/coder/update.d.ts +2 -0
  106. package/dist/cmd/coder/update.d.ts.map +1 -0
  107. package/dist/cmd/coder/update.js +126 -0
  108. package/dist/cmd/coder/update.js.map +1 -0
  109. package/dist/cmd/coder/users.d.ts +2 -0
  110. package/dist/cmd/coder/users.d.ts.map +1 -0
  111. package/dist/cmd/coder/users.js +97 -0
  112. package/dist/cmd/coder/users.js.map +1 -0
  113. package/dist/cmd/coder/workspace/create.d.ts +2 -0
  114. package/dist/cmd/coder/workspace/create.d.ts.map +1 -0
  115. package/dist/cmd/coder/workspace/create.js +97 -0
  116. package/dist/cmd/coder/workspace/create.js.map +1 -0
  117. package/dist/cmd/coder/workspace/delete.d.ts +2 -0
  118. package/dist/cmd/coder/workspace/delete.d.ts.map +1 -0
  119. package/dist/cmd/coder/workspace/delete.js +64 -0
  120. package/dist/cmd/coder/workspace/delete.js.map +1 -0
  121. package/dist/cmd/coder/workspace/get.d.ts +2 -0
  122. package/dist/cmd/coder/workspace/get.d.ts.map +1 -0
  123. package/dist/cmd/coder/workspace/get.js +109 -0
  124. package/dist/cmd/coder/workspace/get.js.map +1 -0
  125. package/dist/cmd/coder/workspace/index.d.ts +2 -0
  126. package/dist/cmd/coder/workspace/index.d.ts.map +1 -0
  127. package/dist/cmd/coder/workspace/index.js +38 -0
  128. package/dist/cmd/coder/workspace/index.js.map +1 -0
  129. package/dist/cmd/coder/workspace/list.d.ts +2 -0
  130. package/dist/cmd/coder/workspace/list.d.ts.map +1 -0
  131. package/dist/cmd/coder/workspace/list.js +93 -0
  132. package/dist/cmd/coder/workspace/list.js.map +1 -0
  133. package/dist/cmd/dev/sync.js +5 -5
  134. package/dist/cmd/dev/sync.js.map +1 -1
  135. package/dist/coder-hub-url.d.ts +3 -0
  136. package/dist/coder-hub-url.d.ts.map +1 -0
  137. package/dist/coder-hub-url.js +32 -0
  138. package/dist/coder-hub-url.js.map +1 -0
  139. package/dist/config.d.ts +1 -0
  140. package/dist/config.d.ts.map +1 -1
  141. package/dist/config.js +14 -3
  142. package/dist/config.js.map +1 -1
  143. package/dist/internal-logger.d.ts +4 -0
  144. package/dist/internal-logger.d.ts.map +1 -1
  145. package/dist/internal-logger.js +64 -2
  146. package/dist/internal-logger.js.map +1 -1
  147. package/dist/keychain.d.ts +3 -0
  148. package/dist/keychain.d.ts.map +1 -1
  149. package/dist/keychain.js +47 -28
  150. package/dist/keychain.js.map +1 -1
  151. package/dist/types.d.ts +1 -1
  152. package/package.json +7 -6
  153. package/src/cli.ts +4 -2
  154. package/src/cmd/ai/prompt/agent.md +6 -6
  155. package/src/cmd/build/vite/route-discovery.ts +8 -0
  156. package/src/cmd/cloud/sandbox/fs/rm.ts +8 -3
  157. package/src/cmd/cloud/sandbox/fs/rmdir.ts +8 -3
  158. package/src/cmd/cloud/task/close.ts +319 -0
  159. package/src/cmd/cloud/task/delete.ts +15 -43
  160. package/src/cmd/cloud/task/index.ts +10 -0
  161. package/src/cmd/cloud/task/list.ts +111 -4
  162. package/src/cmd/cloud/task/util.ts +59 -5
  163. package/src/cmd/coder/archive.ts +59 -0
  164. package/src/cmd/coder/create.ts +268 -0
  165. package/src/cmd/coder/delete.ts +67 -0
  166. package/src/cmd/coder/events.ts +106 -0
  167. package/src/cmd/coder/extension-path.ts +71 -0
  168. package/src/cmd/coder/{inspect.ts → get.ts} +44 -45
  169. package/src/cmd/coder/index.ts +54 -4
  170. package/src/cmd/coder/list.ts +28 -65
  171. package/src/cmd/coder/loop.ts +85 -0
  172. package/src/cmd/coder/participants.ts +100 -0
  173. package/src/cmd/coder/replay.ts +58 -0
  174. package/src/cmd/coder/resolve-repo.ts +119 -0
  175. package/src/cmd/coder/skill/buckets.ts +191 -0
  176. package/src/cmd/coder/skill/delete.ts +67 -0
  177. package/src/cmd/coder/skill/index.ts +35 -0
  178. package/src/cmd/coder/skill/list.ts +97 -0
  179. package/src/cmd/coder/skill/save.ts +84 -0
  180. package/src/cmd/coder/start.ts +104 -141
  181. package/src/cmd/coder/tui-init.ts +13 -4
  182. package/src/cmd/coder/update.ts +128 -0
  183. package/src/cmd/coder/users.ts +101 -0
  184. package/src/cmd/coder/workspace/create.ts +104 -0
  185. package/src/cmd/coder/workspace/delete.ts +70 -0
  186. package/src/cmd/coder/workspace/get.ts +112 -0
  187. package/src/cmd/coder/workspace/index.ts +38 -0
  188. package/src/cmd/coder/workspace/list.ts +101 -0
  189. package/src/cmd/dev/sync.ts +5 -5
  190. package/src/coder-hub-url.ts +32 -0
  191. package/src/config.ts +17 -3
  192. package/src/internal-logger.ts +83 -2
  193. package/src/keychain.ts +68 -39
  194. package/dist/cmd/coder/hub-url.d.ts +0 -36
  195. package/dist/cmd/coder/hub-url.d.ts.map +0 -1
  196. package/dist/cmd/coder/hub-url.js +0 -106
  197. package/dist/cmd/coder/hub-url.js.map +0 -1
  198. package/dist/cmd/coder/inspect.d.ts +0 -2
  199. package/dist/cmd/coder/inspect.d.ts.map +0 -1
  200. package/dist/cmd/coder/inspect.js.map +0 -1
  201. package/src/cmd/coder/hub-url.ts +0 -111
@@ -0,0 +1,245 @@
1
+ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
+ if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
+ return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
+ return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
+ });
6
+ }
7
+ return path;
8
+ };
9
+ import { z } from 'zod';
10
+ import { CoderClient, normalizeVisibility, } from '@agentuity/core/coder';
11
+ import { ValidationOutputError } from '@agentuity/core';
12
+ import { toCoderHubWsUrl } from '../../coder-hub-url';
13
+ import { createSubcommand } from '../../types';
14
+ import * as tui from '../../tui';
15
+ import { getCommand } from '../../command-prefix';
16
+ import { ErrorCode } from '../../errors';
17
+ import { resolveExtensionPath, resolveExtensionRuntimeModulePath } from './extension-path';
18
+ import { resolveGitHubRepo } from './resolve-repo';
19
+ export const createCoderSubcommand = createSubcommand({
20
+ name: 'create',
21
+ aliases: ['new'],
22
+ description: 'Create a new Coder session',
23
+ tags: ['mutating', 'requires-auth'],
24
+ requires: { auth: true, org: true },
25
+ examples: [
26
+ {
27
+ command: getCommand('coder create "Build a REST API"'),
28
+ description: 'Create a simple session',
29
+ },
30
+ {
31
+ command: getCommand('coder create "Fix the login bug" --repo https://github.com/org/repo'),
32
+ description: 'Create with a repo',
33
+ },
34
+ {
35
+ command: getCommand('coder create "Refactor auth" --connect'),
36
+ description: 'Create and attach TUI',
37
+ },
38
+ {
39
+ command: getCommand('coder create "Build feature" --workflow-mode loop --loop-goal "Complete implementation" --loop-max-iterations 20'),
40
+ description: 'Create a loop session',
41
+ },
42
+ {
43
+ command: getCommand('coder create "Quick task" --label "My Task" --tags frontend,urgent --json'),
44
+ description: 'Create with label and tags, return JSON',
45
+ },
46
+ ],
47
+ schema: {
48
+ args: z.object({
49
+ task: z.string().describe('Task prompt for the session'),
50
+ }),
51
+ options: z.object({
52
+ // Connection
53
+ url: z.string().optional().describe('Coder API URL override'),
54
+ connect: z.boolean().optional().describe('Connect to the session after creation'),
55
+ extension: z
56
+ .string()
57
+ .optional()
58
+ .describe('Coder extension path override (used with --connect)'),
59
+ // Session config
60
+ label: z.string().optional().describe('Human-readable session label'),
61
+ agent: z.string().optional().describe('Default agent role (e.g. lead, scout)'),
62
+ visibility: z
63
+ .string()
64
+ .optional()
65
+ .describe('Session visibility: private, org, or collaborate'),
66
+ // Workflow
67
+ workflowMode: z.string().optional().describe('Workflow mode: standard or loop'),
68
+ loopGoal: z.string().optional().describe('Goal for loop mode execution'),
69
+ loopMaxIterations: z.number().optional().describe('Maximum loop iterations'),
70
+ loopAutoContinue: z
71
+ .boolean()
72
+ .optional()
73
+ .describe('Auto-continue loop without manual approval'),
74
+ loopAllowDetached: z
75
+ .boolean()
76
+ .optional()
77
+ .describe('Allow loop to continue when no client attached'),
78
+ // Repository
79
+ repo: z.string().optional().describe('Git repository URL to clone'),
80
+ repoBranch: z.string().optional().describe('Branch to checkout for the repository'),
81
+ // Resources
82
+ workspaceId: z.string().optional().describe('Workspace ID to use'),
83
+ tags: z.string().optional().describe('Comma-separated tags'),
84
+ env: z
85
+ .string()
86
+ .optional()
87
+ .describe('Environment variables as KEY=VALUE pairs, comma-separated'),
88
+ // Skills (by ID for now)
89
+ savedSkillIds: z.string().optional().describe('Comma-separated saved skill IDs'),
90
+ skillBucketIds: z.string().optional().describe('Comma-separated skill bucket IDs'),
91
+ }),
92
+ },
93
+ async handler(ctx) {
94
+ const { args, opts, options } = ctx;
95
+ const client = new CoderClient({
96
+ apiKey: ctx.auth.apiKey,
97
+ url: opts?.url,
98
+ orgId: ctx.orgId,
99
+ });
100
+ // Build the create session request body from flags
101
+ const body = {
102
+ task: args.task,
103
+ ...(opts?.label && { label: opts.label }),
104
+ ...(opts?.agent && { agent: opts.agent }),
105
+ ...(opts?.visibility && { visibility: normalizeVisibility(opts.visibility) }),
106
+ ...(opts?.workflowMode && { workflowMode: opts.workflowMode }),
107
+ };
108
+ // Build loop config if any loop option is set
109
+ if (opts?.loopGoal ||
110
+ opts?.loopMaxIterations ||
111
+ opts?.loopAutoContinue !== undefined ||
112
+ opts?.loopAllowDetached !== undefined) {
113
+ body.loop = {};
114
+ if (opts?.loopGoal)
115
+ body.loop.goal = opts.loopGoal;
116
+ if (opts?.loopMaxIterations)
117
+ body.loop.maxIterations = opts.loopMaxIterations;
118
+ if (opts?.loopAutoContinue !== undefined)
119
+ body.loop.autoContinue = opts.loopAutoContinue;
120
+ if (opts?.loopAllowDetached !== undefined)
121
+ body.loop.allowDetached = opts.loopAllowDetached;
122
+ // Auto-set workflowMode to loop if loop options provided
123
+ if (!body.workflowMode)
124
+ body.workflowMode = 'loop';
125
+ }
126
+ // Parse repo
127
+ if (opts?.repo) {
128
+ if (!options.json)
129
+ tui.output('Resolving repository...');
130
+ try {
131
+ const resolved = await resolveGitHubRepo(client, opts.repo, opts?.repoBranch);
132
+ body.repo = resolved;
133
+ }
134
+ catch (err) {
135
+ const msg = err instanceof Error ? err.message : String(err);
136
+ tui.fatal(`Failed to resolve repository: ${msg}`, ErrorCode.VALIDATION_FAILED);
137
+ return;
138
+ }
139
+ }
140
+ // Parse comma-separated values
141
+ if (opts?.tags)
142
+ body.tags = opts.tags
143
+ .split(',')
144
+ .map((t) => t.trim())
145
+ .filter(Boolean);
146
+ if (opts?.savedSkillIds)
147
+ body.savedSkillIds = opts.savedSkillIds
148
+ .split(',')
149
+ .map((s) => s.trim())
150
+ .filter(Boolean);
151
+ if (opts?.skillBucketIds)
152
+ body.skillBucketIds = opts.skillBucketIds
153
+ .split(',')
154
+ .map((s) => s.trim())
155
+ .filter(Boolean);
156
+ // Parse env vars: KEY=VALUE,KEY2=VALUE2
157
+ if (opts?.env) {
158
+ body.env = {};
159
+ for (const pair of opts.env.split(',')) {
160
+ const eq = pair.indexOf('=');
161
+ if (eq > 0) {
162
+ body.env[pair.slice(0, eq).trim()] = pair.slice(eq + 1).trim();
163
+ }
164
+ }
165
+ }
166
+ if (opts?.workspaceId)
167
+ body.workspaceId = opts.workspaceId;
168
+ // Create the session
169
+ try {
170
+ const created = await client.createSession(body);
171
+ // JSON mode: return result and stop
172
+ if (options.json) {
173
+ return created;
174
+ }
175
+ tui.success(`Session ${created.sessionId} created (status: ${created.status})`);
176
+ // If --connect, wait for provisioning then attach TUI
177
+ if (opts?.connect) {
178
+ tui.output('Waiting for session to provision...');
179
+ // Poll until session is active
180
+ let status = created.status;
181
+ const startTime = Date.now();
182
+ const POLL_TIMEOUT = 120_000;
183
+ const POLL_INTERVAL = 3_000;
184
+ while (Date.now() - startTime < POLL_TIMEOUT) {
185
+ if (status !== 'creating' && status !== 'provisioning')
186
+ break;
187
+ await new Promise((r) => setTimeout(r, POLL_INTERVAL));
188
+ try {
189
+ const detail = await client.getSession(created.sessionId);
190
+ status = detail.status;
191
+ }
192
+ catch {
193
+ // Network blip — keep polling
194
+ }
195
+ }
196
+ if (status !== 'active') {
197
+ tui.fatal(`Session did not become active (status: ${status})`, ErrorCode.NETWORK_ERROR);
198
+ return;
199
+ }
200
+ // Resolve extension and WS URL, then launch TUI
201
+ const hubHttpUrl = await client.getUrl();
202
+ const hubWsUrl = toCoderHubWsUrl(hubHttpUrl);
203
+ const extensionPath = await resolveExtensionPath(opts?.extension);
204
+ if (!extensionPath) {
205
+ tui.fatal('Could not find the Agentuity Coder extension.\n\nTry:\n - Reinstall or update @agentuity/cli\n - Install it locally: npm install @agentuity/coder-tui\n - Set AGENTUITY_CODER_EXTENSION environment variable\n - Pass --extension flag', ErrorCode.CONFIG_INVALID);
206
+ return;
207
+ }
208
+ const remoteTuiPath = await resolveExtensionRuntimeModulePath(extensionPath);
209
+ if (!remoteTuiPath) {
210
+ tui.fatal(`Coder extension at ${extensionPath} is missing the remote TUI entrypoint`, ErrorCode.CONFIG_INVALID);
211
+ return;
212
+ }
213
+ if (!options.json) {
214
+ tui.newline();
215
+ tui.output(` Hub: ${tui.bold(hubWsUrl)}`);
216
+ tui.output(` Extension: ${tui.bold(extensionPath)}`);
217
+ tui.output(` Session: ${tui.bold(created.sessionId)}`);
218
+ tui.newline();
219
+ }
220
+ try {
221
+ const { runRemoteTui } = await import(__rewriteRelativeImportExtension(remoteTuiPath));
222
+ await runRemoteTui({
223
+ hubWsUrl,
224
+ sessionId: created.sessionId,
225
+ apiKey: ctx.auth.apiKey,
226
+ orgId: ctx.orgId,
227
+ });
228
+ }
229
+ catch (err) {
230
+ const msg = err instanceof Error ? err.message : String(err);
231
+ tui.fatal(`Remote TUI failed: ${msg}`, ErrorCode.NETWORK_ERROR);
232
+ }
233
+ }
234
+ }
235
+ catch (err) {
236
+ if (err instanceof ValidationOutputError) {
237
+ ctx.logger.trace('Validation response URL: %s', err.url ?? 'unknown');
238
+ ctx.logger.trace('Validation issues: %s', JSON.stringify(err.issues, null, 2));
239
+ }
240
+ const msg = err instanceof Error ? err.message : String(err);
241
+ tui.fatal(`Failed to create Coder session: ${msg}`, ErrorCode.NETWORK_ERROR);
242
+ }
243
+ },
244
+ });
245
+ //# sourceMappingURL=create.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../../src/cmd/coder/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const deleteSubcommand: import("../..").SubcommandDefinition;
2
+ //# sourceMappingURL=delete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/delete.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB,sCA0D3B,CAAC"}
@@ -0,0 +1,64 @@
1
+ import { z } from 'zod';
2
+ import { CoderClient } from '@agentuity/core/coder';
3
+ import { ValidationOutputError } from '@agentuity/core';
4
+ import { createSubcommand } from '../../types';
5
+ import * as tui from '../../tui';
6
+ import { getCommand } from '../../command-prefix';
7
+ import { ErrorCode } from '../../errors';
8
+ export const deleteSubcommand = createSubcommand({
9
+ name: 'delete',
10
+ aliases: ['rm', 'del', 'remove'],
11
+ description: 'Delete a Coder Hub session',
12
+ tags: ['destructive', 'deletes-resource', 'requires-auth'],
13
+ requires: { auth: true, org: true },
14
+ examples: [
15
+ {
16
+ command: getCommand('coder delete codesess_abc123'),
17
+ description: 'Delete a session',
18
+ },
19
+ {
20
+ command: getCommand('coder delete codesess_abc123 --json'),
21
+ description: 'Delete a session and return JSON output',
22
+ },
23
+ ],
24
+ schema: {
25
+ args: z.object({
26
+ sessionId: z.string().describe('Session ID to delete'),
27
+ }),
28
+ options: z.object({
29
+ url: z.string().optional().describe('Coder API URL override'),
30
+ }),
31
+ },
32
+ async handler(ctx) {
33
+ const { args, opts, options } = ctx;
34
+ const client = new CoderClient({
35
+ apiKey: ctx.auth.apiKey,
36
+ url: opts?.url,
37
+ orgId: ctx.orgId,
38
+ });
39
+ if (!options.json) {
40
+ const confirmed = await tui.confirm(`Delete session ${args.sessionId}?`, false);
41
+ if (!confirmed) {
42
+ tui.info('Cancelled.');
43
+ return { deleted: false, sessionId: args.sessionId };
44
+ }
45
+ }
46
+ try {
47
+ await client.deleteSession(args.sessionId);
48
+ }
49
+ catch (err) {
50
+ if (err instanceof ValidationOutputError) {
51
+ ctx.logger.trace('Validation response URL: %s', err.url ?? 'unknown');
52
+ ctx.logger.trace('Validation issues: %s', JSON.stringify(err.issues, null, 2));
53
+ }
54
+ const msg = err instanceof Error ? err.message : String(err);
55
+ tui.fatal(`Failed to delete session ${args.sessionId}: ${msg}`, ErrorCode.NETWORK_ERROR);
56
+ }
57
+ if (options.json) {
58
+ return { deleted: true, sessionId: args.sessionId };
59
+ }
60
+ tui.success(`Session ${args.sessionId} deleted.`);
61
+ return { deleted: true, sessionId: args.sessionId };
62
+ },
63
+ });
64
+ //# sourceMappingURL=delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/cmd/coder/delete.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const eventsSubcommand: import("../..").SubcommandDefinition;
2
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/events.ts"],"names":[],"mappings":"AAsBA,eAAO,MAAM,gBAAgB,sCAmF3B,CAAC"}
@@ -0,0 +1,99 @@
1
+ import { z } from 'zod';
2
+ import { CoderClient } from '@agentuity/core/coder';
3
+ import { ValidationOutputError } from '@agentuity/core';
4
+ import { createSubcommand } from '../../types';
5
+ import * as tui from '../../tui';
6
+ import { getCommand } from '../../command-prefix';
7
+ import { ErrorCode } from '../../errors';
8
+ function formatRelativeTime(isoDate) {
9
+ const parsed = new Date(isoDate).getTime();
10
+ if (Number.isNaN(parsed))
11
+ return 'unknown';
12
+ const diffMs = Math.max(0, Date.now() - parsed);
13
+ const seconds = Math.floor(diffMs / 1000);
14
+ if (seconds < 60)
15
+ return `${seconds}s ago`;
16
+ const minutes = Math.floor(seconds / 60);
17
+ if (minutes < 60)
18
+ return `${minutes}m ago`;
19
+ const hours = Math.floor(minutes / 60);
20
+ if (hours < 24)
21
+ return `${hours}h ago`;
22
+ const days = Math.floor(hours / 24);
23
+ return `${days}d ago`;
24
+ }
25
+ export const eventsSubcommand = createSubcommand({
26
+ name: 'events',
27
+ aliases: ['event', 'ev'],
28
+ description: 'List event history for a Coder Hub session',
29
+ tags: ['read-only', 'requires-auth'],
30
+ idempotent: true,
31
+ requires: { auth: true, org: true },
32
+ examples: [
33
+ {
34
+ command: getCommand('coder events codesess_abc123'),
35
+ description: 'List recent session events',
36
+ },
37
+ {
38
+ command: getCommand('coder events codesess_abc123 --limit 100 --json'),
39
+ description: 'Get session event history as JSON',
40
+ },
41
+ ],
42
+ schema: {
43
+ args: z.object({
44
+ sessionId: z.string().describe('Session ID to list events for'),
45
+ }),
46
+ options: z.object({
47
+ limit: z
48
+ .number()
49
+ .int()
50
+ .positive()
51
+ .optional()
52
+ .describe('Maximum number of events to return'),
53
+ url: z.string().optional().describe('Coder API URL override'),
54
+ }),
55
+ },
56
+ async handler(ctx) {
57
+ const { args, opts, options } = ctx;
58
+ const client = new CoderClient({
59
+ apiKey: ctx.auth.apiKey,
60
+ url: opts?.url,
61
+ orgId: ctx.orgId,
62
+ });
63
+ try {
64
+ const data = await client.listEventHistory(args.sessionId, {
65
+ limit: opts?.limit ?? 50,
66
+ });
67
+ if (options.json) {
68
+ return data;
69
+ }
70
+ if (data.events.length === 0) {
71
+ tui.info(`No events found for session ${args.sessionId}.`);
72
+ return data;
73
+ }
74
+ tui.table(data.events.map((e) => ({
75
+ Event: e.event,
76
+ Category: e.category ?? '-',
77
+ Agent: e.agent ?? '-',
78
+ 'Task ID': e.taskId ?? '-',
79
+ Occurred: e.occurredAt ? formatRelativeTime(e.occurredAt) : '-',
80
+ })), [
81
+ { name: 'Event', alignment: 'left' },
82
+ { name: 'Category', alignment: 'left' },
83
+ { name: 'Agent', alignment: 'left' },
84
+ { name: 'Task ID', alignment: 'left' },
85
+ { name: 'Occurred', alignment: 'right' },
86
+ ]);
87
+ return data;
88
+ }
89
+ catch (err) {
90
+ if (err instanceof ValidationOutputError) {
91
+ ctx.logger.trace('Validation response URL: %s', err.url ?? 'unknown');
92
+ ctx.logger.trace('Validation issues: %s', JSON.stringify(err.issues, null, 2));
93
+ }
94
+ const msg = err instanceof Error ? err.message : String(err);
95
+ tui.fatal(`Failed to list event history for session ${args.sessionId}: ${msg}`, ErrorCode.NETWORK_ERROR);
96
+ }
97
+ },
98
+ });
99
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/cmd/coder/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type ExtensionPathResolverOptions = {
2
+ cwd?: string;
3
+ env?: NodeJS.ProcessEnv;
4
+ moduleUrl?: string;
5
+ };
6
+ export declare function resolveExtensionPath(flagPath?: string, options?: ExtensionPathResolverOptions): Promise<string | null>;
7
+ export declare function resolveExtensionRuntimeModulePath(extensionPath: string): Promise<string | null>;
8
+ //# sourceMappingURL=extension-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-path.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/extension-path.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,4BAA4B,GAAG;IAC1C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAsB,oBAAoB,CACzC,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,GAAE,4BAAiC,GACxC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA8CxB;AAED,wBAAsB,iCAAiC,CACtD,aAAa,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB"}
@@ -0,0 +1,59 @@
1
+ import { dirname, resolve } from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
3
+ export async function resolveExtensionPath(flagPath, options = {}) {
4
+ const cwd = options.cwd ?? process.cwd();
5
+ const env = options.env ?? process.env;
6
+ const moduleUrl = options.moduleUrl ?? import.meta.url;
7
+ // 1. Explicit flag
8
+ if (flagPath) {
9
+ return resolve(cwd, flagPath);
10
+ }
11
+ // 2. Env var
12
+ const envPath = env.AGENTUITY_CODER_EXTENSION;
13
+ if (envPath) {
14
+ return resolve(cwd, envPath);
15
+ }
16
+ // 3. Bundled with CLI package (require.resolve)
17
+ try {
18
+ const cliDir = fileURLToPath(new URL('.', moduleUrl));
19
+ const entryPath = require.resolve('@agentuity/coder-tui', { paths: [cliDir] });
20
+ let dir = dirname(entryPath);
21
+ while (dir !== dirname(dir)) {
22
+ if (await Bun.file(resolve(dir, 'package.json')).exists())
23
+ return dir;
24
+ dir = dirname(dir);
25
+ }
26
+ }
27
+ catch {
28
+ // require.resolve may fail in workspace/worktree setups — fall through to direct lookup
29
+ }
30
+ // 4. Direct node_modules lookup (workspace symlink fallback)
31
+ try {
32
+ const cliDir = fileURLToPath(new URL('.', moduleUrl));
33
+ // Walk up from this file to the CLI package root, then check node_modules
34
+ let dir = cliDir;
35
+ for (let i = 0; i < 10; i++) {
36
+ const candidate = resolve(dir, 'node_modules', '@agentuity', 'coder-tui');
37
+ if (await Bun.file(resolve(candidate, 'package.json')).exists())
38
+ return candidate;
39
+ const parent = dirname(dir);
40
+ if (parent === dir)
41
+ break;
42
+ dir = parent;
43
+ }
44
+ }
45
+ catch {
46
+ // ignore
47
+ }
48
+ return null;
49
+ }
50
+ export async function resolveExtensionRuntimeModulePath(extensionPath) {
51
+ const sourceModulePath = resolve(extensionPath, 'src', 'remote-tui.ts');
52
+ if (await Bun.file(sourceModulePath).exists())
53
+ return sourceModulePath;
54
+ const distModulePath = resolve(extensionPath, 'dist', 'remote-tui.js');
55
+ if (await Bun.file(distModulePath).exists())
56
+ return distModulePath;
57
+ return null;
58
+ }
59
+ //# sourceMappingURL=extension-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extension-path.js","sourceRoot":"","sources":["../../../src/cmd/coder/extension-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAQzC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACzC,QAAiB,EACjB,UAAwC,EAAE;IAE1C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;IAEvD,mBAAmB;IACnB,IAAI,QAAQ,EAAE,CAAC;QACd,OAAO,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,aAAa;IACb,MAAM,OAAO,GAAG,GAAG,CAAC,yBAAyB,CAAC;IAC9C,IAAI,OAAO,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,gDAAgD;IAChD,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC/E,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7B,OAAO,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE;gBAAE,OAAO,GAAG,CAAC;YACtE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QACpB,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,wFAAwF;IACzF,CAAC;IAED,6DAA6D;IAC7D,IAAI,CAAC;QACJ,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QACtD,0EAA0E;QAC1E,IAAI,GAAG,GAAG,MAAM,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;YAC1E,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE;gBAAE,OAAO,SAAS,CAAC;YAClF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;YAC5B,IAAI,MAAM,KAAK,GAAG;gBAAE,MAAM;YAC1B,GAAG,GAAG,MAAM,CAAC;QACd,CAAC;IACF,CAAC;IAAC,MAAM,CAAC;QACR,SAAS;IACV,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACtD,aAAqB;IAErB,MAAM,gBAAgB,GAAG,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IACxE,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,EAAE;QAAE,OAAO,gBAAgB,CAAC;IAEvE,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC;IACvE,IAAI,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE;QAAE,OAAO,cAAc,CAAC;IAEnE,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const getSubcommand: import("../..").SubcommandDefinition;
2
+ //# sourceMappingURL=get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get.d.ts","sourceRoot":"","sources":["../../../src/cmd/coder/get.ts"],"names":[],"mappings":"AAsCA,eAAO,MAAM,aAAa,sCAgKxB,CAAC"}