Skip to content

Commit dc624ff

Browse files
committed
Merge remote-tracking branch 'origin/main' into integrate/split-large-components-main
# Conflicts: # .env.example # .eslintrc.cjs # .github/workflows/ci.yml # .github/workflows/dev-release.yml # .github/workflows/release.yml # AGENTS.md # README.md # README.zh-CN.md # apps/cli/src/commands/builtin/pr_comments.ts # apps/cli/src/entrypoints/cli/agentsValidate.ts # apps/cli/src/entrypoints/cli/print/controlRequests.ts # apps/cli/src/services/outputStyles.ts # apps/cli/src/services/pluginRuntime.ts # apps/cli/src/ui/components/ConsoleOAuthFlow.tsx # apps/cli/src/ui/components/Message.tsx # apps/cli/src/ui/components/StructuredDiff.tsx # apps/cli/src/ui/components/binary-feedback/BinaryFeedbackView.tsx # apps/cli/src/ui/components/messages/AssistantToolUseMessage.tsx # apps/cli/src/ui/components/messages/UserToolResultMessage/FallbackToolResultMessage.tsx # apps/cli/src/ui/components/messages/UserToolResultMessage/UserToolRejectMessage.tsx # apps/cli/src/ui/components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx # apps/cli/src/ui/hooks/useDoublePress.ts # apps/cli/src/utils/completion/advancedFuzzyMatcher.ts # apps/cli/src/utils/completion/fuzzyMatcher.ts # apps/server/src/acp/errors.ts # apps/server/src/acp/index.ts # apps/server/src/acp/jsonrpc.ts # apps/server/src/acp/protocol/base.ts # apps/server/src/acp/sessionManager.ts # apps/server/src/acp/sessionStore.ts # apps/server/src/acp/stdioTransport.ts # apps/server/src/acp/validation.ts # bun.lock # package.json # packages/core/src/ai/adapters/base.ts # packages/core/src/ai/adapters/chatCompletions.ts # packages/core/src/ai/adapters/responsesStreaming.ts # packages/core/src/ai/modelAdapterFactory.ts # packages/core/src/context/index.ts # packages/core/src/feedback/binaryFeedback.ts # packages/core/src/mcp/client/utils.ts # packages/core/src/permissions/filesystem.ts # packages/core/src/services/connection.ts # packages/core/src/services/manager.ts # packages/core/src/services/oauth.ts # packages/core/src/test/diagnostic/diagnostic-stream-test.test.ts # packages/core/src/test/integration/acp-smoke.test.ts # packages/core/src/test/integration/sandbox-network-macos-proxy.test.ts # packages/core/src/test/production/bash-intent-gate-real.test.ts # packages/core/src/test/production/responses-api-tool-processing.test.ts # packages/core/src/test/tools/file-read-tool-parity.test.ts # packages/core/src/test/unit/acp-jsonrpc-validation.test.ts # packages/core/src/test/unit/acp-session-store-manager.test.ts # packages/core/src/test/unit/anthropic-helpers.test.ts # packages/core/src/test/unit/base-adapter-streaming.test.ts # packages/core/src/test/unit/bash-cd-trailing-space.test.ts # packages/core/src/test/unit/bash-llm-gate.test.ts # packages/core/src/test/unit/bash-tool-ctrl-b-background.test.ts # packages/core/src/test/unit/bash-tool-progress.test.ts # packages/core/src/test/unit/bash-tool-sandbox-indicator.test.ts # packages/core/src/test/unit/bun-shell-sandbox-bwrap.test.ts # packages/core/src/test/unit/chat-completions-e2e.test.ts # packages/core/src/test/unit/cli-command-registration.test.ts # packages/core/src/test/unit/config-loader-cache.test.ts # packages/core/src/test/unit/config-validator-openrouter.test.ts # packages/core/src/test/unit/destructive-command-guard-crossplatform.test.ts # packages/core/src/test/unit/git-email.test.ts # packages/core/src/test/unit/hooks-stop.test.ts # packages/core/src/test/unit/image-media.test.ts # packages/core/src/test/unit/mcp-connection-internals.test.ts # packages/core/src/test/unit/mcp-content-normalization.test.ts # packages/core/src/test/unit/mcp-manager-lifecycle.test.ts # packages/core/src/test/unit/mcp-tool-result-rendering.test.tsx # packages/core/src/test/unit/permission-mode-dontask.test.ts # packages/core/src/test/unit/plugin-tokenizer-windows.test.ts # packages/core/src/test/unit/process-user-input-images.test.ts # packages/core/src/test/unit/project-instructions-path.test.ts # packages/core/src/test/unit/responses-api-e2e.test.ts # packages/core/src/test/unit/session-load.test.ts # packages/core/src/test/unit/shell-cmd-selection.test.ts # packages/core/src/test/unit/suspicious-windows-path.test.ts # packages/core/src/test/unit/terminal-setup-module.test.ts # packages/core/src/test/unit/user-tool-result-message-orphaned.test.tsx # packages/core/src/todo/storage.ts # packages/core/src/types/conversation.ts # packages/core/src/types/logs.ts # packages/core/src/types/notebook.ts # packages/core/src/types/toolPermissionContext.ts # packages/core/src/types/untyped-deps.d.ts # packages/core/src/utils/agentStorage.ts # packages/core/src/utils/autoUpdater.ts # packages/core/src/utils/expertChatStorage.ts # packages/core/src/utils/file.ts # packages/core/src/utils/hashCommand.ts # packages/core/src/utils/imagePaste.ts # packages/core/src/utils/style.ts # packages/core/src/utils/unaryLogging.ts # packages/core/src/utils/visionContent.ts # packages/protocol/src/commandSource.ts # packages/protocol/src/streamJson.ts # packages/protocol/src/utils/kodeAgentSessionLog.ts # packages/runtime/src/file.ts # packages/tools/src/tools/filesystem/FileEditTool/FileEditTool.tsx # packages/tools/src/tools/filesystem/FileEditTool/utils.ts # packages/tools/src/tools/filesystem/GlobTool/GlobTool.tsx # packages/tools/src/tools/interaction/TodoWriteTool/TodoWriteTool.tsx # packages/tools/src/tools/mcp/ListMcpResourcesTool/ListMcpResourcesTool.tsx # scripts/prepublish-check.js # src/acp/kodeAcpAgent.ts # src/acp/stdoutGuard.ts # src/app/query.ts # src/commands/agents/generation.ts # src/commands/agents/ui.tsx # src/commands/compact.ts # src/commands/terminalSetup.ts # src/constants/models.ts # src/constants/prompts.ts # src/core/config/defaults.ts # src/core/config/index.ts # src/core/config/loader.ts # src/core/config/migrations.ts # src/core/permissions/engine/index.ts # src/core/permissions/index.ts # src/core/permissions/rules/index.ts # src/core/permissions/rules/planMode.ts # src/core/permissions/store/index.ts # src/core/permissions/store/savePermission.ts # src/core/permissions/ui-helpers/index.ts # src/core/permissions/ui-helpers/types.ts # src/core/tools/defineTool.ts # src/core/tools/executor.ts # src/core/tools/index.ts # src/core/tools/registry.ts # src/entrypoints/acp.ts # src/entrypoints/cli.tsx # src/entrypoints/cli/printMode.ts # src/entrypoints/cli/runCli.tsx # src/entrypoints/cli/setup.ts # src/entrypoints/cli/stdio/canUseTool.ts # src/entrypoints/cli/stdio/streamJsonSession.ts # src/entrypoints/cli/stdio/structuredStdio.ts # src/entrypoints/mcp.ts # src/services/ai/adapters/responsesAPI.ts # src/services/ai/gpt5ConnectionTest.ts # src/services/ai/llm.ts # src/services/ai/openai.ts # src/services/mcp/client.ts # src/services/mcp/discovery.ts # src/services/mcp/index.ts # src/services/mcp/tools-integration.ts # src/services/plugins/customCommands.ts # src/services/plugins/skillMarketplace.ts # src/services/system/systemReminder.ts # src/tools/agent/TaskTool/TaskTool.tsx # src/tools/ai/AskExpertModelTool/AskExpertModelTool.tsx # src/tools/filesystem/FileReadTool/FileReadTool.tsx # src/tools/filesystem/FileWriteTool/FileWriteTool.tsx # src/tools/filesystem/MultiEditTool/MultiEditTool.tsx # src/tools/network/WebFetchTool/WebFetchTool.tsx # src/tools/search/LspTool/LspTool.tsx # src/tools/system/BashTool/BashTool.tsx # src/tools/system/BashTool/bashGateRules.ts # src/tools/system/BashTool/llmSafetyGate.ts # src/types/canUseTool.ts # src/types/permissionMode.ts # src/ui/components/Bug.tsx # src/ui/components/FileEditToolUpdatedMessage.tsx # src/ui/components/Logo.tsx # src/ui/components/ModelListManager.tsx # src/ui/components/ModelSelector.tsx # src/ui/components/PromptInput.tsx # src/ui/components/TextInput.tsx # src/ui/components/custom-select/theme.ts # src/ui/components/messages/user-tool-result-message/UserToolSuccessMessage.tsx # src/ui/components/messages/user-tool-result-message/utils.tsx # src/ui/components/model-selector/ModelSelectionScreen.tsx # src/ui/components/model-selector/ModelSelector.tsx # src/ui/components/model-selector/filterModels.ts # src/ui/components/model-selector/modelFetchers.ts # src/ui/components/model-selector/printModelConfig.ts # src/ui/components/permissions/skill-permission-request/SkillPermissionRequest.tsx # src/ui/hooks/useApiKeyVerification.ts # src/ui/hooks/useTextInput.ts # src/ui/hooks/useUnifiedCompletion.ts # src/ui/screens/Doctor.tsx # src/ui/screens/MCPServerApproval.tsx # src/ui/screens/REPL.tsx # src/ui/screens/ResumeConversation.tsx # src/utils/agent/loader.ts # src/utils/bun/shell.ts # src/utils/completion/commonUnixCommands.ts # src/utils/fs/secureFile.ts # src/utils/log/debugLogger.ts # src/utils/log/index.ts # src/utils/log/taskOutputStore.ts # src/utils/messages/core.ts # src/utils/messages/index.ts # src/utils/messages/userInput.tsx # src/utils/model/index.ts # src/utils/permissions/bashToolPermissionEngine.ts # src/utils/permissions/fileToolPermissionEngine.ts # src/utils/protocol/kodeAgentSessionResume.ts # src/utils/sandbox/sandboxNetworkInfrastructure.ts # src/utils/session/autoCompactCore.ts # src/utils/session/kodeHooks.ts # src/utils/session/messageContextManager.ts # src/utils/system/http.ts # src/utils/system/ripgrep.ts # tests/e2e/cli-smoke.test.ts # tests/e2e/tui-interactions.test.tsx # tests/fixtures/mcp/stdio-echo-server.ts # tests/helpers/loadDotEnv.ts # tests/integration/integration-cli-flow.test.ts # tests/integration/mcp/stdio-client-server.test.ts # tests/integration/node-runtime-smoke.test.ts # tests/integration/stdio/stream-json-interrupt.test.ts # tests/unit/binary-utils.test.ts # tests/unit/config-path-normalization.test.ts # tests/unit/enter-plan-mode-tool.test.ts # tests/unit/file-permission-engine.test.ts # tests/unit/lsp-tool.test.ts # tests/unit/model-selector.test.tsx # tests/unit/naming-conventions.test.ts # tests/unit/no-bun-runtime-api.test.ts # tests/unit/ripgrep-bundled.test.ts # tests/unit/smoke.test.ts # tests/unit/todos-command.test.tsx # tests/unit/tools/tools-basic.test.ts
2 parents fbba812 + 489b9d8 commit dc624ff

