@blackbox_ai/blackbox-cli 0.9.2 → 1.0.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.
Files changed (153) hide show
  1. package/dist/assets/notification.mp3 +0 -0
  2. package/dist/package.json +2 -2
  3. package/dist/src/commands/voice.js +39 -34
  4. package/dist/src/commands/voice.js.map +1 -1
  5. package/dist/src/config/config.js +1 -4
  6. package/dist/src/config/config.js.map +1 -1
  7. package/dist/src/config/settings.d.ts +2 -0
  8. package/dist/src/config/settings.js +22 -1
  9. package/dist/src/config/settings.js.map +1 -1
  10. package/dist/src/config/settingsSchema.d.ts +36 -7
  11. package/dist/src/config/settingsSchema.js +35 -8
  12. package/dist/src/config/settingsSchema.js.map +1 -1
  13. package/dist/src/gemini.js +25 -20
  14. package/dist/src/gemini.js.map +1 -1
  15. package/dist/src/generated/git-commit.d.ts +2 -2
  16. package/dist/src/generated/git-commit.js +2 -2
  17. package/dist/src/services/BuiltinCommandLoader.js +2 -2
  18. package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
  19. package/dist/src/services/agentExecutor.d.ts +5 -0
  20. package/dist/src/services/agentExecutor.js +6 -2
  21. package/dist/src/services/agentExecutor.js.map +1 -1
  22. package/dist/src/services/voiceRecordingService.d.ts +13 -1
  23. package/dist/src/services/voiceRecordingService.js +38 -5
  24. package/dist/src/services/voiceRecordingService.js.map +1 -1
  25. package/dist/src/ui/App.js +255 -20
  26. package/dist/src/ui/App.js.map +1 -1
  27. package/dist/src/ui/commands/agentCommand.js +134 -43
  28. package/dist/src/ui/commands/agentCommand.js.map +1 -1
  29. package/dist/src/ui/commands/modelCommand.js +15 -2
  30. package/dist/src/ui/commands/modelCommand.js.map +1 -1
  31. package/dist/src/ui/commands/quitCommand.js +5 -0
  32. package/dist/src/ui/commands/quitCommand.js.map +1 -1
  33. package/dist/src/ui/commands/subAgentsCommand.d.ts +7 -0
  34. package/dist/src/ui/commands/subAgentsCommand.js +32 -0
  35. package/dist/src/ui/commands/subAgentsCommand.js.map +1 -0
  36. package/dist/src/ui/commands/types.d.ts +14 -3
  37. package/dist/src/ui/commands/types.js.map +1 -1
  38. package/dist/src/ui/commands/voiceCommand.js +70 -34
  39. package/dist/src/ui/commands/voiceCommand.js.map +1 -1
  40. package/dist/src/ui/commands/voiceCommand.test.d.ts +6 -0
  41. package/dist/src/ui/commands/voiceCommand.test.js +131 -0
  42. package/dist/src/ui/commands/voiceCommand.test.js.map +1 -0
  43. package/dist/src/ui/components/AgentModelSelector.js +1 -1
  44. package/dist/src/ui/components/AgentModelSelector.js.map +1 -1
  45. package/dist/src/ui/components/AgentSetDialog.d.ts +15 -0
  46. package/dist/src/ui/components/AgentSetDialog.js +52 -0
  47. package/dist/src/ui/components/AgentSetDialog.js.map +1 -0
  48. package/dist/src/ui/components/ApiKeyInputDialog.d.ts +17 -0
  49. package/dist/src/ui/components/ApiKeyInputDialog.js +44 -0
  50. package/dist/src/ui/components/ApiKeyInputDialog.js.map +1 -0
  51. package/dist/src/ui/components/AuthDialog.js +32 -46
  52. package/dist/src/ui/components/AuthDialog.js.map +1 -1
  53. package/dist/src/ui/components/Footer.d.ts +6 -0
  54. package/dist/src/ui/components/Footer.js +17 -2
  55. package/dist/src/ui/components/Footer.js.map +1 -1
  56. package/dist/src/ui/components/GenericProviderKeyPrompt.js +1 -1
  57. package/dist/src/ui/components/GenericProviderKeyPrompt.js.map +1 -1
  58. package/dist/src/ui/components/Header.js +2 -9
  59. package/dist/src/ui/components/Header.js.map +1 -1
  60. package/dist/src/ui/components/HistoryBrowserDialog.js +2 -1
  61. package/dist/src/ui/components/HistoryBrowserDialog.js.map +1 -1
  62. package/dist/src/ui/components/InputPrompt.js +3 -1
  63. package/dist/src/ui/components/InputPrompt.js.map +1 -1
  64. package/dist/src/ui/components/MemoryUsageDisplay.js +41 -8
  65. package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
  66. package/dist/src/ui/components/SettingsDialog.js +4 -3
  67. package/dist/src/ui/components/SettingsDialog.js.map +1 -1
  68. package/dist/src/ui/components/SuggestionsDisplay.js +3 -2
  69. package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
  70. package/dist/src/ui/components/Tips.js +1 -1
  71. package/dist/src/ui/components/Tips.js.map +1 -1
  72. package/dist/src/ui/components/agents/SingleAgentDialog.d.ts +7 -4
  73. package/dist/src/ui/components/agents/SingleAgentDialog.js +135 -63
  74. package/dist/src/ui/components/agents/SingleAgentDialog.js.map +1 -1
  75. package/dist/src/ui/components/messages/DiffRenderer.js +1 -9
  76. package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
  77. package/dist/src/ui/components/messages/ErrorMessage.js +2 -1
  78. package/dist/src/ui/components/messages/ErrorMessage.js.map +1 -1
  79. package/dist/src/ui/components/messages/InfoMessage.js +2 -1
  80. package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
  81. package/dist/src/ui/components/messages/ToolGroupMessage.js +4 -1
  82. package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
  83. package/dist/src/ui/components/messages/UserMessage.js +1 -2
  84. package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
  85. package/dist/src/ui/components/shared/RadioButtonSelect.js +14 -4
  86. package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
  87. package/dist/src/ui/contexts/SessionContext.d.ts +18 -0
  88. package/dist/src/ui/contexts/SessionContext.js +25 -1
  89. package/dist/src/ui/contexts/SessionContext.js.map +1 -1
  90. package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -2
  91. package/dist/src/ui/hooks/slashCommandProcessor.js +54 -2
  92. package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
  93. package/dist/src/ui/hooks/useAgentCommandProcessor.d.ts +12 -2
  94. package/dist/src/ui/hooks/useAgentCommandProcessor.js +169 -4
  95. package/dist/src/ui/hooks/useAgentCommandProcessor.js.map +1 -1
  96. package/dist/src/ui/hooks/useAuthCommand.d.ts +2 -1
  97. package/dist/src/ui/hooks/useAuthCommand.js +22 -2
  98. package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
  99. package/dist/src/ui/hooks/useDialogClose.d.ts +2 -0
  100. package/dist/src/ui/hooks/useDialogClose.js +5 -0
  101. package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
  102. package/dist/src/ui/hooks/useEncryptedStream.d.ts +2 -1
  103. package/dist/src/ui/hooks/useEncryptedStream.js +17 -4
  104. package/dist/src/ui/hooks/useEncryptedStream.js.map +1 -1
  105. package/dist/src/ui/hooks/useGeminiStream.js +216 -21
  106. package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
  107. package/dist/src/ui/hooks/useInputBoxColor.d.ts +13 -0
  108. package/dist/src/ui/hooks/useInputBoxColor.js +62 -0
  109. package/dist/src/ui/hooks/useInputBoxColor.js.map +1 -0
  110. package/dist/src/ui/hooks/useMessageQueue.d.ts +7 -1
  111. package/dist/src/ui/hooks/useMessageQueue.js +9 -3
  112. package/dist/src/ui/hooks/useMessageQueue.js.map +1 -1
  113. package/dist/src/ui/utils/agentConversationUtils.d.ts +28 -0
  114. package/dist/src/ui/utils/agentConversationUtils.js +71 -0
  115. package/dist/src/ui/utils/agentConversationUtils.js.map +1 -0
  116. package/dist/src/ui/utils/colorBlend.d.ts +33 -0
  117. package/dist/src/ui/utils/colorBlend.js +61 -0
  118. package/dist/src/ui/utils/colorBlend.js.map +1 -0
  119. package/dist/src/ui/utils/commandUtils.d.ts +2 -1
  120. package/dist/src/ui/utils/commandUtils.js +14 -1
  121. package/dist/src/ui/utils/commandUtils.js.map +1 -1
  122. package/dist/src/ui/utils/commandUtils.test.js +25 -0
  123. package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
  124. package/dist/src/ui/utils/terminalBackgroundDetector.d.ts +16 -0
  125. package/dist/src/ui/utils/terminalBackgroundDetector.js +124 -23
  126. package/dist/src/ui/utils/terminalBackgroundDetector.js.map +1 -1
  127. package/dist/src/utils/agentCommandBuilder.d.ts +16 -4
  128. package/dist/src/utils/agentCommandBuilder.js +66 -26
  129. package/dist/src/utils/agentCommandBuilder.js.map +1 -1
  130. package/dist/src/utils/apiKeyUtils.d.ts +47 -0
  131. package/dist/src/utils/apiKeyUtils.js +177 -0
  132. package/dist/src/utils/apiKeyUtils.js.map +1 -0
  133. package/dist/src/utils/backgroundUpdateCheck.js +104 -7
  134. package/dist/src/utils/backgroundUpdateCheck.js.map +1 -1
  135. package/dist/src/utils/memoryManager.d.ts +85 -0
  136. package/dist/src/utils/memoryManager.js +258 -0
  137. package/dist/src/utils/memoryManager.js.map +1 -0
  138. package/dist/src/utils/memoryMonitor.d.ts +89 -0
  139. package/dist/src/utils/memoryMonitor.js +238 -0
  140. package/dist/src/utils/memoryMonitor.js.map +1 -0
  141. package/dist/src/utils/memoryWrapper.d.ts +18 -0
  142. package/dist/src/utils/memoryWrapper.js +62 -0
  143. package/dist/src/utils/memoryWrapper.js.map +1 -0
  144. package/dist/src/utils/preLaunchUpdateCheck.js +17 -7
  145. package/dist/src/utils/preLaunchUpdateCheck.js.map +1 -1
  146. package/dist/src/utils/soundNotification.d.ts +15 -0
  147. package/dist/src/utils/soundNotification.js +138 -0
  148. package/dist/src/utils/soundNotification.js.map +1 -0
  149. package/dist/src/utils/versionStorage.d.ts +20 -0
  150. package/dist/src/utils/versionStorage.js +62 -0
  151. package/dist/src/utils/versionStorage.js.map +1 -1
  152. package/dist/tsconfig.tsbuildinfo +1 -1
  153. package/package.json +2 -2
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { spawn } from 'node:child_process';
7
+ import { MemoryManager } from './memoryManager.js';
8
+ /**
9
+ * Environment variable to prevent infinite relaunching
10
+ */
11
+ const NO_RELAUNCH_ENV = 'BLACKBOX_CLI_NO_RELAUNCH';
12
+ /**
13
+ * Check if we need to relaunch with better memory settings
14
+ */
15
+ export function shouldRelaunchWithMemory() {
16
+ // Skip if already relaunched or explicitly disabled
17
+ if (process.env[NO_RELAUNCH_ENV] || process.env['GEMINI_CLI_NO_RELAUNCH']) {
18
+ return false;
19
+ }
20
+ // Get optimal memory args
21
+ const memoryArgs = MemoryManager.getOptimalHeapArgs();
22
+ return memoryArgs.length > 0;
23
+ }
24
+ /**
25
+ * Relaunch the process with optimal memory settings
26
+ */
27
+ export async function relaunchWithOptimalMemory() {
28
+ const memoryArgs = MemoryManager.getOptimalHeapArgs();
29
+ if (memoryArgs.length === 0) {
30
+ throw new Error('No memory optimization needed');
31
+ }
32
+ const nodeArgs = [...memoryArgs, ...process.argv.slice(1)];
33
+ const newEnv = {
34
+ ...process.env,
35
+ [NO_RELAUNCH_ENV]: 'true',
36
+ // Also set the legacy env var for compatibility
37
+ GEMINI_CLI_NO_RELAUNCH: 'true'
38
+ };
39
+ const child = spawn(process.execPath, nodeArgs, {
40
+ stdio: 'inherit',
41
+ env: newEnv,
42
+ });
43
+ // Wait for child process to complete
44
+ const exitCode = await new Promise((resolve) => {
45
+ child.on('close', (code) => resolve(code || 0));
46
+ child.on('error', (error) => {
47
+ console.error('Failed to relaunch with memory optimization:', error);
48
+ resolve(1);
49
+ });
50
+ });
51
+ process.exit(exitCode);
52
+ }
53
+ /**
54
+ * Ensure the process is running with optimal memory settings
55
+ * This should be called early in the application startup
56
+ */
57
+ export async function ensureOptimalMemory() {
58
+ if (shouldRelaunchWithMemory()) {
59
+ await relaunchWithOptimalMemory();
60
+ }
61
+ }
62
+ //# sourceMappingURL=memoryWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memoryWrapper.js","sourceRoot":"","sources":["../../../src/utils/memoryWrapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,MAAM,eAAe,GAAG,0BAA0B,CAAC;AAEnD;;GAEG;AACH,MAAM,UAAU,wBAAwB;IACtC,oDAAoD;IACpD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,EAAE,CAAC;QAC1E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,0BAA0B;IAC1B,MAAM,UAAU,GAAG,aAAa,CAAC,kBAAkB,EAAE,CAAC;IACtD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB;IAC7C,MAAM,UAAU,GAAG,aAAa,CAAC,kBAAkB,EAAE,CAAC;IAEtD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG;QACb,GAAG,OAAO,CAAC,GAAG;QACd,CAAC,eAAe,CAAC,EAAE,MAAM;QACzB,gDAAgD;QAChD,sBAAsB,EAAE,MAAM;KAC/B,CAAC;IACF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE;QAC9C,KAAK,EAAE,SAAS;QAChB,GAAG,EAAE,MAAM;KACZ,CAAC,CAAC;IAEH,qCAAqC;IACrC,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACrD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;QAChD,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YAC1B,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;YACrE,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,IAAI,wBAAwB,EAAE,EAAE,CAAC;QAC/B,MAAM,yBAAyB,EAAE,CAAC;IACpC,CAAC;AACH,CAAC"}
@@ -44,27 +44,37 @@ export async function preLaunchUpdateCheck() {
44
44
  return;
45
45
  }
