@codemieai/code 0.0.36 → 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.
- package/README.md +33 -0
- package/dist/agents/codemie-code/tools/assistant-invocation.d.ts.map +1 -1
- package/dist/agents/codemie-code/tools/assistant-invocation.js +2 -2
- package/dist/agents/codemie-code/tools/assistant-invocation.js.map +1 -1
- package/dist/agents/core/extension/BaseExtensionInstaller.d.ts.map +1 -1
- package/dist/agents/core/extension/BaseExtensionInstaller.js +11 -4
- package/dist/agents/core/extension/BaseExtensionInstaller.js.map +1 -1
- package/dist/agents/core/session/BaseProcessor.d.ts +22 -1
- package/dist/agents/core/session/BaseProcessor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude-acp.plugin.d.ts +5 -0
- package/dist/agents/plugins/claude/claude-acp.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude-acp.plugin.js +12 -2
- package/dist/agents/plugins/claude/claude-acp.plugin.js.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.plugin.js +4 -0
- package/dist/agents/plugins/claude/claude.plugin.js.map +1 -1
- package/dist/agents/plugins/claude/claude.session.d.ts +5 -0
- package/dist/agents/plugins/claude/claude.session.d.ts.map +1 -1
- package/dist/agents/plugins/claude/claude.session.js +101 -2
- package/dist/agents/plugins/claude/claude.session.js.map +1 -1
- package/dist/agents/plugins/claude/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts +0 -1
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js +13 -19
- package/dist/agents/plugins/claude/session/processors/claude.conversations-processor.js.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.d.ts.map +1 -1
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js +29 -4
- package/dist/agents/plugins/claude/session/processors/claude.metrics-processor.js.map +1 -1
- package/dist/cli/commands/assistants/chat.js +9 -6
- package/dist/cli/commands/assistants/chat.js.map +1 -1
- package/dist/cli/commands/assistants/constants.d.ts +2 -6
- package/dist/cli/commands/assistants/constants.d.ts.map +1 -1
- package/dist/cli/commands/assistants/constants.js +2 -5
- package/dist/cli/commands/assistants/constants.js.map +1 -1
- package/dist/cli/commands/assistants/index.d.ts.map +1 -1
- package/dist/cli/commands/assistants/index.js +1 -11
- package/dist/cli/commands/assistants/index.js.map +1 -1
- package/dist/cli/commands/assistants/setup/configuration/actions.d.ts +30 -0
- package/dist/cli/commands/assistants/setup/configuration/actions.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/configuration/actions.js +63 -0
- package/dist/cli/commands/assistants/setup/configuration/actions.js.map +1 -0
- package/dist/cli/commands/assistants/setup/configuration/constants.d.ts +49 -0
- package/dist/cli/commands/assistants/setup/configuration/constants.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/configuration/constants.js +56 -0
- package/dist/cli/commands/assistants/setup/configuration/constants.js.map +1 -0
- package/dist/cli/commands/assistants/setup/configuration/index.d.ts +9 -0
- package/dist/cli/commands/assistants/setup/configuration/index.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/configuration/index.js +8 -0
- package/dist/cli/commands/assistants/setup/configuration/index.js.map +1 -0
- package/dist/cli/commands/assistants/setup/configuration/selection.d.ts +12 -0
- package/dist/cli/commands/assistants/setup/configuration/selection.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/configuration/selection.js +94 -0
- package/dist/cli/commands/assistants/setup/configuration/selection.js.map +1 -0
- package/dist/cli/commands/assistants/setup/configuration/types.d.ts +22 -0
- package/dist/cli/commands/assistants/setup/configuration/types.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/configuration/types.js +2 -0
- package/dist/cli/commands/assistants/setup/configuration/types.js.map +1 -0
- package/dist/cli/commands/assistants/setup/configuration/ui.d.ts +9 -0
- package/dist/cli/commands/assistants/setup/configuration/ui.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/configuration/ui.js +86 -0
- package/dist/cli/commands/assistants/setup/configuration/ui.js.map +1 -0
- package/dist/cli/commands/assistants/setup/constants.d.ts +26 -0
- package/dist/cli/commands/assistants/setup/constants.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/constants.js +21 -0
- package/dist/cli/commands/assistants/setup/constants.js.map +1 -0
- package/dist/cli/commands/assistants/setup/data.d.ts +30 -0
- package/dist/cli/commands/assistants/setup/data.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/data.js +125 -0
- package/dist/cli/commands/assistants/setup/data.js.map +1 -0
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.d.ts.map +1 -0
- package/dist/cli/commands/assistants/{generators → setup/generators}/claude-agent-generator.js +6 -2
- package/dist/cli/commands/assistants/setup/generators/claude-agent-generator.js.map +1 -0
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts +12 -0
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js +94 -0
- package/dist/cli/commands/assistants/setup/generators/claude-skill-generator.js.map +1 -0
- package/dist/cli/commands/assistants/setup/helpers.d.ts +27 -0
- package/dist/cli/commands/assistants/setup/helpers.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/helpers.js +94 -0
- package/dist/cli/commands/assistants/setup/helpers.js.map +1 -0
- package/dist/cli/commands/assistants/setup/index.d.ts +17 -0
- package/dist/cli/commands/assistants/setup/index.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/index.js +193 -0
- package/dist/cli/commands/assistants/setup/index.js.map +1 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/actions.d.ts +47 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/actions.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/actions.js +140 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/actions.js.map +1 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/constants.d.ts +56 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/constants.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/constants.js +61 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/constants.js.map +1 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/index.d.ts +12 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/index.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/index.js +48 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/index.js.map +1 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.d.ts +6 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.js +90 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/interactive-prompt.js.map +1 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts +37 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/types.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/types.js +2 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/types.js.map +1 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/ui.d.ts +6 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/ui.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js +103 -0
- package/dist/cli/commands/assistants/setup/manualConfiguration/ui.js.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/actions.d.ts +31 -0
- package/dist/cli/commands/assistants/setup/selection/actions.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/actions.js +321 -0
- package/dist/cli/commands/assistants/setup/selection/actions.js.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/constants.d.ts +79 -0
- package/dist/cli/commands/assistants/setup/selection/constants.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/constants.js +90 -0
- package/dist/cli/commands/assistants/setup/selection/constants.js.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/index.d.ts +25 -0
- package/dist/cli/commands/assistants/setup/selection/index.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/index.js +127 -0
- package/dist/cli/commands/assistants/setup/selection/index.js.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts +20 -0
- package/dist/cli/commands/assistants/setup/selection/interactive-prompt.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js +328 -0
- package/dist/cli/commands/assistants/setup/selection/interactive-prompt.js.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/types.d.ts +27 -0
- package/dist/cli/commands/assistants/setup/selection/types.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/types.js +2 -0
- package/dist/cli/commands/assistants/setup/selection/types.js.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/ui.d.ts +11 -0
- package/dist/cli/commands/assistants/setup/selection/ui.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/ui.js +189 -0
- package/dist/cli/commands/assistants/setup/selection/ui.js.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/utils.d.ts +36 -0
- package/dist/cli/commands/assistants/setup/selection/utils.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/selection/utils.js +55 -0
- package/dist/cli/commands/assistants/setup/selection/utils.js.map +1 -0
- package/dist/cli/commands/assistants/setup/summary/index.d.ts +16 -0
- package/dist/cli/commands/assistants/setup/summary/index.d.ts.map +1 -0
- package/dist/cli/commands/assistants/setup/summary/index.js +48 -0
- package/dist/cli/commands/assistants/setup/summary/index.js.map +1 -0
- package/dist/cli/commands/log/cleaner.d.ts +33 -0
- package/dist/cli/commands/log/cleaner.d.ts.map +1 -0
- package/dist/cli/commands/log/cleaner.js +214 -0
- package/dist/cli/commands/log/cleaner.js.map +1 -0
- package/dist/cli/commands/log/filter.d.ts +55 -0
- package/dist/cli/commands/log/filter.d.ts.map +1 -0
- package/dist/cli/commands/log/filter.js +128 -0
- package/dist/cli/commands/log/filter.js.map +1 -0
- package/dist/cli/commands/log/follower.d.ts +36 -0
- package/dist/cli/commands/log/follower.d.ts.map +1 -0
- package/dist/cli/commands/log/follower.js +151 -0
- package/dist/cli/commands/log/follower.js.map +1 -0
- package/dist/cli/commands/log/formatter.d.ts +76 -0
- package/dist/cli/commands/log/formatter.d.ts.map +1 -0
- package/dist/cli/commands/log/formatter.js +261 -0
- package/dist/cli/commands/log/formatter.js.map +1 -0
- package/dist/cli/commands/log/index.d.ts +6 -0
- package/dist/cli/commands/log/index.d.ts.map +1 -0
- package/dist/cli/commands/log/index.js +398 -0
- package/dist/cli/commands/log/index.js.map +1 -0
- package/dist/cli/commands/log/parser.d.ts +20 -0
- package/dist/cli/commands/log/parser.d.ts.map +1 -0
- package/dist/cli/commands/log/parser.js +111 -0
- package/dist/cli/commands/log/parser.js.map +1 -0
- package/dist/cli/commands/log/reader.d.ts +61 -0
- package/dist/cli/commands/log/reader.d.ts.map +1 -0
- package/dist/cli/commands/log/reader.js +327 -0
- package/dist/cli/commands/log/reader.js.map +1 -0
- package/dist/cli/commands/log/types.d.ts +100 -0
- package/dist/cli/commands/log/types.d.ts.map +1 -0
- package/dist/cli/commands/log/types.js +5 -0
- package/dist/cli/commands/log/types.js.map +1 -0
- package/dist/cli/commands/setup.d.ts.map +1 -1
- package/dist/cli/commands/setup.js +2 -0
- package/dist/cli/commands/setup.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/env/types.d.ts +1 -0
- package/dist/env/types.d.ts.map +1 -1
- package/dist/env/types.js.map +1 -1
- package/dist/providers/plugins/sso/session/SessionSyncer.d.ts +5 -0
- package/dist/providers/plugins/sso/session/SessionSyncer.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/SessionSyncer.js +102 -3
- package/dist/providers/plugins/sso/session/SessionSyncer.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts +0 -1
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js +25 -48
- package/dist/providers/plugins/sso/session/processors/conversations/conversation-sync-processor.js.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.d.ts.map +1 -1
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js +8 -34
- package/dist/providers/plugins/sso/session/processors/metrics/metrics-sync-processor.js.map +1 -1
- package/dist/utils/native-installer.d.ts +1 -0
- package/dist/utils/native-installer.d.ts.map +1 -1
- package/dist/utils/native-installer.js +21 -7
- package/dist/utils/native-installer.js.map +1 -1
- package/package.json +2 -2
- package/dist/cli/commands/assistants/generators/claude-agent-generator.d.ts.map +0 -1
- package/dist/cli/commands/assistants/generators/claude-agent-generator.js.map +0 -1
- package/dist/cli/commands/assistants/list.d.ts +0 -11
- package/dist/cli/commands/assistants/list.d.ts.map +0 -1
- package/dist/cli/commands/assistants/list.js +0 -323
- package/dist/cli/commands/assistants/list.js.map +0 -1
- /package/dist/cli/commands/assistants/{generators → setup/generators}/claude-agent-generator.d.ts +0 -0
|
@@ -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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAErD;;GAEG;AACH,SAAS,YAAY;IACpB,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACrF,CAAC;AAED;;GAEG;AACH,SAAS,UAAU;IAClB,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACtF,CAAC;AAED;;GAEG;AACH,SAAS,aAAa;IACrB,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,WAA6B,EAAE,QAAiB;IACxE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9C,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,KAAK,WAAW,CAAC;QAEtC,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QACrF,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACP,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QAChC,CAAC;IACF,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAC1B,YAAmG,EACnG,QAAiB;IAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3G,MAAM,KAAK,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACzF,MAAM,UAAU,GAAG,eAAe,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEhE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,KAAK,aAAa,UAAU,EAAE,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,KAAyB;IACrD,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;QAC7D,MAAM,QAAQ,GAAG,CAAC,KAAK,CAAC,2BAA2B,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC;QACnF,OAAO,kBAAkB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,KAAyB;IAC9C,MAAM,EAAE,2BAA2B,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAE7D,MAAM,WAAW,GAChB,2BAA2B,IAAI,aAAa,KAAK,WAAW,CAAC,KAAK;QACjE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC;QAChG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC;IAE3C,MAAM,YAAY,GACjB,2BAA2B,IAAI,aAAa,KAAK,WAAW,CAAC,MAAM;QAClE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC;QACjG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;IAE5C,OAAO,KAAK,WAAW,KAAK,YAAY,EAAE,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACzB,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAyB;IACjD,MAAM,KAAK,GAAG;QACb,YAAY,EAAE;QACd,UAAU,EAAE;QACZ,EAAE;QACF,aAAa,EAAE;QACf,EAAE;QACF,mBAAmB,CAAC,KAAK,CAAC;QAC1B,EAAE;QACF,YAAY,EAAE;QACd,EAAE;QACF,YAAY,CAAC,KAAK,CAAC;QACnB,EAAE;QACF,iBAAiB,EAAE;KACnB,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC"}
|
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/selection/actions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAIjE,MAAM,WAAW,cAAc;IAC7B,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IACxD,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,gBAAgB,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IACrD,qBAAqB,EAAE,MAAM,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,kBAAkB,EAAE,MAAM,IAAI,CAAC;IAC/B,kBAAkB,EAAE,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,KAAK,IAAI,CAAC;CAC3D;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,iBAAiB,GAAG,IAAI,CAAC;IACvC,SAAS,EAAE,CAAC,CAAC,EAAE,iBAAiB,GAAG,IAAI,KAAK,IAAI,CAAC;IACjD,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,yBAAyB,GAAG,cAAc,CAgVpF"}
|
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Action Handlers
|
|
3
|
+
*
|
|
4
|
+
* All user interaction handlers for the selection UI
|
|
5
|
+
*/
|
|
6
|
+
import { PANEL_IDS, CONFIG, PAGINATION_CONTROL } from './constants.js';
|
|
7
|
+
import { logger } from '../../../../../utils/logger.js';
|
|
8
|
+
export function createActionHandlers(deps) {
|
|
9
|
+
/**
|
|
10
|
+
* Rotate panel index in the given direction
|
|
11
|
+
*/
|
|
12
|
+
function rotatePanelIndex(direction) {
|
|
13
|
+
const currentIndex = PANEL_IDS.indexOf(deps.state.activePanelId);
|
|
14
|
+
const offset = direction === 'next' ? 1 : -1;
|
|
15
|
+
const nextIndex = (currentIndex + offset + PANEL_IDS.length) % PANEL_IDS.length;
|
|
16
|
+
return PANEL_IDS[nextIndex];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Set active panel and update all panel states
|
|
20
|
+
*/
|
|
21
|
+
function setActivePanel(panelId) {
|
|
22
|
+
deps.state.activePanelId = panelId;
|
|
23
|
+
deps.state.panels.forEach(panel => {
|
|
24
|
+
panel.isActive = panel.id === deps.state.activePanelId;
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Fetch data for active panel with current search query
|
|
29
|
+
*/
|
|
30
|
+
async function fetchActivePanelData() {
|
|
31
|
+
const activePanel = deps.state.panels.find(p => p.id === deps.state.activePanelId);
|
|
32
|
+
activePanel.isFetching = true;
|
|
33
|
+
activePanel.error = null;
|
|
34
|
+
let timeoutId = null;
|
|
35
|
+
try {
|
|
36
|
+
const fetchPromise = deps.fetcher.fetchAssistants({
|
|
37
|
+
scope: deps.state.activePanelId,
|
|
38
|
+
searchQuery: deps.state.searchQuery,
|
|
39
|
+
page: activePanel.currentPage
|
|
40
|
+
});
|
|
41
|
+
const timeoutPromise = new Promise((_, reject) => {
|
|
42
|
+
timeoutId = setTimeout(() => reject(new Error(`Fetch timeout after ${CONFIG.FETCH_TIMEOUT_MS / 1000} seconds`)), CONFIG.FETCH_TIMEOUT_MS);
|
|
43
|
+
});
|
|
44
|
+
const result = await Promise.race([fetchPromise, timeoutPromise]);
|
|
45
|
+
if (timeoutId) {
|
|
46
|
+
clearTimeout(timeoutId);
|
|
47
|
+
timeoutId = null;
|
|
48
|
+
}
|
|
49
|
+
activePanel.data = result.data;
|
|
50
|
+
activePanel.filteredData = result.data;
|
|
51
|
+
activePanel.totalItems = result.total;
|
|
52
|
+
activePanel.totalPages = result.pages;
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
if (timeoutId) {
|
|
56
|
+
clearTimeout(timeoutId);
|
|
57
|
+
timeoutId = null;
|
|
58
|
+
}
|
|
59
|
+
activePanel.error = error instanceof Error ? error.message : 'Unknown error';
|
|
60
|
+
activePanel.data = [];
|
|
61
|
+
activePanel.filteredData = [];
|
|
62
|
+
activePanel.totalItems = 0;
|
|
63
|
+
activePanel.totalPages = 0;
|
|
64
|
+
}
|
|
65
|
+
finally {
|
|
66
|
+
activePanel.isFetching = false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Fetch data in background without blocking
|
|
71
|
+
*/
|
|
72
|
+
function fetchActivePanelDataBackground() {
|
|
73
|
+
fetchActivePanelData()
|
|
74
|
+
.then(() => {
|
|
75
|
+
const prompt = deps.prompt();
|
|
76
|
+
if (prompt) {
|
|
77
|
+
prompt.render();
|
|
78
|
+
}
|
|
79
|
+
})
|
|
80
|
+
.catch((error) => {
|
|
81
|
+
console.error('Error fetching panel data:', error);
|
|
82
|
+
const prompt = deps.prompt();
|
|
83
|
+
if (prompt) {
|
|
84
|
+
prompt.render();
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Handle panel switch (Tab/Shift+Tab or arrow keys)
|
|
90
|
+
*/
|
|
91
|
+
function handlePanelSwitch(direction) {
|
|
92
|
+
const newPanelId = rotatePanelIndex(direction);
|
|
93
|
+
setActivePanel(newPanelId);
|
|
94
|
+
const activePanel = deps.state.panels.find(p => p.id === deps.state.activePanelId);
|
|
95
|
+
activePanel.currentPage = 0;
|
|
96
|
+
deps.state.isPaginationFocused = null;
|
|
97
|
+
setTimeout(() => fetchActivePanelDataBackground(), 0);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Handle search update (live typing)
|
|
101
|
+
*/
|
|
102
|
+
function handleSearchUpdate(query) {
|
|
103
|
+
deps.state.searchQuery = query;
|
|
104
|
+
const activePanel = deps.state.panels.find(p => p.id === deps.state.activePanelId);
|
|
105
|
+
activePanel.currentPage = 0;
|
|
106
|
+
deps.state.isPaginationFocused = null;
|
|
107
|
+
setTimeout(() => fetchActivePanelDataBackground(), 0);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Handle focus moving to search box
|
|
111
|
+
*/
|
|
112
|
+
function handleFocusSearch() {
|
|
113
|
+
deps.state.isSearchFocused = true;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Handle focus moving to list
|
|
117
|
+
*/
|
|
118
|
+
function handleFocusList() {
|
|
119
|
+
deps.state.isSearchFocused = false;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Handle cursor movement (Up/Down arrows)
|
|
123
|
+
*/
|
|
124
|
+
function handleCursorMove(direction) {
|
|
125
|
+
const prompt = deps.prompt();
|
|
126
|
+
if (!prompt)
|
|
127
|
+
return;
|
|
128
|
+
const activePanel = deps.state.panels.find(p => p.id === deps.state.activePanelId);
|
|
129
|
+
const totalPages = activePanel.totalPages;
|
|
130
|
+
const hasPaginationControls = totalPages > 1;
|
|
131
|
+
const maxIndex = activePanel.filteredData.length - 1;
|
|
132
|
+
const currentIndex = prompt.getCursorIndex();
|
|
133
|
+
if (direction === 'up') {
|
|
134
|
+
if (deps.state.areNavigationButtonsFocused) {
|
|
135
|
+
// Move from buttons to pagination (if exists) or last list item
|
|
136
|
+
deps.state.areNavigationButtonsFocused = false;
|
|
137
|
+
if (hasPaginationControls) {
|
|
138
|
+
deps.state.isPaginationFocused = PAGINATION_CONTROL.NEXT;
|
|
139
|
+
}
|
|
140
|
+
else {
|
|
141
|
+
prompt.setCursorIndex(maxIndex);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else if (deps.state.isPaginationFocused !== null) {
|
|
145
|
+
deps.state.isPaginationFocused = null;
|
|
146
|
+
prompt.setCursorIndex(maxIndex);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
const newIndex = Math.max(0, currentIndex - 1);
|
|
150
|
+
prompt.setCursorIndex(newIndex);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
else {
|
|
154
|
+
if (deps.state.isPaginationFocused === PAGINATION_CONTROL.NEXT) {
|
|
155
|
+
// Move from pagination to buttons
|
|
156
|
+
deps.state.isPaginationFocused = null;
|
|
157
|
+
deps.state.areNavigationButtonsFocused = true;
|
|
158
|
+
deps.state.focusedButton = 'continue';
|
|
159
|
+
}
|
|
160
|
+
else if (currentIndex === maxIndex && hasPaginationControls && deps.state.isPaginationFocused === null) {
|
|
161
|
+
deps.state.isPaginationFocused = PAGINATION_CONTROL.PREV;
|
|
162
|
+
}
|
|
163
|
+
else if (deps.state.isPaginationFocused === PAGINATION_CONTROL.PREV) {
|
|
164
|
+
deps.state.isPaginationFocused = PAGINATION_CONTROL.NEXT;
|
|
165
|
+
}
|
|
166
|
+
else if (currentIndex === maxIndex && !hasPaginationControls && !deps.state.areNavigationButtonsFocused) {
|
|
167
|
+
// Move from last list item to buttons (no pagination)
|
|
168
|
+
deps.state.areNavigationButtonsFocused = true;
|
|
169
|
+
deps.state.focusedButton = 'continue';
|
|
170
|
+
}
|
|
171
|
+
else if (deps.state.isPaginationFocused === null && !deps.state.areNavigationButtonsFocused) {
|
|
172
|
+
const newIndex = Math.min(maxIndex, currentIndex + 1);
|
|
173
|
+
prompt.setCursorIndex(newIndex);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
function handleToggleSelection() {
|
|
178
|
+
const prompt = deps.prompt();
|
|
179
|
+
if (!prompt)
|
|
180
|
+
return;
|
|
181
|
+
if (deps.state.isPaginationFocused === PAGINATION_CONTROL.PREV) {
|
|
182
|
+
handlePagePrev();
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
else if (deps.state.isPaginationFocused === PAGINATION_CONTROL.NEXT) {
|
|
186
|
+
handlePageNext();
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
const activePanel = deps.state.panels.find(p => p.id === deps.state.activePanelId);
|
|
190
|
+
const cursorIndex = prompt.getCursorIndex();
|
|
191
|
+
if (cursorIndex >= 0 && cursorIndex < activePanel.filteredData.length) {
|
|
192
|
+
const assistant = activePanel.filteredData[cursorIndex];
|
|
193
|
+
if (deps.state.selectedIds.has(assistant.id)) {
|
|
194
|
+
deps.state.selectedIds.delete(assistant.id);
|
|
195
|
+
logger.debug('[AssistantSelection] Deselected assistant', {
|
|
196
|
+
id: assistant.id,
|
|
197
|
+
name: assistant.name,
|
|
198
|
+
panel: deps.state.activePanelId,
|
|
199
|
+
totalSelected: deps.state.selectedIds.size
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
deps.state.selectedIds.add(assistant.id);
|
|
204
|
+
logger.debug('[AssistantSelection] Selected assistant', {
|
|
205
|
+
id: assistant.id,
|
|
206
|
+
name: assistant.name,
|
|
207
|
+
panel: deps.state.activePanelId,
|
|
208
|
+
totalSelected: deps.state.selectedIds.size
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Handle confirm (Enter key)
|
|
215
|
+
*/
|
|
216
|
+
function handleConfirm() {
|
|
217
|
+
// Check if buttons are focused
|
|
218
|
+
if (deps.state.areNavigationButtonsFocused) {
|
|
219
|
+
if (deps.state.focusedButton === 'continue') {
|
|
220
|
+
logger.debug('[AssistantSelection] Confirming selection via Continue button', {
|
|
221
|
+
totalSelected: deps.state.selectedIds.size,
|
|
222
|
+
selectedIds: Array.from(deps.state.selectedIds)
|
|
223
|
+
});
|
|
224
|
+
deps.setCancelled(false);
|
|
225
|
+
const prompt = deps.prompt();
|
|
226
|
+
if (prompt) {
|
|
227
|
+
prompt.stop();
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
// Cancel button
|
|
232
|
+
handleCancel();
|
|
233
|
+
}
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
// Default: confirm from list
|
|
237
|
+
logger.debug('[AssistantSelection] Confirming selection', {
|
|
238
|
+
totalSelected: deps.state.selectedIds.size,
|
|
239
|
+
selectedIds: Array.from(deps.state.selectedIds)
|
|
240
|
+
});
|
|
241
|
+
deps.setCancelled(false);
|
|
242
|
+
const prompt = deps.prompt();
|
|
243
|
+
if (prompt) {
|
|
244
|
+
prompt.stop();
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Handle cancel (Esc key)
|
|
249
|
+
*/
|
|
250
|
+
function handleCancel() {
|
|
251
|
+
deps.setCancelled(true);
|
|
252
|
+
const prompt = deps.prompt();
|
|
253
|
+
if (prompt) {
|
|
254
|
+
prompt.stop();
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Handle page next (PgDn or Next button)
|
|
259
|
+
*/
|
|
260
|
+
function handlePageNext() {
|
|
261
|
+
const activePanel = deps.state.panels.find(p => p.id === deps.state.activePanelId);
|
|
262
|
+
const totalPages = activePanel.totalPages;
|
|
263
|
+
if (activePanel.currentPage < totalPages - 1) {
|
|
264
|
+
activePanel.currentPage++;
|
|
265
|
+
setTimeout(() => fetchActivePanelDataBackground(), 0);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Handle page previous (PgUp or Prev button)
|
|
270
|
+
*/
|
|
271
|
+
function handlePagePrev() {
|
|
272
|
+
const activePanel = deps.state.panels.find(p => p.id === deps.state.activePanelId);
|
|
273
|
+
if (activePanel.currentPage > 0) {
|
|
274
|
+
activePanel.currentPage--;
|
|
275
|
+
setTimeout(() => fetchActivePanelDataBackground(), 0);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Handle toggling button focus (Tab)
|
|
280
|
+
*/
|
|
281
|
+
function handleButtonToggle() {
|
|
282
|
+
if (deps.state.areNavigationButtonsFocused) {
|
|
283
|
+
// Move back to list
|
|
284
|
+
deps.state.areNavigationButtonsFocused = false;
|
|
285
|
+
const prompt = deps.prompt();
|
|
286
|
+
if (prompt) {
|
|
287
|
+
prompt.setCursorIndex(0);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
// Move to buttons
|
|
292
|
+
deps.state.areNavigationButtonsFocused = true;
|
|
293
|
+
deps.state.isPaginationFocused = null;
|
|
294
|
+
deps.state.focusedButton = 'continue';
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Handle switching between buttons (left/right arrows when buttons focused)
|
|
299
|
+
*/
|
|
300
|
+
function handleButtonSwitch(_direction) {
|
|
301
|
+
if (deps.state.areNavigationButtonsFocused) {
|
|
302
|
+
// Toggle between Continue and Cancel buttons
|
|
303
|
+
deps.state.focusedButton = deps.state.focusedButton === 'continue' ? 'cancel' : 'continue';
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return {
|
|
307
|
+
handlePanelSwitch,
|
|
308
|
+
handleSearchUpdate,
|
|
309
|
+
handleFocusSearch,
|
|
310
|
+
handleFocusList,
|
|
311
|
+
handleCursorMove,
|
|
312
|
+
handleToggleSelection,
|
|
313
|
+
handleConfirm,
|
|
314
|
+
handleCancel,
|
|
315
|
+
handlePageNext,
|
|
316
|
+
handlePagePrev,
|
|
317
|
+
handleButtonToggle,
|
|
318
|
+
handleButtonSwitch
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
//# sourceMappingURL=actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/selection/actions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI Constants
|
|
3
|
+
*
|
|
4
|
+
* All magic strings, ANSI codes, and configuration values for the selection UI
|
|
5
|
+
*/
|
|
6
|
+
export declare const ANSI: {
|
|
7
|
+
readonly CURSOR_HOME_CLEAR: "\u001B[H\u001B[J";
|
|
8
|
+
readonly CLEAR_LINE_ABOVE: "\u001B[1A\u001B[2K";
|
|
9
|
+
};
|
|
10
|
+
export declare const KEY: {
|
|
11
|
+
readonly CTRL_C: "\u0003";
|
|
12
|
+
readonly ESC: "\u001B";
|
|
13
|
+
readonly TAB: "\t";
|
|
14
|
+
readonly SHIFT_TAB: "\u001B[Z";
|
|
15
|
+
readonly ENTER: "\r";
|
|
16
|
+
readonly NEWLINE: "\n";
|
|
17
|
+
readonly ARROW_UP: "\u001B[A";
|
|
18
|
+
readonly ARROW_DOWN: "\u001B[B";
|
|
19
|
+
readonly ARROW_LEFT: "\u001B[D";
|
|
20
|
+
readonly ARROW_RIGHT: "\u001B[C";
|
|
21
|
+
readonly CTRL_BRACKET_LEFT: "\u001B";
|
|
22
|
+
readonly CTRL_BRACKET_RIGHT: "\u001D";
|
|
23
|
+
readonly SPACE: " ";
|
|
24
|
+
readonly BACKSPACE: "";
|
|
25
|
+
readonly BACKSPACE_ALT: "\b";
|
|
26
|
+
};
|
|
27
|
+
export declare const BOX: {
|
|
28
|
+
readonly TOP_LEFT: "╭";
|
|
29
|
+
readonly TOP_RIGHT: "╮";
|
|
30
|
+
readonly BOTTOM_LEFT: "╰";
|
|
31
|
+
readonly BOTTOM_RIGHT: "╯";
|
|
32
|
+
readonly HORIZONTAL: "─";
|
|
33
|
+
readonly VERTICAL: "│";
|
|
34
|
+
};
|
|
35
|
+
export declare const SYMBOL: {
|
|
36
|
+
readonly SEARCH_ICON: "⌕";
|
|
37
|
+
readonly CURSOR: "█";
|
|
38
|
+
readonly CIRCLE_FILLED: "◉";
|
|
39
|
+
readonly CIRCLE_EMPTY: "◯";
|
|
40
|
+
readonly CURSOR_INDICATOR: "› ";
|
|
41
|
+
readonly TRUNCATION: "...";
|
|
42
|
+
};
|
|
43
|
+
export declare const PAGINATION_CONTROL: {
|
|
44
|
+
readonly PREV: "prev";
|
|
45
|
+
readonly NEXT: "next";
|
|
46
|
+
};
|
|
47
|
+
export type PaginationControl = typeof PAGINATION_CONTROL[keyof typeof PAGINATION_CONTROL];
|
|
48
|
+
export declare const TEXT: {
|
|
49
|
+
readonly LABEL: "Assistants";
|
|
50
|
+
readonly TAB_HINT: "(←/→, tab/shift+tab to cycle)";
|
|
51
|
+
readonly SEARCH_PLACEHOLDER: "Search…";
|
|
52
|
+
readonly INSTRUCTIONS: "↑↓ to Navigate • Space to select item • Enter to Confirm";
|
|
53
|
+
readonly INSTRUCTIONS_WITH_PAGINATION: "↑↓ to Navigate • Ctrl+[/] to change page • Space to select item • Enter to Confirm";
|
|
54
|
+
readonly NO_ASSISTANTS: "No assistants found.";
|
|
55
|
+
readonly ERROR_PREFIX: "Error: ";
|
|
56
|
+
readonly CONTINUE_BUTTON: "Continue";
|
|
57
|
+
readonly CANCEL_BUTTON: "Cancel";
|
|
58
|
+
};
|
|
59
|
+
export declare const CONFIG: {
|
|
60
|
+
readonly ITEMS_PER_PAGE: 5;
|
|
61
|
+
readonly FETCH_TIMEOUT_MS: 10000;
|
|
62
|
+
readonly DESCRIPTION_MAX_LENGTH: 80;
|
|
63
|
+
readonly KEEP_ALIVE_INTERVAL_MS: 1000;
|
|
64
|
+
readonly SEARCH_DEBOUNCE_MS: 500;
|
|
65
|
+
readonly PRINTABLE_CHAR_MIN: 32;
|
|
66
|
+
readonly PRINTABLE_CHAR_MAX: 126;
|
|
67
|
+
};
|
|
68
|
+
export declare const PANEL_ID: {
|
|
69
|
+
readonly REGISTERED: "registered";
|
|
70
|
+
readonly PROJECT: "project";
|
|
71
|
+
readonly MARKETPLACE: "marketplace";
|
|
72
|
+
};
|
|
73
|
+
export declare const PANEL_IDS: readonly ["registered", "project", "marketplace"];
|
|
74
|
+
export type PanelId = typeof PANEL_IDS[number];
|
|
75
|
+
export declare const API_SCOPE: {
|
|
76
|
+
readonly VISIBLE_TO_USER: "visible_to_user";
|
|
77
|
+
readonly MARKETPLACE: "marketplace";
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/selection/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,eAAO,MAAM,IAAI;;;CAGP,CAAC;AAGX,eAAO,MAAM,GAAG;;;;;;;;;;;;;;;;CAgBN,CAAC;AAGX,eAAO,MAAM,GAAG;;;;;;;CAON,CAAC;AAGX,eAAO,MAAM,MAAM;;;;;;;CAOT,CAAC;AAGX,eAAO,MAAM,kBAAkB;;;CAGrB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,OAAO,kBAAkB,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAG3F,eAAO,MAAM,IAAI;;;;;;;;;;CAUP,CAAC;AAGX,eAAO,MAAM,MAAM;;;;;;;;CAQT,CAAC;AAGX,eAAO,MAAM,QAAQ;;;;CAIX,CAAC;AAEX,eAAO,MAAM,SAAS,mDAIZ,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC;AAG/C,eAAO,MAAM,SAAS;;;CAGZ,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UI Constants
|
|
3
|
+
*
|
|
4
|
+
* All magic strings, ANSI codes, and configuration values for the selection UI
|
|
5
|
+
*/
|
|
6
|
+
// ANSI Escape Codes
|
|
7
|
+
export const ANSI = {
|
|
8
|
+
CURSOR_HOME_CLEAR: '\x1b[H\x1b[J',
|
|
9
|
+
CLEAR_LINE_ABOVE: '\x1b[1A\x1b[2K',
|
|
10
|
+
};
|
|
11
|
+
// Key Codes
|
|
12
|
+
export const KEY = {
|
|
13
|
+
CTRL_C: '\u0003',
|
|
14
|
+
ESC: '\u001b',
|
|
15
|
+
TAB: '\t',
|
|
16
|
+
SHIFT_TAB: '\u001b[Z',
|
|
17
|
+
ENTER: '\r',
|
|
18
|
+
NEWLINE: '\n',
|
|
19
|
+
ARROW_UP: '\u001b[A',
|
|
20
|
+
ARROW_DOWN: '\u001b[B',
|
|
21
|
+
ARROW_LEFT: '\u001b[D',
|
|
22
|
+
ARROW_RIGHT: '\u001b[C',
|
|
23
|
+
CTRL_BRACKET_LEFT: '\u001b',
|
|
24
|
+
CTRL_BRACKET_RIGHT: '\u001d',
|
|
25
|
+
SPACE: ' ',
|
|
26
|
+
BACKSPACE: '\u007f',
|
|
27
|
+
BACKSPACE_ALT: '\b',
|
|
28
|
+
};
|
|
29
|
+
// Box Drawing Characters
|
|
30
|
+
export const BOX = {
|
|
31
|
+
TOP_LEFT: '╭',
|
|
32
|
+
TOP_RIGHT: '╮',
|
|
33
|
+
BOTTOM_LEFT: '╰',
|
|
34
|
+
BOTTOM_RIGHT: '╯',
|
|
35
|
+
HORIZONTAL: '─',
|
|
36
|
+
VERTICAL: '│',
|
|
37
|
+
};
|
|
38
|
+
// UI Symbols
|
|
39
|
+
export const SYMBOL = {
|
|
40
|
+
SEARCH_ICON: '⌕',
|
|
41
|
+
CURSOR: '█',
|
|
42
|
+
CIRCLE_FILLED: '◉',
|
|
43
|
+
CIRCLE_EMPTY: '◯',
|
|
44
|
+
CURSOR_INDICATOR: '› ',
|
|
45
|
+
TRUNCATION: '...',
|
|
46
|
+
};
|
|
47
|
+
// Pagination Controls
|
|
48
|
+
export const PAGINATION_CONTROL = {
|
|
49
|
+
PREV: 'prev',
|
|
50
|
+
NEXT: 'next',
|
|
51
|
+
};
|
|
52
|
+
// UI Text
|
|
53
|
+
export const TEXT = {
|
|
54
|
+
LABEL: 'Assistants',
|
|
55
|
+
TAB_HINT: '(←/→, tab/shift+tab to cycle)',
|
|
56
|
+
SEARCH_PLACEHOLDER: 'Search…',
|
|
57
|
+
INSTRUCTIONS: '↑↓ to Navigate • Space to select item • Enter to Confirm',
|
|
58
|
+
INSTRUCTIONS_WITH_PAGINATION: '↑↓ to Navigate • Ctrl+[/] to change page • Space to select item • Enter to Confirm',
|
|
59
|
+
NO_ASSISTANTS: 'No assistants found.',
|
|
60
|
+
ERROR_PREFIX: 'Error: ',
|
|
61
|
+
CONTINUE_BUTTON: 'Continue',
|
|
62
|
+
CANCEL_BUTTON: 'Cancel',
|
|
63
|
+
};
|
|
64
|
+
// Config Values
|
|
65
|
+
export const CONFIG = {
|
|
66
|
+
ITEMS_PER_PAGE: 5,
|
|
67
|
+
FETCH_TIMEOUT_MS: 10000,
|
|
68
|
+
DESCRIPTION_MAX_LENGTH: 80,
|
|
69
|
+
KEEP_ALIVE_INTERVAL_MS: 1000,
|
|
70
|
+
SEARCH_DEBOUNCE_MS: 500,
|
|
71
|
+
PRINTABLE_CHAR_MIN: 32,
|
|
72
|
+
PRINTABLE_CHAR_MAX: 126,
|
|
73
|
+
};
|
|
74
|
+
// Panel IDs
|
|
75
|
+
export const PANEL_ID = {
|
|
76
|
+
REGISTERED: 'registered',
|
|
77
|
+
PROJECT: 'project',
|
|
78
|
+
MARKETPLACE: 'marketplace'
|
|
79
|
+
};
|
|
80
|
+
export const PANEL_IDS = [
|
|
81
|
+
PANEL_ID.REGISTERED,
|
|
82
|
+
PANEL_ID.PROJECT,
|
|
83
|
+
PANEL_ID.MARKETPLACE
|
|
84
|
+
];
|
|
85
|
+
// API Scope values (from SDK)
|
|
86
|
+
export const API_SCOPE = {
|
|
87
|
+
VISIBLE_TO_USER: 'visible_to_user',
|
|
88
|
+
MARKETPLACE: 'marketplace'
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../src/cli/commands/assistants/setup/selection/constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,oBAAoB;AACpB,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,iBAAiB,EAAE,cAAc;IACjC,gBAAgB,EAAE,gBAAgB;CAC1B,CAAC;AAEX,YAAY;AACZ,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,IAAI;IACT,SAAS,EAAE,UAAU;IACrB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,UAAU;IACpB,UAAU,EAAE,UAAU;IACtB,UAAU,EAAE,UAAU;IACtB,WAAW,EAAE,UAAU;IACvB,iBAAiB,EAAE,QAAQ;IAC3B,kBAAkB,EAAE,QAAQ;IAC5B,KAAK,EAAE,GAAG;IACV,SAAS,EAAE,QAAQ;IACnB,aAAa,EAAE,IAAI;CACX,CAAC;AAEX,yBAAyB;AACzB,MAAM,CAAC,MAAM,GAAG,GAAG;IACjB,QAAQ,EAAE,GAAG;IACb,SAAS,EAAE,GAAG;IACd,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,GAAG;CACL,CAAC;AAEX,aAAa;AACb,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,WAAW,EAAE,GAAG;IAChB,MAAM,EAAE,GAAG;IACX,aAAa,EAAE,GAAG;IAClB,YAAY,EAAE,GAAG;IACjB,gBAAgB,EAAE,IAAI;IACtB,UAAU,EAAE,KAAK;CACT,CAAC;AAEX,sBAAsB;AACtB,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACJ,CAAC;AAIX,UAAU;AACV,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,KAAK,EAAE,YAAY;IACnB,QAAQ,EAAE,+BAA+B;IACzC,kBAAkB,EAAE,SAAS;IAC7B,YAAY,EAAE,0DAA0D;IACxE,4BAA4B,EAAE,oFAAoF;IAClH,aAAa,EAAE,sBAAsB;IACrC,YAAY,EAAE,SAAS;IACvB,eAAe,EAAE,UAAU;IAC3B,aAAa,EAAE,QAAQ;CACf,CAAC;AAEX,gBAAgB;AAChB,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,cAAc,EAAE,CAAC;IACjB,gBAAgB,EAAE,KAAK;IACvB,sBAAsB,EAAE,EAAE;IAC1B,sBAAsB,EAAE,IAAI;IAC5B,kBAAkB,EAAE,GAAG;IACvB,kBAAkB,EAAE,EAAE;IACtB,kBAAkB,EAAE,GAAG;CACf,CAAC;AAEX,YAAY;AACZ,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,WAAW,EAAE,aAAa;CAClB,CAAC;AAEX,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,QAAQ,CAAC,UAAU;IACnB,QAAQ,CAAC,OAAO;IAChB,QAAQ,CAAC,WAAW;CACZ,CAAC;AAIX,8BAA8B;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,eAAe,EAAE,iBAAiB;IAClC,WAAW,EAAE,aAAa;CAClB,CAAC"}
|