138 files changed

Lines changed: 5751 additions & 1401 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.env.example

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Environment Variables for Production API Tests
2+
# Copy this file to .env and fill in your actual API keys
3+
4+
# Enable production test mode
5+
PRODUCTION_TEST_MODE=true
6+
7+
# GPT-5 Codex Test Configuration
8+
TEST_GPT5_API_KEY=your_gpt5_api_key_here
9+
TEST_GPT5_BASE_URL=http://127.0.0.1:3000/openai
10+
11+
# OpenRouter Provider Configuration
12+
OPENROUTER_API_KEY=your_openrouter_api_key_here
13+
14+
# MiniMax Codex Test Configuration
15+
TEST_MINIMAX_API_KEY=your_minimax_api_key_here
16+
TEST_MINIMAX_BASE_URL=https://api.minimaxi.com/v1
17+
18+
# WARNING:
19+
# - Never commit .env files to version control!
20+
# - The .env file is already in .gitignore
21+
# - API keys should be kept secret and secure

.eslintrc.cjs

Lines changed: 0 additions & 45 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,15 @@ jobs:
1818
fail-fast: false
1919
matrix:
2020
os: [ubuntu-latest, macos-latest, windows-latest]
21+
env:
22+
KODE_SKIP_BINARY_DOWNLOAD: "1"
23+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
2124
steps:
2225
- name: Checkout
2326
uses: actions/checkout@v4
2427

