@codemieai/code 0.0.35 → 0.0.37

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 (267) hide show
  1. package/README.md +33 -0
  2. package/dist/agents/codemie-code/agent.d.ts +1 -1
  3. package/dist/agents/codemie-code/agent.d.ts.map +1 -1
  4. package/dist/agents/codemie-code/agent.js +2 -2
  5. package/dist/agents/codemie-code/agent.js.map +1 -1
  6. package/dist/agents/codemie-code/index.js +1 -1
  7. package/dist/agents/codemie-code/index.js.map +1 -1
  8. package/dist/agents/codemie-code/prompts.d.ts +1 -1
  9. package/dist/agents/codemie-code/prompts.d.ts.map +1 -1
  10. package/dist/agents/codemie-code/skills/core/SkillDiscovery.d.ts.map +1 -0
  11. package/dist/{skills → agents/codemie-code/skills}/core/SkillDiscovery.js +1 -1
  12. package/dist/agents/codemie-code/skills/core/SkillDiscovery.js.map +1 -0
  13. package/dist/agents/codemie-code/skills/core/SkillManager.d.ts.map +1 -0
  14. package/dist/{skills → agents/codemie-code/skills}/core/SkillManager.js +1 -1
  15. package/dist/agents/codemie-code/skills/core/SkillManager.js.map +1 -0
  16. package/dist/agents/codemie-code/skills/core/types.d.ts.map +1 -0
  17. package/dist/agents/codemie-code/skills/core/types.js.map +1 -0
  18. package/dist/agents/codemie-code/skills/index.d.ts.map +1 -0
  19. package/dist/agents/codemie-code/skills/index.js.map +1 -0
  20. package/dist/agents/codemie-code/skills/utils/content-loader.d.ts.map +1 -0
  21. package/dist/{skills → agents/codemie-code/skills}/utils/content-loader.js +1 -1
  22. package/dist/agents/codemie-code/skills/utils/content-loader.js.map +1 -0
  23. package/dist/agents/codemie-code/skills/utils/frontmatter.d.ts.map +1 -0
  24. package/dist/agents/codemie-code/skills/utils/frontmatter.js.map +1 -0
  25. package/dist/agents/codemie-code/skills/utils/pattern-matcher.d.ts.map +1 -0
  26. package/dist/agents/codemie-code/skills/utils/pattern-matcher.js.map +1 -0
  27. package/dist/agents/codemie-code/tools/assistant-invocation.d.ts.map +1 -1
  28. package/dist/agents/codemie-code/tools/assistant-invocation.js +2 -2
  29. package/dist/agents/codemie-code/tools/assistant-invocation.js.map +1 -1
  30. package/dist/agents/codemie-code/types.d.ts +1 -1
  31. package/dist/agents/codemie-code/types.d.ts.map +1 -1
  32. package/dist/agents/core/extension/BaseExtensionInstaller.d.ts.map +1 -1
  33. package/dist/agents/core/extension/BaseExtensionInstaller.js +11 -4
  34. package/dist/agents/core/extension/BaseExtensionInstaller.js.map +1 -1
  35. package/dist/agents/core/session/BaseProcessor.d.ts +22 -1
  36. package/dist/agents/core/session/BaseProcessor.d.ts.map +1 -1
  37. package/dist/agents/plugins/claude/claude-acp.plugin.d.ts +5 -0
  38. package/dist/agents/plugins/claude/claude-acp.plugin.d.ts.map +1 -1
  39. package/dist/agents/plugins/claude/claude-acp.plugin.js +12 -2
  40. package/dist/agents/plugins/claude/claude-acp.plugin.js.map +1 -1
  41. package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
  42. package/dist/agents/plugins/claude/claude.plugin.js +5 -1
  43. package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
  44. package/dist/agents/plugins/claude/claude.session.d.ts +5 -0
  45. package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -1
  46. package/dist/agents/plugins/claude/claude.session.js +101 -2
  47. package/dist/agents/plugins/claude/claude.session.js.map +1 -1
  48. package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
  49. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +0 -1
  50. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
  51. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +13 -19
  52. package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
  53. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -1
  54. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +29 -4
  55. package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -1
  56. package/dist/cli/commands/assistants/chat.js +9 -6
  57. package/dist/cli/commands/assistants/chat.js.map +1 -1
  58. package/dist/cli/commands/assistants/constants.d.ts +2 -6
  59. package/dist/cli/commands/assistants/constants.d.ts.map +1 -1
  60. package/dist/cli/commands/assistants/constants.js +2 -5
  61. package/dist/cli/commands/assistants/constants.js.map +1 -1
  62. package/dist/cli/commands/assistants/index.d.ts.map +1 -1
  63. package/dist/cli/commands/assistants/index.js +1 -11
  64. package/dist/cli/commands/assistants/index.js.map +1 -1
  65. package/dist/cli/commands/assistants/setup/configuration/actions.d.ts +30 -0
  66. package/dist/cli/commands/assistants/setup/configuration/actions.d.ts.map +1 -0
  67. package/dist/cli/commands/assistants/setup/configuration/actions.js +63 -0
  68. package/dist/cli/commands/assistants/setup/configuration/actions.js.map +1 -0
  69. package/dist/cli/commands/assistants/setup/configuration/constants.d.ts +49 -0
  70. package/dist/cli/commands/assistants/setup/configuration/constants.d.ts.map +1 -0
  71. package/dist/cli/commands/assistants/setup/configuration/constants.js +56 -0
  72. package/dist/cli/commands/assistants/setup/configuration/constants.js.map +1 -0
  73. package/dist/cli/commands/assistants/setup/configuration/index.d.ts +9 -0
  74. package/dist/cli/commands/assistants/setup/configuration/index.d.ts.map +1 -0
  75. package/dist/cli/commands/assistants/setup/configuration/index.js +8 -0
  76. package/dist/cli/commands/assistants/setup/configuration/index.js.map +1 -0
  77. package/dist/cli/commands/assistants/setup/configuration/selection.d.ts +12 -0
  78. package/dist/cli/commands/assistants/setup/configuration/selection.d.ts.map +1 -0
  79. package/dist/cli/commands/assistants/setup/configuration/selection.js +94 -0
  80. package/dist/cli/commands/assistants/setup/configuration/selection.js.map +1 -0
  81. package/dist/cli/commands/assistants/setup/configuration/types.d.ts +22 -0
  82. package/dist/cli/commands/assistants/setup/configuration/types.d.ts.map +1 -0
  83. package/dist/cli/commands/assistants/setup/configuration/types.js +2 -0
  84. package/dist/cli/commands/assistants/setup/configuration/types.js.map +1 -0
  85. package/dist/cli/commands/assistants/setup/configuration/ui.d.ts +9 -0
  86. package/dist/cli/commands/assistants/setup/configuration/ui.d.ts.map +1 -0
  87. package/dist/cli/commands/assistants/setup/configuration/ui.js +86 -0
  88. package/dist/cli/commands/assistants/setup/configuration/ui.js.map +1 -0
  89. package/dist/cli/commands/assistants/setup/constants.d.ts +26 -0
  90. package/dist/cli/commands/assistants/setup/constants.d.ts.map +1 -0
  91. package/dist/cli/commands/assistants/setup/constants.js +21 -0
  92. package/dist/cli/commands/assistants/setup/constants.js.map +1 -0
  93. package/dist/cli/commands/assistants/setup/data.d.ts +30 -0
  94. package/dist/cli/commands/assistants/setup/data.d.ts.map +1 -0
  95. package/dist/cli/commands/assistants/setup/data.js +125 -0
  96. package/dist/cli/commands/assistants/setup/data.js.map +1 -0
  97. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts.map +1 -0
  98. package/dist/cli/commands/assistants/{generators → setup/generators}/claude-agent-generator.js +6 -2
  99. package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js.map +1 -0
  100. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts +12 -0
  101. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts.map +1 -0
  102. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js +94 -0
  103. package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js.map +1 -0
  104. package/dist/cli/commands/assistants/setup/helpers.d.ts +27 -0
  105. package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -0
  106. package/dist/cli/commands/assistants/setup/helpers.js +94 -0
  107. package/dist/cli/commands/assistants/setup/helpers.js.map +1 -0
  108. package/dist/cli/commands/assistants/setup/index.d.ts +17 -0
  109. package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -0
  110. package/dist/cli/commands/assistants/setup/index.js +193 -0
  111. package/dist/cli/commands/assistants/setup/index.js.map +1 -0
  112. package/dist/cli/commands/assistants/setup/manualConfiguration/actions.d.ts +47 -0
  113. package/dist/cli/commands/assistants/setup/manualConfiguration/actions.d.ts.map +1 -0
  114. package/dist/cli/commands/assistants/setup/manualConfiguration/actions.js +140 -0
  115. package/dist/cli/commands/assistants/setup/manualConfiguration/actions.js.map +1 -0
  116. package/dist/cli/commands/assistants/setup/manualConfiguration/constants.d.ts +56 -0
  117. package/dist/cli/commands/assistants/setup/manualConfiguration/constants.d.ts.map +1 -0
  118. package/dist/cli/commands/assistants/setup/manualConfiguration/constants.js +61 -0
  119. package/dist/cli/commands/assistants/setup/manualConfiguration/constants.js.map +1 -0
  120. package/dist/cli/commands/assistants/setup/manualConfiguration/index.d.ts +12 -0
  121. package/dist/cli/commands/assistants/setup/manualConfiguration/index.d.ts.map +1 -0
  122. package/dist/cli/commands/assistants/setup/manualConfiguration/index.js +48 -0
  123. package/dist/cli/commands/assistants/setup/manualConfiguration/index.js.map +1 -0
  124. package/dist/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.d.ts +6 -0
  125. package/dist/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.d.ts.map +1 -0
  126. package/dist/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.js +90 -0
  127. package/dist/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.js.map +1 -0
  128. package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts +37 -0
  129. package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts.map +1 -0
  130. package/dist/cli/commands/assistants/setup/manualConfiguration/types.js +2 -0
  131. package/dist/cli/commands/assistants/setup/manualConfiguration/types.js.map +1 -0
  132. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.d.ts +6 -0
  133. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.d.ts.map +1 -0
  134. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js +103 -0
  135. package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js.map +1 -0
  136. package/dist/cli/commands/assistants/setup/selection/actions.d.ts +31 -0
  137. package/dist/cli/commands/assistants/setup/selection/actions.d.ts.map +1 -0
  138. package/dist/cli/commands/assistants/setup/selection/actions.js +321 -0
  139. package/dist/cli/commands/assistants/setup/selection/actions.js.map +1 -0
  140. package/dist/cli/commands/assistants/setup/selection/constants.d.ts +79 -0
  141. package/dist/cli/commands/assistants/setup/selection/constants.d.ts.map +1 -0
  142. package/dist/cli/commands/assistants/setup/selection/constants.js +90 -0
  143. package/dist/cli/commands/assistants/setup/selection/constants.js.map +1 -0
  144. package/dist/cli/commands/assistants/setup/selection/index.d.ts +25 -0
  145. package/dist/cli/commands/assistants/setup/selection/index.d.ts.map +1 -0
  146. package/dist/cli/commands/assistants/setup/selection/index.js +127 -0
  147. package/dist/cli/commands/assistants/setup/selection/index.js.map +1 -0
  148. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts +20 -0
  149. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts.map +1 -0
  150. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js +328 -0
  151. package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js.map +1 -0
  152. package/dist/cli/commands/assistants/setup/selection/types.d.ts +27 -0
  153. package/dist/cli/commands/assistants/setup/selection/types.d.ts.map +1 -0
  154. package/dist/cli/commands/assistants/setup/selection/types.js +2 -0
  155. package/dist/cli/commands/assistants/setup/selection/types.js.map +1 -0
  156. package/dist/cli/commands/assistants/setup/selection/ui.d.ts +11 -0
  157. package/dist/cli/commands/assistants/setup/selection/ui.d.ts.map +1 -0
  158. package/dist/cli/commands/assistants/setup/selection/ui.js +189 -0
  159. package/dist/cli/commands/assistants/setup/selection/ui.js.map +1 -0
  160. package/dist/cli/commands/assistants/setup/selection/utils.d.ts +36 -0
  161. package/dist/cli/commands/assistants/setup/selection/utils.d.ts.map +1 -0
  162. package/dist/cli/commands/assistants/setup/selection/utils.js +55 -0
  163. package/dist/cli/commands/assistants/setup/selection/utils.js.map +1 -0
  164. package/dist/cli/commands/assistants/setup/summary/index.d.ts +16 -0
  165. package/dist/cli/commands/assistants/setup/summary/index.d.ts.map +1 -0
  166. package/dist/cli/commands/assistants/setup/summary/index.js +48 -0
  167. package/dist/cli/commands/assistants/setup/summary/index.js.map +1 -0
  168. package/dist/cli/commands/install.d.ts.map +1 -1
  169. package/dist/cli/commands/install.js +8 -0
  170. package/dist/cli/commands/install.js.map +1 -1
  171. package/dist/cli/commands/log/cleaner.d.ts +33 -0
  172. package/dist/cli/commands/log/cleaner.d.ts.map +1 -0
  173. package/dist/cli/commands/log/cleaner.js +214 -0
  174. package/dist/cli/commands/log/cleaner.js.map +1 -0
  175. package/dist/cli/commands/log/filter.d.ts +55 -0
  176. package/dist/cli/commands/log/filter.d.ts.map +1 -0
  177. package/dist/cli/commands/log/filter.js +128 -0
  178. package/dist/cli/commands/log/filter.js.map +1 -0
  179. package/dist/cli/commands/log/follower.d.ts +36 -0
  180. package/dist/cli/commands/log/follower.d.ts.map +1 -0
  181. package/dist/cli/commands/log/follower.js +151 -0
  182. package/dist/cli/commands/log/follower.js.map +1 -0
  183. package/dist/cli/commands/log/formatter.d.ts +76 -0
  184. package/dist/cli/commands/log/formatter.d.ts.map +1 -0
  185. package/dist/cli/commands/log/formatter.js +261 -0
  186. package/dist/cli/commands/log/formatter.js.map +1 -0
  187. package/dist/cli/commands/log/index.d.ts +6 -0
  188. package/dist/cli/commands/log/index.d.ts.map +1 -0
  189. package/dist/cli/commands/log/index.js +398 -0
  190. package/dist/cli/commands/log/index.js.map +1 -0
  191. package/dist/cli/commands/log/parser.d.ts +20 -0
  192. package/dist/cli/commands/log/parser.d.ts.map +1 -0
  193. package/dist/cli/commands/log/parser.js +111 -0
  194. package/dist/cli/commands/log/parser.js.map +1 -0
  195. package/dist/cli/commands/log/reader.d.ts +61 -0
  196. package/dist/cli/commands/log/reader.d.ts.map +1 -0
  197. package/dist/cli/commands/log/reader.js +327 -0
  198. package/dist/cli/commands/log/reader.js.map +1 -0
  199. package/dist/cli/commands/log/types.d.ts +100 -0
  200. package/dist/cli/commands/log/types.d.ts.map +1 -0
  201. package/dist/cli/commands/log/types.js +5 -0
  202. package/dist/cli/commands/log/types.js.map +1 -0
  203. package/dist/cli/commands/setup.d.ts.map +1 -1
  204. package/dist/cli/commands/setup.js +2 -0
  205. package/dist/cli/commands/setup.js.map +1 -1
  206. package/dist/cli/commands/skill.js +1 -1
  207. package/dist/cli/commands/skill.js.map +1 -1
  208. package/dist/cli/commands/update.d.ts.map +1 -1
  209. package/dist/cli/commands/update.js +8 -0
  210. package/dist/cli/commands/update.js.map +1 -1
  211. package/dist/cli/index.js +2 -0
  212. package/dist/cli/index.js.map +1 -1
  213. package/dist/env/types.d.ts +1 -0
  214. package/dist/env/types.d.ts.map +1 -1
  215. package/dist/env/types.js.map +1 -1
  216. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts +5 -0
  217. package/dist/providers/plugins/sso/session/SessionSyncer.d.ts.map +1 -1
  218. package/dist/providers/plugins/sso/session/SessionSyncer.js +102 -3
  219. package/dist/providers/plugins/sso/session/SessionSyncer.js.map +1 -1
  220. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts +0 -1
  221. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts.map +1 -1
  222. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js +25 -48
  223. package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js.map +1 -1
  224. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -1
  225. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js +8 -34
  226. package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -1
  227. package/dist/utils/native-installer.d.ts +1 -0
  228. package/dist/utils/native-installer.d.ts.map +1 -1
  229. package/dist/utils/native-installer.js +60 -9
  230. package/dist/utils/native-installer.js.map +1 -1
  231. package/dist/utils/windows-path.d.ts +54 -0
  232. package/dist/utils/windows-path.d.ts.map +1 -0
  233. package/dist/utils/windows-path.js +347 -0
  234. package/dist/utils/windows-path.js.map +1 -0
  235. package/package.json +2 -2
  236. package/dist/cli/commands/assistants/generators/claude-agent-generator.d.ts.map +0 -1
  237. package/dist/cli/commands/assistants/generators/claude-agent-generator.js.map +0 -1
  238. package/dist/cli/commands/assistants/list.d.ts +0 -11
  239. package/dist/cli/commands/assistants/list.d.ts.map +0 -1
  240. package/dist/cli/commands/assistants/list.js +0 -323
  241. package/dist/cli/commands/assistants/list.js.map +0 -1
  242. package/dist/skills/core/SkillDiscovery.d.ts.map +0 -1
  243. package/dist/skills/core/SkillDiscovery.js.map +0 -1
  244. package/dist/skills/core/SkillManager.d.ts.map +0 -1
  245. package/dist/skills/core/SkillManager.js.map +0 -1
  246. package/dist/skills/core/types.d.ts.map +0 -1
  247. package/dist/skills/core/types.js.map +0 -1
  248. package/dist/skills/index.d.ts.map +0 -1
  249. package/dist/skills/index.js.map +0 -1
  250. package/dist/skills/utils/content-loader.d.ts.map +0 -1
  251. package/dist/skills/utils/content-loader.js.map +0 -1
  252. package/dist/skills/utils/frontmatter.d.ts.map +0 -1
  253. package/dist/skills/utils/frontmatter.js.map +0 -1
  254. package/dist/skills/utils/pattern-matcher.d.ts.map +0 -1
  255. package/dist/skills/utils/pattern-matcher.js.map +0 -1
  256. /package/dist/{skills → agents/codemie-code/skills}/core/SkillDiscovery.d.ts +0 -0
  257. /package/dist/{skills → agents/codemie-code/skills}/core/SkillManager.d.ts +0 -0
  258. /package/dist/{skills → agents/codemie-code/skills}/core/types.d.ts +0 -0
  259. /package/dist/{skills → agents/codemie-code/skills}/core/types.js +0 -0
  260. /package/dist/{skills → agents/codemie-code/skills}/index.d.ts +0 -0
  261. /package/dist/{skills → agents/codemie-code/skills}/index.js +0 -0
  262. /package/dist/{skills → agents/codemie-code/skills}/utils/content-loader.d.ts +0 -0
  263. /package/dist/{skills → agents/codemie-code/skills}/utils/frontmatter.d.ts +0 -0
  264. /package/dist/{skills → agents/codemie-code/skills}/utils/frontmatter.js +0 -0
  265. /package/dist/{skills → agents/codemie-code/skills}/utils/pattern-matcher.d.ts +0 -0
  266. /package/dist/{skills → agents/codemie-code/skills}/utils/pattern-matcher.js +0 -0
  267. /package/dist/cli/commands/assistants/{generators → setup/generators}/claude-agent-generator.d.ts +0 -0
