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 @@
|
|
|
1
|
+
{"version":3,"file":"Text.js","sourceRoot":"","sources":["../../../src/ink/components/Text.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/ink/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,KAAK,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/ink/constants.ts"],"names":[],"mappings":";;;AAAA,sEAAsE;AACzD,QAAA,iBAAiB,GAAG,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devtools.d.ts","sourceRoot":"","sources":["../../src/ink/devtools.ts"],"names":[],"mappings":";AACA,wBAAiB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../src/ink/devtools.ts"],"names":[],"mappings":";;AAAA,kDAAkD;AAClD,kBAAe,EAAE,CAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { FocusManager } from './focus.js';
|
|
2
|
+
import type { LayoutNode } from './layout/node.js';
|
|
3
|
+
import type { Styles, TextStyles } from './styles.js';
|
|
4
|
+
type InkNode = {
|
|
5
|
+
parentNode: DOMElement | undefined;
|
|
6
|
+
yogaNode?: LayoutNode;
|
|
7
|
+
style: Styles;
|
|
8
|
+
};
|
|
9
|
+
export type TextName = '#text';
|
|
10
|
+
export type ElementNames = 'ink-root' | 'ink-box' | 'ink-text' | 'ink-virtual-text' | 'ink-link' | 'ink-progress' | 'ink-raw-ansi';
|
|
11
|
+
export type NodeNames = ElementNames | TextName;
|
|
12
|
+
export type DOMElement = {
|
|
13
|
+
nodeName: ElementNames;
|
|
14
|
+
attributes: Record<string, DOMNodeAttribute>;
|
|
15
|
+
childNodes: DOMNode[];
|
|
16
|
+
textStyles?: TextStyles;
|
|
17
|
+
onComputeLayout?: () => void;
|
|
18
|
+
onRender?: () => void;
|
|
19
|
+
onImmediateRender?: () => void;
|
|
20
|
+
hasRenderedContent?: boolean;
|
|
21
|
+
dirty: boolean;
|
|
22
|
+
isHidden?: boolean;
|
|
23
|
+
_eventHandlers?: Record<string, unknown>;
|
|
24
|
+
scrollTop?: number;
|
|
25
|
+
pendingScrollDelta?: number;
|
|
26
|
+
scrollClampMin?: number;
|
|
27
|
+
scrollClampMax?: number;
|
|
28
|
+
scrollHeight?: number;
|
|
29
|
+
scrollViewportHeight?: number;
|
|
30
|
+
scrollViewportTop?: number;
|
|
31
|
+
stickyScroll?: boolean;
|
|
32
|
+
scrollAnchor?: {
|
|
33
|
+
el: DOMElement;
|
|
34
|
+
offset: number;
|
|
35
|
+
};
|
|
36
|
+
focusManager?: FocusManager;
|
|
37
|
+
debugOwnerChain?: string[];
|
|
38
|
+
} & InkNode;
|
|
39
|
+
export type TextNode = {
|
|
40
|
+
nodeName: TextName;
|
|
41
|
+
nodeValue: string;
|
|
42
|
+
} & InkNode;
|
|
43
|
+
export type DOMNode<T = {
|
|
44
|
+
nodeName: NodeNames;
|
|
45
|
+
}> = T extends {
|
|
46
|
+
nodeName: infer U;
|
|
47
|
+
} ? U extends '#text' ? TextNode : DOMElement : never;
|
|
48
|
+
export type DOMNodeAttribute = boolean | string | number;
|
|
49
|
+
export declare const createNode: (nodeName: ElementNames) => DOMElement;
|
|
50
|
+
export declare const appendChildNode: (node: DOMElement, childNode: DOMElement) => void;
|
|
51
|
+
export declare const insertBeforeNode: (node: DOMElement, newChildNode: DOMNode, beforeChildNode: DOMNode) => void;
|
|
52
|
+
export declare const removeChildNode: (node: DOMElement, removeNode: DOMNode) => void;
|
|
53
|
+
export declare const setAttribute: (node: DOMElement, key: string, value: DOMNodeAttribute) => void;
|
|
54
|
+
export declare const setStyle: (node: DOMNode, style: Styles | undefined) => void;
|
|
55
|
+
export declare const setTextStyles: (node: DOMElement, textStyles: TextStyles) => void;
|
|
56
|
+
export declare const createTextNode: (text: string) => TextNode;
|
|
57
|
+
/**
|
|
58
|
+
* Mark a node and all its ancestors as dirty for re-rendering.
|
|
59
|
+
* Also marks yoga dirty for text remeasurement if this is a text node.
|
|
60
|
+
*/
|
|
61
|
+
export declare const markDirty: (node?: DOMNode) => void;
|
|
62
|
+
export declare const scheduleRenderFrom: (node?: DOMNode) => void;
|
|
63
|
+
export declare const setTextNodeValue: (node: TextNode, text: string) => void;
|
|
64
|
+
export declare const clearYogaNodeReferences: (node: DOMElement | TextNode) => void;
|
|
65
|
+
/**
|
|
66
|
+
* Find the React component stack responsible for content at screen row `y`.
|
|
67
|
+
*
|
|
68
|
+
* DFS the DOM tree accumulating yoga offsets. Returns the debugOwnerChain of
|
|
69
|
+
* the deepest node whose bounding box contains `y`. Called from ink.tsx when
|
|
70
|
+
* log-update triggers a full reset, to attribute the flicker to its source.
|
|
71
|
+
*
|
|
72
|
+
* Only useful when CLAUDE_CODE_DEBUG_REPAINTS is set (otherwise chains are
|
|
73
|
+
* undefined and this returns []).
|
|
74
|
+
*/
|
|
75
|
+
export declare function findOwnerChainAtRow(root: DOMElement, y: number): string[];
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=dom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../src/ink/dom.ts"],"names":[],"mappings":"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"}
|
package/dist/ink/dom.js
ADDED
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.clearYogaNodeReferences = exports.setTextNodeValue = exports.scheduleRenderFrom = exports.markDirty = exports.createTextNode = exports.setTextStyles = exports.setStyle = exports.setAttribute = exports.removeChildNode = exports.insertBeforeNode = exports.appendChildNode = exports.createNode = void 0;
|
|
7
|
+
exports.findOwnerChainAtRow = findOwnerChainAtRow;
|
|
8
|
+
const engine_js_1 = require("./layout/engine.js");
|
|
9
|
+
const node_js_1 = require("./layout/node.js");
|
|
10
|
+
const measure_text_js_1 = __importDefault(require("./measure-text.js"));
|
|
11
|
+
const node_cache_js_1 = require("./node-cache.js");
|
|
12
|
+
const squash_text_nodes_js_1 = __importDefault(require("./squash-text-nodes.js"));
|
|
13
|
+
const tabstops_js_1 = require("./tabstops.js");
|
|
14
|
+
const wrap_text_js_1 = __importDefault(require("./wrap-text.js"));
|
|
15
|
+
const createNode = (nodeName) => {
|
|
16
|
+
const needsYogaNode = nodeName !== 'ink-virtual-text' &&
|
|
17
|
+
nodeName !== 'ink-link' &&
|
|
18
|
+
nodeName !== 'ink-progress';
|
|
19
|
+
const node = {
|
|
20
|
+
nodeName,
|
|
21
|
+
style: {},
|
|
22
|
+
attributes: {},
|
|
23
|
+
childNodes: [],
|
|
24
|
+
parentNode: undefined,
|
|
25
|
+
yogaNode: needsYogaNode ? (0, engine_js_1.createLayoutNode)() : undefined,
|
|
26
|
+
dirty: false,
|
|
27
|
+
};
|
|
28
|
+
if (nodeName === 'ink-text') {
|
|
29
|
+
node.yogaNode?.setMeasureFunc(measureTextNode.bind(null, node));
|
|
30
|
+
}
|
|
31
|
+
else if (nodeName === 'ink-raw-ansi') {
|
|
32
|
+
node.yogaNode?.setMeasureFunc(measureRawAnsiNode.bind(null, node));
|
|
33
|
+
}
|
|
34
|
+
return node;
|
|
35
|
+
};
|
|
36
|
+
exports.createNode = createNode;
|
|
37
|
+
const appendChildNode = (node, childNode) => {
|
|
38
|
+
if (childNode.parentNode) {
|
|
39
|
+
(0, exports.removeChildNode)(childNode.parentNode, childNode);
|
|
40
|
+
}
|
|
41
|
+
childNode.parentNode = node;
|
|
42
|
+
node.childNodes.push(childNode);
|
|
43
|
+
if (childNode.yogaNode) {
|
|
44
|
+
node.yogaNode?.insertChild(childNode.yogaNode, node.yogaNode.getChildCount());
|
|
45
|
+
}
|
|
46
|
+
(0, exports.markDirty)(node);
|
|
47
|
+
};
|
|
48
|
+
exports.appendChildNode = appendChildNode;
|
|
49
|
+
const insertBeforeNode = (node, newChildNode, beforeChildNode) => {
|
|
50
|
+
if (newChildNode.parentNode) {
|
|
51
|
+
(0, exports.removeChildNode)(newChildNode.parentNode, newChildNode);
|
|
52
|
+
}
|
|
53
|
+
newChildNode.parentNode = node;
|
|
54
|
+
const index = node.childNodes.indexOf(beforeChildNode);
|
|
55
|
+
if (index >= 0) {
|
|
56
|
+
// Calculate yoga index BEFORE modifying childNodes.
|
|
57
|
+
// We can't use DOM index directly because some children (like ink-progress,
|
|
58
|
+
// ink-link, ink-virtual-text) don't have yogaNodes, so DOM indices don't
|
|
59
|
+
// match yoga indices.
|
|
60
|
+
let yogaIndex = 0;
|
|
61
|
+
if (newChildNode.yogaNode && node.yogaNode) {
|
|
62
|
+
for (let i = 0; i < index; i++) {
|
|
63
|
+
if (node.childNodes[i]?.yogaNode) {
|
|
64
|
+
yogaIndex++;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
node.childNodes.splice(index, 0, newChildNode);
|
|
69
|
+
if (newChildNode.yogaNode && node.yogaNode) {
|
|
70
|
+
node.yogaNode.insertChild(newChildNode.yogaNode, yogaIndex);
|
|
71
|
+
}
|
|
72
|
+
(0, exports.markDirty)(node);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
node.childNodes.push(newChildNode);
|
|
76
|
+
if (newChildNode.yogaNode) {
|
|
77
|
+
node.yogaNode?.insertChild(newChildNode.yogaNode, node.yogaNode.getChildCount());
|
|
78
|
+
}
|
|
79
|
+
(0, exports.markDirty)(node);
|
|
80
|
+
};
|
|
81
|
+
exports.insertBeforeNode = insertBeforeNode;
|
|
82
|
+
const removeChildNode = (node, removeNode) => {
|
|
83
|
+
if (removeNode.yogaNode) {
|
|
84
|
+
removeNode.parentNode?.yogaNode?.removeChild(removeNode.yogaNode);
|
|
85
|
+
}
|
|
86
|
+
// Collect cached rects from the removed subtree so they can be cleared
|
|
87
|
+
collectRemovedRects(node, removeNode);
|
|
88
|
+
removeNode.parentNode = undefined;
|
|
89
|
+
const index = node.childNodes.indexOf(removeNode);
|
|
90
|
+
if (index >= 0) {
|
|
91
|
+
node.childNodes.splice(index, 1);
|
|
92
|
+
}
|
|
93
|
+
(0, exports.markDirty)(node);
|
|
94
|
+
};
|
|
95
|
+
exports.removeChildNode = removeChildNode;
|
|
96
|
+
function collectRemovedRects(parent, removed, underAbsolute = false) {
|
|
97
|
+
if (!removed || removed.nodeName === '#text')
|
|
98
|
+
return;
|
|
99
|
+
const elem = removed;
|
|
100
|
+
// If this node or any ancestor in the removed subtree was absolute,
|
|
101
|
+
// its painted pixels may overlap non-siblings — flag for global blit
|
|
102
|
+
// disable. Normal-flow removals only affect direct siblings, which
|
|
103
|
+
// hasRemovedChild already handles.
|
|
104
|
+
const isAbsolute = underAbsolute || elem.style?.position === 'absolute';
|
|
105
|
+
const cached = node_cache_js_1.nodeCache.get(elem);
|
|
106
|
+
if (cached) {
|
|
107
|
+
(0, node_cache_js_1.addPendingClear)(parent, cached, isAbsolute);
|
|
108
|
+
node_cache_js_1.nodeCache.delete(elem);
|
|
109
|
+
}
|
|
110
|
+
const childNodes = Array.isArray(elem.childNodes) ? [...elem.childNodes] : [];
|
|
111
|
+
for (const child of childNodes) {
|
|
112
|
+
if (!child)
|
|
113
|
+
continue;
|
|
114
|
+
collectRemovedRects(parent, child, isAbsolute);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const setAttribute = (node, key, value) => {
|
|
118
|
+
// Skip 'children' - React handles children via appendChild/removeChild,
|
|
119
|
+
// not attributes. React always passes a new children reference, so
|
|
120
|
+
// tracking it as an attribute would mark everything dirty every render.
|
|
121
|
+
if (key === 'children') {
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
// Skip if unchanged
|
|
125
|
+
if (node.attributes[key] === value) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
node.attributes[key] = value;
|
|
129
|
+
(0, exports.markDirty)(node);
|
|
130
|
+
};
|
|
131
|
+
exports.setAttribute = setAttribute;
|
|
132
|
+
const setStyle = (node, style) => {
|
|
133
|
+
const nextStyle = style ?? {};
|
|
134
|
+
// Compare style properties to avoid marking dirty unnecessarily.
|
|
135
|
+
// React creates new style objects on every render even when unchanged.
|
|
136
|
+
if (stylesEqual(node.style, nextStyle)) {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
node.style = nextStyle;
|
|
140
|
+
(0, exports.markDirty)(node);
|
|
141
|
+
};
|
|
142
|
+
exports.setStyle = setStyle;
|
|
143
|
+
const setTextStyles = (node, textStyles) => {
|
|
144
|
+
// Same dirty-check guard as setStyle: React (and buildTextStyles in Text.tsx)
|
|
145
|
+
// allocate a new textStyles object on every render even when values are
|
|
146
|
+
// unchanged, so compare by value to avoid markDirty -> yoga re-measurement
|
|
147
|
+
// on every Text re-render.
|
|
148
|
+
if (shallowEqual(node.textStyles, textStyles)) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
node.textStyles = textStyles;
|
|
152
|
+
(0, exports.markDirty)(node);
|
|
153
|
+
};
|
|
154
|
+
exports.setTextStyles = setTextStyles;
|
|
155
|
+
function stylesEqual(a, b) {
|
|
156
|
+
return shallowEqual(a, b);
|
|
157
|
+
}
|
|
158
|
+
function shallowEqual(a, b) {
|
|
159
|
+
// Fast path: same object reference (or both undefined)
|
|
160
|
+
if (a === b)
|
|
161
|
+
return true;
|
|
162
|
+
if (a === undefined || b === undefined)
|
|
163
|
+
return false;
|
|
164
|
+
// Get all keys from both objects
|
|
165
|
+
const aKeys = Object.keys(a);
|
|
166
|
+
const bKeys = Object.keys(b);
|
|
167
|
+
// Different number of properties
|
|
168
|
+
if (aKeys.length !== bKeys.length)
|
|
169
|
+
return false;
|
|
170
|
+
// Compare each property
|
|
171
|
+
for (const key of aKeys) {
|
|
172
|
+
if (a[key] !== b[key])
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
return true;
|
|
176
|
+
}
|
|
177
|
+
const createTextNode = (text) => {
|
|
178
|
+
const node = {
|
|
179
|
+
nodeName: '#text',
|
|
180
|
+
nodeValue: text,
|
|
181
|
+
yogaNode: undefined,
|
|
182
|
+
parentNode: undefined,
|
|
183
|
+
style: {},
|
|
184
|
+
};
|
|
185
|
+
(0, exports.setTextNodeValue)(node, text);
|
|
186
|
+
return node;
|
|
187
|
+
};
|
|
188
|
+
exports.createTextNode = createTextNode;
|
|
189
|
+
const measureTextNode = function (node, width, widthMode) {
|
|
190
|
+
const rawText = node.nodeName === '#text' ? node.nodeValue : (0, squash_text_nodes_js_1.default)(node);
|
|
191
|
+
// Expand tabs for measurement (worst case: 8 spaces each).
|
|
192
|
+
// Actual tab expansion happens in output.ts based on screen position.
|
|
193
|
+
const text = (0, tabstops_js_1.expandTabs)(rawText);
|
|
194
|
+
const dimensions = (0, measure_text_js_1.default)(text, width);
|
|
195
|
+
// Text fits into container, no need to wrap
|
|
196
|
+
if (dimensions.width <= width) {
|
|
197
|
+
return dimensions;
|
|
198
|
+
}
|
|
199
|
+
// This is happening when <Box> is shrinking child nodes and layout asks
|
|
200
|
+
// if we can fit this text node in a <1px space, so we just say "no"
|
|
201
|
+
if (dimensions.width >= 1 && width > 0 && width < 1) {
|
|
202
|
+
return dimensions;
|
|
203
|
+
}
|
|
204
|
+
// For text with embedded newlines (pre-wrapped content), avoid re-wrapping
|
|
205
|
+
// at measurement width when layout is asking for intrinsic size (Undefined mode).
|
|
206
|
+
// This prevents height inflation during min/max size checks.
|
|
207
|
+
//
|
|
208
|
+
// However, when layout provides an actual constraint (Exactly or AtMost mode),
|
|
209
|
+
// we must respect it and measure at that width. Otherwise, if the actual
|
|
210
|
+
// rendering width is smaller than the natural width, the text will wrap to
|
|
211
|
+
// more lines than layout expects, causing content to be truncated.
|
|
212
|
+
if (text.includes('\n') && widthMode === node_js_1.LayoutMeasureMode.Undefined) {
|
|
213
|
+
const effectiveWidth = Math.max(width, dimensions.width);
|
|
214
|
+
return (0, measure_text_js_1.default)(text, effectiveWidth);
|
|
215
|
+
}
|
|
216
|
+
const textWrap = node.style?.textWrap ?? 'wrap';
|
|
217
|
+
const wrappedText = (0, wrap_text_js_1.default)(text, width, textWrap);
|
|
218
|
+
return (0, measure_text_js_1.default)(wrappedText, width);
|
|
219
|
+
};
|
|
220
|
+
// ink-raw-ansi nodes hold pre-rendered ANSI strings with known dimensions.
|
|
221
|
+
// No stringWidth, no wrapping, no tab expansion — the producer (e.g. ColorDiff)
|
|
222
|
+
// already wrapped to the target width and each line is exactly one terminal row.
|
|
223
|
+
const measureRawAnsiNode = function (node) {
|
|
224
|
+
return {
|
|
225
|
+
width: node.attributes['rawWidth'],
|
|
226
|
+
height: node.attributes['rawHeight'],
|
|
227
|
+
};
|
|
228
|
+
};
|
|
229
|
+
/**
|
|
230
|
+
* Mark a node and all its ancestors as dirty for re-rendering.
|
|
231
|
+
* Also marks yoga dirty for text remeasurement if this is a text node.
|
|
232
|
+
*/
|
|
233
|
+
const markDirty = (node) => {
|
|
234
|
+
let current = node;
|
|
235
|
+
let markedYoga = false;
|
|
236
|
+
while (current) {
|
|
237
|
+
if (current.nodeName !== '#text') {
|
|
238
|
+
;
|
|
239
|
+
current.dirty = true;
|
|
240
|
+
// Only mark yoga dirty on leaf nodes that have measure functions
|
|
241
|
+
if (!markedYoga &&
|
|
242
|
+
(current.nodeName === 'ink-text' ||
|
|
243
|
+
current.nodeName === 'ink-raw-ansi') &&
|
|
244
|
+
current.yogaNode) {
|
|
245
|
+
current.yogaNode.markDirty();
|
|
246
|
+
markedYoga = true;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
current = current.parentNode;
|
|
250
|
+
}
|
|
251
|
+
};
|
|
252
|
+
exports.markDirty = markDirty;
|
|
253
|
+
// Walk to root and call its onRender (the throttled scheduleRender). Use for
|
|
254
|
+
// DOM-level mutations (scrollTop changes) that should trigger an Ink frame
|
|
255
|
+
// without going through React's reconciler. Pair with markDirty() so the
|
|
256
|
+
// renderer knows which subtree to re-evaluate.
|
|
257
|
+
const scheduleRenderFrom = (node) => {
|
|
258
|
+
let cur = node;
|
|
259
|
+
while (cur?.parentNode)
|
|
260
|
+
cur = cur.parentNode;
|
|
261
|
+
if (cur && cur.nodeName !== '#text')
|
|
262
|
+
cur.onRender?.();
|
|
263
|
+
};
|
|
264
|
+
exports.scheduleRenderFrom = scheduleRenderFrom;
|
|
265
|
+
const setTextNodeValue = (node, text) => {
|
|
266
|
+
if (typeof text !== 'string') {
|
|
267
|
+
text = String(text);
|
|
268
|
+
}
|
|
269
|
+
// Skip if unchanged
|
|
270
|
+
if (node.nodeValue === text) {
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
node.nodeValue = text;
|
|
274
|
+
(0, exports.markDirty)(node);
|
|
275
|
+
};
|
|
276
|
+
exports.setTextNodeValue = setTextNodeValue;
|
|
277
|
+
function isDOMElement(node) {
|
|
278
|
+
return node.nodeName !== '#text';
|
|
279
|
+
}
|
|
280
|
+
// Clear yogaNode references recursively before freeing.
|
|
281
|
+
// freeRecursive() frees the node and ALL its children, so we must clear
|
|
282
|
+
// all yogaNode references to prevent dangling pointers.
|
|
283
|
+
const clearYogaNodeReferences = (node) => {
|
|
284
|
+
if ('childNodes' in node) {
|
|
285
|
+
for (const child of node.childNodes) {
|
|
286
|
+
(0, exports.clearYogaNodeReferences)(child);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
node.yogaNode = undefined;
|
|
290
|
+
};
|
|
291
|
+
exports.clearYogaNodeReferences = clearYogaNodeReferences;
|
|
292
|
+
/**
|
|
293
|
+
* Find the React component stack responsible for content at screen row `y`.
|
|
294
|
+
*
|
|
295
|
+
* DFS the DOM tree accumulating yoga offsets. Returns the debugOwnerChain of
|
|
296
|
+
* the deepest node whose bounding box contains `y`. Called from ink.tsx when
|
|
297
|
+
* log-update triggers a full reset, to attribute the flicker to its source.
|
|
298
|
+
*
|
|
299
|
+
* Only useful when CLAUDE_CODE_DEBUG_REPAINTS is set (otherwise chains are
|
|
300
|
+
* undefined and this returns []).
|
|
301
|
+
*/
|
|
302
|
+
function findOwnerChainAtRow(root, y) {
|
|
303
|
+
let best = [];
|
|
304
|
+
walk(root, 0);
|
|
305
|
+
return best;
|
|
306
|
+
function walk(node, offsetY) {
|
|
307
|
+
const yoga = node.yogaNode;
|
|
308
|
+
if (!yoga || yoga.getDisplay() === node_js_1.LayoutDisplay.None)
|
|
309
|
+
return;
|
|
310
|
+
const top = offsetY + yoga.getComputedTop();
|
|
311
|
+
const height = yoga.getComputedHeight();
|
|
312
|
+
if (y < top || y >= top + height)
|
|
313
|
+
return;
|
|
314
|
+
if (node.debugOwnerChain)
|
|
315
|
+
best = node.debugOwnerChain;
|
|
316
|
+
for (const child of node.childNodes) {
|
|
317
|
+
if (isDOMElement(child))
|
|
318
|
+
walk(child, top);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
//# sourceMappingURL=dom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom.js","sourceRoot":"","sources":["../../src/ink/dom.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Event } from './event.js';
|
|
2
|
+
/**
|
|
3
|
+
* Mouse click event. Fired on left-button release without drag, only when
|
|
4
|
+
* mouse tracking is enabled (i.e. inside <AlternateScreen>).
|
|
5
|
+
*
|
|
6
|
+
* Bubbles from the deepest hit node up through parentNode. Call
|
|
7
|
+
* stopImmediatePropagation() to prevent ancestors' onClick from firing.
|
|
8
|
+
*/
|
|
9
|
+
export declare class ClickEvent extends Event {
|
|
10
|
+
/** 0-indexed screen column of the click */
|
|
11
|
+
readonly col: number;
|
|
12
|
+
/** 0-indexed screen row of the click */
|
|
13
|
+
readonly row: number;
|
|
14
|
+
/**
|
|
15
|
+
* Click column relative to the current handler's Box (col - box.x).
|
|
16
|
+
* Recomputed by dispatchClick before each handler fires, so an onClick
|
|
17
|
+
* on a container sees coords relative to that container, not to any
|
|
18
|
+
* child the click landed on.
|
|
19
|
+
*/
|
|
20
|
+
localCol: number;
|
|
21
|
+
/** Click row relative to the current handler's Box (row - box.y). */
|
|
22
|
+
localRow: number;
|
|
23
|
+
/**
|
|
24
|
+
* True if the clicked cell has no visible content (unwritten in the
|
|
25
|
+
* screen buffer — both packed words are 0). Handlers can check this to
|
|
26
|
+
* ignore clicks on blank space to the right of text, so accidental
|
|
27
|
+
* clicks on empty terminal space don't toggle state.
|
|
28
|
+
*/
|
|
29
|
+
readonly cellIsBlank: boolean;
|
|
30
|
+
constructor(col: number, row: number, cellIsBlank: boolean);
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=click-event.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"click-event.d.ts","sourceRoot":"","sources":["../../../src/ink/events/click-event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAElC;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,2CAA2C;IAC3C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,wCAAwC;IACxC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,QAAQ,SAAI;IACZ,qEAAqE;IACrE,QAAQ,SAAI;IACZ;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;gBAEjB,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;CAM3D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ClickEvent = void 0;
|
|
4
|
+
const event_js_1 = require("./event.js");
|
|
5
|
+
/**
|
|
6
|
+
* Mouse click event. Fired on left-button release without drag, only when
|
|
7
|
+
* mouse tracking is enabled (i.e. inside <AlternateScreen>).
|
|
8
|
+
*
|
|
9
|
+
* Bubbles from the deepest hit node up through parentNode. Call
|
|
10
|
+
* stopImmediatePropagation() to prevent ancestors' onClick from firing.
|
|
11
|
+
*/
|
|
12
|
+
class ClickEvent extends event_js_1.Event {
|
|
13
|
+
constructor(col, row, cellIsBlank) {
|
|
14
|
+
super();
|
|
15
|
+
/**
|
|
16
|
+
* Click column relative to the current handler's Box (col - box.x).
|
|
17
|
+
* Recomputed by dispatchClick before each handler fires, so an onClick
|
|
18
|
+
* on a container sees coords relative to that container, not to any
|
|
19
|
+
* child the click landed on.
|
|
20
|
+
*/
|
|
21
|
+
this.localCol = 0;
|
|
22
|
+
/** Click row relative to the current handler's Box (row - box.y). */
|
|
23
|
+
this.localRow = 0;
|
|
24
|
+
this.col = col;
|
|
25
|
+
this.row = row;
|
|
26
|
+
this.cellIsBlank = cellIsBlank;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
exports.ClickEvent = ClickEvent;
|
|
30
|
+
//# sourceMappingURL=click-event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"click-event.js","sourceRoot":"","sources":["../../../src/ink/events/click-event.ts"],"names":[],"mappings":";;;AAAA,yCAAkC;AAElC;;;;;;GAMG;AACH,MAAa,UAAW,SAAQ,gBAAK;IAsBnC,YAAY,GAAW,EAAE,GAAW,EAAE,WAAoB;QACxD,KAAK,EAAE,CAAA;QAlBT;;;;;WAKG;QACH,aAAQ,GAAG,CAAC,CAAA;QACZ,qEAAqE;QACrE,aAAQ,GAAG,CAAC,CAAA;QAWV,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;CACF;AA5BD,gCA4BC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { EventTarget, TerminalEvent } from './terminal-event.js';
|
|
2
|
+
type DiscreteUpdates = <A, B>(fn: (a: A, b: B) => boolean, a: A, b: B, c: undefined, d: undefined) => boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Owns event dispatch state and the capture/bubble dispatch loop.
|
|
5
|
+
*
|
|
6
|
+
* The reconciler host config reads currentEvent and currentUpdatePriority
|
|
7
|
+
* to implement resolveUpdatePriority, resolveEventType, and
|
|
8
|
+
* resolveEventTimeStamp — mirroring how react-dom's host config reads
|
|
9
|
+
* ReactDOMSharedInternals and window.event.
|
|
10
|
+
*
|
|
11
|
+
* discreteUpdates is injected after construction (by InkReconciler)
|
|
12
|
+
* to break the import cycle.
|
|
13
|
+
*/
|
|
14
|
+
export declare class Dispatcher {
|
|
15
|
+
currentEvent: TerminalEvent | null;
|
|
16
|
+
currentUpdatePriority: number;
|
|
17
|
+
discreteUpdates: DiscreteUpdates | null;
|
|
18
|
+
/**
|
|
19
|
+
* Infer event priority from the currently-dispatching event.
|
|
20
|
+
* Called by the reconciler host config's resolveUpdatePriority
|
|
21
|
+
* when no explicit priority has been set.
|
|
22
|
+
*/
|
|
23
|
+
resolveEventPriority(): number;
|
|
24
|
+
/**
|
|
25
|
+
* Dispatch an event through capture and bubble phases.
|
|
26
|
+
* Returns true if preventDefault() was NOT called.
|
|
27
|
+
*/
|
|
28
|
+
dispatch(target: EventTarget, event: TerminalEvent): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Dispatch with discrete (sync) priority.
|
|
31
|
+
* For user-initiated events: keyboard, click, focus, paste.
|
|
32
|
+
*/
|
|
33
|
+
dispatchDiscrete(target: EventTarget, event: TerminalEvent): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Dispatch with continuous priority.
|
|
36
|
+
* For high-frequency events: resize, scroll, mouse move.
|
|
37
|
+
*/
|
|
38
|
+
dispatchContinuous(target: EventTarget, event: TerminalEvent): boolean;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../../../src/ink/events/dispatcher.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAuIrE,KAAK,eAAe,GAAG,CAAC,CAAC,EAAE,CAAC,EAC1B,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,EAC3B,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,SAAS,EACZ,CAAC,EAAE,SAAS,KACT,OAAO,CAAA;AAEZ;;;;;;;;;;GAUG;AACH,qBAAa,UAAU;IACrB,YAAY,EAAE,aAAa,GAAG,IAAI,CAAO;IACzC,qBAAqB,EAAE,MAAM,CAAoB;IACjD,eAAe,EAAE,eAAe,GAAG,IAAI,CAAO;IAE9C;;;;OAIG;IACH,oBAAoB,IAAI,MAAM;IAU9B;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO;IAkB5D;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO;IAapE;;;OAGG;IACH,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO;CASvE"}
|