2528
- name: Setup Bun
26-
uses: oven-sh/setup-bun@v1
29+
uses: oven-sh/setup-bun@v2
2730
with:
2831
bun-version: latest
2932

@@ -32,6 +35,7 @@ jobs:
3235

3336
- name: Format
3437
run: bun run format:check
38+
shell: bash
3539

3640
- name: Typecheck
3741
run: bun run typecheck

.github/workflows/dev-release.yml

Lines changed: 2 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
node-version: '20.18.1'
5555

5656
- name: Setup Bun
57-
uses: oven-sh/setup-bun@v1
57+
uses: oven-sh/setup-bun@v2
5858
with:
5959
bun-version: latest
6060

@@ -129,92 +129,8 @@ jobs:
129129
path: ${{ steps.asset.outputs.asset }}
130130
if-no-files-found: error
131131

132-
publish-npm:
133-
needs: [compute-version, build-binaries]
134-
runs-on: ubuntu-latest
135-
steps:
136-
- name: Checkout
137-
uses: actions/checkout@v4
138-
139-
- name: Setup Node.js
140-
uses: actions/setup-node@v4
141-
with:
142-
node-version: '20.18.1'
143-
registry-url: 'https://registry.npmjs.org'
144-
145-
- name: Setup Bun
146-
uses: oven-sh/setup-bun@v1
147-
with:
148-
bun-version: latest
149-
150-
- name: Install
151-
run: bun install
152-
153-
- name: Sync workspace versions (dev)
154-
run: node scripts/set-version.mjs "${DEV_VERSION}"
155-
env:
156-
DEV_VERSION: ${{ needs.compute-version.outputs.dev_version }}
157-
158-
- name: Download binary artifacts
159-
uses: actions/download-artifact@v4
160-
with:
161-
path: artifacts
162-
merge-multiple: true
163-
164-
- name: Ensure bundled ripgrep
165-
run: bun run scripts/ensure-ripgrep.mjs
166-
167-
- name: Prepare Linux seccomp assets (x64 + arm64) for publishing
168-
run: node scripts/prepare-seccomp-assets.mjs --artifacts-dir artifacts --dest-root vendor/seccomp
169-
170-
- name: Prepare ripgrep platform packages
171-
run: node scripts/prepare-ripgrep-packages.mjs
172-
173-
- name: Prepare Kode binary platform packages
174-
run: node scripts/prepare-kode-bin-packages.mjs
175-
176-
- name: Typecheck
177-
run: bun run typecheck
178-
179-
- name: Test
180-
run: bun test
181-
182-
- name: Build (all-in-bun)
183-
run: bun run build
184-
185-
- name: Prepublish check
186-
run: bun run scripts/prepublish-check.js
187-
188-
- name: Smoke test packaged install (no scripts)
189-
run: bash scripts/smoke-packaged-install.sh
190-
191-
- name: "Publish Kode binary platform packages (dist-tag: dev)"
192-
run: |
193-
set -euo pipefail
194-
for dir in packages/kode-bin-*; do
195-
echo "Publishing $dir"
196-
(cd "$dir" && npm publish --tag dev --access public --ignore-scripts)
197-
done
198-
env:
199-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
200-
201-
- name: "Publish ripgrep platform packages (dist-tag: dev)"
202-
run: |
203-
set -euo pipefail
204-
for dir in packages/kode-ripgrep-*; do
205-
echo "Publishing $dir"
206-
(cd "$dir" && npm publish --tag dev --access public --ignore-scripts)
207-
done
208-
env:
209-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
210-
211-
- name: "Publish npm (dist-tag: dev)"
212-
run: npm publish --tag dev --access public --ignore-scripts
213-
env:
214-
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
215-
216132
prerelease:
217-
needs: [compute-version, build-binaries, publish-npm]
133+
needs: [compute-version, build-binaries]
218134
runs-on: ubuntu-latest
219135
permissions:
220136
contents: write

