@compilr-dev/cli 0.4.0 → 0.5.0
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 +30 -12
- package/dist/agent.d.ts +74 -1
- package/dist/agent.js +259 -76
- package/dist/anchors/index.d.ts +9 -0
- package/dist/anchors/index.js +9 -0
- package/dist/anchors/project-anchors.d.ts +79 -0
- package/dist/anchors/project-anchors.js +202 -0
- package/dist/commands/handler-types.d.ts +68 -0
- package/dist/commands/handler-types.js +8 -0
- package/dist/commands/handlers/agent-commands.d.ts +13 -0
- package/dist/commands/handlers/agent-commands.js +305 -0
- package/dist/commands/handlers/design-commands.d.ts +15 -0
- package/dist/commands/handlers/design-commands.js +334 -0
- package/dist/commands/handlers/index.d.ts +20 -0
- package/dist/commands/handlers/index.js +43 -0
- package/dist/commands/handlers/overlay-commands.d.ts +21 -0
- package/dist/commands/handlers/overlay-commands.js +287 -0
- package/dist/commands/handlers/project-commands.d.ts +11 -0
- package/dist/commands/handlers/project-commands.js +167 -0
- package/dist/commands/handlers/simple-commands.d.ts +19 -0
- package/dist/commands/handlers/simple-commands.js +144 -0
- package/dist/commands/index.d.ts +2 -1
- package/dist/commands/registry.d.ts +50 -0
- package/dist/commands/registry.js +75 -0
- package/dist/commands-v2/handlers/context.d.ts +13 -0
- package/dist/commands-v2/handlers/context.js +348 -0
- package/dist/commands-v2/handlers/core.d.ts +13 -0
- package/dist/commands-v2/handlers/core.js +165 -0
- package/dist/commands-v2/handlers/debug.d.ts +11 -0
- package/dist/commands-v2/handlers/debug.js +159 -0
- package/dist/commands-v2/handlers/index.d.ts +12 -0
- package/dist/commands-v2/handlers/index.js +24 -0
- package/dist/commands-v2/handlers/project.d.ts +22 -0
- package/dist/commands-v2/handlers/project.js +814 -0
- package/dist/commands-v2/handlers/settings.d.ts +15 -0
- package/dist/commands-v2/handlers/settings.js +235 -0
- package/dist/commands-v2/index.d.ts +13 -0
- package/dist/commands-v2/index.js +15 -0
- package/dist/commands-v2/registry.d.ts +37 -0
- package/dist/commands-v2/registry.js +80 -0
- package/dist/commands-v2/types.d.ts +75 -0
- package/dist/commands-v2/types.js +7 -0
- package/dist/commands.js +110 -7
- package/dist/index.js +288 -29
- package/dist/input-handlers/index.d.ts +7 -0
- package/dist/input-handlers/index.js +7 -0
- package/dist/input-handlers/memory-handler.d.ts +26 -0
- package/dist/input-handlers/memory-handler.js +68 -0
- package/dist/repl-helpers.d.ts +63 -0
- package/dist/repl-helpers.js +318 -0
- package/dist/repl-v2.d.ts +155 -0
- package/dist/repl-v2.js +774 -0
- package/dist/repl.d.ts +32 -4
- package/dist/repl.js +250 -977
- package/dist/settings/index.d.ts +23 -0
- package/dist/settings/index.js +48 -0
- package/dist/settings/paths.d.ts +110 -0
- package/dist/settings/paths.js +264 -0
- package/dist/templates/compilr-md.js +7 -4
- package/dist/templates/index.js +3 -4
- package/dist/themes/colors.js +3 -1
- package/dist/themes/registry.d.ts +5 -36
- package/dist/themes/registry.js +11 -95
- package/dist/themes/types.d.ts +3 -38
- package/dist/themes/types.js +2 -2
- package/dist/tools/anchor-tools.d.ts +31 -0
- package/dist/tools/anchor-tools.js +255 -0
- package/dist/tools/backlog-wrappers.d.ts +54 -0
- package/dist/tools/backlog-wrappers.js +338 -0
- package/dist/tools/backlog.js +1 -1
- package/dist/tools/db-tools.d.ts +65 -0
- package/dist/tools/db-tools.js +19 -0
- package/dist/tools/document-db.d.ts +43 -0
- package/dist/tools/document-db.js +220 -0
- package/dist/tools/project-db.d.ts +102 -0
- package/dist/tools/project-db.js +370 -0
- package/dist/tools/workitem-db.d.ts +103 -0
- package/dist/tools/workitem-db.js +549 -0
- package/dist/tools.js +13 -3
- package/dist/ui/agents-overlay-v2.d.ts +43 -0
- package/dist/ui/agents-overlay-v2.js +809 -0
- package/dist/ui/agents-overlay.d.ts +5 -5
- package/dist/ui/agents-overlay.js +782 -420
- package/dist/ui/anchors-overlay.d.ts +12 -0
- package/dist/ui/anchors-overlay.js +775 -0
- package/dist/ui/arch-type-overlay.d.ts +1 -6
- package/dist/ui/arch-type-overlay.js +175 -203
- package/dist/ui/ask-user-overlay-v2.d.ts +26 -0
- package/dist/ui/ask-user-overlay-v2.js +555 -0
- package/dist/ui/ask-user-overlay.d.ts +2 -2
- package/dist/ui/ask-user-overlay.js +443 -535
- package/dist/ui/ask-user-simple-overlay-v2.d.ts +25 -0
- package/dist/ui/ask-user-simple-overlay-v2.js +215 -0
- package/dist/ui/ask-user-simple-overlay.d.ts +2 -2
- package/dist/ui/ask-user-simple-overlay.js +182 -209
- package/dist/ui/backlog-overlay.d.ts +16 -1
- package/dist/ui/backlog-overlay.js +525 -659
- package/dist/ui/base/index.d.ts +26 -0
- package/dist/ui/base/index.js +33 -0
- package/dist/ui/base/inline-overlay-utils.d.ts +217 -0
- package/dist/ui/base/inline-overlay-utils.js +320 -0
- package/dist/ui/base/inline-overlay.d.ts +159 -0
- package/dist/ui/base/inline-overlay.js +257 -0
- package/dist/ui/base/key-utils.d.ts +15 -0
- package/dist/ui/base/key-utils.js +30 -0
- package/dist/ui/base/overlay-base-v2.d.ts +193 -0
- package/dist/ui/base/overlay-base-v2.js +246 -0
- package/dist/ui/base/overlay-base.d.ts +156 -0
- package/dist/ui/base/overlay-base.js +238 -0
- package/dist/ui/base/overlay-lifecycle.d.ts +65 -0
- package/dist/ui/base/overlay-lifecycle.js +159 -0
- package/dist/ui/base/overlay-types.d.ts +185 -0
- package/dist/ui/base/overlay-types.js +7 -0
- package/dist/ui/base/render-utils.d.ts +8 -0
- package/dist/ui/base/render-utils.js +11 -0
- package/dist/ui/base/screen-stack.d.ts +148 -0
- package/dist/ui/base/screen-stack.js +184 -0
- package/dist/ui/base/tabbed-list-overlay-v2.d.ts +103 -0
- package/dist/ui/base/tabbed-list-overlay-v2.js +317 -0
- package/dist/ui/base/tabbed-list-overlay.d.ts +153 -0
- package/dist/ui/base/tabbed-list-overlay.js +369 -0
- package/dist/ui/commands-overlay-v2.d.ts +33 -0
- package/dist/ui/commands-overlay-v2.js +441 -0
- package/dist/ui/commands-overlay.d.ts +7 -2
- package/dist/ui/commands-overlay.js +384 -355
- package/dist/ui/config-overlay.d.ts +5 -4
- package/dist/ui/config-overlay.js +243 -513
- package/dist/ui/conversation.d.ts +75 -4
- package/dist/ui/conversation.js +374 -161
- package/dist/ui/docs-overlay.d.ts +17 -0
- package/dist/ui/docs-overlay.js +303 -0
- package/dist/ui/ephemeral.d.ts +1 -1
- package/dist/ui/ephemeral.js +1 -1
- package/dist/ui/features/index.d.ts +34 -0
- package/dist/ui/features/index.js +34 -0
- package/dist/ui/features/input-feature.d.ts +85 -0
- package/dist/ui/features/input-feature.js +238 -0
- package/dist/ui/features/list-feature.d.ts +155 -0
- package/dist/ui/features/list-feature.js +244 -0
- package/dist/ui/features/pagination-feature.d.ts +154 -0
- package/dist/ui/features/pagination-feature.js +238 -0
- package/dist/ui/features/search-feature.d.ts +148 -0
- package/dist/ui/features/search-feature.js +185 -0
- package/dist/ui/features/tab-feature.d.ts +194 -0
- package/dist/ui/features/tab-feature.js +307 -0
- package/dist/ui/footer-v2.d.ts +222 -0
- package/dist/ui/footer-v2.js +1349 -0
- package/dist/ui/footer.d.ts +107 -0
- package/dist/ui/footer.js +359 -67
- package/dist/ui/guardrail-overlay.d.ts +29 -0
- package/dist/ui/guardrail-overlay.js +145 -0
- package/dist/ui/help-overlay-v2.d.ts +34 -0
- package/dist/ui/help-overlay-v2.js +309 -0
- package/dist/ui/help-overlay.d.ts +16 -0
- package/dist/ui/help-overlay.js +316 -0
- package/dist/ui/index.d.ts +1 -1
- package/dist/ui/index.js +1 -3
- package/dist/ui/init-overlay-v2.d.ts +34 -0
- package/dist/ui/init-overlay-v2.js +600 -0
- package/dist/ui/init-overlay.d.ts +12 -2
- package/dist/ui/init-overlay.js +349 -270
- package/dist/ui/input-prompt-v2.d.ts +1 -0
- package/dist/ui/input-prompt-v2.js +14 -6
- package/dist/ui/input-prompt.d.ts +116 -33
- package/dist/ui/input-prompt.js +536 -337
- package/dist/ui/iteration-limit-overlay-v2.d.ts +21 -0
- package/dist/ui/iteration-limit-overlay-v2.js +114 -0
- package/dist/ui/iteration-limit-overlay.d.ts +2 -2
- package/dist/ui/iteration-limit-overlay.js +92 -128
- package/dist/ui/keys-overlay-v2.d.ts +41 -0
- package/dist/ui/keys-overlay-v2.js +248 -0
- package/dist/ui/keys-overlay.d.ts +1 -0
- package/dist/ui/keys-overlay.js +203 -141
- package/dist/ui/line-utils.d.ts +88 -0
- package/dist/ui/line-utils.js +150 -0
- package/dist/ui/live-region.d.ts +161 -0
- package/dist/ui/live-region.js +387 -0
- package/dist/ui/mascot/expressions.d.ts +32 -0
- package/dist/ui/mascot/expressions.js +213 -0
- package/dist/ui/mascot/index.d.ts +8 -0
- package/dist/ui/mascot/index.js +8 -0
- package/dist/ui/mascot/renderer.d.ts +19 -0
- package/dist/ui/mascot/renderer.js +97 -0
- package/dist/ui/mascot-overlay-v2.d.ts +41 -0
- package/dist/ui/mascot-overlay-v2.js +138 -0
- package/dist/ui/mascot-overlay.d.ts +21 -0
- package/dist/ui/mascot-overlay.js +146 -0
- package/dist/ui/model-overlay-v2.d.ts +49 -0
- package/dist/ui/model-overlay-v2.js +118 -0
- package/dist/ui/model-overlay.d.ts +27 -0
- package/dist/ui/model-overlay.js +221 -0
- package/dist/ui/model-warning-overlay.js +3 -5
- package/dist/ui/new-overlay.d.ts +34 -0
- package/dist/ui/new-overlay.js +604 -0
- package/dist/ui/overlay/impl/agents-overlay-v2.d.ts +45 -0
- package/dist/ui/overlay/impl/agents-overlay-v2.js +825 -0
- package/dist/ui/overlay/impl/anchors-overlay-v2.d.ts +47 -0
- package/dist/ui/overlay/impl/anchors-overlay-v2.js +783 -0
- package/dist/ui/overlay/impl/arch-type-overlay-v2.d.ts +37 -0
- package/dist/ui/overlay/impl/arch-type-overlay-v2.js +240 -0
- package/dist/ui/overlay/impl/ask-user-overlay-v2.d.ts +72 -0
- package/dist/ui/overlay/impl/ask-user-overlay-v2.js +584 -0
- package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.d.ts +46 -0
- package/dist/ui/overlay/impl/ask-user-simple-overlay-v2.js +204 -0
- package/dist/ui/overlay/impl/backlog-overlay-v2.d.ts +49 -0
- package/dist/ui/overlay/impl/backlog-overlay-v2.js +642 -0
- package/dist/ui/overlay/impl/commands-overlay-v2.d.ts +33 -0
- package/dist/ui/overlay/impl/commands-overlay-v2.js +441 -0
- package/dist/ui/overlay/impl/config-overlay-v2.d.ts +100 -0
- package/dist/ui/overlay/impl/config-overlay-v2.js +654 -0
- package/dist/ui/overlay/impl/dashboard-overlay-v2.d.ts +55 -0
- package/dist/ui/overlay/impl/dashboard-overlay-v2.js +359 -0
- package/dist/ui/overlay/impl/docs-overlay-v2.d.ts +45 -0
- package/dist/ui/overlay/impl/docs-overlay-v2.js +114 -0
- package/dist/ui/overlay/impl/document-detail-overlay-v2.d.ts +77 -0
- package/dist/ui/overlay/impl/document-detail-overlay-v2.js +1071 -0
- package/dist/ui/overlay/impl/guardrail-overlay-v2.d.ts +43 -0
- package/dist/ui/overlay/impl/guardrail-overlay-v2.js +114 -0
- package/dist/ui/overlay/impl/help-overlay-v2.d.ts +34 -0
- package/dist/ui/overlay/impl/help-overlay-v2.js +309 -0
- package/dist/ui/overlay/impl/init-overlay-v2.d.ts +77 -0
- package/dist/ui/overlay/impl/init-overlay-v2.js +593 -0
- package/dist/ui/overlay/impl/init-setup-overlay-v2.d.ts +25 -0
- package/dist/ui/overlay/impl/init-setup-overlay-v2.js +97 -0
- package/dist/ui/overlay/impl/iteration-limit-overlay-v2.d.ts +35 -0
- package/dist/ui/overlay/impl/iteration-limit-overlay-v2.js +105 -0
- package/dist/ui/overlay/impl/keys-overlay-v2.d.ts +41 -0
- package/dist/ui/overlay/impl/keys-overlay-v2.js +248 -0
- package/dist/ui/overlay/impl/mascot-overlay-v2.d.ts +41 -0
- package/dist/ui/overlay/impl/mascot-overlay-v2.js +138 -0
- package/dist/ui/overlay/impl/model-overlay-v2.d.ts +49 -0
- package/dist/ui/overlay/impl/model-overlay-v2.js +118 -0
- package/dist/ui/overlay/impl/model-warning-overlay-v2.d.ts +46 -0
- package/dist/ui/overlay/impl/model-warning-overlay-v2.js +132 -0
- package/dist/ui/overlay/impl/new-overlay-v2.d.ts +77 -0
- package/dist/ui/overlay/impl/new-overlay-v2.js +593 -0
- package/dist/ui/overlay/impl/permission-overlay-v2.d.ts +36 -0
- package/dist/ui/overlay/impl/permission-overlay-v2.js +380 -0
- package/dist/ui/overlay/impl/projects-overlay-v2.d.ts +36 -0
- package/dist/ui/overlay/impl/projects-overlay-v2.js +499 -0
- package/dist/ui/overlay/impl/theme-overlay-v2.d.ts +42 -0
- package/dist/ui/overlay/impl/theme-overlay-v2.js +135 -0
- package/dist/ui/overlay/impl/tools-overlay-v2.d.ts +47 -0
- package/dist/ui/overlay/impl/tools-overlay-v2.js +218 -0
- package/dist/ui/overlay/impl/tutorial-overlay-v2.d.ts +31 -0
- package/dist/ui/overlay/impl/tutorial-overlay-v2.js +1035 -0
- package/dist/ui/overlay/impl/workflow-overlay-v2.d.ts +80 -0
- package/dist/ui/overlay/impl/workflow-overlay-v2.js +637 -0
- package/dist/ui/overlay/index.d.ts +33 -0
- package/dist/ui/overlay/index.js +35 -0
- package/dist/ui/overlay/key-utils.d.ts +6 -0
- package/dist/ui/overlay/key-utils.js +6 -0
- package/dist/ui/overlay/overlay-types.d.ts +128 -0
- package/dist/ui/overlay/overlay-types.js +22 -0
- package/dist/ui/overlay/types.d.ts +135 -0
- package/dist/ui/overlay/types.js +22 -0
- package/dist/ui/overlays/help-overlay-v2.d.ts +28 -0
- package/dist/ui/overlays/help-overlay-v2.js +198 -0
- package/dist/ui/overlays/index.d.ts +11 -0
- package/dist/ui/overlays/index.js +11 -0
- package/dist/ui/overlays.d.ts +0 -4
- package/dist/ui/overlays.js +0 -444
- package/dist/ui/permission-overlay-v2.d.ts +36 -0
- package/dist/ui/permission-overlay-v2.js +380 -0
- package/dist/ui/permission-overlay.d.ts +1 -1
- package/dist/ui/permission-overlay.js +186 -298
- package/dist/ui/projects-overlay.d.ts +19 -0
- package/dist/ui/projects-overlay.js +484 -0
- package/dist/ui/providers/types.d.ts +178 -0
- package/dist/ui/providers/types.js +9 -0
- package/dist/ui/render-modes.d.ts +36 -0
- package/dist/ui/render-modes.js +44 -0
- package/dist/ui/startup-menu.d.ts +36 -0
- package/dist/ui/startup-menu.js +236 -0
- package/dist/ui/subagent-renderer.d.ts +117 -0
- package/dist/ui/subagent-renderer.js +334 -0
- package/dist/ui/terminal-codes.d.ts +94 -0
- package/dist/ui/terminal-codes.js +124 -0
- package/dist/ui/terminal-renderer.d.ts +221 -0
- package/dist/ui/terminal-renderer.js +751 -0
- package/dist/ui/terminal-ui.d.ts +463 -0
- package/dist/ui/terminal-ui.js +2296 -0
- package/dist/ui/terminal.d.ts +20 -0
- package/dist/ui/terminal.js +72 -0
- package/dist/ui/theme-overlay-v2.d.ts +42 -0
- package/dist/ui/theme-overlay-v2.js +135 -0
- package/dist/ui/theme-overlay.d.ts +24 -0
- package/dist/ui/theme-overlay.js +127 -0
- package/dist/ui/todo-zone.js +53 -25
- package/dist/ui/tool-formatters.d.ts +16 -0
- package/dist/ui/tool-formatters.js +516 -0
- package/dist/ui/tools-overlay-v2.d.ts +47 -0
- package/dist/ui/tools-overlay-v2.js +218 -0
- package/dist/ui/tools-overlay.d.ts +10 -2
- package/dist/ui/tools-overlay.js +172 -220
- package/dist/ui/tutorial-overlay-v2.d.ts +31 -0
- package/dist/ui/tutorial-overlay-v2.js +1035 -0
- package/dist/ui/tutorial-overlay.d.ts +1 -0
- package/dist/ui/tutorial-overlay.js +400 -302
- package/dist/ui/workflow-overlay.d.ts +22 -0
- package/dist/ui/workflow-overlay.js +636 -0
- package/dist/utils/debug-log.d.ts +28 -0
- package/dist/utils/debug-log.js +57 -0
- package/dist/utils/model-tiers.js +1 -1
- package/dist/utils/path-safety.d.ts +56 -0
- package/dist/utils/path-safety.js +239 -0
- package/dist/workflow/guided-mode-injector.d.ts +42 -0
- package/dist/workflow/guided-mode-injector.js +191 -0
- package/dist/workflow/index.d.ts +8 -0
- package/dist/workflow/index.js +8 -0
- package/dist/workflow/step-criteria.d.ts +62 -0
- package/dist/workflow/step-criteria.js +150 -0
- package/dist/workflow/step-tracker.d.ts +92 -0
- package/dist/workflow/step-tracker.js +141 -0
- package/package.json +12 -5
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guardrail Confirmation Overlay V2
|
|
3
|
+
*
|
|
4
|
+
* Shows when a guardrail with action='confirm' is triggered.
|
|
5
|
+
* User must approve or deny the risky operation.
|
|
6
|
+
* Uses BaseOverlayV2 for TerminalUI integration.
|
|
7
|
+
*/
|
|
8
|
+
import { BaseOverlayV2 } from '../../base/index.js';
|
|
9
|
+
import type { RenderContext, OverlayAction, KeyEvent } from '../types.js';
|
|
10
|
+
interface GuardrailState {
|
|
11
|
+
selectedIndex: number;
|
|
12
|
+
}
|
|
13
|
+
export interface GuardrailConfirmOptionsV2 {
|
|
14
|
+
/** Guardrail name */
|
|
15
|
+
name: string;
|
|
16
|
+
/** Guardrail description/message */
|
|
17
|
+
message: string;
|
|
18
|
+
/** Action type (for display) */
|
|
19
|
+
action: 'warn' | 'confirm' | 'block';
|
|
20
|
+
/** Tool that triggered the guardrail */
|
|
21
|
+
toolName: string;
|
|
22
|
+
/** The input that matched the pattern */
|
|
23
|
+
matchedInput: string;
|
|
24
|
+
/** Category (e.g., 'git', 'filesystem', 'database') */
|
|
25
|
+
category?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface GuardrailConfirmResultV2 {
|
|
28
|
+
/** Whether to proceed with the operation */
|
|
29
|
+
approved: boolean;
|
|
30
|
+
}
|
|
31
|
+
export declare class GuardrailOverlayV2 extends BaseOverlayV2<GuardrailState, GuardrailConfirmResultV2> {
|
|
32
|
+
readonly type: "inline";
|
|
33
|
+
readonly id = "guardrail-overlay-v2";
|
|
34
|
+
private readonly options;
|
|
35
|
+
constructor(options: GuardrailConfirmOptionsV2);
|
|
36
|
+
protected renderContent(context: RenderContext): string[];
|
|
37
|
+
handleKey(key: KeyEvent): OverlayAction<GuardrailConfirmResultV2>;
|
|
38
|
+
/**
|
|
39
|
+
* Summary shown after overlay closes.
|
|
40
|
+
*/
|
|
41
|
+
getCloseSummary(result: GuardrailConfirmResultV2): string | null;
|
|
42
|
+
}
|
|
43
|
+
export {};
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guardrail Confirmation Overlay V2
|
|
3
|
+
*
|
|
4
|
+
* Shows when a guardrail with action='confirm' is triggered.
|
|
5
|
+
* User must approve or deny the risky operation.
|
|
6
|
+
* Uses BaseOverlayV2 for TerminalUI integration.
|
|
7
|
+
*/
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
import { BaseOverlayV2, renderBorder, wrapText } from '../../base/index.js';
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// Overlay Implementation
|
|
12
|
+
// =============================================================================
|
|
13
|
+
export class GuardrailOverlayV2 extends BaseOverlayV2 {
|
|
14
|
+
type = 'inline';
|
|
15
|
+
id = 'guardrail-overlay-v2';
|
|
16
|
+
options;
|
|
17
|
+
constructor(options) {
|
|
18
|
+
super({
|
|
19
|
+
selectedIndex: 0, // Default to Deny (safer)
|
|
20
|
+
});
|
|
21
|
+
this.options = options;
|
|
22
|
+
this.minHeight = 15; // Prevent jitter
|
|
23
|
+
}
|
|
24
|
+
renderContent(context) {
|
|
25
|
+
const s = context.styles;
|
|
26
|
+
const lines = [];
|
|
27
|
+
const cols = context.width;
|
|
28
|
+
const border = renderBorder(cols, s);
|
|
29
|
+
// Header with warning icon
|
|
30
|
+
lines.push(border);
|
|
31
|
+
lines.push(' ' + s.warning('! Risky Operation Detected'));
|
|
32
|
+
lines.push('');
|
|
33
|
+
// Guardrail info
|
|
34
|
+
const category = this.options.category ? `[${this.options.category}]` : '';
|
|
35
|
+
lines.push(s.muted(` ${category} `) + chalk.bold(this.options.name));
|
|
36
|
+
lines.push('');
|
|
37
|
+
// Message
|
|
38
|
+
const msgLines = wrapText(this.options.message, cols - 4);
|
|
39
|
+
for (const line of msgLines) {
|
|
40
|
+
lines.push(' ' + s.muted(line));
|
|
41
|
+
}
|
|
42
|
+
lines.push('');
|
|
43
|
+
// Tool and matched input
|
|
44
|
+
lines.push(s.muted(' Tool: ') + s.primary(this.options.toolName));
|
|
45
|
+
// Show truncated matched input
|
|
46
|
+
const maxInputLen = cols - 12;
|
|
47
|
+
let displayInput = this.options.matchedInput;
|
|
48
|
+
if (displayInput.length > maxInputLen) {
|
|
49
|
+
displayInput = displayInput.substring(0, maxInputLen - 3) + '...';
|
|
50
|
+
}
|
|
51
|
+
// Replace newlines with visible markers
|
|
52
|
+
displayInput = displayInput.replace(/\n/g, '↵');
|
|
53
|
+
lines.push(s.muted(' Match: ') + s.warning(displayInput));
|
|
54
|
+
lines.push('');
|
|
55
|
+
// Action buttons
|
|
56
|
+
const denyLabel = this.state.selectedIndex === 0
|
|
57
|
+
? s.error(' > Deny ')
|
|
58
|
+
: s.muted(' Deny ');
|
|
59
|
+
const allowLabel = this.state.selectedIndex === 1
|
|
60
|
+
? s.warning(' > Allow ')
|
|
61
|
+
: s.muted(' Allow ');
|
|
62
|
+
lines.push(' ' + denyLabel + ' ' + allowLabel);
|
|
63
|
+
lines.push('');
|
|
64
|
+
// Footer
|
|
65
|
+
lines.push(s.muted(' Left/Right Select | Enter Confirm | Esc Deny'));
|
|
66
|
+
lines.push(border);
|
|
67
|
+
return lines;
|
|
68
|
+
}
|
|
69
|
+
handleKey(key) {
|
|
70
|
+
// Ctrl+C or Escape = Deny
|
|
71
|
+
if ((key.ctrl && key.name === 'c') || key.name === 'escape') {
|
|
72
|
+
return this.close({ approved: false });
|
|
73
|
+
}
|
|
74
|
+
// Left arrow or h for Deny
|
|
75
|
+
if (key.name === 'left' || key.char === 'h') {
|
|
76
|
+
this.state.selectedIndex = 0;
|
|
77
|
+
return this.rerender();
|
|
78
|
+
}
|
|
79
|
+
// Right arrow or l for Allow
|
|
80
|
+
if (key.name === 'right' || key.char === 'l') {
|
|
81
|
+
this.state.selectedIndex = 1;
|
|
82
|
+
return this.rerender();
|
|
83
|
+
}
|
|
84
|
+
// Tab to toggle
|
|
85
|
+
if (key.name === 'tab') {
|
|
86
|
+
this.state.selectedIndex = this.state.selectedIndex === 0 ? 1 : 0;
|
|
87
|
+
return this.rerender();
|
|
88
|
+
}
|
|
89
|
+
// Enter to confirm selection
|
|
90
|
+
if (key.name === 'return') {
|
|
91
|
+
return this.close({ approved: this.state.selectedIndex === 1 });
|
|
92
|
+
}
|
|
93
|
+
// 'd' or 'n' for Deny
|
|
94
|
+
const keyChar = key.char?.toLowerCase() ?? '';
|
|
95
|
+
if (keyChar === 'd' || keyChar === 'n') {
|
|
96
|
+
return this.close({ approved: false });
|
|
97
|
+
}
|
|
98
|
+
// 'a' or 'y' for Allow
|
|
99
|
+
if (keyChar === 'a' || keyChar === 'y') {
|
|
100
|
+
return this.close({ approved: true });
|
|
101
|
+
}
|
|
102
|
+
return this.noAction();
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Summary shown after overlay closes.
|
|
106
|
+
*/
|
|
107
|
+
getCloseSummary(result) {
|
|
108
|
+
const s = this.getStyles();
|
|
109
|
+
if (result.approved) {
|
|
110
|
+
return s.muted('Guardrail: ') + s.warning('Allowed ') + s.muted(this.options.name);
|
|
111
|
+
}
|
|
112
|
+
return s.muted('Guardrail: ') + s.error('Denied ') + s.muted(this.options.name);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Help Overlay V2
|
|
3
|
+
*
|
|
4
|
+
* Displays available commands in a searchable, categorized list.
|
|
5
|
+
* Uses TabbedListOverlayV2 for the new Overlay interface.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Tabs: All, Built-in, Custom
|
|
9
|
+
* - Search with / toggle
|
|
10
|
+
* - Detail view for full command information
|
|
11
|
+
* - Works with TerminalUI's overlay management
|
|
12
|
+
*/
|
|
13
|
+
import { TabbedListOverlayV2, BaseScreen } from '../../base/index.js';
|
|
14
|
+
interface HelpItem {
|
|
15
|
+
name: string;
|
|
16
|
+
description: string;
|
|
17
|
+
type: 'builtin' | 'custom';
|
|
18
|
+
/** For custom commands */
|
|
19
|
+
prompt?: string;
|
|
20
|
+
location?: 'project' | 'personal';
|
|
21
|
+
/** Index in COMMANDS array for built-in commands */
|
|
22
|
+
commandIndex?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Help overlay using the new Overlay interface.
|
|
26
|
+
* Displays available commands in a searchable, tabbed list.
|
|
27
|
+
*/
|
|
28
|
+
export declare class HelpOverlayV2 extends TabbedListOverlayV2<HelpItem> {
|
|
29
|
+
readonly type: "inline";
|
|
30
|
+
readonly id = "help-overlay-v2";
|
|
31
|
+
constructor();
|
|
32
|
+
protected createDetailScreen(item: HelpItem): BaseScreen | null;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Help Overlay V2
|
|
3
|
+
*
|
|
4
|
+
* Displays available commands in a searchable, categorized list.
|
|
5
|
+
* Uses TabbedListOverlayV2 for the new Overlay interface.
|
|
6
|
+
*
|
|
7
|
+
* Features:
|
|
8
|
+
* - Tabs: All, Built-in, Custom
|
|
9
|
+
* - Search with / toggle
|
|
10
|
+
* - Detail view for full command information
|
|
11
|
+
* - Works with TerminalUI's overlay management
|
|
12
|
+
*/
|
|
13
|
+
import chalk from 'chalk';
|
|
14
|
+
import * as terminal from '../../terminal.js';
|
|
15
|
+
import { getHelpCommands, getCommandByIndex } from '../../../commands.js';
|
|
16
|
+
import { getCustomCommandRegistry } from '../../../commands/index.js';
|
|
17
|
+
import { TabbedListOverlayV2, BaseScreen, stay, popScreen, closeOverlay, isEscape, isCtrlC, isClose, renderBorder, wrapText, } from '../../base/index.js';
|
|
18
|
+
// =============================================================================
|
|
19
|
+
// Constants
|
|
20
|
+
// =============================================================================
|
|
21
|
+
const VERSION = 'compilr.dev/agent';
|
|
22
|
+
const PAGE_SIZE = 10;
|
|
23
|
+
const TABS = [
|
|
24
|
+
{ id: 'all', label: 'All' },
|
|
25
|
+
{ id: 'builtin', label: 'Built-in' },
|
|
26
|
+
{ id: 'custom', label: 'Custom' },
|
|
27
|
+
];
|
|
28
|
+
// =============================================================================
|
|
29
|
+
// Detail Screens
|
|
30
|
+
// =============================================================================
|
|
31
|
+
/**
|
|
32
|
+
* Built-in command detail screen
|
|
33
|
+
*/
|
|
34
|
+
class CommandDetailScreen extends BaseScreen {
|
|
35
|
+
item;
|
|
36
|
+
styles;
|
|
37
|
+
constructor(item, styles) {
|
|
38
|
+
super();
|
|
39
|
+
this.item = item;
|
|
40
|
+
this.styles = styles;
|
|
41
|
+
}
|
|
42
|
+
render() {
|
|
43
|
+
const s = this.styles;
|
|
44
|
+
const cols = terminal.getTerminalWidth();
|
|
45
|
+
const maxLineWidth = cols - 2;
|
|
46
|
+
const border = renderBorder(cols, s);
|
|
47
|
+
const cmd = this.item.commandIndex !== undefined
|
|
48
|
+
? getCommandByIndex(this.item.commandIndex)
|
|
49
|
+
: null;
|
|
50
|
+
const lines = [];
|
|
51
|
+
lines.push(border);
|
|
52
|
+
lines.push(' ' + s.primaryBold('Command Reference'));
|
|
53
|
+
lines.push('');
|
|
54
|
+
if (!cmd) {
|
|
55
|
+
lines.push(s.error(' Command not found'));
|
|
56
|
+
lines.push(border);
|
|
57
|
+
lines.push(` ${s.muted('q/Esc Back')}`);
|
|
58
|
+
lines.push(border);
|
|
59
|
+
return lines;
|
|
60
|
+
}
|
|
61
|
+
// Helper to truncate
|
|
62
|
+
const truncate = (line, max = maxLineWidth) => {
|
|
63
|
+
// eslint-disable-next-line no-control-regex
|
|
64
|
+
const stripped = line.replace(/\x1b\[[0-9;]*m/g, '');
|
|
65
|
+
if (stripped.length <= max)
|
|
66
|
+
return line;
|
|
67
|
+
let visibleLen = 0;
|
|
68
|
+
let cutIndex = 0;
|
|
69
|
+
for (let i = 0; i < line.length; i++) {
|
|
70
|
+
if (line[i] === '\x1b') {
|
|
71
|
+
const end = line.indexOf('m', i);
|
|
72
|
+
if (end !== -1) {
|
|
73
|
+
i = end;
|
|
74
|
+
continue;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
visibleLen++;
|
|
78
|
+
if (visibleLen >= max - 3) {
|
|
79
|
+
cutIndex = i + 1;
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return line.slice(0, cutIndex) + '...';
|
|
84
|
+
};
|
|
85
|
+
// Command name
|
|
86
|
+
lines.push(chalk.bold(` /${cmd.name}`));
|
|
87
|
+
lines.push('');
|
|
88
|
+
// Description
|
|
89
|
+
lines.push(' ' + s.primary('DESCRIPTION'));
|
|
90
|
+
lines.push(truncate(' ' + cmd.description));
|
|
91
|
+
lines.push('');
|
|
92
|
+
// Details
|
|
93
|
+
if (cmd.details) {
|
|
94
|
+
lines.push(' ' + s.primary('ABOUT'));
|
|
95
|
+
const maxWidth = Math.min(cols - 6, 70);
|
|
96
|
+
const words = cmd.details.split(' ');
|
|
97
|
+
let currentLine = ' ';
|
|
98
|
+
for (const word of words) {
|
|
99
|
+
if (currentLine.length + word.length + 1 > maxWidth) {
|
|
100
|
+
lines.push(truncate(currentLine));
|
|
101
|
+
currentLine = ' ' + word;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
currentLine += (currentLine.length > 3 ? ' ' : '') + word;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
if (currentLine.length > 3) {
|
|
108
|
+
lines.push(truncate(currentLine));
|
|
109
|
+
}
|
|
110
|
+
lines.push('');
|
|
111
|
+
}
|
|
112
|
+
// Aliases
|
|
113
|
+
if (cmd.aliases && cmd.aliases.length > 0) {
|
|
114
|
+
lines.push(' ' + s.primary('ALIASES'));
|
|
115
|
+
lines.push(truncate(' ' + cmd.aliases.map((a) => `/${a}`).join(', ')));
|
|
116
|
+
lines.push('');
|
|
117
|
+
}
|
|
118
|
+
// Examples
|
|
119
|
+
if (cmd.examples && cmd.examples.length > 0) {
|
|
120
|
+
lines.push(' ' + s.primary('EXAMPLES'));
|
|
121
|
+
for (const example of cmd.examples) {
|
|
122
|
+
if (example.description) {
|
|
123
|
+
const paddedCode = example.code.padEnd(22);
|
|
124
|
+
const exLine = ` ${s.muted(paddedCode)}${s.muted('·')} ${example.description}`;
|
|
125
|
+
lines.push(truncate(exLine));
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
lines.push(truncate(' ' + s.muted(example.code)));
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
lines.push('');
|
|
132
|
+
}
|
|
133
|
+
// Interactions
|
|
134
|
+
if (cmd.interactions && cmd.interactions.length > 0) {
|
|
135
|
+
lines.push(' ' + s.primary('INTERACTIONS'));
|
|
136
|
+
for (const hint of cmd.interactions) {
|
|
137
|
+
lines.push(truncate(' ' + s.muted('• ' + hint)));
|
|
138
|
+
}
|
|
139
|
+
lines.push('');
|
|
140
|
+
}
|
|
141
|
+
// Footer
|
|
142
|
+
lines.push(border);
|
|
143
|
+
lines.push(` ${s.muted('q/Esc Back')}`);
|
|
144
|
+
lines.push(border);
|
|
145
|
+
return lines;
|
|
146
|
+
}
|
|
147
|
+
handleKey(data) {
|
|
148
|
+
if (isCtrlC(data)) {
|
|
149
|
+
return closeOverlay(undefined);
|
|
150
|
+
}
|
|
151
|
+
if (isEscape(data) || isClose(data)) {
|
|
152
|
+
return popScreen();
|
|
153
|
+
}
|
|
154
|
+
return stay(false);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Minimum height for stable rendering.
|
|
158
|
+
* Covers: header(3) + name(2) + desc(3) + about(5) + aliases(3) + examples(6) + interactions(4) + footer(3) = 29
|
|
159
|
+
*/
|
|
160
|
+
getMinHeight() {
|
|
161
|
+
return 25;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Custom command detail screen
|
|
166
|
+
*/
|
|
167
|
+
class CustomCommandDetailScreen extends BaseScreen {
|
|
168
|
+
item;
|
|
169
|
+
styles;
|
|
170
|
+
constructor(item, styles) {
|
|
171
|
+
super();
|
|
172
|
+
this.item = item;
|
|
173
|
+
this.styles = styles;
|
|
174
|
+
}
|
|
175
|
+
render() {
|
|
176
|
+
const s = this.styles;
|
|
177
|
+
const cols = terminal.getTerminalWidth();
|
|
178
|
+
const border = renderBorder(cols, s);
|
|
179
|
+
const registry = getCustomCommandRegistry();
|
|
180
|
+
const lines = [];
|
|
181
|
+
lines.push(border);
|
|
182
|
+
lines.push(' ' + s.primaryBold('Custom Command Details'));
|
|
183
|
+
lines.push('');
|
|
184
|
+
// Command name
|
|
185
|
+
lines.push(chalk.bold(` /${this.item.name}`));
|
|
186
|
+
lines.push('');
|
|
187
|
+
// Location
|
|
188
|
+
lines.push(' ' + s.primary('LOCATION'));
|
|
189
|
+
const loc = this.item.location ?? 'personal';
|
|
190
|
+
lines.push(` ${loc === 'project' ? 'Project' : 'Personal'} (${loc})`);
|
|
191
|
+
lines.push('');
|
|
192
|
+
// File path
|
|
193
|
+
lines.push(' ' + s.primary('FILE'));
|
|
194
|
+
const basePath = loc === 'project'
|
|
195
|
+
? registry.getProjectDir()
|
|
196
|
+
: registry.getUserDir();
|
|
197
|
+
lines.push(s.muted(` ${basePath}/${this.item.name}.md`));
|
|
198
|
+
lines.push('');
|
|
199
|
+
// Description
|
|
200
|
+
lines.push(' ' + s.primary('DESCRIPTION'));
|
|
201
|
+
lines.push(...wrapText(this.item.description, cols - 6, ' '));
|
|
202
|
+
lines.push('');
|
|
203
|
+
// Prompt
|
|
204
|
+
if (this.item.prompt) {
|
|
205
|
+
lines.push(' ' + s.primary('PROMPT TEMPLATE'));
|
|
206
|
+
lines.push(...wrapText(this.item.prompt, cols - 6, ' '));
|
|
207
|
+
lines.push('');
|
|
208
|
+
}
|
|
209
|
+
// Footer
|
|
210
|
+
lines.push(border);
|
|
211
|
+
lines.push(` ${s.muted('q/Esc Back')}`);
|
|
212
|
+
lines.push(border);
|
|
213
|
+
return lines;
|
|
214
|
+
}
|
|
215
|
+
handleKey(data) {
|
|
216
|
+
if (isCtrlC(data)) {
|
|
217
|
+
return closeOverlay(undefined);
|
|
218
|
+
}
|
|
219
|
+
if (isEscape(data) || isClose(data)) {
|
|
220
|
+
return popScreen();
|
|
221
|
+
}
|
|
222
|
+
return stay(false);
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Minimum height for stable rendering.
|
|
226
|
+
* Covers: header(3) + name(2) + location(3) + file(3) + desc(5) + prompt(5) + footer(3) = 24
|
|
227
|
+
*/
|
|
228
|
+
getMinHeight() {
|
|
229
|
+
return 22;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
// =============================================================================
|
|
233
|
+
// Help Overlay V2 Class
|
|
234
|
+
// =============================================================================
|
|
235
|
+
/**
|
|
236
|
+
* Help overlay using the new Overlay interface.
|
|
237
|
+
* Displays available commands in a searchable, tabbed list.
|
|
238
|
+
*/
|
|
239
|
+
export class HelpOverlayV2 extends TabbedListOverlayV2 {
|
|
240
|
+
type = 'inline';
|
|
241
|
+
id = 'help-overlay-v2';
|
|
242
|
+
constructor() {
|
|
243
|
+
// Build unified items list
|
|
244
|
+
const items = [];
|
|
245
|
+
// Add built-in commands
|
|
246
|
+
const helpCommands = getHelpCommands();
|
|
247
|
+
for (let i = 0; i < helpCommands.length; i++) {
|
|
248
|
+
const cmd = helpCommands[i];
|
|
249
|
+
items.push({
|
|
250
|
+
name: cmd.name,
|
|
251
|
+
description: cmd.description,
|
|
252
|
+
type: 'builtin',
|
|
253
|
+
commandIndex: i,
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
// Add custom commands
|
|
257
|
+
const registry = getCustomCommandRegistry();
|
|
258
|
+
const customCommands = registry.getAll();
|
|
259
|
+
for (const cmd of customCommands) {
|
|
260
|
+
items.push({
|
|
261
|
+
name: `/${cmd.name}`,
|
|
262
|
+
description: cmd.description,
|
|
263
|
+
type: 'custom',
|
|
264
|
+
prompt: cmd.prompt,
|
|
265
|
+
location: cmd.location,
|
|
266
|
+
});
|
|
267
|
+
}
|
|
268
|
+
super({
|
|
269
|
+
title: VERSION,
|
|
270
|
+
tabs: TABS,
|
|
271
|
+
items,
|
|
272
|
+
pageSize: PAGE_SIZE,
|
|
273
|
+
filterByTab: (item, tabId) => {
|
|
274
|
+
if (tabId === 'all')
|
|
275
|
+
return true;
|
|
276
|
+
if (tabId === 'builtin')
|
|
277
|
+
return item.type === 'builtin';
|
|
278
|
+
if (tabId === 'custom')
|
|
279
|
+
return item.type === 'custom';
|
|
280
|
+
return true;
|
|
281
|
+
},
|
|
282
|
+
getSearchText: (item) => `${item.name} ${item.description}`,
|
|
283
|
+
renderItem: (item, isSelected, styles) => {
|
|
284
|
+
const prefix = isSelected ? styles.primary(' > ') : ' ';
|
|
285
|
+
const name = isSelected
|
|
286
|
+
? styles.primary(item.name.padEnd(20))
|
|
287
|
+
: styles.muted(item.name.padEnd(20));
|
|
288
|
+
const desc = styles.muted(item.description);
|
|
289
|
+
const badge = item.type === 'custom' ? styles.muted(' (custom)') : '';
|
|
290
|
+
return prefix + name + desc + badge;
|
|
291
|
+
},
|
|
292
|
+
footerHints: (searchMode) => {
|
|
293
|
+
if (searchMode) {
|
|
294
|
+
return 'Type to filter · ↑↓/jk Navigate · Enter Details · Esc Exit search';
|
|
295
|
+
}
|
|
296
|
+
return 'Tab Filter · ↑↓/jk · ←→/hl Pages · / Search · Enter Details · q/Esc Close';
|
|
297
|
+
},
|
|
298
|
+
emptyMessage: 'No commands available.',
|
|
299
|
+
noResultsMessage: 'No commands match the search.',
|
|
300
|
+
});
|
|
301
|
+
}
|
|
302
|
+
createDetailScreen(item) {
|
|
303
|
+
const styles = this.getStyles();
|
|
304
|
+
if (item.type === 'builtin') {
|
|
305
|
+
return new CommandDetailScreen(item, styles);
|
|
306
|
+
}
|
|
307
|
+
return new CustomCommandDetailScreen(item, styles);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Init Overlay V2
|
|
3
|
+
*
|
|
4
|
+
* Modal overlay for the /init wizard - creates new projects with structured workflow.
|
|
5
|
+
* Uses BaseOverlayV2 for TerminalUI integration.
|
|
6
|
+
*
|
|
7
|
+
* Steps:
|
|
8
|
+
* 0. Project type (new vs existing)
|
|
9
|
+
* 1. Project name
|
|
10
|
+
* 2. Description
|
|
11
|
+
* 3. Repo pattern (single vs two-repo)
|
|
12
|
+
* 4. Tech stack
|
|
13
|
+
* 5. Coding standards
|
|
14
|
+
* 6. Initialize git?
|
|
15
|
+
* 7. Track with project database?
|
|
16
|
+
* 8. Workflow mode (if tracking enabled)
|
|
17
|
+
* 9. Confirmation
|
|
18
|
+
*/
|
|
19
|
+
import { BaseOverlayV2 } from '../../base/index.js';
|
|
20
|
+
import type { RenderContext, OverlayAction, KeyEvent } from '../types.js';
|
|
21
|
+
import { type TechStack, type CodingStandards, type RepoPattern } from '../../../templates/index.js';
|
|
22
|
+
type WizardStep = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9;
|
|
23
|
+
type WorkflowMode = 'flexible' | 'guided';
|
|
24
|
+
interface InitState {
|
|
25
|
+
step: WizardStep;
|
|
26
|
+
projectType: 'new' | 'existing' | null;
|
|
27
|
+
projectName: string;
|
|
28
|
+
description: string;
|
|
29
|
+
repoPattern: RepoPattern | null;
|
|
30
|
+
techStack: TechStack | null;
|
|
31
|
+
codingStandards: CodingStandards | null;
|
|
32
|
+
initGit: boolean;
|
|
33
|
+
trackInDatabase: boolean;
|
|
34
|
+
workflowMode: WorkflowMode;
|
|
35
|
+
selectedIndex: number;
|
|
36
|
+
inputBuffer: string;
|
|
37
|
+
error: string | null;
|
|
38
|
+
isGenerating: boolean;
|
|
39
|
+
}
|
|
40
|
+
export interface InitResultV2 {
|
|
41
|
+
created: boolean;
|
|
42
|
+
projectPath?: string;
|
|
43
|
+
docsPath?: string;
|
|
44
|
+
filesCreated?: string[];
|
|
45
|
+
trackInDatabase?: boolean;
|
|
46
|
+
workflowMode?: WorkflowMode;
|
|
47
|
+
projectName?: string;
|
|
48
|
+
description?: string;
|
|
49
|
+
}
|
|
50
|
+
export declare class InitOverlayV2 extends BaseOverlayV2<InitState, InitResultV2> {
|
|
51
|
+
readonly type: "inline";
|
|
52
|
+
readonly id = "init-overlay-v2";
|
|
53
|
+
constructor();
|
|
54
|
+
protected renderContent(context: RenderContext): string[];
|
|
55
|
+
private renderGenerating;
|
|
56
|
+
private renderStepFooter;
|
|
57
|
+
private renderSelectionOption;
|
|
58
|
+
private renderStep0;
|
|
59
|
+
private renderStep1;
|
|
60
|
+
private renderStep2;
|
|
61
|
+
private renderStep3;
|
|
62
|
+
private renderStep4;
|
|
63
|
+
private renderStep5;
|
|
64
|
+
private renderStep6;
|
|
65
|
+
private renderStep7;
|
|
66
|
+
private renderStep8;
|
|
67
|
+
private renderStep9;
|
|
68
|
+
handleKey(key: KeyEvent): OverlayAction<InitResultV2> | Promise<OverlayAction<InitResultV2>>;
|
|
69
|
+
private handleSelectionKey;
|
|
70
|
+
private handleSelectionEnter;
|
|
71
|
+
private handleInputKey;
|
|
72
|
+
private nextStep;
|
|
73
|
+
private prevStep;
|
|
74
|
+
private validateInput;
|
|
75
|
+
getCloseSummary(result: InitResultV2): string | null;
|
|
76
|
+
}
|
|
77
|
+
export {};
|