openhorse 0.1.5
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 +460 -0
- package/bin/openhorse +56 -0
- package/dist/agents/coder.d.ts +12 -0
- package/dist/agents/coder.d.ts.map +1 -0
- package/dist/agents/coder.js +48 -0
- package/dist/agents/coder.js.map +1 -0
- package/dist/agents/leader.d.ts +12 -0
- package/dist/agents/leader.d.ts.map +1 -0
- package/dist/agents/leader.js +49 -0
- package/dist/agents/leader.js.map +1 -0
- package/dist/agents/router.d.ts +59 -0
- package/dist/agents/router.d.ts.map +1 -0
- package/dist/agents/router.js +193 -0
- package/dist/agents/router.js.map +1 -0
- package/dist/cli-ink.d.ts +7 -0
- package/dist/cli-ink.d.ts.map +1 -0
- package/dist/cli-ink.js +135 -0
- package/dist/cli-ink.js.map +1 -0
- package/dist/cli.d.ts +7 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +638 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/index.d.ts +12 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +1095 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/parser.d.ts +26 -0
- package/dist/commands/parser.d.ts.map +1 -0
- package/dist/commands/parser.js +61 -0
- package/dist/commands/parser.js.map +1 -0
- package/dist/commands/types.d.ts +61 -0
- package/dist/commands/types.d.ts.map +1 -0
- package/dist/commands/types.js +32 -0
- package/dist/commands/types.js.map +1 -0
- package/dist/core/agent.d.ts +66 -0
- package/dist/core/agent.d.ts.map +1 -0
- package/dist/core/agent.js +55 -0
- package/dist/core/agent.js.map +1 -0
- package/dist/core/brain.d.ts +41 -0
- package/dist/core/brain.d.ts.map +1 -0
- package/dist/core/brain.js +92 -0
- package/dist/core/brain.js.map +1 -0
- package/dist/core/cost-tracker.d.ts +107 -0
- package/dist/core/cost-tracker.d.ts.map +1 -0
- package/dist/core/cost-tracker.js +199 -0
- package/dist/core/cost-tracker.js.map +1 -0
- package/dist/core/strategy-tracker.d.ts +61 -0
- package/dist/core/strategy-tracker.d.ts.map +1 -0
- package/dist/core/strategy-tracker.js +124 -0
- package/dist/core/strategy-tracker.js.map +1 -0
- package/dist/framework/index.d.ts +20 -0
- package/dist/framework/index.d.ts.map +1 -0
- package/dist/framework/index.js +29 -0
- package/dist/framework/index.js.map +1 -0
- package/dist/framework/prompt.d.ts +40 -0
- package/dist/framework/prompt.d.ts.map +1 -0
- package/dist/framework/prompt.js +112 -0
- package/dist/framework/prompt.js.map +1 -0
- package/dist/framework/query.d.ts +86 -0
- package/dist/framework/query.d.ts.map +1 -0
- package/dist/framework/query.js +177 -0
- package/dist/framework/query.js.map +1 -0
- package/dist/framework/store.d.ts +64 -0
- package/dist/framework/store.d.ts.map +1 -0
- package/dist/framework/store.js +78 -0
- package/dist/framework/store.js.map +1 -0
- package/dist/framework/tool-state.d.ts +22 -0
- package/dist/framework/tool-state.d.ts.map +1 -0
- package/dist/framework/tool-state.js +40 -0
- package/dist/framework/tool-state.js.map +1 -0
- package/dist/framework/tool.d.ts +88 -0
- package/dist/framework/tool.d.ts.map +1 -0
- package/dist/framework/tool.js +60 -0
- package/dist/framework/tool.js.map +1 -0
- package/dist/harness/harness.d.ts +96 -0
- package/dist/harness/harness.d.ts.map +1 -0
- package/dist/harness/harness.js +224 -0
- package/dist/harness/harness.js.map +1 -0
- package/dist/harness/safety.d.ts +89 -0
- package/dist/harness/safety.d.ts.map +1 -0
- package/dist/harness/safety.js +178 -0
- package/dist/harness/safety.js.map +1 -0
- package/dist/index.d.ts +30 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +57 -0
- package/dist/index.js.map +1 -0
- package/dist/init.d.ts +178 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +473 -0
- package/dist/init.js.map +1 -0
- package/dist/ink/bidi.d.ts +16 -0
- package/dist/ink/bidi.d.ts.map +1 -0
- package/dist/ink/bidi.js +124 -0
- package/dist/ink/bidi.js.map +1 -0
- package/dist/ink/clearTerminal.d.ts +14 -0
- package/dist/ink/clearTerminal.d.ts.map +1 -0
- package/dist/ink/clearTerminal.js +63 -0
- package/dist/ink/clearTerminal.js.map +1 -0
- package/dist/ink/colorize.d.ts +17 -0
- package/dist/ink/colorize.d.ts.map +1 -0
- package/dist/ink/colorize.js +208 -0
- package/dist/ink/colorize.js.map +1 -0
- package/dist/ink/components/App.d.ts +73 -0
- package/dist/ink/components/App.d.ts.map +1 -0
- package/dist/ink/components/App.js +646 -0
- package/dist/ink/components/App.js.map +1 -0
- package/dist/ink/components/AppContext.d.ts +12 -0
- package/dist/ink/components/AppContext.d.ts.map +1 -0
- package/dist/ink/components/AppContext.js +14 -0
- package/dist/ink/components/AppContext.js.map +1 -0
- package/dist/ink/components/Box.d.ts +44 -0
- package/dist/ink/components/Box.d.ts.map +1 -0
- package/dist/ink/components/Box.js +191 -0
- package/dist/ink/components/Box.js.map +1 -0
- package/dist/ink/components/ClockContext.d.ts +9 -0
- package/dist/ink/components/ClockContext.d.ts.map +1 -0
- package/dist/ink/components/ClockContext.js +146 -0
- package/dist/ink/components/ClockContext.js.map +1 -0
- package/dist/ink/components/CursorDeclarationContext.d.ts +23 -0
- package/dist/ink/components/CursorDeclarationContext.d.ts.map +1 -0
- package/dist/ink/components/CursorDeclarationContext.js +6 -0
- package/dist/ink/components/CursorDeclarationContext.js.map +1 -0
- package/dist/ink/components/ErrorOverview.d.ts +6 -0
- package/dist/ink/components/ErrorOverview.d.ts.map +1 -0
- package/dist/ink/components/ErrorOverview.js +27 -0
- package/dist/ink/components/ErrorOverview.js.map +1 -0
- package/dist/ink/components/Newline.d.ts +13 -0
- package/dist/ink/components/Newline.d.ts.map +1 -0
- package/dist/ink/components/Newline.js +36 -0
- package/dist/ink/components/Newline.js.map +1 -0
- package/dist/ink/components/NoSelect.d.ts +20 -0
- package/dist/ink/components/NoSelect.d.ts.map +1 -0
- package/dist/ink/components/NoSelect.js +63 -0
- package/dist/ink/components/NoSelect.js.map +1 -0
- package/dist/ink/components/RawAnsi.d.ts +17 -0
- package/dist/ink/components/RawAnsi.d.ts.map +1 -0
- package/dist/ink/components/RawAnsi.js +52 -0
- package/dist/ink/components/RawAnsi.js.map +1 -0
- package/dist/ink/components/Spacer.d.ts +6 -0
- package/dist/ink/components/Spacer.d.ts.map +1 -0
- package/dist/ink/components/Spacer.js +26 -0
- package/dist/ink/components/Spacer.js.map +1 -0
- package/dist/ink/components/StdinContext.d.ts +28 -0
- package/dist/ink/components/StdinContext.d.ts.map +1 -0
- package/dist/ink/components/StdinContext.js +19 -0
- package/dist/ink/components/StdinContext.js.map +1 -0
- package/dist/ink/components/TerminalFocusContext.d.ts +10 -0
- package/dist/ink/components/TerminalFocusContext.d.ts.map +1 -0
- package/dist/ink/components/TerminalFocusContext.js +81 -0
- package/dist/ink/components/TerminalFocusContext.js.map +1 -0
- package/dist/ink/components/TerminalSizeContext.d.ts +6 -0
- package/dist/ink/components/TerminalSizeContext.d.ts.map +1 -0
- package/dist/ink/components/TerminalSizeContext.js +6 -0
- package/dist/ink/components/TerminalSizeContext.js.map +1 -0
- package/dist/ink/components/Text.d.ts +56 -0
- package/dist/ink/components/Text.d.ts.map +1 -0
- package/dist/ink/components/Text.js +201 -0
- package/dist/ink/components/Text.js.map +1 -0
- package/dist/ink/constants.d.ts +2 -0
- package/dist/ink/constants.d.ts.map +1 -0
- package/dist/ink/constants.js +6 -0
- package/dist/ink/constants.js.map +1 -0
- package/dist/ink/devtools.d.ts +3 -0
- package/dist/ink/devtools.d.ts.map +1 -0
- package/dist/ink/devtools.js +5 -0
- package/dist/ink/devtools.js.map +1 -0
- package/dist/ink/dom.d.ts +77 -0
- package/dist/ink/dom.d.ts.map +1 -0
- package/dist/ink/dom.js +322 -0
- package/dist/ink/dom.js.map +1 -0
- package/dist/ink/events/click-event.d.ts +32 -0
- package/dist/ink/events/click-event.d.ts.map +1 -0
- package/dist/ink/events/click-event.js +30 -0
- package/dist/ink/events/click-event.js.map +1 -0
- package/dist/ink/events/dispatcher.d.ts +41 -0
- package/dist/ink/events/dispatcher.d.ts.map +1 -0
- package/dist/ink/events/dispatcher.js +181 -0
- package/dist/ink/events/dispatcher.js.map +1 -0
- package/dist/ink/events/emitter.d.ts +6 -0
- package/dist/ink/events/emitter.d.ts.map +1 -0
- package/dist/ink/events/emitter.js +36 -0
- package/dist/ink/events/emitter.js.map +1 -0
- package/dist/ink/events/event-handlers.d.ts +47 -0
- package/dist/ink/events/event-handlers.d.ts.map +1 -0
- package/dist/ink/events/event-handlers.js +34 -0
- package/dist/ink/events/event-handlers.js.map +1 -0
- package/dist/ink/events/event.d.ts +6 -0
- package/dist/ink/events/event.d.ts.map +1 -0
- package/dist/ink/events/event.js +16 -0
- package/dist/ink/events/event.js.map +1 -0
- package/dist/ink/events/focus-event.d.ts +14 -0
- package/dist/ink/events/focus-event.d.ts.map +1 -0
- package/dist/ink/events/focus-event.js +20 -0
- package/dist/ink/events/focus-event.js.map +1 -0
- package/dist/ink/events/input-event.d.ts +31 -0
- package/dist/ink/events/input-event.d.ts.map +1 -0
- package/dist/ink/events/input-event.js +163 -0
- package/dist/ink/events/input-event.js.map +1 -0
- package/dist/ink/events/keyboard-event.d.ts +20 -0
- package/dist/ink/events/keyboard-event.d.ts.map +1 -0
- package/dist/ink/events/keyboard-event.js +44 -0
- package/dist/ink/events/keyboard-event.js.map +1 -0
- package/dist/ink/events/terminal-event.d.ts +55 -0
- package/dist/ink/events/terminal-event.d.ts.map +1 -0
- package/dist/ink/events/terminal-event.js +79 -0
- package/dist/ink/events/terminal-event.js.map +1 -0
- package/dist/ink/events/terminal-focus-event.d.ts +14 -0
- package/dist/ink/events/terminal-focus-event.d.ts.map +1 -0
- package/dist/ink/events/terminal-focus-event.js +19 -0
- package/dist/ink/events/terminal-focus-event.js.map +1 -0
- package/dist/ink/focus.d.ts +44 -0
- package/dist/ink/focus.d.ts.map +1 -0
- package/dist/ink/focus.js +164 -0
- package/dist/ink/focus.js.map +1 -0
- package/dist/ink/frame.d.ts +95 -0
- package/dist/ink/frame.d.ts.map +1 -0
- package/dist/ink/frame.js +35 -0
- package/dist/ink/frame.js.map +1 -0
- package/dist/ink/get-max-width.d.ts +18 -0
- package/dist/ink/get-max-width.d.ts.map +1 -0
- package/dist/ink/get-max-width.js +26 -0
- package/dist/ink/get-max-width.js.map +1 -0
- package/dist/ink/hit-test.d.ts +34 -0
- package/dist/ink/hit-test.d.ts.map +1 -0
- package/dist/ink/hit-test.js +119 -0
- package/dist/ink/hit-test.js.map +1 -0
- package/dist/ink/hooks/use-animation-frame.d.ts +27 -0
- package/dist/ink/hooks/use-animation-frame.d.ts.map +1 -0
- package/dist/ink/hooks/use-animation-frame.js +52 -0
- package/dist/ink/hooks/use-animation-frame.js.map +1 -0
- package/dist/ink/hooks/use-app.d.ts +6 -0
- package/dist/ink/hooks/use-app.d.ts.map +1 -0
- package/dist/ink/hooks/use-app.js +13 -0
- package/dist/ink/hooks/use-app.js.map +1 -0
- package/dist/ink/hooks/use-declared-cursor.d.ts +27 -0
- package/dist/ink/hooks/use-declared-cursor.d.ts.map +1 -0
- package/dist/ink/hooks/use-declared-cursor.js +67 -0
- package/dist/ink/hooks/use-declared-cursor.js.map +1 -0
- package/dist/ink/hooks/use-input.d.ts +38 -0
- package/dist/ink/hooks/use-input.d.ts.map +1 -0
- package/dist/ink/hooks/use-input.js +86 -0
- package/dist/ink/hooks/use-input.js.map +1 -0
- package/dist/ink/hooks/use-interval.d.ts +19 -0
- package/dist/ink/hooks/use-interval.d.ts.map +1 -0
- package/dist/ink/hooks/use-interval.js +59 -0
- package/dist/ink/hooks/use-interval.js.map +1 -0
- package/dist/ink/hooks/use-search-highlight.d.ts +31 -0
- package/dist/ink/hooks/use-search-highlight.d.ts.map +1 -0
- package/dist/ink/hooks/use-search-highlight.js +39 -0
- package/dist/ink/hooks/use-search-highlight.js.map +1 -0
- package/dist/ink/hooks/use-selection.d.ts +40 -0
- package/dist/ink/hooks/use-selection.d.ts.map +1 -0
- package/dist/ink/hooks/use-selection.js +68 -0
- package/dist/ink/hooks/use-selection.js.map +1 -0
- package/dist/ink/hooks/use-stdin.d.ts +6 -0
- package/dist/ink/hooks/use-stdin.d.ts.map +1 -0
- package/dist/ink/hooks/use-stdin.js +13 -0
- package/dist/ink/hooks/use-stdin.js.map +1 -0
- package/dist/ink/hooks/use-tab-status.d.ts +14 -0
- package/dist/ink/hooks/use-tab-status.d.ts.map +1 -0
- package/dist/ink/hooks/use-tab-status.js +61 -0
- package/dist/ink/hooks/use-tab-status.js.map +1 -0
- package/dist/ink/hooks/use-terminal-focus.d.ts +11 -0
- package/dist/ink/hooks/use-terminal-focus.d.ts.map +1 -0
- package/dist/ink/hooks/use-terminal-focus.js +22 -0
- package/dist/ink/hooks/use-terminal-focus.js.map +1 -0
- package/dist/ink/hooks/use-terminal-title.d.ts +13 -0
- package/dist/ink/hooks/use-terminal-title.d.ts.map +1 -0
- package/dist/ink/hooks/use-terminal-title.js +36 -0
- package/dist/ink/hooks/use-terminal-title.js.map +1 -0
- package/dist/ink/hooks/use-terminal-viewport.d.ts +30 -0
- package/dist/ink/hooks/use-terminal-viewport.d.ts.map +1 -0
- package/dist/ink/hooks/use-terminal-viewport.js +81 -0
- package/dist/ink/hooks/use-terminal-viewport.js.map +1 -0
- package/dist/ink/index.d.ts +54 -0
- package/dist/ink/index.d.ts.map +1 -0
- package/dist/ink/index.js +111 -0
- package/dist/ink/index.js.map +1 -0
- package/dist/ink/ink.d.ts +371 -0
- package/dist/ink/ink.d.ts.map +1 -0
- package/dist/ink/ink.js +1686 -0
- package/dist/ink/ink.js.map +1 -0
- package/dist/ink/instances.d.ts +4 -0
- package/dist/ink/instances.d.ts.map +1 -0
- package/dist/ink/instances.js +10 -0
- package/dist/ink/instances.js.map +1 -0
- package/dist/ink/line-width-cache.d.ts +2 -0
- package/dist/ink/line-width-cache.d.ts.map +1 -0
- package/dist/ink/line-width-cache.js +23 -0
- package/dist/ink/line-width-cache.js.map +1 -0
- package/dist/ink/log-update.d.ts +18 -0
- package/dist/ink/log-update.d.ts.map +1 -0
- package/dist/ink/log-update.js +637 -0
- package/dist/ink/log-update.js.map +1 -0
- package/dist/ink/measure-element.d.ts +17 -0
- package/dist/ink/measure-element.d.ts.map +1 -0
- package/dist/ink/measure-element.js +11 -0
- package/dist/ink/measure-element.js.map +1 -0
- package/dist/ink/measure-text.d.ts +7 -0
- package/dist/ink/measure-text.d.ts.map +1 -0
- package/dist/ink/measure-text.js +38 -0
- package/dist/ink/measure-text.js.map +1 -0
- package/dist/ink/node-cache.d.ts +21 -0
- package/dist/ink/node-cache.d.ts.map +1 -0
- package/dist/ink/node-cache.js +36 -0
- package/dist/ink/node-cache.js.map +1 -0
- package/dist/ink/optimizer.d.ts +16 -0
- package/dist/ink/optimizer.d.ts.map +1 -0
- package/dist/ink/optimizer.js +85 -0
- package/dist/ink/optimizer.js.map +1 -0
- package/dist/ink/output.d.ts +120 -0
- package/dist/ink/output.d.ts.map +1 -0
- package/dist/ink/output.js +559 -0
- package/dist/ink/output.js.map +1 -0
- package/dist/ink/parse-keypress.d.ts +112 -0
- package/dist/ink/parse-keypress.d.ts.map +1 -0
- package/dist/ink/parse-keypress.js +719 -0
- package/dist/ink/parse-keypress.js.map +1 -0
- package/dist/ink/parse-keypress.test.d.ts +2 -0
- package/dist/ink/parse-keypress.test.d.ts.map +1 -0
- package/dist/ink/parse-keypress.test.js +37 -0
- package/dist/ink/parse-keypress.test.js.map +1 -0
- package/dist/ink/reconciler.d.ts +12 -0
- package/dist/ink/reconciler.d.ts.map +1 -0
- package/dist/ink/reconciler.js +456 -0
- package/dist/ink/reconciler.js.map +1 -0
- package/dist/ink/render-border.d.ts +25 -0
- package/dist/ink/render-border.d.ts.map +1 -0
- package/dist/ink/render-border.js +141 -0
- package/dist/ink/render-border.js.map +1 -0
- package/dist/ink/render-node-to-output.d.ts +46 -0
- package/dist/ink/render-node-to-output.d.ts.map +1 -0
- package/dist/ink/render-node-to-output.js +1257 -0
- package/dist/ink/render-node-to-output.js.map +1 -0
- package/dist/ink/render-to-screen.d.ts +47 -0
- package/dist/ink/render-to-screen.d.ts.map +1 -0
- package/dist/ink/render-to-screen.js +213 -0
- package/dist/ink/render-to-screen.js.map +1 -0
- package/dist/ink/renderer.d.ts +15 -0
- package/dist/ink/renderer.d.ts.map +1 -0
- package/dist/ink/renderer.js +169 -0
- package/dist/ink/renderer.js.map +1 -0
- package/dist/ink/root.d.ts +75 -0
- package/dist/ink/root.d.ts.map +1 -0
- package/dist/ink/root.js +89 -0
- package/dist/ink/root.js.map +1 -0
- package/dist/ink/screen.d.ts +270 -0
- package/dist/ink/screen.d.ts.map +1 -0
- package/dist/ink/screen.js +1194 -0
- package/dist/ink/screen.js.map +1 -0
- package/dist/ink/searchHighlight.d.ts +21 -0
- package/dist/ink/searchHighlight.d.ts.map +1 -0
- package/dist/ink/searchHighlight.js +82 -0
- package/dist/ink/searchHighlight.js.map +1 -0
- package/dist/ink/selection.d.ts +230 -0
- package/dist/ink/selection.d.ts.map +1 -0
- package/dist/ink/selection.js +814 -0
- package/dist/ink/selection.js.map +1 -0
- package/dist/ink/squash-text-nodes.d.ts +23 -0
- package/dist/ink/squash-text-nodes.d.ts.map +1 -0
- package/dist/ink/squash-text-nodes.js +60 -0
- package/dist/ink/squash-text-nodes.js.map +1 -0
- package/dist/ink/stringWidth.d.ts +2 -0
- package/dist/ink/stringWidth.d.ts.map +1 -0
- package/dist/ink/stringWidth.js +207 -0
- package/dist/ink/stringWidth.js.map +1 -0
- package/dist/ink/styles.d.ts +307 -0
- package/dist/ink/styles.d.ts.map +1 -0
- package/dist/ink/styles.js +302 -0
- package/dist/ink/styles.js.map +1 -0
- package/dist/ink/supports-hyperlinks.d.ts +14 -0
- package/dist/ink/supports-hyperlinks.d.ts.map +1 -0
- package/dist/ink/supports-hyperlinks.js +48 -0
- package/dist/ink/supports-hyperlinks.js.map +1 -0
- package/dist/ink/tabstops.d.ts +2 -0
- package/dist/ink/tabstops.d.ts.map +1 -0
- package/dist/ink/tabstops.js +43 -0
- package/dist/ink/tabstops.js.map +1 -0
- package/dist/ink/terminal-focus-state.d.ts +7 -0
- package/dist/ink/terminal-focus-state.d.ts.map +1 -0
- package/dist/ink/terminal-focus-state.js +43 -0
- package/dist/ink/terminal-focus-state.js.map +1 -0
- package/dist/ink/terminal-querier.d.ts +130 -0
- package/dist/ink/terminal-querier.d.ts.map +1 -0
- package/dist/ink/terminal-querier.js +184 -0
- package/dist/ink/terminal-querier.js.map +1 -0
- package/dist/ink/terminal.d.ts +56 -0
- package/dist/ink/terminal.d.ts.map +1 -0
- package/dist/ink/terminal.js +249 -0
- package/dist/ink/terminal.js.map +1 -0
- package/dist/ink/termio/csi.d.ts +166 -0
- package/dist/ink/termio/csi.d.ts.map +1 -0
- package/dist/ink/termio/csi.js +285 -0
- package/dist/ink/termio/csi.js.map +1 -0
- package/dist/ink/termio/dec.d.ts +38 -0
- package/dist/ink/termio/dec.d.ts.map +1 -0
- package/dist/ink/termio/dec.js +59 -0
- package/dist/ink/termio/dec.js.map +1 -0
- package/dist/ink/termio.d.ts +25 -0
- package/dist/ink/termio.d.ts.map +1 -0
- package/dist/ink/termio.js +32 -0
- package/dist/ink/termio.js.map +1 -0
- package/dist/ink/useTerminalNotification.d.ts +27 -0
- package/dist/ink/useTerminalNotification.d.ts.map +1 -0
- package/dist/ink/useTerminalNotification.js +62 -0
- package/dist/ink/useTerminalNotification.js.map +1 -0
- package/dist/ink/warn.d.ts +2 -0
- package/dist/ink/warn.d.ts.map +1 -0
- package/dist/ink/warn.js +14 -0
- package/dist/ink/warn.js.map +1 -0
- package/dist/ink/widest-line.d.ts +2 -0
- package/dist/ink/widest-line.d.ts.map +1 -0
- package/dist/ink/widest-line.js +18 -0
- package/dist/ink/widest-line.js.map +1 -0
- package/dist/ink/wrap-text.d.ts +3 -0
- package/dist/ink/wrap-text.d.ts.map +1 -0
- package/dist/ink/wrap-text.js +61 -0
- package/dist/ink/wrap-text.js.map +1 -0
- package/dist/ink/wrapAnsi.d.ts +8 -0
- package/dist/ink/wrapAnsi.d.ts.map +1 -0
- package/dist/ink/wrapAnsi.js +13 -0
- package/dist/ink/wrapAnsi.js.map +1 -0
- package/dist/memory/embeddings.d.ts +33 -0
- package/dist/memory/embeddings.d.ts.map +1 -0
- package/dist/memory/embeddings.js +123 -0
- package/dist/memory/embeddings.js.map +1 -0
- package/dist/memory/index.d.ts +14 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +31 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/prompts.d.ts +12 -0
- package/dist/memory/prompts.d.ts.map +1 -0
- package/dist/memory/prompts.js +117 -0
- package/dist/memory/prompts.js.map +1 -0
- package/dist/memory/semantic-search.d.ts +45 -0
- package/dist/memory/semantic-search.d.ts.map +1 -0
- package/dist/memory/semantic-search.js +112 -0
- package/dist/memory/semantic-search.js.map +1 -0
- package/dist/memory/storage.d.ts +79 -0
- package/dist/memory/storage.d.ts.map +1 -0
- package/dist/memory/storage.js +285 -0
- package/dist/memory/storage.js.map +1 -0
- package/dist/memory/store.d.ts +103 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +226 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/memory/types.d.ts +40 -0
- package/dist/memory/types.d.ts.map +1 -0
- package/dist/memory/types.js +71 -0
- package/dist/memory/types.js.map +1 -0
- package/dist/memory/validation.d.ts +28 -0
- package/dist/memory/validation.d.ts.map +1 -0
- package/dist/memory/validation.js +147 -0
- package/dist/memory/validation.js.map +1 -0
- package/dist/memory/vector-store.d.ts +49 -0
- package/dist/memory/vector-store.d.ts.map +1 -0
- package/dist/memory/vector-store.js +259 -0
- package/dist/memory/vector-store.js.map +1 -0
- package/dist/screens/REPL.d.ts +21 -0
- package/dist/screens/REPL.d.ts.map +1 -0
- package/dist/screens/REPL.js +139 -0
- package/dist/screens/REPL.js.map +1 -0
- package/dist/services/agent-runner.d.ts +68 -0
- package/dist/services/agent-runner.d.ts.map +1 -0
- package/dist/services/agent-runner.js +186 -0
- package/dist/services/agent-runner.js.map +1 -0
- package/dist/services/atomic-write.d.ts +12 -0
- package/dist/services/atomic-write.d.ts.map +1 -0
- package/dist/services/atomic-write.js +27 -0
- package/dist/services/atomic-write.js.map +1 -0
- package/dist/services/config-dir.d.ts +55 -0
- package/dist/services/config-dir.d.ts.map +1 -0
- package/dist/services/config-dir.js +136 -0
- package/dist/services/config-dir.js.map +1 -0
- package/dist/services/config.d.ts +54 -0
- package/dist/services/config.d.ts.map +1 -0
- package/dist/services/config.js +98 -0
- package/dist/services/config.js.map +1 -0
- package/dist/services/file-glob.d.ts +26 -0
- package/dist/services/file-glob.d.ts.map +1 -0
- package/dist/services/file-glob.js +134 -0
- package/dist/services/file-glob.js.map +1 -0
- package/dist/services/global-config.d.ts +109 -0
- package/dist/services/global-config.d.ts.map +1 -0
- package/dist/services/global-config.js +211 -0
- package/dist/services/global-config.js.map +1 -0
- package/dist/services/llm.d.ts +139 -0
- package/dist/services/llm.d.ts.map +1 -0
- package/dist/services/llm.js +376 -0
- package/dist/services/llm.js.map +1 -0
- package/dist/services/memory.d.ts +39 -0
- package/dist/services/memory.d.ts.map +1 -0
- package/dist/services/memory.js +88 -0
- package/dist/services/memory.js.map +1 -0
- package/dist/services/session-storage.d.ts +136 -0
- package/dist/services/session-storage.d.ts.map +1 -0
- package/dist/services/session-storage.js +304 -0
- package/dist/services/session-storage.js.map +1 -0
- package/dist/services/task-manager.d.ts +154 -0
- package/dist/services/task-manager.d.ts.map +1 -0
- package/dist/services/task-manager.js +288 -0
- package/dist/services/task-manager.js.map +1 -0
- package/dist/services/yaml-config.d.ts +57 -0
- package/dist/services/yaml-config.d.ts.map +1 -0
- package/dist/services/yaml-config.js +176 -0
- package/dist/services/yaml-config.js.map +1 -0
- package/dist/skills/discovery.d.ts +22 -0
- package/dist/skills/discovery.d.ts.map +1 -0
- package/dist/skills/discovery.js +75 -0
- package/dist/skills/discovery.js.map +1 -0
- package/dist/skills/index.d.ts +10 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +26 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/loader.d.ts +48 -0
- package/dist/skills/loader.d.ts.map +1 -0
- package/dist/skills/loader.js +231 -0
- package/dist/skills/loader.js.map +1 -0
- package/dist/skills/registry.d.ts +37 -0
- package/dist/skills/registry.d.ts.map +1 -0
- package/dist/skills/registry.js +134 -0
- package/dist/skills/registry.js.map +1 -0
- package/dist/skills/types.d.ts +89 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +24 -0
- package/dist/skills/types.js.map +1 -0
- package/dist/tools/bash_security.d.ts +64 -0
- package/dist/tools/bash_security.d.ts.map +1 -0
- package/dist/tools/bash_security.js +291 -0
- package/dist/tools/bash_security.js.map +1 -0
- package/dist/tools/index.d.ts +23 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +965 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/mcp.d.ts +72 -0
- package/dist/tools/mcp.d.ts.map +1 -0
- package/dist/tools/mcp.js +422 -0
- package/dist/tools/mcp.js.map +1 -0
- package/dist/tools/plan.d.ts +18 -0
- package/dist/tools/plan.d.ts.map +1 -0
- package/dist/tools/plan.js +75 -0
- package/dist/tools/plan.js.map +1 -0
- package/dist/tools/todo.d.ts +18 -0
- package/dist/tools/todo.d.ts.map +1 -0
- package/dist/tools/todo.js +153 -0
- package/dist/tools/todo.js.map +1 -0
- package/dist/tools/web.d.ts +13 -0
- package/dist/tools/web.d.ts.map +1 -0
- package/dist/tools/web.js +377 -0
- package/dist/tools/web.js.map +1 -0
- package/dist/ui/box.d.ts +56 -0
- package/dist/ui/box.d.ts.map +1 -0
- package/dist/ui/box.js +241 -0
- package/dist/ui/box.js.map +1 -0
- package/dist/ui/command-panel.d.ts +55 -0
- package/dist/ui/command-panel.d.ts.map +1 -0
- package/dist/ui/command-panel.js +212 -0
- package/dist/ui/command-panel.js.map +1 -0
- package/dist/ui/file-completion.d.ts +62 -0
- package/dist/ui/file-completion.d.ts.map +1 -0
- package/dist/ui/file-completion.js +209 -0
- package/dist/ui/file-completion.js.map +1 -0
- package/dist/ui/markdown.d.ts +12 -0
- package/dist/ui/markdown.d.ts.map +1 -0
- package/dist/ui/markdown.js +215 -0
- package/dist/ui/markdown.js.map +1 -0
- package/dist/ui/multiline-input.d.ts +47 -0
- package/dist/ui/multiline-input.d.ts.map +1 -0
- package/dist/ui/multiline-input.js +94 -0
- package/dist/ui/multiline-input.js.map +1 -0
- package/dist/ui/status-bar.d.ts +33 -0
- package/dist/ui/status-bar.d.ts.map +1 -0
- package/dist/ui/status-bar.js +96 -0
- package/dist/ui/status-bar.js.map +1 -0
- package/dist/ui/stream-markdown.d.ts +35 -0
- package/dist/ui/stream-markdown.d.ts.map +1 -0
- package/dist/ui/stream-markdown.js +138 -0
- package/dist/ui/stream-markdown.js.map +1 -0
- package/dist/ui/suggestions.d.ts +35 -0
- package/dist/ui/suggestions.d.ts.map +1 -0
- package/dist/ui/suggestions.js +118 -0
- package/dist/ui/suggestions.js.map +1 -0
- package/dist/ui/tool-preview.d.ts +34 -0
- package/dist/ui/tool-preview.d.ts.map +1 -0
- package/dist/ui/tool-preview.js +128 -0
- package/dist/ui/tool-preview.js.map +1 -0
- package/package.json +93 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Dispatcher = void 0;
|
|
4
|
+
const constants_js_1 = require("react-reconciler/constants.js");
|
|
5
|
+
const log_js_1 = require("../../utils/log.js");
|
|
6
|
+
const event_handlers_js_1 = require("./event-handlers.js");
|
|
7
|
+
// --
|
|
8
|
+
const NO_EVENT_PRIORITY = 0;
|
|
9
|
+
function getHandler(node, eventType, capture) {
|
|
10
|
+
const handlers = node._eventHandlers;
|
|
11
|
+
if (!handlers)
|
|
12
|
+
return undefined;
|
|
13
|
+
const mapping = event_handlers_js_1.HANDLER_FOR_EVENT[eventType];
|
|
14
|
+
if (!mapping)
|
|
15
|
+
return undefined;
|
|
16
|
+
const propName = capture ? mapping.capture : mapping.bubble;
|
|
17
|
+
if (!propName)
|
|
18
|
+
return undefined;
|
|
19
|
+
return handlers[propName];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Collect all listeners for an event in dispatch order.
|
|
23
|
+
*
|
|
24
|
+
* Uses react-dom's two-phase accumulation pattern:
|
|
25
|
+
* - Walk from target to root
|
|
26
|
+
* - Capture handlers are prepended (unshift) → root-first
|
|
27
|
+
* - Bubble handlers are appended (push) → target-first
|
|
28
|
+
*
|
|
29
|
+
* Result: [root-cap, ..., parent-cap, target-cap, target-bub, parent-bub, ..., root-bub]
|
|
30
|
+
*/
|
|
31
|
+
function collectListeners(target, event) {
|
|
32
|
+
const listeners = [];
|
|
33
|
+
let node = target;
|
|
34
|
+
while (node) {
|
|
35
|
+
const isTarget = node === target;
|
|
36
|
+
const captureHandler = getHandler(node, event.type, true);
|
|
37
|
+
const bubbleHandler = getHandler(node, event.type, false);
|
|
38
|
+
if (captureHandler) {
|
|
39
|
+
listeners.unshift({
|
|
40
|
+
node,
|
|
41
|
+
handler: captureHandler,
|
|
42
|
+
phase: isTarget ? 'at_target' : 'capturing',
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
if (bubbleHandler && (event.bubbles || isTarget)) {
|
|
46
|
+
listeners.push({
|
|
47
|
+
node,
|
|
48
|
+
handler: bubbleHandler,
|
|
49
|
+
phase: isTarget ? 'at_target' : 'bubbling',
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
node = node.parentNode;
|
|
53
|
+
}
|
|
54
|
+
return listeners;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Execute collected listeners with propagation control.
|
|
58
|
+
*
|
|
59
|
+
* Before each handler, calls event._prepareForTarget(node) so event
|
|
60
|
+
* subclasses can do per-node setup.
|
|
61
|
+
*/
|
|
62
|
+
function processDispatchQueue(listeners, event) {
|
|
63
|
+
let previousNode;
|
|
64
|
+
for (const { node, handler, phase } of listeners) {
|
|
65
|
+
if (event._isImmediatePropagationStopped()) {
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
if (event._isPropagationStopped() && node !== previousNode) {
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
event._setEventPhase(phase);
|
|
72
|
+
event._setCurrentTarget(node);
|
|
73
|
+
event._prepareForTarget(node);
|
|
74
|
+
try {
|
|
75
|
+
handler(event);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
(0, log_js_1.logError)(error);
|
|
79
|
+
}
|
|
80
|
+
previousNode = node;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
// --
|
|
84
|
+
/**
|
|
85
|
+
* Map terminal event types to React scheduling priorities.
|
|
86
|
+
* Mirrors react-dom's getEventPriority() switch.
|
|
87
|
+
*/
|
|
88
|
+
function getEventPriority(eventType) {
|
|
89
|
+
switch (eventType) {
|
|
90
|
+
case 'keydown':
|
|
91
|
+
case 'keyup':
|
|
92
|
+
case 'click':
|
|
93
|
+
case 'focus':
|
|
94
|
+
case 'blur':
|
|
95
|
+
case 'paste':
|
|
96
|
+
return constants_js_1.DiscreteEventPriority;
|
|
97
|
+
case 'resize':
|
|
98
|
+
case 'scroll':
|
|
99
|
+
case 'mousemove':
|
|
100
|
+
return constants_js_1.ContinuousEventPriority;
|
|
101
|
+
default:
|
|
102
|
+
return constants_js_1.DefaultEventPriority;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Owns event dispatch state and the capture/bubble dispatch loop.
|
|
107
|
+
*
|
|
108
|
+
* The reconciler host config reads currentEvent and currentUpdatePriority
|
|
109
|
+
* to implement resolveUpdatePriority, resolveEventType, and
|
|
110
|
+
* resolveEventTimeStamp — mirroring how react-dom's host config reads
|
|
111
|
+
* ReactDOMSharedInternals and window.event.
|
|
112
|
+
*
|
|
113
|
+
* discreteUpdates is injected after construction (by InkReconciler)
|
|
114
|
+
* to break the import cycle.
|
|
115
|
+
*/
|
|
116
|
+
class Dispatcher {
|
|
117
|
+
constructor() {
|
|
118
|
+
this.currentEvent = null;
|
|
119
|
+
this.currentUpdatePriority = NO_EVENT_PRIORITY;
|
|
120
|
+
this.discreteUpdates = null;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Infer event priority from the currently-dispatching event.
|
|
124
|
+
* Called by the reconciler host config's resolveUpdatePriority
|
|
125
|
+
* when no explicit priority has been set.
|
|
126
|
+
*/
|
|
127
|
+
resolveEventPriority() {
|
|
128
|
+
if (this.currentUpdatePriority !== NO_EVENT_PRIORITY) {
|
|
129
|
+
return this.currentUpdatePriority;
|
|
130
|
+
}
|
|
131
|
+
if (this.currentEvent) {
|
|
132
|
+
return getEventPriority(this.currentEvent.type);
|
|
133
|
+
}
|
|
134
|
+
return constants_js_1.DefaultEventPriority;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Dispatch an event through capture and bubble phases.
|
|
138
|
+
* Returns true if preventDefault() was NOT called.
|
|
139
|
+
*/
|
|
140
|
+
dispatch(target, event) {
|
|
141
|
+
const previousEvent = this.currentEvent;
|
|
142
|
+
this.currentEvent = event;
|
|
143
|
+
try {
|
|
144
|
+
event._setTarget(target);
|
|
145
|
+
const listeners = collectListeners(target, event);
|
|
146
|
+
processDispatchQueue(listeners, event);
|
|
147
|
+
event._setEventPhase('none');
|
|
148
|
+
event._setCurrentTarget(null);
|
|
149
|
+
return !event.defaultPrevented;
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
this.currentEvent = previousEvent;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Dispatch with discrete (sync) priority.
|
|
157
|
+
* For user-initiated events: keyboard, click, focus, paste.
|
|
158
|
+
*/
|
|
159
|
+
dispatchDiscrete(target, event) {
|
|
160
|
+
if (!this.discreteUpdates) {
|
|
161
|
+
return this.dispatch(target, event);
|
|
162
|
+
}
|
|
163
|
+
return this.discreteUpdates((t, e) => this.dispatch(t, e), target, event, undefined, undefined);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Dispatch with continuous priority.
|
|
167
|
+
* For high-frequency events: resize, scroll, mouse move.
|
|
168
|
+
*/
|
|
169
|
+
dispatchContinuous(target, event) {
|
|
170
|
+
const previousPriority = this.currentUpdatePriority;
|
|
171
|
+
try {
|
|
172
|
+
this.currentUpdatePriority = constants_js_1.ContinuousEventPriority;
|
|
173
|
+
return this.dispatch(target, event);
|
|
174
|
+
}
|
|
175
|
+
finally {
|
|
176
|
+
this.currentUpdatePriority = previousPriority;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
exports.Dispatcher = Dispatcher;
|
|
181
|
+
//# sourceMappingURL=dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../../src/ink/events/dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitter.d.ts","sourceRoot":"","sources":["../../../src/ink/events/emitter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,QAAQ,CAAA;AAKzD,qBAAa,YAAa,SAAQ,gBAAgB;;IASvC,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO;CAwBlE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EventEmitter = void 0;
|
|
4
|
+
const events_1 = require("events");
|
|
5
|
+
const event_js_1 = require("./event.js");
|
|
6
|
+
// Similar to node's builtin EventEmitter, but is also aware of our `Event`
|
|
7
|
+
// class, and so `emit` respects `stopImmediatePropagation()`.
|
|
8
|
+
class EventEmitter extends events_1.EventEmitter {
|
|
9
|
+
constructor() {
|
|
10
|
+
super();
|
|
11
|
+
// Disable the default maxListeners warning. In React, many components
|
|
12
|
+
// can legitimately listen to the same event (e.g., useInput hooks).
|
|
13
|
+
// The default limit of 10 causes spurious warnings.
|
|
14
|
+
this.setMaxListeners(0);
|
|
15
|
+
}
|
|
16
|
+
emit(type, ...args) {
|
|
17
|
+
// Delegate to node for `error`, since it's not treated like a normal event
|
|
18
|
+
if (type === 'error') {
|
|
19
|
+
return super.emit(type, ...args);
|
|
20
|
+
}
|
|
21
|
+
const listeners = this.rawListeners(type);
|
|
22
|
+
if (listeners.length === 0) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const ccEvent = args[0] instanceof event_js_1.Event ? args[0] : null;
|
|
26
|
+
for (const listener of listeners) {
|
|
27
|
+
listener.apply(this, args);
|
|
28
|
+
if (ccEvent?.didStopImmediatePropagation()) {
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
exports.EventEmitter = EventEmitter;
|
|
36
|
+
//# sourceMappingURL=emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emitter.js","sourceRoot":"","sources":["../../../src/ink/events/emitter.ts"],"names":[],"mappings":";;;AAAA,mCAAyD;AACzD,yCAAkC;AAElC,2EAA2E;AAC3E,8DAA8D;AAC9D,MAAa,YAAa,SAAQ,qBAAgB;IAChD;QACE,KAAK,EAAE,CAAA;QACP,sEAAsE;QACtE,oEAAoE;QACpE,oDAAoD;QACpD,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAA;IACzB,CAAC;IAEQ,IAAI,CAAC,IAAqB,EAAE,GAAG,IAAe;QACrD,2EAA2E;QAC3E,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAA;QAClC,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;QAEzC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO,KAAK,CAAA;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,gBAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAEzD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAE1B,IAAI,OAAO,EAAE,2BAA2B,EAAE,EAAE,CAAC;gBAC3C,MAAK;YACP,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAjCD,oCAiCC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { ClickEvent } from './click-event.js';
|
|
2
|
+
import type { FocusEvent } from './focus-event.js';
|
|
3
|
+
import type { KeyboardEvent } from './keyboard-event.js';
|
|
4
|
+
import type { PasteEvent } from './paste-event.js';
|
|
5
|
+
import type { ResizeEvent } from './resize-event.js';
|
|
6
|
+
type KeyboardEventHandler = (event: KeyboardEvent) => void;
|
|
7
|
+
type FocusEventHandler = (event: FocusEvent) => void;
|
|
8
|
+
type PasteEventHandler = (event: PasteEvent) => void;
|
|
9
|
+
type ResizeEventHandler = (event: ResizeEvent) => void;
|
|
10
|
+
type ClickEventHandler = (event: ClickEvent) => void;
|
|
11
|
+
type HoverEventHandler = () => void;
|
|
12
|
+
/**
|
|
13
|
+
* Props for event handlers on Box and other host components.
|
|
14
|
+
*
|
|
15
|
+
* Follows the React/DOM naming convention:
|
|
16
|
+
* - onEventName: handler for bubble phase
|
|
17
|
+
* - onEventNameCapture: handler for capture phase
|
|
18
|
+
*/
|
|
19
|
+
export type EventHandlerProps = {
|
|
20
|
+
onKeyDown?: KeyboardEventHandler;
|
|
21
|
+
onKeyDownCapture?: KeyboardEventHandler;
|
|
22
|
+
onFocus?: FocusEventHandler;
|
|
23
|
+
onFocusCapture?: FocusEventHandler;
|
|
24
|
+
onBlur?: FocusEventHandler;
|
|
25
|
+
onBlurCapture?: FocusEventHandler;
|
|
26
|
+
onPaste?: PasteEventHandler;
|
|
27
|
+
onPasteCapture?: PasteEventHandler;
|
|
28
|
+
onResize?: ResizeEventHandler;
|
|
29
|
+
onClick?: ClickEventHandler;
|
|
30
|
+
onMouseEnter?: HoverEventHandler;
|
|
31
|
+
onMouseLeave?: HoverEventHandler;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Reverse lookup: event type string → handler prop names.
|
|
35
|
+
* Used by the dispatcher for O(1) handler lookup per node.
|
|
36
|
+
*/
|
|
37
|
+
export declare const HANDLER_FOR_EVENT: Record<string, {
|
|
38
|
+
bubble?: keyof EventHandlerProps;
|
|
39
|
+
capture?: keyof EventHandlerProps;
|
|
40
|
+
}>;
|
|
41
|
+
/**
|
|
42
|
+
* Set of all event handler prop names, for the reconciler to detect
|
|
43
|
+
* event props and store them in _eventHandlers instead of attributes.
|
|
44
|
+
*/
|
|
45
|
+
export declare const EVENT_HANDLER_PROPS: Set<string>;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=event-handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-handlers.d.ts","sourceRoot":"","sources":["../../../src/ink/events/event-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD,KAAK,oBAAoB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAA;AAC1D,KAAK,iBAAiB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;AACpD,KAAK,iBAAiB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;AACpD,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;AACtD,KAAK,iBAAiB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;AACpD,KAAK,iBAAiB,GAAG,MAAM,IAAI,CAAA;AAEnC;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,CAAC,EAAE,oBAAoB,CAAA;IAChC,gBAAgB,CAAC,EAAE,oBAAoB,CAAA;IAEvC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAClC,MAAM,CAAC,EAAE,iBAAiB,CAAA;IAC1B,aAAa,CAAC,EAAE,iBAAiB,CAAA;IAEjC,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,cAAc,CAAC,EAAE,iBAAiB,CAAA;IAElC,QAAQ,CAAC,EAAE,kBAAkB,CAAA;IAE7B,OAAO,CAAC,EAAE,iBAAiB,CAAA;IAC3B,YAAY,CAAC,EAAE,iBAAiB,CAAA;IAChC,YAAY,CAAC,EAAE,iBAAiB,CAAA;CACjC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CACpC,MAAM,EACN;IAAE,MAAM,CAAC,EAAE,MAAM,iBAAiB,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,iBAAiB,CAAA;CAAE,CAQxE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,aAa9B,CAAA"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EVENT_HANDLER_PROPS = exports.HANDLER_FOR_EVENT = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Reverse lookup: event type string → handler prop names.
|
|
6
|
+
* Used by the dispatcher for O(1) handler lookup per node.
|
|
7
|
+
*/
|
|
8
|
+
exports.HANDLER_FOR_EVENT = {
|
|
9
|
+
keydown: { bubble: 'onKeyDown', capture: 'onKeyDownCapture' },
|
|
10
|
+
focus: { bubble: 'onFocus', capture: 'onFocusCapture' },
|
|
11
|
+
blur: { bubble: 'onBlur', capture: 'onBlurCapture' },
|
|
12
|
+
paste: { bubble: 'onPaste', capture: 'onPasteCapture' },
|
|
13
|
+
resize: { bubble: 'onResize' },
|
|
14
|
+
click: { bubble: 'onClick' },
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Set of all event handler prop names, for the reconciler to detect
|
|
18
|
+
* event props and store them in _eventHandlers instead of attributes.
|
|
19
|
+
*/
|
|
20
|
+
exports.EVENT_HANDLER_PROPS = new Set([
|
|
21
|
+
'onKeyDown',
|
|
22
|
+
'onKeyDownCapture',
|
|
23
|
+
'onFocus',
|
|
24
|
+
'onFocusCapture',
|
|
25
|
+
'onBlur',
|
|
26
|
+
'onBlurCapture',
|
|
27
|
+
'onPaste',
|
|
28
|
+
'onPasteCapture',
|
|
29
|
+
'onResize',
|
|
30
|
+
'onClick',
|
|
31
|
+
'onMouseEnter',
|
|
32
|
+
'onMouseLeave',
|
|
33
|
+
]);
|
|
34
|
+
//# sourceMappingURL=event-handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-handlers.js","sourceRoot":"","sources":["../../../src/ink/events/event-handlers.ts"],"names":[],"mappings":";;;AAuCA;;;GAGG;AACU,QAAA,iBAAiB,GAG1B;IACF,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,kBAAkB,EAAE;IAC7D,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE;IACvD,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE;IACpD,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,EAAE;IACvD,MAAM,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE;IAC9B,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;CAC7B,CAAA;AAED;;;GAGG;AACU,QAAA,mBAAmB,GAAG,IAAI,GAAG,CAAS;IACjD,WAAW;IACX,kBAAkB;IAClB,SAAS;IACT,gBAAgB;IAChB,QAAQ;IACR,eAAe;IACf,SAAS;IACT,gBAAgB;IAChB,UAAU;IACV,SAAS;IACT,cAAc;IACd,cAAc;CACf,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../../src/ink/events/event.ts"],"names":[],"mappings":"AAAA,qBAAa,KAAK;IAChB,OAAO,CAAC,4BAA4B,CAAQ;IAE5C,2BAA2B,IAAI,OAAO;IAItC,wBAAwB,IAAI,IAAI;CAGjC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Event = void 0;
|
|
4
|
+
class Event {
|
|
5
|
+
constructor() {
|
|
6
|
+
this._didStopImmediatePropagation = false;
|
|
7
|
+
}
|
|
8
|
+
didStopImmediatePropagation() {
|
|
9
|
+
return this._didStopImmediatePropagation;
|
|
10
|
+
}
|
|
11
|
+
stopImmediatePropagation() {
|
|
12
|
+
this._didStopImmediatePropagation = true;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
exports.Event = Event;
|
|
16
|
+
//# sourceMappingURL=event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../../src/ink/events/event.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAK;IAAlB;QACU,iCAA4B,GAAG,KAAK,CAAA;IAS9C,CAAC;IAPC,2BAA2B;QACzB,OAAO,IAAI,CAAC,4BAA4B,CAAA;IAC1C,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAA;IAC1C,CAAC;CACF;AAVD,sBAUC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type EventTarget, TerminalEvent } from './terminal-event.js';
|
|
2
|
+
/**
|
|
3
|
+
* Focus event for component focus changes.
|
|
4
|
+
*
|
|
5
|
+
* Dispatched when focus moves between elements. 'focus' fires on the
|
|
6
|
+
* newly focused element, 'blur' fires on the previously focused one.
|
|
7
|
+
* Both bubble, matching react-dom's use of focusin/focusout semantics
|
|
8
|
+
* so parent components can observe descendant focus changes.
|
|
9
|
+
*/
|
|
10
|
+
export declare class FocusEvent extends TerminalEvent {
|
|
11
|
+
readonly relatedTarget: EventTarget | null;
|
|
12
|
+
constructor(type: 'focus' | 'blur', relatedTarget?: EventTarget | null);
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=focus-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-event.d.ts","sourceRoot":"","sources":["../../../src/ink/events/focus-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAErE;;;;;;;GAOG;AACH,qBAAa,UAAW,SAAQ,aAAa;IAC3C,QAAQ,CAAC,aAAa,EAAE,WAAW,GAAG,IAAI,CAAA;gBAGxC,IAAI,EAAE,OAAO,GAAG,MAAM,EACtB,aAAa,GAAE,WAAW,GAAG,IAAW;CAK3C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FocusEvent = void 0;
|
|
4
|
+
const terminal_event_js_1 = require("./terminal-event.js");
|
|
5
|
+
/**
|
|
6
|
+
* Focus event for component focus changes.
|
|
7
|
+
*
|
|
8
|
+
* Dispatched when focus moves between elements. 'focus' fires on the
|
|
9
|
+
* newly focused element, 'blur' fires on the previously focused one.
|
|
10
|
+
* Both bubble, matching react-dom's use of focusin/focusout semantics
|
|
11
|
+
* so parent components can observe descendant focus changes.
|
|
12
|
+
*/
|
|
13
|
+
class FocusEvent extends terminal_event_js_1.TerminalEvent {
|
|
14
|
+
constructor(type, relatedTarget = null) {
|
|
15
|
+
super(type, { bubbles: true, cancelable: false });
|
|
16
|
+
this.relatedTarget = relatedTarget;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.FocusEvent = FocusEvent;
|
|
20
|
+
//# sourceMappingURL=focus-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-event.js","sourceRoot":"","sources":["../../../src/ink/events/focus-event.ts"],"names":[],"mappings":";;;AAAA,2DAAqE;AAErE;;;;;;;GAOG;AACH,MAAa,UAAW,SAAQ,iCAAa;IAG3C,YACE,IAAsB,EACtB,gBAAoC,IAAI;QAExC,KAAK,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAA;QACjD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAA;IACpC,CAAC;CACF;AAVD,gCAUC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type ParsedKey } from '../parse-keypress.js';
|
|
2
|
+
import { Event } from './event.js';
|
|
3
|
+
export type Key = {
|
|
4
|
+
upArrow: boolean;
|
|
5
|
+
downArrow: boolean;
|
|
6
|
+
leftArrow: boolean;
|
|
7
|
+
rightArrow: boolean;
|
|
8
|
+
pageDown: boolean;
|
|
9
|
+
pageUp: boolean;
|
|
10
|
+
wheelUp: boolean;
|
|
11
|
+
wheelDown: boolean;
|
|
12
|
+
home: boolean;
|
|
13
|
+
end: boolean;
|
|
14
|
+
return: boolean;
|
|
15
|
+
escape: boolean;
|
|
16
|
+
ctrl: boolean;
|
|
17
|
+
shift: boolean;
|
|
18
|
+
fn: boolean;
|
|
19
|
+
tab: boolean;
|
|
20
|
+
backspace: boolean;
|
|
21
|
+
delete: boolean;
|
|
22
|
+
meta: boolean;
|
|
23
|
+
super: boolean;
|
|
24
|
+
};
|
|
25
|
+
export declare class InputEvent extends Event {
|
|
26
|
+
readonly keypress: ParsedKey;
|
|
27
|
+
readonly key: Key;
|
|
28
|
+
readonly input: string;
|
|
29
|
+
constructor(keypress: ParsedKey);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=input-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-event.d.ts","sourceRoot":"","sources":["../../../src/ink/events/input-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC,MAAM,MAAM,GAAG,GAAG;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,UAAU,EAAE,OAAO,CAAA;IACnB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,OAAO,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,OAAO,CAAA;IAClB,IAAI,EAAE,OAAO,CAAA;IACb,GAAG,EAAE,OAAO,CAAA;IACZ,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,EAAE,EAAE,OAAO,CAAA;IACX,GAAG,EAAE,OAAO,CAAA;IACZ,SAAS,EAAE,OAAO,CAAA;IAClB,MAAM,EAAE,OAAO,CAAA;IACf,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAuKD,qBAAa,UAAW,SAAQ,KAAK;IACnC,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAA;IAC5B,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAA;IACjB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;gBAEV,QAAQ,EAAE,SAAS;CAQhC"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InputEvent = void 0;
|
|
4
|
+
const parse_keypress_js_1 = require("../parse-keypress.js");
|
|
5
|
+
const event_js_1 = require("./event.js");
|
|
6
|
+
function parseKey(keypress) {
|
|
7
|
+
const key = {
|
|
8
|
+
upArrow: keypress.name === 'up',
|
|
9
|
+
downArrow: keypress.name === 'down',
|
|
10
|
+
leftArrow: keypress.name === 'left',
|
|
11
|
+
rightArrow: keypress.name === 'right',
|
|
12
|
+
pageDown: keypress.name === 'pagedown',
|
|
13
|
+
pageUp: keypress.name === 'pageup',
|
|
14
|
+
wheelUp: keypress.name === 'wheelup',
|
|
15
|
+
wheelDown: keypress.name === 'wheeldown',
|
|
16
|
+
home: keypress.name === 'home',
|
|
17
|
+
end: keypress.name === 'end',
|
|
18
|
+
return: keypress.name === 'return',
|
|
19
|
+
escape: keypress.name === 'escape',
|
|
20
|
+
fn: keypress.fn,
|
|
21
|
+
ctrl: keypress.ctrl,
|
|
22
|
+
shift: keypress.shift,
|
|
23
|
+
tab: keypress.name === 'tab',
|
|
24
|
+
backspace: keypress.name === 'backspace',
|
|
25
|
+
delete: keypress.name === 'delete',
|
|
26
|
+
// `parseKeypress` parses \u001B\u001B[A (meta + up arrow) as meta = false
|
|
27
|
+
// but with option = true, so we need to take this into account here
|
|
28
|
+
// to avoid breaking changes in Ink.
|
|
29
|
+
// TODO(vadimdemedes): consider removing this in the next major version.
|
|
30
|
+
meta: keypress.meta || keypress.name === 'escape' || keypress.option,
|
|
31
|
+
// Super (Cmd on macOS / Win key) — only arrives via kitty keyboard
|
|
32
|
+
// protocol CSI u sequences. Distinct from meta (Alt/Option) so
|
|
33
|
+
// bindings like cmd+c can be expressed separately from opt+c.
|
|
34
|
+
super: keypress.super,
|
|
35
|
+
};
|
|
36
|
+
let input = keypress.ctrl ? keypress.name : keypress.sequence;
|
|
37
|
+
// Handle undefined input case
|
|
38
|
+
if (input === undefined) {
|
|
39
|
+
input = '';
|
|
40
|
+
}
|
|
41
|
+
// When ctrl is set, keypress.name for space is the literal word "space".
|
|
42
|
+
// Convert to actual space character for consistency with the CSI u branch
|
|
43
|
+
// (which maps 'space' → ' '). Without this, ctrl+space leaks the literal
|
|
44
|
+
// word "space" into text input.
|
|
45
|
+
if (keypress.ctrl && input === 'space') {
|
|
46
|
+
input = ' ';
|
|
47
|
+
}
|
|
48
|
+
// Suppress unrecognized escape sequences that were parsed as function keys
|
|
49
|
+
// (matched by FN_KEY_RE) but have no name in the keyName map.
|
|
50
|
+
// Examples: ESC[25~ (F13/Right Alt on Windows), ESC[26~ (F14), etc.
|
|
51
|
+
// Without this, the ESC prefix is stripped below and the remainder (e.g.,
|
|
52
|
+
// "[25~") leaks into the input as literal text.
|
|
53
|
+
if (keypress.code && !keypress.name) {
|
|
54
|
+
input = '';
|
|
55
|
+
}
|
|
56
|
+
// Suppress ESC-less SGR mouse fragments. When a heavy React commit blocks
|
|
57
|
+
// the event loop past App's 50ms NORMAL_TIMEOUT flush, a CSI split across
|
|
58
|
+
// stdin chunks gets its buffered ESC flushed as a lone Escape key, and the
|
|
59
|
+
// continuation arrives as a text token with name='' — which falls through
|
|
60
|
+
// all of parseKeypress's ESC-anchored regexes and the nonAlphanumericKeys
|
|
61
|
+
// clear below (name is falsy). The fragment then leaks into the prompt as
|
|
62
|
+
// literal `[<64;74;16M`. This is the same defensive sink as the F13 guard
|
|
63
|
+
// above; the underlying tokenizer-flush race is upstream of this layer.
|
|
64
|
+
if (!keypress.name && /^\[<\d+;\d+;\d+[Mm]/.test(input)) {
|
|
65
|
+
input = '';
|
|
66
|
+
}
|
|
67
|
+
// Strip meta if it's still remaining after `parseKeypress`
|
|
68
|
+
// TODO(vadimdemedes): remove this in the next major version.
|
|
69
|
+
if (input.startsWith('\u001B')) {
|
|
70
|
+
input = input.slice(1);
|
|
71
|
+
}
|
|
72
|
+
// Track whether we've already processed this as a special sequence
|
|
73
|
+
// that converted input to the key name (CSI u or application keypad mode).
|
|
74
|
+
// For these, we don't want to clear input with nonAlphanumericKeys check.
|
|
75
|
+
let processedAsSpecialSequence = false;
|
|
76
|
+
// Handle CSI u sequences (Kitty keyboard protocol): after stripping ESC,
|
|
77
|
+
// we're left with "[codepoint;modifieru" (e.g., "[98;3u" for Alt+b).
|
|
78
|
+
// Use the parsed key name instead for input handling. Require a digit
|
|
79
|
+
// after [ — real CSI u is always [<digits>…u, and a bare startsWith('[')
|
|
80
|
+
// false-matches X10 mouse at row 85 (Cy = 85+32 = 'u'), leaking the
|
|
81
|
+
// literal text "mouse" into the prompt via processedAsSpecialSequence.
|
|
82
|
+
if (/^\[\d/.test(input) && input.endsWith('u')) {
|
|
83
|
+
if (!keypress.name) {
|
|
84
|
+
// Unmapped Kitty functional key (Caps Lock 57358, F13–F35, KP nav,
|
|
85
|
+
// bare modifiers, etc.) — keycodeToName() returned undefined. Swallow
|
|
86
|
+
// so the raw "[57358u" doesn't leak into the prompt. See #38781.
|
|
87
|
+
input = '';
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
// 'space' → ' '; 'escape' → '' (key.escape carries it;
|
|
91
|
+
// processedAsSpecialSequence bypasses the nonAlphanumericKeys
|
|
92
|
+
// clear below, so we must handle it explicitly here);
|
|
93
|
+
// otherwise use key name.
|
|
94
|
+
input =
|
|
95
|
+
keypress.name === 'space'
|
|
96
|
+
? ' '
|
|
97
|
+
: keypress.name === 'escape'
|
|
98
|
+
? ''
|
|
99
|
+
: keypress.name;
|
|
100
|
+
}
|
|
101
|
+
processedAsSpecialSequence = true;
|
|
102
|
+
}
|
|
103
|
+
// Handle xterm modifyOtherKeys sequences: after stripping ESC, we're left
|
|
104
|
+
// with "[27;modifier;keycode~" (e.g., "[27;3;98~" for Alt+b). Same
|
|
105
|
+
// extraction as CSI u — without this, printable-char keycodes (single-letter
|
|
106
|
+
// names) skip the nonAlphanumericKeys clear and leak "[27;..." as input.
|
|
107
|
+
if (input.startsWith('[27;') && input.endsWith('~')) {
|
|
108
|
+
if (!keypress.name) {
|
|
109
|
+
// Unmapped modifyOtherKeys keycode — swallow for consistency with
|
|
110
|
+
// the CSI u handler above. Practically untriggerable today (xterm
|
|
111
|
+
// modifyOtherKeys only sends ASCII keycodes, all mapped), but
|
|
112
|
+
// guards against future terminal behavior.
|
|
113
|
+
input = '';
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
input =
|
|
117
|
+
keypress.name === 'space'
|
|
118
|
+
? ' '
|
|
119
|
+
: keypress.name === 'escape'
|
|
120
|
+
? ''
|
|
121
|
+
: keypress.name;
|
|
122
|
+
}
|
|
123
|
+
processedAsSpecialSequence = true;
|
|
124
|
+
}
|
|
125
|
+
// Handle application keypad mode sequences: after stripping ESC,
|
|
126
|
+
// we're left with "O<letter>" (e.g., "Op" for numpad 0, "Oy" for numpad 9).
|
|
127
|
+
// Use the parsed key name (the digit character) for input handling.
|
|
128
|
+
if (input.startsWith('O') &&
|
|
129
|
+
input.length === 2 &&
|
|
130
|
+
keypress.name &&
|
|
131
|
+
keypress.name.length === 1) {
|
|
132
|
+
input = keypress.name;
|
|
133
|
+
processedAsSpecialSequence = true;
|
|
134
|
+
}
|
|
135
|
+
// Clear input for non-alphanumeric keys (arrows, function keys, etc.)
|
|
136
|
+
// Skip this for CSI u and application keypad mode sequences since
|
|
137
|
+
// those were already converted to their proper input characters.
|
|
138
|
+
if (!processedAsSpecialSequence &&
|
|
139
|
+
keypress.name &&
|
|
140
|
+
parse_keypress_js_1.nonAlphanumericKeys.includes(keypress.name)) {
|
|
141
|
+
input = '';
|
|
142
|
+
}
|
|
143
|
+
// Set shift=true for uppercase letters (A-Z)
|
|
144
|
+
// Must check it's actually a letter, not just any char unchanged by toUpperCase
|
|
145
|
+
if (input.length === 1 &&
|
|
146
|
+
typeof input[0] === 'string' &&
|
|
147
|
+
input[0] >= 'A' &&
|
|
148
|
+
input[0] <= 'Z') {
|
|
149
|
+
key.shift = true;
|
|
150
|
+
}
|
|
151
|
+
return [key, input];
|
|
152
|
+
}
|
|
153
|
+
class InputEvent extends event_js_1.Event {
|
|
154
|
+
constructor(keypress) {
|
|
155
|
+
super();
|
|
156
|
+
const [key, input] = parseKey(keypress);
|
|
157
|
+
this.keypress = keypress;
|
|
158
|
+
this.key = key;
|
|
159
|
+
this.input = input;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
exports.InputEvent = InputEvent;
|
|
163
|
+
//# sourceMappingURL=input-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-event.js","sourceRoot":"","sources":["../../../src/ink/events/input-event.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { ParsedKey } from '../parse-keypress.js';
|
|
2
|
+
import { TerminalEvent } from './terminal-event.js';
|
|
3
|
+
/**
|
|
4
|
+
* Keyboard event dispatched through the DOM tree via capture/bubble.
|
|
5
|
+
*
|
|
6
|
+
* Follows browser KeyboardEvent semantics: `key` is the literal character
|
|
7
|
+
* for printable keys ('a', '3', ' ', '/') and a multi-char name for
|
|
8
|
+
* special keys ('down', 'return', 'escape', 'f1'). The idiomatic
|
|
9
|
+
* printable-char check is `e.key.length === 1`.
|
|
10
|
+
*/
|
|
11
|
+
export declare class KeyboardEvent extends TerminalEvent {
|
|
12
|
+
readonly key: string;
|
|
13
|
+
readonly ctrl: boolean;
|
|
14
|
+
readonly shift: boolean;
|
|
15
|
+
readonly meta: boolean;
|
|
16
|
+
readonly superKey: boolean;
|
|
17
|
+
readonly fn: boolean;
|
|
18
|
+
constructor(parsedKey: ParsedKey);
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=keyboard-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keyboard-event.d.ts","sourceRoot":"","sources":["../../../src/ink/events/keyboard-event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnD;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,aAAa;IAC9C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;gBAER,SAAS,EAAE,SAAS;CAUjC"}
|