.github/workflows/npm-publish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ jobs:
6262
node-version: '20.18.1'
6363

6464
- name: Setup Bun
65-
uses: oven-sh/setup-bun@v1
65+
uses: oven-sh/setup-bun@v2
6666
with:
6767
bun-version: latest
6868

@@ -140,7 +140,7 @@ jobs:
140140
registry-url: 'https://registry.npmjs.org'
141141

142142
- name: Setup Bun
143-
uses: oven-sh/setup-bun@v1
143+
uses: oven-sh/setup-bun@v2
144144
with:
145145
bun-version: latest
146146

.github/workflows/release.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ jobs:
3030
uses: actions/setup-node@v4
3131
with:
3232
node-version: '20.18.1'
33+
registry-url: 'https://registry.npmjs.org'
34+
35+
- name: Setup Bun
36+
uses: oven-sh/setup-bun@v2
37+
with:
38+
bun-version: latest
3339

3440
- name: Configure Git
3541
run: |

.prettierrc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44
"printWidth": 80,
55
"singleQuote": true,
66
"arrowParens": "avoid",
7-
"bracketSpacing": true
7+
"bracketSpacing": true,
8+
"endOfLine": "auto"
89
}

AGENTS.md

Lines changed: 5 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -161,69 +161,9 @@ If the gate fails closed (timeout / invalid output / API error), Kode writes a d
161161
2. Register it in `apps/cli/src/commands/registry.ts`
162162
3. Ensure help text is coherent with onboarding and permission model
163163