46
46
  // Pending update found - perform update with visible logs
47
- console.log(`\n🚀 Installing Blackbox CLI update to ${pendingUpdate.version}...`);
47
+ console.log(`\nInstalling Blackbox CLI update to ${pendingUpdate.version}...`);
48
48
  console.log('This will only take a moment...\n');
49
- const updateCommand = 'curl -fsSL https://shell.blackbox.ai/api/scripts/blackbox-cli-v2/download.sh | CONFIGURE=false bash';
49
+ // For automatic updates (background check), always restart in interactive mode
50
+ // No arguments, no session preservation - just a simple restart
51
+ const updateCommand = process.platform === 'win32'
52
+ ? 'powershell -ExecutionPolicy Bypass -Command "& { $env:AUTO_RESTART=\'true\'; $env:CONFIGURE=\'false\'; Invoke-Expression (Invoke-WebRequest -Uri \'https://shell.blackbox.ai/api/scripts/blackbox-cli-v2/download.ps1\' -UseBasicParsing).Content }"'
53
+ : 'NO_COLOR=1 curl -fsSL https://shell.blackbox.ai/api/scripts/blackbox-cli-v2/download.sh | NO_COLOR=1 CONFIGURE=false AUTO_RESTART=true bash';
50
54
  try {
51
55
  // Run update synchronously and show output to user
52
56
  execSync(updateCommand, {
53
57
  stdio: 'inherit', // Show installation logs to user
54
- env: { ...process.env, CONFIGURE: 'false' },
58
+ env: {
59
+ ...process.env,
60
+ NO_COLOR: '1',
61
+ CONFIGURE: 'false',
62
+ AUTO_RESTART: 'true',
63
+ },
64
+ shell: process.platform === 'win32' ? 'powershell.exe' : undefined,
55
65
  });
56
66
  // Clear the pending update file
57
67
  clearPendingUpdate();
58
- console.log(`\n✅ Successfully updated to version ${pendingUpdate.version}!`);
59
- console.log(`Please run the blackbox command again to use the new version.\n`);
60
- // Exit cleanly after update - user needs to run command again
68
+ console.log(`\nSuccessfully updated to version ${pendingUpdate.version}!`);
69
+ console.log(`Restarting Blackbox CLI...\n`);
70
+ // Exit cleanly after update - installer will restart the CLI in interactive mode
61
71
  process.exit(0);
62
72
  }
