@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assistants Chat Command
|
|
3
|
+
*
|
|
4
|
+
* Send messages to registered CodeMie assistants
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
/**
|
|
8
|
+
* Create assistants chat command
|
|
9
|
+
*/
|
|
10
|
+
export declare function createAssistantsChatCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/assistants/chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAepC;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAgCrD"}
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assistants Chat Command
|
|
3
|
+
*
|
|
4
|
+
* Send messages to registered CodeMie assistants
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import ora from 'ora';
|
|
9
|
+
import inquirer from 'inquirer';
|
|
10
|
+
import { logger } from '../../../utils/logger.js';
|
|
11
|
+
import { ConfigLoader } from '../../../utils/config.js';
|
|
12
|
+
import { createErrorContext, formatErrorForUser } from '../../../utils/errors.js';
|
|
13
|
+
import { EXIT_PROMPTS, ROLES, MESSAGES } from './constants.js';
|
|
14
|
+
import { getAuthenticatedClient, promptReauthentication } from '../../../utils/auth.js';
|
|
15
|
+
/** Assistant label color */
|
|
16
|
+
const ASSISTANT_LABEL_COLOR = [177, 185, 249];
|
|
17
|
+
/**
|
|
18
|
+
* Create assistants chat command
|
|
19
|
+
*/
|
|
20
|
+
export function createAssistantsChatCommand() {
|
|
21
|
+
const command = new Command('chat');
|
|
22
|
+
command
|
|
23
|
+
.description(MESSAGES.CHAT.COMMAND_DESCRIPTION)
|
|
24
|
+
.argument('[assistant-id]', MESSAGES.CHAT.ARGUMENT_ASSISTANT_ID)
|
|
25
|
+
.argument('[message]', MESSAGES.CHAT.ARGUMENT_MESSAGE)
|
|
26
|
+
.option('-v, --verbose', MESSAGES.SHARED.OPTION_VERBOSE)
|
|
27
|
+
.option('--conversation-id <id>', 'Conversation ID for maintaining context across calls')
|
|
28
|
+
.action(async (assistantId, message, options) => {
|
|
29
|
+
if (options.verbose) {
|
|
30
|
+
process.env.CODEMIE_DEBUG = 'true';
|
|
31
|
+
const logFilePath = logger.getLogFilePath();
|
|
32
|
+
if (logFilePath) {
|
|
33
|
+
console.log(chalk.dim(`Debug logs: ${logFilePath}\n`));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
try {
|
|
37
|
+
await chatWithAssistant(assistantId, message, options.conversationId);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
const context = createErrorContext(error);
|
|
41
|
+
logger.error('Failed to chat with assistant', context);
|
|
42
|
+
console.error(formatErrorForUser(context));
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
return command;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Chat with CodeMie assistant
|
|
50
|
+
*/
|
|
51
|
+
async function chatWithAssistant(assistantId, message, conversationId) {
|
|
52
|
+
const config = await ConfigLoader.load();
|
|
53
|
+
const registeredAssistants = config.codemieAssistants || [];
|
|
54
|
+
const client = await getAuthenticatedClient(config);
|
|
55
|
+
// Resolve conversation ID: CLI option > environment variable > undefined
|
|
56
|
+
const resolvedConversationId = conversationId || process.env.CODEMIE_SESSION_ID;
|
|
57
|
+
if (assistantId && message) { // Single-message mode (example: for Claude Code skill)
|
|
58
|
+
const assistant = findAssistant(registeredAssistants, assistantId);
|
|
59
|
+
await sendSingleMessage(client, assistant, message, { quiet: true }, config, resolvedConversationId);
|
|
60
|
+
}
|
|
61
|
+
else { // Interactive mode
|
|
62
|
+
const assistant = await promptAssistantSelection(registeredAssistants);
|
|
63
|
+
await interactiveChat(client, assistant, config, resolvedConversationId);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Find assistant by ID or exit with error
|
|
68
|
+
*/
|
|
69
|
+
function findAssistant(assistants, assistantId) {
|
|
70
|
+
if (assistants.length === 0) {
|
|
71
|
+
console.error(chalk.red(MESSAGES.SHARED.ERROR_NO_ASSISTANTS));
|
|
72
|
+
console.log(chalk.dim(MESSAGES.SHARED.HINT_REGISTER) + chalk.cyan(MESSAGES.SHARED.COMMAND_LIST) + chalk.dim(MESSAGES.SHARED.HINT_REGISTER_SUFFIX));
|
|
73
|
+
process.exit(1);
|
|
74
|
+
}
|
|
75
|
+
const assistant = assistants.find(a => a.id === assistantId);
|
|
76
|
+
if (!assistant) {
|
|
77
|
+
console.error(chalk.red(MESSAGES.SHARED.ERROR_ASSISTANT_NOT_FOUND(assistantId)));
|
|
78
|
+
console.log(chalk.dim(MESSAGES.SHARED.HINT_REGISTER) + chalk.cyan(MESSAGES.SHARED.COMMAND_LIST) + chalk.dim(MESSAGES.SHARED.HINT_SEE_ASSISTANTS));
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
return assistant;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Prompt user to select an assistant
|
|
85
|
+
*/
|
|
86
|
+
async function promptAssistantSelection(assistants) {
|
|
87
|
+
if (assistants.length === 0) {
|
|
88
|
+
console.error(chalk.red(MESSAGES.SHARED.ERROR_NO_ASSISTANTS));
|
|
89
|
+
console.log(chalk.dim(MESSAGES.SHARED.HINT_REGISTER) + chalk.cyan(MESSAGES.SHARED.COMMAND_LIST) + chalk.dim(MESSAGES.SHARED.HINT_REGISTER_SUFFIX));
|
|
90
|
+
process.exit(1);
|
|
91
|
+
}
|
|
92
|
+
const choices = assistants.map(assistant => {
|
|
93
|
+
const slugText = chalk.dim(`(/${assistant.slug})`);
|
|
94
|
+
return {
|
|
95
|
+
name: `${assistant.name} ${slugText}`,
|
|
96
|
+
value: assistant.id
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
const { selectedId } = await inquirer.prompt([
|
|
100
|
+
{
|
|
101
|
+
type: 'list',
|
|
102
|
+
name: 'selectedId',
|
|
103
|
+
message: MESSAGES.SHARED.PROMPT_SELECT_ASSISTANT,
|
|
104
|
+
choices
|
|
105
|
+
}
|
|
106
|
+
]);
|
|
107
|
+
return findAssistant(assistants, selectedId);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Interactive chat session with conversation history
|
|
111
|
+
*/
|
|
112
|
+
async function interactiveChat(client, assistant, config, conversationId) {
|
|
113
|
+
const history = [];
|
|
114
|
+
console.log(chalk.bold.cyan(MESSAGES.CHAT.HEADER(assistant.name)));
|
|
115
|
+
console.log(chalk.dim(MESSAGES.CHAT.INSTRUCTIONS));
|
|
116
|
+
while (true) {
|
|
117
|
+
const { message } = await inquirer.prompt([
|
|
118
|
+
{
|
|
119
|
+
type: 'input',
|
|
120
|
+
name: 'message',
|
|
121
|
+
message: MESSAGES.CHAT.PROMPT_YOUR_MESSAGE,
|
|
122
|
+
prefix: '',
|
|
123
|
+
validate: (input) => input.trim().length > 0 || MESSAGES.CHAT.VALIDATION_MESSAGE_EMPTY
|
|
124
|
+
}
|
|
125
|
+
]);
|
|
126
|
+
if (isExitCommand(message)) {
|
|
127
|
+
console.log(chalk.dim(MESSAGES.CHAT.GOODBYE));
|
|
128
|
+
break;
|
|
129
|
+
}
|
|
130
|
+
const spinner = ora(MESSAGES.CHAT.SPINNER_THINKING).start();
|
|
131
|
+
try {
|
|
132
|
+
const response = await sendMessageWithHistory(client, assistant, message, history, conversationId);
|
|
133
|
+
spinner.stop();
|
|
134
|
+
console.log(chalk.rgb(...ASSISTANT_LABEL_COLOR)(`[Assistant @${assistant.slug}]`), response || MESSAGES.CHAT.FALLBACK_NO_RESPONSE);
|
|
135
|
+
console.log('');
|
|
136
|
+
history.push({ role: ROLES.USER, message }, { role: ROLES.ASSISTANT, message: response });
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
spinner.fail(chalk.red(MESSAGES.CHAT.ERROR_SEND_FAILED));
|
|
140
|
+
await handleChatError(error, config);
|
|
141
|
+
console.log(chalk.yellow(MESSAGES.CHAT.RETRY_PROMPT));
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Send a single message (for Claude Code skills in quiet mode)
|
|
147
|
+
*/
|
|
148
|
+
async function sendSingleMessage(client, assistant, message, options, config, conversationId) {
|
|
149
|
+
try {
|
|
150
|
+
const response = await sendMessageWithHistory(client, assistant, message, [], conversationId);
|
|
151
|
+
if (options.quiet) {
|
|
152
|
+
console.log(response || MESSAGES.CHAT.FALLBACK_NO_RESPONSE);
|
|
153
|
+
}
|
|
154
|
+
else {
|
|
155
|
+
console.log('\n' + chalk.bold.cyan(`${assistant.name}:`));
|
|
156
|
+
console.log(response || MESSAGES.CHAT.FALLBACK_NO_RESPONSE);
|
|
157
|
+
console.log('');
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
await handleChatError(error, config);
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Send message to assistant with conversation history
|
|
167
|
+
*/
|
|
168
|
+
async function sendMessageWithHistory(client, assistant, message, history, conversationId) {
|
|
169
|
+
logger.debug('Sending message to assistant', {
|
|
170
|
+
assistantId: assistant.id,
|
|
171
|
+
assistantName: assistant.name,
|
|
172
|
+
messageLength: message.length,
|
|
173
|
+
historyLength: history.length,
|
|
174
|
+
conversationId: conversationId
|
|
175
|
+
});
|
|
176
|
+
const response = await client.assistants.chat(assistant.id, {
|
|
177
|
+
conversation_id: conversationId,
|
|
178
|
+
text: message,
|
|
179
|
+
history: history,
|
|
180
|
+
stream: false
|
|
181
|
+
});
|
|
182
|
+
return response.generated ?? '';
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Check if message is an exit prompt
|
|
186
|
+
*/
|
|
187
|
+
function isExitCommand(message) {
|
|
188
|
+
const normalized = message.toLowerCase().trim();
|
|
189
|
+
return EXIT_PROMPTS.includes(normalized);
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Handle chat errors with proper context
|
|
193
|
+
*/
|
|
194
|
+
async function handleChatError(error, config) {
|
|
195
|
+
const context = createErrorContext(error);
|
|
196
|
+
logger.error('Assistant chat API call failed', context);
|
|
197
|
+
if (error instanceof Error && (error.message.includes('401') || error.message.includes('403'))) {
|
|
198
|
+
await promptReauthentication(config);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../../../src/cli/commands/assistants/chat.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG3E,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAuB,MAAM,gBAAgB,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAEjF,4BAA4B;AAC5B,MAAM,qBAAqB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAU,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAEpC,OAAO;SACJ,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC;SAC9C,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC;SAC/D,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC;SACrD,MAAM,CAAC,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;SACvD,MAAM,CAAC,wBAAwB,EAAE,sDAAsD,CAAC;SACxF,MAAM,CAAC,KAAK,EAAE,WAA+B,EAAE,OAA2B,EAAE,OAG5E,EAAE,EAAE;QACH,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,MAAM,CAAC;YACnC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YAC5C,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,WAAW,IAAI,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;QAED,IAAI,CAAC;YACH,MAAM,iBAAiB,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACxE,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC1C,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,WAA+B,EAC/B,OAA2B,EAC3B,cAAuB;IAEvB,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;IACzC,MAAM,oBAAoB,GAAG,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAE5D,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAEpD,yEAAyE;IACzE,MAAM,sBAAsB,GAAG,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAEhF,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC,CAAC,uDAAuD;QACnF,MAAM,SAAS,GAAG,aAAa,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QACnE,MAAM,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;IACvG,CAAC;SAAM,CAAC,CAAC,mBAAmB;QAC1B,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC,oBAAoB,CAAC,CAAC;QACvE,MAAM,eAAe,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,sBAAsB,CAAC,CAAC;IAC3E,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,UAA8B,EAAE,WAAmB;IACxE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;IAC7D,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAClJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,wBAAwB,CAAC,UAA8B;IACpE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC;QACnJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;QACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;QACnD,OAAO;YACL,IAAI,EAAE,GAAG,SAAS,CAAC,IAAI,IAAI,QAAQ,EAAE;YACrC,KAAK,EAAE,SAAS,CAAC,EAAE;SACpB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAyB;QACnE;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,YAAY;YAClB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,uBAAuB;YAChD,OAAO;SACR;KACF,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,MAAqB,EACrB,SAA2B,EAC3B,MAAuB,EACvB,cAAuB;IAEvB,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAsB;YAC7D;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,mBAAmB;gBAC1C,MAAM,EAAE,EAAE;gBACV,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,wBAAwB;aAC/F;SACF,CAAC,CAAC;QAEH,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YAC9C,MAAM;QACR,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,KAAK,EAAE,CAAC;QAE5D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;YACnG,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,qBAAqB,CAAC,CAAC,eAAe,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAEhB,OAAO,CAAC,IAAI,CACV,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,EAC7B,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAC7C,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;YACzD,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAErC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,iBAAiB,CAC9B,MAAqB,EACrB,SAA2B,EAC3B,OAAe,EACf,OAA4B,EAC5B,MAAuB,EACvB,cAAuB;IAEvB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE,cAAc,CAAC,CAAC;QAE9F,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,sBAAsB,CACnC,MAAqB,EACrB,SAA2B,EAC3B,OAAe,EACf,OAAyB,EACzB,cAAuB;IAEvB,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;QAC3C,WAAW,EAAE,SAAS,CAAC,EAAE;QACzB,aAAa,EAAE,SAAS,CAAC,IAAI;QAC7B,aAAa,EAAE,OAAO,CAAC,MAAM;QAC7B,aAAa,EAAE,OAAO,CAAC,MAAM;QAC7B,cAAc,EAAE,cAAc;KAC/B,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE;QAC1D,eAAe,EAAE,cAAc;QAC/B,IAAI,EAAE,OAAO;QACb,OAAO,EAAE,OAAO;QAChB,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,OAAQ,QAAQ,CAAC,SAAoB,IAAI,EAAE,CAAA;AAC7C,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAe;IACpC,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAChD,OAAO,YAAY,CAAC,QAAQ,CAAC,UAAiB,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,eAAe,CAAC,KAAc,EAAE,MAAuB;IACpE,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,OAAO,CAAC,CAAC;IAExD,IAAI,KAAK,YAAY,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC/F,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants for assistants commands
|
|
3
|
+
*/
|
|
4
|
+
export declare const COMMAND_NAMES: {
|
|
5
|
+
readonly LIST: "list";
|
|
6
|
+
readonly CHAT: "chat";
|
|
7
|
+
};
|
|
8
|
+
export declare const EXIT_PROMPTS: readonly ["exit", "quit", "/exit", "/quit"];
|
|
9
|
+
export declare const ROLES: {
|
|
10
|
+
readonly USER: "User";
|
|
11
|
+
readonly ASSISTANT: "Assistant";
|
|
12
|
+
};
|
|
13
|
+
export declare const ACTIONS: {
|
|
14
|
+
readonly UPDATE: "update";
|
|
15
|
+
readonly CANCEL: "cancel";
|
|
16
|
+
};
|
|
17
|
+
export type MessageRole = typeof ROLES.USER | typeof ROLES.ASSISTANT;
|
|
18
|
+
export type ActionType = typeof ACTIONS.UPDATE | typeof ACTIONS.CANCEL;
|
|
19
|
+
export interface HistoryMessage {
|
|
20
|
+
role: MessageRole;
|
|
21
|
+
message?: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const MESSAGES: {
|
|
24
|
+
readonly SHARED: {
|
|
25
|
+
readonly OPTION_VERBOSE: "Enable verbose debug output";
|
|
26
|
+
readonly ERROR_NO_ASSISTANTS: "\n✗ No registered assistants";
|
|
27
|
+
readonly ERROR_ASSISTANT_NOT_FOUND: (id: string) => string;
|
|
28
|
+
readonly ERROR_NOT_FOUND: (id: string) => string;
|
|
29
|
+
readonly ERROR_AUTH_EXPIRED: "Authentication expired. Please re-authenticate.";
|
|
30
|
+
readonly HINT_REGISTER: " Run: ";
|
|
31
|
+
readonly COMMAND_LIST: "codemie assistants list";
|
|
32
|
+
readonly HINT_REGISTER_SUFFIX: " to register assistants\n";
|
|
33
|
+
readonly HINT_SEE_ASSISTANTS: " to see registered assistants\n";
|
|
34
|
+
readonly PROMPT_SELECT_ASSISTANT: "Select an assistant:";
|
|
35
|
+
};
|
|
36
|
+
readonly CHAT: {
|
|
37
|
+
readonly COMMAND_DESCRIPTION: "Send a message to a registered CodeMie assistant";
|
|
38
|
+
readonly ARGUMENT_ASSISTANT_ID: "Assistant ID (if provided, runs in single-message mode)";
|
|
39
|
+
readonly ARGUMENT_MESSAGE: "Message to send (required when assistant-id is provided)";
|
|
40
|
+
readonly HEADER: (name: string) => string;
|
|
41
|
+
readonly INSTRUCTIONS: "Type your message and press Enter. Type \"/exit\" or \"/quit\" to end the conversation.\n";
|
|
42
|
+
readonly GOODBYE: "\nGoodbye!\n";
|
|
43
|
+
readonly PROMPT_YOUR_MESSAGE: ">";
|
|
44
|
+
readonly VALIDATION_MESSAGE_EMPTY: "Message cannot be empty";
|
|
45
|
+
readonly SPINNER_THINKING: "Thinking...";
|
|
46
|
+
readonly FALLBACK_NO_RESPONSE: "No response";
|
|
47
|
+
readonly ERROR_SEND_FAILED: "Failed to send message";
|
|
48
|
+
readonly RETRY_PROMPT: "Failed to get response. Try again or type \"/exit\" to quit.\n";
|
|
49
|
+
};
|
|
50
|
+
readonly LIST: {
|
|
51
|
+
readonly COMMAND_DESCRIPTION: "Manage CodeMie assistants (view, register, unregister)";
|
|
52
|
+
readonly OPTION_PROFILE: "Select profile to configure";
|
|
53
|
+
readonly OPTION_PROJECT: "Filter assistants by project name";
|
|
54
|
+
readonly OPTION_ALL_PROJECTS: "Show assistants from all projects";
|
|
55
|
+
readonly SPINNER_FETCHING: "Fetching assistants...";
|
|
56
|
+
readonly SUCCESS_FOUND: (count: number) => string;
|
|
57
|
+
readonly ERROR_FETCH_FAILED: "Failed to fetch assistants";
|
|
58
|
+
readonly NO_ASSISTANTS: "\nNo assistants found.";
|
|
59
|
+
readonly FILTERED_BY_PROJECT: (project: string) => string;
|
|
60
|
+
readonly TRY_ALL_PROJECTS: "--all-projects";
|
|
61
|
+
readonly HINT_TRY_ALL: " to see all assistants.\n";
|
|
62
|
+
readonly PROMPT_SELECT: "Select assistants to register (space to toggle, enter when done):";
|
|
63
|
+
readonly PROMPT_ACTION: "What would you like to do?";
|
|
64
|
+
readonly ACTION_UPDATE: "Update - Apply changes";
|
|
65
|
+
readonly ACTION_CANCEL: "Cancel - Discard changes";
|
|
66
|
+
readonly NO_CHANGES_MADE: "\nNo changes made.\n";
|
|
67
|
+
readonly NO_CHANGES_TO_APPLY: "\nNo changes to apply\n";
|
|
68
|
+
readonly SPINNER_REGISTERING: (name: string) => string;
|
|
69
|
+
readonly SPINNER_UNREGISTERING: (name: string) => string;
|
|
70
|
+
readonly SUCCESS_REGISTERED: (name: string, slug: string) => string;
|
|
71
|
+
readonly SUCCESS_UNREGISTERED: (name: string, slug: string) => string;
|
|
72
|
+
readonly ERROR_REGISTER_FAILED: (name: string) => string;
|
|
73
|
+
readonly ERROR_UNREGISTER_FAILED: (name: string) => string;
|
|
74
|
+
readonly SUMMARY_UPDATED: (count: number) => string;
|
|
75
|
+
readonly SUMMARY_REGISTERED: (count: number) => string;
|
|
76
|
+
readonly SUMMARY_UNREGISTERED: (count: number) => string;
|
|
77
|
+
readonly SUMMARY_PROFILE: (profile: string) => string;
|
|
78
|
+
readonly CURRENTLY_REGISTERED: "Currently registered assistants:";
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/assistants/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,aAAa;;;CAGhB,CAAC;AAEX,eAAO,MAAM,YAAY,6CAA8C,CAAC;AAExE,eAAO,MAAM,KAAK;;;CAGR,CAAC;AAEX,eAAO,MAAM,OAAO;;;CAGV,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,IAAI,GAAG,OAAO,KAAK,CAAC,SAAS,CAAC;AACrE,MAAM,MAAM,UAAU,GAAG,OAAO,OAAO,CAAC,MAAM,GAAG,OAAO,OAAO,CAAC,MAAM,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,QAAQ;;;;iDAIe,MAAM;uCAChB,MAAM;;;;;;;;;;;;gCAYb,MAAM;;;;;;;;;;;;;;;;wCAgBE,MAAM;;;gDAGE,MAAM;;;;;;;;;6CAST,MAAM;+CACJ,MAAM;4CACT,MAAM,QAAQ,MAAM;8CAClB,MAAM,QAAQ,MAAM;+CACnB,MAAM;iDACJ,MAAM;0CACb,MAAM;6CACH,MAAM;+CACJ,MAAM;4CACT,MAAM;;;CAG3B,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Constants for assistants commands
|
|
3
|
+
*/
|
|
4
|
+
export const COMMAND_NAMES = {
|
|
5
|
+
LIST: 'list',
|
|
6
|
+
CHAT: 'chat'
|
|
7
|
+
};
|
|
8
|
+
export const EXIT_PROMPTS = ['exit', 'quit', '/exit', '/quit'];
|
|
9
|
+
export const ROLES = {
|
|
10
|
+
USER: 'User',
|
|
11
|
+
ASSISTANT: 'Assistant'
|
|
12
|
+
};
|
|
13
|
+
export const ACTIONS = {
|
|
14
|
+
UPDATE: 'update',
|
|
15
|
+
CANCEL: 'cancel'
|
|
16
|
+
};
|
|
17
|
+
export const MESSAGES = {
|
|
18
|
+
SHARED: {
|
|
19
|
+
OPTION_VERBOSE: 'Enable verbose debug output',
|
|
20
|
+
ERROR_NO_ASSISTANTS: '\n✗ No registered assistants',
|
|
21
|
+
ERROR_ASSISTANT_NOT_FOUND: (id) => `\n✗ Assistant ${id} is not registered`,
|
|
22
|
+
ERROR_NOT_FOUND: (id) => `Assistant ${id} not found`,
|
|
23
|
+
ERROR_AUTH_EXPIRED: 'Authentication expired. Please re-authenticate.',
|
|
24
|
+
HINT_REGISTER: ' Run: ',
|
|
25
|
+
COMMAND_LIST: 'codemie assistants list',
|
|
26
|
+
HINT_REGISTER_SUFFIX: ' to register assistants\n',
|
|
27
|
+
HINT_SEE_ASSISTANTS: ' to see registered assistants\n',
|
|
28
|
+
PROMPT_SELECT_ASSISTANT: 'Select an assistant:'
|
|
29
|
+
},
|
|
30
|
+
CHAT: {
|
|
31
|
+
COMMAND_DESCRIPTION: 'Send a message to a registered CodeMie assistant',
|
|
32
|
+
ARGUMENT_ASSISTANT_ID: 'Assistant ID (if provided, runs in single-message mode)',
|
|
33
|
+
ARGUMENT_MESSAGE: 'Message to send (required when assistant-id is provided)',
|
|
34
|
+
HEADER: (name) => `\n💬 Chat with ${name}`,
|
|
35
|
+
INSTRUCTIONS: 'Type your message and press Enter. Type "/exit" or "/quit" to end the conversation.\n',
|
|
36
|
+
GOODBYE: '\nGoodbye!\n',
|
|
37
|
+
PROMPT_YOUR_MESSAGE: '>',
|
|
38
|
+
VALIDATION_MESSAGE_EMPTY: 'Message cannot be empty',
|
|
39
|
+
SPINNER_THINKING: 'Thinking...',
|
|
40
|
+
FALLBACK_NO_RESPONSE: 'No response',
|
|
41
|
+
ERROR_SEND_FAILED: 'Failed to send message',
|
|
42
|
+
RETRY_PROMPT: 'Failed to get response. Try again or type "/exit" to quit.\n'
|
|
43
|
+
},
|
|
44
|
+
LIST: {
|
|
45
|
+
COMMAND_DESCRIPTION: 'Manage CodeMie assistants (view, register, unregister)',
|
|
46
|
+
OPTION_PROFILE: 'Select profile to configure',
|
|
47
|
+
OPTION_PROJECT: 'Filter assistants by project name',
|
|
48
|
+
OPTION_ALL_PROJECTS: 'Show assistants from all projects',
|
|
49
|
+
SPINNER_FETCHING: 'Fetching assistants...',
|
|
50
|
+
SUCCESS_FOUND: (count) => `Found ${count} assistant${count === 1 ? '' : 's'}`,
|
|
51
|
+
ERROR_FETCH_FAILED: 'Failed to fetch assistants',
|
|
52
|
+
NO_ASSISTANTS: '\nNo assistants found.',
|
|
53
|
+
FILTERED_BY_PROJECT: (project) => `Filtered by project: ${project}`,
|
|
54
|
+
TRY_ALL_PROJECTS: '--all-projects',
|
|
55
|
+
HINT_TRY_ALL: ' to see all assistants.\n',
|
|
56
|
+
PROMPT_SELECT: 'Select assistants to register (space to toggle, enter when done):',
|
|
57
|
+
PROMPT_ACTION: 'What would you like to do?',
|
|
58
|
+
ACTION_UPDATE: 'Update - Apply changes',
|
|
59
|
+
ACTION_CANCEL: 'Cancel - Discard changes',
|
|
60
|
+
NO_CHANGES_MADE: '\nNo changes made.\n',
|
|
61
|
+
NO_CHANGES_TO_APPLY: '\nNo changes to apply\n',
|
|
62
|
+
SPINNER_REGISTERING: (name) => `Registering ${name}...`,
|
|
63
|
+
SPINNER_UNREGISTERING: (name) => `Unregistering ${name}...`,
|
|
64
|
+
SUCCESS_REGISTERED: (name, slug) => `Registered ${name} as /${slug}`,
|
|
65
|
+
SUCCESS_UNREGISTERED: (name, slug) => `Unregistered ${name} (/${slug})`,
|
|
66
|
+
ERROR_REGISTER_FAILED: (name) => `Failed to register ${name}`,
|
|
67
|
+
ERROR_UNREGISTER_FAILED: (name) => `Failed to unregister ${name}`,
|
|
68
|
+
SUMMARY_UPDATED: (count) => `\n✓ Updated ${count} assistant${count === 1 ? '' : 's'}`,
|
|
69
|
+
SUMMARY_REGISTERED: (count) => ` Registered: ${count}`,
|
|
70
|
+
SUMMARY_UNREGISTERED: (count) => ` Unregistered: ${count}`,
|
|
71
|
+
SUMMARY_PROFILE: (profile) => ` Profile: ${profile}\n`,
|
|
72
|
+
CURRENTLY_REGISTERED: 'Currently registered assistants:'
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/cli/commands/assistants/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Subagent Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates Claude subagent files for Codemie assistants
|
|
5
|
+
* Creates subagent Markdown files in ~/.claude/agents/
|
|
6
|
+
*/
|
|
7
|
+
import type { Assistant } from 'codemie-sdk';
|
|
8
|
+
/**
|
|
9
|
+
* Create Claude subagent metadata for frontmatter
|
|
10
|
+
*/
|
|
11
|
+
export declare function createClaudeSubagentMetadata(assistant: Assistant): string;
|
|
12
|
+
/**
|
|
13
|
+
* Create Claude subagent content (Markdown format for .claude/agents/)
|
|
14
|
+
*/
|
|
15
|
+
export declare function createClaudeSubagentContent(assistant: Assistant): string;
|
|
16
|
+
/**
|
|
17
|
+
* Register Claude subagent
|
|
18
|
+
* Creates subagent file in ~/.claude/agents/
|
|
19
|
+
*/
|
|
20
|
+
export declare function registerClaudeSubagent(assistant: Assistant): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Unregister Claude subagent
|
|
23
|
+
* Removes subagent file from ~/.claude/agents/
|
|
24
|
+
*/
|
|
25
|
+
export declare function unregisterClaudeSubagent(slug: string): Promise<void>;
|
|
26
|
+
//# sourceMappingURL=claude-agent-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-agent-generator.d.ts","sourceRoot":"","sources":["../../../../../src/cli/commands/assistants/generators/claude-agent-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAWzE;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAmCxE;AAWD;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBhF;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAe1E"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Subagent Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates Claude subagent files for Codemie assistants
|
|
5
|
+
* Creates subagent Markdown files in ~/.claude/agents/
|
|
6
|
+
*/
|
|
7
|
+
import { promises as fs } from 'node:fs';
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
import os from 'node:os';
|
|
10
|
+
import dedent from 'dedent';
|
|
11
|
+
import { logger } from '../../../../utils/logger.js';
|
|
12
|
+
/**
|
|
13
|
+
* Create Claude subagent metadata for frontmatter
|
|
14
|
+
*/
|
|
15
|
+
export function createClaudeSubagentMetadata(assistant) {
|
|
16
|
+
const description = assistant.description || `Interact with ${assistant.name}`;
|
|
17
|
+
return dedent(`
|
|
18
|
+
---
|
|
19
|
+
name: ${assistant.slug}
|
|
20
|
+
description: ${description}
|
|
21
|
+
tools: Read, Bash
|
|
22
|
+
model: inherit
|
|
23
|
+
---
|
|
24
|
+
`);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create Claude subagent content (Markdown format for .claude/agents/)
|
|
28
|
+
*/
|
|
29
|
+
export function createClaudeSubagentContent(assistant) {
|
|
30
|
+
const metadata = createClaudeSubagentMetadata(assistant);
|
|
31
|
+
const description = assistant.description || `Interact with ${assistant.name}`;
|
|
32
|
+
return dedent(`
|
|
33
|
+
${metadata}
|
|
34
|
+
|
|
35
|
+
# ${assistant.name}
|
|
36
|
+
|
|
37
|
+
${description}
|
|
38
|
+
|
|
39
|
+
## Instructions
|
|
40
|
+
|
|
41
|
+
When invoked:
|
|
42
|
+
|
|
43
|
+
1. **Extract the user's message** from the conversation context
|
|
44
|
+
2. **Execute the command**:
|
|
45
|
+
\`\`\`bash
|
|
46
|
+
codemie assistants chat "${assistant.id}" "$USER_MESSAGE"
|
|
47
|
+
\`\`\`
|
|
48
|
+
3. **Return the response** directly to the user
|
|
49
|
+
|
|
50
|
+
The \`codemie assistants chat\` command communicates with the CodeMie platform to get responses from the ${assistant.name} assistant.
|
|
51
|
+
|
|
52
|
+
## Example
|
|
53
|
+
|
|
54
|
+
User: "Help me review this code"
|
|
55
|
+
|
|
56
|
+
You execute:
|
|
57
|
+
\`\`\`bash
|
|
58
|
+
codemie assistants chat "${assistant.id}" "Help me review this code"
|
|
59
|
+
\`\`\`
|
|
60
|
+
|
|
61
|
+
Then present the assistant's response to the user.
|
|
62
|
+
`);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get subagent file path for a given slug
|
|
66
|
+
*/
|
|
67
|
+
function getSubagentFilePath(slug) {
|
|
68
|
+
const homeDir = os.homedir();
|
|
69
|
+
const fileName = `${slug}.md`;
|
|
70
|
+
return path.join(homeDir, '.claude', 'agents', fileName);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Register Claude subagent
|
|
74
|
+
* Creates subagent file in ~/.claude/agents/
|
|
75
|
+
*/
|
|
76
|
+
export async function registerClaudeSubagent(assistant) {
|
|
77
|
+
const subagentPath = getSubagentFilePath(assistant.slug);
|
|
78
|
+
const claudeAgentsDir = path.dirname(subagentPath);
|
|
79
|
+
logger.debug('Registering Claude subagent', {
|
|
80
|
+
assistantId: assistant.id,
|
|
81
|
+
assistantName: assistant.name,
|
|
82
|
+
slug: assistant.slug,
|
|
83
|
+
subagentPath
|
|
84
|
+
});
|
|
85
|
+
// Create directory if it doesn't exist
|
|
86
|
+
await fs.mkdir(claudeAgentsDir, { recursive: true });
|
|
87
|
+
// Create and write subagent file
|
|
88
|
+
const content = createClaudeSubagentContent(assistant);
|
|
89
|
+
await fs.writeFile(subagentPath, content, 'utf-8');
|
|
90
|
+
logger.debug('Claude subagent registered', {
|
|
91
|
+
slug: assistant.slug,
|
|
92
|
+
subagentPath
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Unregister Claude subagent
|
|
97
|
+
* Removes subagent file from ~/.claude/agents/
|
|
98
|
+
*/
|
|
99
|
+
export async function unregisterClaudeSubagent(slug) {
|
|
100
|
+
const subagentPath = getSubagentFilePath(slug);
|
|
101
|
+
try {
|
|
102
|
+
await fs.unlink(subagentPath);
|
|
103
|
+
logger.debug('Claude subagent unregistered', {
|
|
104
|
+
slug,
|
|
105
|
+
subagentPath
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
logger.debug('Failed to remove subagent file (may not exist)', {
|
|
110
|
+
slug,
|
|
111
|
+
error
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=claude-agent-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claude-agent-generator.js","sourceRoot":"","sources":["../../../../../src/cli/commands/assistants/generators/claude-agent-generator.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C;;GAEG;AACH,MAAM,UAAU,4BAA4B,CAAC,SAAoB;IAC/D,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,IAAI,iBAAiB,SAAS,CAAC,IAAI,EAAE,CAAC;IAE/E,OAAO,MAAM,CAAC;;YAEJ,SAAS,CAAC,IAAI;mBACP,WAAW;;;;GAI3B,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,SAAoB;IAC9D,MAAM,QAAQ,GAAG,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,IAAI,iBAAiB,SAAS,CAAC,IAAI,EAAE,CAAC;IAE/E,OAAO,MAAM,CAAC;MACV,QAAQ;;QAEN,SAAS,CAAC,IAAI;;MAEhB,WAAW;;;;;;;;;kCASiB,SAAS,CAAC,EAAE;;;;+GAIiE,SAAS,CAAC,IAAI;;;;;;;;+BAQ9F,SAAS,CAAC,EAAE;;;;GAIxC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,GAAG,IAAI,KAAK,CAAC;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,SAAoB;IAC/D,MAAM,YAAY,GAAG,mBAAmB,CAAC,SAAS,CAAC,IAAK,CAAC,CAAC;IAC1D,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEnD,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE;QAC1C,WAAW,EAAE,SAAS,CAAC,EAAE;QACzB,aAAa,EAAE,SAAS,CAAC,IAAI;QAC7B,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,YAAY;KACb,CAAC,CAAC;IAEH,uCAAuC;IACvC,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAErD,iCAAiC;IACjC,MAAM,OAAO,GAAG,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnD,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;QACzC,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,YAAY;KACb,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAAC,IAAY;IACzD,MAAM,YAAY,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE;YAC3C,IAAI;YACJ,YAAY;SACb,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,gDAAgD,EAAE;YAC7D,IAAI;YACJ,KAAK;SACN,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assistants Command
|
|
3
|
+
*
|
|
4
|
+
* Parent command for managing CodeMie assistants
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
/**
|
|
8
|
+
* Create assistants command with subcommands
|
|
9
|
+
*/
|
|
10
|
+
export declare function createAssistantsCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/assistants/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAiBjD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Assistants Command
|
|
3
|
+
*
|
|
4
|
+
* Parent command for managing CodeMie assistants
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import { createAssistantsListCommand } from './list.js';
|
|
8
|
+
import { createAssistantsChatCommand } from './chat.js';
|
|
9
|
+
import { COMMAND_NAMES } from './constants.js';
|
|
10
|
+
/**
|
|
11
|
+
* Create assistants command with subcommands
|
|
12
|
+
*/
|
|
13
|
+
export function createAssistantsCommand() {
|
|
14
|
+
const command = new Command('assistants');
|
|
15
|
+
command
|
|
16
|
+
.description('Manage CodeMie assistants')
|
|
17
|
+
.addCommand(createAssistantsListCommand())
|
|
18
|
+
.addCommand(createAssistantsChatCommand());
|
|
19
|
+
// Default action: run list command (backward compatibility)
|
|
20
|
+
command.action(async () => {
|
|
21
|
+
const listCommand = command.commands.find(c => c.name() === COMMAND_NAMES.LIST);
|
|
22
|
+
if (listCommand) {
|
|
23
|
+
await listCommand.parseAsync([], { from: 'user' });
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return command;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/cli/commands/assistants/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C;;GAEG;AACH,MAAM,UAAU,uBAAuB;IACrC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;IAE1C,OAAO;SACJ,WAAW,CAAC,2BAA2B,CAAC;SACxC,UAAU,CAAC,2BAA2B,EAAE,CAAC;SACzC,UAAU,CAAC,2BAA2B,EAAE,CAAC,CAAC;IAE7C,4DAA4D;IAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QACxB,MAAM,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,aAAa,CAAC,IAAI,CAAC,CAAC;QAChF,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,WAAW,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* List Assistants Command
|
|
3
|
+
*
|
|
4
|
+
* Unified command to view, register, and unregister CodeMie assistants
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
/**
|
|
8
|
+
* Create assistants list command
|
|
9
|
+
*/
|
|
10
|
+
export declare function createAssistantsListCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=list.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/assistants/list.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC;;GAEG;AACH,wBAAgB,2BAA2B,IAAI,OAAO,CAsBrD"}
|