164-
It looks like the content you wanted to transform didn't come through in your message. I can see references to "Pasted text #1" and "Pasted text #2," but the actual text is missing.
164+
## AI Context Notes
165165

166-
Please paste the content of those two blocks here, and I will immediately structure them into a clean, well-formatted note for your `AGENTS.md` file!
167-
168-
_Added on 1/26/2026, 2:38:04 AM GMT+8_
169-
170-
It looks like the actual content of the notes you intended to paste didn't come through—I only see the placeholders `[Pasted text #1 +16 lines]` and `[Pasted text #2 +5 lines]`.
171-
172-
Please paste the text content here, and I will immediately format it into a structured note for your `AGENTS.md` file.
173-
174-
_Added on 1/26/2026, 2:38:05 AM GMT+8_
175-
176-
It looks like the actual text content for **Pasted text #1** and **Pasted text #2** didn't come through in your message.
177-
178-
Please paste the raw notes here, and I will immediately structure them into a clean, readable format for your `AGENTS.md` file.
179-
180-
_Added on 1/26/2026, 2:38:12 AM GMT+8_
181-
182-
⚠️ **Input Missing**
183-
184-
It looks like the actual content of the notes wasn't included in your message. You likely pasted the clipboard labels (e.g., `[Pasted text #1 +16 lines]`) instead of the raw text.
185-
186-
Please paste the content of the notes, and I will format them for `AGENTS.md` immediately.
187-
188-
_Added on 1/26/2026, 2:38:16 AM GMT+8_
189-
190-
It looks like the text content for **Pasted text #1** and **Pasted text #2** wasn't included in your message.
191-
192-
Please provide the raw text you would like me to structure. Once you paste it, I will format it into a clean, well-structured entry for your `AGENTS.md` file.
193-
194-
_Added on 1/26/2026, 2:38:16 AM GMT+8_
195-
196-
It looks like the actual text content for your note didn't come through—I only see the placeholders `[Pasted text #1...]` and `[Pasted text #2...]`.
197-
198-
Please paste the text you would like me to structure, and I will format it immediately for `AGENTS.md` with appropriate headings, bullets, and code blocks.
199-
200-
_Added on 1/26/2026, 2:38:17 AM GMT+8_
201-
202-
It looks like the text content for **Pasted text #1** and **Pasted text #2** wasn't included in your message.
203-
204-
Please paste the notes you'd like me to structure. Once you provide them, I will format them into a clean, well-organized Markdown section ready for your `AGENTS.md` file.
205-
206-
Here is an example of how I will structure it once you provide the text:
207-
208-
```markdown
209-
## [Agent Name / Topic]
210-
211-
### Overview
212-
[Brief summary of the agent's purpose or the topic]
213-
214-
### Key Capabilities
215-
- [Capability 1]
216-
- [Capability 2]
217-
- [Capability 3]
218-
219-
### Configuration & Usage
220-
\`\`\`bash
221-
# Example command or config
222-
\`\`\`
223-
224-
### Notes / Limitations
225-
- [Important note]
226-
- [Limitation or constraint]
227-
```
228-
229-
_Added on 1/26/2026, 2:38:18 AM GMT+8_
166+
- 2026-06-06: The project has moved from ESLint 8 to ESLint 9 flat config (`eslint.config.mjs`). Do not restore `.eslintrc*`; `bun run lint` remains the lint command.
167+
- 2026-06-05: When fixing Windows CI, check Bun's default 5 second test timeout, cross-file `mock.module` pollution, and `cmd /c` versus Unix shell differences before skipping tests.
168+
- 2026-06-05: Background shell tests should wait for target stdout with `getBackgroundOutput` before asserting `readBackgroundOutput` cursor semantics.
169+
- 2026-06-05: For `cmd /c` tests, avoid hand-written Windows quoting around `process.execPath`; prefer simple shell/cmd-compatible commands when only stdout is needed.

