@codemieai/code 0.0.36 → 0.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (233) hide show
  1. package/README.md +33 -0
  2. package/dist/agents/codemie-code/tools/assistant-invocation.d.ts.map +1 -1
  3. package/dist/agents/codemie-code/tools/assistant-invocation.js +2 -2
  4. package/dist/agents/codemie-code/tools/assistant-invocation.js.map +1 -1
  5. package/dist/agents/core/BaseAgentAdapter.d.ts.map +1 -1
  6. package/dist/agents/core/BaseAgentAdapter.js +23 -9
  7. package/dist/agents/core/BaseAgentAdapter.js.map +1 -1
  8. package/dist/agents/core/extension/BaseExtensionInstaller.d.ts.map +1 -1
  9. package/dist/agents/core/extension/BaseExtensionInstaller.js +11 -4
  10. package/dist/agents/core/extension/BaseExtensionInstaller.js.map +1 -1
  11. package/dist/agents/core/session/BaseProcessor.d.ts +22 -1
  12. package/dist/agents/core/session/BaseProcessor.d.ts.map +1 -1
  13. package/dist/agents/plugins/claude/claude-acp.plugin.d.ts +5 -0
  14. package/dist/agents/plugins/claude/claude-acp.plugin.d.ts.map +1 -1
  15. package/dist/agents/plugins/claude/claude-acp.plugin.js +12 -2
  16. package/dist/agents/plugins/claude/claude-acp.plugin.js.map +1 -1
  17. package/dist/agents/plugins/claude/claude.plugin.d.ts +11 -0
  18. package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
  19. package/dist/agents/plugins/claude/claude.plugin.js +59 -2
  20. package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
  21. package/dist/agents/plugins/claude/claude.session.d.ts +5 -0
  22. package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -1
  23. package/dist/agents/plugins/claude/claude.session.js +101 -2
  24. package/dist/agents/plugins/claude/claude.session.js.map +1 -1
  25. package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
  26. package/dist/agents/plugins/claude/plugin/commands/README.md +103 -22
  27. package/dist/agents/plugins/claude/plugin/commands/memory-refresh.md +329 -18
  28. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +0 -1
  29. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
  30. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +13 -19
  31. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
  32. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -1
  33. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +29 -4
  34. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -1
  35. package/dist/cli/commands/assistants/chat.js +9 -6
  36. package/dist/cli/commands/assistants/chat.js.map +1 -1
  37. package/dist/cli/commands/assistants/constants.d.ts +2 -6
  38. package/dist/cli/commands/assistants/constants.d.ts.map +1 -1
  39. package/dist/cli/commands/assistants/constants.js +2 -5
  40. package/dist/cli/commands/assistants/constants.js.map +1 -1
  41. package/dist/cli/commands/assistants/index.d.ts.map +1 -1
  42. package/dist/cli/commands/assistants/index.js +1 -11
  43. package/dist/cli/commands/assistants/index.js.map +1 -1
  44. package/dist/cli/commands/assistants/setup/configuration/actions.d.ts +30 -0
  45. package/dist/cli/commands/assistants/setup/configuration/actions.d.ts.map +1 -0
  46. package/dist/cli/commands/assistants/setup/configuration/actions.js +63 -0
  47. package/dist/cli/commands/assistants/setup/configuration/actions.js.map +1 -0
  48. package/dist/cli/commands/assistants/setup/configuration/constants.d.ts +49 -0
  49. package/dist/cli/commands/assistants/setup/configuration/constants.d.ts.map +1 -0
  50. package/dist/cli/commands/assistants/setup/configuration/constants.js +56 -0
  51. package/dist/cli/commands/assistants/setup/configuration/constants.js.map +1 -0
  52. package/dist/cli/commands/assistants/setup/configuration/index.d.ts +9 -0
  53. package/dist/cli/commands/assistants/setup/configuration/index.d.ts.map +1 -0
  54. package/dist/cli/commands/assistants/setup/configuration/index.js +8 -0
  55. package/dist/cli/commands/assistants/setup/configuration/index.js.map +1 -0
  56. package/dist/cli/commands/assistants/setup/configuration/selection.d.ts +12 -0
  57. package/dist/cli/commands/assistants/setup/configuration/selection.d.ts.map +1 -0
  58. package/dist/cli/commands/assistants/setup/configuration/selection.js +94 -0
  59. package/dist/cli/commands/assistants/setup/configuration/selection.js.map +1 -0
  60. package/dist/cli/commands/assistants/setup/configuration/types.d.ts +22 -0
  61. package/dist/cli/commands/assistants/setup/configuration/types.d.ts.map +1 -0
  62. package/dist/cli/commands/assistants/setup/configuration/types.js +2 -0
  63. package/dist/cli/commands/assistants/setup/configuration/types.js.map +1 -0
  64. package/dist/cli/commands/assistants/setup/configuration/ui.d.ts +9 -0
  65. package/dist/cli/commands/assistants/setup/configuration/ui.d.ts.map +1 -0
  66. package/dist/cli/commands/assistants/setup/configuration/ui.js +86 -0
  67. package/dist/cli/commands/assistants/setup/configuration/ui.js.map +1 -0
  68. package/dist/cli/commands/assistants/setup/constants.d.ts +26 -0
  69. package/dist/cli/commands/assistants/setup/constants.d.ts.map +1 -0
  70. package/dist/cli/commands/assistants/setup/constants.js +21 -0
  71. package/dist/cli/commands/assistants/setup/constants.js.map +1 -0
  72. package/dist/cli/commands/assistants/setup/data.d.ts +30 -0
  73. package/dist/cli/commands/assistants/setup/data.d.ts.map +1 -0
  74. package/dist/cli/commands/assistants/setup/data.js +125 -0
  75. package/dist/cli/commands/assistants/setup/data.js.map +1 -0
  76. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts.map +1 -0
  77. package/dist/cli/commands/assistants/{generators → setup/generators}/claude-agent-generator.js +6 -2
  78. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js.map +1 -0
  79. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts +12 -0
  80. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts.map +1 -0
  81. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js +94 -0
  82. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js.map +1 -0
  83. package/dist/cli/commands/assistants/setup/helpers.d.ts +27 -0
  84. package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -0
  85. package/dist/cli/commands/assistants/setup/helpers.js +94 -0
  86. package/dist/cli/commands/assistants/setup/helpers.js.map +1 -0
  87. package/dist/cli/commands/assistants/setup/index.d.ts +17 -0
  88. package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -0
  89. package/dist/cli/commands/assistants/setup/index.js +193 -0
  90. package/dist/cli/commands/assistants/setup/index.js.map +1 -0
  91. package/dist/cli/commands/assistants/setup/manualConfiguration/actions.d.ts +47 -0
  92. package/dist/cli/commands/assistants/setup/manualConfiguration/actions.d.ts.map +1 -0
  93. package/dist/cli/commands/assistants/setup/manualConfiguration/actions.js +140 -0
  94. package/dist/cli/commands/assistants/setup/manualConfiguration/actions.js.map +1 -0
  95. package/dist/cli/commands/assistants/setup/manualConfiguration/constants.d.ts +56 -0
  96. package/dist/cli/commands/assistants/setup/manualConfiguration/constants.d.ts.map +1 -0
  97. package/dist/cli/commands/assistants/setup/manualConfiguration/constants.js +61 -0
  98. package/dist/cli/commands/assistants/setup/manualConfiguration/constants.js.map +1 -0
  99. package/dist/cli/commands/assistants/setup/manualConfiguration/index.d.ts +12 -0
  100. package/dist/cli/commands/assistants/setup/manualConfiguration/index.d.ts.map +1 -0
  101. package/dist/cli/commands/assistants/setup/manualConfiguration/index.js +48 -0
  102. package/dist/cli/commands/assistants/setup/manualConfiguration/index.js.map +1 -0
  103. package/dist/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.d.ts +6 -0
  104. package/dist/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.d.ts.map +1 -0
  105. package/dist/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.js +90 -0
  106. package/dist/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.js.map +1 -0
  107. package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts +37 -0
  108. package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts.map +1 -0
  109. package/dist/cli/commands/assistants/setup/manualConfiguration/types.js +2 -0
  110. package/dist/cli/commands/assistants/setup/manualConfiguration/types.js.map +1 -0
  111. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.d.ts +6 -0
  112. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.d.ts.map +1 -0
  113. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js +103 -0
  114. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js.map +1 -0
  115. package/dist/cli/commands/assistants/setup/selection/actions.d.ts +31 -0
  116. package/dist/cli/commands/assistants/setup/selection/actions.d.ts.map +1 -0
  117. package/dist/cli/commands/assistants/setup/selection/actions.js +321 -0
  118. package/dist/cli/commands/assistants/setup/selection/actions.js.map +1 -0
  119. package/dist/cli/commands/assistants/setup/selection/constants.d.ts +79 -0
  120. package/dist/cli/commands/assistants/setup/selection/constants.d.ts.map +1 -0
  121. package/dist/cli/commands/assistants/setup/selection/constants.js +90 -0
  122. package/dist/cli/commands/assistants/setup/selection/constants.js.map +1 -0
  123. package/dist/cli/commands/assistants/setup/selection/index.d.ts +25 -0
  124. package/dist/cli/commands/assistants/setup/selection/index.d.ts.map +1 -0
  125. package/dist/cli/commands/assistants/setup/selection/index.js +127 -0
  126. package/dist/cli/commands/assistants/setup/selection/index.js.map +1 -0
  127. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts +20 -0
  128. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts.map +1 -0
  129. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js +328 -0
  130. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js.map +1 -0
  131. package/dist/cli/commands/assistants/setup/selection/types.d.ts +27 -0
  132. package/dist/cli/commands/assistants/setup/selection/types.d.ts.map +1 -0
  133. package/dist/cli/commands/assistants/setup/selection/types.js +2 -0
  134. package/dist/cli/commands/assistants/setup/selection/types.js.map +1 -0
  135. package/dist/cli/commands/assistants/setup/selection/ui.d.ts +11 -0
  136. package/dist/cli/commands/assistants/setup/selection/ui.d.ts.map +1 -0
  137. package/dist/cli/commands/assistants/setup/selection/ui.js +189 -0
  138. package/dist/cli/commands/assistants/setup/selection/ui.js.map +1 -0
  139. package/dist/cli/commands/assistants/setup/selection/utils.d.ts +36 -0
  140. package/dist/cli/commands/assistants/setup/selection/utils.d.ts.map +1 -0
  141. package/dist/cli/commands/assistants/setup/selection/utils.js +55 -0
  142. package/dist/cli/commands/assistants/setup/selection/utils.js.map +1 -0
  143. package/dist/cli/commands/assistants/setup/summary/index.d.ts +16 -0
  144. package/dist/cli/commands/assistants/setup/summary/index.d.ts.map +1 -0
  145. package/dist/cli/commands/assistants/setup/summary/index.js +48 -0
  146. package/dist/cli/commands/assistants/setup/summary/index.js.map +1 -0
  147. package/dist/cli/commands/hook.d.ts +72 -0
  148. package/dist/cli/commands/hook.d.ts.map +1 -1
  149. package/dist/cli/commands/hook.js +290 -110
  150. package/dist/cli/commands/hook.js.map +1 -1
  151. package/dist/cli/commands/log/cleaner.d.ts +37 -0
  152. package/dist/cli/commands/log/cleaner.d.ts.map +1 -0
  153. package/dist/cli/commands/log/cleaner.js +218 -0
  154. package/dist/cli/commands/log/cleaner.js.map +1 -0
  155. package/dist/cli/commands/log/filter.d.ts +55 -0
  156. package/dist/cli/commands/log/filter.d.ts.map +1 -0
  157. package/dist/cli/commands/log/filter.js +128 -0
  158. package/dist/cli/commands/log/filter.js.map +1 -0
  159. package/dist/cli/commands/log/follower.d.ts +36 -0
  160. package/dist/cli/commands/log/follower.d.ts.map +1 -0
  161. package/dist/cli/commands/log/follower.js +151 -0
  162. package/dist/cli/commands/log/follower.js.map +1 -0
  163. package/dist/cli/commands/log/formatter.d.ts +76 -0
  164. package/dist/cli/commands/log/formatter.d.ts.map +1 -0
  165. package/dist/cli/commands/log/formatter.js +261 -0
  166. package/dist/cli/commands/log/formatter.js.map +1 -0
  167. package/dist/cli/commands/log/index.d.ts +6 -0
  168. package/dist/cli/commands/log/index.d.ts.map +1 -0
  169. package/dist/cli/commands/log/index.js +400 -0
  170. package/dist/cli/commands/log/index.js.map +1 -0
  171. package/dist/cli/commands/log/parser.d.ts +20 -0
  172. package/dist/cli/commands/log/parser.d.ts.map +1 -0
  173. package/dist/cli/commands/log/parser.js +111 -0
  174. package/dist/cli/commands/log/parser.js.map +1 -0
  175. package/dist/cli/commands/log/reader.d.ts +66 -0
  176. package/dist/cli/commands/log/reader.d.ts.map +1 -0
  177. package/dist/cli/commands/log/reader.js +364 -0
  178. package/dist/cli/commands/log/reader.js.map +1 -0
  179. package/dist/cli/commands/log/types.d.ts +100 -0
  180. package/dist/cli/commands/log/types.d.ts.map +1 -0
  181. package/dist/cli/commands/log/types.js +5 -0
  182. package/dist/cli/commands/log/types.js.map +1 -0
  183. package/dist/cli/commands/profile/display.d.ts +1 -0
  184. package/dist/cli/commands/profile/display.d.ts.map +1 -1
  185. package/dist/cli/commands/profile/display.js +10 -2
  186. package/dist/cli/commands/profile/display.js.map +1 -1
  187. package/dist/cli/commands/profile/index.js +58 -22
  188. package/dist/cli/commands/profile/index.js.map +1 -1
  189. package/dist/cli/commands/setup.d.ts.map +1 -1
  190. package/dist/cli/commands/setup.js +143 -24
  191. package/dist/cli/commands/setup.js.map +1 -1
  192. package/dist/cli/index.js +2 -0
  193. package/dist/cli/index.js.map +1 -1
  194. package/dist/env/types.d.ts +10 -1
  195. package/dist/env/types.d.ts.map +1 -1
  196. package/dist/env/types.js.map +1 -1
  197. package/dist/index.d.ts +5 -0
  198. package/dist/index.d.ts.map +1 -1
  199. package/dist/index.js +10 -0
  200. package/dist/index.js.map +1 -1
  201. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts +5 -0
  202. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts.map +1 -1
  203. package/dist/providers/plugins/sso/session/SessionSyncer.js +102 -3
  204. package/dist/providers/plugins/sso/session/SessionSyncer.js.map +1 -1
  205. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts +0 -1
  206. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts.map +1 -1
  207. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js +25 -48
  208. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js.map +1 -1
  209. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -1
  210. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js +8 -34
  211. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -1
  212. package/dist/utils/config.d.ts +35 -8
  213. package/dist/utils/config.d.ts.map +1 -1
  214. package/dist/utils/config.js +243 -33
  215. package/dist/utils/config.js.map +1 -1
  216. package/dist/utils/logger.d.ts +8 -0
  217. package/dist/utils/logger.d.ts.map +1 -1
  218. package/dist/utils/logger.js +42 -0
  219. package/dist/utils/logger.js.map +1 -1
  220. package/dist/utils/native-installer.d.ts +1 -0
  221. package/dist/utils/native-installer.d.ts.map +1 -1
  222. package/dist/utils/native-installer.js +21 -7
  223. package/dist/utils/native-installer.js.map +1 -1
  224. package/package.json +2 -2
  225. package/dist/agents/plugins/claude/plugin/commands/memory-add.md +0 -325
  226. package/dist/agents/plugins/claude/plugin/commands/memory-init.md +0 -18
  227. package/dist/cli/commands/assistants/generators/claude-agent-generator.d.ts.map +0 -1
  228. package/dist/cli/commands/assistants/generators/claude-agent-generator.js.map +0 -1
  229. package/dist/cli/commands/assistants/list.d.ts +0 -11
  230. package/dist/cli/commands/assistants/list.d.ts.map +0 -1
  231. package/dist/cli/commands/assistants/list.js +0 -323
  232. package/dist/cli/commands/assistants/list.js.map +0 -1
  233. /package/dist/cli/commands/assistants/{generators → setup/generators}/claude-agent-generator.d.ts +0 -0
@@ -1,323 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../../src/cli/commands/assistants/list.ts"],"names":[],"mappings":"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"}