@yeshwanthyk/coding-agent 0.3.0 → 0.3.2
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 +8 -6
- package/dist/adapters/acp/index.d.ts +10 -0
- package/dist/adapters/acp/index.d.ts.map +1 -0
- package/dist/adapters/acp/index.js +250 -0
- package/dist/adapters/acp/index.js.map +1 -0
- package/dist/adapters/acp/protocol.d.ts +171 -0
- package/dist/adapters/acp/protocol.d.ts.map +1 -0
- package/dist/adapters/acp/protocol.js +25 -0
- package/dist/adapters/acp/protocol.js.map +1 -0
- package/dist/adapters/acp/session.d.ts +33 -0
- package/dist/adapters/acp/session.d.ts.map +1 -0
- package/dist/adapters/acp/session.js +216 -0
- package/dist/adapters/acp/session.js.map +1 -0
- package/dist/adapters/acp/updates.d.ts +17 -0
- package/dist/adapters/acp/updates.d.ts.map +1 -0
- package/dist/adapters/acp/updates.js +62 -0
- package/dist/adapters/acp/updates.js.map +1 -0
- package/dist/adapters/cli/headless.d.ts +7 -0
- package/dist/adapters/cli/headless.d.ts.map +1 -0
- package/dist/adapters/cli/headless.js +93 -0
- package/dist/adapters/cli/headless.js.map +1 -0
- package/dist/adapters/cli/validate.d.ts +3 -0
- package/dist/adapters/cli/validate.d.ts.map +1 -0
- package/dist/adapters/cli/validate.js +40 -0
- package/dist/adapters/cli/validate.js.map +1 -0
- package/dist/adapters/tui/app.d.ts +8 -0
- package/dist/adapters/tui/app.d.ts.map +1 -0
- package/dist/adapters/tui/app.jsx +25 -0
- package/dist/adapters/tui/app.jsx.map +1 -0
- package/dist/agent-events.d.ts +63 -0
- package/dist/agent-events.d.ts.map +1 -0
- package/dist/agent-events.js +510 -0
- package/dist/agent-events.js.map +1 -0
- package/dist/args.d.ts +18 -0
- package/dist/args.d.ts.map +1 -0
- package/dist/args.js +87 -0
- package/dist/args.js.map +1 -0
- package/dist/autocomplete-commands.d.ts +26 -0
- package/dist/autocomplete-commands.d.ts.map +1 -0
- package/dist/autocomplete-commands.js +82 -0
- package/dist/autocomplete-commands.js.map +1 -0
- package/dist/commands.d.ts +10 -0
- package/dist/commands.d.ts.map +1 -0
- package/dist/commands.js +17 -0
- package/dist/commands.js.map +1 -0
- package/dist/compact-handler.d.ts +42 -0
- package/dist/compact-handler.d.ts.map +1 -0
- package/dist/compact-handler.js +211 -0
- package/dist/compact-handler.js.map +1 -0
- package/dist/components/Footer.d.ts +9 -0
- package/dist/components/Footer.d.ts.map +1 -0
- package/dist/components/Footer.jsx +36 -0
- package/dist/components/Footer.jsx.map +1 -0
- package/dist/components/Header.d.ts +23 -0
- package/dist/components/Header.d.ts.map +1 -0
- package/dist/components/Header.jsx +174 -0
- package/dist/components/Header.jsx.map +1 -0
- package/dist/components/MessageList.d.ts +19 -0
- package/dist/components/MessageList.d.ts.map +1 -0
- package/dist/components/MessageList.jsx +237 -0
- package/dist/components/MessageList.jsx.map +1 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -0
- package/dist/domain/commands/builtin/clear.d.ts +3 -0
- package/dist/domain/commands/builtin/clear.d.ts.map +1 -0
- package/dist/domain/commands/builtin/clear.js +13 -0
- package/dist/domain/commands/builtin/clear.js.map +1 -0
- package/dist/domain/commands/builtin/compact.d.ts +3 -0
- package/dist/domain/commands/builtin/compact.d.ts.map +1 -0
- package/dist/domain/commands/builtin/compact.js +84 -0
- package/dist/domain/commands/builtin/compact.js.map +1 -0
- package/dist/domain/commands/builtin/conceal.d.ts +3 -0
- package/dist/domain/commands/builtin/conceal.d.ts.map +1 -0
- package/dist/domain/commands/builtin/conceal.js +8 -0
- package/dist/domain/commands/builtin/conceal.js.map +1 -0
- package/dist/domain/commands/builtin/diffwrap.d.ts +3 -0
- package/dist/domain/commands/builtin/diffwrap.d.ts.map +1 -0
- package/dist/domain/commands/builtin/diffwrap.js +8 -0
- package/dist/domain/commands/builtin/diffwrap.js.map +1 -0
- package/dist/domain/commands/builtin/editor.d.ts +3 -0
- package/dist/domain/commands/builtin/editor.d.ts.map +1 -0
- package/dist/domain/commands/builtin/editor.js +22 -0
- package/dist/domain/commands/builtin/editor.js.map +1 -0
- package/dist/domain/commands/builtin/exit.d.ts +3 -0
- package/dist/domain/commands/builtin/exit.d.ts.map +1 -0
- package/dist/domain/commands/builtin/exit.js +14 -0
- package/dist/domain/commands/builtin/exit.js.map +1 -0
- package/dist/domain/commands/builtin/followup.d.ts +3 -0
- package/dist/domain/commands/builtin/followup.d.ts.map +1 -0
- package/dist/domain/commands/builtin/followup.js +20 -0
- package/dist/domain/commands/builtin/followup.js.map +1 -0
- package/dist/domain/commands/builtin/index.d.ts +2 -0
- package/dist/domain/commands/builtin/index.d.ts.map +1 -0
- package/dist/domain/commands/builtin/index.js +29 -0
- package/dist/domain/commands/builtin/index.js.map +1 -0
- package/dist/domain/commands/builtin/login.d.ts +3 -0
- package/dist/domain/commands/builtin/login.d.ts.map +1 -0
- package/dist/domain/commands/builtin/login.js +92 -0
- package/dist/domain/commands/builtin/login.js.map +1 -0
- package/dist/domain/commands/builtin/model.d.ts +3 -0
- package/dist/domain/commands/builtin/model.d.ts.map +1 -0
- package/dist/domain/commands/builtin/model.js +53 -0
- package/dist/domain/commands/builtin/model.js.map +1 -0
- package/dist/domain/commands/builtin/status.d.ts +3 -0
- package/dist/domain/commands/builtin/status.d.ts.map +1 -0
- package/dist/domain/commands/builtin/status.js +30 -0
- package/dist/domain/commands/builtin/status.js.map +1 -0
- package/dist/domain/commands/builtin/steer.d.ts +3 -0
- package/dist/domain/commands/builtin/steer.d.ts.map +1 -0
- package/dist/domain/commands/builtin/steer.js +20 -0
- package/dist/domain/commands/builtin/steer.js.map +1 -0
- package/dist/domain/commands/builtin/theme.d.ts +3 -0
- package/dist/domain/commands/builtin/theme.d.ts.map +1 -0
- package/dist/domain/commands/builtin/theme.js +19 -0
- package/dist/domain/commands/builtin/theme.js.map +1 -0
- package/dist/domain/commands/builtin/thinking.d.ts +3 -0
- package/dist/domain/commands/builtin/thinking.d.ts.map +1 -0
- package/dist/domain/commands/builtin/thinking.js +16 -0
- package/dist/domain/commands/builtin/thinking.js.map +1 -0
- package/dist/domain/commands/helpers.d.ts +7 -0
- package/dist/domain/commands/helpers.d.ts.map +1 -0
- package/dist/domain/commands/helpers.js +34 -0
- package/dist/domain/commands/helpers.js.map +1 -0
- package/dist/domain/commands/registry.d.ts +10 -0
- package/dist/domain/commands/registry.d.ts.map +1 -0
- package/dist/domain/commands/registry.js +36 -0
- package/dist/domain/commands/registry.js.map +1 -0
- package/dist/domain/commands/types.d.ts +62 -0
- package/dist/domain/commands/types.d.ts.map +1 -0
- package/dist/domain/commands/types.js +2 -0
- package/dist/domain/commands/types.js.map +1 -0
- package/dist/domain/messaging/content.d.ts +37 -0
- package/dist/domain/messaging/content.d.ts.map +1 -0
- package/dist/domain/messaging/content.js +103 -0
- package/dist/domain/messaging/content.js.map +1 -0
- package/dist/editor.d.ts +26 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/editor.js +81 -0
- package/dist/editor.js.map +1 -0
- package/dist/extensibility/schema.d.ts +2 -0
- package/dist/extensibility/schema.d.ts.map +1 -0
- package/{src/extensibility/schema.ts → dist/extensibility/schema.js} +2 -1
- package/dist/extensibility/schema.js.map +1 -0
- package/dist/extensibility/validation.d.ts +2 -0
- package/dist/extensibility/validation.d.ts.map +1 -0
- package/{src/extensibility/validation.ts → dist/extensibility/validation.js} +2 -1
- package/dist/extensibility/validation.js.map +1 -0
- package/dist/hooks/index.d.ts +2 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useAgentEvents.d.ts +8 -0
- package/dist/hooks/useAgentEvents.d.ts.map +1 -0
- package/dist/hooks/useAgentEvents.js +22 -0
- package/dist/hooks/useAgentEvents.js.map +1 -0
- package/dist/hooks/useEditorBridge.d.ts +20 -0
- package/dist/hooks/useEditorBridge.d.ts.map +1 -0
- package/dist/hooks/useEditorBridge.js +80 -0
- package/dist/hooks/useEditorBridge.js.map +1 -0
- package/dist/hooks/useGitStatus.d.ts +2 -0
- package/dist/hooks/useGitStatus.d.ts.map +1 -0
- package/dist/hooks/useGitStatus.js +26 -0
- package/dist/hooks/useGitStatus.js.map +1 -0
- package/dist/hooks/usePromptQueue.d.ts +2 -0
- package/dist/hooks/usePromptQueue.d.ts.map +1 -0
- package/dist/hooks/usePromptQueue.js +2 -0
- package/dist/hooks/usePromptQueue.js.map +1 -0
- package/dist/hooks/useSessionController.d.ts +2 -0
- package/dist/hooks/useSessionController.d.ts.map +1 -0
- package/dist/hooks/useSessionController.js +2 -0
- package/dist/hooks/useSessionController.js.map +1 -0
- package/dist/hooks/useSpinner.d.ts +4 -0
- package/dist/hooks/useSpinner.d.ts.map +1 -0
- package/dist/hooks/useSpinner.js +25 -0
- package/dist/hooks/useSpinner.js.map +1 -0
- package/dist/hooks/useToastManager.d.ts +6 -0
- package/dist/hooks/useToastManager.d.ts.map +1 -0
- package/dist/hooks/useToastManager.js +22 -0
- package/dist/hooks/useToastManager.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +156 -0
- package/dist/index.js.map +1 -0
- package/dist/keyboard-handler.d.ts +30 -0
- package/dist/keyboard-handler.d.ts.map +1 -0
- package/dist/keyboard-handler.js +96 -0
- package/dist/keyboard-handler.js.map +1 -0
- package/dist/profiler.d.ts +2 -0
- package/dist/profiler.d.ts.map +1 -0
- package/dist/profiler.js +41 -0
- package/dist/profiler.js.map +1 -0
- package/dist/runtime/context.d.ts +8 -0
- package/dist/runtime/context.d.ts.map +1 -0
- package/dist/runtime/context.jsx +11 -0
- package/dist/runtime/context.jsx.map +1 -0
- package/dist/runtime/factory.d.ts +12 -0
- package/dist/runtime/factory.d.ts.map +1 -0
- package/dist/runtime/factory.js +37 -0
- package/dist/runtime/factory.js.map +1 -0
- package/dist/runtime/git/git-info.d.ts +3 -0
- package/dist/runtime/git/git-info.d.ts.map +1 -0
- package/dist/runtime/git/git-info.js +29 -0
- package/dist/runtime/git/git-info.js.map +1 -0
- package/dist/runtime/session/session-controller.d.ts +48 -0
- package/dist/runtime/session/session-controller.d.ts.map +1 -0
- package/dist/runtime/session/session-controller.js +159 -0
- package/dist/runtime/session/session-controller.js.map +1 -0
- package/dist/session-manager.d.ts +2 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +2 -0
- package/dist/session-manager.js.map +1 -0
- package/dist/session-picker.d.ts +6 -0
- package/dist/session-picker.d.ts.map +1 -0
- package/dist/session-picker.jsx +96 -0
- package/dist/session-picker.jsx.map +1 -0
- package/dist/shell-runner.d.ts +21 -0
- package/dist/shell-runner.d.ts.map +1 -0
- package/dist/shell-runner.js +106 -0
- package/dist/shell-runner.js.map +1 -0
- package/dist/syntax-highlighting.d.ts +4 -0
- package/dist/syntax-highlighting.d.ts.map +1 -0
- package/dist/syntax-highlighting.js +108 -0
- package/dist/syntax-highlighting.js.map +1 -0
- package/dist/theme-names.d.ts +7 -0
- package/dist/theme-names.d.ts.map +1 -0
- package/dist/theme-names.js +38 -0
- package/dist/theme-names.js.map +1 -0
- package/dist/tool-ui-contracts.d.ts +30 -0
- package/dist/tool-ui-contracts.d.ts.map +1 -0
- package/dist/tool-ui-contracts.js +53 -0
- package/dist/tool-ui-contracts.js.map +1 -0
- package/dist/tui-open-rendering.d.ts +37 -0
- package/dist/tui-open-rendering.d.ts.map +1 -0
- package/dist/tui-open-rendering.jsx +462 -0
- package/dist/tui-open-rendering.jsx.map +1 -0
- package/dist/types.d.ts +117 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/ui/app-shell/TuiApp.d.ts +6 -0
- package/dist/ui/app-shell/TuiApp.d.ts.map +1 -0
- package/dist/ui/app-shell/TuiApp.jsx +480 -0
- package/dist/ui/app-shell/TuiApp.jsx.map +1 -0
- package/dist/ui/clipboard/osc52.d.ts +2 -0
- package/dist/ui/clipboard/osc52.d.ts.map +1 -0
- package/dist/ui/clipboard/osc52.js +19 -0
- package/dist/ui/clipboard/osc52.js.map +1 -0
- package/dist/ui/components/modals/ConfirmModal.d.ts +8 -0
- package/dist/ui/components/modals/ConfirmModal.d.ts.map +1 -0
- package/dist/ui/components/modals/ConfirmModal.jsx +39 -0
- package/dist/ui/components/modals/ConfirmModal.jsx.map +1 -0
- package/dist/ui/components/modals/EditorModal.d.ts +8 -0
- package/dist/ui/components/modals/EditorModal.d.ts.map +1 -0
- package/dist/ui/components/modals/EditorModal.jsx +23 -0
- package/dist/ui/components/modals/EditorModal.jsx.map +1 -0
- package/dist/ui/components/modals/InputModal.d.ts +8 -0
- package/dist/ui/components/modals/InputModal.d.ts.map +1 -0
- package/dist/ui/components/modals/InputModal.jsx +15 -0
- package/dist/ui/components/modals/InputModal.jsx.map +1 -0
- package/dist/ui/components/modals/ModalContainer.d.ts +8 -0
- package/dist/ui/components/modals/ModalContainer.d.ts.map +1 -0
- package/dist/ui/components/modals/ModalContainer.jsx +34 -0
- package/dist/ui/components/modals/ModalContainer.jsx.map +1 -0
- package/dist/ui/components/modals/SelectModal.d.ts +8 -0
- package/dist/ui/components/modals/SelectModal.d.ts.map +1 -0
- package/dist/ui/components/modals/SelectModal.jsx +32 -0
- package/dist/ui/components/modals/SelectModal.jsx.map +1 -0
- package/{src/ui/components/modals/index.ts → dist/ui/components/modals/index.d.ts} +5 -4
- package/dist/ui/components/modals/index.d.ts.map +1 -0
- package/dist/ui/components/modals/index.js +5 -0
- package/dist/ui/components/modals/index.js.map +1 -0
- package/dist/ui/features/composer/Composer.d.ts +16 -0
- package/dist/ui/features/composer/Composer.d.ts.map +1 -0
- package/dist/ui/features/composer/Composer.jsx +39 -0
- package/dist/ui/features/composer/Composer.jsx.map +1 -0
- package/dist/ui/features/composer/SlashCommandHandler.d.ts +14 -0
- package/dist/ui/features/composer/SlashCommandHandler.d.ts.map +1 -0
- package/dist/ui/features/composer/SlashCommandHandler.js +43 -0
- package/dist/ui/features/composer/SlashCommandHandler.js.map +1 -0
- package/dist/ui/features/composer/keyboard.d.ts +3 -0
- package/dist/ui/features/composer/keyboard.d.ts.map +1 -0
- package/dist/ui/features/composer/keyboard.js +3 -0
- package/dist/ui/features/composer/keyboard.js.map +1 -0
- package/dist/ui/features/main-view/MainView.d.ts +52 -0
- package/dist/ui/features/main-view/MainView.d.ts.map +1 -0
- package/dist/ui/features/main-view/MainView.jsx +269 -0
- package/dist/ui/features/main-view/MainView.jsx.map +1 -0
- package/dist/ui/features/message-pane/MessagePane.d.ts +15 -0
- package/dist/ui/features/message-pane/MessagePane.d.ts.map +1 -0
- package/dist/ui/features/message-pane/MessagePane.jsx +7 -0
- package/dist/ui/features/message-pane/MessagePane.jsx.map +1 -0
- package/dist/ui/hooks/useModals.d.ts +35 -0
- package/dist/ui/hooks/useModals.d.ts.map +1 -0
- package/dist/ui/hooks/useModals.js +36 -0
- package/dist/ui/hooks/useModals.js.map +1 -0
- package/dist/ui/state/app-store.d.ts +42 -0
- package/dist/ui/state/app-store.d.ts.map +1 -0
- package/dist/ui/state/app-store.js +28 -0
- package/dist/ui/state/app-store.js.map +1 -0
- package/dist/utils.d.ts +3 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +3 -0
- package/dist/utils.js.map +1 -0
- package/package.json +19 -6
- package/src/adapters/acp/index.ts +0 -305
- package/src/adapters/acp/protocol.ts +0 -191
- package/src/adapters/acp/session.ts +0 -289
- package/src/adapters/acp/updates.ts +0 -96
- package/src/adapters/cli/headless.ts +0 -112
- package/src/adapters/cli/validate.ts +0 -50
- package/src/adapters/tui/app.tsx +0 -39
- package/src/agent-events.ts +0 -671
- package/src/args.ts +0 -102
- package/src/autocomplete-commands.ts +0 -102
- package/src/commands.ts +0 -23
- package/src/compact-handler.ts +0 -272
- package/src/components/Footer.tsx +0 -49
- package/src/components/Header.tsx +0 -218
- package/src/components/MessageList.tsx +0 -380
- package/src/config.ts +0 -1
- package/src/domain/commands/builtin/clear.ts +0 -14
- package/src/domain/commands/builtin/compact.ts +0 -96
- package/src/domain/commands/builtin/conceal.ts +0 -9
- package/src/domain/commands/builtin/diffwrap.ts +0 -9
- package/src/domain/commands/builtin/editor.ts +0 -24
- package/src/domain/commands/builtin/exit.ts +0 -14
- package/src/domain/commands/builtin/followup.ts +0 -24
- package/src/domain/commands/builtin/index.ts +0 -29
- package/src/domain/commands/builtin/login.ts +0 -118
- package/src/domain/commands/builtin/model.ts +0 -66
- package/src/domain/commands/builtin/status.ts +0 -32
- package/src/domain/commands/builtin/steer.ts +0 -24
- package/src/domain/commands/builtin/theme.ts +0 -23
- package/src/domain/commands/builtin/thinking.ts +0 -16
- package/src/domain/commands/helpers.ts +0 -41
- package/src/domain/commands/registry.ts +0 -42
- package/src/domain/commands/types.ts +0 -69
- package/src/domain/messaging/content.ts +0 -117
- package/src/editor.ts +0 -103
- package/src/hooks/index.ts +0 -1
- package/src/hooks/useAgentEvents.ts +0 -28
- package/src/hooks/useEditorBridge.ts +0 -101
- package/src/hooks/useGitStatus.ts +0 -28
- package/src/hooks/usePromptQueue.ts +0 -7
- package/src/hooks/useSessionController.ts +0 -5
- package/src/hooks/useSpinner.ts +0 -28
- package/src/hooks/useToastManager.ts +0 -26
- package/src/index.ts +0 -188
- package/src/keyboard-handler.ts +0 -134
- package/src/profiler.ts +0 -40
- package/src/runtime/context.tsx +0 -16
- package/src/runtime/factory.ts +0 -63
- package/src/runtime/git/git-info.ts +0 -25
- package/src/runtime/session/session-controller.ts +0 -208
- package/src/session-manager.ts +0 -1
- package/src/session-picker.tsx +0 -134
- package/src/shell-runner.ts +0 -134
- package/src/syntax-highlighting.ts +0 -114
- package/src/theme-names.ts +0 -37
- package/src/tool-ui-contracts.ts +0 -77
- package/src/tui-open-rendering.tsx +0 -565
- package/src/types.ts +0 -89
- package/src/ui/app-shell/TuiApp.tsx +0 -586
- package/src/ui/clipboard/osc52.ts +0 -18
- package/src/ui/components/modals/ConfirmModal.tsx +0 -52
- package/src/ui/components/modals/EditorModal.tsx +0 -39
- package/src/ui/components/modals/InputModal.tsx +0 -30
- package/src/ui/components/modals/ModalContainer.tsx +0 -67
- package/src/ui/components/modals/SelectModal.tsx +0 -48
- package/src/ui/features/composer/Composer.tsx +0 -73
- package/src/ui/features/composer/SlashCommandHandler.ts +0 -58
- package/src/ui/features/composer/keyboard.ts +0 -3
- package/src/ui/features/main-view/MainView.tsx +0 -367
- package/src/ui/features/message-pane/MessagePane.tsx +0 -34
- package/src/ui/hooks/useModals.ts +0 -74
- package/src/ui/state/app-store.ts +0 -67
- package/src/utils.ts +0 -14
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"osc52.d.ts","sourceRoot":"","sources":["../../../src/ui/clipboard/osc52.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,IAe9C,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { spawnSync } from "child_process";
|
|
2
|
+
export const copyToClipboard = (text) => {
|
|
3
|
+
const base64 = Buffer.from(text).toString("base64");
|
|
4
|
+
if (process.env["TMUX"]) {
|
|
5
|
+
process.stdout.write(`\x1bPtmux;\x1b\x1b]52;c;${base64}\x07\x1b\\`);
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
process.stdout.write(`\x1b]52;c;${base64}\x07`);
|
|
9
|
+
}
|
|
10
|
+
if (process.platform === "darwin") {
|
|
11
|
+
try {
|
|
12
|
+
spawnSync("pbcopy", { input: text, encoding: "utf-8" });
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
// Ignore clipboard failures on non-macOS systems
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=osc52.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"osc52.js","sourceRoot":"","sources":["../../../src/ui/clipboard/osc52.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAEzC,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,IAAY,EAAQ,EAAE;IACrD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IACnD,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,MAAM,YAAY,CAAC,CAAA;IACpE,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,MAAM,MAAM,CAAC,CAAA;IAChD,CAAC;IAED,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,CAAC;YACJ,SAAS,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAA;QACxD,CAAC;QAAC,MAAM,CAAC;YACR,iDAAiD;QAClD,CAAC;IACF,CAAC;AACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { JSX } from "solid-js";
|
|
2
|
+
export interface ConfirmModalProps {
|
|
3
|
+
title: string;
|
|
4
|
+
message: string;
|
|
5
|
+
onConfirm: (confirmed: boolean) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function ConfirmModal(props: ConfirmModalProps): JSX.Element;
|
|
8
|
+
//# sourceMappingURL=ConfirmModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfirmModal.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/modals/ConfirmModal.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,WAAW,iBAAiB;IACjC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,GAAG,CAAC,OAAO,CAwClE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { createSignal } from "solid-js";
|
|
2
|
+
import { useKeyboard } from "@opentui/solid";
|
|
3
|
+
import { Dialog, useTheme } from "@yeshwanthyk/open-tui";
|
|
4
|
+
export function ConfirmModal(props) {
|
|
5
|
+
const { theme } = useTheme();
|
|
6
|
+
const [selected, setSelected] = createSignal("no");
|
|
7
|
+
useKeyboard((e) => {
|
|
8
|
+
if (e.name === "left" || e.name === "h") {
|
|
9
|
+
setSelected("yes");
|
|
10
|
+
}
|
|
11
|
+
else if (e.name === "right" || e.name === "l") {
|
|
12
|
+
setSelected("no");
|
|
13
|
+
}
|
|
14
|
+
else if (e.name === "y") {
|
|
15
|
+
props.onConfirm(true);
|
|
16
|
+
}
|
|
17
|
+
else if (e.name === "n" || e.name === "escape") {
|
|
18
|
+
props.onConfirm(false);
|
|
19
|
+
}
|
|
20
|
+
else if (e.name === "return") {
|
|
21
|
+
props.onConfirm(selected() === "yes");
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
return (<Dialog open={true} title={props.title} closeOnOverlayClick={false}>
|
|
25
|
+
<text fg={theme.text}>{props.message}</text>
|
|
26
|
+
<box height={1}/>
|
|
27
|
+
<box flexDirection="row" gap={2}>
|
|
28
|
+
<text fg={selected() === "yes" ? theme.selectionFg : theme.text} bg={selected() === "yes" ? theme.selectionBg : undefined}>
|
|
29
|
+
{" [Y]es "}
|
|
30
|
+
</text>
|
|
31
|
+
<text fg={selected() === "no" ? theme.selectionFg : theme.text} bg={selected() === "no" ? theme.selectionBg : undefined}>
|
|
32
|
+
{" [N]o "}
|
|
33
|
+
</text>
|
|
34
|
+
</box>
|
|
35
|
+
<box height={1}/>
|
|
36
|
+
<text fg={theme.textMuted}>←/→ or y/n to select • Enter to confirm • Esc to cancel</text>
|
|
37
|
+
</Dialog>);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=ConfirmModal.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfirmModal.jsx","sourceRoot":"","sources":["../../../../src/ui/components/modals/ConfirmModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAA;AASxD,MAAM,UAAU,YAAY,CAAC,KAAwB;IACpD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC5B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,YAAY,CAAe,IAAI,CAAC,CAAA;IAEhE,WAAW,CAAC,CAAC,CAAmB,EAAE,EAAE;QACnC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YACzC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YACjD,WAAW,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,EAAE,CAAC;YAC3B,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QACtB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAClD,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,CAAA;QACtC,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,OAAO,CACN,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAClE;GAAA,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,CAC3C;GAAA,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACf;GAAA,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC/B;IAAA,CAAC,IAAI,CACJ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAC1D,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAEzD;KAAA,CAAC,SAAS,CACX;IAAA,EAAE,IAAI,CACN;IAAA,CAAC,IAAI,CACJ,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CACzD,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAExD;KAAA,CAAC,QAAQ,CACV;IAAA,EAAE,IAAI,CACP;GAAA,EAAE,GAAG,CACL;GAAA,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACf;GAAA,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,uDAAuD,EAAE,IAAI,CACzF;EAAA,EAAE,MAAM,CAAC,CACT,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { JSX } from "solid-js";
|
|
2
|
+
export interface EditorModalProps {
|
|
3
|
+
title: string;
|
|
4
|
+
initialText?: string;
|
|
5
|
+
onSubmit: (value: string | undefined) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function EditorModal(props: EditorModalProps): JSX.Element;
|
|
8
|
+
//# sourceMappingURL=EditorModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditorModal.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/modals/EditorModal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;CAC7C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CA4BhE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { useKeyboard } from "@opentui/solid";
|
|
2
|
+
import { Dialog, Editor, useTheme } from "@yeshwanthyk/open-tui";
|
|
3
|
+
export function EditorModal(props) {
|
|
4
|
+
const { theme } = useTheme();
|
|
5
|
+
let editorRef;
|
|
6
|
+
useKeyboard((e) => {
|
|
7
|
+
if (e.name === "escape") {
|
|
8
|
+
props.onSubmit(undefined);
|
|
9
|
+
}
|
|
10
|
+
else if (e.name === "s" && (e.ctrl || e.meta)) {
|
|
11
|
+
const text = editorRef?.getText();
|
|
12
|
+
props.onSubmit(text);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
return (<Dialog open={true} title={props.title} closeOnOverlayClick={false}>
|
|
16
|
+
<box height="80%" minHeight={10}>
|
|
17
|
+
<Editor initialValue={props.initialText} focused={true} minHeight={10} maxHeight={30} ref={(ref) => { editorRef = ref; }}/>
|
|
18
|
+
</box>
|
|
19
|
+
<box height={1}/>
|
|
20
|
+
<text fg={theme.textMuted}>Ctrl+S to save • Esc to cancel</text>
|
|
21
|
+
</Dialog>);
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=EditorModal.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditorModal.jsx","sourceRoot":"","sources":["../../../../src/ui/components/modals/EditorModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAkB,MAAM,uBAAuB,CAAA;AAShF,MAAM,UAAU,WAAW,CAAC,KAAuB;IAClD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAA;IAC5B,IAAI,SAAgC,CAAA;IAEpC,WAAW,CAAC,CAAC,CAAmD,EAAE,EAAE;QACnE,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzB,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC1B,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,CAAA;YACjC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,OAAO,CACN,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAClE;GAAA,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAC/B;IAAA,CAAC,MAAM,CACN,YAAY,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAChC,OAAO,CAAC,CAAC,IAAI,CAAC,CACd,SAAS,CAAC,CAAC,EAAE,CAAC,CACd,SAAS,CAAC,CAAC,EAAE,CAAC,CACd,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,SAAS,GAAG,GAAG,CAAA,CAAC,CAAC,CAAC,EAEpC;GAAA,EAAE,GAAG,CACL;GAAA,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACf;GAAA,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,8BAA8B,EAAE,IAAI,CAChE;EAAA,EAAE,MAAM,CAAC,CACT,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { JSX } from "solid-js";
|
|
2
|
+
export interface InputModalProps {
|
|
3
|
+
title: string;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
onSubmit: (value: string | undefined) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function InputModal(props: InputModalProps): JSX.Element;
|
|
8
|
+
//# sourceMappingURL=InputModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputModal.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/modals/InputModal.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;CAC7C;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,GAAG,CAAC,OAAO,CAmB9D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useKeyboard } from "@opentui/solid";
|
|
2
|
+
import { Dialog, Input } from "@yeshwanthyk/open-tui";
|
|
3
|
+
export function InputModal(props) {
|
|
4
|
+
useKeyboard((e) => {
|
|
5
|
+
if (e.name === "escape") {
|
|
6
|
+
props.onSubmit(undefined);
|
|
7
|
+
}
|
|
8
|
+
});
|
|
9
|
+
return (<Dialog open={true} title={props.title} closeOnOverlayClick={false}>
|
|
10
|
+
<Input placeholder={props.placeholder} focused={true} onSubmit={(value) => props.onSubmit(value || undefined)} onEscape={() => props.onSubmit(undefined)}/>
|
|
11
|
+
<box height={1}/>
|
|
12
|
+
<text>Enter to submit • Esc to cancel</text>
|
|
13
|
+
</Dialog>);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=InputModal.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputModal.jsx","sourceRoot":"","sources":["../../../../src/ui/components/modals/InputModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAA;AASrD,MAAM,UAAU,UAAU,CAAC,KAAsB;IAChD,WAAW,CAAC,CAAC,CAAmB,EAAE,EAAE;QACnC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzB,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC1B,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,OAAO,CACN,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAClE;GAAA,CAAC,KAAK,CACL,WAAW,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAC/B,OAAO,CAAC,CAAC,IAAI,CAAC,CACd,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC,CACxD,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAE3C;GAAA,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACf;GAAA,CAAC,IAAI,CAAC,+BAA+B,EAAE,IAAI,CAC5C;EAAA,EAAE,MAAM,CAAC,CACT,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ModalState } from "../../hooks/useModals.js";
|
|
2
|
+
import type { JSX } from "solid-js";
|
|
3
|
+
export interface ModalContainerProps {
|
|
4
|
+
modalState: ModalState;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function ModalContainer(props: ModalContainerProps): JSX.Element;
|
|
8
|
+
//# sourceMappingURL=ModalContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalContainer.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/modals/ModalContainer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAK1D,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAA;AAEnC,MAAM,WAAW,mBAAmB;IACnC,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,MAAM,IAAI,CAAA;CACnB;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAqDtE"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Match, Switch } from "solid-js";
|
|
2
|
+
import { SelectModal } from "./SelectModal.js";
|
|
3
|
+
import { InputModal } from "./InputModal.js";
|
|
4
|
+
import { ConfirmModal } from "./ConfirmModal.js";
|
|
5
|
+
import { EditorModal } from "./EditorModal.js";
|
|
6
|
+
export function ModalContainer(props) {
|
|
7
|
+
return (<Switch>
|
|
8
|
+
<Match when={props.modalState?.type === "select" && props.modalState}>
|
|
9
|
+
{(state) => (<SelectModal title={state().title} options={state().options} onSelect={(value) => {
|
|
10
|
+
state().resolve(value);
|
|
11
|
+
props.onClose();
|
|
12
|
+
}}/>)}
|
|
13
|
+
</Match>
|
|
14
|
+
<Match when={props.modalState?.type === "input" && props.modalState}>
|
|
15
|
+
{(state) => (<InputModal title={state().title} placeholder={state().placeholder} onSubmit={(value) => {
|
|
16
|
+
state().resolve(value);
|
|
17
|
+
props.onClose();
|
|
18
|
+
}}/>)}
|
|
19
|
+
</Match>
|
|
20
|
+
<Match when={props.modalState?.type === "confirm" && props.modalState}>
|
|
21
|
+
{(state) => (<ConfirmModal title={state().title} message={state().message} onConfirm={(confirmed) => {
|
|
22
|
+
state().resolve(confirmed);
|
|
23
|
+
props.onClose();
|
|
24
|
+
}}/>)}
|
|
25
|
+
</Match>
|
|
26
|
+
<Match when={props.modalState?.type === "editor" && props.modalState}>
|
|
27
|
+
{(state) => (<EditorModal title={state().title} initialText={state().initialText} onSubmit={(value) => {
|
|
28
|
+
state().resolve(value);
|
|
29
|
+
props.onClose();
|
|
30
|
+
}}/>)}
|
|
31
|
+
</Match>
|
|
32
|
+
</Switch>);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=ModalContainer.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalContainer.jsx","sourceRoot":"","sources":["../../../../src/ui/components/modals/ModalContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAQ9C,MAAM,UAAU,cAAc,CAAC,KAA0B;IACxD,OAAO,CACN,CAAC,MAAM,CACN;GAAA,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,CACpE;IAAA,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACX,CAAC,WAAW,CACX,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CACrB,OAAO,CAAC,CAAE,KAAK,EAA4B,CAAC,OAAO,CAAC,CACpD,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBAClB,KAAK,EAAmD,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACxE,KAAK,CAAC,OAAO,EAAE,CAAA;YAChB,CAAC,CAAC,EACD,CACF,CACF;GAAA,EAAE,KAAK,CACP;GAAA,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,CACnE;IAAA,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACX,CAAC,UAAU,CACV,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CACrB,WAAW,CAAC,CAAE,KAAK,EAA+B,CAAC,WAAW,CAAC,CAC/D,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBAClB,KAAK,EAAmD,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACxE,KAAK,CAAC,OAAO,EAAE,CAAA;YAChB,CAAC,CAAC,EACD,CACF,CACF;GAAA,EAAE,KAAK,CACP;GAAA,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,UAAU,CAAC,CACrE;IAAA,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACX,CAAC,YAAY,CACZ,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CACrB,OAAO,CAAC,CAAE,KAAK,EAA0B,CAAC,OAAO,CAAC,CAClD,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE;gBACvB,KAAK,EAAwC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;gBACjE,KAAK,CAAC,OAAO,EAAE,CAAA;YAChB,CAAC,CAAC,EACD,CACF,CACF;GAAA,EAAE,KAAK,CACP;GAAA,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,CACpE;IAAA,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACX,CAAC,WAAW,CACX,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CACrB,WAAW,CAAC,CAAE,KAAK,EAA+B,CAAC,WAAW,CAAC,CAC/D,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBAClB,KAAK,EAAmD,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACxE,KAAK,CAAC,OAAO,EAAE,CAAA;YAChB,CAAC,CAAC,EACD,CACF,CACF;GAAA,EAAE,KAAK,CACR;EAAA,EAAE,MAAM,CAAC,CACT,CAAA;AACF,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type JSX } from "solid-js";
|
|
2
|
+
export interface SelectModalProps {
|
|
3
|
+
title: string;
|
|
4
|
+
options: string[];
|
|
5
|
+
onSelect: (value: string | undefined) => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function SelectModal(props: SelectModalProps): JSX.Element;
|
|
8
|
+
//# sourceMappingURL=SelectModal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectModal.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/modals/SelectModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,GAAG,EAAE,MAAM,UAAU,CAAA;AAIjD,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAA;CAC7C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAqChE"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { createSignal } from "solid-js";
|
|
2
|
+
import { useKeyboard } from "@opentui/solid";
|
|
3
|
+
import { Dialog, SelectList } from "@yeshwanthyk/open-tui";
|
|
4
|
+
export function SelectModal(props) {
|
|
5
|
+
const [selectedIndex, setSelectedIndex] = createSignal(0);
|
|
6
|
+
let listRef;
|
|
7
|
+
const items = props.options.map((opt) => ({
|
|
8
|
+
value: opt,
|
|
9
|
+
label: opt,
|
|
10
|
+
}));
|
|
11
|
+
useKeyboard((e) => {
|
|
12
|
+
if (e.name === "up") {
|
|
13
|
+
listRef?.moveUp();
|
|
14
|
+
}
|
|
15
|
+
else if (e.name === "down") {
|
|
16
|
+
listRef?.moveDown();
|
|
17
|
+
}
|
|
18
|
+
else if (e.name === "return") {
|
|
19
|
+
const item = listRef?.getSelectedItem();
|
|
20
|
+
props.onSelect(item?.value);
|
|
21
|
+
}
|
|
22
|
+
else if (e.name === "escape") {
|
|
23
|
+
props.onSelect(undefined);
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
return (<Dialog open={true} title={props.title} closeOnOverlayClick={false}>
|
|
27
|
+
<SelectList items={items} selectedIndex={selectedIndex()} onSelectionChange={(_, index) => setSelectedIndex(index)} onSelect={(item) => props.onSelect(item.value)} onCancel={() => props.onSelect(undefined)} maxVisible={10} ref={(ref) => { listRef = ref; }}/>
|
|
28
|
+
<box height={1}/>
|
|
29
|
+
<text>↑/↓ navigate • Enter select • Esc cancel</text>
|
|
30
|
+
</Dialog>);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=SelectModal.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectModal.jsx","sourceRoot":"","sources":["../../../../src/ui/components/modals/SelectModal.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAY,MAAM,UAAU,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,MAAM,EAAE,UAAU,EAAuC,MAAM,uBAAuB,CAAA;AAQ/F,MAAM,UAAU,WAAW,CAAC,KAAuB;IAClD,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAA;IACzD,IAAI,OAAkC,CAAA;IAEtC,MAAM,KAAK,GAAiB,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACvD,KAAK,EAAE,GAAG;QACV,KAAK,EAAE,GAAG;KACV,CAAC,CAAC,CAAA;IAEH,WAAW,CAAC,CAAC,CAAmB,EAAE,EAAE;QACnC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,EAAE,MAAM,EAAE,CAAA;QAClB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,EAAE,QAAQ,EAAE,CAAA;QACpB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,OAAO,EAAE,eAAe,EAAE,CAAA;YACvC,KAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;QAC5B,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;QAC1B,CAAC;IACF,CAAC,CAAC,CAAA;IAEF,OAAO,CACN,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAAC,CAClE;GAAA,CAAC,UAAU,CACV,KAAK,CAAC,CAAC,KAAK,CAAC,CACb,aAAa,CAAC,CAAC,aAAa,EAAE,CAAC,CAC/B,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CACzD,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAC/C,QAAQ,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAC1C,UAAU,CAAC,CAAC,EAAE,CAAC,CACf,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,OAAO,GAAG,GAAG,CAAA,CAAC,CAAC,CAAC,EAEjC;GAAA,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACf;GAAA,CAAC,IAAI,CAAC,wCAAwC,EAAE,IAAI,CACrD;EAAA,EAAE,MAAM,CAAC,CACT,CAAA;AACF,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { SelectModal, type SelectModalProps } from "./SelectModal.js"
|
|
2
|
-
export { InputModal, type InputModalProps } from "./InputModal.js"
|
|
3
|
-
export { ConfirmModal, type ConfirmModalProps } from "./ConfirmModal.js"
|
|
4
|
-
export { EditorModal, type EditorModalProps } from "./EditorModal.js"
|
|
1
|
+
export { SelectModal, type SelectModalProps } from "./SelectModal.js";
|
|
2
|
+
export { InputModal, type InputModalProps } from "./InputModal.js";
|
|
3
|
+
export { ConfirmModal, type ConfirmModalProps } from "./ConfirmModal.js";
|
|
4
|
+
export { EditorModal, type EditorModalProps } from "./EditorModal.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/components/modals/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ui/components/modals/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAA;AACrE,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAA;AAClE,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAA;AACxE,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TextareaRenderable, type KeyEvent } from "@opentui/core";
|
|
2
|
+
import { type AutocompleteItem, type Theme } from "@yeshwanthyk/open-tui";
|
|
3
|
+
export interface ComposerProps {
|
|
4
|
+
theme: Theme;
|
|
5
|
+
isBashMode: () => boolean;
|
|
6
|
+
showAutocomplete: () => boolean;
|
|
7
|
+
autocompleteItems: () => AutocompleteItem[];
|
|
8
|
+
autocompleteIndex: () => number;
|
|
9
|
+
textareaRef: (ref: TextareaRenderable) => void;
|
|
10
|
+
onContentChange: () => void;
|
|
11
|
+
onSubmit: () => void;
|
|
12
|
+
onKeyDown: (event: KeyEvent) => void;
|
|
13
|
+
terminalWidth: () => number;
|
|
14
|
+
}
|
|
15
|
+
export declare function Composer(props: ComposerProps): any;
|
|
16
|
+
//# sourceMappingURL=Composer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Composer.d.ts","sourceRoot":"","sources":["../../../../src/ui/features/composer/Composer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,KAAK,QAAQ,EAAE,MAAM,eAAe,CAAA;AAEjE,OAAO,EAAc,KAAK,gBAAgB,EAAmB,KAAK,KAAK,EAAE,MAAM,uBAAuB,CAAA;AAEtG,MAAM,WAAW,aAAa;IAC7B,KAAK,EAAE,KAAK,CAAA;IACZ,UAAU,EAAE,MAAM,OAAO,CAAA;IACzB,gBAAgB,EAAE,MAAM,OAAO,CAAA;IAC/B,iBAAiB,EAAE,MAAM,gBAAgB,EAAE,CAAA;IAC3C,iBAAiB,EAAE,MAAM,MAAM,CAAA;IAC/B,WAAW,EAAE,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC9C,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,SAAS,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAA;IACpC,aAAa,EAAE,MAAM,MAAM,CAAA;CAC3B;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,OAuD5C"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { TextareaRenderable } from "@opentui/core";
|
|
2
|
+
import { Show } from "solid-js";
|
|
3
|
+
import { SelectList } from "@yeshwanthyk/open-tui";
|
|
4
|
+
export function Composer(props) {
|
|
5
|
+
return (<>
|
|
6
|
+
<Show when={props.showAutocomplete() && props.autocompleteItems().length > 0}>
|
|
7
|
+
<box flexDirection="column" borderColor={props.theme.border} maxHeight={15} flexShrink={0}>
|
|
8
|
+
<SelectList items={props.autocompleteItems().map((item) => ({
|
|
9
|
+
value: item.value,
|
|
10
|
+
label: item.label,
|
|
11
|
+
description: item.description,
|
|
12
|
+
}))} selectedIndex={props.autocompleteIndex()} maxVisible={12} width={Math.max(10, props.terminalWidth() - 2)}/>
|
|
13
|
+
<text fg={props.theme.textMuted}>{" "}↑↓ navigate · Tab select · Esc cancel</text>
|
|
14
|
+
</box>
|
|
15
|
+
</Show>
|
|
16
|
+
<box border={["top"]} borderColor={props.isBashMode() ? props.theme.warning : props.theme.border} paddingTop={1} flexShrink={0}>
|
|
17
|
+
<textarea ref={(r) => {
|
|
18
|
+
props.textareaRef(r);
|
|
19
|
+
}} placeholder="" backgroundColor={props.theme.background} focusedBackgroundColor={props.theme.background} textColor={props.theme.text} focusedTextColor={props.theme.text} cursorColor={props.theme.text} minHeight={1} maxHeight={6} keyBindings={[
|
|
20
|
+
{ name: "return", shift: true, action: "newline" },
|
|
21
|
+
{ name: "return", ctrl: true, action: "newline" },
|
|
22
|
+
{ name: "return", meta: true, action: "newline" },
|
|
23
|
+
{ name: "return", action: "submit" },
|
|
24
|
+
{ name: "left", action: "move-left" },
|
|
25
|
+
{ name: "right", action: "move-right" },
|
|
26
|
+
{ name: "backspace", action: "backspace" },
|
|
27
|
+
{ name: "delete", action: "delete" },
|
|
28
|
+
{ name: "a", ctrl: true, action: "line-home" },
|
|
29
|
+
{ name: "e", ctrl: true, action: "line-end" },
|
|
30
|
+
{ name: "k", ctrl: true, action: "delete-to-line-end" },
|
|
31
|
+
{ name: "u", ctrl: true, action: "delete-to-line-start" },
|
|
32
|
+
{ name: "w", ctrl: true, action: "delete-word-backward" },
|
|
33
|
+
]} onKeyDown={(event) => {
|
|
34
|
+
props.onKeyDown(event);
|
|
35
|
+
}} onContentChange={props.onContentChange} onSubmit={props.onSubmit}/>
|
|
36
|
+
</box>
|
|
37
|
+
</>);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=Composer.jsx.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Composer.jsx","sourceRoot":"","sources":["../../../../src/ui/features/composer/Composer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { CommandContext } from "../../../commands.js";
|
|
2
|
+
import { type CustomCommand } from "@yeshwanthyk/runtime-effect/extensibility/custom-commands.js";
|
|
3
|
+
export interface SlashCommandBridge {
|
|
4
|
+
commandContext: CommandContext;
|
|
5
|
+
customCommands: Map<string, CustomCommand>;
|
|
6
|
+
builtInCommandNames: Set<string>;
|
|
7
|
+
onExpand: (expanded: string) => void | Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Handles slash command processing, returning true when the command is consumed.
|
|
11
|
+
* Checks hook commands first, then built-in commands, then custom commands.
|
|
12
|
+
*/
|
|
13
|
+
export declare const handleSlashInput: (input: string, bridge: SlashCommandBridge) => Promise<boolean>;
|
|
14
|
+
//# sourceMappingURL=SlashCommandHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlashCommandHandler.d.ts","sourceRoot":"","sources":["../../../../src/ui/features/composer/SlashCommandHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,EAEN,KAAK,aAAa,EAClB,MAAM,8DAA8D,CAAA;AAErE,MAAM,WAAW,kBAAkB;IAClC,cAAc,EAAE,cAAc,CAAA;IAC9B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC1C,mBAAmB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IAChC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACpD;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAU,OAAO,MAAM,EAAE,QAAQ,kBAAkB,KAAG,OAAO,CAAC,OAAO,CAuCjG,CAAA"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { handleSlashCommand } from "../../../commands.js";
|
|
2
|
+
import { tryExpandCustomCommand, } from "@yeshwanthyk/runtime-effect/extensibility/custom-commands.js";
|
|
3
|
+
/**
|
|
4
|
+
* Handles slash command processing, returning true when the command is consumed.
|
|
5
|
+
* Checks hook commands first, then built-in commands, then custom commands.
|
|
6
|
+
*/
|
|
7
|
+
export const handleSlashInput = async (input, bridge) => {
|
|
8
|
+
const trimmed = input.trim();
|
|
9
|
+
// Parse command name and args
|
|
10
|
+
const match = trimmed.match(/^\/(\S+)(?:\s+([\s\S]*))?$/);
|
|
11
|
+
if (!match)
|
|
12
|
+
return false;
|
|
13
|
+
const cmdName = match[1];
|
|
14
|
+
const cmdArgs = match[2] ?? "";
|
|
15
|
+
// Check hook-registered commands first
|
|
16
|
+
const { hookRunner } = bridge.commandContext;
|
|
17
|
+
if (hookRunner) {
|
|
18
|
+
const hookCmd = hookRunner.getCommand(cmdName);
|
|
19
|
+
if (hookCmd) {
|
|
20
|
+
try {
|
|
21
|
+
await hookCmd.handler(cmdArgs, hookRunner.getContext());
|
|
22
|
+
}
|
|
23
|
+
catch (err) {
|
|
24
|
+
// Hook command errors are logged but don't crash
|
|
25
|
+
console.error(`Hook command error [${cmdName}]:`, err);
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
// Then check built-in commands
|
|
31
|
+
const handled = handleSlashCommand(trimmed, bridge.commandContext);
|
|
32
|
+
if (handled instanceof Promise ? await handled : handled) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
// Finally check custom commands
|
|
36
|
+
const expanded = tryExpandCustomCommand(trimmed, bridge.builtInCommandNames, bridge.customCommands);
|
|
37
|
+
if (expanded !== null) {
|
|
38
|
+
await bridge.onExpand(expanded);
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
return false;
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=SlashCommandHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlashCommandHandler.js","sourceRoot":"","sources":["../../../../src/ui/features/composer/SlashCommandHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EACN,sBAAsB,GAEtB,MAAM,8DAA8D,CAAA;AASrE;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,KAAa,EAAE,MAA0B,EAAoB,EAAE;IACrG,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAE5B,8BAA8B;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAA;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAA;IAExB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;IACzB,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IAE9B,uCAAuC;IACvC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,cAAc,CAAA;IAC5C,IAAI,UAAU,EAAE,CAAC;QAChB,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,OAAO,EAAE,CAAC;YACb,IAAI,CAAC;gBACJ,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAA;YACxD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACd,iDAAiD;gBACjD,OAAO,CAAC,KAAK,CAAC,uBAAuB,OAAO,IAAI,EAAE,GAAG,CAAC,CAAA;YACvD,CAAC;YACD,OAAO,IAAI,CAAA;QACZ,CAAC;IACF,CAAC;IAED,+BAA+B;IAC/B,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IAClE,IAAI,OAAO,YAAY,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1D,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,gCAAgC;IAChC,MAAM,QAAQ,GAAG,sBAAsB,CAAC,OAAO,EAAE,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,cAAc,CAAC,CAAA;IACnG,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAC/B,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO,KAAK,CAAA;AACb,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../../../src/ui/features/composer/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AAEhG,eAAO,MAAM,6BAA6B,GAAI,QAAQ,qBAAqB,kDAAkC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboard.js","sourceRoot":"","sources":["../../../../src/ui/features/composer/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAA8B,MAAM,8BAA8B,CAAA;AAEhG,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,MAA6B,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { ThinkingLevel } from "@yeshwanthyk/agent-core";
|
|
2
|
+
import type { KnownProvider } from "@yeshwanthyk/ai";
|
|
3
|
+
import type { LspManager } from "@yeshwanthyk/lsp";
|
|
4
|
+
import type { CustomCommand } from "@yeshwanthyk/runtime-effect/extensibility/custom-commands.js";
|
|
5
|
+
import type { ActivityState, ToolBlock, UIMessage } from "../../../types.js";
|
|
6
|
+
import type { QueueCounts } from "@yeshwanthyk/runtime-effect/session/prompt-queue.js";
|
|
7
|
+
import type { ValidationIssue } from "../../../extensibility/schema.js";
|
|
8
|
+
export interface MainViewProps {
|
|
9
|
+
validationIssues?: ValidationIssue[];
|
|
10
|
+
messages: UIMessage[];
|
|
11
|
+
toolBlocks: ToolBlock[];
|
|
12
|
+
isResponding: boolean;
|
|
13
|
+
activityState: ActivityState;
|
|
14
|
+
thinkingVisible: boolean;
|
|
15
|
+
modelId: string;
|
|
16
|
+
thinking: ThinkingLevel;
|
|
17
|
+
provider: KnownProvider;
|
|
18
|
+
contextTokens: number;
|
|
19
|
+
contextWindow: number;
|
|
20
|
+
queueCounts: QueueCounts;
|
|
21
|
+
retryStatus: string | null;
|
|
22
|
+
turnCount: number;
|
|
23
|
+
lspActive: boolean;
|
|
24
|
+
diffWrapMode: "word" | "none";
|
|
25
|
+
concealMarkdown: boolean;
|
|
26
|
+
customCommands: Map<string, CustomCommand>;
|
|
27
|
+
onSubmit: (text: string, clearFn?: () => void) => void;
|
|
28
|
+
onAbort: () => string | null;
|
|
29
|
+
onToggleThinking: () => void;
|
|
30
|
+
onCycleModel: () => void;
|
|
31
|
+
onCycleThinking: () => void;
|
|
32
|
+
exitHandlerRef: {
|
|
33
|
+
current: () => void;
|
|
34
|
+
};
|
|
35
|
+
editorOpenRef: {
|
|
36
|
+
current: () => Promise<void> | void;
|
|
37
|
+
};
|
|
38
|
+
setEditorTextRef: {
|
|
39
|
+
current: (text: string) => void;
|
|
40
|
+
};
|
|
41
|
+
getEditorTextRef: {
|
|
42
|
+
current: () => string;
|
|
43
|
+
};
|
|
44
|
+
showToastRef: {
|
|
45
|
+
current: (title: string, message: string, variant?: "info" | "warning" | "success" | "error") => void;
|
|
46
|
+
};
|
|
47
|
+
onBeforeExit?: () => Promise<void>;
|
|
48
|
+
editor?: import("../../../config.js").EditorConfig;
|
|
49
|
+
lsp: LspManager;
|
|
50
|
+
}
|
|
51
|
+
export declare function MainView(props: MainViewProps): any;
|
|
52
|
+
//# sourceMappingURL=MainView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MainView.d.ts","sourceRoot":"","sources":["../../../../src/ui/features/main-view/MainView.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAGlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8DAA8D,CAAA;AAGjG,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qDAAqD,CAAA;AAQtF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAErD,MAAM,WAAW,aAAa;IAC7B,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAA;IACpC,QAAQ,EAAE,SAAS,EAAE,CAAA;IACrB,UAAU,EAAE,SAAS,EAAE,CAAA;IACvB,YAAY,EAAE,OAAO,CAAA;IACrB,aAAa,EAAE,aAAa,CAAA;IAC5B,eAAe,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,aAAa,CAAA;IACvB,QAAQ,EAAE,aAAa,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;IACrB,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,eAAe,EAAE,OAAO,CAAA;IACxB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAC1C,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACtD,OAAO,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IAC5B,gBAAgB,EAAE,MAAM,IAAI,CAAA;IAC5B,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,cAAc,EAAE;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAA;IACvC,aAAa,EAAE;QAAE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;KAAE,CAAA;IACtD,gBAAgB,EAAE;QAAE,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;IACrD,gBAAgB,EAAE;QAAE,OAAO,EAAE,MAAM,MAAM,CAAA;KAAE,CAAA;IAC3C,YAAY,EAAE;QAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,KAAK,IAAI,CAAA;KAAE,CAAA;IACvH,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAClC,MAAM,CAAC,EAAE,OAAO,oBAAoB,EAAE,YAAY,CAAA;IAClD,GAAG,EAAE,UAAU,CAAA;CACf;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,OA+S5C"}
|