Dockerfile

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,6 @@ WORKDIR /workspace
7272
COPY --from=builder /app/dist /app/dist
7373
COPY --from=builder /app/package.json /app/package.json
7474
COPY --from=builder /app/node_modules /app/node_modules
75-
COPY --from=builder /app/src /app/src
76-
77-
# Create the entrypoint script
78-
# RUN cat << 'EOF' > /entrypoint.sh
79-
# #!/bin/sh
80-
81-
# /root/.bun/bin/bun /app/dist/entrypoints/cli.js -c /workspace "$@"
82-
# EOF
83-
84-
# RUN chmod +x /entrypoint.sh
8575

8676
# Set the entrypoint
87-
ENTRYPOINT ["/root/.bun/bin/bun", "/app/dist/entrypoints/cli.js", "-c", "/workspace"]
77+
ENTRYPOINT ["/root/.bun/bin/bun", "/app/dist/index.js", "-c", "/workspace"]

apps/cli/src/app.tsx

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,6 @@ import { openSync } from 'fs'
2929
import { cwd } from 'process'
3030
import { ReadStream } from 'tty'
3131

32-
// Keep a reference so bundlers don't drop this side-effect import.
33-
import * as anthropicNodeShims from '@anthropic-ai/sdk/shims/node'
34-
Object.keys(anthropicNodeShims)
35-
3632
// ink and REPL are imported lazily to avoid top-level awaits during module init
3733
import type { RenderOptions } from 'ink'
3834

0 commit comments

Comments
 (0)