@struere/cli 0.1.0

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 (65) hide show
  1. package/dist/commands/build.d.ts +3 -0
  2. package/dist/commands/build.d.ts.map +1 -0
  3. package/dist/commands/build.js +61 -0
  4. package/dist/commands/build.js.map +1 -0
  5. package/dist/commands/deploy.d.ts +3 -0
  6. package/dist/commands/deploy.d.ts.map +1 -0
  7. package/dist/commands/deploy.js +147 -0
  8. package/dist/commands/deploy.js.map +1 -0
  9. package/dist/commands/dev.d.ts +3 -0
  10. package/dist/commands/dev.d.ts.map +1 -0
  11. package/dist/commands/dev.js +500 -0
  12. package/dist/commands/dev.js.map +1 -0
  13. package/dist/commands/login.d.ts +3 -0
  14. package/dist/commands/login.d.ts.map +1 -0
  15. package/dist/commands/login.js +251 -0
  16. package/dist/commands/login.js.map +1 -0
  17. package/dist/commands/logout.d.ts +3 -0
  18. package/dist/commands/logout.d.ts.map +1 -0
  19. package/dist/commands/logout.js +19 -0
  20. package/dist/commands/logout.js.map +1 -0
  21. package/dist/commands/logs.d.ts +3 -0
  22. package/dist/commands/logs.d.ts.map +1 -0
  23. package/dist/commands/logs.js +103 -0
  24. package/dist/commands/logs.js.map +1 -0
  25. package/dist/commands/state.d.ts +3 -0
  26. package/dist/commands/state.d.ts.map +1 -0
  27. package/dist/commands/state.js +71 -0
  28. package/dist/commands/state.js.map +1 -0
  29. package/dist/commands/test.d.ts +3 -0
  30. package/dist/commands/test.d.ts.map +1 -0
  31. package/dist/commands/test.js +188 -0
  32. package/dist/commands/test.js.map +1 -0
  33. package/dist/commands/validate.d.ts +3 -0
  34. package/dist/commands/validate.d.ts.map +1 -0
  35. package/dist/commands/validate.js +71 -0
  36. package/dist/commands/validate.js.map +1 -0
  37. package/dist/commands/whoami.d.ts +3 -0
  38. package/dist/commands/whoami.d.ts.map +1 -0
  39. package/dist/commands/whoami.js +69 -0
  40. package/dist/commands/whoami.js.map +1 -0
  41. package/dist/index.d.ts +3 -0
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +1703 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/utils/agent.d.ts +3 -0
  46. package/dist/utils/agent.d.ts.map +1 -0
  47. package/dist/utils/agent.js +25 -0
  48. package/dist/utils/agent.js.map +1 -0
  49. package/dist/utils/api.d.ts +147 -0
  50. package/dist/utils/api.d.ts.map +1 -0
  51. package/dist/utils/api.js +102 -0
  52. package/dist/utils/api.js.map +1 -0
  53. package/dist/utils/config.d.ts +3 -0
  54. package/dist/utils/config.d.ts.map +1 -0
  55. package/dist/utils/config.js +43 -0
  56. package/dist/utils/config.js.map +1 -0
  57. package/dist/utils/credentials.d.ts +23 -0
  58. package/dist/utils/credentials.d.ts.map +1 -0
  59. package/dist/utils/credentials.js +51 -0
  60. package/dist/utils/credentials.js.map +1 -0
  61. package/dist/utils/validate.d.ts +3 -0
  62. package/dist/utils/validate.d.ts.map +1 -0
  63. package/dist/utils/validate.js +79 -0
  64. package/dist/utils/validate.js.map +1 -0
  65. package/package.json +44 -0
