@syntero/orca-cli 1.0.0 → 1.1.1

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 (111) hide show
  1. package/dist/assistant.d.ts +17 -3
  2. package/dist/assistant.d.ts.map +1 -1
  3. package/dist/assistant.js +217 -22
  4. package/dist/assistant.js.map +1 -1
  5. package/dist/auth.d.ts +97 -0
  6. package/dist/auth.d.ts.map +1 -0
  7. package/dist/auth.js +437 -0
  8. package/dist/auth.js.map +1 -0
  9. package/dist/autocomplete.d.ts +24 -0
  10. package/dist/autocomplete.d.ts.map +1 -0
  11. package/dist/autocomplete.js +43 -0
  12. package/dist/autocomplete.js.map +1 -0
  13. package/dist/components/ChatApp.d.ts +32 -0
  14. package/dist/components/ChatApp.d.ts.map +1 -0
  15. package/dist/components/ChatApp.js +470 -0
  16. package/dist/components/ChatApp.js.map +1 -0
  17. package/dist/components/CommandPalette.d.ts +15 -0
  18. package/dist/components/CommandPalette.d.ts.map +1 -0
  19. package/dist/components/CommandPalette.js +22 -0
  20. package/dist/components/CommandPalette.js.map +1 -0
  21. package/dist/components/ConfigWizard.d.ts +25 -0
  22. package/dist/components/ConfigWizard.d.ts.map +1 -0
  23. package/dist/components/ConfigWizard.js +401 -0
  24. package/dist/components/ConfigWizard.js.map +1 -0
  25. package/dist/components/InputFooter.d.ts +33 -0
  26. package/dist/components/InputFooter.d.ts.map +1 -0
  27. package/dist/components/InputFooter.js +618 -0
  28. package/dist/components/InputFooter.js.map +1 -0
  29. package/dist/components/InputModal.d.ts +25 -0
  30. package/dist/components/InputModal.d.ts.map +1 -0
  31. package/dist/components/InputModal.js +529 -0
  32. package/dist/components/InputModal.js.map +1 -0
  33. package/dist/components/ModelMenu.d.ts +24 -0
  34. package/dist/components/ModelMenu.d.ts.map +1 -0
  35. package/dist/components/ModelMenu.js +175 -0
  36. package/dist/components/ModelMenu.js.map +1 -0
  37. package/dist/components/ProviderMenu.d.ts +20 -0
  38. package/dist/components/ProviderMenu.d.ts.map +1 -0
  39. package/dist/components/ProviderMenu.js +31 -0
  40. package/dist/components/ProviderMenu.js.map +1 -0
  41. package/dist/components/SyncMenu.d.ts +23 -0
  42. package/dist/components/SyncMenu.d.ts.map +1 -0
  43. package/dist/components/SyncMenu.js +135 -0
  44. package/dist/components/SyncMenu.js.map +1 -0
  45. package/dist/components/TokenInput.d.ts +15 -0
  46. package/dist/components/TokenInput.d.ts.map +1 -0
  47. package/dist/components/TokenInput.js +103 -0
  48. package/dist/components/TokenInput.js.map +1 -0
  49. package/dist/index.js +323 -173
  50. package/dist/index.js.map +1 -1
  51. package/dist/ink-input.d.ts +14 -0
  52. package/dist/ink-input.d.ts.map +1 -0
  53. package/dist/ink-input.js +92 -0
  54. package/dist/ink-input.js.map +1 -0
  55. package/dist/models.d.ts +115 -0
  56. package/dist/models.d.ts.map +1 -0
  57. package/dist/models.js +221 -0
  58. package/dist/models.js.map +1 -0
  59. package/dist/providers.d.ts +19 -4
  60. package/dist/providers.d.ts.map +1 -1
  61. package/dist/providers.js +80 -112
  62. package/dist/providers.js.map +1 -1
  63. package/dist/settings.d.ts +15 -0
  64. package/dist/settings.d.ts.map +1 -1
  65. package/dist/settings.js +56 -21
  66. package/dist/settings.js.map +1 -1
  67. package/dist/sync/docker.d.ts +68 -0
  68. package/dist/sync/docker.d.ts.map +1 -0
  69. package/dist/sync/docker.js +234 -0
  70. package/dist/sync/docker.js.map +1 -0
  71. package/dist/sync/download.d.ts +87 -0
  72. package/dist/sync/download.d.ts.map +1 -0
  73. package/dist/sync/download.js +291 -0
  74. package/dist/sync/download.js.map +1 -0
  75. package/dist/sync/hash.d.ts +60 -0
  76. package/dist/sync/hash.d.ts.map +1 -0
  77. package/dist/sync/hash.js +92 -0
  78. package/dist/sync/hash.js.map +1 -0
  79. package/dist/sync/index.d.ts +15 -0
  80. package/dist/sync/index.d.ts.map +1 -0
  81. package/dist/sync/index.js +21 -0
  82. package/dist/sync/index.js.map +1 -0
  83. package/dist/sync/manifest.d.ts +132 -0
  84. package/dist/sync/manifest.d.ts.map +1 -0
  85. package/dist/sync/manifest.js +260 -0
  86. package/dist/sync/manifest.js.map +1 -0
  87. package/dist/sync/progress.d.ts +164 -0
  88. package/dist/sync/progress.d.ts.map +1 -0
  89. package/dist/sync/progress.js +233 -0
  90. package/dist/sync/progress.js.map +1 -0
  91. package/dist/sync/services.d.ts +70 -0
  92. package/dist/sync/services.d.ts.map +1 -0
  93. package/dist/sync/services.js +134 -0
  94. package/dist/sync/services.js.map +1 -0
  95. package/dist/sync/sync-engine.d.ts +69 -0
  96. package/dist/sync/sync-engine.d.ts.map +1 -0
  97. package/dist/sync/sync-engine.js +533 -0
  98. package/dist/sync/sync-engine.js.map +1 -0
  99. package/dist/tokens.d.ts +70 -0
  100. package/dist/tokens.d.ts.map +1 -0
  101. package/dist/tokens.js +198 -0
  102. package/dist/tokens.js.map +1 -0
  103. package/dist/tools.d.ts +60 -0
  104. package/dist/tools.d.ts.map +1 -1
  105. package/dist/tools.js +34 -0
  106. package/dist/tools.js.map +1 -1
  107. package/dist/types/sync.d.ts +284 -0
  108. package/dist/types/sync.d.ts.map +1 -0
  109. package/dist/types/sync.js +5 -0
  110. package/dist/types/sync.js.map +1 -0
  111. package/package.json +10 -2
