@codemieai/code 0.0.34 → 0.0.35
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/README.md +10 -5
- package/bin/codemie-claude-acp.js +21 -0
- package/bin/codemie.js +13 -0
- package/dist/agents/codemie-code/agent.d.ts +22 -4
- package/dist/agents/codemie-code/agent.d.ts.map +1 -1
- package/dist/agents/codemie-code/agent.js +291 -195
- package/dist/agents/codemie-code/agent.js.map +1 -1
- package/dist/agents/codemie-code/index.d.ts +1 -1
- package/dist/agents/codemie-code/index.d.ts.map +1 -1
- package/dist/agents/codemie-code/index.js +8 -5
- package/dist/agents/codemie-code/index.js.map +1 -1
- package/dist/agents/codemie-code/prompts.d.ts +8 -10
- package/dist/agents/codemie-code/prompts.d.ts.map +1 -1
- package/dist/agents/codemie-code/prompts.js +43 -16
- package/dist/agents/codemie-code/prompts.js.map +1 -1
- package/dist/agents/codemie-code/toolMetadata.d.ts.map +1 -1
- package/dist/agents/codemie-code/toolMetadata.js +9 -8
- package/dist/agents/codemie-code/toolMetadata.js.map +1 -1
- package/dist/agents/codemie-code/tools/assistant-invocation.d.ts +47 -0
- package/dist/agents/codemie-code/tools/assistant-invocation.d.ts.map +1 -0
- package/dist/agents/codemie-code/tools/assistant-invocation.js +129 -0
- package/dist/agents/codemie-code/tools/assistant-invocation.js.map +1 -0
- package/dist/agents/codemie-code/tools/index.d.ts +70 -4
- package/dist/agents/codemie-code/tools/index.d.ts.map +1 -1
- package/dist/agents/codemie-code/tools/index.js +57 -44
- package/dist/agents/codemie-code/tools/index.js.map +1 -1
- package/dist/agents/codemie-code/tools/planning.d.ts +6 -5
- package/dist/agents/codemie-code/tools/planning.d.ts.map +1 -1
- package/dist/agents/codemie-code/tools/planning.js +12 -10
- package/dist/agents/codemie-code/tools/planning.js.map +1 -1
- package/dist/agents/codemie-code/types.d.ts +24 -3
- package/dist/agents/codemie-code/types.d.ts.map +1 -1
- package/dist/agents/codemie-code/types.js +24 -0
- package/dist/agents/codemie-code/types.js.map +1 -1
- package/dist/agents/codemie-code/ui/autocomplete.d.ts +98 -0
- package/dist/agents/codemie-code/ui/autocomplete.d.ts.map +1 -0
- package/dist/agents/codemie-code/ui/autocomplete.js +145 -0
- package/dist/agents/codemie-code/ui/autocomplete.js.map +1 -0
- package/dist/agents/codemie-code/ui/keyHandlers.d.ts +112 -0
- package/dist/agents/codemie-code/ui/keyHandlers.d.ts.map +1 -0
- package/dist/agents/codemie-code/ui/keyHandlers.js +415 -0
- package/dist/agents/codemie-code/ui/keyHandlers.js.map +1 -0
- package/dist/agents/codemie-code/ui/mentions.d.ts +86 -0
- package/dist/agents/codemie-code/ui/mentions.d.ts.map +1 -0
- package/dist/agents/codemie-code/ui/mentions.js +122 -0
- package/dist/agents/codemie-code/ui/mentions.js.map +1 -0
- package/dist/agents/codemie-code/ui/terminalCodes.d.ts +38 -0
- package/dist/agents/codemie-code/ui/terminalCodes.d.ts.map +1 -0
- package/dist/agents/codemie-code/ui/terminalCodes.js +42 -0
- package/dist/agents/codemie-code/ui/terminalCodes.js.map +1 -0
- package/dist/agents/codemie-code/ui/todoPanel.d.ts.map +1 -1
- package/dist/agents/codemie-code/ui/todoPanel.js +3 -4
- package/dist/agents/codemie-code/ui/todoPanel.js.map +1 -1
- package/dist/agents/codemie-code/ui.d.ts +8 -7
- package/dist/agents/codemie-code/ui.d.ts.map +1 -1
- package/dist/agents/codemie-code/ui.js +87 -145
- package/dist/agents/codemie-code/ui.js.map +1 -1
- package/dist/agents/core/AgentCLI.d.ts +5 -0
- package/dist/agents/core/AgentCLI.d.ts.map +1 -1
- package/dist/agents/core/AgentCLI.js +22 -0
- package/dist/agents/core/AgentCLI.js.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
- package/dist/agents/core/BaseAgentAdapter.js +58 -28
- package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
- package/dist/agents/core/extension/BaseExtensionInstaller.d.ts +7 -1
- package/dist/agents/core/extension/BaseExtensionInstaller.d.ts.map +1 -1
- package/dist/agents/core/extension/BaseExtensionInstaller.js +58 -15
- package/dist/agents/core/extension/BaseExtensionInstaller.js.map +1 -1
- package/dist/agents/core/types.d.ts +17 -0
- package/dist/agents/core/types.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude-acp.plugin.d.ts +27 -0
- package/dist/agents/plugins/claude/claude-acp.plugin.d.ts.map +1 -0
- package/dist/agents/plugins/claude/claude-acp.plugin.js +63 -0
- package/dist/agents/plugins/claude/claude-acp.plugin.js.map +1 -0
- package/dist/agents/plugins/claude/claude-message-types.d.ts +1 -0
- package/dist/agents/plugins/claude/claude-message-types.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.d.ts +1 -1
- package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.js +66 -29
- package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.session.js +14 -7
- package/dist/agents/plugins/claude/claude.session.js.map +1 -1
- package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/agents/plugins/claude/plugin/commands/codemie-subagents.md +4 -4
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +43 -8
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +68 -40
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -1
- package/dist/agents/registry.d.ts +1 -1
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +3 -1
- package/dist/agents/registry.js.map +1 -1
- package/dist/cli/commands/assistants/chat.d.ts +11 -0
- package/dist/cli/commands/assistants/chat.d.ts.map +1 -0
- package/dist/cli/commands/assistants/chat.js +201 -0
- package/dist/cli/commands/assistants/chat.js.map +1 -0
- package/dist/cli/commands/assistants/constants.d.ts +81 -0
- package/dist/cli/commands/assistants/constants.d.ts.map +1 -0
- package/dist/cli/commands/assistants/constants.js +75 -0
- package/dist/cli/commands/assistants/constants.js.map +1 -0
- package/dist/cli/commands/assistants/generators/claude-agent-generator.d.ts +26 -0
- package/dist/cli/commands/assistants/generators/claude-agent-generator.d.ts.map +1 -0
- package/dist/cli/commands/assistants/generators/claude-agent-generator.js +115 -0
- package/dist/cli/commands/assistants/generators/claude-agent-generator.js.map +1 -0
- package/dist/cli/commands/assistants/index.d.ts +11 -0
- package/dist/cli/commands/assistants/index.d.ts.map +1 -0
- package/dist/cli/commands/assistants/index.js +28 -0
- package/dist/cli/commands/assistants/index.js.map +1 -0
- package/dist/cli/commands/assistants/list.d.ts +11 -0
- package/dist/cli/commands/assistants/list.d.ts.map +1 -0
- package/dist/cli/commands/assistants/list.js +323 -0
- package/dist/cli/commands/assistants/list.js.map +1 -0
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +18 -6
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/self-update.d.ts +3 -0
- package/dist/cli/commands/self-update.d.ts.map +1 -0
- package/dist/cli/commands/self-update.js +55 -0
- package/dist/cli/commands/self-update.js.map +1 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +8 -4
- package/dist/cli/index.js.map +1 -1
- package/dist/env/types.d.ts +13 -0
- package/dist/env/types.d.ts.map +1 -1
- package/dist/env/types.js +1 -1
- package/dist/env/types.js.map +1 -1
- package/dist/utils/auth.d.ts +22 -0
- package/dist/utils/auth.d.ts.map +1 -0
- package/dist/utils/auth.js +50 -0
- package/dist/utils/auth.js.map +1 -0
- package/dist/utils/cli-updater.d.ts +70 -0
- package/dist/utils/cli-updater.d.ts.map +1 -0
- package/dist/utils/cli-updater.js +339 -0
- package/dist/utils/cli-updater.js.map +1 -0
- package/dist/utils/config.d.ts +6 -1
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +13 -0
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/native-installer.d.ts.map +1 -1
- package/dist/utils/native-installer.js +48 -17
- package/dist/utils/native-installer.js.map +1 -1
- package/dist/utils/processes.js +1 -1
- package/dist/utils/profile.d.ts +2 -0
- package/dist/utils/profile.d.ts.map +1 -1
- package/dist/utils/profile.js +5 -0
- package/dist/utils/profile.js.map +1 -1
- package/dist/utils/sdk-client.d.ts +15 -0
- package/dist/utils/sdk-client.d.ts.map +1 -0
- package/dist/utils/sdk-client.js +92 -0
- package/dist/utils/sdk-client.js.map +1 -0
- package/package.json +7 -2
- package/dist/agents/plugins/claude/plugin/commands/codemie-pr.md +0 -25
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared authentication utilities for assistants commands
|
|
3
|
+
*/
|
|
4
|
+
import type { CodeMieClient } from 'codemie-sdk';
|
|
5
|
+
import type { ProviderProfile } from '../env/types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Get authenticated CodeMie client with automatic re-authentication on failure
|
|
8
|
+
*
|
|
9
|
+
* @param config - Provider configuration
|
|
10
|
+
* @returns Authenticated CodeMieClient instance
|
|
11
|
+
* @throws ConfigurationError if authentication fails and user declines re-auth
|
|
12
|
+
*/
|
|
13
|
+
export declare function getAuthenticatedClient(config: ProviderProfile): Promise<CodeMieClient>;
|
|
14
|
+
/**
|
|
15
|
+
* Prompt user for re-authentication
|
|
16
|
+
*
|
|
17
|
+
* @param config - Provider configuration
|
|
18
|
+
* @returns True if re-authentication succeeded, false otherwise
|
|
19
|
+
* @throws ConfigurationError if re-authentication is not available
|
|
20
|
+
*/
|
|
21
|
+
export declare function promptReauthentication(config: ProviderProfile): Promise<boolean>;
|
|
22
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAItD;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAa5F;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CActF"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared authentication utilities for assistants commands
|
|
3
|
+
*/
|
|
4
|
+
import chalk from 'chalk';
|
|
5
|
+
import { getCodemieClient } from '../utils/sdk-client.js';
|
|
6
|
+
import { ConfigurationError } from '../utils/errors.js';
|
|
7
|
+
import { ProviderRegistry } from '../providers/core/registry.js';
|
|
8
|
+
import { handleAuthValidationFailure } from '../providers/core/auth-validation.js';
|
|
9
|
+
/**
|
|
10
|
+
* Get authenticated CodeMie client with automatic re-authentication on failure
|
|
11
|
+
*
|
|
12
|
+
* @param config - Provider configuration
|
|
13
|
+
* @returns Authenticated CodeMieClient instance
|
|
14
|
+
* @throws ConfigurationError if authentication fails and user declines re-auth
|
|
15
|
+
*/
|
|
16
|
+
export async function getAuthenticatedClient(config) {
|
|
17
|
+
try {
|
|
18
|
+
return await getCodemieClient();
|
|
19
|
+
}
|
|
20
|
+
catch (error) {
|
|
21
|
+
if (error instanceof ConfigurationError && error.message.includes('SSO authentication required')) {
|
|
22
|
+
const reauthed = await promptReauthentication(config);
|
|
23
|
+
if (reauthed) {
|
|
24
|
+
// Retry getting client after successful re-authentication
|
|
25
|
+
return await getCodemieClient();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
throw error;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Prompt user for re-authentication
|
|
33
|
+
*
|
|
34
|
+
* @param config - Provider configuration
|
|
35
|
+
* @returns True if re-authentication succeeded, false otherwise
|
|
36
|
+
* @throws ConfigurationError if re-authentication is not available
|
|
37
|
+
*/
|
|
38
|
+
export async function promptReauthentication(config) {
|
|
39
|
+
const setupSteps = ProviderRegistry.getSetupSteps(config.provider || '');
|
|
40
|
+
if (setupSteps?.validateAuth) {
|
|
41
|
+
const validationResult = await setupSteps.validateAuth(config);
|
|
42
|
+
const reauthed = await handleAuthValidationFailure(validationResult, setupSteps, config);
|
|
43
|
+
if (reauthed) {
|
|
44
|
+
console.log(chalk.green('\n✓ Re-authentication successful\n'));
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
throw new ConfigurationError('Authentication expired. Please re-authenticate.');
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/utils/auth.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAElF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAAuB;IAClE,IAAI,CAAC;QACH,OAAO,MAAM,gBAAgB,EAAE,CAAC;IAClC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,kBAAkB,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;YACjG,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;YACtD,IAAI,QAAQ,EAAE,CAAC;gBACb,0DAA0D;gBAC1D,OAAO,MAAM,gBAAgB,EAAE,CAAC;YAClC,CAAC;QACH,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,MAAuB;IAClE,MAAM,UAAU,GAAG,gBAAgB,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;IAEzE,IAAI,UAAU,EAAE,YAAY,EAAE,CAAC;QAC7B,MAAM,gBAAgB,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,2BAA2B,CAAC,gBAAgB,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAEzF,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,MAAM,IAAI,kBAAkB,CAAC,iDAAiD,CAAC,CAAC;AAClF,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Auto-Update Utilities
|
|
3
|
+
*
|
|
4
|
+
* Handles version checking and updating for the CodeMie CLI itself
|
|
5
|
+
* (@codemieai/code package)
|
|
6
|
+
*
|
|
7
|
+
* Environment Variables:
|
|
8
|
+
* - CODEMIE_AUTO_UPDATE=true (default): Silently update without prompting
|
|
9
|
+
* - CODEMIE_AUTO_UPDATE=false: Prompt user before updating
|
|
10
|
+
* - CODEMIE_UPDATE_CHECK_INTERVAL: Time between update checks in ms (default: 86400000 = 24h)
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Get the current CLI version from package.json
|
|
14
|
+
*/
|
|
15
|
+
export declare function getCurrentCliVersion(): Promise<string | null>;
|
|
16
|
+
/**
|
|
17
|
+
* Check if auto-update is enabled (default: true)
|
|
18
|
+
* Reads CODEMIE_AUTO_UPDATE environment variable
|
|
19
|
+
*
|
|
20
|
+
* @returns true if auto-update should happen silently, false if prompt required
|
|
21
|
+
*/
|
|
22
|
+
export declare function isAutoUpdateEnabled(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Result of checking for CLI updates
|
|
25
|
+
*/
|
|
26
|
+
export interface CliUpdateCheckResult {
|
|
27
|
+
/** Current CLI version */
|
|
28
|
+
currentVersion: string;
|
|
29
|
+
/** Latest available version from npm */
|
|
30
|
+
latestVersion: string;
|
|
31
|
+
/** True if update available */
|
|
32
|
+
hasUpdate: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Check if a CLI update is available
|
|
36
|
+
* Fast check with 5-second timeout
|
|
37
|
+
*
|
|
38
|
+
* @returns Update check result, or null if check fails
|
|
39
|
+
*/
|
|
40
|
+
export declare function checkForCliUpdate(): Promise<CliUpdateCheckResult | null>;
|
|
41
|
+
/**
|
|
42
|
+
* Prompt user to update CLI
|
|
43
|
+
*
|
|
44
|
+
* @param result - Update check result
|
|
45
|
+
* @returns True if user confirms update, false otherwise
|
|
46
|
+
*/
|
|
47
|
+
export declare function promptForCliUpdate(result: CliUpdateCheckResult): Promise<boolean>;
|
|
48
|
+
/**
|
|
49
|
+
* Update the CLI to the latest version
|
|
50
|
+
*
|
|
51
|
+
* @param latestVersion - Version to install
|
|
52
|
+
* @param silent - If true, minimize output (for auto-update)
|
|
53
|
+
*/
|
|
54
|
+
export declare function updateCli(latestVersion: string, silent?: boolean): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Check for CLI updates and handle update (silent or prompted)
|
|
57
|
+
* This is the main entry point called from bin/codemie.js
|
|
58
|
+
*
|
|
59
|
+
* Behavior:
|
|
60
|
+
* - CODEMIE_AUTO_UPDATE=true (default): Silent update
|
|
61
|
+
* - CODEMIE_AUTO_UPDATE=false: Prompt user
|
|
62
|
+
*
|
|
63
|
+
* Performance optimizations:
|
|
64
|
+
* - Rate limited: Only checks once per UPDATE_CHECK_INTERVAL (default: 24h)
|
|
65
|
+
* - File-based locking: Prevents concurrent updates from multiple CLI processes
|
|
66
|
+
*
|
|
67
|
+
* Non-blocking: Failures are logged but don't block CLI startup
|
|
68
|
+
*/
|
|
69
|
+
export declare function checkAndPromptForUpdate(): Promise<void>;
|
|
70
|
+
//# sourceMappingURL=cli-updater.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-updater.d.ts","sourceRoot":"","sources":["../../src/utils/cli-updater.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAsBH;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcnE;AAkED;;;;;GAKG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAW7C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,0BAA0B;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAyC9E;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC,CAmCvF;AAED;;;;;GAKG;AACH,wBAAsB,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CA4CpF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC,IAAI,CAAC,CAkF7D"}
|
|
@@ -0,0 +1,339 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Auto-Update Utilities
|
|
3
|
+
*
|
|
4
|
+
* Handles version checking and updating for the CodeMie CLI itself
|
|
5
|
+
* (@codemieai/code package)
|
|
6
|
+
*
|
|
7
|
+
* Environment Variables:
|
|
8
|
+
* - CODEMIE_AUTO_UPDATE=true (default): Silently update without prompting
|
|
9
|
+
* - CODEMIE_AUTO_UPDATE=false: Prompt user before updating
|
|
10
|
+
* - CODEMIE_UPDATE_CHECK_INTERVAL: Time between update checks in ms (default: 86400000 = 24h)
|
|
11
|
+
*/
|
|
12
|
+
import fs from 'fs/promises';
|
|
13
|
+
import path from 'path';
|
|
14
|
+
import chalk from 'chalk';
|
|
15
|
+
import inquirer from 'inquirer';
|
|
16
|
+
import { fileURLToPath } from 'url';
|
|
17
|
+
import { logger } from './logger.js';
|
|
18
|
+
import { getLatestVersion, installGlobal } from './processes.js';
|
|
19
|
+
import { compareVersions, isValidSemanticVersion } from './version-utils.js';
|
|
20
|
+
import { getCodemiePath } from './paths.js';
|
|
21
|
+
const CLI_PACKAGE_NAME = '@codemieai/code';
|
|
22
|
+
// Rate limiting: Check for updates at most once per interval (default: 24 hours)
|
|
23
|
+
const UPDATE_CHECK_INTERVAL = parseInt(process.env.CODEMIE_UPDATE_CHECK_INTERVAL || '86400000', 10);
|
|
24
|
+
const LAST_CHECK_FILE = path.join(getCodemiePath(), '.last-update-check');
|
|
25
|
+
const UPDATE_LOCK_FILE = path.join(getCodemiePath(), '.update-lock');
|
|
26
|
+
/**
|
|
27
|
+
* Get the current CLI version from package.json
|
|
28
|
+
*/
|
|
29
|
+
export async function getCurrentCliVersion() {
|
|
30
|
+
try {
|
|
31
|
+
// Navigate from src/utils/ to package.json (2 levels up)
|
|
32
|
+
const dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
33
|
+
const packageJsonPath = path.resolve(dirname, '../../package.json');
|
|
34
|
+
const content = await fs.readFile(packageJsonPath, 'utf-8');
|
|
35
|
+
const packageJson = JSON.parse(content);
|
|
36
|
+
return packageJson.version || null;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
logger.debug('Failed to read current CLI version:', error);
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Check if we should perform an update check (rate limiting)
|
|
45
|
+
* Only checks once per UPDATE_CHECK_INTERVAL (default: 24 hours)
|
|
46
|
+
*/
|
|
47
|
+
async function shouldCheckForUpdate() {
|
|
48
|
+
try {
|
|
49
|
+
const lastCheckStr = await fs.readFile(LAST_CHECK_FILE, 'utf-8');
|
|
50
|
+
const lastCheck = parseInt(lastCheckStr, 10);
|
|
51
|
+
const now = Date.now();
|
|
52
|
+
const shouldCheck = (now - lastCheck) > UPDATE_CHECK_INTERVAL;
|
|
53
|
+
if (!shouldCheck) {
|
|
54
|
+
logger.debug(`Skipping update check (last checked ${Math.floor((now - lastCheck) / 1000 / 60)} minutes ago)`);
|
|
55
|
+
}
|
|
56
|
+
return shouldCheck;
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// File doesn't exist or invalid - should check
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Record the time of the last update check
|
|
65
|
+
*/
|
|
66
|
+
async function recordUpdateCheck() {
|
|
67
|
+
try {
|
|
68
|
+
await fs.writeFile(LAST_CHECK_FILE, Date.now().toString(), 'utf-8');
|
|
69
|
+
logger.debug('Recorded update check timestamp');
|
|
70
|
+
}
|
|
71
|
+
catch (error) {
|
|
72
|
+
logger.debug('Failed to record update check time:', error);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Acquire lock file to prevent concurrent updates
|
|
77
|
+
* @returns true if lock acquired, false if another process is updating
|
|
78
|
+
*/
|
|
79
|
+
async function acquireUpdateLock() {
|
|
80
|
+
try {
|
|
81
|
+
// Try to create lock file with exclusive flag (fails if exists)
|
|
82
|
+
const fd = await fs.open(UPDATE_LOCK_FILE, 'wx');
|
|
83
|
+
await fd.close();
|
|
84
|
+
logger.debug('Acquired update lock');
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
// Lock file exists - another process is updating
|
|
89
|
+
logger.debug('Update lock already held by another process');
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Release update lock file
|
|
95
|
+
*/
|
|
96
|
+
async function releaseUpdateLock() {
|
|
97
|
+
try {
|
|
98
|
+
await fs.unlink(UPDATE_LOCK_FILE);
|
|
99
|
+
logger.debug('Released update lock');
|
|
100
|
+
}
|
|
101
|
+
catch {
|
|
102
|
+
// Lock file already deleted or never created
|
|
103
|
+
logger.debug('Lock file not found (already released)');
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Check if auto-update is enabled (default: true)
|
|
108
|
+
* Reads CODEMIE_AUTO_UPDATE environment variable
|
|
109
|
+
*
|
|
110
|
+
* @returns true if auto-update should happen silently, false if prompt required
|
|
111
|
+
*/
|
|
112
|
+
export function isAutoUpdateEnabled() {
|
|
113
|
+
const envValue = process.env.CODEMIE_AUTO_UPDATE;
|
|
114
|
+
// If not set, default to true (silent auto-update)
|
|
115
|
+
if (envValue === undefined || envValue === null || envValue === '') {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
// Parse as boolean
|
|
119
|
+
const normalized = envValue.toLowerCase().trim();
|
|
120
|
+
return normalized === 'true' || normalized === '1' || normalized === 'yes';
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Check if a CLI update is available
|
|
124
|
+
* Fast check with 5-second timeout
|
|
125
|
+
*
|
|
126
|
+
* @returns Update check result, or null if check fails
|
|
127
|
+
*/
|
|
128
|
+
export async function checkForCliUpdate() {
|
|
129
|
+
try {
|
|
130
|
+
const currentVersion = await getCurrentCliVersion();
|
|
131
|
+
if (!currentVersion) {
|
|
132
|
+
logger.debug('Could not determine current CLI version');
|
|
133
|
+
return null;
|
|
134
|
+
}
|
|
135
|
+
// Validate current version format
|
|
136
|
+
if (!isValidSemanticVersion(currentVersion)) {
|
|
137
|
+
logger.error('Invalid current CLI version format', { version: currentVersion });
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
// Fast check with 5-second timeout
|
|
141
|
+
const latestVersion = await getLatestVersion(CLI_PACKAGE_NAME, { timeout: 5000 });
|
|
142
|
+
if (!latestVersion) {
|
|
143
|
+
logger.debug('Could not fetch latest CLI version from npm');
|
|
144
|
+
return null;
|
|
145
|
+
}
|
|
146
|
+
// SECURITY: Validate version string from npm registry before using
|
|
147
|
+
if (!isValidSemanticVersion(latestVersion)) {
|
|
148
|
+
logger.error('Invalid version format received from npm registry (potential security issue)', {
|
|
149
|
+
version: latestVersion,
|
|
150
|
+
source: 'npm'
|
|
151
|
+
});
|
|
152
|
+
return null;
|
|
153
|
+
}
|
|
154
|
+
const hasUpdate = compareVersions(currentVersion, latestVersion) < 0;
|
|
155
|
+
return {
|
|
156
|
+
currentVersion,
|
|
157
|
+
latestVersion,
|
|
158
|
+
hasUpdate
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
logger.debug('CLI update check failed:', error);
|
|
163
|
+
return null;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Prompt user to update CLI
|
|
168
|
+
*
|
|
169
|
+
* @param result - Update check result
|
|
170
|
+
* @returns True if user confirms update, false otherwise
|
|
171
|
+
*/
|
|
172
|
+
export async function promptForCliUpdate(result) {
|
|
173
|
+
// Box: 47 total width (45 dashes + 2 corners)
|
|
174
|
+
// Content area: 47 - 4 (two borders + two leading spaces) = 43 chars
|
|
175
|
+
const contentWidth = 43;
|
|
176
|
+
// Title: "📦 CodeMie CLI Update Available" (30 string chars, 31 visual width due to emoji)
|
|
177
|
+
const titleVisualWidth = 31; // Emoji takes 2 visual columns
|
|
178
|
+
const titlePadding = ' '.repeat(Math.max(0, contentWidth - titleVisualWidth));
|
|
179
|
+
// Build content lines with proper padding
|
|
180
|
+
const currentLine = `Current: ${result.currentVersion}`;
|
|
181
|
+
const currentPadding = ' '.repeat(Math.max(0, contentWidth - currentLine.length));
|
|
182
|
+
const latestLine = `Latest: ${result.latestVersion}`;
|
|
183
|
+
const latestPadding = ' '.repeat(Math.max(0, contentWidth - latestLine.length));
|
|
184
|
+
console.log();
|
|
185
|
+
console.log(chalk.yellow('┌─────────────────────────────────────────────┐'));
|
|
186
|
+
console.log(chalk.yellow('│ ') + chalk.bold('📦 CodeMie CLI Update Available') + titlePadding + chalk.yellow('│'));
|
|
187
|
+
console.log(chalk.yellow('│─────────────────────────────────────────────│'));
|
|
188
|
+
console.log(chalk.yellow('│ ') + currentLine + currentPadding + chalk.yellow('│'));
|
|
189
|
+
console.log(chalk.yellow('│ ') + chalk.green(latestLine) + latestPadding + chalk.yellow('│'));
|
|
190
|
+
console.log(chalk.yellow('└─────────────────────────────────────────────┘'));
|
|
191
|
+
console.log();
|
|
192
|
+
const { shouldUpdate } = await inquirer.prompt([
|
|
193
|
+
{
|
|
194
|
+
type: 'confirm',
|
|
195
|
+
name: 'shouldUpdate',
|
|
196
|
+
message: 'Would you like to update now?',
|
|
197
|
+
default: true
|
|
198
|
+
}
|
|
199
|
+
]);
|
|
200
|
+
return shouldUpdate;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Update the CLI to the latest version
|
|
204
|
+
*
|
|
205
|
+
* @param latestVersion - Version to install
|
|
206
|
+
* @param silent - If true, minimize output (for auto-update)
|
|
207
|
+
*/
|
|
208
|
+
export async function updateCli(latestVersion, silent = false) {
|
|
209
|
+
if (!silent) {
|
|
210
|
+
console.log();
|
|
211
|
+
console.log(chalk.cyan(`📦 Updating CodeMie CLI to ${latestVersion}...`));
|
|
212
|
+
}
|
|
213
|
+
try {
|
|
214
|
+
// Use force: true to handle directory conflicts during global update
|
|
215
|
+
await installGlobal(CLI_PACKAGE_NAME, {
|
|
216
|
+
version: latestVersion,
|
|
217
|
+
force: true,
|
|
218
|
+
timeout: 60000 // 1 minute timeout for update
|
|
219
|
+
});
|
|
220
|
+
if (silent) {
|
|
221
|
+
// Silent mode: just log to debug
|
|
222
|
+
logger.debug(`CodeMie CLI auto-updated to ${latestVersion}`);
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
console.log();
|
|
226
|
+
console.log(chalk.green('✓ CodeMie CLI updated successfully!'));
|
|
227
|
+
console.log(chalk.cyan(` Current version: ${latestVersion}`));
|
|
228
|
+
console.log();
|
|
229
|
+
console.log(chalk.dim(' 💡 The update will take effect on the next command.'));
|
|
230
|
+
console.log();
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
catch (error) {
|
|
234
|
+
// Log error for debugging
|
|
235
|
+
logger.error('CLI update failed', {
|
|
236
|
+
targetVersion: latestVersion,
|
|
237
|
+
error: error instanceof Error ? error.message : String(error),
|
|
238
|
+
silent
|
|
239
|
+
});
|
|
240
|
+
// On error, show message even in silent mode
|
|
241
|
+
console.log();
|
|
242
|
+
console.error(chalk.red('✗ Failed to update CodeMie CLI'));
|
|
243
|
+
console.log();
|
|
244
|
+
console.log(chalk.yellow(' You can manually update with:'));
|
|
245
|
+
console.log(chalk.white(` npm install -g ${CLI_PACKAGE_NAME}@${latestVersion}`));
|
|
246
|
+
console.log();
|
|
247
|
+
console.log(chalk.dim(' 💡 To disable auto-update: export CODEMIE_AUTO_UPDATE=false'));
|
|
248
|
+
console.log();
|
|
249
|
+
throw error;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Check for CLI updates and handle update (silent or prompted)
|
|
254
|
+
* This is the main entry point called from bin/codemie.js
|
|
255
|
+
*
|
|
256
|
+
* Behavior:
|
|
257
|
+
* - CODEMIE_AUTO_UPDATE=true (default): Silent update
|
|
258
|
+
* - CODEMIE_AUTO_UPDATE=false: Prompt user
|
|
259
|
+
*
|
|
260
|
+
* Performance optimizations:
|
|
261
|
+
* - Rate limited: Only checks once per UPDATE_CHECK_INTERVAL (default: 24h)
|
|
262
|
+
* - File-based locking: Prevents concurrent updates from multiple CLI processes
|
|
263
|
+
*
|
|
264
|
+
* Non-blocking: Failures are logged but don't block CLI startup
|
|
265
|
+
*/
|
|
266
|
+
export async function checkAndPromptForUpdate() {
|
|
267
|
+
try {
|
|
268
|
+
// PERFORMANCE FIX: Rate limiting - only check once per interval (default: 24h)
|
|
269
|
+
if (!(await shouldCheckForUpdate())) {
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
const result = await checkForCliUpdate();
|
|
273
|
+
// Record check timestamp even if no update (prevents repeated checks)
|
|
274
|
+
await recordUpdateCheck();
|
|
275
|
+
// No update available or check failed
|
|
276
|
+
if (!result || !result.hasUpdate) {
|
|
277
|
+
return;
|
|
278
|
+
}
|
|
279
|
+
const autoUpdate = isAutoUpdateEnabled();
|
|
280
|
+
if (autoUpdate) {
|
|
281
|
+
// CONCURRENCY FIX: Try to acquire lock before updating
|
|
282
|
+
const hasLock = await acquireUpdateLock();
|
|
283
|
+
if (!hasLock) {
|
|
284
|
+
logger.debug('Another process is updating CLI, skipping');
|
|
285
|
+
return;
|
|
286
|
+
}
|
|
287
|
+
try {
|
|
288
|
+
// Silent auto-update (default behavior)
|
|
289
|
+
logger.debug(`Auto-updating CLI: ${result.currentVersion} → ${result.latestVersion}`);
|
|
290
|
+
await updateCli(result.latestVersion, true);
|
|
291
|
+
// Don't exit - let CLI continue with updated version on next run
|
|
292
|
+
}
|
|
293
|
+
finally {
|
|
294
|
+
await releaseUpdateLock();
|
|
295
|
+
}
|
|
296
|
+
return;
|
|
297
|
+
}
|
|
298
|
+
// Prompt mode (CODEMIE_AUTO_UPDATE=false)
|
|
299
|
+
const shouldUpdate = await promptForCliUpdate(result);
|
|
300
|
+
if (!shouldUpdate) {
|
|
301
|
+
console.log(chalk.dim(' Skipping update. You can update later with:'));
|
|
302
|
+
console.log(chalk.white(` codemie self-update`));
|
|
303
|
+
console.log();
|
|
304
|
+
console.log(chalk.dim(' 💡 To enable auto-update: export CODEMIE_AUTO_UPDATE=true'));
|
|
305
|
+
console.log();
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
// CONCURRENCY FIX: Try to acquire lock before updating
|
|
309
|
+
const hasLock = await acquireUpdateLock();
|
|
310
|
+
if (!hasLock) {
|
|
311
|
+
console.log();
|
|
312
|
+
console.log(chalk.yellow('⚠ Another process is updating CLI. Please wait and try again.'));
|
|
313
|
+
console.log();
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
try {
|
|
317
|
+
// Perform update (verbose)
|
|
318
|
+
await updateCli(result.latestVersion, false);
|
|
319
|
+
// Exit after update so user can run the new version
|
|
320
|
+
process.exit(0);
|
|
321
|
+
}
|
|
322
|
+
finally {
|
|
323
|
+
await releaseUpdateLock();
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
catch (error) {
|
|
327
|
+
// Clean up lock on error
|
|
328
|
+
await releaseUpdateLock();
|
|
329
|
+
// Log error with context for troubleshooting
|
|
330
|
+
logger.error('CLI update check/installation failed', {
|
|
331
|
+
error: error instanceof Error ? error.message : String(error),
|
|
332
|
+
stack: error instanceof Error ? error.stack : undefined,
|
|
333
|
+
autoUpdate: isAutoUpdateEnabled()
|
|
334
|
+
});
|
|
335
|
+
// Don't block CLI startup if update check/install fails
|
|
336
|
+
logger.debug('CLI update check failed (non-blocking):', error);
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
//# sourceMappingURL=cli-updater.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-updater.js","sourceRoot":"","sources":["../../src/utils/cli-updater.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CodeMieConfigOptions, ProviderProfile, MultiProviderConfig, CodeMieIntegrationInfo, ConfigWithSource } from '../env/types.js';
|
|
1
|
+
import { CodeMieConfigOptions, ProviderProfile, MultiProviderConfig, CodeMieIntegrationInfo, ConfigWithSource, CodemieAssistant } from '../env/types.js';
|
|
2
2
|
export type { CodeMieConfigOptions, CodeMieIntegrationInfo, ConfigWithSource };
|
|
3
3
|
/**
|
|
4
4
|
* Unified configuration loader with priority system:
|
|
@@ -156,4 +156,9 @@ export declare class ConfigLoader {
|
|
|
156
156
|
* Returns a persistent UUID that uniquely identifies this CodeMie installation
|
|
157
157
|
*/
|
|
158
158
|
export declare function getInstallationId(): Promise<string>;
|
|
159
|
+
/**
|
|
160
|
+
* Load registered CodeMie assistants from configuration
|
|
161
|
+
* @returns Array of registered assistants, or empty array if none configured
|
|
162
|
+
*/
|
|
163
|
+
export declare function loadRegisteredAssistants(): Promise<CodemieAssistant[]>;
|
|
159
164
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/config.js
CHANGED
|
@@ -682,4 +682,17 @@ export async function getInstallationId() {
|
|
|
682
682
|
return id;
|
|
683
683
|
}
|
|
684
684
|
}
|
|
685
|
+
/**
|
|
686
|
+
* Load registered CodeMie assistants from configuration
|
|
687
|
+
* @returns Array of registered assistants, or empty array if none configured
|
|
688
|
+
*/
|
|
689
|
+
export async function loadRegisteredAssistants() {
|
|
690
|
+
try {
|
|
691
|
+
const config = await ConfigLoader.load();
|
|
692
|
+
return config.codemieAssistants || [];
|
|
693
|
+
}
|
|
694
|
+
catch {
|
|
695
|
+
return [];
|
|
696
|
+
}
|
|
697
|
+
}
|
|
685
698
|
//# sourceMappingURL=config.js.map
|