@codemieai/code 0.0.33 → 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 +78 -7
- package/bin/codemie-claude-acp.js +21 -0
- package/bin/codemie-opencode.js +11 -0
- package/bin/codemie.js +13 -0
- package/dist/agents/codemie-code/agent.d.ts +38 -4
- package/dist/agents/codemie-code/agent.d.ts.map +1 -1
- package/dist/agents/codemie-code/agent.js +333 -178
- package/dist/agents/codemie-code/agent.js.map +1 -1
- package/dist/agents/codemie-code/index.d.ts +2 -1
- package/dist/agents/codemie-code/index.d.ts.map +1 -1
- package/dist/agents/codemie-code/index.js +36 -7
- package/dist/agents/codemie-code/index.js.map +1 -1
- package/dist/agents/codemie-code/prompts.d.ts +12 -5
- package/dist/agents/codemie-code/prompts.d.ts.map +1 -1
- package/dist/agents/codemie-code/prompts.js +53 -6
- 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 +27 -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 +25 -1
- 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 +90 -27
- 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/session/BaseSessionAdapter.d.ts +25 -0
- package/dist/agents/core/session/BaseSessionAdapter.d.ts.map +1 -1
- package/dist/agents/core/session/discovery-types.d.ts +53 -0
- package/dist/agents/core/session/discovery-types.d.ts.map +1 -0
- package/dist/agents/core/session/discovery-types.js +8 -0
- package/dist/agents/core/session/discovery-types.js.map +1 -0
- package/dist/agents/core/types.d.ts +62 -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 +44 -1
- package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.js +263 -12
- 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/README.md +40 -2
- package/dist/agents/plugins/claude/plugin/claude-templates/README.md +5 -5
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/CLAUDE.md.template +177 -436
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/code-review-agent-template.md.template +49 -82
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/refactor-cleaner-agent.md.template +337 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/solution-architect-agent.md.template +129 -419
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/agents/unit-tester-agent.md.template +146 -693
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/api/api-patterns.md.template +110 -138
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/architecture.md.template +197 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/data/database-patterns.md.template +171 -91
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/development/development-practices.md.template +219 -131
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/security/security-practices.md.template +223 -98
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/standards/code-quality.md.template +131 -95
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/testing/testing-patterns.md.template +247 -75
- package/dist/agents/plugins/claude/plugin/commands/README.md +133 -0
- package/dist/agents/plugins/claude/plugin/commands/codemie-init.md +336 -544
- package/dist/agents/plugins/claude/plugin/commands/codemie-subagents.md +233 -504
- package/dist/agents/plugins/claude/plugin/commands/memory-add.md +311 -30
- package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +218 -39
- 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/plugins/gemini/gemini.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/gemini/gemini.plugin.js +0 -3
- package/dist/agents/plugins/gemini/gemini.plugin.js.map +1 -1
- package/dist/agents/plugins/opencode/index.d.ts +8 -0
- package/dist/agents/plugins/opencode/index.d.ts.map +1 -0
- package/dist/agents/plugins/opencode/index.js +12 -0
- package/dist/agents/plugins/opencode/index.js.map +1 -0
- package/dist/agents/plugins/opencode/opencode-message-types.d.ts +207 -0
- package/dist/agents/plugins/opencode/opencode-message-types.d.ts.map +1 -0
- package/dist/agents/plugins/opencode/opencode-message-types.js +59 -0
- package/dist/agents/plugins/opencode/opencode-message-types.js.map +1 -0
- package/dist/agents/plugins/opencode/opencode-model-configs.d.ts +65 -0
- package/dist/agents/plugins/opencode/opencode-model-configs.d.ts.map +1 -0
- package/dist/agents/plugins/opencode/opencode-model-configs.js +184 -0
- package/dist/agents/plugins/opencode/opencode-model-configs.js.map +1 -0
- package/dist/agents/plugins/opencode/opencode.paths.d.ts +62 -0
- package/dist/agents/plugins/opencode/opencode.paths.d.ts.map +1 -0
- package/dist/agents/plugins/opencode/opencode.paths.js +148 -0
- package/dist/agents/plugins/opencode/opencode.paths.js.map +1 -0
- package/dist/agents/plugins/opencode/opencode.plugin.d.ts +35 -0
- package/dist/agents/plugins/opencode/opencode.plugin.d.ts.map +1 -0
- package/dist/agents/plugins/opencode/opencode.plugin.js +338 -0
- package/dist/agents/plugins/opencode/opencode.plugin.js.map +1 -0
- package/dist/agents/plugins/opencode/opencode.session.d.ts +77 -0
- package/dist/agents/plugins/opencode/opencode.session.d.ts.map +1 -0
- package/dist/agents/plugins/opencode/opencode.session.js +424 -0
- package/dist/agents/plugins/opencode/opencode.session.js.map +1 -0
- package/dist/agents/plugins/opencode/opencode.storage-utils.d.ts +25 -0
- package/dist/agents/plugins/opencode/opencode.storage-utils.d.ts.map +1 -0
- package/dist/agents/plugins/opencode/opencode.storage-utils.js +96 -0
- package/dist/agents/plugins/opencode/opencode.storage-utils.js.map +1 -0
- package/dist/agents/plugins/opencode/session/processors/opencode.conversations-processor.d.ts +30 -0
- package/dist/agents/plugins/opencode/session/processors/opencode.conversations-processor.d.ts.map +1 -0
- package/dist/agents/plugins/opencode/session/processors/opencode.conversations-processor.js +116 -0
- package/dist/agents/plugins/opencode/session/processors/opencode.conversations-processor.js.map +1 -0
- package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.d.ts +102 -0
- package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.d.ts.map +1 -0
- package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.js +584 -0
- package/dist/agents/plugins/opencode/session/processors/opencode.metrics-processor.js.map +1 -0
- package/dist/agents/registry.d.ts +1 -1
- package/dist/agents/registry.d.ts.map +1 -1
- package/dist/agents/registry.js +5 -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/doctor/checks/AgentsCheck.d.ts +5 -0
- package/dist/cli/commands/doctor/checks/AgentsCheck.d.ts.map +1 -1
- package/dist/cli/commands/doctor/checks/AgentsCheck.js +29 -0
- package/dist/cli/commands/doctor/checks/AgentsCheck.js.map +1 -1
- package/dist/cli/commands/install.d.ts.map +1 -1
- package/dist/cli/commands/install.js +104 -13
- package/dist/cli/commands/install.js.map +1 -1
- package/dist/cli/commands/opencode-metrics.d.ts +13 -0
- package/dist/cli/commands/opencode-metrics.d.ts.map +1 -0
- package/dist/cli/commands/opencode-metrics.js +200 -0
- package/dist/cli/commands/opencode-metrics.js.map +1 -0
- 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/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +113 -0
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/commands/skill.d.ts +6 -0
- package/dist/cli/commands/skill.d.ts.map +1 -0
- package/dist/cli/commands/skill.js +196 -0
- package/dist/cli/commands/skill.js.map +1 -0
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +34 -6
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +12 -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/migrations/003-remove-hooks-node.migration.d.ts +22 -0
- package/dist/migrations/003-remove-hooks-node.migration.d.ts.map +1 -0
- package/dist/migrations/003-remove-hooks-node.migration.js +103 -0
- package/dist/migrations/003-remove-hooks-node.migration.js.map +1 -0
- package/dist/migrations/index.d.ts +1 -0
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/index.js +1 -1
- package/dist/migrations/index.js.map +1 -1
- package/dist/providers/plugins/sso/sso.http-client.js +2 -2
- package/dist/providers/plugins/sso/sso.http-client.js.map +1 -1
- package/dist/providers/plugins/sso/sso.setup-steps.d.ts.map +1 -1
- package/dist/providers/plugins/sso/sso.setup-steps.js +14 -10
- package/dist/providers/plugins/sso/sso.setup-steps.js.map +1 -1
- package/dist/skills/core/SkillDiscovery.d.ts +83 -0
- package/dist/skills/core/SkillDiscovery.d.ts.map +1 -0
- package/dist/skills/core/SkillDiscovery.js +237 -0
- package/dist/skills/core/SkillDiscovery.js.map +1 -0
- package/dist/skills/core/SkillManager.d.ts +86 -0
- package/dist/skills/core/SkillManager.d.ts.map +1 -0
- package/dist/skills/core/SkillManager.js +155 -0
- package/dist/skills/core/SkillManager.js.map +1 -0
- package/dist/skills/core/types.d.ts +120 -0
- package/dist/skills/core/types.d.ts.map +1 -0
- package/dist/skills/core/types.js +20 -0
- package/dist/skills/core/types.js.map +1 -0
- package/dist/skills/index.d.ts +12 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +12 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/utils/content-loader.d.ts +25 -0
- package/dist/skills/utils/content-loader.d.ts.map +1 -0
- package/dist/skills/utils/content-loader.js +161 -0
- package/dist/skills/utils/content-loader.js.map +1 -0
- package/dist/skills/utils/frontmatter.d.ts +60 -0
- package/dist/skills/utils/frontmatter.d.ts.map +1 -0
- package/dist/skills/utils/frontmatter.js +114 -0
- package/dist/skills/utils/frontmatter.js.map +1 -0
- package/dist/skills/utils/pattern-matcher.d.ts +60 -0
- package/dist/skills/utils/pattern-matcher.d.ts.map +1 -0
- package/dist/skills/utils/pattern-matcher.js +97 -0
- package/dist/skills/utils/pattern-matcher.js.map +1 -0
- 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/installation-detector.d.ts +22 -0
- package/dist/utils/installation-detector.d.ts.map +1 -0
- package/dist/utils/installation-detector.js +49 -0
- package/dist/utils/installation-detector.js.map +1 -0
- package/dist/utils/native-installer.d.ts +49 -0
- package/dist/utils/native-installer.d.ts.map +1 -0
- package/dist/utils/native-installer.js +225 -0
- package/dist/utils/native-installer.js.map +1 -0
- 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/dist/utils/version-utils.d.ts +50 -0
- package/dist/utils/version-utils.d.ts.map +1 -0
- package/dist/utils/version-utils.js +92 -0
- package/dist/utils/version-utils.js.map +1 -0
- package/package.json +11 -3
- package/scripts/copy-mr-skill-to-global.ts +252 -0
- package/scripts/demo-hooks.sh +125 -0
- package/scripts/test-hooks.sh +196 -0
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/INDEX.md +0 -205
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/TEMPLATE_SIZES.md +0 -74
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/layered-architecture.md.template +0 -143
- package/dist/agents/plugins/claude/plugin/claude-templates/templates/guides/architecture/project-structure.md.template +0 -127
- package/dist/agents/plugins/claude/plugin/commands/codemie-pr.md +0 -25
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List Assistants Command
|
|
3
|
+
*
|
|
4
|
+
* Unified command to view, register, and unregister CodeMie assistants
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import inquirer from 'inquirer';
|
|
9
|
+
import ora from 'ora';
|
|
10
|
+
import { logger } from '../../../utils/logger.js';
|
|
11
|
+
import { ConfigLoader } from '../../../utils/config.js';
|
|
12
|
+
import { createErrorContext, formatErrorForUser } from '../../../utils/errors.js';
|
|
13
|
+
import { registerClaudeSubagent, unregisterClaudeSubagent } from './generators/claude-agent-generator.js';
|
|
14
|
+
import { MESSAGES, COMMAND_NAMES, ACTIONS } from './constants.js';
|
|
15
|
+
import { getAuthenticatedClient, promptReauthentication } from '../../../utils/auth.js';
|
|
16
|
+
/**
|
|
17
|
+
* Create assistants list command
|
|
18
|
+
*/
|
|
19
|
+
export function createAssistantsListCommand() {
|
|
20
|
+
const command = new Command(COMMAND_NAMES.LIST);
|
|
21
|
+
command
|
|
22
|
+
.description(MESSAGES.LIST.COMMAND_DESCRIPTION)
|
|
23
|
+
.option('--profile <name>', MESSAGES.LIST.OPTION_PROFILE)
|
|
24
|
+
.option('--project <project>', MESSAGES.LIST.OPTION_PROJECT)
|
|
25
|
+
.option('--all-projects', MESSAGES.LIST.OPTION_ALL_PROJECTS)
|
|
26
|
+
.option('-v, --verbose', MESSAGES.SHARED.OPTION_VERBOSE)
|
|
27
|
+
.action(async (options) => {
|
|
28
|
+
if (options.verbose) {
|
|
29
|
+
enableVerboseLogging();
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
await manageAssistants(options);
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
handleError(error);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return command;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Enable verbose debug logging
|
|
42
|
+
*/
|
|
43
|
+
function enableVerboseLogging() {
|
|
44
|
+
process.env.CODEMIE_DEBUG = 'true';
|
|
45
|
+
const logFilePath = logger.getLogFilePath();
|
|
46
|
+
if (logFilePath) {
|
|
47
|
+
console.log(chalk.dim(`Debug logs: ${logFilePath}\n`));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Handle command errors
|
|
52
|
+
*/
|
|
53
|
+
function handleError(error) {
|
|
54
|
+
const context = createErrorContext(error);
|
|
55
|
+
logger.error('Failed to manage assistants', context);
|
|
56
|
+
console.error(formatErrorForUser(context));
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Check if error is authentication error
|
|
61
|
+
*/
|
|
62
|
+
function isAuthenticationError(error) {
|
|
63
|
+
return error instanceof Error && (error.message.includes('401') || error.message.includes('403'));
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Manage assistants - unified list/register/unregister
|
|
67
|
+
*/
|
|
68
|
+
async function manageAssistants(options) {
|
|
69
|
+
// 1. Load current profile
|
|
70
|
+
const config = await ConfigLoader.load();
|
|
71
|
+
const profileName = options.profile || await ConfigLoader.getActiveProfileName() || 'default';
|
|
72
|
+
logger.debug('Managing assistants', { profileName, options });
|
|
73
|
+
// 2. Get authenticated client and fetch assistants from backend
|
|
74
|
+
const client = await getAuthenticatedClient(config);
|
|
75
|
+
const backendAssistants = await fetchAssistants(client, options, config);
|
|
76
|
+
// 3. Get currently registered assistants
|
|
77
|
+
const registeredAssistants = config.codemieAssistants || [];
|
|
78
|
+
// 4. Sort assistants: registered first, then unregistered
|
|
79
|
+
const sortedAssistants = sortAssistantsByRegistration(backendAssistants, registeredAssistants);
|
|
80
|
+
if (sortedAssistants.length === 0) {
|
|
81
|
+
displayNoAssistantsMessage(options, config);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
// 5. Prompt user selection with Update/Cancel
|
|
85
|
+
const registeredIds = new Set(registeredAssistants.map(a => a.id));
|
|
86
|
+
const { selectedIds, action } = await promptAssistantSelection(sortedAssistants, registeredIds);
|
|
87
|
+
if (action === ACTIONS.CANCEL) {
|
|
88
|
+
console.log(chalk.dim(MESSAGES.LIST.NO_CHANGES_MADE));
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
// 6. Apply changes
|
|
92
|
+
await applyChanges(selectedIds, sortedAssistants, registeredAssistants, config, profileName);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Sort assistants with registered ones first
|
|
96
|
+
*/
|
|
97
|
+
function sortAssistantsByRegistration(assistants, registeredAssistants) {
|
|
98
|
+
const registeredIds = new Set(registeredAssistants.map(a => a.id));
|
|
99
|
+
const registered = assistants.filter(a => registeredIds.has(a.id));
|
|
100
|
+
const unregistered = assistants.filter(a => !registeredIds.has(a.id));
|
|
101
|
+
return [...registered, ...unregistered];
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Display message when no assistants are found
|
|
105
|
+
*/
|
|
106
|
+
function displayNoAssistantsMessage(options, config) {
|
|
107
|
+
console.log(chalk.yellow(MESSAGES.LIST.NO_ASSISTANTS));
|
|
108
|
+
const filterProject = options.project || config.codeMieProject;
|
|
109
|
+
if (filterProject) {
|
|
110
|
+
console.log(chalk.dim(MESSAGES.LIST.FILTERED_BY_PROJECT(chalk.cyan(filterProject))));
|
|
111
|
+
console.log(chalk.dim(`Try ${chalk.cyan(MESSAGES.LIST.TRY_ALL_PROJECTS)}${MESSAGES.LIST.HINT_TRY_ALL}`));
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Get project filter from options or config
|
|
116
|
+
*/
|
|
117
|
+
function getProjectFilter(options, config) {
|
|
118
|
+
if (options.allProjects) {
|
|
119
|
+
return undefined;
|
|
120
|
+
}
|
|
121
|
+
return options.project || config.codeMieProject;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Fetch assistants from backend
|
|
125
|
+
*/
|
|
126
|
+
async function fetchAssistants(client, options, config) {
|
|
127
|
+
const spinner = ora(MESSAGES.LIST.SPINNER_FETCHING).start();
|
|
128
|
+
try {
|
|
129
|
+
const filters = {
|
|
130
|
+
my_assistants: true
|
|
131
|
+
};
|
|
132
|
+
const projectFilter = getProjectFilter(options, config);
|
|
133
|
+
if (projectFilter) {
|
|
134
|
+
filters.project = projectFilter;
|
|
135
|
+
logger.debug('Filtering assistants by project', { project: projectFilter });
|
|
136
|
+
}
|
|
137
|
+
const assistants = await client.assistants.list({
|
|
138
|
+
filters,
|
|
139
|
+
minimal_response: false
|
|
140
|
+
});
|
|
141
|
+
spinner.succeed(chalk.green(MESSAGES.LIST.SUCCESS_FOUND(assistants.length)));
|
|
142
|
+
return assistants;
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
spinner.fail(chalk.red(MESSAGES.LIST.ERROR_FETCH_FAILED));
|
|
146
|
+
logger.error('Assistant list API call failed', { error });
|
|
147
|
+
if (isAuthenticationError(error)) {
|
|
148
|
+
await promptReauthentication(config);
|
|
149
|
+
}
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Build display info for assistant choice
|
|
155
|
+
*/
|
|
156
|
+
function buildAssistantDisplayInfo(assistant) {
|
|
157
|
+
const projectInfo = assistant.project ? chalk.dim(` [${assistant.project}]`) : '';
|
|
158
|
+
const firstLine = assistant.name + projectInfo;
|
|
159
|
+
const descriptionInfo = assistant.description ? chalk.dim(`\n ${assistant.description}`) : '';
|
|
160
|
+
return firstLine + descriptionInfo;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Create assistant choices for selection prompt
|
|
164
|
+
*/
|
|
165
|
+
function createAssistantChoices(assistants, registeredIds) {
|
|
166
|
+
return assistants.map(assistant => {
|
|
167
|
+
const a = assistant;
|
|
168
|
+
const isRegistered = registeredIds.has(a.id);
|
|
169
|
+
const displayName = buildAssistantDisplayInfo(a);
|
|
170
|
+
return {
|
|
171
|
+
name: displayName,
|
|
172
|
+
value: a.id,
|
|
173
|
+
short: a.name,
|
|
174
|
+
checked: isRegistered
|
|
175
|
+
};
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Prompt user to select assistants with Update/Cancel
|
|
180
|
+
*/
|
|
181
|
+
async function promptAssistantSelection(assistants, registeredIds) {
|
|
182
|
+
const choices = createAssistantChoices(assistants, registeredIds);
|
|
183
|
+
const { selectedIds } = await inquirer.prompt([
|
|
184
|
+
{
|
|
185
|
+
type: 'checkbox',
|
|
186
|
+
name: 'selectedIds',
|
|
187
|
+
message: MESSAGES.LIST.PROMPT_SELECT,
|
|
188
|
+
choices,
|
|
189
|
+
pageSize: 15
|
|
190
|
+
}
|
|
191
|
+
]);
|
|
192
|
+
const { action } = await inquirer.prompt([
|
|
193
|
+
{
|
|
194
|
+
type: 'list',
|
|
195
|
+
name: 'action',
|
|
196
|
+
message: MESSAGES.LIST.PROMPT_ACTION,
|
|
197
|
+
choices: [
|
|
198
|
+
{ name: MESSAGES.LIST.ACTION_UPDATE, value: ACTIONS.UPDATE },
|
|
199
|
+
{ name: MESSAGES.LIST.ACTION_CANCEL, value: ACTIONS.CANCEL }
|
|
200
|
+
]
|
|
201
|
+
}
|
|
202
|
+
]);
|
|
203
|
+
return { selectedIds, action };
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Determine which assistants to register and unregister
|
|
207
|
+
*/
|
|
208
|
+
function determineChanges(selectedIds, allAssistants, registeredAssistants) {
|
|
209
|
+
const selectedSet = new Set(selectedIds);
|
|
210
|
+
const registeredIds = new Set(registeredAssistants.map(a => a.id));
|
|
211
|
+
const toRegister = allAssistants.filter(a => selectedSet.has(a.id) && !registeredIds.has(a.id));
|
|
212
|
+
const toUnregister = registeredAssistants.filter(a => !selectedSet.has(a.id));
|
|
213
|
+
return { toRegister, toUnregister };
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Execute assistant operation with spinner
|
|
217
|
+
*/
|
|
218
|
+
async function executeWithSpinner(spinnerMessage, operation, successMessage, errorMessage, onError) {
|
|
219
|
+
const spinner = ora(spinnerMessage).start();
|
|
220
|
+
try {
|
|
221
|
+
const result = await operation();
|
|
222
|
+
spinner.succeed(chalk.green(successMessage));
|
|
223
|
+
return result;
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
spinner.fail(chalk.red(errorMessage));
|
|
227
|
+
if (onError) {
|
|
228
|
+
onError(error);
|
|
229
|
+
}
|
|
230
|
+
return null;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Unregister an assistant
|
|
235
|
+
*/
|
|
236
|
+
async function unregisterAssistant(assistant) {
|
|
237
|
+
await executeWithSpinner(MESSAGES.LIST.SPINNER_UNREGISTERING(chalk.bold(assistant.name)), async () => {
|
|
238
|
+
// Remove Claude subagent from ~/.claude/agents/
|
|
239
|
+
await unregisterClaudeSubagent(assistant.slug);
|
|
240
|
+
}, MESSAGES.LIST.SUCCESS_UNREGISTERED(chalk.bold(assistant.name), chalk.cyan(assistant.slug)), MESSAGES.LIST.ERROR_UNREGISTER_FAILED(assistant.name), (error) => logger.error('Assistant removal failed', { error, assistantId: assistant.id }));
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Register an assistant
|
|
244
|
+
*/
|
|
245
|
+
async function registerAssistant(assistant) {
|
|
246
|
+
const result = await executeWithSpinner(MESSAGES.LIST.SPINNER_REGISTERING(chalk.bold(assistant.name)), async () => {
|
|
247
|
+
// Register Claude subagent in ~/.claude/agents/
|
|
248
|
+
// Claude Code will auto-discover it and make it available via @mentions
|
|
249
|
+
await registerClaudeSubagent(assistant);
|
|
250
|
+
return assistant.slug;
|
|
251
|
+
}, MESSAGES.LIST.SUCCESS_REGISTERED(chalk.bold(assistant.name), chalk.cyan(`@${assistant.slug}`)), MESSAGES.LIST.ERROR_REGISTER_FAILED(assistant.name), (error) => logger.error('Assistant generation failed', { error, assistantId: assistant.id }));
|
|
252
|
+
if (!result) {
|
|
253
|
+
return null;
|
|
254
|
+
}
|
|
255
|
+
return {
|
|
256
|
+
id: assistant.id,
|
|
257
|
+
name: assistant.name,
|
|
258
|
+
slug: assistant.slug,
|
|
259
|
+
description: assistant.description,
|
|
260
|
+
project: assistant.project,
|
|
261
|
+
registeredAt: new Date().toISOString()
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Display summary of changes
|
|
266
|
+
*/
|
|
267
|
+
function displaySummary(toRegister, toUnregister, profileName, config) {
|
|
268
|
+
const totalChanges = toRegister.length + toUnregister.length;
|
|
269
|
+
console.log(chalk.green(MESSAGES.LIST.SUMMARY_UPDATED(totalChanges)));
|
|
270
|
+
if (toRegister.length > 0) {
|
|
271
|
+
console.log(chalk.dim(MESSAGES.LIST.SUMMARY_REGISTERED(toRegister.length)));
|
|
272
|
+
}
|
|
273
|
+
if (toUnregister.length > 0) {
|
|
274
|
+
console.log(chalk.dim(MESSAGES.LIST.SUMMARY_UNREGISTERED(toUnregister.length)));
|
|
275
|
+
}
|
|
276
|
+
console.log(chalk.dim(MESSAGES.LIST.SUMMARY_PROFILE(profileName)));
|
|
277
|
+
displayCurrentlyRegistered(config);
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Display currently registered assistants
|
|
281
|
+
*/
|
|
282
|
+
function displayCurrentlyRegistered(config) {
|
|
283
|
+
if (!config.codemieAssistants || config.codemieAssistants.length === 0) {
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
console.log(chalk.bold(MESSAGES.LIST.CURRENTLY_REGISTERED));
|
|
287
|
+
config.codemieAssistants.forEach((assistant) => {
|
|
288
|
+
const slugText = chalk.cyan(`/${assistant.slug}`);
|
|
289
|
+
console.log(chalk.white(` • ${slugText} - ${assistant.name}`));
|
|
290
|
+
});
|
|
291
|
+
console.log('');
|
|
292
|
+
}
|
|
293
|
+
/**
|
|
294
|
+
* Apply registration changes
|
|
295
|
+
*/
|
|
296
|
+
async function applyChanges(selectedIds, allAssistants, registeredAssistants, config, profileName) {
|
|
297
|
+
const { toRegister, toUnregister } = determineChanges(selectedIds, allAssistants, registeredAssistants);
|
|
298
|
+
if (toRegister.length === 0 && toUnregister.length === 0) {
|
|
299
|
+
console.log(chalk.yellow(MESSAGES.LIST.NO_CHANGES_TO_APPLY));
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
console.log('');
|
|
303
|
+
// Unregister first
|
|
304
|
+
for (const assistant of toUnregister) {
|
|
305
|
+
await unregisterAssistant(assistant);
|
|
306
|
+
}
|
|
307
|
+
// Register new ones
|
|
308
|
+
const newRegistrations = [];
|
|
309
|
+
for (const assistant of toRegister) {
|
|
310
|
+
const registered = await registerAssistant(assistant);
|
|
311
|
+
if (registered) {
|
|
312
|
+
newRegistrations.push(registered);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
// Update config
|
|
316
|
+
const selectedSet = new Set(selectedIds);
|
|
317
|
+
const remainingRegistered = registeredAssistants.filter(a => selectedSet.has(a.id));
|
|
318
|
+
config.codemieAssistants = [...remainingRegistered, ...newRegistrations];
|
|
319
|
+
await ConfigLoader.saveProfile(profileName, config);
|
|
320
|
+
// Display summary
|
|
321
|
+
displaySummary(toRegister, toUnregister, profileName, config);
|
|
322
|
+
}
|
|
323
|
+
//# sourceMappingURL=list.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/cli/commands/assistants/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
import { ItemWiseHealthCheck, HealthCheckResult, HealthCheckDetail } from '../types.js';
|
|
5
5
|
export declare class AgentsCheck implements ItemWiseHealthCheck {
|
|
6
6
|
name: string;
|
|
7
|
+
/**
|
|
8
|
+
* Check if agent was installed via deprecated npm method
|
|
9
|
+
* Returns warning detail if npm install detected, null otherwise
|
|
10
|
+
*/
|
|
11
|
+
private checkDeprecatedInstallation;
|
|
7
12
|
run(): Promise<HealthCheckResult>;
|
|
8
13
|
runWithItemDisplay(onStartItem: (itemName: string) => void, onDisplayItem: (detail: HealthCheckDetail) => void): Promise<HealthCheckResult>;
|
|
9
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentsCheck.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/AgentsCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"AgentsCheck.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/AgentsCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAExF,qBAAa,WAAY,YAAW,mBAAmB;IACrD,IAAI,SAAsB;IAE1B;;;OAGG;YACW,2BAA2B;IAgBnC,GAAG,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAiCjC,kBAAkB,CACtB,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,EACvC,aAAa,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,GACjD,OAAO,CAAC,iBAAiB,CAAC;CAsC9B"}
|
|
@@ -4,6 +4,22 @@
|
|
|
4
4
|
import { AgentRegistry } from '../../../../agents/registry.js';
|
|
5
5
|
export class AgentsCheck {
|
|
6
6
|
name = 'Installed Agents';
|
|
7
|
+
/**
|
|
8
|
+
* Check if agent was installed via deprecated npm method
|
|
9
|
+
* Returns warning detail if npm install detected, null otherwise
|
|
10
|
+
*/
|
|
11
|
+
async checkDeprecatedInstallation(agent, versionStr) {
|
|
12
|
+
if (agent.getInstallationMethod) {
|
|
13
|
+
const method = await agent.getInstallationMethod();
|
|
14
|
+
if (method === 'npm') {
|
|
15
|
+
return {
|
|
16
|
+
status: 'warn',
|
|
17
|
+
message: `${agent.displayName}${versionStr} - installed via npm (deprecated, use: codemie install claude --supported)`
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
7
23
|
async run() {
|
|
8
24
|
const details = [];
|
|
9
25
|
let success = true;
|
|
@@ -12,6 +28,12 @@ export class AgentsCheck {
|
|
|
12
28
|
for (const agent of installedAgents) {
|
|
13
29
|
const version = await agent.getVersion();
|
|
14
30
|
const versionStr = version ? ` (${version})` : '';
|
|
31
|
+
// Check for deprecated npm installation
|
|
32
|
+
const deprecationWarning = await this.checkDeprecatedInstallation(agent, versionStr);
|
|
33
|
+
if (deprecationWarning) {
|
|
34
|
+
details.push(deprecationWarning);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
15
37
|
details.push({
|
|
16
38
|
status: 'ok',
|
|
17
39
|
message: `${agent.displayName}${versionStr}`
|
|
@@ -35,6 +57,13 @@ export class AgentsCheck {
|
|
|
35
57
|
onStartItem(`Checking ${agent.displayName}...`);
|
|
36
58
|
const version = await agent.getVersion();
|
|
37
59
|
const versionStr = version ? ` (${version})` : '';
|
|
60
|
+
// Check for deprecated npm installation
|
|
61
|
+
const deprecationWarning = await this.checkDeprecatedInstallation(agent, versionStr);
|
|
62
|
+
if (deprecationWarning) {
|
|
63
|
+
details.push(deprecationWarning);
|
|
64
|
+
onDisplayItem(deprecationWarning);
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
38
67
|
const detail = {
|
|
39
68
|
status: 'ok',
|
|
40
69
|
message: `${agent.displayName}${versionStr}`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentsCheck.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/AgentsCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentsCheck.js","sourceRoot":"","sources":["../../../../../src/cli/commands/doctor/checks/AgentsCheck.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAI/D,MAAM,OAAO,WAAW;IACtB,IAAI,GAAG,kBAAkB,CAAC;IAE1B;;;OAGG;IACK,KAAK,CAAC,2BAA2B,CACvC,KAAmB,EACnB,UAAkB;QAElB,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAChC,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,qBAAqB,EAAE,CAAC;YACnD,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;gBACrB,OAAO;oBACL,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,GAAG,KAAK,CAAC,WAAW,GAAG,UAAU,4EAA4E;iBACvH,CAAC;YACJ,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,kBAAkB,EAAE,CAAC;QAEjE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;gBACpC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;gBACzC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAElD,wCAAwC;gBACxC,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACrF,IAAI,kBAAkB,EAAE,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACjC,SAAS;gBACX,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,GAAG,KAAK,CAAC,WAAW,GAAG,UAAU,EAAE;iBAC7C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,gDAAgD;aAC1D,CAAC,CAAC;QACL,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,WAAuC,EACvC,aAAkD;QAElD,MAAM,OAAO,GAAwB,EAAE,CAAC;QACxC,IAAI,OAAO,GAAG,IAAI,CAAC;QAEnB,MAAM,eAAe,GAAG,MAAM,aAAa,CAAC,kBAAkB,EAAE,CAAC;QAEjE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;gBACpC,WAAW,CAAC,YAAY,KAAK,CAAC,WAAW,KAAK,CAAC,CAAC;gBAChD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;gBACzC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBAElD,wCAAwC;gBACxC,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;gBACrF,IAAI,kBAAkB,EAAE,CAAC;oBACvB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACjC,aAAa,CAAC,kBAAkB,CAAC,CAAC;oBAClC,SAAS;gBACX,CAAC;gBAED,MAAM,MAAM,GAAsB;oBAChC,MAAM,EAAE,IAAI;oBACZ,OAAO,EAAE,GAAG,KAAK,CAAC,WAAW,GAAG,UAAU,EAAE;iBAC7C,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrB,aAAa,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAsB;gBAChC,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,gDAAgD;aAC1D,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,aAAa,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,oBAAoB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,oBAAoB,IAAI,OAAO,CAgP9C"}
|
|
@@ -8,7 +8,9 @@ export function createInstallCommand() {
|
|
|
8
8
|
command
|
|
9
9
|
.description('Install an external AI coding agent or development framework')
|
|
10
10
|
.argument('[name]', 'Agent or framework name to install (run without argument to see available)')
|
|
11
|
-
.
|
|
11
|
+
.argument('[version]', 'Optional: specific version to install (e.g., 2.0.30)')
|
|
12
|
+
.option('--supported', 'Install the latest supported version tested with CodeMie')
|
|
13
|
+
.action(async (name, version, options) => {
|
|
12
14
|
try {
|
|
13
15
|
// If no name provided, show available agents and frameworks
|
|
14
16
|
if (!name) {
|
|
@@ -53,23 +55,112 @@ export function createInstallCommand() {
|
|
|
53
55
|
// Try agent first
|
|
54
56
|
const agent = AgentRegistry.getAgent(name);
|
|
55
57
|
if (agent) {
|
|
56
|
-
//
|
|
58
|
+
// Determine which version to install
|
|
59
|
+
let versionToInstall;
|
|
60
|
+
let actualVersionToInstall; // Resolved version for display
|
|
61
|
+
// Priority: --supported flag > version argument > 'supported' (default for Claude) > undefined (latest)
|
|
62
|
+
if (options?.supported) {
|
|
63
|
+
versionToInstall = 'supported';
|
|
64
|
+
// Resolve 'supported' to actual version for display and comparison
|
|
65
|
+
if (agent.checkVersionCompatibility) {
|
|
66
|
+
const compat = await agent.checkVersionCompatibility();
|
|
67
|
+
actualVersionToInstall = compat.supportedVersion;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (version) {
|
|
71
|
+
versionToInstall = version;
|
|
72
|
+
actualVersionToInstall = version;
|
|
73
|
+
}
|
|
74
|
+
else if (agent.name === 'claude' && agent.checkVersionCompatibility) {
|
|
75
|
+
// Default to supported version for Claude (native installer)
|
|
76
|
+
versionToInstall = 'supported';
|
|
77
|
+
const compat = await agent.checkVersionCompatibility();
|
|
78
|
+
actualVersionToInstall = compat.supportedVersion;
|
|
79
|
+
}
|
|
80
|
+
// Check if already installed with matching version
|
|
57
81
|
if (await agent.isInstalled()) {
|
|
58
|
-
|
|
59
|
-
|
|
82
|
+
const installedVersion = await agent.getVersion();
|
|
83
|
+
// If requesting specific version, check if it matches
|
|
84
|
+
if (actualVersionToInstall && installedVersion) {
|
|
85
|
+
if (installedVersion === actualVersionToInstall) {
|
|
86
|
+
console.log(chalk.blueBright(`${agent.displayName} v${installedVersion} is already installed`));
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
// Different version installed, ask to reinstall
|
|
91
|
+
const versionDisplay = options?.supported ? `${actualVersionToInstall} (supported)` : actualVersionToInstall;
|
|
92
|
+
console.log(chalk.yellow(`${agent.displayName} v${installedVersion} is already installed (requested: ${versionDisplay})`));
|
|
93
|
+
const inquirer = (await import('inquirer')).default;
|
|
94
|
+
const { confirm } = await inquirer.prompt([
|
|
95
|
+
{
|
|
96
|
+
type: 'confirm',
|
|
97
|
+
name: 'confirm',
|
|
98
|
+
message: `Reinstall with version ${versionDisplay}?`,
|
|
99
|
+
default: false,
|
|
100
|
+
},
|
|
101
|
+
]);
|
|
102
|
+
if (!confirm) {
|
|
103
|
+
console.log(chalk.gray('Installation cancelled'));
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else if (!actualVersionToInstall) {
|
|
109
|
+
// No specific version requested, already installed
|
|
110
|
+
console.log(chalk.blueBright(`${agent.displayName} is already installed`));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
60
113
|
}
|
|
61
|
-
|
|
114
|
+
// Build installation message
|
|
115
|
+
const isUsingSupported = versionToInstall === 'supported';
|
|
116
|
+
const versionMessage = isUsingSupported && actualVersionToInstall
|
|
117
|
+
? ` v${actualVersionToInstall} (supported version)`
|
|
118
|
+
: actualVersionToInstall
|
|
119
|
+
? ` v${actualVersionToInstall}`
|
|
120
|
+
: '';
|
|
121
|
+
const spinner = ora(`Installing ${agent.displayName}${versionMessage}...`).start();
|
|
62
122
|
try {
|
|
63
|
-
|
|
64
|
-
|
|
123
|
+
// Use installVersion if available and version specified
|
|
124
|
+
if (versionToInstall && agent.installVersion) {
|
|
125
|
+
await agent.installVersion(versionToInstall);
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
await agent.install();
|
|
129
|
+
}
|
|
130
|
+
// Get installed version for success message
|
|
131
|
+
const installedVersion = await agent.getVersion();
|
|
132
|
+
const installedVersionStr = installedVersion ? ` v${installedVersion}` : '';
|
|
133
|
+
spinner.succeed(`${agent.displayName}${installedVersionStr} installed successfully`);
|
|
134
|
+
// Show warning if installed version is newer than supported
|
|
135
|
+
if (installedVersion && agent.checkVersionCompatibility) {
|
|
136
|
+
const compat = await agent.checkVersionCompatibility();
|
|
137
|
+
if (compat.isNewer) {
|
|
138
|
+
console.log();
|
|
139
|
+
console.log(chalk.yellow(`⚠️ Note: This version (${installedVersion}) is newer than the supported version (${compat.supportedVersion}).`));
|
|
140
|
+
console.log(chalk.yellow(` You may encounter compatibility issues with the CodeMie backend.`));
|
|
141
|
+
console.log(chalk.yellow(` To install the supported version, run:`), chalk.blueBright(`codemie install ${agent.name} --supported`));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
65
144
|
// Show how to run the newly installed agent
|
|
66
145
|
console.log();
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
146
|
+
// Check for custom post-install hints (for ACP adapters, IDE integrations, etc.)
|
|
147
|
+
const metadata = agent.metadata;
|
|
148
|
+
if (metadata?.postInstallHints && metadata.postInstallHints.length > 0) {
|
|
149
|
+
console.log(chalk.cyan('💡 Next steps:'));
|
|
150
|
+
for (const line of metadata.postInstallHints) {
|
|
151
|
+
console.log(chalk.white(` ${line}`));
|
|
152
|
+
}
|
|
153
|
+
console.log();
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
// Default hints for regular agents
|
|
157
|
+
console.log(chalk.cyan('💡 Next steps:'));
|
|
158
|
+
// Handle special case where agent name already includes 'codemie-' prefix
|
|
159
|
+
const command = agent.name.startsWith('codemie-') ? agent.name : `codemie-${agent.name}`;
|
|
160
|
+
console.log(chalk.white(` Interactive mode:`), chalk.blueBright(command));
|
|
161
|
+
console.log(chalk.white(` Single task:`), chalk.blueBright(`${command} --task "your task"`));
|
|
162
|
+
console.log();
|
|
163
|
+
}
|
|
73
164
|
}
|
|
74
165
|
catch (error) {
|
|
75
166
|
spinner.fail(`Failed to install ${agent.displayName}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,oBAAoB;IAClC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IAEvC,OAAO;SACJ,WAAW,CAAC,8DAA8D,CAAC;SAC3E,QAAQ,CAAC,QAAQ,EAAE,4EAA4E,CAAC;SAChG,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/cli/commands/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenCode Metrics CLI Command
|
|
3
|
+
*
|
|
4
|
+
* Trigger OpenCode session processing to extract metrics and write JSONL deltas.
|
|
5
|
+
* Per tech spec Review 13 G1: Provides CLI entry point for Phase 1 metrics extraction.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* codemie opencode-metrics --session <id> # Process specific session
|
|
9
|
+
* codemie opencode-metrics --discover # Discover and process all unprocessed sessions
|
|
10
|
+
*/
|
|
11
|
+
import { Command } from 'commander';
|
|
12
|
+
export declare function createOpencodeMetricsCommand(): Command;
|
|
13
|
+
//# sourceMappingURL=opencode-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-metrics.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/opencode-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,4BAA4B,IAAI,OAAO,CAiDtD"}
|