@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.
- package/dist/assets/notification.mp3 +0 -0
- package/dist/package.json +2 -2
- package/dist/src/commands/voice.js +39 -34
- package/dist/src/commands/voice.js.map +1 -1
- package/dist/src/config/config.js +1 -4
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/settings.d.ts +2 -0
- package/dist/src/config/settings.js +22 -1
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +36 -7
- package/dist/src/config/settingsSchema.js +35 -8
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/gemini.js +25 -20
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/services/BuiltinCommandLoader.js +2 -2
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/agentExecutor.d.ts +5 -0
- package/dist/src/services/agentExecutor.js +6 -2
- package/dist/src/services/agentExecutor.js.map +1 -1
- package/dist/src/services/voiceRecordingService.d.ts +13 -1
- package/dist/src/services/voiceRecordingService.js +38 -5
- package/dist/src/services/voiceRecordingService.js.map +1 -1
- package/dist/src/ui/App.js +255 -20
- package/dist/src/ui/App.js.map +1 -1
- package/dist/src/ui/commands/agentCommand.js +134 -43
- package/dist/src/ui/commands/agentCommand.js.map +1 -1
- package/dist/src/ui/commands/modelCommand.js +15 -2
- package/dist/src/ui/commands/modelCommand.js.map +1 -1
- package/dist/src/ui/commands/quitCommand.js +5 -0
- package/dist/src/ui/commands/quitCommand.js.map +1 -1
- package/dist/src/ui/commands/subAgentsCommand.d.ts +7 -0
- package/dist/src/ui/commands/subAgentsCommand.js +32 -0
- package/dist/src/ui/commands/subAgentsCommand.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +14 -3
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/commands/voiceCommand.js +70 -34
- package/dist/src/ui/commands/voiceCommand.js.map +1 -1
- package/dist/src/ui/commands/voiceCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/voiceCommand.test.js +131 -0
- package/dist/src/ui/commands/voiceCommand.test.js.map +1 -0
- package/dist/src/ui/components/AgentModelSelector.js +1 -1
- package/dist/src/ui/components/AgentModelSelector.js.map +1 -1
- package/dist/src/ui/components/AgentSetDialog.d.ts +15 -0
- package/dist/src/ui/components/AgentSetDialog.js +52 -0
- package/dist/src/ui/components/AgentSetDialog.js.map +1 -0
- package/dist/src/ui/components/ApiKeyInputDialog.d.ts +17 -0
- package/dist/src/ui/components/ApiKeyInputDialog.js +44 -0
- package/dist/src/ui/components/ApiKeyInputDialog.js.map +1 -0
- package/dist/src/ui/components/AuthDialog.js +32 -46
- package/dist/src/ui/components/AuthDialog.js.map +1 -1
- package/dist/src/ui/components/Footer.d.ts +6 -0
- package/dist/src/ui/components/Footer.js +17 -2
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/GenericProviderKeyPrompt.js +1 -1
- package/dist/src/ui/components/GenericProviderKeyPrompt.js.map +1 -1
- package/dist/src/ui/components/Header.js +2 -9
- package/dist/src/ui/components/Header.js.map +1 -1
- package/dist/src/ui/components/HistoryBrowserDialog.js +2 -1
- package/dist/src/ui/components/HistoryBrowserDialog.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +3 -1
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/MemoryUsageDisplay.js +41 -8
- package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +4 -3
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.js +3 -2
- package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
- package/dist/src/ui/components/Tips.js +1 -1
- package/dist/src/ui/components/Tips.js.map +1 -1
- package/dist/src/ui/components/agents/SingleAgentDialog.d.ts +7 -4
- package/dist/src/ui/components/agents/SingleAgentDialog.js +135 -63
- package/dist/src/ui/components/agents/SingleAgentDialog.js.map +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.js +1 -9
- package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
- package/dist/src/ui/components/messages/ErrorMessage.js +2 -1
- package/dist/src/ui/components/messages/ErrorMessage.js.map +1 -1
- package/dist/src/ui/components/messages/InfoMessage.js +2 -1
- package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js +4 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/messages/UserMessage.js +1 -2
- package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.js +14 -4
- package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
- package/dist/src/ui/contexts/SessionContext.d.ts +18 -0
- package/dist/src/ui/contexts/SessionContext.js +25 -1
- package/dist/src/ui/contexts/SessionContext.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +2 -2
- package/dist/src/ui/hooks/slashCommandProcessor.js +54 -2
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAgentCommandProcessor.d.ts +12 -2
- package/dist/src/ui/hooks/useAgentCommandProcessor.js +169 -4
- package/dist/src/ui/hooks/useAgentCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/useAuthCommand.d.ts +2 -1
- package/dist/src/ui/hooks/useAuthCommand.js +22 -2
- package/dist/src/ui/hooks/useAuthCommand.js.map +1 -1
- package/dist/src/ui/hooks/useDialogClose.d.ts +2 -0
- package/dist/src/ui/hooks/useDialogClose.js +5 -0
- package/dist/src/ui/hooks/useDialogClose.js.map +1 -1
- package/dist/src/ui/hooks/useEncryptedStream.d.ts +2 -1
- package/dist/src/ui/hooks/useEncryptedStream.js +17 -4
- package/dist/src/ui/hooks/useEncryptedStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +216 -21
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useInputBoxColor.d.ts +13 -0
- package/dist/src/ui/hooks/useInputBoxColor.js +62 -0
- package/dist/src/ui/hooks/useInputBoxColor.js.map +1 -0
- package/dist/src/ui/hooks/useMessageQueue.d.ts +7 -1
- package/dist/src/ui/hooks/useMessageQueue.js +9 -3
- package/dist/src/ui/hooks/useMessageQueue.js.map +1 -1
- package/dist/src/ui/utils/agentConversationUtils.d.ts +28 -0
- package/dist/src/ui/utils/agentConversationUtils.js +71 -0
- package/dist/src/ui/utils/agentConversationUtils.js.map +1 -0
- package/dist/src/ui/utils/colorBlend.d.ts +33 -0
- package/dist/src/ui/utils/colorBlend.js +61 -0
- package/dist/src/ui/utils/colorBlend.js.map +1 -0
- package/dist/src/ui/utils/commandUtils.d.ts +2 -1
- package/dist/src/ui/utils/commandUtils.js +14 -1
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +25 -0
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/ui/utils/terminalBackgroundDetector.d.ts +16 -0
- package/dist/src/ui/utils/terminalBackgroundDetector.js +124 -23
- package/dist/src/ui/utils/terminalBackgroundDetector.js.map +1 -1
- package/dist/src/utils/agentCommandBuilder.d.ts +16 -4
- package/dist/src/utils/agentCommandBuilder.js +66 -26
- package/dist/src/utils/agentCommandBuilder.js.map +1 -1
- package/dist/src/utils/apiKeyUtils.d.ts +47 -0
- package/dist/src/utils/apiKeyUtils.js +177 -0
- package/dist/src/utils/apiKeyUtils.js.map +1 -0
- package/dist/src/utils/backgroundUpdateCheck.js +104 -7
- package/dist/src/utils/backgroundUpdateCheck.js.map +1 -1
- package/dist/src/utils/memoryManager.d.ts +85 -0
- package/dist/src/utils/memoryManager.js +258 -0
- package/dist/src/utils/memoryManager.js.map +1 -0
- package/dist/src/utils/memoryMonitor.d.ts +89 -0
- package/dist/src/utils/memoryMonitor.js +238 -0
- package/dist/src/utils/memoryMonitor.js.map +1 -0
- package/dist/src/utils/memoryWrapper.d.ts +18 -0
- package/dist/src/utils/memoryWrapper.js +62 -0
- package/dist/src/utils/memoryWrapper.js.map +1 -0
- package/dist/src/utils/preLaunchUpdateCheck.js +17 -7
- package/dist/src/utils/preLaunchUpdateCheck.js.map +1 -1
- package/dist/src/utils/soundNotification.d.ts +15 -0
- package/dist/src/utils/soundNotification.js +138 -0
- package/dist/src/utils/soundNotification.js.map +1 -0
- package/dist/src/utils/versionStorage.d.ts +20 -0
- package/dist/src/utils/versionStorage.js +62 -0
- package/dist/src/utils/versionStorage.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- 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(`\
|
|
47
|
+
console.log(`\nInstalling Blackbox CLI update to ${pendingUpdate.version}...`);
|
|
48
48
|
console.log('This will only take a moment...\n');
|
|
49
|
-
|
|
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: {
|
|
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(`\
|
|
59
|
-
console.log(`
|
|
60
|
-
// Exit cleanly after update -
|
|
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('
|
|
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,
|
|
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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"}
|