@sylix/coworker 1.2.0 → 1.2.2

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.
@@ -1,7 +1,3 @@
1
1
  #!/usr/bin/env node
2
- /**
3
- * Phase 4: CLI Flags & Headless IDE Modes.
4
- * The absolute entry point uniting all 16 features.
5
- */
6
2
  export declare function bootstrapCoWorker(): Promise<void>;
7
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAOA;;;GAGG;AACH,wBAAsB,iBAAiB,kBAqGtC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAsMA,wBAAsB,iBAAiB,kBA+HtC"}
package/dist/cli/index.js CHANGED
@@ -35,119 +35,128 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  })();
36
36
  Object.defineProperty(exports, "__esModule", { value: true });
37
37
  exports.bootstrapCoWorker = bootstrapCoWorker;
38
- const commander_1 = require("commander");
39
38
  const CoWorkerAgent_1 = require("../core/CoWorkerAgent");
39
+ const AuthManager_1 = require("../config/AuthManager");
40
40
  const child_process_1 = require("child_process");
41
41
  const http = __importStar(require("http"));
42
42
  const ws_1 = require("ws");
43
+ const readline = __importStar(require("readline"));
44
+ const output_1 = require("../utils/output");
43
45
  /**
44
- * Phase 4: CLI Flags & Headless IDE Modes.
45
- * The absolute entry point uniting all 16 features.
46
+ * CoWorker CLI Interactive Agentic Coding Assistant.
47
+ * Default behavior: launches an interactive chat REPL (like Claude Code).
46
48
  */