@@ -0,0 +1,500 @@
1
+ import { Command } from 'commander';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import chokidar from 'chokidar';
5
+ import { join } from 'path';
6
+ import { loadConfig } from '../utils/config';
7
+ import { loadAgent } from '../utils/agent';
8
+ import { AgentExecutor } from '@struere/runtime';
9
+ import { isLoggedIn, loadCredentials, getApiKey } from '../utils/credentials';
10
+ import { getSyncUrl } from '../utils/api';
11
+ export const devCommand = new Command('dev')
12
+ .description('Start development server with hot reload')
13
+ .option('-p, --port <port>', 'Port to run on', '3000')
14
+ .option('-c, --channel <channel>', 'Channel to open (web, api)', 'web')
15
+ .option('--no-open', 'Do not open browser')
16
+ .option('--local', 'Run locally without cloud sync')
17
+ .option('--cloud', 'Force cloud-connected mode')
18
+ .action(async (options) => {
19
+ const spinner = ora();
20
+ const cwd = process.cwd();
21
+ console.log();
22
+ console.log(chalk.bold('Struere Dev Server'));
23
+ console.log();
24
+ spinner.start('Loading configuration');
25
+ const config = await loadConfig(cwd);
26
+ const port = parseInt(options.port) || config.port || 3000;
27
+ spinner.succeed('Configuration loaded');
28
+ spinner.start('Loading agent');
29
+ let agent = await loadAgent(cwd);
30
+ spinner.succeed(`Agent "${agent.name}" loaded`);
31
+ const useCloud = options.cloud || (!options.local && isLoggedIn());
32
+ if (useCloud) {
33
+ await runCloudDev(agent, cwd, port, options, spinner);
34
+ }
35
+ else {
36
+ await runLocalDev(agent, cwd, port, options, spinner);
37
+ }
38
+ });
39
+ async function runLocalDev(agent, cwd, port, options, spinner) {
40
+ let executor = new AgentExecutor(agent);
41
+ const server = Bun.serve({
42
+ port,
43
+ async fetch(req) {
44
+ const url = new URL(req.url);
45
+ if (url.pathname === '/health') {
46
+ return Response.json({ status: 'ok', agent: agent.name, mode: 'local' });
47
+ }
48
+ if (url.pathname === '/api/chat' && req.method === 'POST') {
49
+ const body = await req.json();
50
+ const conversationId = body.conversationId || crypto.randomUUID();
51
+ if (body.stream) {
52
+ const stream = new ReadableStream({
53
+ async start(controller) {
54
+ const encoder = new TextEncoder();
55
+ const sendEvent = (event, data) => {
56
+ controller.enqueue(encoder.encode(`event: ${event}\ndata: ${JSON.stringify(data)}\n\n`));
57
+ };
58
+ sendEvent('start', { conversationId });
59
+ for await (const chunk of executor.stream({ conversationId, message: body.message })) {
60
+ sendEvent(chunk.type, chunk);
61
+ }
62
+ controller.close();
63
+ }
64
+ });
65
+ return new Response(stream, {
66
+ headers: {
67
+ 'Content-Type': 'text/event-stream',
68
+ 'Cache-Control': 'no-cache',
69
+ 'Connection': 'keep-alive'
70
+ }
71
+ });
72
+ }
73
+ const response = await executor.execute({ conversationId, message: body.message });
74
+ return Response.json({
75
+ response: response.message,
76
+ conversationId: response.conversationId,
77
+ toolCalls: response.toolCalls,
78
+ usage: response.usage
79
+ });
80
+ }
81
+ if (url.pathname === '/' && options.channel === 'web') {
82
+ return new Response(getDevHtml(agent.name, 'local'), {
83
+ headers: { 'Content-Type': 'text/html' },
84
+ });
85
+ }
86
+ return new Response('Not Found', { status: 404 });
87
+ },
88
+ });
89
+ console.log();
90
+ console.log(chalk.gray('Mode:'), chalk.yellow('Local'));
91
+ console.log(chalk.green('Server running at'), chalk.cyan(`http://localhost:${port}`));
92
+ console.log();
93
+ if (options.channel === 'web' && options.open) {
94
+ const openUrl = `http://localhost:${port}`;
95
+ if (process.platform === 'darwin') {
96
+ Bun.spawn(['open', openUrl]);
97
+ }
98
+ else if (process.platform === 'linux') {
99
+ Bun.spawn(['xdg-open', openUrl]);
100
+ }
101
+ }
102
+ spinner.start('Watching for changes');
103
+ const watcher = chokidar.watch([join(cwd, 'src'), join(cwd, 'af.config.ts')], {
104
+ ignoreInitial: true,
105
+ ignored: /node_modules/,
106
+ });
107
+ watcher.on('change', async (path) => {
108
+ spinner.text = `Reloading (${path.replace(cwd, '.')})`;
109
+ try {
110
+ agent = await loadAgent(cwd);
111
+ executor = new AgentExecutor(agent);
112
+ spinner.succeed(`Reloaded "${agent.name}"`);
113
+ spinner.start('Watching for changes');
114
+ }
115
+ catch (error) {
116
+ spinner.fail(`Reload failed: ${error}`);
117
+ spinner.start('Watching for changes');
118
+ }
119
+ });
120
+ process.on('SIGINT', () => {
121
+ console.log();
122
+ spinner.stop();
123
+ watcher.close();
124
+ server.stop();
125
+ console.log(chalk.gray('Server stopped'));
126
+ process.exit(0);
127
+ });
128
+ }
129
+ async function runCloudDev(agent, cwd, port, options, spinner) {
130
+ const credentials = loadCredentials();
131
+ const apiKey = getApiKey();
132
+ if (!credentials && !apiKey) {
133
+ spinner.fail('Not logged in');
134
+ console.log();
135
+ console.log(chalk.gray('Run'), chalk.cyan('af login'), chalk.gray('to connect to Struere Cloud'));
136
+ console.log(chalk.gray('Or use'), chalk.cyan('af dev --local'), chalk.gray('for local development'));
137
+ console.log();
138
+ process.exit(1);
139
+ }
140
+ spinner.start('Connecting to Struere Cloud');
141
+ const syncUrl = getSyncUrl();
142
+ const ws = new WebSocket(`${syncUrl}/v1/dev/sync`);
143
+ let cloudUrl = null;
144
+ let sessionId = null;
145
+ let isConnected = false;
146
+ ws.onopen = () => {
147
+ ws.send(JSON.stringify({
148
+ type: 'auth',
149
+ apiKey: apiKey || credentials?.token
150
+ }));
151
+ };
152
+ ws.onmessage = async (event) => {
153
+ const data = JSON.parse(event.data);
154
+ switch (data.type) {
155
+ case 'authenticated':
156
+ spinner.text = 'Syncing agent';
157
+ const bundle = await bundleAgent(cwd);
158
+ const configHash = hashString(bundle);
159
+ ws.send(JSON.stringify({
160
+ type: 'sync',
161
+ agentSlug: agent.name.toLowerCase().replace(/[^a-z0-9]+/g, '-'),
162
+ bundle,
163
+ configHash
164
+ }));
165
+ break;
166
+ case 'synced':
167
+ isConnected = true;
168
+ cloudUrl = data.url || null;
169
+ sessionId = data.agentId || null;
170
+ spinner.succeed('Connected to Struere Cloud');
171
+ console.log();
172
+ console.log(chalk.gray('Mode:'), chalk.green('Cloud'));
173
+ console.log(chalk.green('Agent running at'), chalk.cyan(cloudUrl));
174
+ console.log(chalk.green('Local server at'), chalk.cyan(`http://localhost:${port}`));
175
+ console.log();
176
+ spinner.start('Watching for changes');
177
+ break;
178
+ case 'log':
179
+ const logColor = data.level === 'error' ? chalk.red
180
+ : data.level === 'warn' ? chalk.yellow
181
+ : data.level === 'debug' ? chalk.gray
182
+ : chalk.blue;
183
+ spinner.stop();
184
+ console.log(logColor(`[${data.level}]`), data.message);
185
+ spinner.start('Watching for changes');
186
+ break;
187
+ case 'error':
188
+ spinner.fail(`Cloud error: ${data.message}`);
189
+ if (data.code === 'INVALID_API_KEY' || data.code === 'NOT_AUTHENTICATED') {
190
+ console.log();
191
+ console.log(chalk.gray('Run'), chalk.cyan('af login'), chalk.gray('to authenticate'));
192
+ }
193
+ break;
194
+ }
195
+ };
196
+ ws.onerror = (error) => {
197
+ spinner.fail('WebSocket error');
198
+ console.log(chalk.red('Connection error. Falling back to local mode.'));
199
+ };
200
+ ws.onclose = () => {
201
+ if (isConnected) {
202
+ spinner.stop();
203
+ console.log(chalk.yellow('Disconnected from cloud'));
204
+ }
205
+ };
206
+ const server = Bun.serve({
207
+ port,
208
+ async fetch(req) {
209
+ const url = new URL(req.url);
210
+ if (url.pathname === '/health') {
211
+ return Response.json({
212
+ status: 'ok',
213
+ agent: agent.name,
214
+ mode: 'cloud',
215
+ cloudUrl
216
+ });
217
+ }
218
+ if (url.pathname === '/api/chat' && req.method === 'POST') {
219
+ if (!cloudUrl || !sessionId) {
220
+ return Response.json({ error: 'Not connected to cloud' }, { status: 503 });
221
+ }
222
+ const body = await req.json();
223
+ const gatewayUrl = cloudUrl.replace('https://', 'https://gateway.')
224
+ .replace(/-dev\.struere\.dev.*/, '.struere.dev');
225
+ const response = await fetch(`${process.env.STRUERE_GATEWAY_URL || 'https://gateway.struere.dev'}/v1/dev/${sessionId}/chat`, {
226
+ method: 'POST',
227
+ headers: {
228
+ 'Content-Type': 'application/json',
229
+ 'Authorization': `Bearer ${apiKey || credentials?.token}`
230
+ },
231
+ body: JSON.stringify(body)
232
+ });
233
+ if (body.stream) {
234
+ return new Response(response.body, {
235
+ headers: {
236
+ 'Content-Type': 'text/event-stream',
237
+ 'Cache-Control': 'no-cache',
238
+ 'Connection': 'keep-alive'
239
+ }
240
+ });
241
+ }
242
+ const data = await response.json();
243
+ return Response.json(data);
244
+ }
245
+ if (url.pathname === '/' && options.channel === 'web') {
246
+ return new Response(getDevHtml(agent.name, 'cloud', cloudUrl), {
247
+ headers: { 'Content-Type': 'text/html' },
248
+ });
249
+ }
250
+ return new Response('Not Found', { status: 404 });
251
+ }
252
+ });
253
+ if (options.channel === 'web' && options.open) {
254
+ const openUrl = `http://localhost:${port}`;
255
+ if (process.platform === 'darwin') {
256
+ Bun.spawn(['open', openUrl]);
257
+ }
258
+ else if (process.platform === 'linux') {
259
+ Bun.spawn(['xdg-open', openUrl]);
260
+ }
261
+ }
262
+ const watcher = chokidar.watch([join(cwd, 'src'), join(cwd, 'af.config.ts')], {
263
+ ignoreInitial: true,
264
+ ignored: /node_modules/,
265
+ });
266
+ watcher.on('change', async (path) => {
267
+ spinner.text = `Syncing (${path.replace(cwd, '.')})`;
268
+ try {
269
+ agent = await loadAgent(cwd);
270
+ const bundle = await bundleAgent(cwd);
271
+ const configHash = hashString(bundle);
272
+ if (ws.readyState === WebSocket.OPEN) {
273
+ ws.send(JSON.stringify({
274
+ type: 'sync',
275
+ agentSlug: agent.name.toLowerCase().replace(/[^a-z0-9]+/g, '-'),
276
+ bundle,
277
+ configHash
278
+ }));
279
+ }
280
+ }
281
+ catch (error) {
282
+ spinner.fail(`Sync failed: ${error}`);
283
+ spinner.start('Watching for changes');
284
+ }
285
+ });
286
+ process.on('SIGINT', () => {
287
+ console.log();
288
+ spinner.stop();
289
+ if (ws.readyState === WebSocket.OPEN) {
290
+ ws.send(JSON.stringify({ type: 'unsync' }));
291
+ ws.close();
292
+ }
293
+ watcher.close();
294
+ server.stop();
295
+ console.log(chalk.gray('Server stopped'));
296
+ process.exit(0);
297
+ });
298
+ }
299
+ async function bundleAgent(cwd) {
300
+ const result = await Bun.build({
301
+ entrypoints: [join(cwd, 'src', 'agent.ts')],
302
+ target: 'browser',
303
+ minify: true
304
+ });
305
+ if (!result.success) {
306
+ throw new Error('Bundle failed: ' + result.logs.join('\n'));
307
+ }
308
+ return await result.outputs[0].text();
309
+ }
310
+ function hashString(str) {
311
+ let hash = 0;
312
+ for (let i = 0; i < str.length; i++) {
313
+ const char = str.charCodeAt(i);
314
+ hash = ((hash << 5) - hash) + char;
315
+ hash = hash & hash;
316
+ }
317
+ return Math.abs(hash).toString(16);
318
+ }
319
+ function getDevHtml(agentName, mode, cloudUrl) {
320
+ const modeLabel = mode === 'cloud'
321
+ ? `<span style="color: #22c55e;">Cloud</span>${cloudUrl ? ` - <a href="${cloudUrl}" target="_blank" style="color: #60a5fa;">${cloudUrl}</a>` : ''}`
322
+ : '<span style="color: #eab308;">Local</span>';
323
+ return `<!DOCTYPE html>
324
+ <html lang="en">
325
+ <head>
326
+ <meta charset="UTF-8">
327
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
328
+ <title>${agentName} - Dev</title>
329
+ <style>
330
+ * { box-sizing: border-box; margin: 0; padding: 0; }
331
+ body { font-family: system-ui, -apple-system, sans-serif; background: #0a0a0a; color: #fafafa; height: 100vh; display: flex; flex-direction: column; }
332
+ header { padding: 1rem; border-bottom: 1px solid #333; display: flex; justify-content: space-between; align-items: center; }
333
+ header h1 { font-size: 1rem; font-weight: 500; }
334
+ header .mode { font-size: 0.875rem; }
335
+ header a { text-decoration: none; }
336
+ #messages { flex: 1; overflow-y: auto; padding: 1rem; display: flex; flex-direction: column; gap: 0.75rem; }
337
+ .message { max-width: 80%; padding: 0.75rem 1rem; border-radius: 0.75rem; line-height: 1.5; white-space: pre-wrap; }
338
+ .message.user { align-self: flex-end; background: #2563eb; }
339
+ .message.assistant { align-self: flex-start; background: #27272a; }
340
+ .message.tool { align-self: flex-start; background: #1e3a5f; font-family: monospace; font-size: 0.875rem; border-left: 3px solid #3b82f6; }
341
+ .message.streaming { opacity: 0.9; }
342
+ form { padding: 1rem; border-top: 1px solid #333; display: flex; gap: 0.5rem; }
343
+ input { flex: 1; padding: 0.75rem 1rem; background: #18181b; border: 1px solid #333; border-radius: 0.5rem; color: #fafafa; font-size: 1rem; outline: none; }
344
+ input:focus { border-color: #2563eb; }
345
+ input:disabled { opacity: 0.5; }
346
+ button { padding: 0.75rem 1.5rem; background: #2563eb; border: none; border-radius: 0.5rem; color: white; font-size: 1rem; cursor: pointer; }
347
+ button:hover { background: #1d4ed8; }
348
+ button:disabled { opacity: 0.5; cursor: not-allowed; }
349
+ .toggle-container { padding: 0.5rem 1rem; display: flex; align-items: center; gap: 0.5rem; border-top: 1px solid #333; }
350
+ .toggle-container label { font-size: 0.875rem; color: #888; }
351
+ .toggle-container input[type="checkbox"] { width: 1rem; height: 1rem; }
352
+ </style>
353
+ </head>
354
+ <body>
355
+ <header>
356
+ <h1>${agentName}</h1>
357
+ <span class="mode">${modeLabel}</span>
358
+ </header>
359
+ <div id="messages"></div>
360
+ <div class="toggle-container">
361
+ <input type="checkbox" id="stream-toggle" checked />
362
+ <label for="stream-toggle">Enable streaming</label>
363
+ </div>
364
+ <form id="chat-form">
365
+ <input type="text" id="input" placeholder="Type a message..." autocomplete="off" />
366
+ <button type="submit">Send</button>
367
+ </form>
368
+ <script>
369
+ const messages = document.getElementById('messages');
370
+ const form = document.getElementById('chat-form');
371
+ const input = document.getElementById('input');
372
+ const button = form.querySelector('button');
373
+ const streamToggle = document.getElementById('stream-toggle');
374
+ let conversationId = null;
375
+ let isProcessing = false;
376
+
377
+ function addMessage(role, content, isStreaming = false) {
378
+ const div = document.createElement('div');
379
+ div.className = 'message ' + role + (isStreaming ? ' streaming' : '');
380
+ div.textContent = content;
381
+ messages.appendChild(div);
382
+ messages.scrollTop = messages.scrollHeight;
383
+ return div;
384
+ }
385
+
386
+ function setProcessing(processing) {
387
+ isProcessing = processing;
388
+ input.disabled = processing;
389
+ button.disabled = processing;
390
+ }
391
+
392
+ async function sendWithStreaming(message) {
393
+ const assistantDiv = addMessage('assistant', '', true);
394
+
395
+ const response = await fetch('/api/chat', {
396
+ method: 'POST',
397
+ headers: { 'Content-Type': 'application/json' },
398
+ body: JSON.stringify({ message, conversationId, stream: true }),
399
+ });
400
+
401
+ const reader = response.body.getReader();
402
+ const decoder = new TextDecoder();
403
+ let buffer = '';
404
+ let fullText = '';
405
+
406
+ while (true) {
407
+ const { done, value } = await reader.read();
408
+ if (done) break;
409
+
410
+ buffer += decoder.decode(value, { stream: true });
411
+ const lines = buffer.split('\\n');
412
+ buffer = lines.pop() || '';
413
+
414
+ for (const line of lines) {
415
+ if (line.startsWith('data: ')) {
416
+ try {
417
+ const data = JSON.parse(line.slice(6));
418
+
419
+ if (data.conversationId) {
420
+ conversationId = data.conversationId;
421
+ }
422
+
423
+ if (data.type === 'text-delta' && (data.textDelta || data.content)) {
424
+ fullText += data.textDelta || data.content;
425
+ assistantDiv.textContent = fullText;
426
+ messages.scrollTop = messages.scrollHeight;
427
+ } else if (data.type === 'tool-call-start') {
428
+ addMessage('tool', '🔧 Calling tool: ' + (data.toolName || data.toolCall?.name));
429
+ } else if (data.type === 'tool-result') {
430
+ const resultText = typeof data.toolResult === 'string'
431
+ ? data.toolResult
432
+ : JSON.stringify(data.toolResult || data.toolCall?.result, null, 2);
433
+ addMessage('tool', '✓ Result: ' + resultText);
434
+ } else if (data.type === 'finish') {
435
+ assistantDiv.classList.remove('streaming');
436
+ } else if (data.type === 'error') {
437
+ assistantDiv.textContent = 'Error: ' + (data.error || data.message);
438
+ assistantDiv.classList.remove('streaming');
439
+ }
440
+ } catch (e) {}
441
+ }
442
+ }
443
+ }
444
+
445
+ if (!fullText) {
446
+ assistantDiv.remove();
447
+ }
448
+ }
449
+
450
+ async function sendWithoutStreaming(message) {
451
+ const res = await fetch('/api/chat', {
452
+ method: 'POST',
453
+ headers: { 'Content-Type': 'application/json' },
454
+ body: JSON.stringify({ message, conversationId }),
455
+ });
456
+ const data = await res.json();
457
+ conversationId = data.conversationId;
458
+
459
+ if (data.toolCalls && data.toolCalls.length > 0) {
460
+ for (const tc of data.toolCalls) {
461
+ const resultText = typeof tc.result === 'string'
462
+ ? tc.result
463
+ : JSON.stringify(tc.result, null, 2);
464
+ addMessage('tool', '🔧 ' + tc.name + ': ' + resultText);
465
+ }
466
+ }
467
+
468
+ addMessage('assistant', data.response || data.content);
469
+ }
470
+
471
+ form.addEventListener('submit', async (e) => {
472
+ e.preventDefault();
473
+ if (isProcessing) return;
474
+
475
+ const message = input.value.trim();
476
+ if (!message) return;
477
+
478
+ addMessage('user', message);
479
+ input.value = '';
480
+ setProcessing(true);
481
+
482
+ try {
483
+ if (streamToggle.checked) {
484
+ await sendWithStreaming(message);
485
+ } else {
486
+ await sendWithoutStreaming(message);
487
+ }
488
+ } catch (err) {
489
+ addMessage('assistant', 'Error: ' + err.message);
490
+ } finally {
491
+ setProcessing(false);
492
+ }
493
+ });
494
+
495
+ input.focus();
496
+ </script>
497
+ </body>
498
+ </html>`;
499
+ }
500
+ //# sourceMappingURL=dev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const loginCommand: Command;
3
+ //# sourceMappingURL=login.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AASnC,eAAO,MAAM,YAAY,SAuBrB,CAAA"}