@@ -0,0 +1,140 @@
1
+ import { MODE_CYCLE_ORDER } from './constants.js';
2
+ import { ACTION_TYPE } from '../constants.js';
3
+ /**
4
+ * Cycle registration mode forward or backward
5
+ */
6
+ function cycleMode(currentMode, direction) {
7
+ const currentIndex = MODE_CYCLE_ORDER.indexOf(currentMode);
8
+ let nextIndex;
9
+ if (direction === 'forward') {
10
+ nextIndex = (currentIndex + 1) % MODE_CYCLE_ORDER.length;
11
+ }
12
+ else {
13
+ nextIndex = (currentIndex - 1 + MODE_CYCLE_ORDER.length) % MODE_CYCLE_ORDER.length;
14
+ }
15
+ return MODE_CYCLE_ORDER[nextIndex];
16
+ }
17
+ /**
18
+ * Create action handlers with closure over dependencies
19
+ */
20
+ export function createActionHandlers(state, render, resolve) {
21
+ return {
22
+ /**
23
+ * Handle up arrow
24
+ */
25
+ handleArrowUp() {
26
+ if (state.areNavigationButtonsFocused) {
27
+ // Move to last item in list
28
+ state.areNavigationButtonsFocused = false;
29
+ state.cursorIndex = state.registrations.length - 1;
30
+ }
31
+ else if (state.cursorIndex > 0) {
32
+ state.cursorIndex--;
33
+ }
34
+ render();
35
+ },
36
+ /**
37
+ * Handle down arrow
38
+ */
39
+ handleArrowDown() {
40
+ if (!state.areNavigationButtonsFocused) {
41
+ if (state.cursorIndex < state.registrations.length - 1) {
42
+ state.cursorIndex++;
43
+ }
44
+ else {
45
+ // Move to buttons
46
+ state.areNavigationButtonsFocused = true;
47
+ state.focusedButton = ACTION_TYPE.APPLY;
48
+ }
49
+ }
50
+ render();
51
+ },
52
+ /**
53
+ * Handle left arrow
54
+ */
55
+ handleArrowLeft() {
56
+ if (state.areNavigationButtonsFocused) {
57
+ // Toggle between buttons
58
+ state.focusedButton = state.focusedButton === ACTION_TYPE.APPLY ? ACTION_TYPE.CANCEL : ACTION_TYPE.APPLY;
59
+ }
60
+ else {
61
+ // Cycle mode backward
62
+ const registration = state.registrations[state.cursorIndex];
63
+ registration.mode = cycleMode(registration.mode, 'backward');
64
+ }
65
+ render();
66
+ },
67
+ /**
68
+ * Handle right arrow
69
+ */
70
+ handleArrowRight() {
71
+ if (state.areNavigationButtonsFocused) {
72
+ // Toggle between buttons
73
+ state.focusedButton = state.focusedButton === ACTION_TYPE.APPLY ? ACTION_TYPE.CANCEL : ACTION_TYPE.APPLY;
74
+ }
75
+ else {
76
+ // Cycle mode forward
77
+ const registration = state.registrations[state.cursorIndex];
78
+ registration.mode = cycleMode(registration.mode, 'forward');
79
+ }
80
+ render();
81
+ },
82
+ /**
83
+ * Handle space key
84
+ */
85
+ handleSpace() {
86
+ if (!state.areNavigationButtonsFocused) {
87
+ // Cycle mode forward
88
+ const registration = state.registrations[state.cursorIndex];
89
+ registration.mode = cycleMode(registration.mode, 'forward');
90
+ render();
91
+ }
92
+ },
93
+ /**
94
+ * Handle tab key
95
+ */
96
+ handleTab() {
97
+ state.areNavigationButtonsFocused = !state.areNavigationButtonsFocused;
98
+ if (state.areNavigationButtonsFocused) {
99
+ state.focusedButton = ACTION_TYPE.APPLY;
100
+ }
101
+ render();
102
+ },
103
+ /**
104
+ * Handle shift+tab key
105
+ */
106
+ handleShiftTab() {
107
+ state.areNavigationButtonsFocused = !state.areNavigationButtonsFocused;
108
+ if (state.areNavigationButtonsFocused) {
109
+ state.focusedButton = ACTION_TYPE.CANCEL;
110
+ }
111
+ render();
112
+ },
113
+ /**
114
+ * Handle enter key
115
+ */
116
+ handleEnter() {
117
+ if (state.areNavigationButtonsFocused) {
118
+ // Execute focused button
119
+ resolve(state.focusedButton === ACTION_TYPE.APPLY ? ACTION_TYPE.APPLY : ACTION_TYPE.CANCEL);
120
+ }
121
+ else {
122
+ // From list: move to apply button and execute
123
+ resolve(ACTION_TYPE.APPLY);
124
+ }
125
+ },
126
+ /**
127
+ * Handle back (Esc) - go back to configuration mode selection
128
+ */
129
+ handleBack() {
130
+ resolve(ACTION_TYPE.BACK);
131
+ },
132
+ /**
133
+ * Handle cancel (Ctrl+C)
134
+ */
135
+ handleCancel() {
136
+ resolve(ACTION_TYPE.CANCEL);
137
+ },
138
+ };
139
+ }
140
+ //# sourceMappingURL=actions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/manualConfiguration/actions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ import type { RegistrationMode } from './types.js';
2
+ /**
3
+ * Registration mode values
4
+ */
5
+ export declare const REGISTRATION_MODE: {
6
+ readonly AGENT: "agent";
7
+ readonly SKILL: "skill";
8
+ };
9
+ /**
10
+ * ANSI escape codes for terminal control
11
+ */
12
+ export declare const ANSI: {
13
+ readonly CLEAR_SCREEN: "\u001B[2J\u001B[H";
14
+ readonly HIDE_CURSOR: "\u001B[?25l";
15
+ readonly SHOW_CURSOR: "\u001B[?25h";
16
+ readonly CLEAR_LINE: "\u001B[2K";
17
+ };
18
+ /**
19
+ * Key codes for keyboard input
20
+ */
21
+ export declare const KEY: {
22
+ readonly UP: "\u001B[A";
23
+ readonly DOWN: "\u001B[B";
24
+ readonly LEFT: "\u001B[D";
25
+ readonly RIGHT: "\u001B[C";
26
+ readonly ENTER: "\r";
27
+ readonly SPACE: " ";
28
+ readonly TAB: "\t";
29
+ readonly SHIFT_TAB: "\u001B[Z";
30
+ readonly ESC: "\u001B";
31
+ readonly CTRL_C: "\u0003";
32
+ };
33
+ /**
34
+ * Labels for registration modes
35
+ */
36
+ export declare const MODE_LABELS: Record<RegistrationMode, string>;
37
+ /**
38
+ * Order for cycling through modes
39
+ */
40
+ export declare const MODE_CYCLE_ORDER: RegistrationMode[];
41
+ /**
42
+ * UI text strings
43
+ */
44
+ export declare const UI_TEXT: {
45
+ readonly TITLE: "Configure Registration";
46
+ readonly SUBTITLE: "Select registration mode for each assistant:";
47
+ readonly INSTRUCTIONS: "↑↓: Navigate • ←→: Toggle Mode • Enter: Confirm • Esc: Cancel";
48
+ readonly APPLY_BUTTON: "Apply";
49
+ readonly CANCEL_BUTTON: "Cancel";
50
+ readonly NO_CHANGES: "No changes made";
51
+ };
52
+ /**
53
+ * Keep-alive timer interval (ms)
54
+ */
55
+ export declare const KEEP_ALIVE_INTERVAL = 60000;
56
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/manualConfiguration/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;CAGpB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;CAKP,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,GAAG;;;;;;;;;;;CAWN,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAG/C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,gBAAgB,EAG9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,OAAO;;;;;;;CAOV,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAQ,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Registration mode values
3
+ */
4
+ export const REGISTRATION_MODE = {
5
+ AGENT: 'agent',
6
+ SKILL: 'skill',
7
+ };
8
+ /**
9
+ * ANSI escape codes for terminal control
10
+ */
11
+ export const ANSI = {
12
+ CLEAR_SCREEN: '\x1B[2J\x1B[H',
13
+ HIDE_CURSOR: '\x1B[?25l',
14
+ SHOW_CURSOR: '\x1B[?25h',
15
+ CLEAR_LINE: '\x1B[2K',
16
+ };
17
+ /**
18
+ * Key codes for keyboard input
19
+ */
20
+ export const KEY = {
21
+ UP: '\x1B[A',
22
+ DOWN: '\x1B[B',
23
+ LEFT: '\x1B[D',
24
+ RIGHT: '\x1B[C',
25
+ ENTER: '\r',
26
+ SPACE: ' ',
27
+ TAB: '\t',
28
+ SHIFT_TAB: '\x1B[Z',
29
+ ESC: '\x1B',
30
+ CTRL_C: '\x03',
31
+ };
32
+ /**
33
+ * Labels for registration modes
34
+ */
35
+ export const MODE_LABELS = {
36
+ [REGISTRATION_MODE.AGENT]: 'Claude Agent',
37
+ [REGISTRATION_MODE.SKILL]: 'Claude Skill',
38
+ };
39
+ /**
40
+ * Order for cycling through modes
41
+ */
42
+ export const MODE_CYCLE_ORDER = [
43
+ REGISTRATION_MODE.AGENT,
44
+ REGISTRATION_MODE.SKILL,
45
+ ];
46
+ /**
47
+ * UI text strings
48
+ */
49
+ export const UI_TEXT = {
50
+ TITLE: 'Configure Registration',
51
+ SUBTITLE: 'Select registration mode for each assistant:',
52
+ INSTRUCTIONS: '↑↓: Navigate • ←→: Toggle Mode • Enter: Confirm • Esc: Cancel',
53
+ APPLY_BUTTON: 'Apply',
54
+ CANCEL_BUTTON: 'Cancel',
55
+ NO_CHANGES: 'No changes made',
56
+ };
57
+ /**
58
+ * Keep-alive timer interval (ms)
59
+ */
60
+ export const KEEP_ALIVE_INTERVAL = 60000;
61
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/manualConfiguration/constants.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAChC,KAAK,EAAE,OAAgB;IACvB,KAAK,EAAE,OAAgB;CACd,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IACnB,YAAY,EAAE,eAAe;IAC7B,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE,SAAS;CACZ,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,GAAG,GAAG;IAClB,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,QAAQ;IACf,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,GAAG;IACV,GAAG,EAAE,IAAI;IACT,SAAS,EAAE,QAAQ;IACnB,GAAG,EAAE,MAAM;IACX,MAAM,EAAE,MAAM;CACL,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAqC;IAC5D,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,cAAc;IACzC,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,cAAc;CAChC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAuB;IACnD,iBAAiB,CAAC,KAAK;IACvB,iBAAiB,CAAC,KAAK;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG;IACtB,KAAK,EAAE,wBAAwB;IAC/B,QAAQ,EAAE,8CAA8C;IACxD,YAAY,EAAE,+DAA+D;IAC7E,YAAY,EAAE,OAAO;IACrB,aAAa,EAAE,QAAQ;IACvB,UAAU,EAAE,iBAAiB;CACpB,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Assistant } from 'codemie-sdk';
2
+ import type { CodemieAssistant } from '../../../../../env/types.js';
3
+ import type { ConfigurationResult } from './types.js';
4
+ /**
5
+ * Prompt user to manually configure registration modes for selected assistants
6
+ * Returns a map of assistant IDs to registration modes and the action taken
7
+ * @param assistants - All selected assistants (both new and already registered)
8
+ * @param registeredIds - Set of IDs of already registered assistants
9
+ * @param registeredAssistants - Array of registered assistants with saved modes
10
+ */
11
+ export declare function promptManualConfiguration(assistants: Assistant[], registeredIds: Set<string>, registeredAssistants: CodemieAssistant[]): Promise<ConfigurationResult>;
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/manualConfiguration/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAsB,mBAAmB,EAAoB,MAAM,YAAY,CAAC;AAyB5F;;;;;;GAMG;AACH,wBAAsB,yBAAyB,CAC9C,UAAU,EAAE,SAAS,EAAE,EACvB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAC1B,oBAAoB,EAAE,gBAAgB,EAAE,GACtC,OAAO,CAAC,mBAAmB,CAAC,CAyB9B"}
@@ -0,0 +1,48 @@
1
+ import { createInteractivePrompt } from './interactive-prompt.js';
2
+ import { REGISTRATION_MODE } from './constants.js';
3
+ import { ACTION_TYPE } from '../constants.js';
4
+ /**
5
+ * Initialize state with saved registration modes or default to 'agent'
6
+ */
7
+ function initializeState(assistants, registeredIds, savedModes) {
8
+ return {
9
+ registrations: assistants.map((assistant) => ({
10
+ assistant,
11
+ mode: savedModes.get(assistant.id) || REGISTRATION_MODE.AGENT,
12
+ isAlreadyRegistered: registeredIds.has(assistant.id),
13
+ })),
14
+ cursorIndex: 0,
15
+ areNavigationButtonsFocused: true,
16
+ focusedButton: ACTION_TYPE.APPLY,
17
+ };
18
+ }
19
+ /**
20
+ * Prompt user to manually configure registration modes for selected assistants
21
+ * Returns a map of assistant IDs to registration modes and the action taken
22
+ * @param assistants - All selected assistants (both new and already registered)
23
+ * @param registeredIds - Set of IDs of already registered assistants
24
+ * @param registeredAssistants - Array of registered assistants with saved modes
25
+ */
26
+ export async function promptManualConfiguration(assistants, registeredIds, registeredAssistants) {
27
+ const savedModes = new Map();
28
+ for (const registered of registeredAssistants) {
29
+ if (registered.registrationMode) {
30
+ // Use saved mode, defaulting to AGENT for any other value (e.g., legacy 'both')
31
+ const mode = (registered.registrationMode === REGISTRATION_MODE.AGENT || registered.registrationMode === REGISTRATION_MODE.SKILL)
32
+ ? registered.registrationMode
33
+ : REGISTRATION_MODE.AGENT;
34
+ savedModes.set(registered.id, mode);
35
+ }
36
+ }
37
+ const state = initializeState(assistants, registeredIds, savedModes);
38
+ const action = await createInteractivePrompt(state);
39
+ const registrationModes = new Map();
40
+ for (const registration of state.registrations) {
41
+ registrationModes.set(registration.assistant.id, registration.mode);
42
+ }
43
+ return {
44
+ registrationModes,
45
+ action,
46
+ };
47
+ }
48
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/manualConfiguration/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,SAAS,eAAe,CACvB,UAAuB,EACvB,aAA0B,EAC1B,UAAyC;IAEzC,OAAO;QACN,aAAa,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC7C,SAAS;YACT,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,iBAAiB,CAAC,KAAK;YAC7D,mBAAmB,EAAE,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;SACpD,CAAC,CAAC;QACH,WAAW,EAAE,CAAC;QACd,2BAA2B,EAAE,IAAI;QACjC,aAAa,EAAE,WAAW,CAAC,KAAK;KAChC,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC9C,UAAuB,EACvB,aAA0B,EAC1B,oBAAwC;IAExC,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4B,CAAC;IACvD,KAAK,MAAM,UAAU,IAAI,oBAAoB,EAAE,CAAC;QAC/C,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;YACjC,gFAAgF;YAChF,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,gBAAgB,KAAK,iBAAiB,CAAC,KAAK,IAAI,UAAU,CAAC,gBAAgB,KAAK,iBAAiB,CAAC,KAAK,CAAC;gBAChI,CAAC,CAAC,UAAU,CAAC,gBAAgB;gBAC7B,CAAC,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAC3B,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;IACF,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,CAAC,UAAU,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAErE,MAAM,MAAM,GAAG,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC9D,KAAK,MAAM,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QAChD,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,OAAO;QACN,iBAAiB;QACjB,MAAM;KACN,CAAC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { ConfigurationState, ConfigurationAction } from './types.js';
2
+ /**
3
+ * Interactive prompt for configuring assistant registration modes
4
+ */
5
+ export declare function createInteractivePrompt(state: ConfigurationState): Promise<ConfigurationAction>;
6
+ //# sourceMappingURL=interactive-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-prompt.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAK1E;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CA6F/F"}
@@ -0,0 +1,90 @@
1
+ import { ANSI, KEY, KEEP_ALIVE_INTERVAL } from './constants.js';
2
+ import { renderUI } from './ui.js';
3
+ import { createActionHandlers } from './actions.js';
4
+ /**
5
+ * Interactive prompt for configuring assistant registration modes
6
+ */
7
+ export function createInteractivePrompt(state) {
8
+ return new Promise((resolve) => {
9
+ let keepAliveTimer = null;
10
+ /**
11
+ * Render UI to stdout
12
+ */
13
+ function render() {
14
+ const output = ANSI.CLEAR_SCREEN + ANSI.HIDE_CURSOR + renderUI(state);
15
+ process.stdout.write(output);
16
+ }
17
+ /**
18
+ * Cleanup and restore terminal
19
+ */
20
+ function cleanup() {
21
+ if (keepAliveTimer) {
22
+ clearInterval(keepAliveTimer);
23
+ keepAliveTimer = null;
24
+ }
25
+ process.stdin.setRawMode(false);
26
+ process.stdin.pause();
27
+ process.stdin.removeAllListeners('data');
28
+ process.stdout.write(ANSI.SHOW_CURSOR + ANSI.CLEAR_SCREEN);
29
+ }
30
+ /**
31
+ * Resolve promise and cleanup
32
+ */
33
+ function stop(action) {
34
+ cleanup();
35
+ resolve(action);
36
+ }
37
+ /**
38
+ * Start interactive mode
39
+ */
40
+ function start() {
41
+ const actions = createActionHandlers(state, render, stop);
42
+ process.stdin.setRawMode(true);
43
+ process.stdin.resume();
44
+ process.stdin.setEncoding('utf8');
45
+ process.stdin.on('data', (key) => {
46
+ switch (key) {
47
+ case KEY.UP:
48
+ actions.handleArrowUp();
49
+ break;
50
+ case KEY.DOWN:
51
+ actions.handleArrowDown();
52
+ break;
53
+ case KEY.LEFT:
54
+ actions.handleArrowLeft();
55
+ break;
56
+ case KEY.RIGHT:
57
+ actions.handleArrowRight();
58
+ break;
59
+ case KEY.SPACE:
60
+ actions.handleSpace();
61
+ break;
62
+ case KEY.TAB:
63
+ actions.handleTab();
64
+ break;
65
+ case KEY.SHIFT_TAB:
66
+ actions.handleShiftTab();
67
+ break;
68
+ case KEY.ENTER:
69
+ actions.handleEnter();
70
+ break;
71
+ case KEY.ESC:
72
+ actions.handleBack();
73
+ break;
74
+ case KEY.CTRL_C:
75
+ actions.handleCancel();
76
+ break;
77
+ default:
78
+ // Ignore other keys
79
+ break;
80
+ }
81
+ });
82
+ // Keep-alive timer to prevent process from exiting
83
+ keepAliveTimer = setInterval(() => {
84
+ }, KEEP_ALIVE_INTERVAL);
85
+ render();
86
+ }
87
+ start();
88
+ });
89
+ }
90
+ //# sourceMappingURL=interactive-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-prompt.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import type { Assistant } from 'codemie-sdk';
2
+ import type { ACTION_TYPE } from '../constants.js';
3
+ /**
4
+ * Registration mode for an assistant
5
+ * - agent: Register as Claude agent only (~/.claude/agents/{slug}.md)
6
+ * - skill: Register as Claude skill only (~/.codemie/skills/{slug}/SKILL.md)
7
+ */
8
+ export type RegistrationMode = 'agent' | 'skill';
9
+ /**
10
+ * Action taken by the user in the configuration UI
11
+ */
12
+ export type ConfigurationAction = typeof ACTION_TYPE.APPLY | typeof ACTION_TYPE.CANCEL | typeof ACTION_TYPE.BACK;
13
+ /**
14
+ * Represents a single assistant with its registration mode
15
+ */
16
+ export interface AssistantRegistration {
17
+ assistant: Assistant;
18
+ mode: RegistrationMode;
19
+ isAlreadyRegistered: boolean;
20
+ }
21
+ /**
22
+ * State for the manual configuration UI
23
+ */
24
+ export interface ConfigurationState {
25
+ registrations: AssistantRegistration[];
26
+ cursorIndex: number;
27
+ areNavigationButtonsFocused: boolean;
28
+ focusedButton: typeof ACTION_TYPE.APPLY | typeof ACTION_TYPE.CANCEL;
29
+ }
30
+ /**
31
+ * Result returned from the configuration UI
32
+ */
33
+ export interface ConfigurationResult {
34
+ registrationModes: Map<string, RegistrationMode>;
35
+ action: ConfigurationAction;
36
+ }
37
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/manualConfiguration/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEjD;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,OAAO,WAAW,CAAC,KAAK,GAAG,OAAO,WAAW,CAAC,MAAM,GAAG,OAAO,WAAW,CAAC,IAAI,CAAC;AAEjH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,SAAS,EAAE,SAAS,CAAC;IACrB,IAAI,EAAE,gBAAgB,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,aAAa,EAAE,qBAAqB,EAAE,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B,EAAE,OAAO,CAAC;IACrC,aAAa,EAAE,OAAO,WAAW,CAAC,KAAK,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC;CACpE;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACjD,MAAM,EAAE,mBAAmB,CAAC;CAC5B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/manualConfiguration/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { ConfigurationState } from './types.js';
2
+ /**
3
+ * Render full UI
4
+ */
5
+ export declare function renderUI(state: ConfigurationState): string;
6
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/manualConfiguration/ui.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAoB,MAAM,YAAY,CAAC;AAqGvE;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAiB1D"}
@@ -0,0 +1,103 @@
1
+ import chalk from 'chalk';
2
+ import { MODE_LABELS, MODE_CYCLE_ORDER, UI_TEXT } from './constants.js';
3
+ import { COLOR, ACTION_TYPE } from '../constants.js';
4
+ /**
5
+ * Build top line (purple separator)
6
+ */
7
+ function buildTopLine() {
8
+ const width = 60;
9
+ return chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b)('─'.repeat(width));
10
+ }
11
+ /**
12
+ * Build title section
13
+ */
14
+ function buildTitle() {
15
+ return chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b).bold(UI_TEXT.TITLE);
16
+ }
17
+ /**
18
+ * Build subtitle section
19
+ */
20
+ function buildSubtitle() {
21
+ return chalk.dim(UI_TEXT.SUBTITLE);
22
+ }
23
+ /**
24
+ * Build mode switch display
25
+ * Shows: [Claude Agent] [Claude Skill]
26
+ * Active mode is highlighted in purple
27
+ */
28
+ function buildModeSwitch(currentMode, isCursor) {
29
+ const switches = MODE_CYCLE_ORDER.map((mode) => {
30
+ const label = MODE_LABELS[mode];
31
+ const isActive = mode === currentMode;
32
+ if (isActive && isCursor) {
33
+ return chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b).bold(`[${label}]`);
34
+ }
35
+ else if (isActive) {
36
+ return chalk.bold(`[${label}]`);
37
+ }
38
+ else {
39
+ return chalk.dim(`[${label}]`);
40
+ }
41
+ });
42
+ return switches.join(' ');
43
+ }
44
+ /**
45
+ * Build single assistant line
46
+ */
47
+ function buildAssistantLine(registration, isCursor) {
48
+ const cursor = isCursor ? chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b)('› ') : ' ';
49
+ const name = isCursor ? chalk.bold(registration.assistant.name) : chalk.white(registration.assistant.name);
50
+ const badge = registration.isAlreadyRegistered ? chalk.dim(' (Already registered)') : '';
51
+ const modeSwitch = buildModeSwitch(registration.mode, isCursor);
52
+ return `${cursor}${name}${badge}\n Mode: ${modeSwitch}`;
53
+ }
54
+ /**
55
+ * Build assistants list
56
+ */
57
+ function buildAssistantsList(state) {
58
+ const lines = state.registrations.map((registration, index) => {
59
+ const isCursor = !state.areNavigationButtonsFocused && state.cursorIndex === index;
60
+ return buildAssistantLine(registration, isCursor);
61
+ });
62
+ return lines.join('\n\n');
63
+ }
64
+ /**
65
+ * Build buttons (Apply / Cancel)
66
+ */
67
+ function buildButtons(state) {
68
+ const { areNavigationButtonsFocused, focusedButton } = state;
69
+ const applyButton = areNavigationButtonsFocused && focusedButton === ACTION_TYPE.APPLY
70
+ ? chalk.bgRgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b).black(` ${UI_TEXT.APPLY_BUTTON} `)
71
+ : chalk.dim(`[${UI_TEXT.APPLY_BUTTON}]`);
72
+ const cancelButton = areNavigationButtonsFocused && focusedButton === ACTION_TYPE.CANCEL
73
+ ? chalk.bgRgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b).black(` ${UI_TEXT.CANCEL_BUTTON} `)
74
+ : chalk.dim(`[${UI_TEXT.CANCEL_BUTTON}]`);
75
+ return ` ${applyButton} ${cancelButton}`;
76
+ }
77
+ /**
78
+ * Build instructions line
79
+ */
80
+ function buildInstructions() {
81
+ return chalk.dim(UI_TEXT.INSTRUCTIONS);
82
+ }
83
+ /**
84
+ * Render full UI
85
+ */
86
+ export function renderUI(state) {
87
+ const parts = [
88
+ buildTopLine(),
89
+ buildTitle(),
90
+ '',
91
+ buildSubtitle(),
92
+ '',
93
+ buildAssistantsList(state),
94
+ '',
95
+ buildTopLine(),
96
+ '',
97
+ buildButtons(state),
98
+ '',
99
+ buildInstructions(),
100
+ ];
101
+ return parts.join('\n');
102
+ }
103
+ //# sourceMappingURL=ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/manualConfiguration/ui.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Action Handlers
3
+ *
4
+ * All user interaction handlers for the selection UI
5
+ */
6
+ import type { SelectionState } from './types.js';
7
+ import type { DataFetcher } from '../data.js';
8
+ import type { InteractivePrompt } from './interactive-prompt.js';
9
+ export interface ActionHandlers {
10
+ handlePanelSwitch: (direction: 'next' | 'prev') => void;
11
+ handleSearchUpdate: (query: string) => void;
12
+ handleFocusSearch: () => void;
13
+ handleFocusList: () => void;
14
+ handleCursorMove: (direction: 'up' | 'down') => void;
15
+ handleToggleSelection: () => void;
16
+ handleConfirm: () => void;
17
+ handleCancel: () => void;
18
+ handlePageNext: () => void;
19
+ handlePagePrev: () => void;
20
+ handleButtonToggle: () => void;
21
+ handleButtonSwitch: (direction: 'left' | 'right') => void;
22
+ }
23
+ export interface ActionHandlerDependencies {
24
+ state: SelectionState;
25
+ fetcher: DataFetcher;
26
+ prompt: () => InteractivePrompt | null;
27
+ setPrompt: (p: InteractivePrompt | null) => void;
28
+ setCancelled: (cancelled: boolean) => void;
29
+ }
30
+ export declare function createActionHandlers(deps: ActionHandlerDependencies): ActionHandlers;
31
+ //# sourceMappingURL=actions.d.ts.map