47
- async function bootstrapCoWorker() {
48
- // Dynamic import for optional InkUI
49
- let renderCoWorkerUI;
50
- try {
51
- const inkModule = await Promise.resolve().then(() => __importStar(require('../ui/InkUI')));
52
- renderCoWorkerUI = inkModule.renderCoWorkerUI;
53
- }
54
- catch (e) {
55
- // InkUI not available - will use text mode
56
- }
57
- const program = new commander_1.Command();
58
- program.allowUnknownOption();
59
- program.passThroughOptions();
60
- program
61
- .name('coworker')
62
- .description('Autonomous Agentic Parity to Claude Code')
63
- .version('1.0.0')
64
- .option('-p, --print', 'One-shot mode, process and exit')
65
- .option('-c, --continue', 'Resume most recent session')
66
- .option('-r, --resume <id>', 'Resume specific session UUID')
67
- .option('-w, --worktree', 'Run in an isolated git worktree branch')
68
- .option('--output-format <format>', 'text | json', 'text')
69
- .option('--model <name>', 'Override default model', 'helix-1.2')
70
- .option('--dangerously-skip-permissions', 'Bypass all security policies')
71
- .option('--remote-control <port>', 'Start REST/WebSocket server for IDE access');
72
- program
73
- .command('update')
74
- .description('Auto-update the CoWorker CLI')
75
- .action(() => {
76
- console.log('Downloading latest release...');
77
- (0, child_process_1.spawnSync)('npm', ['install', '-g', 'coworker'], { stdio: 'inherit' });
78
- process.exit(0);
49
+ const VERSION = '1.2.2';
50
+ // ============================================================================
51
+ // INTERACTIVE CHAT REPL
52
+ // ============================================================================
53
+ async function runInteractiveChat(agent, opts) {
54
+ const rl = readline.createInterface({
55
+ input: process.stdin,
56
+ output: process.stdout,
57
+ terminal: true
79
58
  });
80
- program
81
- .command('auth <action>')
82
- .description('Manage authentication (login/logout/status)')
83
- .action((action) => {
84
- console.log(`Authentication ${action} is active.`);
59
+ // Graceful exit
60
+ process.on('SIGINT', () => {
61
+ (0, output_1.printExit)();
62
+ rl.close();
85
63
  process.exit(0);
86
64
  });
87
- program.parse(process.argv);
88
- const options = program.opts();
89
- console.error('DEBUG: args =', program.args, 'opts =', options);
90
- if (options.worktree) {
91
- console.log(`[Isolating Agent...] Creating Git Worktree: coworker-task`);
65
+ // Animated startup banner
66
+ if (!opts.skipBanner) {
67
+ const token = await AuthManager_1.AuthManager.getToken();
68
+ const authData = token ? await AuthManager_1.AuthManager.loadAuthPublic() : null;
69
+ await (0, output_1.showBanner)(VERSION, authData?.user?.email, opts.model);
70
+ }
71
+ // Session info
72
+ console.log(output_1.theme.dim(` cwd: ${process.cwd()}`));
73
+ console.log(output_1.theme.dim(` session: ${agent.sessions.currentSessionId.substring(0, 8)}...`));
74
+ console.log(output_1.theme.dim(` tips: /help for commands, Ctrl+C to exit`));
75
+ console.log('');
76
+ const askPrompt = () => {
77
+ return new Promise((resolve) => {
78
+ rl.question(` ${output_1.theme.white('You')} ${output_1.theme.dim('›')} `, (answer) => {
79
+ resolve(answer.trim());
80
+ });
81
+ });
82
+ };
83
+ // Main REPL loop
84
+ while (true) {
85
+ const input = await askPrompt();
86
+ if (!input)
87
+ continue;
88
+ // ── Slash commands ──
89
+ if (input === '/exit' || input === '/quit') {
90
+ (0, output_1.printExit)();
91
+ break;
92
+ }
93
+ if (input === '/clear') {
94
+ console.clear();
95
+ (0, output_1.showStaticBanner)(VERSION);
96
+ continue;
97
+ }
98
+ if (input === '/status') {
99
+ await AuthManager_1.AuthManager.status();
100
+ continue;
101
+ }
102
+ if (input === '/help') {
103
+ (0, output_1.printHelp)();
104
+ continue;
105
+ }
106
+ if (input === '/compact') {
107
+ const msgCount = agent.sessions.state.messages.length;
108
+ const totalChars = agent.sessions.state.messages.reduce((a, m) => a + (m.content?.length || 0), 0);
109
+ (0, output_1.printCompact)(msgCount, Math.ceil(totalChars / 4), agent.sessions.currentSessionId);
110
+ continue;
111
+ }
112
+ // ── Run the agentic loop ──
113
+ console.log('');
114
+ // Thinking animation
115
+ const thinking = new output_1.ThinkingAnimation();
116
+ thinking.start();
117
+ const startTime = Date.now();
118
+ let responseText = '';
119
+ let headerPrinted = false;
92
120
  try {
93
- (0, child_process_1.spawnSync)('git', ['worktree', 'add', '../coworker-task', '-b', `coworker/temp-${Date.now()}`]);
94
- process.chdir('../coworker-task');
95
- console.log(`[Isolated] Changed directory to protected worktree.`);
121
+ for await (const chunk of agent.chat(input)) {
122
+ // First chunk? Stop thinking, show response box
123
+ if (!headerPrinted) {
124
+ thinking.stop();
125
+ (0, output_1.printResponseHeader)();
126
+ headerPrinted = true;
127
+ }
128
+ // Stream into the box
129
+ process.stdout.write(output_1.theme.ai(` │ ${chunk.replace(/\n/g, '\n │ ')}`));
130
+ responseText += chunk;
131
+ }
96
132
  }
97
- catch {
98
- console.error('Failed to create Git worktree. Ensure repo is clean.');
99
- process.exit(1);
133
+ catch (err) {
134
+ thinking.stop();
135
+ (0, output_1.printError)(`Error: ${err.message}`, undefined, 'Check your network connection or try again');
136
+ continue;
100
137
  }
101
- }
102
- if (options.remoteControl) {
103
- const port = parseInt(options.remoteControl, 10);
104
- startHeadlessServer(port);
105
- return;
106
- }
107
- // Determine resuming logic
108
- let sessionId = undefined;
109
- if (options.resume)
110
- sessionId = options.resume;
111
- else if (options.continue)
112
- sessionId = 'latest';
113
- const agent = new CoWorkerAgent_1.CoWorkerAgent({ model: options.model, role: 'General' });
114
- if (sessionId) {
115
- agent.sessions.currentSessionId = sessionId;
116
- }
117
- // Boot async subsystems (Settings, MCP servers, Skills)
118
- await agent.boot();
119
- // Apply --dangerously-skip-permissions if provided
120
- if (options.dangerouslySkipPermissions) {
121
- console.log('\x1b[31m⚠️ WARNING: All permission checks are DISABLED.\x1b[0m');
122
- agent.permissions = { intercept: async () => true };
123
- }
124
- // One shot processing mode
125
- if (options.print && program.args.length > 0) {
126
- runOneShot(agent, program.args.join(' '), options.outputFormat);
127
- }
128
- else if (renderCoWorkerUI) {
129
- // Launch the React Ink Terminal UI for interactive mode
130
- const prompt = program.args.length > 0 ? program.args.join(' ') : undefined;
131
- renderCoWorkerUI(agent, prompt);
132
- }
133
- else {
134
- // Fallback: use one-shot mode for prompts
135
- const prompt = program.args.length > 0 ? program.args.join(' ') : undefined;
136
- if (prompt) {
137
- runOneShot(agent, prompt, options.outputFormat);
138
+ if (!headerPrinted) {
139
+ thinking.stop();
138
140
  }
139
- else {
140
- console.log('CoWorker ready. Use --print to send a prompt.');
141
+ const elapsed = Date.now() - startTime;
142
+ const tokenEst = Math.ceil(responseText.length / 4);
143
+ if (headerPrinted) {
144
+ console.log(''); // newline after streamed content
145
+ (0, output_1.printResponseFooter)(elapsed, tokenEst);
141
146
  }
147
+ console.log('');
142
148
  }
149
+ rl.close();
150
+ process.exit(0);
143
151
  }
152
+ // ============================================================================
153
+ // ONE-SHOT MODE
154
+ // ============================================================================
144
155
  async function runOneShot(agent, prompt, format) {
145
156
  let outputText = '';
146
- // Stream the generator
147
157
  for await (const chunk of agent.chat(prompt)) {
148
- if (format === 'text') {
158
+ if (format === 'text')
149
159
  process.stdout.write(chunk);
150
- }
151
160
  outputText += chunk;
152
161
  }
153
162
  if (format === 'json') {
@@ -155,12 +164,14 @@ async function runOneShot(agent, prompt, format) {
155
164
  }
156
165
  process.exit(0);
157
166
  }
167
+ // ============================================================================
168
+ // HEADLESS / REMOTE CONTROL SERVER
169
+ // ============================================================================
158
170
  function startHeadlessServer(port) {
159
171
  const server = http.createServer();
160
172
  const wss = new ws_1.WebSocketServer({ server });
161
173
  wss.on('connection', (ws) => {
162
174
  console.log('[Remote-Control] IDE Connected via WebSocket');
163
- // Each IDE window instance gets its own agent session tracking
164
175
  const remoteAgent = new CoWorkerAgent_1.CoWorkerAgent({ model: 'helix-1.2', role: 'General' });
165
176
  ws.on('message', async (data) => {
166
177
  const { prompt, sessionId } = JSON.parse(data.toString());
@@ -173,10 +184,179 @@ function startHeadlessServer(port) {
173
184
  });
174
185
  });
175
186
  server.listen(port, () => {
176
- console.log(`[Remote-Control] Listening for headless connections on port ${port}...`);
187
+ console.log(`[Remote-Control] Listening on port ${port}...`);
177
188
  });
178
189
  }
179
- // Self-execute if this file is directly run
190
+ // ============================================================================
191
+ // CLI MAIN — Manual arg parsing (Commander.js overrides default behavior)
192
+ // ============================================================================
193
+ async function bootstrapCoWorker() {
194
+ const args = process.argv.slice(2);
195
+ const command = args[0];
196
+ // ── Subcommands ──
197
+ if (command === 'login') {
198
+ await AuthManager_1.AuthManager.login();
199
+ return;
200
+ }
201
+ if (command === 'logout') {
202
+ await AuthManager_1.AuthManager.logout();
203
+ return;
204
+ }
205
+ if (command === 'status') {
206
+ await AuthManager_1.AuthManager.status();
207
+ return;
208
+ }
209
+ if (command === 'update') {
210
+ console.log(output_1.theme.dim(' Downloading latest release...'));
211
+ (0, child_process_1.spawnSync)('npm', ['install', '-g', '@sylix/coworker'], { stdio: 'inherit', shell: true });
212
+ (0, output_1.printSuccess)('CoWorker updated');
213
+ return;
214
+ }
215
+ if (command === '-V' || command === '--version') {
216
+ console.log(VERSION);
217
+ return;
218
+ }
219
+ if (command === '-h' || command === '--help' || command === 'help') {
220
+ (0, output_1.showStaticBanner)(VERSION);
221
+ console.log(` ${output_1.theme.white('Usage:')} coworker [prompt] [options]\n`);
222
+ console.log(` ${output_1.theme.brand('Commands:')}`);
223
+ console.log(` ${output_1.theme.code('login')} ${output_1.theme.dim('Authenticate with your Sylix account')}`);
224
+ console.log(` ${output_1.theme.code('logout')} ${output_1.theme.dim('Remove saved credentials')}`);
225
+ console.log(` ${output_1.theme.code('status')} ${output_1.theme.dim('Show auth & account status')}`);
226
+ console.log(` ${output_1.theme.code('update')} ${output_1.theme.dim('Auto-update the CoWorker CLI')}\n`);
227
+ console.log(` ${output_1.theme.brand('Options:')}`);
228
+ console.log(` ${output_1.theme.code('-p, --print')} ${output_1.theme.dim('One-shot mode (process and exit)')}`);
229
+ console.log(` ${output_1.theme.code('-c, --continue')} ${output_1.theme.dim('Resume most recent session')}`);
230
+ console.log(` ${output_1.theme.code('-r, --resume <id>')} ${output_1.theme.dim('Resume specific session UUID')}`);
231
+ console.log(` ${output_1.theme.code('-w, --worktree')} ${output_1.theme.dim('Run in an isolated git worktree')}`);
232
+ console.log(` ${output_1.theme.code('--model <name>')} ${output_1.theme.dim('Override model (default: helix-1.2)')}`);
233
+ console.log(` ${output_1.theme.code('--dangerously-skip-permissions')} ${output_1.theme.dim('Bypass all security policies')}`);
234
+ console.log(` ${output_1.theme.code('--remote-control <port>')} ${output_1.theme.dim('Start WebSocket server for IDE')}`);
235
+ console.log(` ${output_1.theme.code('--no-banner')} ${output_1.theme.dim('Skip the animated startup banner')}`);
236
+ console.log(` ${output_1.theme.code('-V, --version')} ${output_1.theme.dim('Output version number')}`);
237
+ console.log(` ${output_1.theme.code('-h, --help')} ${output_1.theme.dim('Display help')}\n`);
238
+ return;
239
+ }
240
+ // ── Parse flags ──
241
+ let model = 'helix-1.2';
242
+ let outputFormat = 'text';
243
+ let resumeSession;
244
+ let printMode = false;
245
+ let skipPermissions = false;
246
+ let worktree = false;
247
+ let noBanner = false;
248
+ let remotePort;
249
+ const promptParts = [];
250
+ for (let i = 0; i < args.length; i++) {
251
+ const arg = args[i];
252
+ if (arg === '-p' || arg === '--print') {
253
+ printMode = true;
254
+ continue;
255
+ }
256
+ if (arg === '-c' || arg === '--continue') {
257
+ resumeSession = 'latest';
258
+ continue;
259
+ }
260
+ if (arg === '-r' || arg === '--resume') {
261
+ resumeSession = args[++i];
262
+ continue;
263
+ }
264
+ if (arg === '-w' || arg === '--worktree') {
265
+ worktree = true;
266
+ continue;
267
+ }
268
+ if (arg === '--output-format') {
269
+ outputFormat = args[++i] || 'text';
270
+ continue;
271
+ }
272
+ if (arg === '--model') {
273
+ model = args[++i] || 'helix-1.2';
274
+ continue;
275
+ }
276
+ if (arg === '--dangerously-skip-permissions') {
277
+ skipPermissions = true;
278
+ continue;
279
+ }
280
+ if (arg === '--remote-control') {
281
+ remotePort = parseInt(args[++i], 10);
282
+ continue;
283
+ }
284
+ if (arg === '--no-banner') {
285
+ noBanner = true;
286
+ continue;
287
+ }
288
+ promptParts.push(arg);
289
+ }
290
+ // ── Worktree isolation ──
291
+ if (worktree) {
292
+ console.log(output_1.theme.dim(' [Isolating Agent...] Creating Git Worktree'));
293
+ try {
294
+ (0, child_process_1.spawnSync)('git', ['worktree', 'add', '../coworker-task', '-b', `coworker/temp-${Date.now()}`]);
295
+ process.chdir('../coworker-task');
296
+ (0, output_1.printSuccess)('Isolated to git worktree');
297
+ }
298
+ catch {
299
+ (0, output_1.printError)('Failed to create Git worktree', 'Ensure repo is clean and you are in a git directory');
300
+ process.exit(1);
301
+ }
302
+ }
303
+ // ── Remote control mode ──
304
+ if (remotePort) {
305
+ startHeadlessServer(remotePort);
306
+ return;
307
+ }
308
+ // ── Boot agent ──
309
+ const agent = new CoWorkerAgent_1.CoWorkerAgent({ model, role: 'General' });
310
+ if (resumeSession) {
311
+ agent.sessions.currentSessionId = resumeSession;
312
+ }
313
+ await agent.boot();
314
+ if (skipPermissions) {
315
+ console.log(output_1.theme.error(' ⚠️ WARNING: All permission checks are DISABLED.'));
316
+ agent.permissions = { intercept: async () => true };
317
+ }
318
+ // ── Execute ──
319
+ const initialPrompt = promptParts.join(' ').trim();
320
+ if (printMode && initialPrompt) {
321
+ await runOneShot(agent, initialPrompt, outputFormat);
322
+ }
323
+ else if (initialPrompt) {
324
+ // Run prompt inline, then drop into REPL
325
+ if (!noBanner) {
326
+ const token = await AuthManager_1.AuthManager.getToken();
327
+ const authData = token ? await AuthManager_1.AuthManager.loadAuthPublic() : null;
328
+ await (0, output_1.showBanner)(VERSION, authData?.user?.email, model);
329
+ }
330
+ const thinking = new output_1.ThinkingAnimation();
331
+ thinking.start();
332
+ const startTime = Date.now();
333
+ let responseText = '';
334
+ let headerPrinted = false;
335
+ for await (const chunk of agent.chat(initialPrompt)) {
336
+ if (!headerPrinted) {
337
+ thinking.stop();
338
+ (0, output_1.printResponseHeader)();
339
+ headerPrinted = true;
340
+ }
341
+ process.stdout.write(output_1.theme.ai(` │ ${chunk.replace(/\n/g, '\n │ ')}`));
342
+ responseText += chunk;
343
+ }
344
+ if (!headerPrinted)
345
+ thinking.stop();
346
+ const elapsed = Date.now() - startTime;
347
+ if (headerPrinted) {
348
+ console.log('');
349
+ (0, output_1.printResponseFooter)(elapsed, Math.ceil(responseText.length / 4));
350
+ }
351
+ console.log('');
352
+ await runInteractiveChat(agent, { model, skipBanner: true });
353
+ }
354
+ else {
355
+ // DEFAULT: No args → interactive chat REPL
356
+ await runInteractiveChat(agent, { model, skipBanner: noBanner });
357
+ }
358
+ }
359
+ // Self-execute
180
360
  if (require.main === module) {
181
361
  bootstrapCoWorker();
182
362
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export interface AuthData {
2
+ access_token: string;
3
+ refresh_token: string;
4
+ user: {
5
+ id: string;
6
+ email: string;
7
+ };
8
+ expires_at: number;
9
+ }
10
+ /**
11
+ * Manages Device Code OAuth authentication for the CoWorker CLI.
12
+ * Flow: CLI requests device code → user authorizes on website → CLI polls for token.
13
+ */
14
+ export declare class AuthManager {
15
+ /**
16
+ * Device Code login flow — opens browser, polls for authorization.
17
+ */
18
+ static login(): Promise<void>;
19
+ /**
20
+ * Removes saved credentials.
21
+ */
22
+ static logout(): Promise<void>;
23
+ /**
24
+ * Shows current authentication status.
25
+ */
26
+ static status(): Promise<void>;
27
+ /**
28
+ * Returns the stored access token, or null if not logged in.
29
+ */
30
+ static getToken(): Promise<string | null>;
31
+ private static loadAuth;
32
+ /**
33
+ * Public access to auth data for display purposes (e.g. banner).
34
+ */
35
+ static loadAuthPublic(): Promise<AuthData | null>;
36
+ }
37
+ //# sourceMappingURL=AuthManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthManager.d.ts","sourceRoot":"","sources":["../../src/config/AuthManager.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,qBAAa,WAAW;IAEtB;;OAEG;WACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyFnC;;OAEG;WACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IASpC;;OAEG;WACU,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBpC;;OAEG;WACU,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;mBAO1B,QAAQ;IAS7B;;OAEG;WACU,cAAc,IAAI,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;CAGxD"}
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.AuthManager = void 0;
40
+ const fs = __importStar(require("fs/promises"));
41
+ const path = __importStar(require("path"));
42
+ const os = __importStar(require("os"));
43
+ const node_fetch_1 = __importDefault(require("node-fetch"));
44
+ const AUTH_FILE = path.join(os.homedir(), '.coworker', 'auth.json');
45
+ const API_BASE = 'https://api.sylixide.com/v1/auth';
46
+ /**
47
+ * Manages Device Code OAuth authentication for the CoWorker CLI.
48
+ * Flow: CLI requests device code → user authorizes on website → CLI polls for token.
49
+ */
50
+ class AuthManager {
51
+ /**
52
+ * Device Code login flow — opens browser, polls for authorization.
53
+ */
54
+ static async login() {
55
+ const deviceId = `coworker-cli-${os.hostname()}-${Date.now().toString(36)}`;
56
+ console.log('\n\x1b[36m🔐 CoWorker Login\x1b[0m\n');
57
+ console.log('Requesting device code...');
58
+ // Step 1: Request device code
59
+ let codeResponse;
60
+ try {
61
+ const res = await (0, node_fetch_1.default)(`${API_BASE}/device/code`, {
62
+ method: 'POST',
63
+ headers: { 'Content-Type': 'application/json' },
64
+ body: JSON.stringify({ device_id: deviceId, device_name: 'CoWorker CLI' })
65
+ });
66
+ codeResponse = await res.json();
67
+ if (!codeResponse.success) {
68
+ console.error(`\x1b[31m✗ Failed to get device code: ${codeResponse.error_description || codeResponse.error}\x1b[0m`);
69
+ process.exit(1);
70
+ }
71
+ }
72
+ catch (err) {
73
+ console.error(`\x1b[31m✗ Could not connect to Sylix servers: ${err.message}\x1b[0m`);
74
+ process.exit(1);
75
+ }
76
+ const { device_code, user_code, verification_uri_complete } = codeResponse;
77
+ // Step 2: Show code and open browser
78
+ console.log(`\n Your one-time code: \x1b[1m\x1b[33m${user_code}\x1b[0m\n`);
79
+ console.log(` Open this URL to authorize:\n \x1b[4m${verification_uri_complete}\x1b[0m\n`);
80
+ // Try to open browser
81
+ try {
82
+ const open = (await Promise.resolve().then(() => __importStar(require('open')))).default;
83
+ await open(verification_uri_complete);
84
+ console.log(' \x1b[32m✓ Browser opened automatically\x1b[0m');
85
+ }
86
+ catch {
87
+ console.log(' (Open the URL above manually in your browser)');
88
+ }
89
+ console.log('\n Waiting for authorization...\n');
90
+ // Step 3: Poll for token
91
+ const maxAttempts = 360; // 30 minutes at 5s intervals
92
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
93
+ await new Promise(r => setTimeout(r, 5000)); // 5 second interval
94
+ try {
95
+ const res = await (0, node_fetch_1.default)(`${API_BASE}/device/token`, {
96
+ method: 'POST',
97
+ headers: { 'Content-Type': 'application/json' },
98
+ body: JSON.stringify({ device_code })
99
+ });
100
+ const tokenData = await res.json();
101
+ if (tokenData.success) {
102
+ // Save token
103
+ const authData = {
104
+ access_token: tokenData.access_token,
105
+ refresh_token: tokenData.refresh_token,
106
+ user: tokenData.user,
107
+ expires_at: Math.floor(Date.now() / 1000) + tokenData.expires_in
108
+ };
109
+ await fs.mkdir(path.dirname(AUTH_FILE), { recursive: true });
110
+ await fs.writeFile(AUTH_FILE, JSON.stringify(authData, null, 2), 'utf8');
111
+ console.log(` \x1b[32m✓ Logged in as \x1b[1m${tokenData.user.email}\x1b[0m\n`);
112
+ process.exit(0);
113
+ }
114
+ if (tokenData.error === 'authorization_pending') {
115
+ process.stdout.write('.');
116
+ continue;
117
+ }
118
+ // Any other error is terminal
119
+ console.error(`\n\x1b[31m✗ ${tokenData.error_description || tokenData.error}\x1b[0m`);
120
+ process.exit(1);
121
+ }
122
+ catch (err) {
123
+ // Network error during poll — retry
124
+ continue;
125
+ }
126
+ }
127
+ console.error('\n\x1b[31m✗ Login timed out. Please try again.\x1b[0m');
128
+ process.exit(1);
129
+ }
130
+ /**
131
+ * Removes saved credentials.
132
+ */
133
+ static async logout() {
134
+ try {
135
+ await fs.unlink(AUTH_FILE);
136
+ console.log('\x1b[32m✓ Logged out successfully.\x1b[0m');
137
+ }
138
+ catch {
139
+ console.log('Already logged out (no saved credentials).');
140
+ }
141
+ }
142
+ /**
143
+ * Shows current authentication status.
144
+ */
145
+ static async status() {
146
+ const authData = await this.loadAuth();
147
+ if (!authData) {
148
+ console.log('\x1b[33m⚠ Not logged in.\x1b[0m Run \x1b[1mcoworker login\x1b[0m to authenticate.');
149
+ return;
150
+ }
151
+ const expiresDate = new Date(authData.expires_at * 1000);
152
+ const isExpired = Date.now() > authData.expires_at * 1000;
153
+ console.log(`\n\x1b[36m🔐 CoWorker Auth Status\x1b[0m\n`);
154
+ console.log(` Account: \x1b[1m${authData.user.email}\x1b[0m`);
155
+ console.log(` User ID: ${authData.user.id}`);
156
+ console.log(` Expires: ${expiresDate.toLocaleDateString()} ${expiresDate.toLocaleTimeString()}`);
157
+ console.log(` Status: ${isExpired ? '\x1b[31mExpired\x1b[0m — run \x1b[1mcoworker login\x1b[0m' : '\x1b[32mActive\x1b[0m'}\n`);
158
+ }
159
+ /**
160
+ * Returns the stored access token, or null if not logged in.
161
+ */
162
+ static async getToken() {
163
+ const authData = await this.loadAuth();
164
+ if (!authData)
165
+ return null;
166
+ if (Date.now() > authData.expires_at * 1000)
167
+ return null;
168
+ return authData.access_token;
169
+ }
170
+ static async loadAuth() {
171
+ try {
172
+ const content = await fs.readFile(AUTH_FILE, 'utf8');
173
+ return JSON.parse(content);
174
+ }
175
+ catch {
176
+ return null;
177
+ }
178
+ }
179
+ /**
180
+ * Public access to auth data for display purposes (e.g. banner).
181
+ */
182
+ static async loadAuthPublic() {
183
+ return this.loadAuth();
184
+ }
185
+ }
186
+ exports.AuthManager = AuthManager;
187
+ //# sourceMappingURL=AuthManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthManager.js","sourceRoot":"","sources":["../../src/config/AuthManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export declare const theme: {
2
+ brand: any;
3
+ accent: any;
4
+ success: any;
5
+ error: any;
6
+ warning: any;
7
+ ai: any;
8
+ dim: any;
9
+ white: any;
10
+ code: any;
11
+ };
12
+ export declare function getTermWidth(): number;
13
+ export declare function showBanner(version: string, userEmail?: string, model?: string): Promise<void>;
14
+ /**
15
+ * Static banner for non-TTY or --no-banner mode.
16
+ */
17
+ export declare function showStaticBanner(version: string): void;
18
+ export declare class ThinkingAnimation {
19
+ private interval;
20
+ private frame;
21
+ private message;
22
+ constructor();
23
+ start(): void;
24
+ stop(): void;
25
+ }
26
+ export declare function boxTop(label?: string): string;
27
+ export declare function boxBottom(): string;
28
+ export declare function printResponseHeader(): void;
29
+ export declare function printResponseFooter(elapsed: number, tokenEstimate?: number): void;
30
+ export declare function printUserPrompt(input: string): void;
31
+ export declare function printError(title: string, details?: string, hint?: string): void;
32
+ export declare function printSuccess(message: string): void;
33
+ export declare function printWarning(message: string): void;
34
+ export declare function printExit(): void;
35
+ export declare function printToolStart(toolName: string): void;
36
+ export declare function printToolDone(toolName: string, elapsed: number): void;
37
+ export declare function printToolError(toolName: string, error: string): void;
38
+ export declare function printHelp(): void;
39
+ export declare function printCompact(msgCount: number, tokenEst: number, sessionId: string): void;
40
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,KAAK;;;;;;;;;;CAUjB,CAAC;AAMF,wBAAgB,YAAY,IAAI,MAAM,CAErC;AA+BD,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAoB,iBAqChG;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,QAM/C;AAeD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,OAAO,CAAS;;IAMxB,KAAK;IAWL,IAAI;CASL;AAMD,wBAAgB,MAAM,CAAC,KAAK,GAAE,MAAmB,GAAG,MAAM,CAKzD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAIlC;AAED,wBAAgB,mBAAmB,SAGlC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,QAQ1E;AAMD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,QAG5C;AAMD,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,QAcxE;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,QAE3C;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,QAE3C;AAMD,wBAAgB,SAAS,SAKxB;AAMD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,QAE9C;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAG9D;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAE7D;AAMD,wBAAgB,SAAS,SASxB;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QASjF"}
@@ -0,0 +1,302 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ThinkingAnimation = exports.theme = void 0;
37
+ exports.getTermWidth = getTermWidth;
38
+ exports.showBanner = showBanner;
39
+ exports.showStaticBanner = showStaticBanner;
40
+ exports.boxTop = boxTop;
41
+ exports.boxBottom = boxBottom;
42
+ exports.printResponseHeader = printResponseHeader;
43
+ exports.printResponseFooter = printResponseFooter;
44
+ exports.printUserPrompt = printUserPrompt;
45
+ exports.printError = printError;
46
+ exports.printSuccess = printSuccess;
47
+ exports.printWarning = printWarning;
48
+ exports.printExit = printExit;
49
+ exports.printToolStart = printToolStart;
50
+ exports.printToolDone = printToolDone;
51
+ exports.printToolError = printToolError;
52
+ exports.printHelp = printHelp;
53
+ exports.printCompact = printCompact;
54
+ const chalk = __importStar(require("chalk"));
55
+ /**
56
+ * CoWorker Premium Output System
57
+ * Handles all terminal rendering — animations, themes, boxes, and streaming output.
58
+ */
59
+ // ============================================================================
60
+ // THEME SYSTEM
61
+ // ============================================================================
62
+ const NO_COLOR = !!process.env.NO_COLOR;
63
+ const IS_PIPE = !process.stdout.isTTY;
64
+ function hex(color) {
65
+ if (NO_COLOR || IS_PIPE)
66
+ return chalk.default;
67
+ try {
68
+ return chalk.hex ? chalk.hex(color) : chalk.default;
69
+ }
70
+ catch {
71
+ return chalk.default;
72
+ }
73
+ }
74
+ exports.theme = {
75
+ brand: hex('#00D4FF'), // Electric cyan — Sylix brand
76
+ accent: hex('#7C3AED'), // Deep purple — highlights
77
+ success: hex('#10B981'), // Emerald green
78
+ error: hex('#EF4444'), // Clean red
79
+ warning: hex('#F59E0B'), // Amber
80
+ ai: hex('#A78BFA'), // Soft purple — AI responses
81
+ dim: hex('#6B7280'), // Gray — secondary info
82
+ white: hex('#F9FAFB'), // Off white
83
+ code: hex('#FCD34D'), // Yellow — code and commands
84
+ };
85
+ // ============================================================================
86
+ // TERMINAL UTILS
87
+ // ============================================================================
88
+ function getTermWidth() {
89
+ return process.stdout.columns || 80;
90
+ }
91
+ function isNarrow() {
92
+ return getTermWidth() < 60;
93
+ }
94
+ function sleep(ms) {
95
+ return new Promise(r => setTimeout(r, ms));
96
+ }
97
+ function hideCursor() {
98
+ if (!IS_PIPE)
99
+ process.stdout.write('\x1b[?25l');
100
+ }
101
+ function showCursor() {
102
+ if (!IS_PIPE)
103
+ process.stdout.write('\x1b[?25h');
104
+ }
105
+ // ============================================================================
106
+ // STARTUP BANNER (Typewriter Animation)
107
+ // ============================================================================
108
+ const LOGO_LINES = [
109
+ ' ██████╗ ██████╗ ██╗ ██╗ ██████╗ ██████╗ ██╗ ██╗███████╗██████╗ ',
110
+ '██╔════╝██╔═══██╗██║ ██║██╔═══██╗██╔══██╗██║ ██╔╝██╔════╝██╔══██╗',
111
+ '██║ ██║ ██║██║ █╗ ██║██║ ██║██████╔╝█████╔╝ █████╗ ██████╔╝',
112
+ '██║ ██║ ██║██║███╗██║██║ ██║██╔══██╗██╔═██╗ ██╔══╝ ██╔══██╗',
113
+ '╚██████╗╚██████╔╝╚███╔███╔╝╚██████╔╝██║ ██║██║ ██╗███████╗██║ ██║',
114
+ ' ╚═════╝ ╚═════╝ ╚══╝╚══╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝',
115
+ ];
116
+ async function showBanner(version, userEmail, model = 'helix-1.2') {
117
+ if (IS_PIPE)
118
+ return;
119
+ hideCursor();
120
+ console.log('');
121
+ // Step 1: Typewriter ASCII art (line by line, fast)
122
+ for (const line of LOGO_LINES) {
123
+ process.stdout.write(exports.theme.brand(line) + '\n');
124
+ await sleep(40);
125
+ }
126
+ // Step 2: Fade in tagline word by word
127
+ console.log('');
128
+ const taglineWords = [' by', 'Sylix', ' ·', ' Your', 'AI', 'Coding', 'Partner'];
129
+ for (const word of taglineWords) {
130
+ process.stdout.write(exports.theme.dim(word + ' '));
131
+ await sleep(60);
132
+ }
133
+ console.log('');
134
+ // Step 3: Animated line draw
135
+ console.log('');
136
+ const lineWidth = Math.min(getTermWidth() - 4, 60);
137
+ for (let i = 0; i < lineWidth; i += 3) {
138
+ process.stdout.write(exports.theme.dim('━'));
139
+ await sleep(5);
140
+ }
141
+ console.log('');
142
+ // Step 4: User + model info
143
+ console.log('');
144
+ const userStr = userEmail ? `Signed in as ${userEmail}` : 'Not signed in';
145
+ console.log(exports.theme.dim(` ◆ ${userStr} · Model: ${model} · v${version}`));
146
+ console.log('');
147
+ showCursor();
148
+ }
149
+ /**
150
+ * Static banner for non-TTY or --no-banner mode.
151
+ */
152
+ function showStaticBanner(version) {
153
+ console.log('');
154
+ for (const line of LOGO_LINES) {
155
+ console.log(exports.theme.brand(line));
156
+ }
157
+ console.log(exports.theme.dim(`\n by Sylix · v${version}\n`));
158
+ }
159
+ // ============================================================================
160
+ // THINKING / LOADING ANIMATION
161
+ // ============================================================================
162
+ const LOADING_MESSAGES = [
163
+ '◆ Sylix brain activated...',
164
+ '◆ Reading your codebase...',
165
+ '◆ Thinking really hard...',
166
+ '◆ Consulting the AI oracle...',
167
+ '◆ Crafting something brilliant...',
168
+ '◆ CoWorker is on it...',
169
+ ];
170
+ class ThinkingAnimation {
171
+ constructor() {
172
+ this.interval = null;
173
+ this.frame = 0;
174
+ this.message = LOADING_MESSAGES[Math.floor(Math.random() * LOADING_MESSAGES.length)];
175
+ }
176
+ start() {
177
+ if (IS_PIPE)
178
+ return;
179
+ hideCursor();
180
+ const dots = ['◉ ○ ○', '○ ◉ ○', '○ ○ ◉'];
181
+ this.interval = setInterval(() => {
182
+ const dot = dots[this.frame % dots.length];
183
+ process.stdout.write(`\r ${exports.theme.brand(dot)} ${exports.theme.dim(this.message)}`);
184
+ this.frame++;
185
+ }, 300);
186
+ }
187
+ stop() {
188
+ if (this.interval) {
189
+ clearInterval(this.interval);
190
+ this.interval = null;
191
+ }
192
+ // Clear the loading line
193
+ process.stdout.write('\r' + ' '.repeat(getTermWidth()) + '\r');
194
+ showCursor();
195
+ }
196
+ }
197
+ exports.ThinkingAnimation = ThinkingAnimation;
198
+ // ============================================================================
199
+ // BOXED OUTPUT (AI RESPONSES)
200
+ // ============================================================================
201
+ function boxTop(label = 'CoWorker') {
202
+ const w = Math.min(getTermWidth() - 2, 70);
203
+ if (isNarrow())
204
+ return exports.theme.brand(`─ ${label} ─`);
205
+ const inner = w - 6 - label.length;
206
+ return exports.theme.brand(` ╭─ ${label} ${'─'.repeat(Math.max(0, inner))}╮`);
207
+ }
208
+ function boxBottom() {
209
+ const w = Math.min(getTermWidth() - 2, 70);
210
+ if (isNarrow())
211
+ return exports.theme.brand('─'.repeat(20));
212
+ return exports.theme.brand(` ╰${'─'.repeat(w - 4)}╯`);
213
+ }
214
+ function printResponseHeader() {
215
+ console.log(boxTop('CoWorker'));
216
+ console.log(exports.theme.brand(' │'));
217
+ }
218
+ function printResponseFooter(elapsed, tokenEstimate) {
219
+ console.log(exports.theme.brand(' │'));
220
+ console.log(boxBottom());
221
+ // Stats line
222
+ const elapsedStr = elapsed < 1000 ? `${elapsed}ms` : `${(elapsed / 1000).toFixed(1)}s`;
223
+ const tokenStr = tokenEstimate ? ` · tokens: ~${tokenEstimate}` : '';
224
+ console.log(exports.theme.dim(` ✦ Done · sylix.ai · ${elapsedStr}${tokenStr}`));
225
+ }
226
+ // ============================================================================
227
+ // PROMPT RENDERING
228
+ // ============================================================================
229
+ function printUserPrompt(input) {
230
+ console.log(` ${exports.theme.white('You')} ${exports.theme.dim('›')} ${input}`);
231
+ console.log('');
232
+ }
233
+ // ============================================================================
234
+ // ERROR / SUCCESS / WARNING STYLING
235
+ // ============================================================================
236
+ function printError(title, details, hint) {
237
+ console.log('');
238
+ console.log(exports.theme.error(' ╷'));
239
+ console.log(exports.theme.error(` │ ✗ ${title}`));
240
+ if (details) {
241
+ console.log(exports.theme.error(' │'));
242
+ console.log(exports.theme.error(` │ ${details}`));
243
+ }
244
+ if (hint) {
245
+ console.log(exports.theme.error(' │'));
246
+ console.log(exports.theme.dim(` │ → ${hint}`));
247
+ }
248
+ console.log(exports.theme.error(' ╵'));
249
+ console.log('');
250
+ }
251
+ function printSuccess(message) {
252
+ console.log(exports.theme.success(` ✓ ${message}`));
253
+ }
254
+ function printWarning(message) {
255
+ console.log(exports.theme.warning(` ⚠ ${message}`));
256
+ }
257
+ // ============================================================================
258
+ // EXIT MESSAGE
259
+ // ============================================================================
260
+ function printExit() {
261
+ if (IS_PIPE)
262
+ return;
263
+ console.log('');
264
+ console.log(exports.theme.dim(' ◆ CoWorker session ended · Thanks for using Sylix'));
265
+ console.log('');
266
+ }
267
+ // ============================================================================
268
+ // TOOL EXECUTION DISPLAY
269
+ // ============================================================================
270
+ function printToolStart(toolName) {
271
+ process.stdout.write(exports.theme.brand(` ⟡ `) + exports.theme.code(toolName) + exports.theme.dim(' running...'));
272
+ }
273
+ function printToolDone(toolName, elapsed) {
274
+ const elapsedStr = elapsed < 1000 ? `${elapsed}ms` : `${(elapsed / 1000).toFixed(1)}s`;
275
+ process.stdout.write(`\r ${exports.theme.success('✓')} ${exports.theme.code(toolName)} ${exports.theme.dim(elapsedStr)}` + ' '.repeat(20) + '\n');
276
+ }
277
+ function printToolError(toolName, error) {
278
+ process.stdout.write(`\r ${exports.theme.error('✗')} ${exports.theme.code(toolName)} ${exports.theme.dim(error.substring(0, 60))}` + ' '.repeat(10) + '\n');
279
+ }
280
+ // ============================================================================
281
+ // INTERACTIVE HELP
282
+ // ============================================================================
283
+ function printHelp() {
284
+ console.log(`
285
+ ${exports.theme.brand(' Slash Commands:')}
286
+ ${exports.theme.code('/help')} ${exports.theme.dim('Show this help')}
287
+ ${exports.theme.code('/clear')} ${exports.theme.dim('Clear the screen')}
288
+ ${exports.theme.code('/status')} ${exports.theme.dim('Show auth & session status')}
289
+ ${exports.theme.code('/compact')} ${exports.theme.dim('Show context window usage')}
290
+ ${exports.theme.code('/exit')} ${exports.theme.dim('Exit CoWorker')}
291
+ `);
292
+ }
293
+ function printCompact(msgCount, tokenEst, sessionId) {
294
+ const usage = Math.round((tokenEst / 12000) * 100);
295
+ const barWidth = 20;
296
+ const filled = Math.round((usage / 100) * barWidth);
297
+ const bar = '█'.repeat(filled) + '░'.repeat(barWidth - filled);
298
+ const color = usage > 80 ? exports.theme.error : usage > 50 ? exports.theme.warning : exports.theme.success;
299
+ console.log(exports.theme.dim(` Messages: ${msgCount} | Context: `) + color(`[${bar}] ${usage}%`) + exports.theme.dim(` | Session: ${sessionId.substring(0, 8)}`));
300
+ console.log('');
301
+ }
302
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/utils/output.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sylix/coworker",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "CoWorker by Sylix - AI-powered CLI coding assistant",
5
5
  "main": "dist/cli/index.js",
6
6
  "bin": {