centaurus-cli 2.8.8 → 2.9.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 (134) hide show
  1. package/dist/cli-adapter.d.ts +82 -2
  2. package/dist/cli-adapter.d.ts.map +1 -1
  3. package/dist/cli-adapter.js +622 -94
  4. package/dist/cli-adapter.js.map +1 -1
  5. package/dist/config/ConfigManager.d.ts.map +1 -1
  6. package/dist/config/ConfigManager.js +6 -5
  7. package/dist/config/ConfigManager.js.map +1 -1
  8. package/dist/config/build-config.d.ts +42 -0
  9. package/dist/config/build-config.d.ts.map +1 -0
  10. package/dist/config/build-config.js +44 -0
  11. package/dist/config/build-config.js.map +1 -0
  12. package/dist/config/manager.d.ts +2 -2
  13. package/dist/config/manager.d.ts.map +1 -1
  14. package/dist/config/manager.js +9 -12
  15. package/dist/config/manager.js.map +1 -1
  16. package/dist/config/mcp-config-manager.d.ts +5 -0
  17. package/dist/config/mcp-config-manager.d.ts.map +1 -1
  18. package/dist/config/mcp-config-manager.js +8 -0
  19. package/dist/config/mcp-config-manager.js.map +1 -1
  20. package/dist/config/models.d.ts +48 -42
  21. package/dist/config/models.d.ts.map +1 -1
  22. package/dist/config/models.js +148 -133
  23. package/dist/config/models.js.map +1 -1
  24. package/dist/config/slash-commands.d.ts +2 -0
  25. package/dist/config/slash-commands.d.ts.map +1 -1
  26. package/dist/config/slash-commands.js +34 -1
  27. package/dist/config/slash-commands.js.map +1 -1
  28. package/dist/context/context-manager.d.ts.map +1 -1
  29. package/dist/context/context-manager.js +6 -6
  30. package/dist/context/context-manager.js.map +1 -1
  31. package/dist/hooks/useConnectivity.d.ts +2 -0
  32. package/dist/hooks/useConnectivity.d.ts.map +1 -0
  33. package/dist/hooks/useConnectivity.js +12 -0
  34. package/dist/hooks/useConnectivity.js.map +1 -0
  35. package/dist/index.d.ts +6 -0
  36. package/dist/index.d.ts.map +1 -1
  37. package/dist/index.js +37 -23
  38. package/dist/index.js.map +1 -1
  39. package/dist/mcp/mcp-command-handler.d.ts.map +1 -1
  40. package/dist/mcp/mcp-command-handler.js +2 -5
  41. package/dist/mcp/mcp-command-handler.js.map +1 -1
  42. package/dist/mcp/mcp-tool-wrapper.d.ts.map +1 -1
  43. package/dist/mcp/mcp-tool-wrapper.js +8 -0
  44. package/dist/mcp/mcp-tool-wrapper.js.map +1 -1
  45. package/dist/services/ai-service-client.d.ts +1 -0
  46. package/dist/services/ai-service-client.d.ts.map +1 -1
  47. package/dist/services/ai-service-client.js +8 -6
  48. package/dist/services/ai-service-client.js.map +1 -1
  49. package/dist/services/api-client.d.ts +46 -34
  50. package/dist/services/api-client.d.ts.map +1 -1
  51. package/dist/services/api-client.js +47 -37
  52. package/dist/services/api-client.js.map +1 -1
  53. package/dist/services/background-task-manager.d.ts +114 -0
  54. package/dist/services/background-task-manager.d.ts.map +1 -0
  55. package/dist/services/background-task-manager.js +301 -0
  56. package/dist/services/background-task-manager.js.map +1 -0
  57. package/dist/services/connectivity-manager.d.ts +18 -0
  58. package/dist/services/connectivity-manager.d.ts.map +1 -0
  59. package/dist/services/connectivity-manager.js +72 -0
  60. package/dist/services/connectivity-manager.js.map +1 -0
  61. package/dist/services/local-chat-storage.d.ts +5 -0
  62. package/dist/services/local-chat-storage.d.ts.map +1 -1
  63. package/dist/services/local-chat-storage.js +38 -4
  64. package/dist/services/local-chat-storage.js.map +1 -1
  65. package/dist/tools/background-command.d.ts +11 -0
  66. package/dist/tools/background-command.d.ts.map +1 -0
  67. package/dist/tools/background-command.js +162 -0
  68. package/dist/tools/background-command.js.map +1 -0
  69. package/dist/tools/command.d.ts.map +1 -1
  70. package/dist/tools/command.js +6 -3
  71. package/dist/tools/command.js.map +1 -1
  72. package/dist/tools/create-image.d.ts +10 -0
  73. package/dist/tools/create-image.d.ts.map +1 -0
  74. package/dist/tools/create-image.js +189 -0
  75. package/dist/tools/create-image.js.map +1 -0
  76. package/dist/tools/web-search.d.ts.map +1 -1
  77. package/dist/tools/web-search.js +8 -6
  78. package/dist/tools/web-search.js.map +1 -1
  79. package/dist/ui/components/App.d.ts +34 -2
  80. package/dist/ui/components/App.d.ts.map +1 -1
  81. package/dist/ui/components/App.js +403 -67
  82. package/dist/ui/components/App.js.map +1 -1
  83. package/dist/ui/components/ContextWindowIndicator.d.ts.map +1 -1
  84. package/dist/ui/components/ContextWindowIndicator.js +43 -22
  85. package/dist/ui/components/ContextWindowIndicator.js.map +1 -1
  86. package/dist/ui/components/ErrorBoundary.d.ts.map +1 -1
  87. package/dist/ui/components/ErrorBoundary.js +2 -1
  88. package/dist/ui/components/ErrorBoundary.js.map +1 -1
  89. package/dist/ui/components/InputBox.d.ts +4 -0
  90. package/dist/ui/components/InputBox.d.ts.map +1 -1
  91. package/dist/ui/components/InputBox.js +289 -207
  92. package/dist/ui/components/InputBox.js.map +1 -1
  93. package/dist/ui/components/MessageDisplay.d.ts.map +1 -1
  94. package/dist/ui/components/MessageDisplay.js +8 -15
  95. package/dist/ui/components/MessageDisplay.js.map +1 -1
  96. package/dist/ui/components/SlashCommandAutocomplete.d.ts +2 -0
  97. package/dist/ui/components/SlashCommandAutocomplete.d.ts.map +1 -1
  98. package/dist/ui/components/SlashCommandAutocomplete.js +19 -10
  99. package/dist/ui/components/SlashCommandAutocomplete.js.map +1 -1
  100. package/dist/ui/components/StatusBar.d.ts.map +1 -1
  101. package/dist/ui/components/StatusBar.js +4 -0
  102. package/dist/ui/components/StatusBar.js.map +1 -1
  103. package/dist/ui/components/ToolExecutionMessage.d.ts.map +1 -1
  104. package/dist/ui/components/ToolExecutionMessage.js +155 -41
  105. package/dist/ui/components/ToolExecutionMessage.js.map +1 -1
  106. package/dist/ui/components/ToolExecutionStatus.d.ts.map +1 -1
  107. package/dist/ui/components/ToolExecutionStatus.js +1 -0
  108. package/dist/ui/components/ToolExecutionStatus.js.map +1 -1
  109. package/dist/utils/chat-formatter.d.ts +12 -0
  110. package/dist/utils/chat-formatter.d.ts.map +1 -0
  111. package/dist/utils/chat-formatter.js +326 -0
  112. package/dist/utils/chat-formatter.js.map +1 -0
  113. package/dist/utils/command-history.d.ts.map +1 -1
  114. package/dist/utils/command-history.js +2 -1
  115. package/dist/utils/command-history.js.map +1 -1
  116. package/dist/utils/conversation-logger.d.ts +15 -0
  117. package/dist/utils/conversation-logger.d.ts.map +1 -1
  118. package/dist/utils/conversation-logger.js +56 -2
  119. package/dist/utils/conversation-logger.js.map +1 -1
  120. package/dist/utils/editor-utils.d.ts.map +1 -1
  121. package/dist/utils/editor-utils.js +3 -2
  122. package/dist/utils/editor-utils.js.map +1 -1
  123. package/dist/utils/input-classifier.d.ts.map +1 -1
  124. package/dist/utils/input-classifier.js +140 -20
  125. package/dist/utils/input-classifier.js.map +1 -1
  126. package/dist/utils/logger.d.ts.map +1 -1
  127. package/dist/utils/logger.js +31 -1
  128. package/dist/utils/logger.js.map +1 -1
  129. package/dist/utils/text-clipboard.d.ts +12 -0
  130. package/dist/utils/text-clipboard.d.ts.map +1 -0
  131. package/dist/utils/text-clipboard.js +63 -0
  132. package/dist/utils/text-clipboard.js.map +1 -0
  133. package/package.json +1 -2
  134. package/models-config.json +0 -126
