@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/selection/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Interactive Prompt
3
+ *
4
+ * Handles prompt lifecycle (setup, keyboard handling, teardown)
5
+ */
6
+ import type { SelectionState } from './types.js';
7
+ import type { ActionHandlers } from './actions.js';
8
+ export interface InteractivePromptOptions {
9
+ state: SelectionState;
10
+ actions: ActionHandlers;
11
+ }
12
+ export interface InteractivePrompt {
13
+ start: () => Promise<void>;
14
+ stop: () => void;
15
+ render: () => void;
16
+ getCursorIndex: () => number;
17
+ setCursorIndex: (index: number) => void;
18
+ }
19
+ export declare function createInteractivePrompt(options: InteractivePromptOptions): InteractivePrompt;
20
+ //# sourceMappingURL=interactive-prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-prompt.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/selection/interactive-prompt.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAInD,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,EAAE,MAAM,MAAM,CAAC;IAC7B,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,iBAAiB,CA6X5F"}
@@ -0,0 +1,328 @@
1
+ /**
2
+ * Interactive Prompt
3
+ *
4
+ * Handles prompt lifecycle (setup, keyboard handling, teardown)
5
+ */
6
+ import { KEY, CONFIG, PAGINATION_CONTROL } from './constants.js';
7
+ import { renderUI } from './ui.js';
8
+ export function createInteractivePrompt(options) {
9
+ let cursorIndex = 0;
10
+ let isActive = false;
11
+ let resolvePromise = null;
12
+ let dataHandler = null;
13
+ let keepAliveTimer = null;
14
+ let searchDebounceTimer = null;
15
+ /**
16
+ * Start the interactive prompt
17
+ */
18
+ async function start() {
19
+ isActive = true;
20
+ keepAliveTimer = setInterval(() => { }, CONFIG.KEEP_ALIVE_INTERVAL_MS); // keep event loop running
21
+ process.stdin.resume();
22
+ if (process.stdin.isTTY) {
23
+ process.stdin.setRawMode(true);
24
+ }
25
+ process.stdin.setEncoding('utf8');
26
+ setupKeyHandlers();
27
+ render();
28
+ return new Promise((resolve) => {
29
+ resolvePromise = resolve;
30
+ });
31
+ }
32
+ /**
33
+ * Stop the interactive prompt
34
+ */
35
+ function stop() {
36
+ isActive = false;
37
+ if (keepAliveTimer) {
38
+ clearInterval(keepAliveTimer);
39
+ keepAliveTimer = null;
40
+ }
41
+ if (searchDebounceTimer) {
42
+ clearTimeout(searchDebounceTimer);
43
+ searchDebounceTimer = null;
44
+ }
45
+ if (dataHandler) {
46
+ process.stdin.removeListener('data', dataHandler);
47
+ dataHandler = null;
48
+ }
49
+ if (process.stdin.isTTY) {
50
+ process.stdin.setRawMode(false);
51
+ }
52
+ process.stdin.pause();
53
+ process.stdin.unref();
54
+ if (resolvePromise) {
55
+ resolvePromise();
56
+ resolvePromise = null;
57
+ }
58
+ }
59
+ /**
60
+ * Get current cursor index
61
+ */
62
+ function getCursorIndex() {
63
+ return cursorIndex;
64
+ }
65
+ /**
66
+ * Set cursor index
67
+ */
68
+ function setCursorIndex(index) {
69
+ cursorIndex = index;
70
+ }
71
+ /**
72
+ * Render the UI
73
+ */
74
+ function render() {
75
+ if (!isActive)
76
+ return;
77
+ const output = renderUI(options.state, cursorIndex);
78
+ process.stdout.write(output);
79
+ }
80
+ /**
81
+ * Check if character is printable (for search input)
82
+ */
83
+ function isPrintableChar(key) {
84
+ return key.length === 1 &&
85
+ key.charCodeAt(0) >= CONFIG.PRINTABLE_CHAR_MIN &&
86
+ key.charCodeAt(0) <= CONFIG.PRINTABLE_CHAR_MAX;
87
+ }
88
+ /**
89
+ * Handle exit (Ctrl+C or Esc)
90
+ */
91
+ function handleExit() {
92
+ options.actions.handleCancel();
93
+ }
94
+ function handleEsc() {
95
+ const state = options.state;
96
+ if (state.isSearchFocused && state.searchQuery.length > 0) {
97
+ updateSearchQuery('');
98
+ return;
99
+ }
100
+ if (state.isSearchFocused) {
101
+ options.actions.handleFocusList();
102
+ render();
103
+ return;
104
+ }
105
+ options.actions.handleCancel();
106
+ }
107
+ /**
108
+ * Handle next panel (Tab only, not Right arrow when on pagination controls)
109
+ */
110
+ function handleNextPanel() {
111
+ const state = options.state;
112
+ // If on buttons, cycle back to list
113
+ if (state.areNavigationButtonsFocused) {
114
+ options.actions.handleButtonToggle();
115
+ render();
116
+ return;
117
+ }
118
+ cursorIndex = 0;
119
+ state.isPaginationFocused = null;
120
+ options.actions.handlePanelSwitch('next');
121
+ render();
122
+ }
123
+ /**
124
+ * Handle previous panel (Shift+Tab only, not Left arrow when on pagination controls)
125
+ */
126
+ function handlePrevPanel() {
127
+ const state = options.state;
128
+ // If on buttons, cycle back to list
129
+ if (state.areNavigationButtonsFocused) {
130
+ options.actions.handleButtonToggle();
131
+ render();
132
+ return;
133
+ }
134
+ cursorIndex = 0;
135
+ state.isPaginationFocused = null;
136
+ options.actions.handlePanelSwitch('prev');
137
+ render();
138
+ }
139
+ function handleArrowRight() {
140
+ const state = options.state;
141
+ // If buttons are focused, switch between them
142
+ if (state.areNavigationButtonsFocused) {
143
+ options.actions.handleButtonSwitch('right');
144
+ render();
145
+ return;
146
+ }
147
+ if (state.isPaginationFocused === PAGINATION_CONTROL.PREV) {
148
+ state.isPaginationFocused = PAGINATION_CONTROL.NEXT;
149
+ render();
150
+ return;
151
+ }
152
+ if (state.isPaginationFocused === null) {
153
+ handleNextPanel();
154
+ }
155
+ }
156
+ function handleArrowLeft() {
157
+ const state = options.state;
158
+ if (state.areNavigationButtonsFocused) {
159
+ options.actions.handleButtonSwitch('left');
160
+ render();
161
+ return;
162
+ }
163
+ if (state.isPaginationFocused === PAGINATION_CONTROL.NEXT) {
164
+ state.isPaginationFocused = PAGINATION_CONTROL.PREV;
165
+ render();
166
+ return;
167
+ }
168
+ if (state.isPaginationFocused === null) {
169
+ handlePrevPanel();
170
+ }
171
+ }
172
+ function handleConfirm() {
173
+ const state = options.state;
174
+ // Handle button confirmation first
175
+ if (state.areNavigationButtonsFocused) {
176
+ options.actions.handleConfirm();
177
+ return;
178
+ }
179
+ if (state.isSearchFocused) {
180
+ if (searchDebounceTimer) {
181
+ clearTimeout(searchDebounceTimer);
182
+ searchDebounceTimer = null;
183
+ }
184
+ options.actions.handleSearchUpdate(state.searchQuery);
185
+ options.actions.handleFocusList();
186
+ render();
187
+ return;
188
+ }
189
+ if (state.isPaginationFocused === PAGINATION_CONTROL.PREV) {
190
+ options.actions.handlePagePrev();
191
+ return;
192
+ }
193
+ if (state.isPaginationFocused === PAGINATION_CONTROL.NEXT) {
194
+ options.actions.handlePageNext();
195
+ return;
196
+ }
197
+ }
198
+ /**
199
+ * Handle arrow up
200
+ */
201
+ function handleArrowUp() {
202
+ const state = options.state;
203
+ if (state.isSearchFocused) {
204
+ return;
205
+ }
206
+ if (cursorIndex === 0 && state.isPaginationFocused === null) {
207
+ options.actions.handleFocusSearch();
208
+ render();
209
+ return;
210
+ }
211
+ options.actions.handleCursorMove('up');
212
+ render();
213
+ }
214
+ /**
215
+ * Handle arrow down
216
+ */
217
+ function handleArrowDown() {
218
+ const state = options.state;
219
+ if (state.isSearchFocused) {
220
+ options.actions.handleFocusList();
221
+ cursorIndex = 0;
222
+ }
223
+ else {
224
+ options.actions.handleCursorMove('down');
225
+ }
226
+ render();
227
+ }
228
+ /**
229
+ * Handle toggle selection (Space)
230
+ */
231
+ function handleToggleSelection() {
232
+ const state = options.state;
233
+ if (!state.isSearchFocused) {
234
+ options.actions.handleToggleSelection();
235
+ render();
236
+ }
237
+ }
238
+ /**
239
+ * Update search query with debounce
240
+ */
241
+ function updateSearchQuery(newQuery) {
242
+ options.state.searchQuery = newQuery;
243
+ cursorIndex = 0;
244
+ render();
245
+ if (searchDebounceTimer) {
246
+ clearTimeout(searchDebounceTimer);
247
+ }
248
+ searchDebounceTimer = setTimeout(() => {
249
+ options.actions.handleSearchUpdate(newQuery);
250
+ }, CONFIG.SEARCH_DEBOUNCE_MS);
251
+ }
252
+ /**
253
+ * Handle backspace
254
+ */
255
+ function handleBackspace() {
256
+ const currentSearch = options.state.searchQuery;
257
+ if (currentSearch.length > 0) {
258
+ if (!options.state.isSearchFocused) {
259
+ options.actions.handleFocusSearch();
260
+ }
261
+ updateSearchQuery(currentSearch.slice(0, -1));
262
+ }
263
+ }
264
+ /**
265
+ * Handle Ctrl+] (next page)
266
+ */
267
+ function handleCtrlBracketRight() {
268
+ const state = options.state;
269
+ if (state.isSearchFocused) {
270
+ return; // Ignore pagination when search is focused
271
+ }
272
+ options.actions.handlePageNext();
273
+ render();
274
+ }
275
+ /**
276
+ * Handle regular character input (for search)
277
+ */
278
+ function handleRegularInput(key) {
279
+ if (!options.state.isSearchFocused) {
280
+ options.actions.handleFocusSearch();
281
+ }
282
+ const currentSearch = options.state.searchQuery;
283
+ updateSearchQuery(currentSearch + key);
284
+ }
285
+ /**
286
+ * Setup keyboard event handlers
287
+ */
288
+ function setupKeyHandlers() {
289
+ const keyHandlers = {
290
+ [KEY.CTRL_C]: handleExit,
291
+ [KEY.ESC]: handleEsc,
292
+ [KEY.TAB]: handleNextPanel,
293
+ [KEY.SHIFT_TAB]: handlePrevPanel,
294
+ [KEY.ARROW_RIGHT]: handleArrowRight,
295
+ [KEY.ARROW_LEFT]: handleArrowLeft,
296
+ [KEY.ENTER]: handleConfirm,
297
+ [KEY.NEWLINE]: handleConfirm,
298
+ [KEY.ARROW_UP]: handleArrowUp,
299
+ [KEY.ARROW_DOWN]: handleArrowDown,
300
+ [KEY.SPACE]: handleToggleSelection,
301
+ [KEY.BACKSPACE]: handleBackspace,
302
+ [KEY.BACKSPACE_ALT]: handleBackspace,
303
+ [KEY.CTRL_BRACKET_RIGHT]: handleCtrlBracketRight,
304
+ };
305
+ dataHandler = (data) => {
306
+ if (!isActive)
307
+ return;
308
+ const key = data.toString();
309
+ const handler = keyHandlers[key];
310
+ if (handler) {
311
+ handler();
312
+ return;
313
+ }
314
+ if (isPrintableChar(key)) {
315
+ handleRegularInput(key);
316
+ }
317
+ };
318
+ process.stdin.on('data', dataHandler);
319
+ }
320
+ return {
321
+ start,
322
+ stop,
323
+ render,
324
+ getCursorIndex,
325
+ setCursorIndex
326
+ };
327
+ }
328
+ //# sourceMappingURL=interactive-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive-prompt.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/selection/interactive-prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { Assistant, AssistantBase } from 'codemie-sdk';
2
+ import type { PanelId, PaginationControl } from './constants.js';
3
+ export type ButtonType = 'continue' | 'cancel';
4
+ export interface SelectionState {
5
+ panels: PanelState[];
6
+ activePanelId: PanelId;
7
+ searchQuery: string;
8
+ selectedIds: Set<string>;
9
+ registeredIds: Set<string>;
10
+ isSearchFocused: boolean;
11
+ isPaginationFocused: PaginationControl | null;
12
+ areNavigationButtonsFocused: boolean;
13
+ focusedButton: ButtonType;
14
+ }
15
+ export interface PanelState {
16
+ id: PanelId;
17
+ label: string;
18
+ isActive: boolean;
19
+ data: (Assistant | AssistantBase)[] | null;
20
+ filteredData: (Assistant | AssistantBase)[];
21
+ isFetching: boolean;
22
+ error: string | null;
23
+ currentPage: number;
24
+ totalItems: number;
25
+ totalPages: number;
26
+ }
27
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/selection/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEjE,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,mBAAmB,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAC9C,2BAA2B,EAAE,OAAO,CAAC;IACrC,aAAa,EAAE,UAAU,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,CAAC,SAAS,GAAG,aAAa,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3C,YAAY,EAAE,CAAC,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC;IAC5C,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB"}
@@ -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/selection/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * UI Rendering
3
+ *
4
+ * All UI building and rendering functions
5
+ */
6
+ import type { SelectionState } from './types.js';
7
+ /**
8
+ * Render the complete UI
9
+ */
10
+ export declare function renderUI(state: SelectionState, cursorIndex: number): string;
11
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/selection/ui.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,YAAY,CAAC;AAI7D;;GAEG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAgB3E"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * UI Rendering
3
+ *
4
+ * All UI building and rendering functions
5
+ */
6
+ import chalk from 'chalk';
7
+ import { ANSI, BOX, SYMBOL, TEXT, CONFIG, PAGINATION_CONTROL } from './constants.js';
8
+ import { COLOR } from '../constants.js';
9
+ /**
10
+ * Render the complete UI
11
+ */
12
+ export function renderUI(state, cursorIndex) {
13
+ const activePanel = state.panels.find(p => p.id === state.activePanelId);
14
+ let output = '';
15
+ output += ANSI.CURSOR_HOME_CLEAR;
16
+ output += buildTopLine();
17
+ output += buildPanelHeader(state.panels, state.activePanelId);
18
+ output += buildCount(activePanel);
19
+ output += buildSearchInput(state.searchQuery, state.isSearchFocused);
20
+ output += buildAssistantsList(activePanel, state.selectedIds, state.isSearchFocused, cursorIndex, state.isPaginationFocused);
21
+ output += buildPaginationControls(activePanel, state.isPaginationFocused, state.isSearchFocused);
22
+ output += buildButtons(state);
23
+ output += buildInstructions(activePanel);
24
+ return output;
25
+ }
26
+ /**
27
+ * Build top line spanning terminal width
28
+ */
29
+ function buildTopLine() {
30
+ const width = process.stdout.columns || 80;
31
+ const line = BOX.HORIZONTAL.repeat(width);
32
+ return chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b)(line) + '\n';
33
+ }
34
+ /**
35
+ * Build panel navigation header with hint
36
+ */
37
+ function buildPanelHeader(panels, activeId) {
38
+ const panelStrings = panels.map(panel => {
39
+ if (panel.id === activeId) {
40
+ return chalk.bgRgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b).black(` ${panel.label} `);
41
+ }
42
+ return chalk.white(panel.label);
43
+ });
44
+ const label = chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b).bold(TEXT.LABEL);
45
+ const panelsLine = panelStrings.join(' ');
46
+ const hint = chalk.dim(TEXT.TAB_HINT);
47
+ return `${label} ${panelsLine} ${hint}\n\n`;
48
+ }
49
+ /**
50
+ * Build count above search box
51
+ */
52
+ function buildCount(activePanel) {
53
+ if (activePanel.filteredData.length === 0) {
54
+ return chalk.dim('0 assistants total, Page 1 of 1') + '\n';
55
+ }
56
+ const currentPage = activePanel.currentPage + 1; // Display as 1-indexed
57
+ const totalPages = activePanel.totalPages;
58
+ const totalAssistants = activePanel.totalItems;
59
+ return chalk.dim(`${totalAssistants} assistants total, Page ${currentPage} of ${totalPages}`) + '\n';
60
+ }
61
+ /**
62
+ * Build search input display with box
63
+ */
64
+ function buildSearchInput(query, isFocused) {
65
+ const width = process.stdout.columns || 80;
66
+ const innerWidth = width - 2;
67
+ const prefix = ` ${SYMBOL.SEARCH_ICON} `;
68
+ const contentText = query
69
+ ? (isFocused ? query + SYMBOL.CURSOR : query)
70
+ : TEXT.SEARCH_PLACEHOLDER;
71
+ const visualLength = prefix.length + contentText.length;
72
+ const paddingNeeded = innerWidth - visualLength;
73
+ const styledCursor = chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b)(SYMBOL.CURSOR);
74
+ const styledPlaceholder = chalk.dim(TEXT.SEARCH_PLACEHOLDER);
75
+ const displayText = query
76
+ ? (isFocused ? query + styledCursor : query)
77
+ : styledPlaceholder;
78
+ const contentLine = prefix + displayText + ' '.repeat(Math.max(0, paddingNeeded));
79
+ const borderColor = isFocused
80
+ ? chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b)
81
+ : chalk.white;
82
+ let output = '';
83
+ output += borderColor(BOX.TOP_LEFT + BOX.HORIZONTAL.repeat(innerWidth) + BOX.TOP_RIGHT) + '\n';
84
+ output += borderColor(BOX.VERTICAL) + contentLine + borderColor(BOX.VERTICAL) + '\n';
85
+ output += borderColor(BOX.BOTTOM_LEFT + BOX.HORIZONTAL.repeat(innerWidth) + BOX.BOTTOM_RIGHT) + '\n\n';
86
+ return output;
87
+ }
88
+ function buildAssistantsList(activePanel, selectedIds, isSearchFocused, cursorIndex, isPaginationFocused) {
89
+ const isMarketplace = activePanel.id === 'marketplace';
90
+ if (activePanel.isFetching) {
91
+ return chalk.cyan('Loading assistants...\n');
92
+ }
93
+ if (activePanel.error) {
94
+ return chalk.red(TEXT.ERROR_PREFIX + activePanel.error + '\n');
95
+ }
96
+ if (activePanel.filteredData.length === 0) {
97
+ return chalk.yellow(TEXT.NO_ASSISTANTS + '\n');
98
+ }
99
+ const displayAssistants = activePanel.filteredData;
100
+ let output = '';
101
+ displayAssistants.forEach((assistant, index) => {
102
+ const isSelected = selectedIds.has(assistant.id);
103
+ const isCursor = index === cursorIndex && !isSearchFocused && isPaginationFocused === null;
104
+ const circle = isSelected
105
+ ? chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b)(SYMBOL.CIRCLE_FILLED)
106
+ : SYMBOL.CIRCLE_EMPTY;
107
+ const cursor = isCursor
108
+ ? chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b)(SYMBOL.CURSOR_INDICATOR)
109
+ : ' ';
110
+ const name = isCursor
111
+ ? chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b).bold(assistant.name)
112
+ : assistant.name;
113
+ const projectValue = 'project' in assistant ? assistant.project : null;
114
+ const projectName = projectValue
115
+ ? (typeof projectValue === 'object' ? projectValue.name : projectValue)
116
+ : null;
117
+ const project = projectName
118
+ ? chalk.dim(` · ${projectName}`)
119
+ : '';
120
+ const uniqueUsers = isMarketplace && 'unique_users_count' in assistant && assistant.unique_users_count !== undefined
121
+ ? chalk.dim(` · ⚭ ${assistant.unique_users_count} uses`)
122
+ : '';
123
+ output += `${cursor}${circle} ${name}${project}${uniqueUsers}\n`;
124
+ if (assistant.description) {
125
+ const singleLine = assistant.description.replace(/\n+/g, ' ');
126
+ const desc = singleLine.length > CONFIG.DESCRIPTION_MAX_LENGTH
127
+ ? singleLine.substring(0, CONFIG.DESCRIPTION_MAX_LENGTH) + SYMBOL.TRUNCATION
128
+ : singleLine;
129
+ output += chalk.dim(` ${desc}`) + '\n';
130
+ }
131
+ output += '\n';
132
+ });
133
+ return output;
134
+ }
135
+ function buildPaginationControls(activePanel, isPaginationFocused, isSearchFocused) {
136
+ const totalPages = activePanel.totalPages;
137
+ if (totalPages <= 1) {
138
+ return '';
139
+ }
140
+ const currentPage = activePanel.currentPage;
141
+ const hasPrev = currentPage > 0;
142
+ const hasNext = currentPage < totalPages - 1;
143
+ const prevLabel = hasPrev ? '[< Prev]' : '[< Prev]';
144
+ const prevCursor = isPaginationFocused === PAGINATION_CONTROL.PREV && !isSearchFocused
145
+ ? chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b)(SYMBOL.CURSOR_INDICATOR)
146
+ : ' ';
147
+ const prevText = isPaginationFocused === PAGINATION_CONTROL.PREV && !isSearchFocused
148
+ ? chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b).bold(prevLabel)
149
+ : hasPrev
150
+ ? chalk.white(prevLabel)
151
+ : chalk.dim(prevLabel);
152
+ const nextLabel = hasNext ? '[Next >]' : '[Next >]';
153
+ const nextCursor = isPaginationFocused === PAGINATION_CONTROL.NEXT && !isSearchFocused
154
+ ? chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b)(SYMBOL.CURSOR_INDICATOR)
155
+ : ' ';
156
+ const nextText = isPaginationFocused === PAGINATION_CONTROL.NEXT && !isSearchFocused
157
+ ? chalk.rgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b).bold(nextLabel)
158
+ : hasNext
159
+ ? chalk.white(nextLabel)
160
+ : chalk.dim(nextLabel);
161
+ const label = chalk.dim('Switch page:');
162
+ return `${label} ${prevCursor}${prevText} ${nextCursor}${nextText}\n\n`;
163
+ }
164
+ /**
165
+ * Build buttons (Continue / Cancel)
166
+ */
167
+ function buildButtons(state) {
168
+ const { areNavigationButtonsFocused, focusedButton, isSearchFocused, isPaginationFocused } = state;
169
+ const buttonsActive = areNavigationButtonsFocused && !isSearchFocused && isPaginationFocused === null;
170
+ const continueButton = buttonsActive && focusedButton === 'continue'
171
+ ? chalk.bgRgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b).black(` ${TEXT.CONTINUE_BUTTON} `)
172
+ : chalk.dim(`[${TEXT.CONTINUE_BUTTON}]`);
173
+ const cancelButton = buttonsActive && focusedButton === 'cancel'
174
+ ? chalk.bgRgb(COLOR.PURPLE.r, COLOR.PURPLE.g, COLOR.PURPLE.b).black(` ${TEXT.CANCEL_BUTTON} `)
175
+ : chalk.dim(`[${TEXT.CANCEL_BUTTON}]`);
176
+ return ` ${continueButton} ${cancelButton}\n\n`;
177
+ }
178
+ /**
179
+ * Build keyboard instructions
180
+ */
181
+ function buildInstructions(activePanel) {
182
+ const totalPages = activePanel.totalPages;
183
+ const hasMultiplePages = totalPages > 1;
184
+ const instructionsText = hasMultiplePages
185
+ ? TEXT.INSTRUCTIONS_WITH_PAGINATION
186
+ : TEXT.INSTRUCTIONS;
187
+ return chalk.dim(instructionsText + '\n');
188
+ }
189
+ //# sourceMappingURL=ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/selection/ui.ts"],"names":[],"mappings":"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"}