@cjhyy/code-shell 0.1.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +109 -0
- package/LICENSE +21 -0
- package/README.md +177 -0
- package/dist/agent/coordinator.d.ts +49 -0
- package/dist/anthropic-NENYS535.js +9 -0
- package/dist/anthropic-XMTTVNSH.cjs +9 -0
- package/dist/arena/arena.d.ts +43 -0
- package/dist/arena/context/context-tools.d.ts +16 -0
- package/dist/arena/detect-mode.d.ts +20 -0
- package/dist/arena/digest-builder.d.ts +25 -0
- package/dist/arena/index.cjs +103 -0
- package/dist/arena/index.d.ts +29 -0
- package/dist/arena/index.js +103 -0
- package/dist/arena/iterate/convergence.d.ts +25 -0
- package/dist/arena/iterate/formats/index.d.ts +22 -0
- package/dist/arena/iterate/index.d.ts +11 -0
- package/dist/arena/iterate/iterative-arena.d.ts +23 -0
- package/dist/arena/iterate/parse.d.ts +42 -0
- package/dist/arena/iterate/phases/argue.d.ts +22 -0
- package/dist/arena/iterate/phases/revise.d.ts +16 -0
- package/dist/arena/iterate/phases/tournament.d.ts +34 -0
- package/dist/arena/iterate/tools/web-tools.d.ts +13 -0
- package/dist/arena/iterate/types.d.ts +152 -0
- package/dist/arena/ledger.d.ts +47 -0
- package/dist/arena/lenses/architecture.d.ts +5 -0
- package/dist/arena/lenses/engineering.d.ts +5 -0
- package/dist/arena/lenses/general.d.ts +5 -0
- package/dist/arena/lenses/index.d.ts +16 -0
- package/dist/arena/lenses/product.d.ts +5 -0
- package/dist/arena/model-presets.d.ts +14 -0
- package/dist/arena/phases/adjudication.d.ts +24 -0
- package/dist/arena/phases/build-consensus.d.ts +29 -0
- package/dist/arena/phases/claim-registry.d.ts +26 -0
- package/dist/arena/phases/cross-review.d.ts +45 -0
- package/dist/arena/phases/debate-rounds.d.ts +27 -0
- package/dist/arena/phases/participant-research.d.ts +38 -0
- package/dist/arena/phases/planning-detail-expansion.d.ts +38 -0
- package/dist/arena/planner.d.ts +27 -0
- package/dist/arena/providers/docs.d.ts +6 -0
- package/dist/arena/providers/git.d.ts +8 -0
- package/dist/arena/providers/index.d.ts +16 -0
- package/dist/arena/providers/none.d.ts +7 -0
- package/dist/arena/providers/repo.d.ts +6 -0
- package/dist/arena/render/session.d.ts +17 -0
- package/dist/arena/render/terminal.d.ts +33 -0
- package/dist/arena/strategies/discussion.d.ts +25 -0
- package/dist/arena/strategies/index.d.ts +15 -0
- package/dist/arena/strategies/language-wrapper.d.ts +17 -0
- package/dist/arena/strategies/lens-wrapper.d.ts +16 -0
- package/dist/arena/strategies/planning.d.ts +30 -0
- package/dist/arena/strategies/review.d.ts +26 -0
- package/dist/arena/strategies/utils.d.ts +34 -0
- package/dist/arena/tools/selector.d.ts +17 -0
- package/dist/arena/transitions.d.ts +48 -0
- package/dist/arena/types.d.ts +499 -0
- package/dist/arena-46QQ6BZQ.js +261 -0
- package/dist/arena-HZZZ2GJH.cjs +261 -0
- package/dist/bootstrap/setup.d.ts +14 -0
- package/dist/bootstrap/state.d.ts +160 -0
- package/dist/bridge-4ZRXVWBN.js +98 -0
- package/dist/bridge-W476QDFH.cjs +98 -0
- package/dist/chunk-3EAEC566.cjs +136 -0
- package/dist/chunk-3EUDE77E.cjs +1252 -0
- package/dist/chunk-3QR52LL5.cjs +105 -0
- package/dist/chunk-4PKZPFCD.js +136 -0
- package/dist/chunk-4RRUP4MM.js +86 -0
- package/dist/chunk-4SFPFHMG.js +132 -0
- package/dist/chunk-5LHVI777.cjs +246 -0
- package/dist/chunk-6JOOLG6F.js +104 -0
- package/dist/chunk-6ZIROYXX.js +207 -0
- package/dist/chunk-7RMAR2Y3.js +6511 -0
- package/dist/chunk-BE6IPRDM.js +224 -0
- package/dist/chunk-BHGIJ2DJ.js +41 -0
- package/dist/chunk-BMH65OVB.cjs +224 -0
- package/dist/chunk-C7JBCO5V.js +80 -0
- package/dist/chunk-CSO5EOEP.cjs +132 -0
- package/dist/chunk-DI7RDLOS.js +47 -0
- package/dist/chunk-DICG4AB7.cjs +73 -0
- package/dist/chunk-EL2RL5DG.cjs +101 -0
- package/dist/chunk-FGZGCFJX.cjs +207 -0
- package/dist/chunk-FUOKLKR2.js +101 -0
- package/dist/chunk-FVP7XJGS.cjs +4577 -0
- package/dist/chunk-HD7MT5XU.cjs +86 -0
- package/dist/chunk-IJSHQGMP.cjs +45 -0
- package/dist/chunk-IMMTBZ33.cjs +63 -0
- package/dist/chunk-J5XW6UYL.js +291 -0
- package/dist/chunk-JT2WSQSR.cjs +335 -0
- package/dist/chunk-KO2FPF7G.js +93 -0
- package/dist/chunk-LRAY5IYC.cjs +291 -0
- package/dist/chunk-NG73UR3L.cjs +285 -0
- package/dist/chunk-NZ4DQ72D.cjs +664 -0
- package/dist/chunk-O6F2EF2Z.js +73 -0
- package/dist/chunk-OG4MIQJ6.js +335 -0
- package/dist/chunk-QHDYFC5U.cjs +6511 -0
- package/dist/chunk-R32DJSJE.cjs +41 -0
- package/dist/chunk-S74VVJBF.js +285 -0
- package/dist/chunk-SK62UVS6.js +105 -0
- package/dist/chunk-SQZHPD3S.js +4577 -0
- package/dist/chunk-UK2SU23S.cjs +93 -0
- package/dist/chunk-VKGNCYRL.js +258 -0
- package/dist/chunk-WFQF3RT4.cjs +104 -0
- package/dist/chunk-WHRTARDJ.cjs +258 -0
- package/dist/chunk-WRZJUQ5Z.js +664 -0
- package/dist/chunk-X4HAERTQ.js +63 -0
- package/dist/chunk-XHC2JMEC.cjs +80 -0
- package/dist/chunk-YZ25SSWJ.js +222 -0
- package/dist/chunk-ZJV3YSY3.cjs +222 -0
- package/dist/chunk-ZRSSGYA5.js +246 -0
- package/dist/chunk-ZXYDDJEJ.js +1252 -0
- package/dist/cli/commands/arena.d.ts +29 -0
- package/dist/cli/commands/builtin/advanced-commands.d.ts +5 -0
- package/dist/cli/commands/builtin/core-commands.d.ts +5 -0
- package/dist/cli/commands/builtin/extra-commands.d.ts +6 -0
- package/dist/cli/commands/builtin/git-commands.d.ts +5 -0
- package/dist/cli/commands/builtin/more-commands.d.ts +7 -0
- package/dist/cli/commands/builtin/permissions-command.d.ts +5 -0
- package/dist/cli/commands/builtin/utility-commands.d.ts +5 -0
- package/dist/cli/commands/registry.d.ts +64 -0
- package/dist/cli/commands/repl.d.ts +21 -0
- package/dist/cli/commands/run.d.ts +21 -0
- package/dist/cli/commands/runs.d.ts +14 -0
- package/dist/cli/cost-tracker.d.ts +57 -0
- package/dist/cli/exit.d.ts +12 -0
- package/dist/cli/input/ndjson-reader.d.ts +31 -0
- package/dist/cli/input-compiler.d.ts +5 -0
- package/dist/cli/main.cjs +19674 -0
- package/dist/cli/main.d.ts +5 -0
- package/dist/cli/main.js +19674 -0
- package/dist/cli/onboarding.d.ts +26 -0
- package/dist/cli/output/renderer.d.ts +28 -0
- package/dist/cli/output/terminal-ui.d.ts +50 -0
- package/dist/cli/updater.d.ts +10 -0
- package/dist/compaction-44I55TLI.cjs +32 -0
- package/dist/compaction-CCHWA4G6.js +32 -0
- package/dist/context/compaction.d.ts +83 -0
- package/dist/context/manager.d.ts +99 -0
- package/dist/context/token-counter.d.ts +27 -0
- package/dist/coordinator-5HY7ALO2.js +7 -0
- package/dist/coordinator-INDLPVMF.cjs +7 -0
- package/dist/cost-tracker-IWYAUPXH.js +9 -0
- package/dist/cost-tracker-JXTJQQWE.cjs +9 -0
- package/dist/cron/scheduler.d.ts +34 -0
- package/dist/devtools-KIY3LWQJ.js +6 -0
- package/dist/devtools-LRP47DDV.cjs +6 -0
- package/dist/engine/cost-store.d.ts +22 -0
- package/dist/engine/engine.d.ts +101 -0
- package/dist/engine/model-facade.d.ts +24 -0
- package/dist/engine/query.d.ts +50 -0
- package/dist/engine/streaming-tool-queue.d.ts +34 -0
- package/dist/engine/token-budget.d.ts +22 -0
- package/dist/engine/tool-summary.d.ts +13 -0
- package/dist/engine/turn-loop.d.ts +62 -0
- package/dist/engine/turn-state.d.ts +14 -0
- package/dist/exceptions.d.ts +44 -0
- package/dist/file-history-HZWO2WQ5.js +7 -0
- package/dist/file-history-UQQILIY7.cjs +7 -0
- package/dist/git/utils.d.ts +35 -0
- package/dist/git/worktree.d.ts +36 -0
- package/dist/hooks/events.d.ts +35 -0
- package/dist/hooks/registry.d.ts +15 -0
- package/dist/index.cjs +336 -0
- package/dist/index.d.ts +64 -0
- package/dist/index.js +336 -0
- package/dist/ink/Ansi.d.ts +10 -0
- package/dist/ink/bidi.d.ts +15 -0
- package/dist/ink/clearTerminal.d.ts +13 -0
- package/dist/ink/colorize.d.ts +16 -0
- package/dist/ink/components/AlternateScreen.d.ts +21 -0
- package/dist/ink/components/App.d.ts +70 -0
- package/dist/ink/components/AppContext.d.ts +11 -0
- package/dist/ink/components/Box.d.ts +49 -0
- package/dist/ink/components/Button.d.ts +36 -0
- package/dist/ink/components/ClockContext.d.ts +9 -0
- package/dist/ink/components/CursorDeclarationContext.d.ts +22 -0
- package/dist/ink/components/ErrorOverview.d.ts +5 -0
- package/dist/ink/components/Link.d.ts +7 -0
- package/dist/ink/components/Newline.d.ts +12 -0
- package/dist/ink/components/NoSelect.d.ts +19 -0
- package/dist/ink/components/RawAnsi.d.ts +16 -0
- package/dist/ink/components/ScrollBox.d.ts +78 -0
- package/dist/ink/components/Spacer.d.ts +5 -0
- package/dist/ink/components/StdinContext.d.ts +27 -0
- package/dist/ink/components/TerminalFocusContext.d.ts +10 -0
- package/dist/ink/components/TerminalSizeContext.d.ts +5 -0
- package/dist/ink/components/Text.d.ts +55 -0
- package/dist/ink/constants.d.ts +1 -0
- package/dist/ink/cursor.d.ts +8 -0
- package/dist/ink/devtools.d.ts +5 -0
- package/dist/ink/dom.d.ts +76 -0
- package/dist/ink/events/click-event.d.ts +31 -0
- package/dist/ink/events/dispatcher.d.ts +40 -0
- package/dist/ink/events/emitter.d.ts +5 -0
- package/dist/ink/events/event-handlers.d.ts +46 -0
- package/dist/ink/events/event.d.ts +5 -0
- package/dist/ink/events/focus-event.d.ts +13 -0
- package/dist/ink/events/input-event.d.ts +30 -0
- package/dist/ink/events/keyboard-event.d.ts +19 -0
- package/dist/ink/events/paste-event.d.ts +8 -0
- package/dist/ink/events/resize-event.d.ts +9 -0
- package/dist/ink/events/terminal-event.d.ts +54 -0
- package/dist/ink/events/terminal-focus-event.d.ts +13 -0
- package/dist/ink/focus.d.ts +43 -0
- package/dist/ink/frame.d.ts +94 -0
- package/dist/ink/get-max-width.d.ts +17 -0
- package/dist/ink/hit-test.d.ts +33 -0
- package/dist/ink/hooks/use-animation-frame.d.ts +26 -0
- package/dist/ink/hooks/use-app.d.ts +5 -0
- package/dist/ink/hooks/use-declared-cursor.d.ts +26 -0
- package/dist/ink/hooks/use-input.d.ts +37 -0
- package/dist/ink/hooks/use-interval.d.ts +18 -0
- package/dist/ink/hooks/use-search-highlight.d.ts +30 -0
- package/dist/ink/hooks/use-selection.d.ts +39 -0
- package/dist/ink/hooks/use-stdin.d.ts +5 -0
- package/dist/ink/hooks/use-tab-status.d.ts +13 -0
- package/dist/ink/hooks/use-terminal-focus.d.ts +10 -0
- package/dist/ink/hooks/use-terminal-title.d.ts +12 -0
- package/dist/ink/hooks/use-terminal-viewport.d.ts +29 -0
- package/dist/ink/index.d.ts +20 -0
- package/dist/ink/ink.d.ts +369 -0
- package/dist/ink/instances.d.ts +3 -0
- package/dist/ink/layout/engine.d.ts +2 -0
- package/dist/ink/layout/geometry.d.ts +30 -0
- package/dist/ink/layout/node.d.ts +125 -0
- package/dist/ink/layout/yoga.d.ts +56 -0
- package/dist/ink/line-width-cache.d.ts +1 -0
- package/dist/ink/log-update.d.ts +17 -0
- package/dist/ink/measure-element.d.ts +16 -0
- package/dist/ink/measure-text.d.ts +6 -0
- package/dist/ink/node-cache.d.ts +20 -0
- package/dist/ink/optimizer.d.ts +15 -0
- package/dist/ink/output.d.ts +119 -0
- package/dist/ink/parse-keypress.d.ts +111 -0
- package/dist/ink/reconciler.d.ts +11 -0
- package/dist/ink/render-border.d.ts +24 -0
- package/dist/ink/render-node-to-output.d.ts +45 -0
- package/dist/ink/render-to-screen.d.ts +46 -0
- package/dist/ink/renderer.d.ts +14 -0
- package/dist/ink/root.d.ts +74 -0
- package/dist/ink/screen.d.ts +269 -0
- package/dist/ink/searchHighlight.d.ts +20 -0
- package/dist/ink/selection.d.ts +229 -0
- package/dist/ink/squash-text-nodes.d.ts +22 -0
- package/dist/ink/stringWidth.d.ts +1 -0
- package/dist/ink/styles.d.ts +306 -0
- package/dist/ink/supports-hyperlinks.d.ts +13 -0
- package/dist/ink/tabstops.d.ts +1 -0
- package/dist/ink/terminal-focus-state.d.ts +6 -0
- package/dist/ink/terminal-querier.d.ts +129 -0
- package/dist/ink/terminal.d.ts +46 -0
- package/dist/ink/termio/ansi.d.ts +65 -0
- package/dist/ink/termio/csi.d.ts +165 -0
- package/dist/ink/termio/dec.d.ts +37 -0
- package/dist/ink/termio/esc.d.ts +12 -0
- package/dist/ink/termio/osc.d.ts +173 -0
- package/dist/ink/termio/parser.d.ts +35 -0
- package/dist/ink/termio/sgr.d.ts +8 -0
- package/dist/ink/termio/tokenize.d.ts +45 -0
- package/dist/ink/termio/types.d.ts +190 -0
- package/dist/ink/termio.d.ts +24 -0
- package/dist/ink/useTerminalNotification.d.ts +28 -0
- package/dist/ink/warn.d.ts +1 -0
- package/dist/ink/widest-line.d.ts +1 -0
- package/dist/ink/wrap-text.d.ts +2 -0
- package/dist/ink/wrapAnsi.d.ts +7 -0
- package/dist/llm/client-base.d.ts +22 -0
- package/dist/llm/client-factory.d.ts +10 -0
- package/dist/llm/model-pool.d.ts +60 -0
- package/dist/llm/providers/anthropic.d.ts +19 -0
- package/dist/llm/providers/openai.d.ts +19 -0
- package/dist/llm/types.d.ts +21 -0
- package/dist/loader-DXFSUB4R.cjs +91 -0
- package/dist/loader-J5UID6CV.js +91 -0
- package/dist/logging/logger.d.ts +19 -0
- package/dist/lsp/client.d.ts +41 -0
- package/dist/lsp/manager.d.ts +40 -0
- package/dist/lsp/servers.d.ts +16 -0
- package/dist/manager-ETWDOCHN.cjs +9 -0
- package/dist/manager-HGMQNEJB.cjs +11 -0
- package/dist/manager-HUAQOORS.js +9 -0
- package/dist/manager-VJIZ2CQC.js +11 -0
- package/dist/mcp-manager-G4G2QASE.cjs +8 -0
- package/dist/mcp-manager-OKXHHWYR.js +8 -0
- package/dist/memory-AP747G5H.js +7 -0
- package/dist/memory-BH3BYUN5.cjs +7 -0
- package/dist/native-ts/yoga-layout/enums.d.ts +117 -0
- package/dist/native-ts/yoga-layout/index.d.ts +270 -0
- package/dist/onboarding-6WEPV7C2.js +11 -0
- package/dist/onboarding-QM5DY2TU.cjs +11 -0
- package/dist/openai-5HQGBL4L.js +9 -0
- package/dist/openai-656VWUQW.cjs +9 -0
- package/dist/plugins/loader.d.ts +72 -0
- package/dist/plugins/types.d.ts +4 -0
- package/dist/preset/index.d.ts +60 -0
- package/dist/product/define.d.ts +60 -0
- package/dist/product/index.cjs +23 -0
- package/dist/product/index.d.ts +5 -0
- package/dist/product/index.js +23 -0
- package/dist/product/types.d.ts +116 -0
- package/dist/prompt/composer.d.ts +42 -0
- package/dist/prompt/instruction-scanner.d.ts +54 -0
- package/dist/prompt/section-cache.d.ts +15 -0
- package/dist/prompt/section-loader.d.ts +26 -0
- package/dist/protocol/client.d.ts +64 -0
- package/dist/protocol/index.d.ts +4 -0
- package/dist/protocol/server.d.ts +49 -0
- package/dist/protocol/transport.d.ts +36 -0
- package/dist/protocol/types.d.ts +150 -0
- package/dist/react-compiler-runtime-shim.d.ts +1 -0
- package/dist/remote/bridge.d.ts +37 -0
- package/dist/run/ArtifactTracker.d.ts +38 -0
- package/dist/run/CheckpointWriter.d.ts +53 -0
- package/dist/run/EngineRunner.d.ts +70 -0
- package/dist/run/Evaluator.d.ts +56 -0
- package/dist/run/FileRunStore.d.ts +39 -0
- package/dist/run/Heartbeat.d.ts +54 -0
- package/dist/run/RunApprovalBackend.d.ts +53 -0
- package/dist/run/RunLock.d.ts +40 -0
- package/dist/run/RunManager.d.ts +76 -0
- package/dist/run/RunQueue.d.ts +27 -0
- package/dist/run/RunStore.d.ts +25 -0
- package/dist/run/factory.d.ts +57 -0
- package/dist/run/index.cjs +50 -0
- package/dist/run/index.d.ts +17 -0
- package/dist/run/index.js +50 -0
- package/dist/run/types.d.ts +136 -0
- package/dist/services/analytics.d.ts +29 -0
- package/dist/services/auto-dream.d.ts +35 -0
- package/dist/services/compact.d.ts +56 -0
- package/dist/services/diagnostics.d.ts +41 -0
- package/dist/services/extract-memories.d.ts +27 -0
- package/dist/services/index.d.ts +11 -0
- package/dist/services/notifier.d.ts +25 -0
- package/dist/services/oauth.d.ts +27 -0
- package/dist/services/session-memory.d.ts +37 -0
- package/dist/session/file-history.d.ts +41 -0
- package/dist/session/memory.d.ts +45 -0
- package/dist/session/session-manager.d.ts +23 -0
- package/dist/session/transcript.d.ts +39 -0
- package/dist/session-manager-JIIBCFTC.js +8 -0
- package/dist/session-manager-UQKB564H.cjs +8 -0
- package/dist/settings/manager.d.ts +27 -0
- package/dist/settings/schema.d.ts +676 -0
- package/dist/skills/index.d.ts +7 -0
- package/dist/skills/matcher.d.ts +21 -0
- package/dist/skills/scanner.d.ts +30 -0
- package/dist/skills-63RBYQRX.js +13 -0
- package/dist/skills-V3BPLW3D.cjs +13 -0
- package/dist/token-counter-CHAXW5O7.cjs +13 -0
- package/dist/token-counter-DSOZGZ5Q.js +13 -0
- package/dist/tool-summary-5P2GKRA4.cjs +31 -0
- package/dist/tool-summary-J2ICNMWP.js +31 -0
- package/dist/tool-system/builtin/agent.d.ts +35 -0
- package/dist/tool-system/builtin/arena.d.ts +18 -0
- package/dist/tool-system/builtin/ask-user.d.ts +12 -0
- package/dist/tool-system/builtin/bash.d.ts +6 -0
- package/dist/tool-system/builtin/brief.d.ts +6 -0
- package/dist/tool-system/builtin/config.d.ts +6 -0
- package/dist/tool-system/builtin/cron.d.ts +10 -0
- package/dist/tool-system/builtin/edit.d.ts +6 -0
- package/dist/tool-system/builtin/file-cache.d.ts +11 -0
- package/dist/tool-system/builtin/glob.d.ts +6 -0
- package/dist/tool-system/builtin/grep.d.ts +6 -0
- package/dist/tool-system/builtin/index.d.ts +10 -0
- package/dist/tool-system/builtin/lsp.d.ts +6 -0
- package/dist/tool-system/builtin/mcp-tools.d.ts +10 -0
- package/dist/tool-system/builtin/notebook-edit.d.ts +6 -0
- package/dist/tool-system/builtin/plan.d.ts +18 -0
- package/dist/tool-system/builtin/powershell.d.ts +6 -0
- package/dist/tool-system/builtin/read.d.ts +6 -0
- package/dist/tool-system/builtin/remote-trigger.d.ts +6 -0
- package/dist/tool-system/builtin/repl.d.ts +6 -0
- package/dist/tool-system/builtin/send-message.d.ts +6 -0
- package/dist/tool-system/builtin/skill.d.ts +6 -0
- package/dist/tool-system/builtin/sleep.d.ts +6 -0
- package/dist/tool-system/builtin/task.d.ts +51 -0
- package/dist/tool-system/builtin/tool-search.d.ts +12 -0
- package/dist/tool-system/builtin/web-fetch.d.ts +6 -0
- package/dist/tool-system/builtin/web-search.d.ts +6 -0
- package/dist/tool-system/builtin/worktree.d.ts +10 -0
- package/dist/tool-system/builtin/write.d.ts +6 -0
- package/dist/tool-system/executor.d.ts +25 -0
- package/dist/tool-system/mcp-manager.d.ts +50 -0
- package/dist/tool-system/permission.d.ts +69 -0
- package/dist/tool-system/registry.d.ts +24 -0
- package/dist/tool-system/validation.d.ts +5 -0
- package/dist/types.d.ts +260 -0
- package/dist/ui/App.d.ts +14 -0
- package/dist/ui/components/AgentBlock.d.ts +32 -0
- package/dist/ui/components/BabyHand.d.ts +1 -0
- package/dist/ui/components/Banner.d.ts +8 -0
- package/dist/ui/components/CodeBlock.d.ts +7 -0
- package/dist/ui/components/CommandInput.d.ts +13 -0
- package/dist/ui/components/ContextUsageBar.d.ts +7 -0
- package/dist/ui/components/DiffView.d.ts +6 -0
- package/dist/ui/components/DogLogo.d.ts +1 -0
- package/dist/ui/components/FullscreenLayout.d.ts +51 -0
- package/dist/ui/components/KunHead.d.ts +1 -0
- package/dist/ui/components/KunLogo.d.ts +1 -0
- package/dist/ui/components/MessageContent.d.ts +22 -0
- package/dist/ui/components/PermissionDialog.d.ts +8 -0
- package/dist/ui/components/PermissionPrompt.d.ts +8 -0
- package/dist/ui/components/ScrollView.d.ts +34 -0
- package/dist/ui/components/Spinner.d.ts +8 -0
- package/dist/ui/components/SpinnerWithVerb.d.ts +13 -0
- package/dist/ui/components/StatusLine.d.ts +22 -0
- package/dist/ui/components/StructuredDiff.d.ts +8 -0
- package/dist/ui/components/TaskList.d.ts +6 -0
- package/dist/ui/components/TextInput.d.ts +9 -0
- package/dist/ui/components/ThemedBox.d.ts +19 -0
- package/dist/ui/components/ThemedText.d.ts +26 -0
- package/dist/ui/components/ToolCall.d.ts +21 -0
- package/dist/ui/components/VirtualMessageList.d.ts +24 -0
- package/dist/ui/hooks/useCostSummary.d.ts +1 -0
- package/dist/ui/index.d.ts +12 -0
- package/dist/ui/input-history.d.ts +61 -0
- package/dist/ui/store.d.ts +82 -0
- package/dist/ui/terminal-renderer.d.ts +45 -0
- package/dist/ui/theme.d.ts +36 -0
- package/dist/ui/vim-mode.d.ts +25 -0
- package/dist/updater-AVD4LKTQ.js +183 -0
- package/dist/updater-URVNPDPW.cjs +183 -0
- package/dist/utils/debug.d.ts +57 -0
- package/dist/utils/earlyInput.d.ts +43 -0
- package/dist/utils/env.d.ts +24 -0
- package/dist/utils/envUtils.d.ts +51 -0
- package/dist/utils/execFileNoThrow.d.ts +39 -0
- package/dist/utils/format.d.ts +44 -0
- package/dist/utils/fullscreen.d.ts +47 -0
- package/dist/utils/intl.d.ts +22 -0
- package/dist/utils/lockfile.d.ts +15 -0
- package/dist/utils/log.d.ts +56 -0
- package/dist/utils/semver.d.ts +5 -0
- package/dist/utils/sliceAnsi.d.ts +12 -0
- package/dist/utils/systemTheme.d.ts +40 -0
- package/dist/utils/theme.d.ts +91 -0
- package/dist/utils/toolDisplay.d.ts +31 -0
- package/dist/utils/truncate.d.ts +40 -0
- package/dist/voice/index.d.ts +35 -0
- package/dist/voice-KTZ7PAGO.js +80 -0
- package/dist/voice-KZE25GKB.cjs +80 -0
- package/package.json +130 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { type Rectangle } from './layout/geometry.js';
|
|
2
|
+
import { type Screen, type StylePool } from './screen.js';
|
|
3
|
+
/**
|
|
4
|
+
* Collects write/blit/clear/clip operations from the render tree, then
|
|
5
|
+
* applies them to a Screen buffer in `get()`. The Screen is what gets
|
|
6
|
+
* diffed against the previous frame to produce terminal updates.
|
|
7
|
+
*/
|
|
8
|
+
type Options = {
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
stylePool: StylePool;
|
|
12
|
+
/**
|
|
13
|
+
* Screen to render into. Will be reset before use.
|
|
14
|
+
* For double-buffering, pass a reusable screen. Otherwise create a new one.
|
|
15
|
+
*/
|
|
16
|
+
screen: Screen;
|
|
17
|
+
};
|
|
18
|
+
export type Operation = WriteOperation | ClipOperation | UnclipOperation | BlitOperation | ClearOperation | NoSelectOperation | ShiftOperation;
|
|
19
|
+
type WriteOperation = {
|
|
20
|
+
type: 'write';
|
|
21
|
+
x: number;
|
|
22
|
+
y: number;
|
|
23
|
+
text: string;
|
|
24
|
+
/**
|
|
25
|
+
* Per-line soft-wrap flags, parallel to text.split('\n'). softWrap[i]=true
|
|
26
|
+
* means line i is a continuation of line i-1 (the `\n` before it was
|
|
27
|
+
* inserted by word-wrap, not in the source). Index 0 is always false.
|
|
28
|
+
* Undefined means the producer didn't track wrapping (e.g. fills,
|
|
29
|
+
* raw-ansi) — the screen's per-row bitmap is left untouched.
|
|
30
|
+
*/
|
|
31
|
+
softWrap?: boolean[];
|
|
32
|
+
};
|
|
33
|
+
type ClipOperation = {
|
|
34
|
+
type: 'clip';
|
|
35
|
+
clip: Clip;
|
|
36
|
+
};
|
|
37
|
+
export type Clip = {
|
|
38
|
+
x1: number | undefined;
|
|
39
|
+
x2: number | undefined;
|
|
40
|
+
y1: number | undefined;
|
|
41
|
+
y2: number | undefined;
|
|
42
|
+
};
|
|
43
|
+
type UnclipOperation = {
|
|
44
|
+
type: 'unclip';
|
|
45
|
+
};
|
|
46
|
+
type BlitOperation = {
|
|
47
|
+
type: 'blit';
|
|
48
|
+
src: Screen;
|
|
49
|
+
x: number;
|
|
50
|
+
y: number;
|
|
51
|
+
width: number;
|
|
52
|
+
height: number;
|
|
53
|
+
};
|
|
54
|
+
type ShiftOperation = {
|
|
55
|
+
type: 'shift';
|
|
56
|
+
top: number;
|
|
57
|
+
bottom: number;
|
|
58
|
+
n: number;
|
|
59
|
+
};
|
|
60
|
+
type ClearOperation = {
|
|
61
|
+
type: 'clear';
|
|
62
|
+
region: Rectangle;
|
|
63
|
+
/**
|
|
64
|
+
* Set when the clear is for an absolute-positioned node's old bounds.
|
|
65
|
+
* Absolute nodes overlay normal-flow siblings, so their stale paint is
|
|
66
|
+
* what an earlier sibling's clean-subtree blit wrongly restores from
|
|
67
|
+
* prevScreen. Normal-flow siblings' clears don't have this problem —
|
|
68
|
+
* their old position can't have been painted on top of a sibling.
|
|
69
|
+
*/
|
|
70
|
+
fromAbsolute?: boolean;
|
|
71
|
+
};
|
|
72
|
+
type NoSelectOperation = {
|
|
73
|
+
type: 'noSelect';
|
|
74
|
+
region: Rectangle;
|
|
75
|
+
};
|
|
76
|
+
export default class Output {
|
|
77
|
+
width: number;
|
|
78
|
+
height: number;
|
|
79
|
+
private readonly stylePool;
|
|
80
|
+
private screen;
|
|
81
|
+
private readonly operations;
|
|
82
|
+
private charCache;
|
|
83
|
+
constructor(options: Options);
|
|
84
|
+
/**
|
|
85
|
+
* Reuse this Output for a new frame. Zeroes the screen buffer, clears
|
|
86
|
+
* the operation list (backing storage is retained), and caps charCache
|
|
87
|
+
* growth. Preserving charCache across frames is the main win — most
|
|
88
|
+
* lines don't change between renders, so tokenize + grapheme clustering
|
|
89
|
+
* becomes a cache hit.
|
|
90
|
+
*/
|
|
91
|
+
reset(width: number, height: number, screen: Screen): void;
|
|
92
|
+
/**
|
|
93
|
+
* Copy cells from a source screen region (blit = block image transfer).
|
|
94
|
+
*/
|
|
95
|
+
blit(src: Screen, x: number, y: number, width: number, height: number): void;
|
|
96
|
+
/**
|
|
97
|
+
* Shift full-width rows within [top, bottom] by n. n > 0 = up. Mirrors
|
|
98
|
+
* what DECSTBM + SU/SD does to the terminal. Paired with blit() to reuse
|
|
99
|
+
* prevScreen content during pure scroll, avoiding full child re-render.
|
|
100
|
+
*/
|
|
101
|
+
shift(top: number, bottom: number, n: number): void;
|
|
102
|
+
/**
|
|
103
|
+
* Clear a region by writing empty cells. Used when a node shrinks to
|
|
104
|
+
* ensure stale content from the previous frame is removed.
|
|
105
|
+
*/
|
|
106
|
+
clear(region: Rectangle, fromAbsolute?: boolean): void;
|
|
107
|
+
/**
|
|
108
|
+
* Mark a region as non-selectable (excluded from fullscreen text
|
|
109
|
+
* selection copy + highlight). Used by <NoSelect> to fence off
|
|
110
|
+
* gutters (line numbers, diff sigils). Applied AFTER blit/write so
|
|
111
|
+
* the mark wins regardless of what's blitted into the region.
|
|
112
|
+
*/
|
|
113
|
+
noSelect(region: Rectangle): void;
|
|
114
|
+
write(x: number, y: number, text: string, softWrap?: boolean[]): void;
|
|
115
|
+
clip(clip: Clip): void;
|
|
116
|
+
unclip(): void;
|
|
117
|
+
get(): Screen;
|
|
118
|
+
}
|
|
119
|
+
export {};
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keyboard input parser - converts terminal input to key events
|
|
3
|
+
*
|
|
4
|
+
* Uses the termio tokenizer for escape sequence boundary detection,
|
|
5
|
+
* then interprets sequences as keypresses.
|
|
6
|
+
*/
|
|
7
|
+
import { Buffer } from 'buffer';
|
|
8
|
+
import { type Tokenizer } from './termio/tokenize.js';
|
|
9
|
+
/** DECRPM status values (response to DECRQM) */
|
|
10
|
+
export declare const DECRPM_STATUS: {
|
|
11
|
+
readonly NOT_RECOGNIZED: 0;
|
|
12
|
+
readonly SET: 1;
|
|
13
|
+
readonly RESET: 2;
|
|
14
|
+
readonly PERMANENTLY_SET: 3;
|
|
15
|
+
readonly PERMANENTLY_RESET: 4;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* A response sequence received from the terminal (not a keypress).
|
|
19
|
+
* Emitted in answer to queries like DECRQM, DA1, OSC 11, etc.
|
|
20
|
+
*/
|
|
21
|
+
export type TerminalResponse =
|
|
22
|
+
/** DECRPM: answer to DECRQM (request DEC private mode status) */
|
|
23
|
+
{
|
|
24
|
+
type: 'decrpm';
|
|
25
|
+
mode: number;
|
|
26
|
+
status: number;
|
|
27
|
+
}
|
|
28
|
+
/** DA1: primary device attributes (used as a universal sentinel) */
|
|
29
|
+
| {
|
|
30
|
+
type: 'da1';
|
|
31
|
+
params: number[];
|
|
32
|
+
}
|
|
33
|
+
/** DA2: secondary device attributes (terminal version info) */
|
|
34
|
+
| {
|
|
35
|
+
type: 'da2';
|
|
36
|
+
params: number[];
|
|
37
|
+
}
|
|
38
|
+
/** Kitty keyboard protocol: current flags (answer to CSI ? u) */
|
|
39
|
+
| {
|
|
40
|
+
type: 'kittyKeyboard';
|
|
41
|
+
flags: number;
|
|
42
|
+
}
|
|
43
|
+
/** DSR: cursor position report (answer to CSI 6 n) */
|
|
44
|
+
| {
|
|
45
|
+
type: 'cursorPosition';
|
|
46
|
+
row: number;
|
|
47
|
+
col: number;
|
|
48
|
+
}
|
|
49
|
+
/** OSC response: generic operating-system-command reply (e.g. OSC 11 bg color) */
|
|
50
|
+
| {
|
|
51
|
+
type: 'osc';
|
|
52
|
+
code: number;
|
|
53
|
+
data: string;
|
|
54
|
+
}
|
|
55
|
+
/** XTVERSION: terminal name/version string (answer to CSI > 0 q).
|
|
56
|
+
* Example values: "xterm.js(5.5.0)", "ghostty 1.2.0", "iTerm2 3.6". */
|
|
57
|
+
| {
|
|
58
|
+
type: 'xtversion';
|
|
59
|
+
name: string;
|
|
60
|
+
};
|
|
61
|
+
export type KeyParseState = {
|
|
62
|
+
mode: 'NORMAL' | 'IN_PASTE';
|
|
63
|
+
incomplete: string;
|
|
64
|
+
pasteBuffer: string;
|
|
65
|
+
_tokenizer?: Tokenizer;
|
|
66
|
+
};
|
|
67
|
+
export declare const INITIAL_STATE: KeyParseState;
|
|
68
|
+
export declare function parseMultipleKeypresses(prevState: KeyParseState, input?: Buffer | string | null): [ParsedInput[], KeyParseState];
|
|
69
|
+
export declare const nonAlphanumericKeys: string[];
|
|
70
|
+
export type ParsedKey = {
|
|
71
|
+
kind: 'key';
|
|
72
|
+
fn: boolean;
|
|
73
|
+
name: string | undefined;
|
|
74
|
+
ctrl: boolean;
|
|
75
|
+
meta: boolean;
|
|
76
|
+
shift: boolean;
|
|
77
|
+
option: boolean;
|
|
78
|
+
super: boolean;
|
|
79
|
+
sequence: string | undefined;
|
|
80
|
+
raw: string | undefined;
|
|
81
|
+
code?: string;
|
|
82
|
+
isPasted: boolean;
|
|
83
|
+
};
|
|
84
|
+
/** A terminal response sequence (DECRPM, DA1, OSC reply, etc.) parsed
|
|
85
|
+
* out of the input stream. Not user input — consumers should dispatch
|
|
86
|
+
* to a response handler. */
|
|
87
|
+
export type ParsedResponse = {
|
|
88
|
+
kind: 'response';
|
|
89
|
+
/** Raw escape sequence bytes, for debugging/logging */
|
|
90
|
+
sequence: string;
|
|
91
|
+
response: TerminalResponse;
|
|
92
|
+
};
|
|
93
|
+
/** SGR mouse event with coordinates. Emitted for clicks, drags, and
|
|
94
|
+
* releases (wheel events remain ParsedKey). col/row are 1-indexed
|
|
95
|
+
* from the terminal sequence (CSI < btn;col;row M/m). */
|
|
96
|
+
export type ParsedMouse = {
|
|
97
|
+
kind: 'mouse';
|
|
98
|
+
/** Raw SGR button code. Low 2 bits = button (0=left,1=mid,2=right),
|
|
99
|
+
* bit 5 (0x20) = drag/motion, bit 6 (0x40) = wheel. */
|
|
100
|
+
button: number;
|
|
101
|
+
/** 'press' for M terminator, 'release' for m terminator */
|
|
102
|
+
action: 'press' | 'release';
|
|
103
|
+
/** 1-indexed column (from terminal) */
|
|
104
|
+
col: number;
|
|
105
|
+
/** 1-indexed row (from terminal) */
|
|
106
|
+
row: number;
|
|
107
|
+
sequence: string;
|
|
108
|
+
};
|
|
109
|
+
/** Everything that can come out of the input parser: a user keypress/paste,
|
|
110
|
+
* a mouse click/drag event, or a terminal response to a query we sent. */
|
|
111
|
+
export type ParsedInput = ParsedKey | ParsedMouse | ParsedResponse;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Dispatcher } from './events/dispatcher.js';
|
|
2
|
+
export declare function getOwnerChain(fiber: unknown): string[];
|
|
3
|
+
export declare function isDebugRepaintsEnabled(): boolean;
|
|
4
|
+
export declare const dispatcher: Dispatcher;
|
|
5
|
+
export declare function recordYogaMs(ms: number): void;
|
|
6
|
+
export declare function getLastYogaMs(): number;
|
|
7
|
+
export declare function markCommitStart(): void;
|
|
8
|
+
export declare function getLastCommitMs(): number;
|
|
9
|
+
export declare function resetProfileCounters(): void;
|
|
10
|
+
declare const reconciler: any;
|
|
11
|
+
export default reconciler;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { type Boxes, type BoxStyle } from 'cli-boxes';
|
|
2
|
+
import type { DOMNode } from './dom.js';
|
|
3
|
+
import type Output from './output.js';
|
|
4
|
+
export type BorderTextOptions = {
|
|
5
|
+
content: string;
|
|
6
|
+
position: 'top' | 'bottom';
|
|
7
|
+
align: 'start' | 'end' | 'center';
|
|
8
|
+
offset?: number;
|
|
9
|
+
};
|
|
10
|
+
export declare const CUSTOM_BORDER_STYLES: {
|
|
11
|
+
readonly dashed: {
|
|
12
|
+
readonly top: "╌";
|
|
13
|
+
readonly left: "╎";
|
|
14
|
+
readonly right: "╎";
|
|
15
|
+
readonly bottom: "╌";
|
|
16
|
+
readonly topLeft: " ";
|
|
17
|
+
readonly topRight: " ";
|
|
18
|
+
readonly bottomLeft: " ";
|
|
19
|
+
readonly bottomRight: " ";
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
export type BorderStyle = keyof Boxes | keyof typeof CUSTOM_BORDER_STYLES | BoxStyle;
|
|
23
|
+
declare const renderBorder: (x: number, y: number, node: DOMNode, output: Output) => void;
|
|
24
|
+
export default renderBorder;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { DOMElement } from './dom.js';
|
|
2
|
+
import type Output from './output.js';
|
|
3
|
+
import type { Screen } from './screen.js';
|
|
4
|
+
import { type StyledSegment } from './squash-text-nodes.js';
|
|
5
|
+
import type { Color } from './styles.js';
|
|
6
|
+
export declare function resetLayoutShifted(): void;
|
|
7
|
+
export declare function didLayoutShift(): boolean;
|
|
8
|
+
export type ScrollHint = {
|
|
9
|
+
top: number;
|
|
10
|
+
bottom: number;
|
|
11
|
+
delta: number;
|
|
12
|
+
};
|
|
13
|
+
export declare function resetScrollHint(): void;
|
|
14
|
+
export declare function getScrollHint(): ScrollHint | null;
|
|
15
|
+
export declare function resetScrollDrainNode(): void;
|
|
16
|
+
export declare function getScrollDrainNode(): DOMElement | null;
|
|
17
|
+
export type FollowScroll = {
|
|
18
|
+
delta: number;
|
|
19
|
+
viewportTop: number;
|
|
20
|
+
viewportBottom: number;
|
|
21
|
+
};
|
|
22
|
+
export declare function consumeFollowScroll(): FollowScroll | null;
|
|
23
|
+
/**
|
|
24
|
+
* Build a mapping from each character position in the plain text to its segment index.
|
|
25
|
+
* Returns an array where charToSegment[i] is the segment index for character i.
|
|
26
|
+
*/
|
|
27
|
+
declare function buildCharToSegmentMap(segments: StyledSegment[]): number[];
|
|
28
|
+
/**
|
|
29
|
+
* Apply styles to wrapped text by mapping each character back to its original segment.
|
|
30
|
+
* This preserves per-segment styles even when text wraps across lines.
|
|
31
|
+
*
|
|
32
|
+
* @param trimEnabled - Whether whitespace trimming is enabled (wrap-trim mode).
|
|
33
|
+
* When true, we skip whitespace in the original that was trimmed from the output.
|
|
34
|
+
* When false (wrap mode), all whitespace is preserved so no skipping is needed.
|
|
35
|
+
*/
|
|
36
|
+
declare function applyStylesToWrappedText(wrappedPlain: string, segments: StyledSegment[], charToSegment: number[], originalPlain: string, trimEnabled?: boolean): string;
|
|
37
|
+
declare function renderNodeToOutput(node: DOMElement, output: Output, { offsetX, offsetY, prevScreen, skipSelfBlit, inheritedBackgroundColor, }: {
|
|
38
|
+
offsetX?: number;
|
|
39
|
+
offsetY?: number;
|
|
40
|
+
prevScreen: Screen | undefined;
|
|
41
|
+
skipSelfBlit?: boolean;
|
|
42
|
+
inheritedBackgroundColor?: Color;
|
|
43
|
+
}): void;
|
|
44
|
+
export { buildCharToSegmentMap, applyStylesToWrappedText };
|
|
45
|
+
export default renderNodeToOutput;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { ReactElement } from 'react';
|
|
2
|
+
import { type Screen, StylePool } from './screen.js';
|
|
3
|
+
/** Position of a match within a rendered message, relative to the message's
|
|
4
|
+
* own bounding box (row 0 = message top). Stable across scroll — to
|
|
5
|
+
* highlight on the real screen, add the message's screen-row offset. */
|
|
6
|
+
export type MatchPosition = {
|
|
7
|
+
row: number;
|
|
8
|
+
col: number;
|
|
9
|
+
/** Number of CELLS the match spans (= query.length for ASCII, more
|
|
10
|
+
* for wide chars in the query). */
|
|
11
|
+
len: number;
|
|
12
|
+
};
|
|
13
|
+
/** Render a React element (wrapped in all contexts the component needs —
|
|
14
|
+
* caller's job) to an isolated Screen buffer at the given width. Returns
|
|
15
|
+
* the Screen + natural height (from yoga). Used for search: render ONE
|
|
16
|
+
* message, scan its Screen for the query, get exact (row, col) positions.
|
|
17
|
+
*
|
|
18
|
+
* ~1-3ms per call (yoga alloc + calculateLayout + paint). The
|
|
19
|
+
* flushSyncWork cross-root leak measured ~0.0003ms/call growth — fine
|
|
20
|
+
* for on-demand single-message rendering, pathological for render-all-
|
|
21
|
+
* 8k-upfront. Cache per (msg, query, width) upstream.
|
|
22
|
+
*
|
|
23
|
+
* Unmounts between calls. Root/container/pools persist for reuse. */
|
|
24
|
+
export declare function renderToScreen(el: ReactElement, width: number): {
|
|
25
|
+
screen: Screen;
|
|
26
|
+
height: number;
|
|
27
|
+
};
|
|
28
|
+
/** Scan a Screen buffer for all occurrences of query. Returns positions
|
|
29
|
+
* relative to the buffer (row 0 = buffer top). Same cell-skip logic as
|
|
30
|
+
* applySearchHighlight (SpacerTail/SpacerHead/noSelect) so positions
|
|
31
|
+
* match what the overlay highlight would find. Case-insensitive.
|
|
32
|
+
*
|
|
33
|
+
* For the side-render use: this Screen is the FULL message (natural
|
|
34
|
+
* height, not viewport-clipped). Positions are stable — to highlight
|
|
35
|
+
* on the real screen, add the message's screen offset (lo). */
|
|
36
|
+
export declare function scanPositions(screen: Screen, query: string): MatchPosition[];
|
|
37
|
+
/** Write CURRENT (yellow+bold+underline) at positions[currentIdx] +
|
|
38
|
+
* rowOffset. OTHER positions are NOT styled here — the scan-highlight
|
|
39
|
+
* (applySearchHighlight with null hint) does inverse for all visible
|
|
40
|
+
* matches, including these. Two-layer: scan = 'you could go here',
|
|
41
|
+
* position = 'you ARE here'. Writing inverse again here would be a
|
|
42
|
+
* no-op (withInverse idempotent) but wasted work.
|
|
43
|
+
*
|
|
44
|
+
* Positions are message-relative (row 0 = message top). rowOffset =
|
|
45
|
+
* message's current screen-top (lo). Clips outside [0, height). */
|
|
46
|
+
export declare function applyPositionedHighlight(screen: Screen, stylePool: StylePool, positions: MatchPosition[], rowOffset: number, currentIdx: number): boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { type DOMElement } from './dom.js';
|
|
2
|
+
import type { Frame } from './frame.js';
|
|
3
|
+
import { type StylePool } from './screen.js';
|
|
4
|
+
export type RenderOptions = {
|
|
5
|
+
frontFrame: Frame;
|
|
6
|
+
backFrame: Frame;
|
|
7
|
+
isTTY: boolean;
|
|
8
|
+
terminalWidth: number;
|
|
9
|
+
terminalRows: number;
|
|
10
|
+
altScreen: boolean;
|
|
11
|
+
prevFrameContaminated: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type Renderer = (options: RenderOptions) => Frame;
|
|
14
|
+
export default function createRenderer(node: DOMElement, stylePool: StylePool): Renderer;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { FrameEvent } from './frame.js';
|
|
3
|
+
import Ink from './ink.js';
|
|
4
|
+
export type RenderOptions = {
|
|
5
|
+
/**
|
|
6
|
+
* Output stream where app will be rendered.
|
|
7
|
+
*
|
|
8
|
+
* @default process.stdout
|
|
9
|
+
*/
|
|
10
|
+
stdout?: NodeJS.WriteStream;
|
|
11
|
+
/**
|
|
12
|
+
* Input stream where app will listen for input.
|
|
13
|
+
*
|
|
14
|
+
* @default process.stdin
|
|
15
|
+
*/
|
|
16
|
+
stdin?: NodeJS.ReadStream;
|
|
17
|
+
/**
|
|
18
|
+
* Error stream.
|
|
19
|
+
* @default process.stderr
|
|
20
|
+
*/
|
|
21
|
+
stderr?: NodeJS.WriteStream;
|
|
22
|
+
/**
|
|
23
|
+
* Configure whether Ink should listen to Ctrl+C keyboard input and exit the app. This is needed in case `process.stdin` is in raw mode, because then Ctrl+C is ignored by default and process is expected to handle it manually.
|
|
24
|
+
*
|
|
25
|
+
* @default true
|
|
26
|
+
*/
|
|
27
|
+
exitOnCtrlC?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Patch console methods to ensure console output doesn't mix with Ink output.
|
|
30
|
+
*
|
|
31
|
+
* @default true
|
|
32
|
+
*/
|
|
33
|
+
patchConsole?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Called after each frame render with timing and flicker information.
|
|
36
|
+
*/
|
|
37
|
+
onFrame?: (event: FrameEvent) => void;
|
|
38
|
+
};
|
|
39
|
+
export type Instance = {
|
|
40
|
+
/**
|
|
41
|
+
* Replace previous root node with a new one or update props of the current root node.
|
|
42
|
+
*/
|
|
43
|
+
rerender: Ink['render'];
|
|
44
|
+
/**
|
|
45
|
+
* Manually unmount the whole Ink app.
|
|
46
|
+
*/
|
|
47
|
+
unmount: Ink['unmount'];
|
|
48
|
+
/**
|
|
49
|
+
* Returns a promise, which resolves when app is unmounted.
|
|
50
|
+
*/
|
|
51
|
+
waitUntilExit: Ink['waitUntilExit'];
|
|
52
|
+
cleanup: () => void;
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* A managed Ink root, similar to react-dom's createRoot API.
|
|
56
|
+
* Separates instance creation from rendering so the same root
|
|
57
|
+
* can be reused for multiple sequential screens.
|
|
58
|
+
*/
|
|
59
|
+
export type Root = {
|
|
60
|
+
render: (node: ReactNode) => void;
|
|
61
|
+
unmount: () => void;
|
|
62
|
+
waitUntilExit: () => Promise<void>;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Mount a component and render the output.
|
|
66
|
+
*/
|
|
67
|
+
export declare const renderSync: (node: ReactNode, options?: NodeJS.WriteStream | RenderOptions) => Instance;
|
|
68
|
+
declare const wrappedRender: (node: ReactNode, options?: NodeJS.WriteStream | RenderOptions) => Promise<Instance>;
|
|
69
|
+
export default wrappedRender;
|
|
70
|
+
/**
|
|
71
|
+
* Create an Ink root without rendering anything yet.
|
|
72
|
+
* Like react-dom's createRoot — call root.render() to mount a tree.
|
|
73
|
+
*/
|
|
74
|
+
export declare function createRoot({ stdout, stdin, stderr, exitOnCtrlC, patchConsole, onFrame, }?: RenderOptions): Promise<Root>;
|