63
73
  catch (_error) {
64
74
  // Update failed - clear pending update and continue with current version
65
75
  clearPendingUpdate();
66
76
  console.error('\n⚠️ Update failed. Continuing with current version...');
67
- console.error('💡 You can try updating manually with: blackbox update\n');
77
+ console.error('You can try updating manually with: blackbox update\n');
68
78
  // Don't block CLI startup on update failure
69
79
  }
70
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"preLaunchUpdateCheck.js","sourceRoot":"","sources":["../../../src/utils/preLaunchUpdateCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,4CAA4C;IAC5C,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,mEAAmE;QACnE,wEAAwE;QACxE,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,iDAAiD;YACjD,kEAAkE;YAClE,OAAO;QACT,CAAC;QAED,uDAAuD;QACvD,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,kBAAkB,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;YACtD,6DAA6D;YAC7D,kBAAkB,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,0DAA0D;QAC1D,OAAO,CAAC,GAAG,CAAC,0CAA0C,aAAa,CAAC,OAAO,KAAK,CAAC,CAAC;QAClF,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QAEjD,MAAM,aAAa,GAAG,qGAAqG,CAAC;QAE5H,IAAI,CAAC;YACH,mDAAmD;YACnD,QAAQ,CAAC,aAAa,EAAE;gBACtB,KAAK,EAAE,SAAS,EAAE,iCAAiC;gBACnD,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE;aAC5C,CAAC,CAAC;YAEH,gCAAgC;YAChC,kBAAkB,EAAE,CAAC;YAErB,OAAO,CAAC,GAAG,CAAC,uCAAuC,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,CAAC,iEAAiE,CAAC,CAAC;YAE/E,8DAA8D;YAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,yEAAyE;YACzE,kBAAkB,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACzE,OAAO,CAAC,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC1E,4CAA4C;QAC9C,CAAC;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,wDAAwD;IAC1D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"preLaunchUpdateCheck.js","sourceRoot":"","sources":["../../../src/utils/preLaunchUpdateCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,4CAA4C;IAC5C,IAAI,CAAC,yBAAyB,EAAE,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,mEAAmE;QACnE,wEAAwE;QACxE,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC;QAC1C,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,iDAAiD;YACjD,kEAAkE;YAClE,OAAO;QACT,CAAC;QAED,uDAAuD;QACvD,MAAM,cAAc,GAAG,MAAM,iBAAiB,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,kBAAkB,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,CAAC;YACtD,6DAA6D;YAC7D,kBAAkB,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,0DAA0D;QAC1D,OAAO,CAAC,GAAG,CAAC,uCAAuC,aAAa,CAAC,OAAO,KAAK,CAAC,CAAC;QAC/E,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;QAEjD,+EAA+E;QAC/E,gEAAgE;QAChE,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,KAAK,OAAO;YAChD,CAAC,CAAC,sPAAsP;YACxP,CAAC,CAAC,6IAA6I,CAAC;QAElJ,IAAI,CAAC;YACH,mDAAmD;YACnD,QAAQ,CAAC,aAAa,EAAE;gBACtB,KAAK,EAAE,SAAS,EAAE,iCAAiC;gBACnD,GAAG,EAAE;oBACH,GAAG,OAAO,CAAC,GAAG;oBACd,QAAQ,EAAE,GAAG;oBACb,SAAS,EAAE,OAAO;oBAClB,YAAY,EAAE,MAAM;iBACrB;gBACD,KAAK,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;aACnE,CAAC,CAAC;YAEH,gCAAgC;YAChC,kBAAkB,EAAE,CAAC;YAErB,OAAO,CAAC,GAAG,CAAC,qCAAqC,aAAa,CAAC,OAAO,GAAG,CAAC,CAAC;YAC3E,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAE5C,iFAAiF;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAElB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,yEAAyE;YACzE,kBAAkB,EAAE,CAAC;YACrB,OAAO,CAAC,KAAK,CAAC,yDAAyD,CAAC,CAAC;YACzE,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;YACvE,4CAA4C;QAC9C,CAAC;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,wDAAwD;IAC1D,CAAC;AACH,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Play the completion notification sound
8
+ * This function is non-blocking and will not throw errors
9
+ */
10
+ export declare function playCompletionSound(): Promise<void>;
11
+ /**
12
+ * Play the completion notification sound without waiting for it to finish
13
+ * This is a fire-and-forget version that returns immediately
14
+ */
15
+ export declare function playCompletionSoundAsync(): void;
@@ -0,0 +1,138 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { spawn } from 'node:child_process';
7
+ import { platform } from 'node:os';
8
+ import path from 'node:path';
9
+ import { fileURLToPath } from 'node:url';
10
+ import fs from 'node:fs';
11
+ const __filename = fileURLToPath(import.meta.url);
12
+ const __dirname = path.dirname(__filename);
13
+ /**
14
+ * Get the path to the notification sound file
15
+ */
16
+ function getNotificationSoundPath() {
17
+ // The notification.mp3 is in packages/cli/assets/
18
+ // When running from source: packages/cli/src/utils -> packages/cli/assets
19
+ // When running from build: packages/cli/dist/utils -> packages/cli/assets
20
+ // Try relative to __dirname first (works for both source and built)
21
+ const relativePath = path.resolve(__dirname, '../../assets/notification.mp3');
22
+ if (fs.existsSync(relativePath)) {
23
+ return relativePath;
24
+ }
25
+ // Fallback: try one level up (in case directory structure is different)
26
+ const fallbackPath = path.resolve(__dirname, '../assets/notification.mp3');
27
+ if (fs.existsSync(fallbackPath)) {
28
+ return fallbackPath;
29
+ }
30
+ // Last resort: return the expected path (caller will handle missing file)
31
+ return relativePath;
32
+ }
33
+ /**
34
+ * Play a sound notification based on the current platform
35
+ * @param soundPath - Path to the sound file to play
36
+ * @returns Promise that resolves when sound finishes playing (or immediately if it fails)
37
+ */
38
+ async function playSoundFile(soundPath) {
39
+ return new Promise((resolve) => {
40
+ // Check if the sound file exists
41
+ if (!fs.existsSync(soundPath)) {
42
+ if (process.env['DEBUG']) {
43
+ console.warn(`Sound notification file not found: ${soundPath}`);
44
+ }
45
+ resolve();
46
+ return;
47
+ }
48
+ if (process.env['DEBUG']) {
49
+ console.log(`Playing sound from: ${soundPath}`);
50
+ }
51
+ const currentPlatform = platform();
52
+ let command;
53
+ let args;
54
+ switch (currentPlatform) {
55
+ case 'darwin': // macOS
56
+ command = 'afplay';
57
+ args = [soundPath];
58
+ break;
59
+ case 'linux':
60
+ // Try paplay first (PulseAudio), fall back to aplay (ALSA)
61
+ command = 'paplay';
62
+ args = [soundPath];
63
+ break;
64
+ case 'win32': // Windows
65
+ command = 'powershell';
66
+ args = [
67
+ '-c',
68
+ `(New-Object Media.SoundPlayer '${soundPath}').PlaySync()`,
69
+ ];
70
+ break;
71
+ default:
72
+ console.warn(`Sound notifications not supported on platform: ${currentPlatform}`);
73
+ resolve();
74
+ return;
75
+ }
76
+ if (process.env['DEBUG']) {
77
+ console.log(`Executing: ${command} ${args.join(' ')}`);
78
+ }
79
+ const child = spawn(command, args, {
80
+ stdio: 'ignore',
81
+ detached: false,
82
+ });
83
+ // Set a timeout to prevent hanging
84
+ const timeout = setTimeout(() => {
85
+ child.kill();
86
+ resolve();
87
+ }, 5000); // 5 second timeout
88
+ child.on('error', (_error) => {
89
+ clearTimeout(timeout);
90
+ // If paplay fails on Linux, try aplay as fallback
91
+ if (currentPlatform === 'linux' && command === 'paplay') {
92
+ const fallbackChild = spawn('aplay', [soundPath], {
93
+ stdio: 'ignore',
94
+ detached: false,
95
+ });
96
+ fallbackChild.on('error', () => {
97
+ // Silently fail if both commands don't work
98
+ resolve();
99
+ });
100
+ fallbackChild.on('close', () => {
101
+ resolve();
102
+ });
103
+ }
104
+ else {
105
+ // Silently fail - don't crash the app if sound can't play
106
+ resolve();
107
+ }
108
+ });
109
+ child.on('close', () => {
110
+ clearTimeout(timeout);
111
+ resolve();
112
+ });
113
+ });
114
+ }
115
+ /**
116
+ * Play the completion notification sound
117
+ * This function is non-blocking and will not throw errors
118
+ */
119
+ export async function playCompletionSound() {
120
+ try {
121
+ const soundPath = getNotificationSoundPath();
122
+ await playSoundFile(soundPath);
123
+ }
124
+ catch (_error) {
125
+ // Silently fail - sound notifications should never crash the app
126
+ // Only log in debug mode if needed
127
+ }
128
+ }
129
+ /**
130
+ * Play the completion notification sound without waiting for it to finish
131
+ * This is a fire-and-forget version that returns immediately
132
+ */
133
+ export function playCompletionSoundAsync() {
134
+ playCompletionSound().catch(() => {
135
+ // Silently ignore errors
136
+ });
137
+ }
138
+ //# sourceMappingURL=soundNotification.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"soundNotification.js","sourceRoot":"","sources":["../../../src/utils/soundNotification.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,13 @@ export interface PendingUpdateInfo {
38
38
  version: string;
39
39
  checkedAt: number;
40
40
  }
