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,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OpenHorse - Minimal Terminal UI Utilities
|
|
4
|
+
*
|
|
5
|
+
* 简化的终端 UI 工具,不依赖 React hooks
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.SPINNER_FRAMES = exports.SCREEN = exports.CURSOR = exports.STYLES = exports.COLORS = void 0;
|
|
9
|
+
exports.createSpinner = createSpinner;
|
|
10
|
+
exports.setupRawInput = setupRawInput;
|
|
11
|
+
exports.clearScreen = clearScreen;
|
|
12
|
+
exports.hideCursor = hideCursor;
|
|
13
|
+
exports.showCursor = showCursor;
|
|
14
|
+
// ============================================================================
|
|
15
|
+
// ANSI 颜色辅助函数
|
|
16
|
+
// ============================================================================
|
|
17
|
+
exports.COLORS = {
|
|
18
|
+
black: '\x1b[30m',
|
|
19
|
+
red: '\x1b[31m',
|
|
20
|
+
green: '\x1b[32m',
|
|
21
|
+
yellow: '\x1b[33m',
|
|
22
|
+
blue: '\x1b[34m',
|
|
23
|
+
magenta: '\x1b[35m',
|
|
24
|
+
cyan: '\x1b[36m',
|
|
25
|
+
white: '\x1b[37m',
|
|
26
|
+
gray: '\x1b[90m',
|
|
27
|
+
brightRed: '\x1b[91m',
|
|
28
|
+
brightGreen: '\x1b[92m',
|
|
29
|
+
brightYellow: '\x1b[93m',
|
|
30
|
+
brightBlue: '\x1b[94m',
|
|
31
|
+
brightMagenta: '\x1b[95m',
|
|
32
|
+
brightCyan: '\x1b[96m',
|
|
33
|
+
brightWhite: '\x1b[97m',
|
|
34
|
+
};
|
|
35
|
+
exports.STYLES = {
|
|
36
|
+
bold: '\x1b[1m',
|
|
37
|
+
dim: '\x1b[2m',
|
|
38
|
+
italic: '\x1b[3m',
|
|
39
|
+
underline: '\x1b[4m',
|
|
40
|
+
reset: '\x1b[0m',
|
|
41
|
+
};
|
|
42
|
+
exports.CURSOR = {
|
|
43
|
+
hide: '\x1b[?25l',
|
|
44
|
+
show: '\x1b[?25h',
|
|
45
|
+
};
|
|
46
|
+
exports.SCREEN = {
|
|
47
|
+
clear: '\x1b[2J',
|
|
48
|
+
home: '\x1b[H',
|
|
49
|
+
clearLine: '\x1b[2K',
|
|
50
|
+
};
|
|
51
|
+
// ============================================================================
|
|
52
|
+
// Spinner
|
|
53
|
+
// ============================================================================
|
|
54
|
+
exports.SPINNER_FRAMES = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
|
|
55
|
+
function createSpinner(onUpdate) {
|
|
56
|
+
let frameIndex = 0;
|
|
57
|
+
let timer = null;
|
|
58
|
+
return {
|
|
59
|
+
start: () => {
|
|
60
|
+
timer = setInterval(() => {
|
|
61
|
+
frameIndex = (frameIndex + 1) % exports.SPINNER_FRAMES.length;
|
|
62
|
+
onUpdate(exports.SPINNER_FRAMES[frameIndex]);
|
|
63
|
+
}, 80);
|
|
64
|
+
},
|
|
65
|
+
stop: () => {
|
|
66
|
+
if (timer) {
|
|
67
|
+
clearInterval(timer);
|
|
68
|
+
timer = null;
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
// ============================================================================
|
|
74
|
+
// 输入处理
|
|
75
|
+
// ============================================================================
|
|
76
|
+
function setupRawInput(onChar) {
|
|
77
|
+
if (!process.stdin.isTTY) {
|
|
78
|
+
return { cleanup: () => { } };
|
|
79
|
+
}
|
|
80
|
+
process.stdin.setRawMode(true);
|
|
81
|
+
process.stdin.resume();
|
|
82
|
+
process.stdin.setEncoding('utf8');
|
|
83
|
+
const handler = (data) => {
|
|
84
|
+
const char = data.charAt(0);
|
|
85
|
+
const key = {
|
|
86
|
+
name: char,
|
|
87
|
+
ctrl: char === '\x03', // Ctrl+C
|
|
88
|
+
};
|
|
89
|
+
onChar(data, key);
|
|
90
|
+
};
|
|
91
|
+
process.stdin.on('data', handler);
|
|
92
|
+
return {
|
|
93
|
+
cleanup: () => {
|
|
94
|
+
process.stdin.setRawMode(false);
|
|
95
|
+
process.stdin.removeListener('data', handler);
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
// ============================================================================
|
|
100
|
+
// 渲染辅助
|
|
101
|
+
// ============================================================================
|
|
102
|
+
function clearScreen() {
|
|
103
|
+
process.stdout.write(exports.SCREEN.clear + exports.SCREEN.home);
|
|
104
|
+
}
|
|
105
|
+
function hideCursor() {
|
|
106
|
+
process.stdout.write(exports.CURSOR.hide);
|
|
107
|
+
}
|
|
108
|
+
function showCursor() {
|
|
109
|
+
process.stdout.write(exports.CURSOR.show);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ink/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import * as dom from './dom.js';
|
|
3
|
+
import { FocusManager } from './focus.js';
|
|
4
|
+
import { type FrameEvent } from './frame.js';
|
|
5
|
+
import type { ParsedKey } from './parse-keypress.js';
|
|
6
|
+
import { type MatchPosition } from './render-to-screen.js';
|
|
7
|
+
import { type FocusMove, type SelectionState } from './selection.js';
|
|
8
|
+
export type Options = {
|
|
9
|
+
stdout: NodeJS.WriteStream;
|
|
10
|
+
stdin: NodeJS.ReadStream;
|
|
11
|
+
stderr: NodeJS.WriteStream;
|
|
12
|
+
exitOnCtrlC: boolean;
|
|
13
|
+
patchConsole: boolean;
|
|
14
|
+
waitUntilExit?: () => Promise<void>;
|
|
15
|
+
onFrame?: (event: FrameEvent) => void;
|
|
16
|
+
};
|
|
17
|
+
export default class Ink {
|
|
18
|
+
private readonly options;
|
|
19
|
+
private readonly log;
|
|
20
|
+
private readonly terminal;
|
|
21
|
+
private scheduleRender;
|
|
22
|
+
private isUnmounted;
|
|
23
|
+
private isPaused;
|
|
24
|
+
private readonly container;
|
|
25
|
+
private rootNode;
|
|
26
|
+
readonly focusManager: FocusManager;
|
|
27
|
+
private renderer;
|
|
28
|
+
private readonly stylePool;
|
|
29
|
+
private charPool;
|
|
30
|
+
private hyperlinkPool;
|
|
31
|
+
private exitPromise?;
|
|
32
|
+
private restoreConsole?;
|
|
33
|
+
private restoreStderr?;
|
|
34
|
+
private readonly unsubscribeTTYHandlers?;
|
|
35
|
+
private terminalColumns;
|
|
36
|
+
private terminalRows;
|
|
37
|
+
private currentNode;
|
|
38
|
+
private frontFrame;
|
|
39
|
+
private backFrame;
|
|
40
|
+
private lastPoolResetTime;
|
|
41
|
+
private drainTimer;
|
|
42
|
+
private lastYogaCounters;
|
|
43
|
+
private altScreenParkPatch;
|
|
44
|
+
readonly selection: SelectionState;
|
|
45
|
+
private searchHighlightQuery;
|
|
46
|
+
private searchPositions;
|
|
47
|
+
private readonly selectionListeners;
|
|
48
|
+
private readonly hoveredNodes;
|
|
49
|
+
private altScreenActive;
|
|
50
|
+
private altScreenMouseTracking;
|
|
51
|
+
private prevFrameContaminated;
|
|
52
|
+
private needsEraseBeforePaint;
|
|
53
|
+
private cursorDeclaration;
|
|
54
|
+
private displayCursor;
|
|
55
|
+
private reportRenderError;
|
|
56
|
+
constructor(options: Options);
|
|
57
|
+
private handleResume;
|
|
58
|
+
private handleResize;
|
|
59
|
+
resolveExitPromise: () => void;
|
|
60
|
+
rejectExitPromise: (reason?: Error) => void;
|
|
61
|
+
unsubscribeExit: () => void;
|
|
62
|
+
/**
|
|
63
|
+
* Pause Ink and hand the terminal over to an external TUI (e.g. git
|
|
64
|
+
* commit editor). In non-fullscreen mode this enters the alt screen;
|
|
65
|
+
* in fullscreen mode we're already in alt so we just clear it.
|
|
66
|
+
* Call `exitAlternateScreen()` when done to restore Ink.
|
|
67
|
+
*/
|
|
68
|
+
enterAlternateScreen(): void;
|
|
69
|
+
/**
|
|
70
|
+
* Resume Ink after an external TUI handoff with a full repaint.
|
|
71
|
+
* In non-fullscreen mode this exits the alt screen back to main;
|
|
72
|
+
* in fullscreen mode we re-enter alt and clear + repaint.
|
|
73
|
+
*
|
|
74
|
+
* The re-enter matters: terminal editors (vim, nano, less) write
|
|
75
|
+
* smcup/rmcup (?1049h/?1049l), so even though we started in alt,
|
|
76
|
+
* the editor's rmcup on exit drops us to main screen. Without
|
|
77
|
+
* re-entering, the 2J below wipes the user's main-screen scrollback
|
|
78
|
+
* and subsequent renders land in main — native terminal scroll
|
|
79
|
+
* returns, fullscreen scroll is dead.
|
|
80
|
+
*/
|
|
81
|
+
exitAlternateScreen(): void;
|
|
82
|
+
onRender(): void;
|
|
83
|
+
pause(): void;
|
|
84
|
+
resume(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Reset frame buffers so the next render writes the full screen from scratch.
|
|
87
|
+
* Call this before resume() when the terminal content has been corrupted by
|
|
88
|
+
* an external process (e.g. tmux, shell, full-screen TUI).
|
|
89
|
+
*/
|
|
90
|
+
repaint(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Clear the physical terminal and force a full redraw.
|
|
93
|
+
*
|
|
94
|
+
* The traditional readline ctrl+l — clears the visible screen and
|
|
95
|
+
* redraws the current content. Also the recovery path when the terminal
|
|
96
|
+
* was cleared externally (macOS Cmd+K) and Ink's diff engine thinks
|
|
97
|
+
* unchanged cells don't need repainting. Scrollback is preserved.
|
|
98
|
+
*/
|
|
99
|
+
forceRedraw(): void;
|
|
100
|
+
/**
|
|
101
|
+
* Mark the previous frame as untrustworthy for blit, forcing the next
|
|
102
|
+
* render to do a full-damage diff instead of the per-node fast path.
|
|
103
|
+
*
|
|
104
|
+
* Lighter than forceRedraw() — no screen clear, no extra write. Call
|
|
105
|
+
* from a useLayoutEffect cleanup when unmounting a tall overlay: the
|
|
106
|
+
* blit fast path can copy stale cells from the overlay frame into rows
|
|
107
|
+
* the shrunken layout no longer reaches, leaving a ghost title/divider.
|
|
108
|
+
* onRender resets the flag at frame end so it's one-shot.
|
|
109
|
+
*/
|
|
110
|
+
invalidatePrevFrame(): void;
|
|
111
|
+
/**
|
|
112
|
+
* Called by the <AlternateScreen> component on mount/unmount.
|
|
113
|
+
* Controls cursor.y clamping in the renderer and gates alt-screen-aware
|
|
114
|
+
* behavior in SIGCONT/resize/unmount handlers. Repaints on change so
|
|
115
|
+
* the first alt-screen frame (and first main-screen frame on exit) is
|
|
116
|
+
* a full redraw with no stale diff state.
|
|
117
|
+
*/
|
|
118
|
+
setAltScreenActive(active: boolean, mouseTracking?: boolean): void;
|
|
119
|
+
get isAltScreenActive(): boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Re-assert terminal modes after a gap (>5s stdin silence or event-loop
|
|
122
|
+
* stall). Catches tmux detach→attach, ssh reconnect, and laptop
|
|
123
|
+
* sleep/wake — none of which send SIGCONT. The terminal may reset DEC
|
|
124
|
+
* private modes on reconnect; this method restores them.
|
|
125
|
+
*
|
|
126
|
+
* Always re-asserts extended key reporting and mouse tracking. Mouse
|
|
127
|
+
* tracking is idempotent (DEC private mode set-when-set is a no-op). The
|
|
128
|
+
* Kitty keyboard protocol is NOT — CSI >1u is a stack push, so we pop
|
|
129
|
+
* first to keep depth balanced (pop on empty stack is a no-op per spec,
|
|
130
|
+
* so after a terminal reset this still restores depth 0→1). Without the
|
|
131
|
+
* pop, each >5s idle gap adds a stack entry, and the single pop on exit
|
|
132
|
+
* or suspend can't drain them — the shell is left in CSI u mode where
|
|
133
|
+
* Ctrl+C/Ctrl+D leak as escape sequences. The alt-screen
|
|
134
|
+
* re-entry (ERASE_SCREEN + frame reset) is NOT idempotent — it blanks the
|
|
135
|
+
* screen — so it's opt-in via includeAltScreen. The stdin-gap caller fires
|
|
136
|
+
* on ordinary >5s idle + keypress and must not erase; the event-loop stall
|
|
137
|
+
* detector fires on genuine sleep/wake and opts in. tmux attach / ssh
|
|
138
|
+
* reconnect typically send a resize, which already covers alt-screen via
|
|
139
|
+
* handleResize.
|
|
140
|
+
*/
|
|
141
|
+
reassertTerminalModes: (includeAltScreen?: boolean) => void;
|
|
142
|
+
/**
|
|
143
|
+
* Mark this instance as unmounted so future unmount() calls early-return.
|
|
144
|
+
* Called by gracefulShutdown's cleanupTerminalModes() after it has sent
|
|
145
|
+
* EXIT_ALT_SCREEN but before the remaining terminal-reset sequences.
|
|
146
|
+
* Without this, signal-exit's deferred ink.unmount() (triggered by
|
|
147
|
+
* process.exit()) runs the full unmount path: onRender() + writeSync
|
|
148
|
+
* cleanup block + updateContainerSync → AlternateScreen unmount cleanup.
|
|
149
|
+
* The result is 2-3 redundant EXIT_ALT_SCREEN sequences landing on the
|
|
150
|
+
* main screen AFTER printResumeHint(), which tmux (at least) interprets
|
|
151
|
+
* as restoring the saved cursor position — clobbering the resume hint.
|
|
152
|
+
*/
|
|
153
|
+
detachForShutdown(): void;
|
|
154
|
+
/** @see drainStdin */
|
|
155
|
+
drainStdin(): void;
|
|
156
|
+
/**
|
|
157
|
+
* Re-enter alt-screen, clear, home, re-enable mouse tracking, and reset
|
|
158
|
+
* frame buffers so the next render repaints from scratch. Self-heal for
|
|
159
|
+
* SIGCONT, resize, and stdin-gap/event-loop-stall (sleep/wake) — any of
|
|
160
|
+
* which can leave the terminal in main-screen mode while altScreenActive
|
|
161
|
+
* stays true. ENTER_ALT_SCREEN is a terminal-side no-op if already in alt.
|
|
162
|
+
*/
|
|
163
|
+
private reenterAltScreen;
|
|
164
|
+
/**
|
|
165
|
+
* Seed prev/back frames with full-size BLANK screens (rows×cols of empty
|
|
166
|
+
* cells, not 0×0). In alt-screen mode, next.screen.height is always
|
|
167
|
+
* terminalRows; if prev.screen.height is 0 (emptyFrame's default),
|
|
168
|
+
* log-update sees heightDelta > 0 ('growing') and calls renderFrameSlice,
|
|
169
|
+
* whose trailing per-row CR+LF at the last row scrolls the alt screen,
|
|
170
|
+
* permanently desyncing the virtual and physical cursors by 1 row.
|
|
171
|
+
*
|
|
172
|
+
* With a rows×cols blank prev, heightDelta === 0 → standard diffEach
|
|
173
|
+
* → moveCursorTo (CSI cursorMove, no LF, no scroll).
|
|
174
|
+
*
|
|
175
|
+
* viewport.height = rows + 1 matches the renderer's alt-screen output,
|
|
176
|
+
* preventing a spurious resize trigger on the first frame. cursor.y = 0
|
|
177
|
+
* matches the physical cursor after ENTER_ALT_SCREEN + CSI H (home).
|
|
178
|
+
*/
|
|
179
|
+
private resetFramesForAltScreen;
|
|
180
|
+
/**
|
|
181
|
+
* Copy the current selection to the clipboard without clearing the
|
|
182
|
+
* highlight. Matches iTerm2's copy-on-select behavior where the selected
|
|
183
|
+
* region stays visible after the automatic copy.
|
|
184
|
+
*/
|
|
185
|
+
copySelectionNoClear(): string;
|
|
186
|
+
/**
|
|
187
|
+
* Copy the current text selection to the system clipboard via OSC 52
|
|
188
|
+
* and clear the selection. Returns the copied text (empty if no selection).
|
|
189
|
+
*/
|
|
190
|
+
copySelection(): string;
|
|
191
|
+
/** Clear the current text selection without copying. */
|
|
192
|
+
clearTextSelection(): void;
|
|
193
|
+
/**
|
|
194
|
+
* Set the search highlight query. Non-empty → all visible occurrences
|
|
195
|
+
* are inverted (SGR 7) on the next frame; first one also underlined.
|
|
196
|
+
* Empty → clears (prevFrameContaminated handles the frame after). Same
|
|
197
|
+
* damage-tracking machinery as selection — setCellStyleId doesn't track
|
|
198
|
+
* damage, so the overlay forces full-frame damage while active.
|
|
199
|
+
*/
|
|
200
|
+
setSearchHighlight(query: string): void;
|
|
201
|
+
/** Paint an EXISTING DOM subtree to a fresh Screen at its natural
|
|
202
|
+
* height, scan for query. Returns positions relative to the element's
|
|
203
|
+
* bounding box (row 0 = element top).
|
|
204
|
+
*
|
|
205
|
+
* The element comes from the MAIN tree — built with all real
|
|
206
|
+
* providers, yoga already computed. We paint it to a fresh buffer
|
|
207
|
+
* with offsets so it lands at (0,0). Same paint path as the main
|
|
208
|
+
* render. Zero drift. No second React root, no context bridge.
|
|
209
|
+
*
|
|
210
|
+
* ~1-2ms (paint only, no reconcile — the DOM is already built). */
|
|
211
|
+
scanElementSubtree(el: dom.DOMElement): MatchPosition[];
|
|
212
|
+
/** Set the position-based highlight state. Every frame, writes CURRENT
|
|
213
|
+
* style at positions[currentIdx] + rowOffset. null clears. The scan-
|
|
214
|
+
* highlight (inverse on all matches) still runs — this overlays yellow
|
|
215
|
+
* on top. rowOffset changes as the user scrolls (= message's current
|
|
216
|
+
* screen-top); positions stay stable (message-relative). */
|
|
217
|
+
setSearchPositions(state: {
|
|
218
|
+
positions: MatchPosition[];
|
|
219
|
+
rowOffset: number;
|
|
220
|
+
currentIdx: number;
|
|
221
|
+
} | null): void;
|
|
222
|
+
/**
|
|
223
|
+
* Set the selection highlight background color. Replaces the per-cell
|
|
224
|
+
* SGR-7 inverse with a solid theme-aware bg (matches native terminal
|
|
225
|
+
* selection). Accepts the same color formats as Text backgroundColor
|
|
226
|
+
* (rgb(), ansi:name, #hex, ansi256()) — colorize() routes through
|
|
227
|
+
* chalk so the tmux/xterm.js level clamps in colorize.ts apply and
|
|
228
|
+
* the emitted SGR is correct for the current terminal.
|
|
229
|
+
*
|
|
230
|
+
* Called by React-land once theme is known (ScrollKeybindingHandler's
|
|
231
|
+
* useEffect watching useTheme). Before that call, withSelectionBg
|
|
232
|
+
* falls back to withInverse so selection still renders on the first
|
|
233
|
+
* frame; the effect fires before any mouse input so the fallback is
|
|
234
|
+
* unobservable in practice.
|
|
235
|
+
*/
|
|
236
|
+
setSelectionBgColor(color: string): void;
|
|
237
|
+
/**
|
|
238
|
+
* Capture text from rows about to scroll out of the viewport during
|
|
239
|
+
* drag-to-scroll. Must be called BEFORE the ScrollBox scrolls so the
|
|
240
|
+
* screen buffer still holds the outgoing content. Accumulated into
|
|
241
|
+
* the selection state and joined back in by getSelectedText.
|
|
242
|
+
*/
|
|
243
|
+
captureScrolledRows(firstRow: number, lastRow: number, side: 'above' | 'below'): void;
|
|
244
|
+
/**
|
|
245
|
+
* Shift anchor AND focus by dRow, clamped to [minRow, maxRow]. Used by
|
|
246
|
+
* keyboard scroll handlers (PgUp/PgDn etc.) so the highlight tracks the
|
|
247
|
+
* content instead of disappearing. Unlike shiftAnchor (drag-to-scroll),
|
|
248
|
+
* this moves BOTH endpoints — the user isn't holding the mouse at one
|
|
249
|
+
* edge. Supplies screen.width for the col-reset-on-clamp boundary.
|
|
250
|
+
*/
|
|
251
|
+
shiftSelectionForScroll(dRow: number, minRow: number, maxRow: number): void;
|
|
252
|
+
/**
|
|
253
|
+
* Keyboard selection extension (shift+arrow/home/end). Moves focus;
|
|
254
|
+
* anchor stays fixed so the highlight grows or shrinks relative to it.
|
|
255
|
+
* Left/right wrap across row boundaries — native macOS text-edit
|
|
256
|
+
* behavior: shift+left at col 0 wraps to end of the previous row.
|
|
257
|
+
* Up/down clamp at viewport edges (no scroll-to-extend yet). Drops to
|
|
258
|
+
* char mode. No-op outside alt-screen or without an active selection.
|
|
259
|
+
*/
|
|
260
|
+
moveSelectionFocus(move: FocusMove): void;
|
|
261
|
+
/** Whether there is an active text selection. */
|
|
262
|
+
hasTextSelection(): boolean;
|
|
263
|
+
/**
|
|
264
|
+
* Subscribe to selection state changes. Fires whenever the selection
|
|
265
|
+
* is started, updated, cleared, or copied. Returns an unsubscribe fn.
|
|
266
|
+
*/
|
|
267
|
+
subscribeToSelectionChange(cb: () => void): () => void;
|
|
268
|
+
private notifySelectionChange;
|
|
269
|
+
/**
|
|
270
|
+
* Hit-test the rendered DOM tree at (col, row) and bubble a ClickEvent
|
|
271
|
+
* from the deepest hit node up through ancestors with onClick handlers.
|
|
272
|
+
* Returns true if a DOM handler consumed the click. Gated on
|
|
273
|
+
* altScreenActive — clicks only make sense with a fixed viewport where
|
|
274
|
+
* nodeCache rects map 1:1 to terminal cells (no scrollback offset).
|
|
275
|
+
*/
|
|
276
|
+
dispatchClick(col: number, row: number): boolean;
|
|
277
|
+
dispatchHover(col: number, row: number): void;
|
|
278
|
+
dispatchKeyboardEvent(parsedKey: ParsedKey): void;
|
|
279
|
+
/**
|
|
280
|
+
* Look up the URL at (col, row) in the current front frame. Checks for
|
|
281
|
+
* an OSC 8 hyperlink first, then falls back to scanning the row for a
|
|
282
|
+
* plain-text URL (mouse tracking intercepts the terminal's native
|
|
283
|
+
* Cmd+Click URL detection, so we replicate it). This is a pure lookup
|
|
284
|
+
* with no side effects — call it synchronously at click time so the
|
|
285
|
+
* result reflects the screen the user actually clicked on, then defer
|
|
286
|
+
* the browser-open action via a timer.
|
|
287
|
+
*/
|
|
288
|
+
getHyperlinkAt(col: number, row: number): string | undefined;
|
|
289
|
+
/**
|
|
290
|
+
* Optional callback fired when clicking an OSC 8 hyperlink in fullscreen
|
|
291
|
+
* mode. Set by FullscreenLayout via useLayoutEffect.
|
|
292
|
+
*/
|
|
293
|
+
onHyperlinkClick: ((url: string) => void) | undefined;
|
|
294
|
+
/**
|
|
295
|
+
* Stable prototype wrapper for onHyperlinkClick. Passed to <App> as
|
|
296
|
+
* onOpenHyperlink so the prop is a bound method (autoBind'd) that reads
|
|
297
|
+
* the mutable field at call time — not the undefined-at-render value.
|
|
298
|
+
*/
|
|
299
|
+
openHyperlink(url: string): void;
|
|
300
|
+
/**
|
|
301
|
+
* Handle a double- or triple-click at (col, row): select the word or
|
|
302
|
+
* line under the cursor by reading the current screen buffer. Called on
|
|
303
|
+
* PRESS (not release) so the highlight appears immediately and drag can
|
|
304
|
+
* extend the selection word-by-word / line-by-line. Falls back to
|
|
305
|
+
* char-mode startSelection if the click lands on a noSelect cell.
|
|
306
|
+
*/
|
|
307
|
+
handleMultiClick(col: number, row: number, count: 2 | 3): void;
|
|
308
|
+
/**
|
|
309
|
+
* Handle a drag-motion at (col, row). In char mode updates focus to the
|
|
310
|
+
* exact cell. In word/line mode snaps to word/line boundaries so the
|
|
311
|
+
* selection extends by word/line like native macOS. Gated on
|
|
312
|
+
* altScreenActive for the same reason as dispatchClick.
|
|
313
|
+
*/
|
|
314
|
+
handleSelectionDrag(col: number, row: number): void;
|
|
315
|
+
private stdinListeners;
|
|
316
|
+
private wasRawMode;
|
|
317
|
+
suspendStdin(): void;
|
|
318
|
+
resumeStdin(): void;
|
|
319
|
+
private writeRaw;
|
|
320
|
+
private setCursorDeclaration;
|
|
321
|
+
render(node: ReactNode): void;
|
|
322
|
+
unmount(error?: Error | number | null): void;
|
|
323
|
+
waitUntilExit(): Promise<void>;
|
|
324
|
+
resetLineCount(): void;
|
|
325
|
+
/**
|
|
326
|
+
* Replace char/hyperlink pools with fresh instances to prevent unbounded
|
|
327
|
+
* growth during long sessions. Migrates the front frame's screen IDs into
|
|
328
|
+
* the new pools so diffing remains correct. The back frame doesn't need
|
|
329
|
+
* migration — resetScreen zeros it before any reads.
|
|
330
|
+
*
|
|
331
|
+
* Call between conversation turns or periodically.
|
|
332
|
+
*/
|
|
333
|
+
resetPools(): void;
|
|
334
|
+
patchConsole(): () => void;
|
|
335
|
+
/**
|
|
336
|
+
* Intercept process.stderr.write so stray writes (config.ts, hooks.ts,
|
|
337
|
+
* third-party deps) don't corrupt the alt-screen buffer. patchConsole only
|
|
338
|
+
* hooks console.* methods — direct stderr writes bypass it, land at the
|
|
339
|
+
* parked cursor, scroll the alt-screen, and desync frontFrame from the
|
|
340
|
+
* physical terminal. Next diff writes only changed-in-React cells at
|
|
341
|
+
* absolute coords → interleaved garbage.
|
|
342
|
+
*
|
|
343
|
+
* Swallows the write (routes text to the debug log) and, in alt-screen,
|
|
344
|
+
* forces a full-damage repaint as a defensive recovery. Not patching
|
|
345
|
+
* process.stdout — Ink itself writes there.
|
|
346
|
+
*/
|
|
347
|
+
private patchStderr;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Discard pending stdin bytes so in-flight escape sequences (mouse tracking
|
|
351
|
+
* reports, bracketed-paste markers) don't leak to the shell after exit.
|
|
352
|
+
*
|
|
353
|
+
* Two layers of trickiness:
|
|
354
|
+
*
|
|
355
|
+
* 1. setRawMode is termios, not fcntl — the stdin fd stays blocking, so
|
|
356
|
+
* readSync on it would hang forever. Node doesn't expose fcntl, so we
|
|
357
|
+
* open /dev/tty fresh with O_NONBLOCK (all fds to the controlling
|
|
358
|
+
* terminal share one line-discipline input queue).
|
|
359
|
+
*
|
|
360
|
+
* 2. By the time forceExit calls this, detachForShutdown has already put
|
|
361
|
+
* the TTY back in cooked (canonical) mode. Canonical mode line-buffers
|
|
362
|
+
* input until newline, so O_NONBLOCK reads return EAGAIN even when
|
|
363
|
+
* mouse bytes are sitting in the buffer. We briefly re-enter raw mode
|
|
364
|
+
* so reads return any available bytes, then restore cooked mode.
|
|
365
|
+
*
|
|
366
|
+
* Safe to call multiple times. Call as LATE as possible in the exit path:
|
|
367
|
+
* DISABLE_MOUSE_TRACKING has terminal round-trip latency, so events can
|
|
368
|
+
* arrive for a few ms after it's written.
|
|
369
|
+
*/
|
|
370
|
+
export declare function drainStdin(stdin?: NodeJS.ReadStream): void;
|
|
371
|
+
//# sourceMappingURL=ink.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ink.d.ts","sourceRoot":"","sources":["../../src/ink/ink.tsx"],"names":[],"mappings":"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"}
|