@@ -11,6 +11,8 @@ import axios from 'axios';
11
11
  import { readFileSync, writeFileSync, mkdirSync, existsSync, unlinkSync } from 'fs';
12
12
  import { join } from 'path';
13
13
  import { homedir } from 'os';
14
+ import { IS_DEV_BUILD, DEV_BACKEND_URL, PRODUCTION_BACKEND_URL } from '../config/build-config.js';
15
+ import { logError } from '../utils/logger.js';
14
16
  /**
15
17
  * API Client class for communicating with the backend service
16
18
  */
@@ -34,11 +36,10 @@ class ApiClient {
34
36
  */
35
37
  getClient() {
36
38
  if (!this.client) {
37
- // Create axios instance with base configuration
38
- // Use production URL by default, only use localhost in development mode
39
- const baseURL = process.env.DEV_MODE === 'true'
40
- ? 'http://localhost:3002/api'
41
- : (process.env.BACKEND_URL || 'https://centaurus-backend-354715948975.asia-south1.run.app/api');
39
+ // Import build config - values frozen at compile time for security
40
+ // SECURITY: This prevents malicious .env files from overriding production URLs
41
+ // Use production URL in production builds, localhost only in dev builds
42
+ const baseURL = IS_DEV_BUILD ? DEV_BACKEND_URL : PRODUCTION_BACKEND_URL;
42
43
  this.client = axios.create({
43
44
  baseURL,
44
45
  timeout: 30000,
@@ -114,7 +115,7 @@ class ApiClient {
114
115
  this.sessionToken = token;
115
116
  }
116
117
  catch (error) {
117
- console.error('Failed to save session:', error);
118
+ logError('Failed to save session', error);
118
119
  throw new Error('Failed to save session locally');
119
120
  }
120
121
  }
@@ -299,40 +300,16 @@ class ApiClient {
299
300
  const response = await this.getClient().put('/settings', settings);
300
301
  return response.data.data;
301
302
  }
302
- // ==================== API Key Methods ====================
303
+ // ==================== Models Configuration Methods ====================
303
304
  /**
304
- * Store an encrypted API key
305
- * @param data - API key data including provider, name, and key value
306
- * @returns API key metadata (without the actual key)
305
+ * Get available AI models configuration from backend
306
+ * This is a public endpoint (no auth required)
307
+ * @returns Models configuration including all model variants and default model
307
308
  */
308
- async storeApiKey(data) {
309
- const response = await this.getClient().post('/api-keys', data);
309
+ async getModelsConfig() {
310
+ const response = await this.getClient().get('/models/config');
310
311
  return response.data.data;
311
312
  }
312
- /**
313
- * Get all API keys (metadata only, not actual keys)
314
- * @returns List of API key metadata
315
- */
316
- async getApiKeys() {
317
- const response = await this.getClient().get('/api-keys');
318
- return response.data.data;
319
- }
320
- /**
321
- * Decrypt and retrieve an API key for a specific provider
322
- * @param provider - The provider name
323
- * @returns Decrypted API key
324
- */
325
- async decryptApiKey(provider) {
326
- const response = await this.getClient().get(`/api-keys/${provider}/decrypt`);
327
- return response.data.data;
328
- }
329
- /**
330
- * Delete an API key
331
- * @param keyId - The API key ID
332
- */
333
- async deleteApiKey(keyId) {
334
- await this.getClient().delete(`/api-keys/${keyId}`);
335
- }
336
313
  // ==================== Classification Methods ====================
337
314
  /**
338
315
  * Classify user input to determine if it's a terminal command or AI message
@@ -376,6 +353,38 @@ class ApiClient {
376
353
  // This is a cleanup operation, so we don't want to block chat deletion
377
354
  }
378
355
  }
356
+ // ==================== Sync Methods ====================
357
+ /**
358
+ * Upload sync data (combined chat history and config)
359
+ * @param syncData - The combined data to sync
360
+ * @returns Upload result with version info
361
+ */
362
+ async uploadSyncData(syncData) {
363
+ const response = await this.getClient().post('/sync', { syncData });
364
+ return response.data.data;
365
+ }
366
+ /**
367
+ * Get sync data for the current user
368
+ * @returns Sync data or null if not found
369
+ */
370
+ async getSyncData() {
371
+ try {
372
+ const response = await this.getClient().get('/sync');
373
+ return response.data.data;
374
+ }
375
+ catch (error) {
376
+ if (error.response?.status === 404) {
377
+ return null;
378
+ }
379
+ throw error;
380
+ }
381
+ }
382
+ /**
383
+ * Delete sync data for the current user
384
+ */
385
+ async deleteSyncData() {
386
+ await this.getClient().delete('/sync');
387
+ }
379
388
  // ==================== Health Check ====================
380
389
  /**
381
390
  * Check backend service health
@@ -384,7 +393,8 @@ class ApiClient {
384
393
  async healthCheck() {
385
394
  // Health endpoint is at root level, not under /api
386
395
  // So we need to construct the full URL manually
387
- const baseURL = process.env.BACKEND_API_URL || 'http://localhost:3000/api';
396
+ // Use build config for URL (frozen at compile time)
397
+ const baseURL = IS_DEV_BUILD ? DEV_BACKEND_URL : PRODUCTION_BACKEND_URL;
388
398
  const healthURL = baseURL.replace('/api', '/health');
389
399
  const response = await axios.get(healthURL);
390
400
  return response.data.data;
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AACpF,OAAO,EAAE,IAAI,EAAW,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAyI9C;;GAEG;AACH,MAAM,SAAS;IACL,MAAM,GAAyB,IAAI,CAAC;IACpC,YAAY,GAAkB,IAAI,CAAC;IACnC,UAAU,CAAS;IACnB,SAAS,CAAS;IAE1B;QACE,yDAAyD;QACzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAEvD,qCAAqC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QAEnB,uDAAuD;QACvD,uDAAuD;IACzD,CAAC;IAED;;;OAGG;IACK,SAAS;QACf,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,mEAAmE;YACnE,+EAA+E;YAE/E,wEAAwE;YACxE,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,sBAAsB,CAAC;YAExE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBACzB,OAAO;gBACP,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;iBACnC;aACF,CAAC,CAAC;YAEH,wEAAwE;YACxE,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CACvC,CAAC,MAAM,EAAE,EAAE;gBACT,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;oBACtB,MAAM,CAAC,OAAO,CAAC,aAAa,GAAG,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;gBAC/D,CAAC;gBACD,OAAO,MAAM,CAAC;YAChB,CAAC,EACD,CAAC,KAAK,EAAE,EAAE;gBACR,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC/B,CAAC,CACF,CAAC;YAEF,oEAAoE;YACpE,IAAI,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CACxC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EACtB,KAAK,EAAE,KAAiB,EAAE,EAAE;gBAC1B,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;oBACnC,wBAAwB;oBACxB,IAAI,CAAC,YAAY,EAAE,CAAC;oBAEpB,oCAAoC;oBACpC,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;oBACtE,SAAS,CAAC,IAAI,GAAG,qBAAqB,CAAC;oBACvC,MAAM,SAAS,CAAC;gBAClB,CAAC;gBAED,mEAAmE;gBACnE,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;oBACzB,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAmB,CAAC;oBACpD,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;wBACnB,MAAM,WAAW,GAAG,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;wBACtD,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;wBACvC,MAAM,WAAW,CAAC;oBACpB,CAAC;gBACH,CAAC;gBAED,MAAM,KAAK,CAAC;YACd,CAAC,CACF,CAAC;QACJ,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACpD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;YACnD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6DAA6D;YAC7D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,KAAa,EAAE,SAAkB;QACnD,IAAI,CAAC;YACH,iCAAiC;YACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACjD,CAAC;YAED,oBAAoB;YACpB,MAAM,WAAW,GAAG;gBAClB,YAAY,EAAE,KAAK;gBACnB,SAAS,EAAE,SAAS,IAAI,IAAI;gBAC5B,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aAClC,CAAC;YAEF,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC9E,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,QAAQ,CAAC,wBAAwB,EAAE,KAAc,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,YAAY;QAClB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBAChC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sCAAsC;QACxC,CAAC;IACH,CAAC;IAED;;OAEG;IACI,eAAe;QACpB,OAAO,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC;IACpC,CAAC;IAED,mEAAmE;IAEnE;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,WAAmB;QACtC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAC1C,mBAAmB,EACnB,EAAE,WAAW,EAAE,CAChB,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,YAAY,CAAC,IAAY,EAAE,KAAa;QAC5C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAC1C,uBAAuB,EACvB,EAAE,IAAI,EAAE,KAAK,EAAE,CAChB,CAAC;QAEF,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;QACrC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;QAE5D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,eAAe,CAAC,YAAoB,EAAE,IAAU;QAC9C,0CAA0C;QAC1C,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC;QAC7B,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAE5C,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAC1C,eAAe,CAChB,CAAC;QAEF,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;QACxC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;QAElE,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC;gBAAS,CAAC;YACT,qDAAqD;YACrD,IAAI,CAAC,YAAY,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAA2B,UAAU,CAAC,CAAC;QAClF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;IAC7B,CAAC;IAED,iEAAiE;IAEjE;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CAAC,IAA+B;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAC1C,gBAAgB,EAChB,IAAI,CACL,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAKtB;QACC,MAAM,WAAW,GAAQ;YACvB,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC;YACvB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;SAC3B,CAAC;QAEF,IAAI,MAAM,EAAE,eAAe,KAAK,SAAS,EAAE,CAAC;YAC1C,WAAW,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QACvD,CAAC;QAED,IAAI,MAAM,EAAE,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3C,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CACzC,gBAAgB,EAChB,EAAE,MAAM,EAAE,WAAW,EAAE,CACxB,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,cAAsB;QAC1C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CACzC,kBAAkB,cAAc,EAAE,CACnC,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CACtB,cAAsB,EACtB,IAA+B;QAE/B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CACzC,kBAAkB,cAAc,EAAE,EAClC,IAAI,CACL,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,kBAAkB,CAAC,cAAsB;QAC7C,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,kBAAkB,cAAc,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,4DAA4D;IAE5D;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CACd,cAAsB,EACtB,OAA6B;QAE7B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAC1C,kBAAkB,cAAc,WAAW,EAC3C,OAAO,CACR,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CACf,cAAsB,EACtB,MAA0C;QAE1C,MAAM,WAAW,GAAG;YAClB,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC;YACvB,KAAK,EAAE,MAAM,EAAE,KAAK,IAAI,EAAE;SAC3B,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CACzC,kBAAkB,cAAc,WAAW,EAC3C,EAAE,MAAM,EAAE,WAAW,EAAE,CACxB,CAAC;QAEF,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,6DAA6D;IAE7D;;;OAGG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAA4B,WAAW,CAAC,CAAC;QACpF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,QAA+B;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CACzC,WAAW,EACX,QAAQ,CACT,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;IAC7B,CAAC;IAED,yEAAyE;IAEzE;;;;OAIG;IACH,KAAK,CAAC,eAAe;QACnB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAA4B,gBAAgB,CAAC,CAAC;QACzF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;IAC7B,CAAC;IAED,mEAAmE;IAEnE;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAC1C,WAAW,EACX,EAAE,IAAI,EAAE,CACT,CAAC;YACF,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC;QAC1C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,uDAAuD;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,gEAAgE;IAEhE;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU,CACd,cAAsB,EACtB,QAAgB,EAChB,QAAgB,EAChB,QAAgB;QAWhB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CASxC,eAAe,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1F,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;IAC7B,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,uBAAuB,CAAC,cAAsB;QAClD,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,uBAAuB,cAAc,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2EAA2E;YAC3E,uEAAuE;QACzE,CAAC;IACH,CAAC;IAED,yDAAyD;IAEzD;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,QAAa;QAKhC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAIxC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QAOf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,CAMvC,OAAO,CAAC,CAAC;YACb,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;QAC7B,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnC,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,yDAAyD;IAEzD;;;OAGG;IACH,KAAK,CAAC,WAAW;QAMf,mDAAmD;QACnD,gDAAgD;QAChD,oDAAoD;QACpD,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,sBAAsB,CAAC;QACxE,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAErD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAmB,SAAS,CAAC,CAAC;QAC9D,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAK,CAAC;IAC7B,CAAC;CACF;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,SAAS,EAAE,CAAC"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * Background Task Manager
3
+ *
4
+ * Manages background shell tasks, tracking their state and providing
5
+ * notifications when tasks start, complete, or are cancelled.
6
+ * Uses PTY for proper terminal emulation and signal handling.
7
+ */
8
+ import { EventEmitter } from 'events';
9
+ interface PtyProcess {
10
+ write: (data: string) => void;
11
+ resize: (cols: number, rows: number) => void;
12
+ kill: () => void;
13
+ onData: (callback: (data: string) => void) => void;
14
+ onExit: (callback: (e: {
15
+ exitCode: number;
16
+ }) => void) => void;
17
+ pid: number;
18
+ }
19
+ export interface RemotePtyProcess {
20
+ write: (data: string) => void;
21
+ kill: () => void;
22
+ resize: (cols: number, rows: number) => void;
23
+ isRunning: () => boolean;
24
+ }
25
+ export interface BackgroundTask {
26
+ id: string;
27
+ command: string;
28
+ cwd: string;
29
+ startTime: Date;
30
+ output: string;
31
+ isRunning: boolean;
32
+ exitCode?: number;
33
+ error?: string;
34
+ ptyProcess?: PtyProcess;
35
+ remotePtyProcess?: RemotePtyProcess;
36
+ remoteContext?: string;
37
+ }
38
+ export interface BackgroundTaskInfo {
39
+ id: string;
40
+ command: string;
41
+ cwd: string;
42
+ startTime: Date;
43
+ durationMs: number;
44
+ isRunning: boolean;
45
+ exitCode?: number;
46
+ error?: string;
47
+ outputPreview: string;
48
+ }
49
+ declare class BackgroundTaskManagerClass extends EventEmitter {
50
+ private tasks;
51
+ private taskCounter;
52
+ /**
53
+ * Start a new background task using PTY
54
+ */
55
+ startTask(command: string, cwd: string): string;
56
+ /**
57
+ * Start a new remote background task (SSH/WSL/Docker)
58
+ * This registers the task and returns callbacks that should be passed to the remote PTY creator
59
+ * @param command The command being executed
60
+ * @param cwd The working directory on the remote system
61
+ * @param remoteContext Display string for the remote context (e.g., "user@host", "wsl:Ubuntu")
62
+ * @returns Object with task ID and callbacks to pass to the remote PTY creator
63
+ */
64
+ startRemoteTask(command: string, cwd: string, remoteContext: string): {
65
+ id: string;
66
+ onData: (data: string) => void;
67
+ onExit: (exitCode: number) => void;
68
+ setRemotePty: (remotePty: RemotePtyProcess) => void;
69
+ };
70
+ /**
71
+ * Get all tasks (running and completed)
72
+ */
73
+ getAllTasks(): BackgroundTaskInfo[];
74
+ /**
75
+ * Get only running tasks
76
+ */
77
+ getRunningTasks(): BackgroundTaskInfo[];
78
+ /**
79
+ * Get the count of running tasks
80
+ */
81
+ getRunningCount(): number;
82
+ /**
83
+ * Get a specific task by ID
84
+ */
85
+ getTask(id: string): BackgroundTask | undefined;
86
+ /**
87
+ * Get task output (full output for streaming view)
88
+ */
89
+ getTaskOutput(id: string): string;
90
+ /**
91
+ * Send input to a running background task (via PTY or remote PTY)
92
+ */
93
+ sendInput(id: string, input: string): boolean;
94
+ /**
95
+ * Send a signal to a running background task (via PTY or remote PTY)
96
+ * For PTY, we send control characters directly - same as normal shell focus mode
97
+ */
98
+ sendSignal(id: string, signal: NodeJS.Signals): boolean;
99
+ /**
100
+ * Cancel a running task (via PTY or remote PTY)
101
+ */
102
+ cancelTask(id: string): boolean;
103
+ /**
104
+ * Clear completed tasks from the list
105
+ */
106
+ clearCompleted(): void;
107
+ /**
108
+ * Check if a task is running
109
+ */
110
+ isTaskRunning(id: string): boolean;
111
+ }
112
+ export declare const BackgroundTaskManager: BackgroundTaskManagerClass;
113
+ export {};
114
+ //# sourceMappingURL=background-task-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-task-manager.d.ts","sourceRoot":"","sources":["../../src/services/background-task-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,301 @@
1
+ /**
2
+ * Background Task Manager
3
+ *
4
+ * Manages background shell tasks, tracking their state and providing
5
+ * notifications when tasks start, complete, or are cancelled.
6
+ * Uses PTY for proper terminal emulation and signal handling.
7
+ */
8
+ import { EventEmitter } from 'events';
9
+ import * as os from 'os';
10
+ import { createRequire } from 'module';
11
+ // Use createRequire for ESM compatibility with native modules
12
+ const require = createRequire(import.meta.url);
13
+ const nodePty = require('@homebridge/node-pty-prebuilt-multiarch');
14
+ import { quickLog } from '../utils/conversation-logger.js';
15
+ class BackgroundTaskManagerClass extends EventEmitter {
16
+ tasks = new Map();
17
+ taskCounter = 0;
18
+ /**
19
+ * Start a new background task using PTY
20
+ */
21
+ startTask(command, cwd) {
22
+ const id = `bkg-${++this.taskCounter}-${Date.now()}`;
23
+ const task = {
24
+ id,
25
+ command,
26
+ cwd,
27
+ startTime: new Date(),
28
+ output: '',
29
+ isRunning: true,
30
+ };
31
+ // Determine shell based on platform
32
+ const isWindows = os.platform() === 'win32';
33
+ const shell = isWindows ? 'powershell.exe' : (process.env.SHELL || '/bin/bash');
34
+ const args = isWindows ? ['-Command', command] : ['-c', command];
35
+ // Get initial terminal dimensions
36
+ const cols = process.stdout.columns || 80;
37
+ const rows = process.stdout.rows || 24;
38
+ try {
39
+ // Spawn PTY process for proper terminal emulation
40
+ const ptyProcess = nodePty.spawn(shell, args, {
41
+ name: 'xterm-256color',
42
+ cols,
43
+ rows,
44
+ cwd,
45
+ env: {
46
+ ...process.env,
47
+ TERM: 'xterm-256color',
48
+ COLORTERM: 'truecolor',
49
+ FORCE_COLOR: '1',
50
+ CLICOLOR: '1',
51
+ PYTHONUNBUFFERED: '1',
52
+ },
53
+ });
54
+ task.ptyProcess = ptyProcess;
55
+ // Capture output
56
+ ptyProcess.onData((data) => {
57
+ task.output += data;
58
+ this.emit('taskOutput', id, data);
59
+ });
60
+ // Handle process completion
61
+ ptyProcess.onExit(({ exitCode }) => {
62
+ task.isRunning = false;
63
+ task.exitCode = exitCode;
64
+ // Debug logging
65
+ const fs = require('fs');
66
+ try {
67
+ quickLog(`[${new Date().toISOString()}] [BackgroundTaskManager] taskCompleted event emitted: id=${id}, exitCode=${exitCode}\n`);
68
+ }
69
+ catch (e) { }
70
+ this.emit('taskCompleted', id, exitCode);
71
+ this.emit('countChanged', this.getRunningCount());
72
+ });
73
+ this.tasks.set(id, task);
74
+ this.emit('taskStarted', id, command);
75
+ this.emit('countChanged', this.getRunningCount());
76
+ return id;
77
+ }
78
+ catch (err) {
79
+ task.isRunning = false;
80
+ task.error = err.message;
81
+ this.tasks.set(id, task);
82
+ this.emit('taskError', id, err.message);
83
+ return id;
84
+ }
85
+ }
86
+ /**
87
+ * Start a new remote background task (SSH/WSL/Docker)
88
+ * This registers the task and returns callbacks that should be passed to the remote PTY creator
89
+ * @param command The command being executed
90
+ * @param cwd The working directory on the remote system
91
+ * @param remoteContext Display string for the remote context (e.g., "user@host", "wsl:Ubuntu")
92
+ * @returns Object with task ID and callbacks to pass to the remote PTY creator
93
+ */
94
+ startRemoteTask(command, cwd, remoteContext) {
95
+ const id = `bkg-${++this.taskCounter}-${Date.now()}`;
96
+ const task = {
97
+ id,
98
+ command,
99
+ cwd,
100
+ startTime: new Date(),
101
+ output: '',
102
+ isRunning: true,
103
+ remoteContext
104
+ };
105
+ this.tasks.set(id, task);
106
+ this.emit('taskStarted', id, command);
107
+ this.emit('countChanged', this.getRunningCount());
108
+ // Return callbacks that the caller should pass to runSSHCommand/runWSLCommand/runDockerCommand
109
+ return {
110
+ id,
111
+ onData: (data) => {
112
+ task.output += data;
113
+ this.emit('taskOutput', id, data);
114
+ },
115
+ onExit: (exitCode) => {
116
+ task.isRunning = false;
117
+ task.exitCode = exitCode;
118
+ // Debug logging
119
+ const fs = require('fs');
120
+ try {
121
+ quickLog(`[${new Date().toISOString()}] [BackgroundTaskManager] Remote taskCompleted event emitted: id=${id}, exitCode=${exitCode}\n`);
122
+ }
123
+ catch (e) { }
124
+ this.emit('taskCompleted', id, exitCode);
125
+ this.emit('countChanged', this.getRunningCount());
126
+ },
127
+ setRemotePty: (remotePty) => {
128
+ task.remotePtyProcess = remotePty;
129
+ }
130
+ };
131
+ }
132
+ /**
133
+ * Get all tasks (running and completed)
134
+ */
135
+ getAllTasks() {
136
+ const now = Date.now();
137
+ return Array.from(this.tasks.values()).map(task => ({
138
+ id: task.id,
139
+ command: task.command,
140
+ cwd: task.cwd,
141
+ startTime: task.startTime,
142
+ durationMs: now - task.startTime.getTime(),
143
+ isRunning: task.isRunning,
144
+ exitCode: task.exitCode,
145
+ error: task.error,
146
+ outputPreview: task.output.slice(-200), // Last 200 chars
147
+ }));
148
+ }
149
+ /**
150
+ * Get only running tasks
151
+ */
152
+ getRunningTasks() {
153
+ return this.getAllTasks().filter(t => t.isRunning);
154
+ }
155
+ /**
156
+ * Get the count of running tasks
157
+ */
158
+ getRunningCount() {
159
+ let count = 0;
160
+ for (const task of this.tasks.values()) {
161
+ if (task.isRunning)
162
+ count++;
163
+ }
164
+ return count;
165
+ }
166
+ /**
167
+ * Get a specific task by ID
168
+ */
169
+ getTask(id) {
170
+ return this.tasks.get(id);
171
+ }
172
+ /**
173
+ * Get task output (full output for streaming view)
174
+ */
175
+ getTaskOutput(id) {
176
+ return this.tasks.get(id)?.output || '';
177
+ }
178
+ /**
179
+ * Send input to a running background task (via PTY or remote PTY)
180
+ */
181
+ sendInput(id, input) {
182
+ const task = this.tasks.get(id);
183
+ // Debug logging
184
+ const fs = require('fs');
185
+ try {
186
+ quickLog(`[${new Date().toISOString()}] [BackgroundTaskManager.sendInput] taskId: ${id}, input: ${JSON.stringify(input)}, taskFound: ${!!task}, isRunning: ${task?.isRunning}, hasPty: ${!!task?.ptyProcess}, hasRemotePty: ${!!task?.remotePtyProcess}\n`);
187
+ }
188
+ catch (e) { }
189
+ if (!task || !task.isRunning) {
190
+ return false;
191
+ }
192
+ try {
193
+ // Handle local PTY
194
+ if (task.ptyProcess) {
195
+ task.ptyProcess.write(input);
196
+ return true;
197
+ }
198
+ // Handle remote PTY (SSH/WSL/Docker)
199
+ if (task.remotePtyProcess) {
200
+ task.remotePtyProcess.write(input);
201
+ return true;
202
+ }
203
+ return false;
204
+ }
205
+ catch (err) {
206
+ return false;
207
+ }
208
+ }
209
+ /**
210
+ * Send a signal to a running background task (via PTY or remote PTY)
211
+ * For PTY, we send control characters directly - same as normal shell focus mode
212
+ */
213
+ sendSignal(id, signal) {
214
+ const task = this.tasks.get(id);
215
+ if (!task || !task.isRunning) {
216
+ return false;
217
+ }
218
+ try {
219
+ // Handle local PTY
220
+ if (task.ptyProcess) {
221
+ if (signal === 'SIGINT') {
222
+ task.ptyProcess.write('\x03'); // Ctrl+C
223
+ setTimeout(() => {
224
+ if (task.isRunning && task.ptyProcess) {
225
+ task.ptyProcess.kill();
226
+ }
227
+ }, 500);
228
+ }
229
+ else {
230
+ task.ptyProcess.kill();
231
+ }
232
+ return true;
233
+ }
234
+ // Handle remote PTY (SSH/WSL/Docker)
235
+ if (task.remotePtyProcess) {
236
+ if (signal === 'SIGINT') {
237
+ task.remotePtyProcess.write('\x03'); // Ctrl+C
238
+ setTimeout(() => {
239
+ if (task.isRunning && task.remotePtyProcess) {
240
+ task.remotePtyProcess.kill();
241
+ }
242
+ }, 500);
243
+ }
244
+ else {
245
+ task.remotePtyProcess.kill();
246
+ }
247
+ return true;
248
+ }
249
+ return false;
250
+ }
251
+ catch (err) {
252
+ return false;
253
+ }
254
+ }
255
+ /**
256
+ * Cancel a running task (via PTY or remote PTY)
257
+ */
258
+ cancelTask(id) {
259
+ const task = this.tasks.get(id);
260
+ if (!task || !task.isRunning) {
261
+ return false;
262
+ }
263
+ try {
264
+ // Handle local PTY
265
+ if (task.ptyProcess) {
266
+ task.ptyProcess.kill();
267
+ }
268
+ // Handle remote PTY (SSH/WSL/Docker)
269
+ if (task.remotePtyProcess) {
270
+ task.remotePtyProcess.kill();
271
+ }
272
+ task.isRunning = false;
273
+ task.error = 'Cancelled by user';
274
+ this.emit('taskCancelled', id);
275
+ this.emit('countChanged', this.getRunningCount());
276
+ return true;
277
+ }
278
+ catch (err) {
279
+ return false;
280
+ }
281
+ }
282
+ /**
283
+ * Clear completed tasks from the list
284
+ */
285
+ clearCompleted() {
286
+ for (const [id, task] of this.tasks.entries()) {
287
+ if (!task.isRunning) {
288
+ this.tasks.delete(id);
289
+ }
290
+ }
291
+ }
292
+ /**
293
+ * Check if a task is running
294
+ */
295
+ isTaskRunning(id) {
296
+ return this.tasks.get(id)?.isRunning ?? false;
297
+ }
298
+ }
299
+ // Singleton instance
300
+ export const BackgroundTaskManager = new BackgroundTaskManagerClass();
301
+ //# sourceMappingURL=background-task-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-task-manager.js","sourceRoot":"","sources":["../../src/services/background-task-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export declare class ConnectivityManager {
2
+ private static instance;
3
+ private isConnected;
4
+ private checkInterval;
5
+ private listeners;
6
+ private lastCheck;
7
+ private CACHE_TTL_MS;
8
+ private POLLING_INTERVAL_MS;
9
+ private constructor();
10
+ static getInstance(): ConnectivityManager;
11
+ private startPolling;
12
+ stopPolling(): void;
13
+ checkConnection(): Promise<boolean>;
14
+ private updateStatus;
15
+ subscribe(listener: (isConnected: boolean) => void): () => void;
16
+ private notifyListeners;
17
+ }
18
+ //# sourceMappingURL=connectivity-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectivity-manager.d.ts","sourceRoot":"","sources":["../../src/services/connectivity-manager.ts"],"names":[],"mappings":"AAGA,qBAAa,mBAAmB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,WAAW,CAAiB;IACpC,OAAO,CAAC,aAAa,CAA+B;IACpD,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,OAAO;WAOO,WAAW,IAAI,mBAAmB;IAOhD,OAAO,CAAC,YAAY;IAOb,WAAW;IAOL,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAoBhD,OAAO,CAAC,YAAY;IAOb,SAAS,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI;IAUtE,OAAO,CAAC,eAAe;CAG1B"}