41
+ /**
42
+ * Interface for last check timestamp information
43
+ */
44
+ export interface LastCheckInfo {
45
+ timestamp: number;
46
+ success: boolean;
47
+ }
41
48
  /**
42
49
  * Reads pending update information
43
50
  */
@@ -50,3 +57,16 @@ export declare function writePendingUpdate(version: string): boolean;
50
57
  * Clears pending update information
51
58
  */
52
59
  export declare function clearPendingUpdate(): boolean;
60
+ /**
61
+ * Reads last check information
62
+ */
63
+ export declare function readLastCheck(): LastCheckInfo | null;
64
+ /**
65
+ * Writes last check information
66
+ */
67
+ export declare function writeLastCheck(success: boolean): boolean;
68
+ /**
69
+ * Checks if enough time has passed since last check
70
+ * @param minIntervalMs Minimum interval in milliseconds (default: 10 minutes)
71
+ */
72
+ export declare function shouldCheckForUpdate(minIntervalMs?: number): boolean;
@@ -223,4 +223,66 @@ export function clearPendingUpdate() {
223
223
  return false;
224
224
  }
225
225
  }
226
+ /**
227
+ * Gets the path to the last check file
228
+ */
229
+ function getLastCheckFilePath() {
230
+ const installDir = getInstallDir();
231
+ if (!installDir) {
232
+ return null;
233
+ }
234
+ return path.join(installDir, '.last-update-check');
235
+ }
236
+ /**
237
+ * Reads last check information
238
+ */
239
+ export function readLastCheck() {
240
+ const filePath = getLastCheckFilePath();
241
+ if (!filePath) {
242
+ return null;
243
+ }
244
+ try {
245
+ if (fs.existsSync(filePath)) {
246
+ const content = fs.readFileSync(filePath, 'utf-8');
247
+ const data = JSON.parse(content);
248
+ return data;
249
+ }
250
+ }
251
+ catch (_error) {
252
+ // Ignore errors, return null
253
+ }
254
+ return null;
255
+ }
256
+ /**
257
+ * Writes last check information
258
+ */
259
+ export function writeLastCheck(success) {
260
+ const filePath = getLastCheckFilePath();
261
+ if (!filePath) {
262
+ return false;
263
+ }
264
+ try {
265
+ const data = {
266
+ timestamp: Date.now(),
267
+ success,
268
+ };
269
+ fs.writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf-8');
270
+ return true;
271
+ }
272
+ catch (_error) {
273
+ return false;
274
+ }
275
+ }
276
+ /**
277
+ * Checks if enough time has passed since last check
278
+ * @param minIntervalMs Minimum interval in milliseconds (default: 10 minutes)
279
+ */
280
+ export function shouldCheckForUpdate(minIntervalMs = 10 * 60 * 1000) {
281
+ const lastCheck = readLastCheck();
282
+ if (!lastCheck) {
283
+ return true; // Never checked before
284
+ }
285
+ const timeSinceLastCheck = Date.now() - lastCheck.timestamp;
286
+ return timeSinceLastCheck >= minIntervalMs;
287
+ }
226
288
  //# sourceMappingURL=versionStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"versionStorage.js","sourceRoot":"","sources":["../../../src/utils/versionStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"versionStorage.js","sourceRoot":"","sources":["../../../src/utils/versionStorage.ts"],"names":[],"mappings":"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"}