package/dist/auth.js ADDED
@@ -0,0 +1,437 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import * as http from 'http';
4
+ import * as https from 'https';
5
+ import { URL } from 'url';
6
+ import { Colors, color } from './utils.js';
7
+ import { ModelRegistry } from './models.js';
8
+ import { loadSettings } from './settings.js';
9
+ // Debug logging to file
10
+ const DEBUG_LOG_FILE = path.join(process.cwd(), 'debug.log');
11
+ /**
12
+ * Log a debug message to the debug log file.
13
+ */
14
+ function debugLog(msg) {
15
+ try {
16
+ fs.appendFileSync(DEBUG_LOG_FILE, `${new Date().toISOString()} [auth] ${msg}\n`);
17
+ }
18
+ catch {
19
+ // Ignore logging errors
20
+ }
21
+ }
22
+ // Cloud endpoint: ORCA_ENDPOINT overrides, DEBUG=1 uses localhost, otherwise production
23
+ const DEFAULT_ENDPOINT = process.env.ORCA_ENDPOINT
24
+ || (process.env.DEBUG ? 'http://localhost:5000' : 'https://beta.syntero.run');
25
+ // Credentials file location
26
+ const ORCA_DIR = path.join(process.env.HOME || process.env.USERPROFILE || '', '.orca');
27
+ export const CREDENTIALS_FILE = path.join(ORCA_DIR, 'credentials.json');
28
+ /**
29
+ * Ensure the ~/.orca directory exists.
30
+ */
31
+ function ensureOrcaDir() {
32
+ if (!fs.existsSync(ORCA_DIR)) {
33
+ fs.mkdirSync(ORCA_DIR, { recursive: true, mode: 0o700 });
34
+ }
35
+ }
36
+ /**
37
+ * Save credentials to file with restrictive permissions.
38
+ */
39
+ function saveCredentials(credentials) {
40
+ ensureOrcaDir();
41
+ fs.writeFileSync(CREDENTIALS_FILE, JSON.stringify(credentials, null, 2));
42
+ try {
43
+ fs.chmodSync(CREDENTIALS_FILE, 0o600);
44
+ }
45
+ catch {
46
+ // Ignore chmod errors on Windows
47
+ }
48
+ }
49
+ /**
50
+ * Load credentials from file.
51
+ */
52
+ export function loadCredentials() {
53
+ if (!fs.existsSync(CREDENTIALS_FILE)) {
54
+ return null;
55
+ }
56
+ try {
57
+ const data = JSON.parse(fs.readFileSync(CREDENTIALS_FILE, 'utf-8'));
58
+ return data;
59
+ }
60
+ catch {
61
+ return null;
62
+ }
63
+ }
64
+ /**
65
+ * Delete credentials file.
66
+ */
67
+ function deleteCredentials() {
68
+ if (fs.existsSync(CREDENTIALS_FILE)) {
69
+ fs.unlinkSync(CREDENTIALS_FILE);
70
+ return true;
71
+ }
72
+ return false;
73
+ }
74
+ /**
75
+ * Check if valid cloud credentials exist.
76
+ */
77
+ export function isAuthenticated() {
78
+ const creds = loadCredentials();
79
+ return creds !== null && Boolean(creds.token);
80
+ }
81
+ /**
82
+ * Get the current auth token, if available.
83
+ */
84
+ export function getToken() {
85
+ const creds = loadCredentials();
86
+ return creds?.token || null;
87
+ }
88
+ /**
89
+ * Get the cloud endpoint from credentials or default.
90
+ */
91
+ export function getEndpoint() {
92
+ const creds = loadCredentials();
93
+ return creds?.endpoint || DEFAULT_ENDPOINT;
94
+ }
95
+ /**
96
+ * Make an HTTPS request to the backend API.
97
+ */
98
+ function makeRequest(method, urlString, body, authToken) {
99
+ return new Promise((resolve, reject) => {
100
+ const url = new URL(urlString);
101
+ const headers = {
102
+ 'Content-Type': 'application/json',
103
+ 'Accept': 'application/json',
104
+ };
105
+ if (authToken) {
106
+ headers['Authorization'] = `Bearer ${authToken}`;
107
+ }
108
+ const options = {
109
+ hostname: url.hostname,
110
+ port: url.port || (url.protocol === 'https:' ? 443 : 80),
111
+ path: url.pathname + url.search,
112
+ method,
113
+ headers,
114
+ };
115
+ const protocol = url.protocol === 'https:' ? https : http;
116
+ const req = protocol.request(options, (res) => {
117
+ let data = '';
118
+ res.on('data', (chunk) => {
119
+ data += chunk;
120
+ });
121
+ res.on('end', () => {
122
+ try {
123
+ const parsed = JSON.parse(data);
124
+ resolve({ status: res.statusCode || 500, data: parsed });
125
+ }
126
+ catch {
127
+ resolve({ status: res.statusCode || 500, data: { raw: data } });
128
+ }
129
+ });
130
+ });
131
+ req.on('error', reject);
132
+ if (body) {
133
+ req.write(JSON.stringify(body));
134
+ }
135
+ req.end();
136
+ });
137
+ }
138
+ /**
139
+ * Validate a CLI token against the backend.
140
+ */
141
+ async function validateToken(endpoint, token) {
142
+ try {
143
+ const response = await makeRequest('GET', `${endpoint}/api/v1/auth/cli/validate`, undefined, token);
144
+ if (response.status !== 200) {
145
+ return null;
146
+ }
147
+ // Backend wraps responses in { status: "...", data: {...} } format
148
+ const responseBody = response.data;
149
+ const data = responseBody.data;
150
+ if (!data || !data.user_id || !data.email || !data.org_id) {
151
+ return null;
152
+ }
153
+ return {
154
+ user: {
155
+ id: data.user_id,
156
+ email: data.email,
157
+ name: data.name || data.email,
158
+ },
159
+ org_id: data.org_id,
160
+ };
161
+ }
162
+ catch {
163
+ return null;
164
+ }
165
+ }
166
+ /**
167
+ * Set a CLI token and validate it against the backend.
168
+ * This replaces the OAuth login flow with direct token entry.
169
+ */
170
+ export async function setToken(token, endpoint = DEFAULT_ENDPOINT) {
171
+ // Validate the token
172
+ const validationResult = await validateToken(endpoint, token);
173
+ if (!validationResult) {
174
+ console.log(color('\nError: Invalid token', Colors.red));
175
+ return false;
176
+ }
177
+ // Fetch LLM configuration from the backend
178
+ const llmConfig = await fetchLLMConfig(endpoint, token);
179
+ // Save credentials (including LLM config if available)
180
+ const credentials = {
181
+ token,
182
+ user: validationResult.user,
183
+ org_id: validationResult.org_id,
184
+ endpoint,
185
+ llm: llmConfig || undefined,
186
+ };
187
+ saveCredentials(credentials);
188
+ console.log(color('\nAuthentication successful!', Colors.green));
189
+ console.log(` Logged in as: ${color(validationResult.user.email, Colors.cyan)}`);
190
+ console.log(` Organization: ${color(validationResult.org_id, Colors.cyan)}`);
191
+ if (llmConfig) {
192
+ const providers = Object.keys(llmConfig);
193
+ console.log(` Available providers: ${color(providers.join(', '), Colors.cyan)}`);
194
+ // Show available providers with their default models from registry
195
+ if (llmConfig.anthropic) {
196
+ console.log(` - anthropic: ${ModelRegistry.getDefaultModel('anthropic')}`);
197
+ }
198
+ if (llmConfig.openai) {
199
+ console.log(` - openai: ${ModelRegistry.getDefaultModel('openai')}`);
200
+ }
201
+ if (llmConfig.azure) {
202
+ console.log(` - azure: ${llmConfig.azure.large_deployment || llmConfig.azure.small_deployment || 'configured'}`);
203
+ }
204
+ // Show selected provider (first available)
205
+ const selected = providers[0];
206
+ console.log(` Active: ${color(selected, Colors.green)}`);
207
+ }
208
+ else {
209
+ console.log(color(' Warning: No LLM config available - local API keys required', Colors.yellow));
210
+ }
211
+ console.log(` Credentials saved to: ${color(CREDENTIALS_FILE, Colors.dim)}`);
212
+ return true;
213
+ }
214
+ /**
215
+ * Logout from the cloud platform.
216
+ */
217
+ export async function logout() {
218
+ const creds = loadCredentials();
219
+ if (!creds) {
220
+ console.log(color('Not logged in.', Colors.yellow));
221
+ return false;
222
+ }
223
+ // Try to revoke the token on the backend
224
+ try {
225
+ console.log('Revoking token...');
226
+ await makeRequest('POST', `${creds.endpoint}/api/v1/auth/cli/revoke`, {}, creds.token);
227
+ }
228
+ catch {
229
+ // Ignore revocation errors, proceed with local cleanup
230
+ }
231
+ // Delete local credentials
232
+ const deleted = deleteCredentials();
233
+ if (deleted) {
234
+ console.log(color('Logged out successfully.', Colors.green));
235
+ console.log(color('Credentials removed.', Colors.dim));
236
+ return true;
237
+ }
238
+ else {
239
+ console.log(color('No credentials to remove.', Colors.yellow));
240
+ return false;
241
+ }
242
+ }
243
+ /**
244
+ * Show current authentication status.
245
+ */
246
+ export async function status() {
247
+ const creds = loadCredentials();
248
+ if (!creds) {
249
+ console.log(color('Not logged in to cloud platform.', Colors.yellow));
250
+ console.log(color('Run /token to authenticate.', Colors.dim));
251
+ return;
252
+ }
253
+ console.log(color('\nCloud Authentication Status', Colors.bold));
254
+ console.log('─'.repeat(40));
255
+ console.log(` Logged in as: ${color(creds.user.email, Colors.cyan)}`);
256
+ console.log(` Name: ${creds.user.name}`);
257
+ console.log(` User ID: ${color(creds.user.id, Colors.dim)}`);
258
+ console.log(` Organization: ${color(creds.org_id, Colors.cyan)}`);
259
+ console.log(` Endpoint: ${color(creds.endpoint, Colors.dim)}`);
260
+ console.log(` Token: ${color(creds.token.slice(0, 12) + '...', Colors.dim)}`);
261
+ // Show LLM config if available
262
+ if (creds.llm) {
263
+ const selected = getSelectedCloudProvider();
264
+ const settings = loadSettings(); // Get model from local settings
265
+ console.log(color('\nLLM Providers:', Colors.bold));
266
+ if (creds.llm.anthropic) {
267
+ const marker = selected === 'anthropic' ? color(' (active)', Colors.green) : '';
268
+ console.log(` Anthropic${marker}:`);
269
+ // Model comes from local settings, not backend
270
+ const anthropicModel = settings.anthropic.model;
271
+ console.log(` Model: ${color(anthropicModel, Colors.cyan)}`);
272
+ console.log(` API Key: ${color(creds.llm.anthropic.api_key.slice(0, 12) + '...', Colors.dim)}`);
273
+ }
274
+ if (creds.llm.openai) {
275
+ const marker = selected === 'openai' ? color(' (active)', Colors.green) : '';
276
+ console.log(` OpenAI${marker}:`);
277
+ // Model comes from local settings, not backend
278
+ const openaiModel = settings.openai.model;
279
+ console.log(` Model: ${color(openaiModel, Colors.cyan)}`);
280
+ console.log(` API Key: ${color(creds.llm.openai.api_key.slice(0, 12) + '...', Colors.dim)}`);
281
+ }
282
+ if (creds.llm.azure) {
283
+ const marker = selected === 'azure' ? color(' (active)', Colors.green) : '';
284
+ console.log(` Azure${marker}:`);
285
+ console.log(` Endpoint: ${color(creds.llm.azure.endpoint, Colors.dim)}`);
286
+ console.log(` Large deployment: ${color(creds.llm.azure.large_deployment || '(not set)', Colors.cyan)}`);
287
+ console.log(` Small deployment: ${color(creds.llm.azure.small_deployment || '(not set)', Colors.cyan)}`);
288
+ console.log(` API Key: ${color(creds.llm.azure.api_key.slice(0, 12) + '...', Colors.dim)}`);
289
+ }
290
+ }
291
+ else {
292
+ console.log(color('\n No LLM config (using local API keys)', Colors.yellow));
293
+ }
294
+ // Optionally verify token is still valid
295
+ try {
296
+ const response = await makeRequest('GET', `${creds.endpoint}/api/v1/auth/cli/validate`, undefined, creds.token);
297
+ if (response.status === 200) {
298
+ console.log(` Status: ${color('Active', Colors.green)}`);
299
+ }
300
+ else {
301
+ console.log(` Status: ${color('Token may be expired', Colors.yellow)}`);
302
+ }
303
+ }
304
+ catch {
305
+ console.log(` Status: ${color('Could not verify (offline?)', Colors.yellow)}`);
306
+ }
307
+ }
308
+ /**
309
+ * Make an authenticated request to the cloud API.
310
+ */
311
+ export async function cloudRequest(method, path, body) {
312
+ const creds = loadCredentials();
313
+ if (!creds) {
314
+ throw new Error('Not authenticated. Run /token first.');
315
+ }
316
+ const url = `${creds.endpoint}${path}`;
317
+ return makeRequest(method, url, body, creds.token);
318
+ }
319
+ /**
320
+ * Fetch LLM configuration from the cloud backend.
321
+ * Returns all available LLM providers from the org's configuration.
322
+ */
323
+ export async function fetchLLMConfig(endpoint, token) {
324
+ try {
325
+ const response = await makeRequest('GET', `${endpoint}/api/v1/auth/cli/llm-config`, undefined, token);
326
+ if (response.status !== 200) {
327
+ console.log(color(`Warning: Could not fetch LLM config (${response.status})`, Colors.yellow));
328
+ return null;
329
+ }
330
+ // Backend wraps responses in { status: "...", data: {...} } format
331
+ const responseBody = response.data;
332
+ const data = responseBody.data;
333
+ if (!data) {
334
+ console.log(color('Warning: Empty LLM config response', Colors.yellow));
335
+ return null;
336
+ }
337
+ const providers = {};
338
+ if (data.anthropic?.api_key && data.anthropic?.model) {
339
+ providers.anthropic = {
340
+ api_key: data.anthropic.api_key,
341
+ model: data.anthropic.model,
342
+ };
343
+ }
344
+ if (data.openai?.api_key && data.openai?.model) {
345
+ providers.openai = {
346
+ api_key: data.openai.api_key,
347
+ model: data.openai.model,
348
+ };
349
+ }
350
+ if (data.azure?.api_key && data.azure?.endpoint) {
351
+ providers.azure = {
352
+ api_key: data.azure.api_key,
353
+ endpoint: data.azure.endpoint,
354
+ api_version: data.azure.api_version || '2025-01-01-preview',
355
+ large_deployment: data.azure.large_deployment || '',
356
+ small_deployment: data.azure.small_deployment || '',
357
+ };
358
+ }
359
+ if (Object.keys(providers).length === 0) {
360
+ console.log(color('Warning: No LLM providers configured', Colors.yellow));
361
+ return null;
362
+ }
363
+ return providers;
364
+ }
365
+ catch (error) {
366
+ const message = error instanceof Error ? error.message : String(error);
367
+ console.log(color(`Warning: Failed to fetch LLM config: ${message}`, Colors.yellow));
368
+ return null;
369
+ }
370
+ }
371
+ /**
372
+ * Get the list of available cloud providers.
373
+ */
374
+ export function getAvailableCloudProviders() {
375
+ const creds = loadCredentials();
376
+ if (!creds?.llm)
377
+ return [];
378
+ return Object.keys(creds.llm);
379
+ }
380
+ /**
381
+ * Get the currently selected cloud provider.
382
+ */
383
+ export function getSelectedCloudProvider() {
384
+ const creds = loadCredentials();
385
+ debugLog(`getSelectedCloudProvider() called, creds exists: ${!!creds}, creds.llm exists: ${!!creds?.llm}, creds.selectedProvider: ${creds?.selectedProvider}`);
386
+ if (!creds?.llm) {
387
+ debugLog(`getSelectedCloudProvider() returning null - no creds or no llm config`);
388
+ return null;
389
+ }
390
+ // Return selected provider if set and still available
391
+ if (creds.selectedProvider && creds.llm[creds.selectedProvider]) {
392
+ debugLog(`getSelectedCloudProvider() returning saved selection: ${creds.selectedProvider}`);
393
+ return creds.selectedProvider;
394
+ }
395
+ // Default to first available provider (prefer anthropic > openai > azure)
396
+ let defaultProvider = null;
397
+ if (creds.llm.anthropic)
398
+ defaultProvider = 'anthropic';
399
+ else if (creds.llm.openai)
400
+ defaultProvider = 'openai';
401
+ else if (creds.llm.azure)
402
+ defaultProvider = 'azure';
403
+ debugLog(`getSelectedCloudProvider() no selection saved, defaulting to: ${defaultProvider}`);
404
+ return defaultProvider;
405
+ }
406
+ /**
407
+ * Set the selected cloud provider.
408
+ */
409
+ export function setSelectedCloudProvider(provider) {
410
+ debugLog(`setSelectedCloudProvider(${provider}) called`);
411
+ const creds = loadCredentials();
412
+ if (!creds) {
413
+ debugLog(`setSelectedCloudProvider() FAILED - no credentials loaded`);
414
+ return false;
415
+ }
416
+ // Validate provider is available
417
+ if (!creds.llm || !creds.llm[provider]) {
418
+ debugLog(`setSelectedCloudProvider() FAILED - provider ${provider} not available in llm config. Available: ${creds.llm ? Object.keys(creds.llm).join(', ') : 'none'}`);
419
+ return false;
420
+ }
421
+ debugLog(`setSelectedCloudProvider() SUCCESS - setting selectedProvider to ${provider} and saving credentials`);
422
+ creds.selectedProvider = provider;
423
+ saveCredentials(creds);
424
+ return true;
425
+ }
426
+ /**
427
+ * Update stored credentials with new LLM config.
428
+ */
429
+ export function updateLLMConfig(llmConfig) {
430
+ const creds = loadCredentials();
431
+ if (!creds) {
432
+ return;
433
+ }
434
+ creds.llm = llmConfig || undefined;
435
+ saveCredentials(creds);
436
+ }
437
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Command definition with name and description.
3
+ */
4
+ export interface CommandDefinition {
5
+ name: string;
6
+ description: string;
7
+ }
8
+ /**
9
+ * All available CLI commands with their descriptions.
10
+ */
11
+ export declare const COMMANDS: CommandDefinition[];
12
+ /**
13
+ * Filter commands based on user input.
14
+ * Returns commands that start with the given input (case-insensitive).
15
+ *
16
+ * @param input - The filter text (without the leading "/")
17
+ * @returns Filtered list of commands matching the input
18
+ */
19
+ export declare function filterCommands(input: string): CommandDefinition[];
20
+ /**
21
+ * Get the list of command names only.
22
+ */
23
+ export declare function getCommandNames(): string[];
24
+ //# sourceMappingURL=autocomplete.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../src/autocomplete.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,iBAAiB,EAavC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAajE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAE1C"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * All available CLI commands with their descriptions.
3
+ */
4
+ export const COMMANDS = [
5
+ { name: '/token', description: 'Enter CLI token' },
6
+ { name: '/logout', description: 'Log out from cloud platform' },
7
+ { name: '/status', description: 'Show authentication status' },
8
+ { name: '/config', description: 'Configure local API keys' },
9
+ { name: '/model', description: 'Select AI model' },
10
+ { name: '/settings', description: 'Show current settings' },
11
+ { name: '/update', description: 'Update to latest version' },
12
+ { name: '/clear', description: 'Clear conversation' },
13
+ { name: '/compact', description: 'Compact conversation (summarize and reset)' },
14
+ { name: '/context', description: 'Show token usage breakdown' },
15
+ { name: '/sync', description: 'Sync library from cloud' },
16
+ { name: '/help', description: 'Show help' },
17
+ ];
18
+ /**
19
+ * Filter commands based on user input.
20
+ * Returns commands that start with the given input (case-insensitive).
21
+ *
22
+ * @param input - The filter text (without the leading "/")
23
+ * @returns Filtered list of commands matching the input
24
+ */
25
+ export function filterCommands(input) {
26
+ const normalizedInput = input.toLowerCase();
27
+ // If input is empty, return all commands
28
+ if (!normalizedInput) {
29
+ return COMMANDS;
30
+ }
31
+ // Filter commands where the name (without "/") starts with the input
32
+ return COMMANDS.filter(cmd => {
33
+ const cmdName = cmd.name.slice(1).toLowerCase(); // Remove "/" and lowercase
34
+ return cmdName.startsWith(normalizedInput);
35
+ });
36
+ }
37
+ /**
38
+ * Get the list of command names only.
39
+ */
40
+ export function getCommandNames() {
41
+ return COMMANDS.map(cmd => cmd.name);
42
+ }
43
+ //# sourceMappingURL=autocomplete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autocomplete.js","sourceRoot":"","sources":["../src/autocomplete.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAwB;IAC3C,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;IAClD,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,6BAA6B,EAAE;IAC/D,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAC9D,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAC5D,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE;IAClD,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,uBAAuB,EAAE;IAC3D,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,0BAA0B,EAAE;IAC5D,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;IACrD,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,4CAA4C,EAAE;IAC/E,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,4BAA4B,EAAE;IAC/D,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,yBAAyB,EAAE;IACzD,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE;CAC5C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAE5C,yCAAyC;IACzC,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,qEAAqE;IACrE,OAAO,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;QAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,2BAA2B;QAC5E,OAAO,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { Settings } from '../settings.js';
3
+ import { LLMClient } from '../providers.js';
4
+ /**
5
+ * Represents a completed message in the chat history.
6
+ */
7
+ export interface ChatMessage {
8
+ id: number;
9
+ role: 'user' | 'assistant' | 'system';
10
+ content: string;
11
+ timestamp: number;
12
+ }
13
+ interface ChatAppProps {
14
+ settings: Settings;
15
+ createClient: (settings: Settings) => {
16
+ client: LLMClient;
17
+ isCloud: boolean;
18
+ cloudProvider?: string;
19
+ };
20
+ onUpdateCommand: (deployPath?: string) => Promise<void>;
21
+ }
22
+ /**
23
+ * ChatApp - Main chat component using Ink's Static for persistent footer pattern.
24
+ *
25
+ * Architecture:
26
+ * - <Static> for completed messages (user + assistant) - these are permanently rendered
27
+ * - Dynamic area for currently streaming response
28
+ * - Persistent input footer that's always visible
29
+ */
30
+ export declare function ChatApp({ settings: initialSettings, createClient, onUpdateCommand }: ChatAppProps): React.ReactElement;
31
+ export {};
32
+ //# sourceMappingURL=ChatApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChatApp.d.ts","sourceRoot":"","sources":["../../src/components/ChatApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAGxE,OAAO,EAAE,QAAQ,EAA8B,MAAM,gBAAgB,CAAC;AAGtE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAmB5C;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAWD,UAAU,YAAY;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,YAAY,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK;QAAE,MAAM,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtG,eAAe,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACzD;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,YAAY,GAAG,KAAK,CAAC,YAAY,CAmjBtH"}