@anh3d0nic/qwen-code-termux-ice 1.0.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.
Files changed (1927) hide show
  1. package/.allstar/branch_protection.yaml +1 -0
  2. package/.aoneci/workflows/ci.yml +69 -0
  3. package/.dockerignore +10 -0
  4. package/.editorconfig +13 -0
  5. package/.gcp/Dockerfile.gemini-code-builder +89 -0
  6. package/.gcp/release-docker.yml +71 -0
  7. package/.gitattributes +24 -0
  8. package/.github/CODEOWNERS +3 -0
  9. package/.github/ISSUE_TEMPLATE/bug_report.yml +58 -0
  10. package/.github/ISSUE_TEMPLATE/feature_request.yml +35 -0
  11. package/.github/actions/post-coverage-comment/action.yml +114 -0
  12. package/.github/dependabot.yml +35 -0
  13. package/.github/pull_request_template.md +41 -0
  14. package/.github/scripts/pr-triage.sh +144 -0
  15. package/.github/workflows/build-and-publish-image.yml +109 -0
  16. package/.github/workflows/check-issue-completeness.yml +201 -0
  17. package/.github/workflows/ci.yml +239 -0
  18. package/.github/workflows/community-report.yml +197 -0
  19. package/.github/workflows/docs-page-action.yml +50 -0
  20. package/.github/workflows/e2e.yml +111 -0
  21. package/.github/workflows/eval.yml +29 -0
  22. package/.github/workflows/gemini-automated-issue-dedup.yml +262 -0
  23. package/.github/workflows/gemini-scheduled-issue-dedup.yml +116 -0
  24. package/.github/workflows/gemini-scheduled-pr-triage.yml +30 -0
  25. package/.github/workflows/gemini-self-assign-issue.yml +99 -0
  26. package/.github/workflows/no-response.yml +33 -0
  27. package/.github/workflows/qwen-automated-issue-triage.yml +203 -0
  28. package/.github/workflows/qwen-code-pr-review.yml +190 -0
  29. package/.github/workflows/qwen-scheduled-issue-triage.yml +213 -0
  30. package/.github/workflows/release-sdk.yml +420 -0
  31. package/.github/workflows/release-vscode-companion.yml +359 -0
  32. package/.github/workflows/release.yml +236 -0
  33. package/.github/workflows/stale.yml +39 -0
  34. package/.github/workflows/terminal-bench.yml +96 -0
  35. package/.husky/pre-commit +9 -0
  36. package/.nvmrc +1 -0
  37. package/.prettierignore +22 -0
  38. package/.prettierrc.json +7 -0
  39. package/.qwen/commands/qc/code-review.md +25 -0
  40. package/.qwen/commands/qc/commit.md +70 -0
  41. package/.qwen/commands/qc/create-issue.md +42 -0
  42. package/.qwen/commands/qc/create-pr.md +34 -0
  43. package/.qwen/ice-auto-load.sh +39 -0
  44. package/.qwen/ice.py +822 -0
  45. package/.qwen/qwen.md +70 -0
  46. package/.qwen/skills/pr-review/SKILL.md +104 -0
  47. package/.qwen/skills/terminal-capture/SKILL.md +241 -0
  48. package/.termux-backup/esbuild.config.js +77 -0
  49. package/.termux-backup/package.json.backup +135 -0
  50. package/.termux-backup/patches-README.md +231 -0
  51. package/.termux-backup/postinstall.cjs +14 -0
  52. package/.termux-backup/prepare-termux.cjs +33 -0
  53. package/.termux-backup/termux-runtime.ts +50 -0
  54. package/.vscode/extensions.json +7 -0
  55. package/.vscode/launch.json +165 -0
  56. package/.vscode/settings.json +17 -0
  57. package/.vscode/tasks.json +41 -0
  58. package/.yamllint.yml +90 -0
  59. package/CHANGELOG.md +77 -0
  60. package/CONTRIBUTING.md +303 -0
  61. package/Dockerfile +73 -0
  62. package/LICENSE +203 -0
  63. package/Makefile +59 -0
  64. package/README.md +263 -0
  65. package/SECURITY.md +9 -0
  66. package/docs/_meta.ts +14 -0
  67. package/docs/developers/BUILDING.md +145 -0
  68. package/docs/developers/_meta.ts +25 -0
  69. package/docs/developers/architecture.md +95 -0
  70. package/docs/developers/contributing.md +303 -0
  71. package/docs/developers/development/_meta.ts +9 -0
  72. package/docs/developers/development/deployment.md +117 -0
  73. package/docs/developers/development/integration-tests.md +137 -0
  74. package/docs/developers/development/issue-and-pr-automation.md +84 -0
  75. package/docs/developers/development/npm.md +258 -0
  76. package/docs/developers/development/telemetry.md +297 -0
  77. package/docs/developers/examples/proxy-script.md +81 -0
  78. package/docs/developers/roadmap.md +82 -0
  79. package/docs/developers/sdk-java.md +311 -0
  80. package/docs/developers/sdk-typescript.md +375 -0
  81. package/docs/developers/tools/_meta.ts +14 -0
  82. package/docs/developers/tools/exit-plan-mode.md +149 -0
  83. package/docs/developers/tools/file-system.md +167 -0
  84. package/docs/developers/tools/introduction.md +62 -0
  85. package/docs/developers/tools/mcp-server.md +873 -0
  86. package/docs/developers/tools/memory.md +44 -0
  87. package/docs/developers/tools/multi-file.md +69 -0
  88. package/docs/developers/tools/sandbox.md +91 -0
  89. package/docs/developers/tools/shell.md +259 -0
  90. package/docs/developers/tools/task.md +145 -0
  91. package/docs/developers/tools/todo-write.md +63 -0
  92. package/docs/developers/tools/web-fetch.md +54 -0
  93. package/docs/developers/tools/web-search.md +186 -0
  94. package/docs/index.md +25 -0
  95. package/docs/users/_meta.ts +30 -0
  96. package/docs/users/common-workflow.md +571 -0
  97. package/docs/users/configuration/_meta.ts +10 -0
  98. package/docs/users/configuration/auth.md +297 -0
  99. package/docs/users/configuration/memory.md +0 -0
  100. package/docs/users/configuration/model-providers.md +506 -0
  101. package/docs/users/configuration/qwen-ignore.md +55 -0
  102. package/docs/users/configuration/settings.md +563 -0
  103. package/docs/users/configuration/themes.md +160 -0
  104. package/docs/users/configuration/trusted-folders.md +61 -0
  105. package/docs/users/configuration.md +73 -0
  106. package/docs/users/extension/_meta.ts +9 -0
  107. package/docs/users/extension/extension-releasing.md +121 -0
  108. package/docs/users/extension/getting-started-extensions.md +299 -0
  109. package/docs/users/extension/introduction.md +303 -0
  110. package/docs/users/features/_meta.ts +15 -0
  111. package/docs/users/features/approval-mode.md +263 -0
  112. package/docs/users/features/checkpointing.md +77 -0
  113. package/docs/users/features/commands.md +295 -0
  114. package/docs/users/features/headless.md +282 -0
  115. package/docs/users/features/language.md +139 -0
  116. package/docs/users/features/lsp.md +374 -0
  117. package/docs/users/features/mcp.md +281 -0
  118. package/docs/users/features/sandbox.md +218 -0
  119. package/docs/users/features/skills.md +289 -0
  120. package/docs/users/features/sub-agents.md +504 -0
  121. package/docs/users/features/token-caching.md +29 -0
  122. package/docs/users/ide-integration/_meta.ts +4 -0
  123. package/docs/users/ide-integration/ide-companion-spec.md +182 -0
  124. package/docs/users/ide-integration/ide-integration.md +144 -0
  125. package/docs/users/integration-github-action.md +241 -0
  126. package/docs/users/integration-jetbrains.md +57 -0
  127. package/docs/users/integration-vscode.md +39 -0
  128. package/docs/users/integration-zed.md +54 -0
  129. package/docs/users/overview.md +64 -0
  130. package/docs/users/quickstart.md +271 -0
  131. package/docs/users/reference/_meta.ts +3 -0
  132. package/docs/users/reference/keyboard-shortcuts.md +72 -0
  133. package/docs/users/support/Uninstall.md +42 -0
  134. package/docs/users/support/_meta.ts +6 -0
  135. package/docs/users/support/tos-privacy.md +112 -0
  136. package/docs/users/support/troubleshooting.md +123 -0
  137. package/docs-site/README.md +54 -0
  138. package/docs-site/mdx-components.js +12 -0
  139. package/docs-site/next-env.d.ts +6 -0
  140. package/docs-site/next.config.mjs +5 -0
  141. package/docs-site/package.json +22 -0
  142. package/docs-site/src/app/[[...mdxPath]]/page.jsx +27 -0
  143. package/docs-site/src/app/layout.jsx +55 -0
  144. package/esbuild.config.js +80 -0
  145. package/eslint-rules/no-relative-cross-package-imports.js +159 -0
  146. package/eslint.config.js +327 -0
  147. package/hello/QWEN.md +8 -0
  148. package/hello/qwen-extension.json +5 -0
  149. package/integration-tests/acp-integration.test.ts +1003 -0
  150. package/integration-tests/concurrent-runner/README.md +139 -0
  151. package/integration-tests/concurrent-runner/config.example.json +39 -0
  152. package/integration-tests/concurrent-runner/examples/toy-config.json +27 -0
  153. package/integration-tests/concurrent-runner/examples/toy-project/package.json +11 -0
  154. package/integration-tests/concurrent-runner/export-html-from-chatrecord-jsonl.js +973 -0
  155. package/integration-tests/concurrent-runner/render-chat-temp.html +291 -0
  156. package/integration-tests/concurrent-runner/requirements.txt +2 -0
  157. package/integration-tests/concurrent-runner/runner.py +1083 -0
  158. package/integration-tests/context-compress-interactive.test.ts +108 -0
  159. package/integration-tests/ctrl-c-exit.test.ts +76 -0
  160. package/integration-tests/edit.test.ts +185 -0
  161. package/integration-tests/extensions-install.test.ts +52 -0
  162. package/integration-tests/file-system-interactive.test.ts +83 -0
  163. package/integration-tests/file-system.test.ts +247 -0
  164. package/integration-tests/fixtures/settings-migration/workspaces.json +189 -0
  165. package/integration-tests/globalSetup.ts +136 -0
  166. package/integration-tests/hook-integration/hooks.test.ts +1995 -0
  167. package/integration-tests/json-output.test.ts +310 -0
  168. package/integration-tests/list_directory.test.ts +66 -0
  169. package/integration-tests/mcp_server_cyclic_schema.test.ts +207 -0
  170. package/integration-tests/mixed-input-crash.test.ts +62 -0
  171. package/integration-tests/read_many_files.test.ts +47 -0
  172. package/integration-tests/run_shell_command.test.ts +130 -0
  173. package/integration-tests/save_memory.test.ts +47 -0
  174. package/integration-tests/sdk-typescript/abort-and-lifecycle.test.ts +657 -0
  175. package/integration-tests/sdk-typescript/configuration-options.test.ts +636 -0
  176. package/integration-tests/sdk-typescript/mcp-server.test.ts +581 -0
  177. package/integration-tests/sdk-typescript/multi-turn.test.ts +610 -0
  178. package/integration-tests/sdk-typescript/permission-control.test.ts +1272 -0
  179. package/integration-tests/sdk-typescript/sdk-mcp-server.test.ts +467 -0
  180. package/integration-tests/sdk-typescript/session-id.test.ts +582 -0
  181. package/integration-tests/sdk-typescript/single-turn.test.ts +528 -0
  182. package/integration-tests/sdk-typescript/subagents.test.ts +570 -0
  183. package/integration-tests/sdk-typescript/system-control.test.ts +426 -0
  184. package/integration-tests/sdk-typescript/test-helper.ts +1012 -0
  185. package/integration-tests/sdk-typescript/tool-control.test.ts +984 -0
  186. package/integration-tests/settings-migration.test.ts +627 -0
  187. package/integration-tests/simple-mcp-server.test.ts +231 -0
  188. package/integration-tests/stdin-context.test.ts +97 -0
  189. package/integration-tests/telemetry.test.ts +26 -0
  190. package/integration-tests/terminal-bench/ci-tasks/hello-world/Dockerfile +2 -0
  191. package/integration-tests/terminal-bench/ci-tasks/hello-world/docker-compose.yaml +12 -0
  192. package/integration-tests/terminal-bench/ci-tasks/hello-world/run-tests.sh +4 -0
  193. package/integration-tests/terminal-bench/ci-tasks/hello-world/solution.sh +4 -0
  194. package/integration-tests/terminal-bench/ci-tasks/hello-world/task.yaml +15 -0
  195. package/integration-tests/terminal-bench/ci-tasks/hello-world/tests/run-uv-pytest.sh +3 -0
  196. package/integration-tests/terminal-bench/ci-tasks/hello-world/tests/setup-uv-pytest.sh +19 -0
  197. package/integration-tests/terminal-bench/ci-tasks/hello-world/tests/test_outputs.py +19 -0
  198. package/integration-tests/terminal-bench/ci-tasks/swe-bench-astropy-1/Dockerfile +34 -0
  199. package/integration-tests/terminal-bench/ci-tasks/swe-bench-astropy-1/docker-compose.yaml +12 -0
  200. package/integration-tests/terminal-bench/ci-tasks/swe-bench-astropy-1/run-tests.sh +52 -0
  201. package/integration-tests/terminal-bench/ci-tasks/swe-bench-astropy-1/solution.sh +26 -0
  202. package/integration-tests/terminal-bench/ci-tasks/swe-bench-astropy-1/task.yaml +55 -0
  203. package/integration-tests/terminal-bench/qwen-code-setup.sh.j2 +15 -0
  204. package/integration-tests/terminal-bench/qwen_code.py +70 -0
  205. package/integration-tests/terminal-bench/terminal-bench.test.ts +328 -0
  206. package/integration-tests/terminal-capture/motivation.md +127 -0
  207. package/integration-tests/terminal-capture/package.json +18 -0
  208. package/integration-tests/terminal-capture/run.ts +105 -0
  209. package/integration-tests/terminal-capture/scenario-runner.ts +429 -0
  210. package/integration-tests/terminal-capture/scenarios/about.ts +8 -0
  211. package/integration-tests/terminal-capture/scenarios/all.ts +46 -0
  212. package/integration-tests/terminal-capture/scenarios/message-components.ts +32 -0
  213. package/integration-tests/terminal-capture/scenarios/progress.sh +16 -0
  214. package/integration-tests/terminal-capture/scenarios/qc-code-review.ts +17 -0
  215. package/integration-tests/terminal-capture/scenarios/streaming-insight.ts +23 -0
  216. package/integration-tests/terminal-capture/scenarios/streaming-shell.ts +24 -0
  217. package/integration-tests/terminal-capture/terminal-capture.ts +856 -0
  218. package/integration-tests/test-helper.ts +863 -0
  219. package/integration-tests/test-mcp-server.ts +64 -0
  220. package/integration-tests/todo_write.test.ts +69 -0
  221. package/integration-tests/tsconfig.json +13 -0
  222. package/integration-tests/utf-bom-encoding.test.ts +218 -0
  223. package/integration-tests/vitest.config.ts +40 -0
  224. package/integration-tests/vitest.terminal-bench.config.ts +21 -0
  225. package/integration-tests/web_search.test.ts +122 -0
  226. package/integration-tests/write_file.test.ts +69 -0
  227. package/package.json +43 -0
  228. package/packages/cli/index.ts +30 -0
  229. package/packages/cli/package.json +112 -0
  230. package/packages/cli/src/acp-integration/acpAgent.ts +600 -0
  231. package/packages/cli/src/acp-integration/authMethods.ts +51 -0
  232. package/packages/cli/src/acp-integration/errorCodes.ts +25 -0
  233. package/packages/cli/src/acp-integration/service/filesystem.test.ts +182 -0
  234. package/packages/cli/src/acp-integration/service/filesystem.ts +108 -0
  235. package/packages/cli/src/acp-integration/session/HistoryReplayer.test.ts +477 -0
  236. package/packages/cli/src/acp-integration/session/HistoryReplayer.ts +234 -0
  237. package/packages/cli/src/acp-integration/session/Session.test.ts +245 -0
  238. package/packages/cli/src/acp-integration/session/Session.ts +1068 -0
  239. package/packages/cli/src/acp-integration/session/SubAgentTracker.test.ts +725 -0
  240. package/packages/cli/src/acp-integration/session/SubAgentTracker.ts +390 -0
  241. package/packages/cli/src/acp-integration/session/emitters/BaseEmitter.ts +52 -0
  242. package/packages/cli/src/acp-integration/session/emitters/MessageEmitter.test.ts +206 -0
  243. package/packages/cli/src/acp-integration/session/emitters/MessageEmitter.ts +124 -0
  244. package/packages/cli/src/acp-integration/session/emitters/PlanEmitter.test.ts +228 -0
  245. package/packages/cli/src/acp-integration/session/emitters/PlanEmitter.ts +96 -0
  246. package/packages/cli/src/acp-integration/session/emitters/ToolCallEmitter.test.ts +677 -0
  247. package/packages/cli/src/acp-integration/session/emitters/ToolCallEmitter.ts +328 -0
  248. package/packages/cli/src/acp-integration/session/emitters/index.ts +10 -0
  249. package/packages/cli/src/acp-integration/session/index.ts +40 -0
  250. package/packages/cli/src/acp-integration/session/types.ts +102 -0
  251. package/packages/cli/src/commands/extensions/consent.test.ts +327 -0
  252. package/packages/cli/src/commands/extensions/consent.ts +269 -0
  253. package/packages/cli/src/commands/extensions/disable.test.ts +145 -0
  254. package/packages/cli/src/commands/extensions/disable.ts +77 -0
  255. package/packages/cli/src/commands/extensions/enable.test.ts +133 -0
  256. package/packages/cli/src/commands/extensions/enable.ts +89 -0
  257. package/packages/cli/src/commands/extensions/examples/agent/agents/diary.md +87 -0
  258. package/packages/cli/src/commands/extensions/examples/agent/qwen-extension.json +4 -0
  259. package/packages/cli/src/commands/extensions/examples/commands/commands/fs/grep-code.md +3 -0
  260. package/packages/cli/src/commands/extensions/examples/commands/qwen-extension.json +4 -0
  261. package/packages/cli/src/commands/extensions/examples/context/QWEN.md +8 -0
  262. package/packages/cli/src/commands/extensions/examples/context/qwen-extension.json +4 -0
  263. package/packages/cli/src/commands/extensions/examples/mcp-server/example.ts +60 -0
  264. package/packages/cli/src/commands/extensions/examples/mcp-server/package.json +18 -0
  265. package/packages/cli/src/commands/extensions/examples/mcp-server/qwen-extension.json +11 -0
  266. package/packages/cli/src/commands/extensions/examples/mcp-server/tsconfig.json +13 -0
  267. package/packages/cli/src/commands/extensions/examples/skills/qwen-extension.json +4 -0
  268. package/packages/cli/src/commands/extensions/examples/skills/skills/synonyms/SKILL.md +48 -0
  269. package/packages/cli/src/commands/extensions/install.test.ts +228 -0
  270. package/packages/cli/src/commands/extensions/install.ts +131 -0
  271. package/packages/cli/src/commands/extensions/link.test.ts +99 -0
  272. package/packages/cli/src/commands/extensions/link.ts +66 -0
  273. package/packages/cli/src/commands/extensions/list.test.ts +103 -0
  274. package/packages/cli/src/commands/extensions/list.ts +42 -0
  275. package/packages/cli/src/commands/extensions/new.test.ts +91 -0
  276. package/packages/cli/src/commands/extensions/new.ts +110 -0
  277. package/packages/cli/src/commands/extensions/settings.test.ts +345 -0
  278. package/packages/cli/src/commands/extensions/settings.ts +152 -0
  279. package/packages/cli/src/commands/extensions/uninstall.test.ts +21 -0
  280. package/packages/cli/src/commands/extensions/uninstall.ts +71 -0
  281. package/packages/cli/src/commands/extensions/update.test.ts +260 -0
  282. package/packages/cli/src/commands/extensions/update.ts +155 -0
  283. package/packages/cli/src/commands/extensions/utils.test.ts +138 -0
  284. package/packages/cli/src/commands/extensions/utils.ts +98 -0
  285. package/packages/cli/src/commands/extensions.test.tsx +106 -0
  286. package/packages/cli/src/commands/extensions.tsx +38 -0
  287. package/packages/cli/src/commands/hooks/disable.ts +78 -0
  288. package/packages/cli/src/commands/hooks/enable.ts +78 -0
  289. package/packages/cli/src/commands/hooks.tsx +25 -0
  290. package/packages/cli/src/commands/mcp/add.test.ts +371 -0
  291. package/packages/cli/src/commands/mcp/add.ts +247 -0
  292. package/packages/cli/src/commands/mcp/list.test.ts +189 -0
  293. package/packages/cli/src/commands/mcp/list.ts +148 -0
  294. package/packages/cli/src/commands/mcp/remove.test.ts +115 -0
  295. package/packages/cli/src/commands/mcp/remove.ts +70 -0
  296. package/packages/cli/src/commands/mcp.test.ts +55 -0
  297. package/packages/cli/src/commands/mcp.ts +27 -0
  298. package/packages/cli/src/config/auth.test.ts +230 -0
  299. package/packages/cli/src/config/auth.ts +223 -0
  300. package/packages/cli/src/config/config.integration.test.ts +417 -0
  301. package/packages/cli/src/config/config.test.ts +2402 -0
  302. package/packages/cli/src/config/config.ts +1089 -0
  303. package/packages/cli/src/config/keyBindings.test.ts +59 -0
  304. package/packages/cli/src/config/keyBindings.ts +186 -0
  305. package/packages/cli/src/config/migration/index.test.ts +383 -0
  306. package/packages/cli/src/config/migration/index.ts +106 -0
  307. package/packages/cli/src/config/migration/scheduler.test.ts +164 -0
  308. package/packages/cli/src/config/migration/scheduler.ts +115 -0
  309. package/packages/cli/src/config/migration/types.ts +58 -0
  310. package/packages/cli/src/config/migration/versions/v1-to-v2-shared.ts +180 -0
  311. package/packages/cli/src/config/migration/versions/v1-to-v2.test.ts +277 -0
  312. package/packages/cli/src/config/migration/versions/v1-to-v2.ts +267 -0
  313. package/packages/cli/src/config/migration/versions/v2-to-v3.test.ts +598 -0
  314. package/packages/cli/src/config/migration/versions/v2-to-v3.ts +222 -0
  315. package/packages/cli/src/config/modelProvidersScope.test.ts +87 -0
  316. package/packages/cli/src/config/modelProvidersScope.ts +48 -0
  317. package/packages/cli/src/config/sandboxConfig.ts +105 -0
  318. package/packages/cli/src/config/settings.test.ts +2786 -0
  319. package/packages/cli/src/config/settings.ts +740 -0
  320. package/packages/cli/src/config/settingsSchema.test.ts +312 -0
  321. package/packages/cli/src/config/settingsSchema.ts +1277 -0
  322. package/packages/cli/src/config/trustedFolders.test.ts +429 -0
  323. package/packages/cli/src/config/trustedFolders.ts +239 -0
  324. package/packages/cli/src/config/webSearch.ts +121 -0
  325. package/packages/cli/src/constants/codingPlan.ts +321 -0
  326. package/packages/cli/src/core/auth.ts +48 -0
  327. package/packages/cli/src/core/initializer.ts +74 -0
  328. package/packages/cli/src/core/theme.ts +24 -0
  329. package/packages/cli/src/gemini.test.tsx +691 -0
  330. package/packages/cli/src/gemini.tsx +512 -0
  331. package/packages/cli/src/i18n/index.ts +257 -0
  332. package/packages/cli/src/i18n/languages.ts +98 -0
  333. package/packages/cli/src/i18n/locales/de.js +1613 -0
  334. package/packages/cli/src/i18n/locales/en.js +1665 -0
  335. package/packages/cli/src/i18n/locales/ja.js +1117 -0
  336. package/packages/cli/src/i18n/locales/pt.js +1608 -0
  337. package/packages/cli/src/i18n/locales/ru.js +1620 -0
  338. package/packages/cli/src/i18n/locales/zh.js +1485 -0
  339. package/packages/cli/src/nonInteractive/control/ControlContext.ts +79 -0
  340. package/packages/cli/src/nonInteractive/control/ControlDispatcher.test.ts +1010 -0
  341. package/packages/cli/src/nonInteractive/control/ControlDispatcher.ts +432 -0
  342. package/packages/cli/src/nonInteractive/control/ControlService.ts +179 -0
  343. package/packages/cli/src/nonInteractive/control/controllers/baseController.ts +226 -0
  344. package/packages/cli/src/nonInteractive/control/controllers/hookController.ts +56 -0
  345. package/packages/cli/src/nonInteractive/control/controllers/permissionController.ts +495 -0
  346. package/packages/cli/src/nonInteractive/control/controllers/sdkMcpController.ts +134 -0
  347. package/packages/cli/src/nonInteractive/control/controllers/systemController.ts +419 -0
  348. package/packages/cli/src/nonInteractive/control/types/serviceAPIs.ts +117 -0
  349. package/packages/cli/src/nonInteractive/io/BaseJsonOutputAdapter.test.ts +1652 -0
  350. package/packages/cli/src/nonInteractive/io/BaseJsonOutputAdapter.ts +1339 -0
  351. package/packages/cli/src/nonInteractive/io/JsonOutputAdapter.test.ts +865 -0
  352. package/packages/cli/src/nonInteractive/io/JsonOutputAdapter.ts +89 -0
  353. package/packages/cli/src/nonInteractive/io/StreamJsonInputReader.test.ts +215 -0
  354. package/packages/cli/src/nonInteractive/io/StreamJsonInputReader.ts +73 -0
  355. package/packages/cli/src/nonInteractive/io/StreamJsonOutputAdapter.test.ts +1168 -0
  356. package/packages/cli/src/nonInteractive/io/StreamJsonOutputAdapter.ts +330 -0
  357. package/packages/cli/src/nonInteractive/session.test.ts +577 -0
  358. package/packages/cli/src/nonInteractive/session.ts +626 -0
  359. package/packages/cli/src/nonInteractive/types.ts +578 -0
  360. package/packages/cli/src/nonInteractiveCli.test.ts +1814 -0
  361. package/packages/cli/src/nonInteractiveCli.ts +420 -0
  362. package/packages/cli/src/nonInteractiveCliCommands.test.ts +242 -0
  363. package/packages/cli/src/nonInteractiveCliCommands.ts +386 -0
  364. package/packages/cli/src/patches/is-in-ci.ts +17 -0
  365. package/packages/cli/src/patches/termux-runtime.ts +50 -0
  366. package/packages/cli/src/services/BuiltinCommandLoader.test.ts +187 -0
  367. package/packages/cli/src/services/BuiltinCommandLoader.ts +101 -0
  368. package/packages/cli/src/services/CommandService.test.ts +348 -0
  369. package/packages/cli/src/services/CommandService.ts +106 -0
  370. package/packages/cli/src/services/FileCommandLoader-extension.test.ts +343 -0
  371. package/packages/cli/src/services/FileCommandLoader-markdown.test.ts +141 -0
  372. package/packages/cli/src/services/FileCommandLoader.test.ts +1254 -0
  373. package/packages/cli/src/services/FileCommandLoader.ts +363 -0
  374. package/packages/cli/src/services/McpPromptLoader.test.ts +399 -0
  375. package/packages/cli/src/services/McpPromptLoader.ts +305 -0
  376. package/packages/cli/src/services/command-factory.ts +157 -0
  377. package/packages/cli/src/services/command-migration-tool.test.ts +254 -0
  378. package/packages/cli/src/services/command-migration-tool.ts +173 -0
  379. package/packages/cli/src/services/insight/generators/DataProcessor.test.ts +1217 -0
  380. package/packages/cli/src/services/insight/generators/DataProcessor.ts +1131 -0
  381. package/packages/cli/src/services/insight/generators/StaticInsightGenerator.ts +93 -0
  382. package/packages/cli/src/services/insight/generators/TemplateRenderer.ts +52 -0
  383. package/packages/cli/src/services/insight/types/QualitativeInsightTypes.ts +82 -0
  384. package/packages/cli/src/services/insight/types/StaticInsightTypes.ts +90 -0
  385. package/packages/cli/src/services/markdown-command-parser.test.ts +189 -0
  386. package/packages/cli/src/services/markdown-command-parser.ts +69 -0
  387. package/packages/cli/src/services/prompt-processors/argumentProcessor.test.ts +43 -0
  388. package/packages/cli/src/services/prompt-processors/argumentProcessor.ts +27 -0
  389. package/packages/cli/src/services/prompt-processors/atFileProcessor.test.ts +221 -0
  390. package/packages/cli/src/services/prompt-processors/atFileProcessor.ts +99 -0
  391. package/packages/cli/src/services/prompt-processors/injectionParser.test.ts +223 -0
  392. package/packages/cli/src/services/prompt-processors/injectionParser.ts +89 -0
  393. package/packages/cli/src/services/prompt-processors/shellProcessor.test.ts +741 -0
  394. package/packages/cli/src/services/prompt-processors/shellProcessor.ts +233 -0
  395. package/packages/cli/src/services/prompt-processors/types.ts +54 -0
  396. package/packages/cli/src/services/test-commands/example.md +5 -0
  397. package/packages/cli/src/services/types.ts +24 -0
  398. package/packages/cli/src/test-utils/customMatchers.ts +66 -0
  399. package/packages/cli/src/test-utils/mockCommandContext.test.ts +62 -0
  400. package/packages/cli/src/test-utils/mockCommandContext.ts +119 -0
  401. package/packages/cli/src/test-utils/render.tsx +47 -0
  402. package/packages/cli/src/ui/App.test.tsx +160 -0
  403. package/packages/cli/src/ui/App.tsx +27 -0
  404. package/packages/cli/src/ui/AppContainer.test.tsx +1124 -0
  405. package/packages/cli/src/ui/AppContainer.tsx +1647 -0
  406. package/packages/cli/src/ui/CommandFormatMigrationNudge.tsx +94 -0
  407. package/packages/cli/src/ui/FeedbackDialog.tsx +75 -0
  408. package/packages/cli/src/ui/IdeIntegrationNudge.tsx +103 -0
  409. package/packages/cli/src/ui/auth/AuthDialog.test.tsx +558 -0
  410. package/packages/cli/src/ui/auth/AuthDialog.tsx +396 -0
  411. package/packages/cli/src/ui/auth/AuthInProgress.tsx +64 -0
  412. package/packages/cli/src/ui/auth/useAuth.ts +478 -0
  413. package/packages/cli/src/ui/colors.ts +62 -0
  414. package/packages/cli/src/ui/commands/aboutCommand.test.ts +283 -0
  415. package/packages/cli/src/ui/commands/aboutCommand.ts +30 -0
  416. package/packages/cli/src/ui/commands/agentsCommand.ts +44 -0
  417. package/packages/cli/src/ui/commands/approvalModeCommand.test.ts +175 -0
  418. package/packages/cli/src/ui/commands/approvalModeCommand.ts +83 -0
  419. package/packages/cli/src/ui/commands/authCommand.test.ts +38 -0
  420. package/packages/cli/src/ui/commands/authCommand.ts +22 -0
  421. package/packages/cli/src/ui/commands/bugCommand.test.ts +166 -0
  422. package/packages/cli/src/ui/commands/bugCommand.ts +68 -0
  423. package/packages/cli/src/ui/commands/clearCommand.test.ts +100 -0
  424. package/packages/cli/src/ui/commands/clearCommand.ts +49 -0
  425. package/packages/cli/src/ui/commands/compressCommand.test.ts +134 -0
  426. package/packages/cli/src/ui/commands/compressCommand.ts +175 -0
  427. package/packages/cli/src/ui/commands/copyCommand.test.ts +304 -0
  428. package/packages/cli/src/ui/commands/copyCommand.ts +67 -0
  429. package/packages/cli/src/ui/commands/directoryCommand.test.tsx +183 -0
  430. package/packages/cli/src/ui/commands/directoryCommand.tsx +207 -0
  431. package/packages/cli/src/ui/commands/docsCommand.test.ts +99 -0
  432. package/packages/cli/src/ui/commands/docsCommand.ts +53 -0
  433. package/packages/cli/src/ui/commands/editorCommand.test.ts +30 -0
  434. package/packages/cli/src/ui/commands/editorCommand.ts +24 -0
  435. package/packages/cli/src/ui/commands/exportCommand.test.ts +383 -0
  436. package/packages/cli/src/ui/commands/exportCommand.ts +347 -0
  437. package/packages/cli/src/ui/commands/extensionsCommand.test.ts +213 -0
  438. package/packages/cli/src/ui/commands/extensionsCommand.ts +255 -0
  439. package/packages/cli/src/ui/commands/helpCommand.test.ts +52 -0
  440. package/packages/cli/src/ui/commands/helpCommand.ts +27 -0
  441. package/packages/cli/src/ui/commands/hooksCommand.ts +322 -0
  442. package/packages/cli/src/ui/commands/ideCommand.test.ts +264 -0
  443. package/packages/cli/src/ui/commands/ideCommand.ts +335 -0
  444. package/packages/cli/src/ui/commands/initCommand.test.ts +169 -0
  445. package/packages/cli/src/ui/commands/initCommand.ts +134 -0
  446. package/packages/cli/src/ui/commands/insightCommand.ts +132 -0
  447. package/packages/cli/src/ui/commands/languageCommand.test.ts +848 -0
  448. package/packages/cli/src/ui/commands/languageCommand.ts +374 -0
  449. package/packages/cli/src/ui/commands/mcpCommand.test.ts +153 -0
  450. package/packages/cli/src/ui/commands/mcpCommand.ts +21 -0
  451. package/packages/cli/src/ui/commands/memoryCommand.test.ts +411 -0
  452. package/packages/cli/src/ui/commands/memoryCommand.ts +347 -0
  453. package/packages/cli/src/ui/commands/modelCommand.test.ts +140 -0
  454. package/packages/cli/src/ui/commands/modelCommand.ts +59 -0
  455. package/packages/cli/src/ui/commands/permissionsCommand.test.ts +35 -0
  456. package/packages/cli/src/ui/commands/permissionsCommand.ts +21 -0
  457. package/packages/cli/src/ui/commands/quitCommand.test.ts +55 -0
  458. package/packages/cli/src/ui/commands/quitCommand.ts +39 -0
  459. package/packages/cli/src/ui/commands/restoreCommand.test.ts +255 -0
  460. package/packages/cli/src/ui/commands/restoreCommand.ts +153 -0
  461. package/packages/cli/src/ui/commands/resumeCommand.test.ts +38 -0
  462. package/packages/cli/src/ui/commands/resumeCommand.ts +21 -0
  463. package/packages/cli/src/ui/commands/settingsCommand.test.ts +36 -0
  464. package/packages/cli/src/ui/commands/settingsCommand.ts +21 -0
  465. package/packages/cli/src/ui/commands/setupGithubCommand.test.ts +231 -0
  466. package/packages/cli/src/ui/commands/setupGithubCommand.ts +225 -0
  467. package/packages/cli/src/ui/commands/skillsCommand.ts +135 -0
  468. package/packages/cli/src/ui/commands/statsCommand.test.ts +78 -0
  469. package/packages/cli/src/ui/commands/statsCommand.ts +78 -0
  470. package/packages/cli/src/ui/commands/summaryCommand.ts +323 -0
  471. package/packages/cli/src/ui/commands/terminalSetupCommand.test.ts +85 -0
  472. package/packages/cli/src/ui/commands/terminalSetupCommand.ts +53 -0
  473. package/packages/cli/src/ui/commands/themeCommand.test.ts +38 -0
  474. package/packages/cli/src/ui/commands/themeCommand.ts +21 -0
  475. package/packages/cli/src/ui/commands/toolsCommand.test.ts +114 -0
  476. package/packages/cli/src/ui/commands/toolsCommand.ts +58 -0
  477. package/packages/cli/src/ui/commands/types.ts +254 -0
  478. package/packages/cli/src/ui/commands/vimCommand.ts +29 -0
  479. package/packages/cli/src/ui/components/AboutBox.tsx +52 -0
  480. package/packages/cli/src/ui/components/AnsiOutput.test.tsx +106 -0
  481. package/packages/cli/src/ui/components/AnsiOutput.tsx +50 -0
  482. package/packages/cli/src/ui/components/ApiKeyInput.tsx +95 -0
  483. package/packages/cli/src/ui/components/AppHeader.test.tsx +94 -0
  484. package/packages/cli/src/ui/components/AppHeader.tsx +76 -0
  485. package/packages/cli/src/ui/components/ApprovalModeDialog.tsx +182 -0
  486. package/packages/cli/src/ui/components/AsciiArt.ts +14 -0
  487. package/packages/cli/src/ui/components/AutoAcceptIndicator.tsx +58 -0
  488. package/packages/cli/src/ui/components/Composer.test.tsx +347 -0
  489. package/packages/cli/src/ui/components/Composer.tsx +116 -0
  490. package/packages/cli/src/ui/components/ConfigInitDisplay.tsx +56 -0
  491. package/packages/cli/src/ui/components/ConsentPrompt.test.tsx +119 -0
  492. package/packages/cli/src/ui/components/ConsentPrompt.tsx +51 -0
  493. package/packages/cli/src/ui/components/ContextSummaryDisplay.test.tsx +85 -0
  494. package/packages/cli/src/ui/components/ContextSummaryDisplay.tsx +143 -0
  495. package/packages/cli/src/ui/components/ContextUsageDisplay.tsx +34 -0
  496. package/packages/cli/src/ui/components/DebugModeNotification.tsx +39 -0
  497. package/packages/cli/src/ui/components/DebugProfiler.tsx +36 -0
  498. package/packages/cli/src/ui/components/DialogManager.tsx +321 -0
  499. package/packages/cli/src/ui/components/EditorSettingsDialog.tsx +195 -0
  500. package/packages/cli/src/ui/components/ExitWarning.tsx +29 -0
  501. package/packages/cli/src/ui/components/FolderTrustDialog.test.tsx +129 -0
  502. package/packages/cli/src/ui/components/FolderTrustDialog.tsx +110 -0
  503. package/packages/cli/src/ui/components/Footer.test.tsx +98 -0
  504. package/packages/cli/src/ui/components/Footer.tsx +124 -0
  505. package/packages/cli/src/ui/components/GeminiRespondingSpinner.tsx +67 -0
  506. package/packages/cli/src/ui/components/Header.test.tsx +84 -0
  507. package/packages/cli/src/ui/components/Header.tsx +158 -0
  508. package/packages/cli/src/ui/components/Help.test.tsx +83 -0
  509. package/packages/cli/src/ui/components/Help.tsx +188 -0
  510. package/packages/cli/src/ui/components/HistoryItemDisplay.test.tsx +287 -0
  511. package/packages/cli/src/ui/components/HistoryItemDisplay.tsx +202 -0
  512. package/packages/cli/src/ui/components/IdeTrustChangeDialog.test.tsx +85 -0
  513. package/packages/cli/src/ui/components/IdeTrustChangeDialog.tsx +50 -0
  514. package/packages/cli/src/ui/components/InputPrompt.test.tsx +2579 -0
  515. package/packages/cli/src/ui/components/InputPrompt.tsx +1203 -0
  516. package/packages/cli/src/ui/components/KeyboardShortcuts.tsx +124 -0
  517. package/packages/cli/src/ui/components/LoadingIndicator.test.tsx +311 -0
  518. package/packages/cli/src/ui/components/LoadingIndicator.tsx +90 -0
  519. package/packages/cli/src/ui/components/LoopDetectionConfirmation.test.tsx +39 -0
  520. package/packages/cli/src/ui/components/LoopDetectionConfirmation.tsx +97 -0
  521. package/packages/cli/src/ui/components/MainContent.tsx +80 -0
  522. package/packages/cli/src/ui/components/MemoryUsageDisplay.tsx +41 -0
  523. package/packages/cli/src/ui/components/ModelDialog.test.tsx +399 -0
  524. package/packages/cli/src/ui/components/ModelDialog.tsx +460 -0
  525. package/packages/cli/src/ui/components/ModelStatsDisplay.test.tsx +252 -0
  526. package/packages/cli/src/ui/components/ModelStatsDisplay.tsx +217 -0
  527. package/packages/cli/src/ui/components/Notifications.tsx +58 -0
  528. package/packages/cli/src/ui/components/PermissionsModifyTrustDialog.test.tsx +199 -0
  529. package/packages/cli/src/ui/components/PermissionsModifyTrustDialog.tsx +125 -0
  530. package/packages/cli/src/ui/components/PlanSummaryDisplay.tsx +41 -0
  531. package/packages/cli/src/ui/components/PluginChoicePrompt.test.tsx +243 -0
  532. package/packages/cli/src/ui/components/PluginChoicePrompt.tsx +195 -0
  533. package/packages/cli/src/ui/components/PrepareLabel.test.tsx +123 -0
  534. package/packages/cli/src/ui/components/PrepareLabel.tsx +116 -0
  535. package/packages/cli/src/ui/components/QueuedMessageDisplay.test.tsx +76 -0
  536. package/packages/cli/src/ui/components/QueuedMessageDisplay.tsx +47 -0
  537. package/packages/cli/src/ui/components/QuittingDisplay.tsx +39 -0
  538. package/packages/cli/src/ui/components/QwenOAuthProgress.test.tsx +611 -0
  539. package/packages/cli/src/ui/components/QwenOAuthProgress.tsx +316 -0
  540. package/packages/cli/src/ui/components/SessionPicker.tsx +251 -0
  541. package/packages/cli/src/ui/components/SessionSummaryDisplay.test.tsx +154 -0
  542. package/packages/cli/src/ui/components/SessionSummaryDisplay.tsx +51 -0
  543. package/packages/cli/src/ui/components/SettingInputPrompt.test.tsx +133 -0
  544. package/packages/cli/src/ui/components/SettingInputPrompt.tsx +157 -0
  545. package/packages/cli/src/ui/components/SettingsDialog.test.tsx +1638 -0
  546. package/packages/cli/src/ui/components/SettingsDialog.tsx +900 -0
  547. package/packages/cli/src/ui/components/ShellConfirmationDialog.test.tsx +53 -0
  548. package/packages/cli/src/ui/components/ShellConfirmationDialog.tsx +109 -0
  549. package/packages/cli/src/ui/components/ShellInputPrompt.tsx +57 -0
  550. package/packages/cli/src/ui/components/ShellModeIndicator.tsx +18 -0
  551. package/packages/cli/src/ui/components/ShowMoreLines.tsx +40 -0
  552. package/packages/cli/src/ui/components/StandaloneSessionPicker.test.tsx +624 -0
  553. package/packages/cli/src/ui/components/StandaloneSessionPicker.tsx +129 -0
  554. package/packages/cli/src/ui/components/StatsDisplay.test.tsx +401 -0
  555. package/packages/cli/src/ui/components/StatsDisplay.tsx +298 -0
  556. package/packages/cli/src/ui/components/SuggestionsDisplay.tsx +131 -0
  557. package/packages/cli/src/ui/components/ThemeDialog.test.tsx +108 -0
  558. package/packages/cli/src/ui/components/ThemeDialog.tsx +287 -0
  559. package/packages/cli/src/ui/components/Tips.test.ts +62 -0
  560. package/packages/cli/src/ui/components/Tips.tsx +62 -0
  561. package/packages/cli/src/ui/components/TodoDisplay.test.tsx +98 -0
  562. package/packages/cli/src/ui/components/TodoDisplay.tsx +72 -0
  563. package/packages/cli/src/ui/components/ToolStatsDisplay.test.tsx +180 -0
  564. package/packages/cli/src/ui/components/ToolStatsDisplay.tsx +234 -0
  565. package/packages/cli/src/ui/components/UpdateNotification.tsx +23 -0
  566. package/packages/cli/src/ui/components/WelcomeBackDialog.tsx +134 -0
  567. package/packages/cli/src/ui/components/__snapshots__/Footer.test.tsx.snap +5 -0
  568. package/packages/cli/src/ui/components/__snapshots__/HistoryItemDisplay.test.tsx.snap +139 -0
  569. package/packages/cli/src/ui/components/__snapshots__/IDEContextDetailDisplay.test.tsx.snap +24 -0
  570. package/packages/cli/src/ui/components/__snapshots__/InputPrompt.test.tsx.snap +57 -0
  571. package/packages/cli/src/ui/components/__snapshots__/LoadingIndicator.test.tsx.snap +6 -0
  572. package/packages/cli/src/ui/components/__snapshots__/LoopDetectionConfirmation.test.tsx.snap +16 -0
  573. package/packages/cli/src/ui/components/__snapshots__/ModelStatsDisplay.test.tsx.snap +121 -0
  574. package/packages/cli/src/ui/components/__snapshots__/PrepareLabel.test.tsx.snap +25 -0
  575. package/packages/cli/src/ui/components/__snapshots__/SessionSummaryDisplay.test.tsx.snap +32 -0
  576. package/packages/cli/src/ui/components/__snapshots__/SettingsDialog.test.tsx.snap +211 -0
  577. package/packages/cli/src/ui/components/__snapshots__/ShellConfirmationDialog.test.tsx.snap +21 -0
  578. package/packages/cli/src/ui/components/__snapshots__/StatsDisplay.test.tsx.snap +264 -0
  579. package/packages/cli/src/ui/components/__snapshots__/ThemeDialog.test.tsx.snap +38 -0
  580. package/packages/cli/src/ui/components/__snapshots__/ToolStatsDisplay.test.tsx.snap +91 -0
  581. package/packages/cli/src/ui/components/extensions/ExtensionsManagerDialog.test.tsx +153 -0
  582. package/packages/cli/src/ui/components/extensions/ExtensionsManagerDialog.tsx +530 -0
  583. package/packages/cli/src/ui/components/extensions/__snapshots__/ExtensionsManagerDialog.test.tsx.snap +45 -0
  584. package/packages/cli/src/ui/components/extensions/index.ts +9 -0
  585. package/packages/cli/src/ui/components/extensions/steps/ActionSelectionStep.test.tsx +109 -0
  586. package/packages/cli/src/ui/components/extensions/steps/ActionSelectionStep.tsx +102 -0
  587. package/packages/cli/src/ui/components/extensions/steps/ExtensionDetailStep.tsx +128 -0
  588. package/packages/cli/src/ui/components/extensions/steps/ExtensionListStep.test.tsx +134 -0
  589. package/packages/cli/src/ui/components/extensions/steps/ExtensionListStep.tsx +177 -0
  590. package/packages/cli/src/ui/components/extensions/steps/ScopeSelectStep.tsx +70 -0
  591. package/packages/cli/src/ui/components/extensions/steps/UninstallConfirmStep.tsx +65 -0
  592. package/packages/cli/src/ui/components/extensions/steps/__snapshots__/ActionSelectionStep.test.tsx.snap +33 -0
  593. package/packages/cli/src/ui/components/extensions/steps/__snapshots__/ExtensionListStep.test.tsx.snap +32 -0
  594. package/packages/cli/src/ui/components/extensions/steps/index.ts +11 -0
  595. package/packages/cli/src/ui/components/extensions/types.ts +89 -0
  596. package/packages/cli/src/ui/components/mcp/MCPManagementDialog.tsx +680 -0
  597. package/packages/cli/src/ui/components/mcp/constants.ts +47 -0
  598. package/packages/cli/src/ui/components/mcp/index.ts +30 -0
  599. package/packages/cli/src/ui/components/mcp/steps/AuthenticateStep.tsx +164 -0
  600. package/packages/cli/src/ui/components/mcp/steps/DisableScopeSelectStep.tsx +88 -0
  601. package/packages/cli/src/ui/components/mcp/steps/ServerDetailStep.tsx +233 -0
  602. package/packages/cli/src/ui/components/mcp/steps/ServerListStep.tsx +176 -0
  603. package/packages/cli/src/ui/components/mcp/steps/ToolDetailStep.tsx +139 -0
  604. package/packages/cli/src/ui/components/mcp/steps/ToolListStep.tsx +146 -0
  605. package/packages/cli/src/ui/components/mcp/types.ts +195 -0
  606. package/packages/cli/src/ui/components/mcp/utils.test.ts +159 -0
  607. package/packages/cli/src/ui/components/mcp/utils.ts +129 -0
  608. package/packages/cli/src/ui/components/messages/AskUserQuestionDialog.test.tsx +883 -0
  609. package/packages/cli/src/ui/components/messages/AskUserQuestionDialog.tsx +572 -0
  610. package/packages/cli/src/ui/components/messages/CompressionMessage.test.tsx +198 -0
  611. package/packages/cli/src/ui/components/messages/CompressionMessage.tsx +90 -0
  612. package/packages/cli/src/ui/components/messages/ConversationMessages.tsx +261 -0
  613. package/packages/cli/src/ui/components/messages/DiffRenderer.test.tsx +479 -0
  614. package/packages/cli/src/ui/components/messages/DiffRenderer.tsx +380 -0
  615. package/packages/cli/src/ui/components/messages/InsightProgressMessage.tsx +59 -0
  616. package/packages/cli/src/ui/components/messages/StatusMessages.tsx +105 -0
  617. package/packages/cli/src/ui/components/messages/SummaryMessage.tsx +59 -0
  618. package/packages/cli/src/ui/components/messages/ToolConfirmationMessage.test.tsx +250 -0
  619. package/packages/cli/src/ui/components/messages/ToolConfirmationMessage.tsx +437 -0
  620. package/packages/cli/src/ui/components/messages/ToolGroupMessage.test.tsx +360 -0
  621. package/packages/cli/src/ui/components/messages/ToolGroupMessage.tsx +151 -0
  622. package/packages/cli/src/ui/components/messages/ToolMessage.test.tsx +303 -0
  623. package/packages/cli/src/ui/components/messages/ToolMessage.tsx +498 -0
  624. package/packages/cli/src/ui/components/messages/__snapshots__/ToolGroupMessage.test.tsx.snap +108 -0
  625. package/packages/cli/src/ui/components/shared/BaseSelectionList.test.tsx +534 -0
  626. package/packages/cli/src/ui/components/shared/BaseSelectionList.tsx +182 -0
  627. package/packages/cli/src/ui/components/shared/DescriptiveRadioButtonSelect.test.tsx +97 -0
  628. package/packages/cli/src/ui/components/shared/DescriptiveRadioButtonSelect.tsx +74 -0
  629. package/packages/cli/src/ui/components/shared/EnumSelector.test.tsx +152 -0
  630. package/packages/cli/src/ui/components/shared/EnumSelector.tsx +87 -0
  631. package/packages/cli/src/ui/components/shared/MaxSizedBox.test.tsx +425 -0
  632. package/packages/cli/src/ui/components/shared/MaxSizedBox.tsx +628 -0
  633. package/packages/cli/src/ui/components/shared/RadioButtonSelect.test.tsx +198 -0
  634. package/packages/cli/src/ui/components/shared/RadioButtonSelect.tsx +91 -0
  635. package/packages/cli/src/ui/components/shared/ScopeSelector.tsx +59 -0
  636. package/packages/cli/src/ui/components/shared/TextInput.tsx +197 -0
  637. package/packages/cli/src/ui/components/shared/__snapshots__/DescriptiveRadioButtonSelect.test.tsx.snap +21 -0
  638. package/packages/cli/src/ui/components/shared/__snapshots__/EnumSelector.test.tsx.snap +9 -0
  639. package/packages/cli/src/ui/components/shared/text-buffer.test.ts +1951 -0
  640. package/packages/cli/src/ui/components/shared/text-buffer.ts +2371 -0
  641. package/packages/cli/src/ui/components/shared/vim-buffer-actions.test.ts +1119 -0
  642. package/packages/cli/src/ui/components/shared/vim-buffer-actions.ts +813 -0
  643. package/packages/cli/src/ui/components/subagents/constants.ts +71 -0
  644. package/packages/cli/src/ui/components/subagents/create/AgentCreationWizard.tsx +299 -0
  645. package/packages/cli/src/ui/components/subagents/create/ColorSelector.tsx +85 -0
  646. package/packages/cli/src/ui/components/subagents/create/CreationSummary.tsx +331 -0
  647. package/packages/cli/src/ui/components/subagents/create/DescriptionInput.tsx +177 -0
  648. package/packages/cli/src/ui/components/subagents/create/GenerationMethodSelector.tsx +63 -0
  649. package/packages/cli/src/ui/components/subagents/create/LocationSelector.tsx +58 -0
  650. package/packages/cli/src/ui/components/subagents/create/TextEntryStep.tsx +78 -0
  651. package/packages/cli/src/ui/components/subagents/create/ToolSelector.tsx +253 -0
  652. package/packages/cli/src/ui/components/subagents/index.ts +14 -0
  653. package/packages/cli/src/ui/components/subagents/manage/ActionSelectionStep.tsx +103 -0
  654. package/packages/cli/src/ui/components/subagents/manage/AgentDeleteStep.tsx +62 -0
  655. package/packages/cli/src/ui/components/subagents/manage/AgentEditStep.tsx +124 -0
  656. package/packages/cli/src/ui/components/subagents/manage/AgentSelectionStep.tsx +449 -0
  657. package/packages/cli/src/ui/components/subagents/manage/AgentViewerStep.tsx +66 -0
  658. package/packages/cli/src/ui/components/subagents/manage/AgentsManagerDialog.tsx +341 -0
  659. package/packages/cli/src/ui/components/subagents/reducers.tsx +190 -0
  660. package/packages/cli/src/ui/components/subagents/runtime/AgentExecutionDisplay.tsx +550 -0
  661. package/packages/cli/src/ui/components/subagents/types.ts +133 -0
  662. package/packages/cli/src/ui/components/subagents/utils.ts +102 -0
  663. package/packages/cli/src/ui/components/views/ExtensionsList.test.tsx +100 -0
  664. package/packages/cli/src/ui/components/views/ExtensionsList.tsx +80 -0
  665. package/packages/cli/src/ui/components/views/McpStatus.test.tsx +163 -0
  666. package/packages/cli/src/ui/components/views/McpStatus.tsx +298 -0
  667. package/packages/cli/src/ui/components/views/SkillsList.tsx +36 -0
  668. package/packages/cli/src/ui/components/views/ToolsList.test.tsx +58 -0
  669. package/packages/cli/src/ui/components/views/ToolsList.tsx +53 -0
  670. package/packages/cli/src/ui/components/views/__snapshots__/McpStatus.test.tsx.snap +166 -0
  671. package/packages/cli/src/ui/components/views/__snapshots__/ToolsList.test.tsx.snap +29 -0
  672. package/packages/cli/src/ui/constants.ts +29 -0
  673. package/packages/cli/src/ui/contexts/AppContext.tsx +22 -0
  674. package/packages/cli/src/ui/contexts/ConfigContext.tsx +18 -0
  675. package/packages/cli/src/ui/contexts/KeypressContext.test.tsx +1756 -0
  676. package/packages/cli/src/ui/contexts/KeypressContext.tsx +932 -0
  677. package/packages/cli/src/ui/contexts/OverflowContext.tsx +88 -0
  678. package/packages/cli/src/ui/contexts/SessionContext.test.tsx +221 -0
  679. package/packages/cli/src/ui/contexts/SessionContext.tsx +281 -0
  680. package/packages/cli/src/ui/contexts/SettingsContext.tsx +20 -0
  681. package/packages/cli/src/ui/contexts/ShellFocusContext.tsx +11 -0
  682. package/packages/cli/src/ui/contexts/StreamingContext.tsx +22 -0
  683. package/packages/cli/src/ui/contexts/UIActionsContext.tsx +100 -0
  684. package/packages/cli/src/ui/contexts/UIStateContext.tsx +144 -0
  685. package/packages/cli/src/ui/contexts/VimModeContext.tsx +80 -0
  686. package/packages/cli/src/ui/editors/editorSettingsManager.ts +67 -0
  687. package/packages/cli/src/ui/hooks/atCommandProcessor.test.ts +1136 -0
  688. package/packages/cli/src/ui/hooks/atCommandProcessor.ts +434 -0
  689. package/packages/cli/src/ui/hooks/keyToAnsi.ts +77 -0
  690. package/packages/cli/src/ui/hooks/shellCommandProcessor.test.ts +723 -0
  691. package/packages/cli/src/ui/hooks/shellCommandProcessor.ts +382 -0
  692. package/packages/cli/src/ui/hooks/slashCommandProcessor.test.ts +1083 -0
  693. package/packages/cli/src/ui/hooks/slashCommandProcessor.ts +714 -0
  694. package/packages/cli/src/ui/hooks/useAgentsManagerDialog.ts +32 -0
  695. package/packages/cli/src/ui/hooks/useApprovalModeCommand.ts +57 -0
  696. package/packages/cli/src/ui/hooks/useAtCompletion.test.ts +508 -0
  697. package/packages/cli/src/ui/hooks/useAtCompletion.ts +239 -0
  698. package/packages/cli/src/ui/hooks/useAttentionNotifications.test.ts +199 -0
  699. package/packages/cli/src/ui/hooks/useAttentionNotifications.ts +71 -0
  700. package/packages/cli/src/ui/hooks/useAutoAcceptIndicator.test.ts +561 -0
  701. package/packages/cli/src/ui/hooks/useAutoAcceptIndicator.ts +85 -0
  702. package/packages/cli/src/ui/hooks/useBracketedPaste.ts +37 -0
  703. package/packages/cli/src/ui/hooks/useCodingPlanUpdates.test.ts +658 -0
  704. package/packages/cli/src/ui/hooks/useCodingPlanUpdates.ts +233 -0
  705. package/packages/cli/src/ui/hooks/useCommandCompletion.test.ts +517 -0
  706. package/packages/cli/src/ui/hooks/useCommandCompletion.tsx +243 -0
  707. package/packages/cli/src/ui/hooks/useCommandMigration.ts +51 -0
  708. package/packages/cli/src/ui/hooks/useCompletion.ts +126 -0
  709. package/packages/cli/src/ui/hooks/useDialogClose.ts +103 -0
  710. package/packages/cli/src/ui/hooks/useEditorSettings.test.ts +284 -0
  711. package/packages/cli/src/ui/hooks/useEditorSettings.ts +75 -0
  712. package/packages/cli/src/ui/hooks/useExtensionUpdates.test.ts +608 -0
  713. package/packages/cli/src/ui/hooks/useExtensionUpdates.ts +340 -0
  714. package/packages/cli/src/ui/hooks/useExtensionsManagerDialog.ts +33 -0
  715. package/packages/cli/src/ui/hooks/useFeedbackDialog.ts +206 -0
  716. package/packages/cli/src/ui/hooks/useFocus.test.ts +145 -0
  717. package/packages/cli/src/ui/hooks/useFocus.ts +62 -0
  718. package/packages/cli/src/ui/hooks/useFolderTrust.test.ts +211 -0
  719. package/packages/cli/src/ui/hooks/useFolderTrust.ts +80 -0
  720. package/packages/cli/src/ui/hooks/useGeminiStream.test.tsx +2946 -0
  721. package/packages/cli/src/ui/hooks/useGeminiStream.ts +1625 -0
  722. package/packages/cli/src/ui/hooks/useGitBranchName.test.ts +238 -0
  723. package/packages/cli/src/ui/hooks/useGitBranchName.ts +78 -0
  724. package/packages/cli/src/ui/hooks/useHistoryManager.test.ts +202 -0
  725. package/packages/cli/src/ui/hooks/useHistoryManager.ts +111 -0
  726. package/packages/cli/src/ui/hooks/useIdeTrustListener.test.ts +226 -0
  727. package/packages/cli/src/ui/hooks/useIdeTrustListener.ts +90 -0
  728. package/packages/cli/src/ui/hooks/useInitializationAuthError.ts +47 -0
  729. package/packages/cli/src/ui/hooks/useInputHistory.test.ts +261 -0
  730. package/packages/cli/src/ui/hooks/useInputHistory.ts +111 -0
  731. package/packages/cli/src/ui/hooks/useInputHistoryStore.test.ts +293 -0
  732. package/packages/cli/src/ui/hooks/useInputHistoryStore.ts +118 -0
  733. package/packages/cli/src/ui/hooks/useKeypress.test.ts +314 -0
  734. package/packages/cli/src/ui/hooks/useKeypress.ts +36 -0
  735. package/packages/cli/src/ui/hooks/useKittyKeyboardProtocol.ts +31 -0
  736. package/packages/cli/src/ui/hooks/useLaunchEditor.ts +125 -0
  737. package/packages/cli/src/ui/hooks/useLoadingIndicator.test.ts +136 -0
  738. package/packages/cli/src/ui/hooks/useLoadingIndicator.ts +61 -0
  739. package/packages/cli/src/ui/hooks/useLogger.ts +37 -0
  740. package/packages/cli/src/ui/hooks/useMcpDialog.ts +31 -0
  741. package/packages/cli/src/ui/hooks/useMemoryMonitor.test.ts +71 -0
  742. package/packages/cli/src/ui/hooks/useMemoryMonitor.ts +41 -0
  743. package/packages/cli/src/ui/hooks/useMessageQueue.test.ts +235 -0
  744. package/packages/cli/src/ui/hooks/useMessageQueue.ts +75 -0
  745. package/packages/cli/src/ui/hooks/useModelCommand.test.ts +42 -0
  746. package/packages/cli/src/ui/hooks/useModelCommand.ts +31 -0
  747. package/packages/cli/src/ui/hooks/usePermissionsModifyTrust.test.ts +263 -0
  748. package/packages/cli/src/ui/hooks/usePermissionsModifyTrust.ts +128 -0
  749. package/packages/cli/src/ui/hooks/usePhraseCycler.test.ts +192 -0
  750. package/packages/cli/src/ui/hooks/usePhraseCycler.ts +82 -0
  751. package/packages/cli/src/ui/hooks/useQwenAuth.test.ts +425 -0
  752. package/packages/cli/src/ui/hooks/useQwenAuth.ts +108 -0
  753. package/packages/cli/src/ui/hooks/useReactToolScheduler.ts +315 -0
  754. package/packages/cli/src/ui/hooks/useRefreshMemoryCommand.ts +7 -0
  755. package/packages/cli/src/ui/hooks/useResumeCommand.test.ts +190 -0
  756. package/packages/cli/src/ui/hooks/useResumeCommand.ts +82 -0
  757. package/packages/cli/src/ui/hooks/useReverseSearchCompletion.test.tsx +260 -0
  758. package/packages/cli/src/ui/hooks/useReverseSearchCompletion.tsx +155 -0
  759. package/packages/cli/src/ui/hooks/useSelectionList.test.ts +980 -0
  760. package/packages/cli/src/ui/hooks/useSelectionList.ts +376 -0
  761. package/packages/cli/src/ui/hooks/useSessionPicker.ts +279 -0
  762. package/packages/cli/src/ui/hooks/useSettingsCommand.ts +25 -0
  763. package/packages/cli/src/ui/hooks/useShellHistory.test.ts +257 -0
  764. package/packages/cli/src/ui/hooks/useShellHistory.ts +143 -0
  765. package/packages/cli/src/ui/hooks/useShowMemoryCommand.ts +73 -0
  766. package/packages/cli/src/ui/hooks/useSlashCompletion.test.ts +897 -0
  767. package/packages/cli/src/ui/hooks/useSlashCompletion.ts +555 -0
  768. package/packages/cli/src/ui/hooks/useStateAndRef.ts +36 -0
  769. package/packages/cli/src/ui/hooks/useSubagentCreateDialog.ts +26 -0
  770. package/packages/cli/src/ui/hooks/useTerminalSize.ts +34 -0
  771. package/packages/cli/src/ui/hooks/useThemeCommand.ts +112 -0
  772. package/packages/cli/src/ui/hooks/useTimer.test.ts +120 -0
  773. package/packages/cli/src/ui/hooks/useTimer.ts +65 -0
  774. package/packages/cli/src/ui/hooks/useTomlMigration.ts +0 -0
  775. package/packages/cli/src/ui/hooks/useToolScheduler.test.ts +781 -0
  776. package/packages/cli/src/ui/hooks/useWelcomeBack.ts +119 -0
  777. package/packages/cli/src/ui/hooks/vim.test.ts +1691 -0
  778. package/packages/cli/src/ui/hooks/vim.ts +790 -0
  779. package/packages/cli/src/ui/keyMatchers.test.ts +375 -0
  780. package/packages/cli/src/ui/keyMatchers.ts +105 -0
  781. package/packages/cli/src/ui/layouts/DefaultAppLayout.tsx +40 -0
  782. package/packages/cli/src/ui/layouts/ScreenReaderAppLayout.tsx +41 -0
  783. package/packages/cli/src/ui/models/availableModels.test.ts +186 -0
  784. package/packages/cli/src/ui/models/availableModels.ts +129 -0
  785. package/packages/cli/src/ui/noninteractive/nonInteractiveUi.ts +30 -0
  786. package/packages/cli/src/ui/semantic-colors.ts +26 -0
  787. package/packages/cli/src/ui/state/extensions.ts +90 -0
  788. package/packages/cli/src/ui/textConstants.ts +13 -0
  789. package/packages/cli/src/ui/themes/ansi-light.ts +152 -0
  790. package/packages/cli/src/ui/themes/ansi.ts +161 -0
  791. package/packages/cli/src/ui/themes/atom-one-dark.ts +147 -0
  792. package/packages/cli/src/ui/themes/ayu-light.ts +139 -0
  793. package/packages/cli/src/ui/themes/ayu.ts +113 -0
  794. package/packages/cli/src/ui/themes/color-utils.test.ts +221 -0
  795. package/packages/cli/src/ui/themes/color-utils.ts +235 -0
  796. package/packages/cli/src/ui/themes/default-light.ts +106 -0
  797. package/packages/cli/src/ui/themes/default.ts +149 -0
  798. package/packages/cli/src/ui/themes/dracula.ts +124 -0
  799. package/packages/cli/src/ui/themes/github-dark.ts +147 -0
  800. package/packages/cli/src/ui/themes/github-light.ts +149 -0
  801. package/packages/cli/src/ui/themes/googlecode.ts +146 -0
  802. package/packages/cli/src/ui/themes/no-color.ts +131 -0
  803. package/packages/cli/src/ui/themes/qwen-dark.ts +115 -0
  804. package/packages/cli/src/ui/themes/qwen-light.ts +141 -0
  805. package/packages/cli/src/ui/themes/semantic-tokens.ts +140 -0
  806. package/packages/cli/src/ui/themes/shades-of-purple.ts +352 -0
  807. package/packages/cli/src/ui/themes/theme-manager.test.ts +173 -0
  808. package/packages/cli/src/ui/themes/theme-manager.ts +344 -0
  809. package/packages/cli/src/ui/themes/theme.test.ts +97 -0
  810. package/packages/cli/src/ui/themes/theme.ts +505 -0
  811. package/packages/cli/src/ui/themes/xcode.ts +154 -0
  812. package/packages/cli/src/ui/types.ts +463 -0
  813. package/packages/cli/src/ui/utils/CodeColorizer.tsx +224 -0
  814. package/packages/cli/src/ui/utils/InlineMarkdownRenderer.tsx +180 -0
  815. package/packages/cli/src/ui/utils/MarkdownDisplay.test.tsx +236 -0
  816. package/packages/cli/src/ui/utils/MarkdownDisplay.tsx +423 -0
  817. package/packages/cli/src/ui/utils/TableRenderer.tsx +158 -0
  818. package/packages/cli/src/ui/utils/__snapshots__/MarkdownDisplay.test.tsx.snap +187 -0
  819. package/packages/cli/src/ui/utils/clipboardUtils.test.ts +136 -0
  820. package/packages/cli/src/ui/utils/clipboardUtils.ts +153 -0
  821. package/packages/cli/src/ui/utils/commandUtils.test.ts +489 -0
  822. package/packages/cli/src/ui/utils/commandUtils.ts +174 -0
  823. package/packages/cli/src/ui/utils/computeStats.test.ts +295 -0
  824. package/packages/cli/src/ui/utils/computeStats.ts +86 -0
  825. package/packages/cli/src/ui/utils/displayUtils.test.ts +83 -0
  826. package/packages/cli/src/ui/utils/displayUtils.ts +35 -0
  827. package/packages/cli/src/ui/utils/export/collect.ts +266 -0
  828. package/packages/cli/src/ui/utils/export/formatters/html.ts +83 -0
  829. package/packages/cli/src/ui/utils/export/formatters/json.ts +15 -0
  830. package/packages/cli/src/ui/utils/export/formatters/jsonl.ts +31 -0
  831. package/packages/cli/src/ui/utils/export/formatters/markdown.ts +225 -0
  832. package/packages/cli/src/ui/utils/export/index.ts +18 -0
  833. package/packages/cli/src/ui/utils/export/normalize.ts +324 -0
  834. package/packages/cli/src/ui/utils/export/types.ts +54 -0
  835. package/packages/cli/src/ui/utils/export/utils.ts +13 -0
  836. package/packages/cli/src/ui/utils/formatters.test.ts +157 -0
  837. package/packages/cli/src/ui/utils/formatters.ts +97 -0
  838. package/packages/cli/src/ui/utils/highlight.test.ts +136 -0
  839. package/packages/cli/src/ui/utils/highlight.ts +103 -0
  840. package/packages/cli/src/ui/utils/isNarrowWidth.ts +9 -0
  841. package/packages/cli/src/ui/utils/kittyProtocolDetector.ts +116 -0
  842. package/packages/cli/src/ui/utils/markdownUtilities.test.ts +50 -0
  843. package/packages/cli/src/ui/utils/markdownUtilities.ts +125 -0
  844. package/packages/cli/src/ui/utils/platformConstants.ts +87 -0
  845. package/packages/cli/src/ui/utils/resumeHistoryUtils.test.ts +289 -0
  846. package/packages/cli/src/ui/utils/resumeHistoryUtils.ts +455 -0
  847. package/packages/cli/src/ui/utils/sessionPickerUtils.test.ts +45 -0
  848. package/packages/cli/src/ui/utils/sessionPickerUtils.ts +59 -0
  849. package/packages/cli/src/ui/utils/terminalSetup.ts +393 -0
  850. package/packages/cli/src/ui/utils/textUtils.test.ts +170 -0
  851. package/packages/cli/src/ui/utils/textUtils.ts +216 -0
  852. package/packages/cli/src/ui/utils/updateCheck.test.ts +163 -0
  853. package/packages/cli/src/ui/utils/updateCheck.ts +104 -0
  854. package/packages/cli/src/utils/acpModelUtils.test.ts +42 -0
  855. package/packages/cli/src/utils/acpModelUtils.ts +61 -0
  856. package/packages/cli/src/utils/attentionNotification.test.ts +72 -0
  857. package/packages/cli/src/utils/attentionNotification.ts +51 -0
  858. package/packages/cli/src/utils/checks.ts +28 -0
  859. package/packages/cli/src/utils/cleanup.test.ts +68 -0
  860. package/packages/cli/src/utils/cleanup.ts +37 -0
  861. package/packages/cli/src/utils/commands.test.ts +140 -0
  862. package/packages/cli/src/utils/commands.ts +71 -0
  863. package/packages/cli/src/utils/commentJson.test.ts +186 -0
  864. package/packages/cli/src/utils/commentJson.ts +70 -0
  865. package/packages/cli/src/utils/deepMerge.test.ts +163 -0
  866. package/packages/cli/src/utils/deepMerge.ts +90 -0
  867. package/packages/cli/src/utils/dialogScopeUtils.ts +69 -0
  868. package/packages/cli/src/utils/envVarResolver.test.ts +297 -0
  869. package/packages/cli/src/utils/envVarResolver.ts +126 -0
  870. package/packages/cli/src/utils/errors.test.ts +681 -0
  871. package/packages/cli/src/utils/errors.ts +197 -0
  872. package/packages/cli/src/utils/events.ts +15 -0
  873. package/packages/cli/src/utils/gitUtils.test.ts +248 -0
  874. package/packages/cli/src/utils/gitUtils.ts +143 -0
  875. package/packages/cli/src/utils/handleAutoUpdate.test.ts +274 -0
  876. package/packages/cli/src/utils/handleAutoUpdate.ts +152 -0
  877. package/packages/cli/src/utils/installationInfo.test.ts +325 -0
  878. package/packages/cli/src/utils/installationInfo.ts +181 -0
  879. package/packages/cli/src/utils/languageUtils.test.ts +478 -0
  880. package/packages/cli/src/utils/languageUtils.ts +191 -0
  881. package/packages/cli/src/utils/math.ts +15 -0
  882. package/packages/cli/src/utils/modelConfigUtils.test.ts +727 -0
  883. package/packages/cli/src/utils/modelConfigUtils.ts +159 -0
  884. package/packages/cli/src/utils/nonInteractiveHelpers.test.ts +1297 -0
  885. package/packages/cli/src/utils/nonInteractiveHelpers.ts +666 -0
  886. package/packages/cli/src/utils/package.ts +38 -0
  887. package/packages/cli/src/utils/processUtils.test.ts +22 -0
  888. package/packages/cli/src/utils/processUtils.ts +20 -0
  889. package/packages/cli/src/utils/readStdin.test.ts +112 -0
  890. package/packages/cli/src/utils/readStdin.ts +70 -0
  891. package/packages/cli/src/utils/relaunch.test.ts +335 -0
  892. package/packages/cli/src/utils/relaunch.ts +70 -0
  893. package/packages/cli/src/utils/resolvePath.ts +21 -0
  894. package/packages/cli/src/utils/sandbox-macos-permissive-closed.sb +32 -0
  895. package/packages/cli/src/utils/sandbox-macos-permissive-open.sb +25 -0
  896. package/packages/cli/src/utils/sandbox-macos-permissive-proxied.sb +37 -0
  897. package/packages/cli/src/utils/sandbox-macos-restrictive-closed.sb +93 -0
  898. package/packages/cli/src/utils/sandbox-macos-restrictive-open.sb +96 -0
  899. package/packages/cli/src/utils/sandbox-macos-restrictive-proxied.sb +98 -0
  900. package/packages/cli/src/utils/sandbox.ts +984 -0
  901. package/packages/cli/src/utils/settingsUtils.test.ts +1154 -0
  902. package/packages/cli/src/utils/settingsUtils.ts +646 -0
  903. package/packages/cli/src/utils/spawnWrapper.ts +9 -0
  904. package/packages/cli/src/utils/startupWarnings.test.ts +76 -0
  905. package/packages/cli/src/utils/startupWarnings.ts +40 -0
  906. package/packages/cli/src/utils/stdioHelpers.ts +41 -0
  907. package/packages/cli/src/utils/systemInfo.test.ts +337 -0
  908. package/packages/cli/src/utils/systemInfo.ts +181 -0
  909. package/packages/cli/src/utils/systemInfoFields.test.ts +79 -0
  910. package/packages/cli/src/utils/systemInfoFields.ts +143 -0
  911. package/packages/cli/src/utils/updateEventEmitter.ts +13 -0
  912. package/packages/cli/src/utils/userStartupWarnings.test.ts +112 -0
  913. package/packages/cli/src/utils/userStartupWarnings.ts +96 -0
  914. package/packages/cli/src/utils/version.ts +12 -0
  915. package/packages/cli/src/utils/windowTitle.test.ts +59 -0
  916. package/packages/cli/src/utils/windowTitle.ts +22 -0
  917. package/packages/cli/src/utils/writeWithBackup.test.ts +232 -0
  918. package/packages/cli/src/utils/writeWithBackup.ts +169 -0
  919. package/packages/cli/src/validateNonInterActiveAuth.test.ts +557 -0
  920. package/packages/cli/src/validateNonInterActiveAuth.ts +83 -0
  921. package/packages/cli/test-setup.ts +12 -0
  922. package/packages/cli/tsconfig.json +88 -0
  923. package/packages/cli/vitest.config.ts +57 -0
  924. package/packages/core/index.ts +7 -0
  925. package/packages/core/package.json +96 -0
  926. package/packages/core/scripts/postinstall.js +179 -0
  927. package/packages/core/src/__mocks__/fs/promises.ts +48 -0
  928. package/packages/core/src/config/config.test.ts +1501 -0
  929. package/packages/core/src/config/config.ts +1916 -0
  930. package/packages/core/src/config/constants.ts +22 -0
  931. package/packages/core/src/config/models.ts +10 -0
  932. package/packages/core/src/config/storage.test.ts +42 -0
  933. package/packages/core/src/config/storage.ts +143 -0
  934. package/packages/core/src/confirmation-bus/message-bus.ts +125 -0
  935. package/packages/core/src/confirmation-bus/types.ts +128 -0
  936. package/packages/core/src/core/__snapshots__/prompts.test.ts.snap +3490 -0
  937. package/packages/core/src/core/__tests__/openaiTimeoutHandling.test.ts +386 -0
  938. package/packages/core/src/core/__tests__/orphanedToolCallsTest.ts +125 -0
  939. package/packages/core/src/core/anthropicContentGenerator/anthropicContentGenerator.test.ts +524 -0
  940. package/packages/core/src/core/anthropicContentGenerator/anthropicContentGenerator.ts +514 -0
  941. package/packages/core/src/core/anthropicContentGenerator/converter.test.ts +946 -0
  942. package/packages/core/src/core/anthropicContentGenerator/converter.ts +581 -0
  943. package/packages/core/src/core/anthropicContentGenerator/index.ts +21 -0
  944. package/packages/core/src/core/baseLlmClient.test.ts +447 -0
  945. package/packages/core/src/core/baseLlmClient.ts +191 -0
  946. package/packages/core/src/core/client.test.ts +2368 -0
  947. package/packages/core/src/core/client.ts +785 -0
  948. package/packages/core/src/core/contentGenerator.test.ts +113 -0
  949. package/packages/core/src/core/contentGenerator.ts +357 -0
  950. package/packages/core/src/core/coreToolScheduler.test.ts +2814 -0
  951. package/packages/core/src/core/coreToolScheduler.ts +1406 -0
  952. package/packages/core/src/core/geminiChat.test.ts +1721 -0
  953. package/packages/core/src/core/geminiChat.ts +746 -0
  954. package/packages/core/src/core/geminiContentGenerator/geminiContentGenerator.test.ts +371 -0
  955. package/packages/core/src/core/geminiContentGenerator/geminiContentGenerator.ts +303 -0
  956. package/packages/core/src/core/geminiContentGenerator/index.test.ts +41 -0
  957. package/packages/core/src/core/geminiContentGenerator/index.ts +53 -0
  958. package/packages/core/src/core/geminiRequest.test.ts +85 -0
  959. package/packages/core/src/core/geminiRequest.ts +19 -0
  960. package/packages/core/src/core/logger.test.ts +704 -0
  961. package/packages/core/src/core/logger.ts +462 -0
  962. package/packages/core/src/core/loggingContentGenerator/index.ts +7 -0
  963. package/packages/core/src/core/loggingContentGenerator/loggingContentGenerator.test.ts +397 -0
  964. package/packages/core/src/core/loggingContentGenerator/loggingContentGenerator.ts +510 -0
  965. package/packages/core/src/core/modalityDefaults.test.ts +213 -0
  966. package/packages/core/src/core/modalityDefaults.ts +94 -0
  967. package/packages/core/src/core/nonInteractiveToolExecutor.test.ts +373 -0
  968. package/packages/core/src/core/nonInteractiveToolExecutor.ts +52 -0
  969. package/packages/core/src/core/openaiContentGenerator/constants.ts +8 -0
  970. package/packages/core/src/core/openaiContentGenerator/converter.test.ts +2361 -0
  971. package/packages/core/src/core/openaiContentGenerator/converter.ts +1359 -0
  972. package/packages/core/src/core/openaiContentGenerator/errorHandler.test.ts +355 -0
  973. package/packages/core/src/core/openaiContentGenerator/errorHandler.ts +140 -0
  974. package/packages/core/src/core/openaiContentGenerator/index.ts +94 -0
  975. package/packages/core/src/core/openaiContentGenerator/openaiContentGenerator.test.ts +405 -0
  976. package/packages/core/src/core/openaiContentGenerator/openaiContentGenerator.ts +168 -0
  977. package/packages/core/src/core/openaiContentGenerator/pipeline.test.ts +1475 -0
  978. package/packages/core/src/core/openaiContentGenerator/pipeline.ts +490 -0
  979. package/packages/core/src/core/openaiContentGenerator/provider/README.md +61 -0
  980. package/packages/core/src/core/openaiContentGenerator/provider/dashscope.test.ts +1014 -0
  981. package/packages/core/src/core/openaiContentGenerator/provider/dashscope.ts +365 -0
  982. package/packages/core/src/core/openaiContentGenerator/provider/deepseek.test.ts +68 -0
  983. package/packages/core/src/core/openaiContentGenerator/provider/deepseek.ts +33 -0
  984. package/packages/core/src/core/openaiContentGenerator/provider/default.test.ts +308 -0
  985. package/packages/core/src/core/openaiContentGenerator/provider/default.ts +78 -0
  986. package/packages/core/src/core/openaiContentGenerator/provider/index.ts +11 -0
  987. package/packages/core/src/core/openaiContentGenerator/provider/modelscope.test.ts +96 -0
  988. package/packages/core/src/core/openaiContentGenerator/provider/modelscope.ts +32 -0
  989. package/packages/core/src/core/openaiContentGenerator/provider/openrouter.test.ts +221 -0
  990. package/packages/core/src/core/openaiContentGenerator/provider/openrouter.ts +31 -0
  991. package/packages/core/src/core/openaiContentGenerator/provider/types.ts +35 -0
  992. package/packages/core/src/core/openaiContentGenerator/streamingToolCallParser.test.ts +864 -0
  993. package/packages/core/src/core/openaiContentGenerator/streamingToolCallParser.ts +442 -0
  994. package/packages/core/src/core/prompts.test.ts +617 -0
  995. package/packages/core/src/core/prompts.ts +1064 -0
  996. package/packages/core/src/core/tokenLimits.test.ts +331 -0
  997. package/packages/core/src/core/tokenLimits.ts +216 -0
  998. package/packages/core/src/core/turn.test.ts +1013 -0
  999. package/packages/core/src/core/turn.ts +418 -0
  1000. package/packages/core/src/extension/claude-converter.test.ts +436 -0
  1001. package/packages/core/src/extension/claude-converter.ts +776 -0
  1002. package/packages/core/src/extension/extensionManager.test.ts +760 -0
  1003. package/packages/core/src/extension/extensionManager.ts +1290 -0
  1004. package/packages/core/src/extension/extensionSettings.test.ts +730 -0
  1005. package/packages/core/src/extension/extensionSettings.ts +319 -0
  1006. package/packages/core/src/extension/gemini-converter.test.ts +177 -0
  1007. package/packages/core/src/extension/gemini-converter.ts +234 -0
  1008. package/packages/core/src/extension/github.test.ts +485 -0
  1009. package/packages/core/src/extension/github.ts +457 -0
  1010. package/packages/core/src/extension/index.ts +6 -0
  1011. package/packages/core/src/extension/marketplace.test.ts +282 -0
  1012. package/packages/core/src/extension/marketplace.ts +279 -0
  1013. package/packages/core/src/extension/override.test.ts +110 -0
  1014. package/packages/core/src/extension/override.ts +102 -0
  1015. package/packages/core/src/extension/settings.test.ts +138 -0
  1016. package/packages/core/src/extension/settings.ts +149 -0
  1017. package/packages/core/src/extension/storage.test.ts +100 -0
  1018. package/packages/core/src/extension/storage.ts +50 -0
  1019. package/packages/core/src/extension/variableSchema.ts +43 -0
  1020. package/packages/core/src/extension/variables.test.ts +18 -0
  1021. package/packages/core/src/extension/variables.ts +72 -0
  1022. package/packages/core/src/hooks/hookAggregator.test.ts +618 -0
  1023. package/packages/core/src/hooks/hookAggregator.ts +369 -0
  1024. package/packages/core/src/hooks/hookEventHandler.test.ts +278 -0
  1025. package/packages/core/src/hooks/hookEventHandler.ts +192 -0
  1026. package/packages/core/src/hooks/hookPlanner.test.ts +366 -0
  1027. package/packages/core/src/hooks/hookPlanner.ts +146 -0
  1028. package/packages/core/src/hooks/hookRegistry.test.ts +636 -0
  1029. package/packages/core/src/hooks/hookRegistry.ts +353 -0
  1030. package/packages/core/src/hooks/hookRunner.test.ts +684 -0
  1031. package/packages/core/src/hooks/hookRunner.ts +427 -0
  1032. package/packages/core/src/hooks/hookSystem.test.ts +328 -0
  1033. package/packages/core/src/hooks/hookSystem.ts +103 -0
  1034. package/packages/core/src/hooks/index.ts +22 -0
  1035. package/packages/core/src/hooks/trustedHooks.ts +118 -0
  1036. package/packages/core/src/hooks/types.ts +678 -0
  1037. package/packages/core/src/ide/constants.ts +10 -0
  1038. package/packages/core/src/ide/detect-ide.test.ts +137 -0
  1039. package/packages/core/src/ide/detect-ide.ts +93 -0
  1040. package/packages/core/src/ide/ide-client.test.ts +764 -0
  1041. package/packages/core/src/ide/ide-client.ts +983 -0
  1042. package/packages/core/src/ide/ide-installer.test.ts +178 -0
  1043. package/packages/core/src/ide/ide-installer.ts +162 -0
  1044. package/packages/core/src/ide/ideContext.test.ts +453 -0
  1045. package/packages/core/src/ide/ideContext.ts +124 -0
  1046. package/packages/core/src/ide/process-utils.test.ts +158 -0
  1047. package/packages/core/src/ide/process-utils.ts +219 -0
  1048. package/packages/core/src/ide/types.ts +148 -0
  1049. package/packages/core/src/index.test.ts +13 -0
  1050. package/packages/core/src/index.ts +309 -0
  1051. package/packages/core/src/lsp/LspConfigLoader.test.ts +90 -0
  1052. package/packages/core/src/lsp/LspConfigLoader.ts +500 -0
  1053. package/packages/core/src/lsp/LspConnectionFactory.ts +395 -0
  1054. package/packages/core/src/lsp/LspLanguageDetector.ts +226 -0
  1055. package/packages/core/src/lsp/LspResponseNormalizer.ts +917 -0
  1056. package/packages/core/src/lsp/LspServerManager.ts +720 -0
  1057. package/packages/core/src/lsp/NativeLspClient.ts +259 -0
  1058. package/packages/core/src/lsp/NativeLspService.integration.test.ts +769 -0
  1059. package/packages/core/src/lsp/NativeLspService.test.ts +132 -0
  1060. package/packages/core/src/lsp/NativeLspService.ts +894 -0
  1061. package/packages/core/src/lsp/constants.ts +101 -0
  1062. package/packages/core/src/lsp/types.ts +523 -0
  1063. package/packages/core/src/mcp/constants.ts +27 -0
  1064. package/packages/core/src/mcp/google-auth-provider.test.ts +112 -0
  1065. package/packages/core/src/mcp/google-auth-provider.ts +103 -0
  1066. package/packages/core/src/mcp/oauth-provider.test.ts +1275 -0
  1067. package/packages/core/src/mcp/oauth-provider.ts +910 -0
  1068. package/packages/core/src/mcp/oauth-token-storage.test.ts +459 -0
  1069. package/packages/core/src/mcp/oauth-token-storage.ts +228 -0
  1070. package/packages/core/src/mcp/oauth-utils.test.ts +345 -0
  1071. package/packages/core/src/mcp/oauth-utils.ts +379 -0
  1072. package/packages/core/src/mcp/sa-impersonation-provider.test.ts +153 -0
  1073. package/packages/core/src/mcp/sa-impersonation-provider.ts +177 -0
  1074. package/packages/core/src/mcp/token-storage/base-token-storage.test.ts +208 -0
  1075. package/packages/core/src/mcp/token-storage/base-token-storage.ts +49 -0
  1076. package/packages/core/src/mcp/token-storage/file-token-storage.test.ts +323 -0
  1077. package/packages/core/src/mcp/token-storage/file-token-storage.ts +184 -0
  1078. package/packages/core/src/mcp/token-storage/hybrid-token-storage.test.ts +274 -0
  1079. package/packages/core/src/mcp/token-storage/hybrid-token-storage.ts +97 -0
  1080. package/packages/core/src/mcp/token-storage/index.ts +14 -0
  1081. package/packages/core/src/mcp/token-storage/keychain-token-storage.test.ts +352 -0
  1082. package/packages/core/src/mcp/token-storage/keychain-token-storage.ts +315 -0
  1083. package/packages/core/src/mcp/token-storage/types.ts +42 -0
  1084. package/packages/core/src/mocks/msw.ts +9 -0
  1085. package/packages/core/src/models/constants.ts +117 -0
  1086. package/packages/core/src/models/index.ts +45 -0
  1087. package/packages/core/src/models/modelConfigErrors.ts +125 -0
  1088. package/packages/core/src/models/modelConfigResolver.test.ts +351 -0
  1089. package/packages/core/src/models/modelConfigResolver.ts +369 -0
  1090. package/packages/core/src/models/modelRegistry.test.ts +533 -0
  1091. package/packages/core/src/models/modelRegistry.ts +234 -0
  1092. package/packages/core/src/models/modelsConfig.test.ts +1509 -0
  1093. package/packages/core/src/models/modelsConfig.ts +1201 -0
  1094. package/packages/core/src/models/types.ts +150 -0
  1095. package/packages/core/src/output/json-formatter.test.ts +301 -0
  1096. package/packages/core/src/output/json-formatter.ts +39 -0
  1097. package/packages/core/src/output/types.ts +30 -0
  1098. package/packages/core/src/prompts/mcp-prompts.ts +19 -0
  1099. package/packages/core/src/prompts/prompt-registry.ts +77 -0
  1100. package/packages/core/src/qwen/qwenContentGenerator.test.ts +1698 -0
  1101. package/packages/core/src/qwen/qwenContentGenerator.ts +252 -0
  1102. package/packages/core/src/qwen/qwenOAuth2.test.ts +2187 -0
  1103. package/packages/core/src/qwen/qwenOAuth2.ts +1017 -0
  1104. package/packages/core/src/qwen/sharedTokenManager.test.ts +937 -0
  1105. package/packages/core/src/qwen/sharedTokenManager.ts +887 -0
  1106. package/packages/core/src/services/chatCompressionService.test.ts +484 -0
  1107. package/packages/core/src/services/chatCompressionService.ts +274 -0
  1108. package/packages/core/src/services/chatRecordingService.test.ts +356 -0
  1109. package/packages/core/src/services/chatRecordingService.ts +448 -0
  1110. package/packages/core/src/services/fileDiscoveryService.test.ts +211 -0
  1111. package/packages/core/src/services/fileDiscoveryService.ts +142 -0
  1112. package/packages/core/src/services/fileSystemService.test.ts +297 -0
  1113. package/packages/core/src/services/fileSystemService.ts +234 -0
  1114. package/packages/core/src/services/gitService.test.ts +231 -0
  1115. package/packages/core/src/services/gitService.ts +121 -0
  1116. package/packages/core/src/services/loopDetectionService.test.ts +622 -0
  1117. package/packages/core/src/services/loopDetectionService.ts +316 -0
  1118. package/packages/core/src/services/sessionService.test.ts +721 -0
  1119. package/packages/core/src/services/sessionService.ts +706 -0
  1120. package/packages/core/src/services/shellExecutionService.test.ts +999 -0
  1121. package/packages/core/src/services/shellExecutionService.ts +799 -0
  1122. package/packages/core/src/skills/index.ts +31 -0
  1123. package/packages/core/src/skills/skill-load.test.ts +303 -0
  1124. package/packages/core/src/skills/skill-load.ts +173 -0
  1125. package/packages/core/src/skills/skill-manager.test.ts +692 -0
  1126. package/packages/core/src/skills/skill-manager.ts +652 -0
  1127. package/packages/core/src/skills/types.ts +111 -0
  1128. package/packages/core/src/subagents/builtin-agents.test.ts +95 -0
  1129. package/packages/core/src/subagents/builtin-agents.ts +95 -0
  1130. package/packages/core/src/subagents/index.ts +75 -0
  1131. package/packages/core/src/subagents/subagent-events.ts +145 -0
  1132. package/packages/core/src/subagents/subagent-hooks.ts +33 -0
  1133. package/packages/core/src/subagents/subagent-manager.test.ts +1152 -0
  1134. package/packages/core/src/subagents/subagent-manager.ts +978 -0
  1135. package/packages/core/src/subagents/subagent-statistics.test.ts +318 -0
  1136. package/packages/core/src/subagents/subagent-statistics.ts +275 -0
  1137. package/packages/core/src/subagents/subagent.test.ts +1196 -0
  1138. package/packages/core/src/subagents/subagent.ts +1010 -0
  1139. package/packages/core/src/subagents/types.test.ts +40 -0
  1140. package/packages/core/src/subagents/types.ts +272 -0
  1141. package/packages/core/src/subagents/validation.test.ts +426 -0
  1142. package/packages/core/src/subagents/validation.ts +354 -0
  1143. package/packages/core/src/telemetry/config.test.ts +155 -0
  1144. package/packages/core/src/telemetry/config.ts +118 -0
  1145. package/packages/core/src/telemetry/constants.ts +45 -0
  1146. package/packages/core/src/telemetry/file-exporters.ts +93 -0
  1147. package/packages/core/src/telemetry/index.ts +108 -0
  1148. package/packages/core/src/telemetry/integration.test.circular.ts +111 -0
  1149. package/packages/core/src/telemetry/loggers.test.circular.ts +128 -0
  1150. package/packages/core/src/telemetry/loggers.test.ts +1284 -0
  1151. package/packages/core/src/telemetry/loggers.ts +948 -0
  1152. package/packages/core/src/telemetry/metrics.test.ts +899 -0
  1153. package/packages/core/src/telemetry/metrics.ts +749 -0
  1154. package/packages/core/src/telemetry/qwen-logger/event-types.ts +102 -0
  1155. package/packages/core/src/telemetry/qwen-logger/qwen-logger.test.ts +515 -0
  1156. package/packages/core/src/telemetry/qwen-logger/qwen-logger.ts +988 -0
  1157. package/packages/core/src/telemetry/sdk.test.ts +148 -0
  1158. package/packages/core/src/telemetry/sdk.ts +195 -0
  1159. package/packages/core/src/telemetry/telemetry-utils.test.ts +46 -0
  1160. package/packages/core/src/telemetry/telemetry-utils.ts +17 -0
  1161. package/packages/core/src/telemetry/telemetry.test.ts +63 -0
  1162. package/packages/core/src/telemetry/tool-call-decision.ts +32 -0
  1163. package/packages/core/src/telemetry/types.ts +874 -0
  1164. package/packages/core/src/telemetry/uiTelemetry.test.ts +766 -0
  1165. package/packages/core/src/telemetry/uiTelemetry.ts +253 -0
  1166. package/packages/core/src/test-utils/config.ts +36 -0
  1167. package/packages/core/src/test-utils/index.ts +7 -0
  1168. package/packages/core/src/test-utils/mock-tool.ts +218 -0
  1169. package/packages/core/src/test-utils/mockWorkspaceContext.ts +33 -0
  1170. package/packages/core/src/tools/__snapshots__/shell.test.ts.snap +98 -0
  1171. package/packages/core/src/tools/askUserQuestion.test.ts +260 -0
  1172. package/packages/core/src/tools/askUserQuestion.ts +352 -0
  1173. package/packages/core/src/tools/diffOptions.test.ts +165 -0
  1174. package/packages/core/src/tools/diffOptions.ts +73 -0
  1175. package/packages/core/src/tools/edit.test.ts +933 -0
  1176. package/packages/core/src/tools/edit.ts +622 -0
  1177. package/packages/core/src/tools/exitPlanMode.test.ts +241 -0
  1178. package/packages/core/src/tools/exitPlanMode.ts +200 -0
  1179. package/packages/core/src/tools/glob.test.ts +650 -0
  1180. package/packages/core/src/tools/glob.ts +296 -0
  1181. package/packages/core/src/tools/grep.test.ts +484 -0
  1182. package/packages/core/src/tools/grep.ts +570 -0
  1183. package/packages/core/src/tools/ls.test.ts +325 -0
  1184. package/packages/core/src/tools/ls.ts +339 -0
  1185. package/packages/core/src/tools/lsp.test.ts +1233 -0
  1186. package/packages/core/src/tools/lsp.ts +1218 -0
  1187. package/packages/core/src/tools/mcp-client-manager.test.ts +257 -0
  1188. package/packages/core/src/tools/mcp-client-manager.ts +532 -0
  1189. package/packages/core/src/tools/mcp-client.test.ts +424 -0
  1190. package/packages/core/src/tools/mcp-client.ts +1450 -0
  1191. package/packages/core/src/tools/mcp-tool.test.ts +1119 -0
  1192. package/packages/core/src/tools/mcp-tool.ts +580 -0
  1193. package/packages/core/src/tools/memoryTool.test.ts +603 -0
  1194. package/packages/core/src/tools/memoryTool.ts +542 -0
  1195. package/packages/core/src/tools/modifiable-tool.test.ts +347 -0
  1196. package/packages/core/src/tools/modifiable-tool.ts +178 -0
  1197. package/packages/core/src/tools/read-file.test.ts +468 -0
  1198. package/packages/core/src/tools/read-file.ts +226 -0
  1199. package/packages/core/src/tools/ripGrep.test.ts +727 -0
  1200. package/packages/core/src/tools/ripGrep.ts +334 -0
  1201. package/packages/core/src/tools/sdk-control-client-transport.ts +145 -0
  1202. package/packages/core/src/tools/shell.test.ts +1277 -0
  1203. package/packages/core/src/tools/shell.ts +651 -0
  1204. package/packages/core/src/tools/skill.test.ts +436 -0
  1205. package/packages/core/src/tools/skill.ts +275 -0
  1206. package/packages/core/src/tools/task.test.ts +538 -0
  1207. package/packages/core/src/tools/task.ts +570 -0
  1208. package/packages/core/src/tools/todoWrite.test.ts +304 -0
  1209. package/packages/core/src/tools/todoWrite.ts +482 -0
  1210. package/packages/core/src/tools/tool-error.ts +72 -0
  1211. package/packages/core/src/tools/tool-names.ts +69 -0
  1212. package/packages/core/src/tools/tool-registry.test.ts +432 -0
  1213. package/packages/core/src/tools/tool-registry.ts +525 -0
  1214. package/packages/core/src/tools/tools.test.ts +230 -0
  1215. package/packages/core/src/tools/tools.ts +662 -0
  1216. package/packages/core/src/tools/web-fetch.test.ts +169 -0
  1217. package/packages/core/src/tools/web-fetch.ts +256 -0
  1218. package/packages/core/src/tools/web-search/base-provider.ts +58 -0
  1219. package/packages/core/src/tools/web-search/index.test.ts +312 -0
  1220. package/packages/core/src/tools/web-search/index.ts +344 -0
  1221. package/packages/core/src/tools/web-search/providers/dashscope-provider.ts +199 -0
  1222. package/packages/core/src/tools/web-search/providers/google-provider.ts +91 -0
  1223. package/packages/core/src/tools/web-search/providers/tavily-provider.ts +84 -0
  1224. package/packages/core/src/tools/web-search/types.ts +156 -0
  1225. package/packages/core/src/tools/web-search/utils.ts +42 -0
  1226. package/packages/core/src/tools/write-file.test.ts +861 -0
  1227. package/packages/core/src/tools/write-file.ts +491 -0
  1228. package/packages/core/src/utils/LruCache.ts +41 -0
  1229. package/packages/core/src/utils/browser.ts +56 -0
  1230. package/packages/core/src/utils/configResolver.test.ts +141 -0
  1231. package/packages/core/src/utils/configResolver.ts +222 -0
  1232. package/packages/core/src/utils/debugLogger.test.ts +268 -0
  1233. package/packages/core/src/utils/debugLogger.ts +195 -0
  1234. package/packages/core/src/utils/editHelper.test.ts +210 -0
  1235. package/packages/core/src/utils/editHelper.ts +478 -0
  1236. package/packages/core/src/utils/editor.test.ts +546 -0
  1237. package/packages/core/src/utils/editor.ts +226 -0
  1238. package/packages/core/src/utils/envVarResolver.test.ts +297 -0
  1239. package/packages/core/src/utils/envVarResolver.ts +126 -0
  1240. package/packages/core/src/utils/environmentContext.test.ts +225 -0
  1241. package/packages/core/src/utils/environmentContext.ts +94 -0
  1242. package/packages/core/src/utils/errorParsing.test.ts +118 -0
  1243. package/packages/core/src/utils/errorParsing.ts +84 -0
  1244. package/packages/core/src/utils/errorReporting.test.ts +128 -0
  1245. package/packages/core/src/utils/errorReporting.ts +80 -0
  1246. package/packages/core/src/utils/errors.test.ts +91 -0
  1247. package/packages/core/src/utils/errors.ts +134 -0
  1248. package/packages/core/src/utils/fetch.test.ts +52 -0
  1249. package/packages/core/src/utils/fetch.ts +192 -0
  1250. package/packages/core/src/utils/fileUtils.test.ts +1126 -0
  1251. package/packages/core/src/utils/fileUtils.ts +692 -0
  1252. package/packages/core/src/utils/filesearch/crawlCache.test.ts +123 -0
  1253. package/packages/core/src/utils/filesearch/crawlCache.ts +69 -0
  1254. package/packages/core/src/utils/filesearch/crawler.test.ts +577 -0
  1255. package/packages/core/src/utils/filesearch/crawler.ts +85 -0
  1256. package/packages/core/src/utils/filesearch/fileSearch.test.ts +772 -0
  1257. package/packages/core/src/utils/filesearch/fileSearch.ts +250 -0
  1258. package/packages/core/src/utils/filesearch/ignore.test.ts +163 -0
  1259. package/packages/core/src/utils/filesearch/ignore.ts +131 -0
  1260. package/packages/core/src/utils/filesearch/result-cache.test.ts +55 -0
  1261. package/packages/core/src/utils/filesearch/result-cache.ts +67 -0
  1262. package/packages/core/src/utils/formatters.ts +16 -0
  1263. package/packages/core/src/utils/generateContentResponseUtilities.test.ts +283 -0
  1264. package/packages/core/src/utils/generateContentResponseUtilities.ts +127 -0
  1265. package/packages/core/src/utils/getFolderStructure.test.ts +340 -0
  1266. package/packages/core/src/utils/getFolderStructure.ts +336 -0
  1267. package/packages/core/src/utils/getPty.ts +9 -0
  1268. package/packages/core/src/utils/gitIgnoreParser.test.ts +237 -0
  1269. package/packages/core/src/utils/gitIgnoreParser.ts +189 -0
  1270. package/packages/core/src/utils/gitUtils.ts +90 -0
  1271. package/packages/core/src/utils/iconvHelper.ts +65 -0
  1272. package/packages/core/src/utils/ignorePatterns.test.ts +324 -0
  1273. package/packages/core/src/utils/ignorePatterns.ts +278 -0
  1274. package/packages/core/src/utils/installationManager.test.ts +99 -0
  1275. package/packages/core/src/utils/installationManager.ts +61 -0
  1276. package/packages/core/src/utils/jsonl-utils.ts +196 -0
  1277. package/packages/core/src/utils/language-detection.ts +103 -0
  1278. package/packages/core/src/utils/memoryDiscovery.test.ts +432 -0
  1279. package/packages/core/src/utils/memoryDiscovery.ts +357 -0
  1280. package/packages/core/src/utils/memoryImportProcessor.test.ts +933 -0
  1281. package/packages/core/src/utils/memoryImportProcessor.ts +417 -0
  1282. package/packages/core/src/utils/messageInspectors.ts +23 -0
  1283. package/packages/core/src/utils/nextSpeakerChecker.test.ts +273 -0
  1284. package/packages/core/src/utils/nextSpeakerChecker.ts +138 -0
  1285. package/packages/core/src/utils/openaiLogger.test.ts +390 -0
  1286. package/packages/core/src/utils/openaiLogger.ts +151 -0
  1287. package/packages/core/src/utils/partUtils.test.ts +301 -0
  1288. package/packages/core/src/utils/partUtils.ts +169 -0
  1289. package/packages/core/src/utils/pathReader.test.ts +411 -0
  1290. package/packages/core/src/utils/pathReader.ts +110 -0
  1291. package/packages/core/src/utils/paths.test.ts +850 -0
  1292. package/packages/core/src/utils/paths.ts +332 -0
  1293. package/packages/core/src/utils/projectSummary.ts +119 -0
  1294. package/packages/core/src/utils/promptIdContext.ts +9 -0
  1295. package/packages/core/src/utils/quotaErrorDetection.test.ts +134 -0
  1296. package/packages/core/src/utils/quotaErrorDetection.ts +126 -0
  1297. package/packages/core/src/utils/qwenIgnoreParser.test.ts +68 -0
  1298. package/packages/core/src/utils/qwenIgnoreParser.ts +81 -0
  1299. package/packages/core/src/utils/rateLimit.test.ts +102 -0
  1300. package/packages/core/src/utils/rateLimit.ts +84 -0
  1301. package/packages/core/src/utils/readManyFiles.test.ts +298 -0
  1302. package/packages/core/src/utils/readManyFiles.ts +210 -0
  1303. package/packages/core/src/utils/request-tokenizer/imageTokenizer.test.ts +157 -0
  1304. package/packages/core/src/utils/request-tokenizer/imageTokenizer.ts +508 -0
  1305. package/packages/core/src/utils/request-tokenizer/index.ts +11 -0
  1306. package/packages/core/src/utils/request-tokenizer/requestTokenizer.test.ts +271 -0
  1307. package/packages/core/src/utils/request-tokenizer/requestTokenizer.ts +330 -0
  1308. package/packages/core/src/utils/request-tokenizer/supportedImageFormats.ts +56 -0
  1309. package/packages/core/src/utils/request-tokenizer/textTokenizer.test.ts +279 -0
  1310. package/packages/core/src/utils/request-tokenizer/textTokenizer.ts +58 -0
  1311. package/packages/core/src/utils/request-tokenizer/types.ts +36 -0
  1312. package/packages/core/src/utils/retry.test.ts +534 -0
  1313. package/packages/core/src/utils/retry.ts +246 -0
  1314. package/packages/core/src/utils/ripgrepUtils.test.ts +135 -0
  1315. package/packages/core/src/utils/ripgrepUtils.ts +322 -0
  1316. package/packages/core/src/utils/runtimeFetchOptions.test.ts +95 -0
  1317. package/packages/core/src/utils/runtimeFetchOptions.ts +153 -0
  1318. package/packages/core/src/utils/safeJsonParse.test.ts +149 -0
  1319. package/packages/core/src/utils/safeJsonParse.ts +48 -0
  1320. package/packages/core/src/utils/safeJsonStringify.test.ts +73 -0
  1321. package/packages/core/src/utils/safeJsonStringify.ts +32 -0
  1322. package/packages/core/src/utils/schemaConverter.test.ts +118 -0
  1323. package/packages/core/src/utils/schemaConverter.ts +135 -0
  1324. package/packages/core/src/utils/schemaValidator.test.ts +297 -0
  1325. package/packages/core/src/utils/schemaValidator.ts +140 -0
  1326. package/packages/core/src/utils/secure-browser-launcher.test.ts +242 -0
  1327. package/packages/core/src/utils/secure-browser-launcher.ts +191 -0
  1328. package/packages/core/src/utils/shell-utils.test.ts +609 -0
  1329. package/packages/core/src/utils/shell-utils.ts +915 -0
  1330. package/packages/core/src/utils/shellReadOnlyChecker.test.ts +234 -0
  1331. package/packages/core/src/utils/shellReadOnlyChecker.ts +353 -0
  1332. package/packages/core/src/utils/subagentGenerator.test.ts +217 -0
  1333. package/packages/core/src/utils/subagentGenerator.ts +146 -0
  1334. package/packages/core/src/utils/summarizer.test.ts +202 -0
  1335. package/packages/core/src/utils/summarizer.ts +99 -0
  1336. package/packages/core/src/utils/symlink.ts +60 -0
  1337. package/packages/core/src/utils/systemEncoding.test.ts +478 -0
  1338. package/packages/core/src/utils/systemEncoding.ts +178 -0
  1339. package/packages/core/src/utils/terminalSerializer.test.ts +197 -0
  1340. package/packages/core/src/utils/terminalSerializer.ts +476 -0
  1341. package/packages/core/src/utils/testUtils.ts +87 -0
  1342. package/packages/core/src/utils/textUtils.test.ts +119 -0
  1343. package/packages/core/src/utils/textUtils.ts +75 -0
  1344. package/packages/core/src/utils/thoughtUtils.test.ts +80 -0
  1345. package/packages/core/src/utils/thoughtUtils.ts +76 -0
  1346. package/packages/core/src/utils/toml-to-markdown-converter.test.ts +103 -0
  1347. package/packages/core/src/utils/toml-to-markdown-converter.ts +74 -0
  1348. package/packages/core/src/utils/tool-utils.test.ts +159 -0
  1349. package/packages/core/src/utils/tool-utils.ts +181 -0
  1350. package/packages/core/src/utils/workspaceContext.test.ts +414 -0
  1351. package/packages/core/src/utils/workspaceContext.ts +202 -0
  1352. package/packages/core/src/utils/yaml-parser.test.ts +193 -0
  1353. package/packages/core/src/utils/yaml-parser.ts +192 -0
  1354. package/packages/core/test-setup.ts +27 -0
  1355. package/packages/core/tsconfig.json +11 -0
  1356. package/packages/core/vendor/ripgrep/COPYING +3 -0
  1357. package/packages/core/vendor/ripgrep/arm64-darwin/rg +0 -0
  1358. package/packages/core/vendor/ripgrep/arm64-linux/rg +0 -0
  1359. package/packages/core/vendor/ripgrep/x64-darwin/rg +0 -0
  1360. package/packages/core/vendor/ripgrep/x64-linux/rg +0 -0
  1361. package/packages/core/vendor/ripgrep/x64-win32/rg.exe +0 -0
  1362. package/packages/core/vitest.config.ts +38 -0
  1363. package/packages/ice-v43/package.json +35 -0
  1364. package/packages/ice-v43/src/agent-crews.ts +189 -0
  1365. package/packages/ice-v43/src/cli.ts +96 -0
  1366. package/packages/ice-v43/src/d20-learner.ts +161 -0
  1367. package/packages/ice-v43/src/engine.ts +219 -0
  1368. package/packages/ice-v43/src/index.ts +40 -0
  1369. package/packages/ice-v43/src/intent-decoder.ts +200 -0
  1370. package/packages/ice-v43/src/multi-provider-client.ts +200 -0
  1371. package/packages/ice-v43/src/reasoning/chain-of-thought.ts +166 -0
  1372. package/packages/ice-v43/src/reasoning/index.ts +16 -0
  1373. package/packages/ice-v43/src/reasoning/self-reflection.ts +160 -0
  1374. package/packages/ice-v43/src/reasoning/socratic-reviewer.ts +167 -0
  1375. package/packages/ice-v43/src/reasoning/tree-of-thoughts.ts +212 -0
  1376. package/packages/ice-v43/src/reasoning/types.ts +40 -0
  1377. package/packages/ice-v43/src/status-cli.ts +77 -0
  1378. package/packages/ice-v43/src/types.ts +81 -0
  1379. package/packages/ice-v43/tsconfig.json +25 -0
  1380. package/packages/sdk-java/client/.editorconfig +24 -0
  1381. package/packages/sdk-java/client/QWEN.md +106 -0
  1382. package/packages/sdk-java/client/README.md +178 -0
  1383. package/packages/sdk-java/client/checkstyle.xml +131 -0
  1384. package/packages/sdk-java/client/pom.xml +206 -0
  1385. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/AcpClient.java +174 -0
  1386. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/notification/AgentNotification.java +12 -0
  1387. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/notification/SessionNotification.java +42 -0
  1388. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/request/AuthenticateRequest.java +31 -0
  1389. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/request/ReadTextFileRequest.java +58 -0
  1390. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/request/RequestPermissionRequest.java +53 -0
  1391. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/request/WriteTextFileRequest.java +49 -0
  1392. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/request/terminal/CreateTerminalRequest.java +79 -0
  1393. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/request/terminal/KillTerminalCommandRequest.java +40 -0
  1394. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/request/terminal/ReleaseTerminalRequest.java +40 -0
  1395. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/request/terminal/TerminalOutputRequest.java +40 -0
  1396. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/request/terminal/WaitForTerminalExitRequest.java +40 -0
  1397. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/response/AuthenticateResponse.java +11 -0
  1398. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/response/InitializeResponse.java +101 -0
  1399. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/response/LoadSessionResponse.java +21 -0
  1400. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/response/NewSessionResponse.java +30 -0
  1401. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/response/PromptResponse.java +21 -0
  1402. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/agent/response/SetSessionModeResponse.java +11 -0
  1403. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/notification/CancelNotification.java +33 -0
  1404. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/notification/ClientNotification.java +13 -0
  1405. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/request/InitializeRequest.java +102 -0
  1406. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/request/LoadSessionRequest.java +54 -0
  1407. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/request/NewSessionRequest.java +46 -0
  1408. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/request/PromptRequest.java +50 -0
  1409. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/request/SetSessionModeRequest.java +40 -0
  1410. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/response/ReadTextFileResponse.java +33 -0
  1411. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/response/RequestPermissionResponse.java +40 -0
  1412. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/response/WriteTextFileResponse.java +11 -0
  1413. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/response/terminal/CreateTerminalResponse.java +20 -0
  1414. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/response/terminal/KillTerminalCommandResponse.java +11 -0
  1415. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/response/terminal/ReleaseTerminalResponse.java +11 -0
  1416. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/response/terminal/TerminalOutputResponse.java +60 -0
  1417. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/client/response/terminal/WaitForTerminalExitResponse.java +29 -0
  1418. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/agent/AgentCapabilities.java +189 -0
  1419. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/agent/AgentInfo.java +68 -0
  1420. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/agent/AuthMethod.java +68 -0
  1421. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/client/ClientCapabilities.java +120 -0
  1422. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/client/ClientInfo.java +68 -0
  1423. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/Diff.java +34 -0
  1424. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/ToolCallContent.java +44 -0
  1425. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/block/Annotations.java +53 -0
  1426. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/block/AudioContent.java +40 -0
  1427. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/block/ContentBlock.java +18 -0
  1428. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/block/ImageContent.java +49 -0
  1429. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/block/ResourceLink.java +76 -0
  1430. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/block/TextContent.java +36 -0
  1431. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/embedded/BlobResourceContents.java +13 -0
  1432. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/embedded/EmbeddedResource.java +32 -0
  1433. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/embedded/ResourceContent.java +26 -0
  1434. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/embedded/ResourceContentDeserializer.java +24 -0
  1435. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/content/embedded/TextResourceContents.java +13 -0
  1436. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/mcp/HttpHeader.java +25 -0
  1437. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/mcp/McpServer.java +75 -0
  1438. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/permission/PermissionOption.java +34 -0
  1439. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/permission/PermissionOptionKind.java +17 -0
  1440. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/permission/PermissionOutcomeKind.java +10 -0
  1441. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/permission/RequestPermissionOutcome.java +34 -0
  1442. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/plan/Plan.java +18 -0
  1443. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/plan/PlanEntry.java +34 -0
  1444. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/plan/PlanEntryPriority.java +14 -0
  1445. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/plan/PlanEntryStatus.java +14 -0
  1446. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/session/SessionMode.java +34 -0
  1447. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/session/SessionModeState.java +27 -0
  1448. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/session/StopReason.java +20 -0
  1449. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/session/update/AgentMessageChunkSessionUpdate.java +21 -0
  1450. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/session/update/AvailableCommand.java +34 -0
  1451. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/session/update/AvailableCommandsUpdateSessionUpdate.java +22 -0
  1452. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/session/update/CurrentModeUpdateSessionUpdate.java +20 -0
  1453. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/session/update/PlanSessionUpdate.java +23 -0
  1454. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/session/update/SessionUpdate.java +23 -0
  1455. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/session/update/ToolCallSessionUpdate.java +11 -0
  1456. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/session/update/ToolCallUpdateSessionUpdate.java +11 -0
  1457. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/session/update/UnstructuredCommandInput.java +16 -0
  1458. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/terminal/EnvVariable.java +25 -0
  1459. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/tool/ToolCallLocation.java +25 -0
  1460. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/tool/ToolCallStatus.java +17 -0
  1461. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/tool/ToolCallUpdate.java +82 -0
  1462. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/domain/tool/ToolKind.java +35 -0
  1463. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/jsonrpc/Error.java +181 -0
  1464. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/jsonrpc/ExtNotification.java +4 -0
  1465. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/jsonrpc/ExtRequest.java +4 -0
  1466. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/jsonrpc/ExtResponse.java +5 -0
  1467. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/jsonrpc/Message.java +22 -0
  1468. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/jsonrpc/Meta.java +48 -0
  1469. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/jsonrpc/MethodMessage.java +72 -0
  1470. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/jsonrpc/Request.java +10 -0
  1471. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/jsonrpc/Response.java +35 -0
  1472. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/protocol/schema.json +3105 -0
  1473. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/session/Session.java +312 -0
  1474. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/session/event/consumer/AgentEventConsumer.java +118 -0
  1475. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/session/event/consumer/ContentEventConsumer.java +110 -0
  1476. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/session/event/consumer/ContentEventSimpleConsumer.java +84 -0
  1477. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/session/event/consumer/FileEventConsumer.java +53 -0
  1478. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/session/event/consumer/FileEventSimpleConsumer.java +168 -0
  1479. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/session/event/consumer/PermissionEventConsumer.java +34 -0
  1480. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/session/event/consumer/PromptEndEventConsumer.java +29 -0
  1481. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/session/event/consumer/TerminalEventConsumer.java +110 -0
  1482. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/session/event/consumer/exception/EventConsumeException.java +89 -0
  1483. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/session/exception/SessionLoadException.java +65 -0
  1484. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/session/exception/SessionNewException.java +73 -0
  1485. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/transport/Transport.java +74 -0
  1486. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/transport/process/ProcessTransport.java +228 -0
  1487. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/transport/process/ProcessTransportOptions.java +122 -0
  1488. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/utils/AgentInitializeException.java +73 -0
  1489. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/utils/MyConcurrentUtils.java +83 -0
  1490. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/utils/ThreadPoolConfig.java +77 -0
  1491. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/utils/Timeout.java +72 -0
  1492. package/packages/sdk-java/client/src/main/java/com/alibaba/acp/sdk/utils/TransportUtils.java +38 -0
  1493. package/packages/sdk-java/client/src/test/java/com/alibaba/acp/sdk/protocol/client/session/PermissionOptionKindTest.java +31 -0
  1494. package/packages/sdk-java/client/src/test/java/com/alibaba/acp/sdk/protocol/client/session/PlanEntryPriorityTest.java +27 -0
  1495. package/packages/sdk-java/client/src/test/java/com/alibaba/acp/sdk/protocol/client/session/PlanEntryStatusTest.java +27 -0
  1496. package/packages/sdk-java/client/src/test/java/com/alibaba/acp/sdk/protocol/client/session/StopReasonTest.java +35 -0
  1497. package/packages/sdk-java/client/src/test/java/com/alibaba/acp/sdk/protocol/client/session/ToolCallStatusTest.java +31 -0
  1498. package/packages/sdk-java/client/src/test/java/com/alibaba/acp/sdk/protocol/client/session/ToolKindTest.java +55 -0
  1499. package/packages/sdk-java/client/src/test/java/com/alibaba/acp/sdk/session/SessionTest.java +128 -0
  1500. package/packages/sdk-java/client/src/test/java/com/alibaba/acp/sdk/test/EnumTest.java +22 -0
  1501. package/packages/sdk-java/client/src/test/resources/schema/schema.json +3105 -0
  1502. package/packages/sdk-java/qwencode/.editorconfig +24 -0
  1503. package/packages/sdk-java/qwencode/LICENSE +201 -0
  1504. package/packages/sdk-java/qwencode/QWEN.md +377 -0
  1505. package/packages/sdk-java/qwencode/README.md +307 -0
  1506. package/packages/sdk-java/qwencode/RELEASE.md +150 -0
  1507. package/packages/sdk-java/qwencode/checkstyle.xml +131 -0
  1508. package/packages/sdk-java/qwencode/pom.xml +193 -0
  1509. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/QwenCodeCli.java +142 -0
  1510. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/data/AssistantContent.java +95 -0
  1511. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/data/AssistantUsage.java +76 -0
  1512. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/data/CLIPermissionDenial.java +83 -0
  1513. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/data/Capabilities.java +131 -0
  1514. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/data/ExtendedUsage.java +147 -0
  1515. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/data/InitializeConfig.java +98 -0
  1516. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/data/ModelUsage.java +142 -0
  1517. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/data/PermissionMode.java +56 -0
  1518. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/data/Usage.java +137 -0
  1519. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/data/behavior/Allow.java +46 -0
  1520. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/data/behavior/Behavior.java +62 -0
  1521. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/data/behavior/Deny.java +45 -0
  1522. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/Message.java +23 -0
  1523. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/MessageBase.java +64 -0
  1524. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/SDKResultMessage.java +332 -0
  1525. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/SDKSystemMessage.java +486 -0
  1526. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/SDKUserMessage.java +196 -0
  1527. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/APIAssistantMessage.java +172 -0
  1528. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/SDKAssistantMessage.java +121 -0
  1529. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/SDKPartialAssistantMessage.java +116 -0
  1530. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/block/Annotation.java +59 -0
  1531. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/block/ContentBlock.java +87 -0
  1532. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/block/TextBlock.java +42 -0
  1533. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/block/ThinkingBlock.java +64 -0
  1534. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/block/ToolResultBlock.java +92 -0
  1535. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/block/ToolUseBlock.java +122 -0
  1536. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/event/ContentBlockDeltaEvent.java +224 -0
  1537. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/event/ContentBlockStartEvent.java +25 -0
  1538. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/event/ContentBlockStopEvent.java +35 -0
  1539. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/event/MessageStartStreamEvent.java +107 -0
  1540. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/event/MessageStopStreamEvent.java +13 -0
  1541. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/assistant/event/StreamEvent.java +37 -0
  1542. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/control/CLIControlRequest.java +90 -0
  1543. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/control/CLIControlResponse.java +138 -0
  1544. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/control/payload/CLIControlInitializeRequest.java +45 -0
  1545. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/control/payload/CLIControlInitializeResponse.java +41 -0
  1546. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/control/payload/CLIControlInterruptRequest.java +17 -0
  1547. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/control/payload/CLIControlPermissionRequest.java +235 -0
  1548. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/control/payload/CLIControlPermissionResponse.java +45 -0
  1549. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/control/payload/CLIControlSetModelRequest.java +40 -0
  1550. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/control/payload/CLIControlSetModelResponse.java +54 -0
  1551. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/control/payload/CLIControlSetPermissionModeRequest.java +40 -0
  1552. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/control/payload/ControlRequestPayload.java +26 -0
  1553. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/message/control/payload/ControlResponsePayload.java +26 -0
  1554. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/protocol/protocol.ts +594 -0
  1555. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/session/Session.java +302 -0
  1556. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/session/event/consumers/AssistantContentConsumers.java +159 -0
  1557. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/session/event/consumers/AssistantContentSimpleConsumers.java +193 -0
  1558. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/session/event/consumers/SessionEventConsumers.java +158 -0
  1559. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/session/event/consumers/SessionEventSimpleConsumers.java +339 -0
  1560. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/session/exception/SessionControlException.java +55 -0
  1561. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/session/exception/SessionSendPromptException.java +55 -0
  1562. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/transport/Transport.java +78 -0
  1563. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/transport/TransportOptions.java +386 -0
  1564. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/transport/process/ProcessTransport.java +224 -0
  1565. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/transport/process/TransportOptionsAdapter.java +153 -0
  1566. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/utils/MyConcurrentUtils.java +94 -0
  1567. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/utils/ThreadPoolConfig.java +64 -0
  1568. package/packages/sdk-java/qwencode/src/main/java/com/alibaba/qwen/code/cli/utils/Timeout.java +68 -0
  1569. package/packages/sdk-java/qwencode/src/test/java/com/alibaba/qwen/code/cli/QwenCodeCliTest.java +29 -0
  1570. package/packages/sdk-java/qwencode/src/test/java/com/alibaba/qwen/code/cli/example/QuickStartExample.java +109 -0
  1571. package/packages/sdk-java/qwencode/src/test/java/com/alibaba/qwen/code/cli/example/SessionExample.java +256 -0
  1572. package/packages/sdk-java/qwencode/src/test/java/com/alibaba/qwen/code/cli/example/ThreadPoolConfigurationExample.java +50 -0
  1573. package/packages/sdk-java/qwencode/src/test/java/com/alibaba/qwen/code/cli/session/SessionTest.java +185 -0
  1574. package/packages/sdk-java/qwencode/src/test/java/com/alibaba/qwen/code/cli/transport/PermissionModeTest.java +19 -0
  1575. package/packages/sdk-java/qwencode/src/test/java/com/alibaba/qwen/code/cli/transport/process/ProcessTransportTest.java +87 -0
  1576. package/packages/sdk-typescript/README.md +395 -0
  1577. package/packages/sdk-typescript/package.json +75 -0
  1578. package/packages/sdk-typescript/scripts/build.js +93 -0
  1579. package/packages/sdk-typescript/scripts/bundle-cli-from-npm.js +88 -0
  1580. package/packages/sdk-typescript/scripts/bundle-cli.js +83 -0
  1581. package/packages/sdk-typescript/scripts/get-release-version.js +363 -0
  1582. package/packages/sdk-typescript/src/index.ts +64 -0
  1583. package/packages/sdk-typescript/src/mcp/SdkControlServerTransport.ts +105 -0
  1584. package/packages/sdk-typescript/src/mcp/createSdkMcpServer.ts +107 -0
  1585. package/packages/sdk-typescript/src/mcp/formatters.ts +194 -0
  1586. package/packages/sdk-typescript/src/mcp/tool.ts +90 -0
  1587. package/packages/sdk-typescript/src/query/Query.ts +937 -0
  1588. package/packages/sdk-typescript/src/query/createQuery.ts +140 -0
  1589. package/packages/sdk-typescript/src/transport/ProcessTransport.ts +474 -0
  1590. package/packages/sdk-typescript/src/transport/Transport.ts +22 -0
  1591. package/packages/sdk-typescript/src/types/errors.ts +17 -0
  1592. package/packages/sdk-typescript/src/types/protocol.ts +605 -0
  1593. package/packages/sdk-typescript/src/types/queryOptionsSchema.ts +173 -0
  1594. package/packages/sdk-typescript/src/types/types.ts +477 -0
  1595. package/packages/sdk-typescript/src/utils/Stream.ts +79 -0
  1596. package/packages/sdk-typescript/src/utils/cliPath.ts +364 -0
  1597. package/packages/sdk-typescript/src/utils/jsonLines.ts +65 -0
  1598. package/packages/sdk-typescript/src/utils/logger.ts +147 -0
  1599. package/packages/sdk-typescript/src/utils/validation.ts +33 -0
  1600. package/packages/sdk-typescript/test/unit/ProcessTransport.test.ts +1754 -0
  1601. package/packages/sdk-typescript/test/unit/Query.test.ts +1433 -0
  1602. package/packages/sdk-typescript/test/unit/Stream.test.ts +255 -0
  1603. package/packages/sdk-typescript/test/unit/cliPath.test.ts +423 -0
  1604. package/packages/sdk-typescript/test/unit/createSdkMcpServer.test.ts +386 -0
  1605. package/packages/sdk-typescript/tsconfig.build.json +15 -0
  1606. package/packages/sdk-typescript/tsconfig.json +41 -0
  1607. package/packages/sdk-typescript/vitest.config.ts +47 -0
  1608. package/packages/test-utils/index.ts +7 -0
  1609. package/packages/test-utils/package.json +18 -0
  1610. package/packages/test-utils/src/file-system-test-helpers.ts +98 -0
  1611. package/packages/test-utils/src/index.ts +7 -0
  1612. package/packages/test-utils/tsconfig.json +11 -0
  1613. package/packages/test-utils/vitest.config.ts +23 -0
  1614. package/packages/vscode-ide-companion/.vscode/launch.json +13 -0
  1615. package/packages/vscode-ide-companion/.vscode/tasks.json +18 -0
  1616. package/packages/vscode-ide-companion/.vscodeignore +10 -0
  1617. package/packages/vscode-ide-companion/LICENSE +202 -0
  1618. package/packages/vscode-ide-companion/NOTICES.txt +2442 -0
  1619. package/packages/vscode-ide-companion/README.md +70 -0
  1620. package/packages/vscode-ide-companion/assets/icon.png +0 -0
  1621. package/packages/vscode-ide-companion/development.md +24 -0
  1622. package/packages/vscode-ide-companion/esbuild.js +197 -0
  1623. package/packages/vscode-ide-companion/eslint.config.mjs +75 -0
  1624. package/packages/vscode-ide-companion/package.json +172 -0
  1625. package/packages/vscode-ide-companion/postcss.config.js +13 -0
  1626. package/packages/vscode-ide-companion/schemas/settings.schema.json +622 -0
  1627. package/packages/vscode-ide-companion/scripts/copy-bundled-cli.js +67 -0
  1628. package/packages/vscode-ide-companion/scripts/generate-notices.js +160 -0
  1629. package/packages/vscode-ide-companion/scripts/prepackage.js +252 -0
  1630. package/packages/vscode-ide-companion/src/commands/index.ts +86 -0
  1631. package/packages/vscode-ide-companion/src/constants/acpSchema.ts +35 -0
  1632. package/packages/vscode-ide-companion/src/constants/loadingMessages.ts +146 -0
  1633. package/packages/vscode-ide-companion/src/diff-manager.ts +433 -0
  1634. package/packages/vscode-ide-companion/src/extension.test.ts +298 -0
  1635. package/packages/vscode-ide-companion/src/extension.ts +380 -0
  1636. package/packages/vscode-ide-companion/src/ide-server.test.ts +536 -0
  1637. package/packages/vscode-ide-companion/src/ide-server.ts +477 -0
  1638. package/packages/vscode-ide-companion/src/open-files-manager.test.ts +441 -0
  1639. package/packages/vscode-ide-companion/src/open-files-manager.ts +215 -0
  1640. package/packages/vscode-ide-companion/src/services/acpConnection.ts +532 -0
  1641. package/packages/vscode-ide-companion/src/services/acpFileHandler.test.ts +131 -0
  1642. package/packages/vscode-ide-companion/src/services/acpFileHandler.ts +117 -0
  1643. package/packages/vscode-ide-companion/src/services/conversationStore.ts +83 -0
  1644. package/packages/vscode-ide-companion/src/services/open-files-manager/constants.ts +8 -0
  1645. package/packages/vscode-ide-companion/src/services/open-files-manager/notebook-handler.ts +119 -0
  1646. package/packages/vscode-ide-companion/src/services/open-files-manager/text-handler.ts +61 -0
  1647. package/packages/vscode-ide-companion/src/services/open-files-manager/utils.ts +101 -0
  1648. package/packages/vscode-ide-companion/src/services/qwenAgentManager.ts +1495 -0
  1649. package/packages/vscode-ide-companion/src/services/qwenConnectionHandler.ts +237 -0
  1650. package/packages/vscode-ide-companion/src/services/qwenSessionManager.ts +151 -0
  1651. package/packages/vscode-ide-companion/src/services/qwenSessionReader.ts +353 -0
  1652. package/packages/vscode-ide-companion/src/services/qwenSessionUpdateHandler.test.ts +358 -0
  1653. package/packages/vscode-ide-companion/src/services/qwenSessionUpdateHandler.ts +274 -0
  1654. package/packages/vscode-ide-companion/src/services/readonlyFileSystemProvider.ts +204 -0
  1655. package/packages/vscode-ide-companion/src/types/acpTypes.ts +68 -0
  1656. package/packages/vscode-ide-companion/src/types/approvalModeTypes.ts +79 -0
  1657. package/packages/vscode-ide-companion/src/types/approvalModeValueTypes.ts +11 -0
  1658. package/packages/vscode-ide-companion/src/types/chatTypes.ts +113 -0
  1659. package/packages/vscode-ide-companion/src/types/completionItemTypes.ts +7 -0
  1660. package/packages/vscode-ide-companion/src/types/connectionTypes.ts +43 -0
  1661. package/packages/vscode-ide-companion/src/types/webviewMessageTypes.ts +25 -0
  1662. package/packages/vscode-ide-companion/src/utils/acpModelInfo.test.ts +208 -0
  1663. package/packages/vscode-ide-companion/src/utils/acpModelInfo.ts +288 -0
  1664. package/packages/vscode-ide-companion/src/utils/authErrors.ts +36 -0
  1665. package/packages/vscode-ide-companion/src/utils/authNotificationHandler.ts +50 -0
  1666. package/packages/vscode-ide-companion/src/utils/editorGroupUtils.ts +162 -0
  1667. package/packages/vscode-ide-companion/src/utils/logger.ts +18 -0
  1668. package/packages/vscode-ide-companion/src/utils/platform.ts +8 -0
  1669. package/packages/vscode-ide-companion/src/webview/App.tsx +1060 -0
  1670. package/packages/vscode-ide-companion/src/webview/MessageHandler.ts +89 -0
  1671. package/packages/vscode-ide-companion/src/webview/PanelManager.ts +385 -0
  1672. package/packages/vscode-ide-companion/src/webview/WebViewContent.ts +50 -0
  1673. package/packages/vscode-ide-companion/src/webview/WebViewProvider.ts +1450 -0
  1674. package/packages/vscode-ide-companion/src/webview/components/layout/InputForm.tsx +88 -0
  1675. package/packages/vscode-ide-companion/src/webview/components/layout/ModelSelector.tsx +197 -0
  1676. package/packages/vscode-ide-companion/src/webview/components/layout/Onboarding.tsx +26 -0
  1677. package/packages/vscode-ide-companion/src/webview/components/messages/toolcalls/ToolCall.tsx +29 -0
  1678. package/packages/vscode-ide-companion/src/webview/components/messages/toolcalls/index.tsx +101 -0
  1679. package/packages/vscode-ide-companion/src/webview/context/VSCodePlatformProvider.tsx +171 -0
  1680. package/packages/vscode-ide-companion/src/webview/handlers/AuthMessageHandler.ts +83 -0
  1681. package/packages/vscode-ide-companion/src/webview/handlers/BaseMessageHandler.ts +58 -0
  1682. package/packages/vscode-ide-companion/src/webview/handlers/EditorMessageHandler.ts +111 -0
  1683. package/packages/vscode-ide-companion/src/webview/handlers/FileMessageHandler.test.ts +118 -0
  1684. package/packages/vscode-ide-companion/src/webview/handlers/FileMessageHandler.ts +565 -0
  1685. package/packages/vscode-ide-companion/src/webview/handlers/MessageRouter.ts +175 -0
  1686. package/packages/vscode-ide-companion/src/webview/handlers/SessionMessageHandler.ts +994 -0
  1687. package/packages/vscode-ide-companion/src/webview/hooks/file/useFileContext.ts +189 -0
  1688. package/packages/vscode-ide-companion/src/webview/hooks/message/useMessageHandling.ts +182 -0
  1689. package/packages/vscode-ide-companion/src/webview/hooks/session/useSessionManagement.ts +127 -0
  1690. package/packages/vscode-ide-companion/src/webview/hooks/useCompletionTrigger.ts +357 -0
  1691. package/packages/vscode-ide-companion/src/webview/hooks/useMessageSubmit.ts +171 -0
  1692. package/packages/vscode-ide-companion/src/webview/hooks/useToolCalls.ts +271 -0
  1693. package/packages/vscode-ide-companion/src/webview/hooks/useVSCode.ts +54 -0
  1694. package/packages/vscode-ide-companion/src/webview/hooks/useWebViewMessages.ts +988 -0
  1695. package/packages/vscode-ide-companion/src/webview/index.tsx +28 -0
  1696. package/packages/vscode-ide-companion/src/webview/styles/App.css +175 -0
  1697. package/packages/vscode-ide-companion/src/webview/styles/tailwind.css +27 -0
  1698. package/packages/vscode-ide-companion/src/webview/utils/diffStats.ts +160 -0
  1699. package/packages/vscode-ide-companion/src/webview/utils/diffUtils.ts +49 -0
  1700. package/packages/vscode-ide-companion/src/webview/utils/resourceUrl.ts +115 -0
  1701. package/packages/vscode-ide-companion/src/webview/utils/sessionGrouping.ts +10 -0
  1702. package/packages/vscode-ide-companion/src/webview/utils/utils.test.ts +134 -0
  1703. package/packages/vscode-ide-companion/src/webview/utils/utils.ts +26 -0
  1704. package/packages/vscode-ide-companion/src/webview/utils/webviewUtils.ts +31 -0
  1705. package/packages/vscode-ide-companion/tailwind.config.js +74 -0
  1706. package/packages/vscode-ide-companion/tsconfig.json +17 -0
  1707. package/packages/vscode-ide-companion/vitest.config.ts +15 -0
  1708. package/packages/web-templates/build.mjs +57 -0
  1709. package/packages/web-templates/package.json +39 -0
  1710. package/packages/web-templates/src/export-html/build.mjs +87 -0
  1711. package/packages/web-templates/src/export-html/esbuild.config.mjs +35 -0
  1712. package/packages/web-templates/src/export-html/package.json +14 -0
  1713. package/packages/web-templates/src/export-html/src/components/TempFileModal.css +70 -0
  1714. package/packages/web-templates/src/export-html/src/components/TempFileModal.tsx +65 -0
  1715. package/packages/web-templates/src/export-html/src/favicon.svg +6 -0
  1716. package/packages/web-templates/src/export-html/src/index.html +59 -0
  1717. package/packages/web-templates/src/export-html/src/main.tsx +186 -0
  1718. package/packages/web-templates/src/export-html/src/styles.css +203 -0
  1719. package/packages/web-templates/src/export-html/src/types.d.ts +9 -0
  1720. package/packages/web-templates/src/export-html/tsconfig.json +15 -0
  1721. package/packages/web-templates/src/index.ts +9 -0
  1722. package/packages/web-templates/src/insight/build.mjs +57 -0
  1723. package/packages/web-templates/src/insight/index.html +17 -0
  1724. package/packages/web-templates/src/insight/package.json +9 -0
  1725. package/packages/web-templates/src/insight/postcss.config.js +5 -0
  1726. package/packages/web-templates/src/insight/src/App.tsx +287 -0
  1727. package/packages/web-templates/src/insight/src/Charts.tsx +300 -0
  1728. package/packages/web-templates/src/insight/src/Components.tsx +45 -0
  1729. package/packages/web-templates/src/insight/src/Header.tsx +79 -0
  1730. package/packages/web-templates/src/insight/src/Qualitative.tsx +718 -0
  1731. package/packages/web-templates/src/insight/src/ShareCard.tsx +598 -0
  1732. package/packages/web-templates/src/insight/src/dev.tsx +363 -0
  1733. package/packages/web-templates/src/insight/src/styles.css +1290 -0
  1734. package/packages/web-templates/src/insight/src/types.ts +15 -0
  1735. package/packages/web-templates/src/insight/tailwind.config.js +8 -0
  1736. package/packages/web-templates/src/insight/tsconfig.json +15 -0
  1737. package/packages/web-templates/src/insight/vite.config.mjs +39 -0
  1738. package/packages/web-templates/tsconfig.json +12 -0
  1739. package/packages/webui/.storybook/main.ts +44 -0
  1740. package/packages/webui/.storybook/preview.css +54 -0
  1741. package/packages/webui/.storybook/preview.ts +67 -0
  1742. package/packages/webui/README.md +347 -0
  1743. package/packages/webui/docs/WEBUI_MIGRATION_PLAN_EN.md +428 -0
  1744. package/packages/webui/examples/README.md +8 -0
  1745. package/packages/webui/examples/cdn-usage-demo.html +161 -0
  1746. package/packages/webui/examples/complex-chat-demo.html +428 -0
  1747. package/packages/webui/package.json +80 -0
  1748. package/packages/webui/postcss.config.cjs +13 -0
  1749. package/packages/webui/scripts/add-license-header.sh +48 -0
  1750. package/packages/webui/src/adapters/ACPAdapter.ts +109 -0
  1751. package/packages/webui/src/adapters/JSONLAdapter.ts +126 -0
  1752. package/packages/webui/src/adapters/index.ts +28 -0
  1753. package/packages/webui/src/adapters/types.ts +82 -0
  1754. package/packages/webui/src/components/ChatViewer/ChatViewer.css +192 -0
  1755. package/packages/webui/src/components/ChatViewer/ChatViewer.stories.tsx +1650 -0
  1756. package/packages/webui/src/components/ChatViewer/ChatViewer.tsx +424 -0
  1757. package/packages/webui/src/components/ChatViewer/index.ts +16 -0
  1758. package/packages/webui/src/components/PermissionDrawer.css +249 -0
  1759. package/packages/webui/src/components/PermissionDrawer.stories.tsx +81 -0
  1760. package/packages/webui/src/components/PermissionDrawer.tsx +259 -0
  1761. package/packages/webui/src/components/WebviewContainer.tsx +17 -0
  1762. package/packages/webui/src/components/icons/CloseIcon.tsx +36 -0
  1763. package/packages/webui/src/components/icons/EditIcons.tsx +389 -0
  1764. package/packages/webui/src/components/icons/FileIcons.tsx +99 -0
  1765. package/packages/webui/src/components/icons/Icon.tsx +41 -0
  1766. package/packages/webui/src/components/icons/NavigationIcons.tsx +270 -0
  1767. package/packages/webui/src/components/icons/SendIcon.tsx +36 -0
  1768. package/packages/webui/src/components/icons/SpecialIcons.tsx +79 -0
  1769. package/packages/webui/src/components/icons/StatusIcons.tsx +235 -0
  1770. package/packages/webui/src/components/icons/StopIcon.tsx +29 -0
  1771. package/packages/webui/src/components/icons/index.ts +60 -0
  1772. package/packages/webui/src/components/icons/types.ts +22 -0
  1773. package/packages/webui/src/components/layout/ChatHeader.stories.tsx +66 -0
  1774. package/packages/webui/src/components/layout/ChatHeader.tsx +77 -0
  1775. package/packages/webui/src/components/layout/CompletionMenu.stories.tsx +129 -0
  1776. package/packages/webui/src/components/layout/CompletionMenu.tsx +280 -0
  1777. package/packages/webui/src/components/layout/Container.tsx +18 -0
  1778. package/packages/webui/src/components/layout/ContextIndicator.stories.tsx +85 -0
  1779. package/packages/webui/src/components/layout/ContextIndicator.tsx +129 -0
  1780. package/packages/webui/src/components/layout/EmptyState.stories.tsx +100 -0
  1781. package/packages/webui/src/components/layout/EmptyState.tsx +99 -0
  1782. package/packages/webui/src/components/layout/FileLink.tsx +189 -0
  1783. package/packages/webui/src/components/layout/Footer.tsx +11 -0
  1784. package/packages/webui/src/components/layout/Header.tsx +11 -0
  1785. package/packages/webui/src/components/layout/InputForm.stories.tsx +205 -0
  1786. package/packages/webui/src/components/layout/InputForm.tsx +367 -0
  1787. package/packages/webui/src/components/layout/Main.tsx +11 -0
  1788. package/packages/webui/src/components/layout/Onboarding.stories.tsx +69 -0
  1789. package/packages/webui/src/components/layout/Onboarding.tsx +70 -0
  1790. package/packages/webui/src/components/layout/SessionSelector.stories.tsx +154 -0
  1791. package/packages/webui/src/components/layout/SessionSelector.tsx +194 -0
  1792. package/packages/webui/src/components/layout/Sidebar.tsx +11 -0
  1793. package/packages/webui/src/components/messages/AskUserQuestionDialog.tsx +525 -0
  1794. package/packages/webui/src/components/messages/Assistant/AssistantMessage.css +104 -0
  1795. package/packages/webui/src/components/messages/Assistant/AssistantMessage.stories.tsx +207 -0
  1796. package/packages/webui/src/components/messages/Assistant/AssistantMessage.tsx +99 -0
  1797. package/packages/webui/src/components/messages/Assistant/index.ts +11 -0
  1798. package/packages/webui/src/components/messages/CollapsibleFileContent.tsx +264 -0
  1799. package/packages/webui/src/components/messages/MarkdownRenderer/MarkdownRenderer.css +222 -0
  1800. package/packages/webui/src/components/messages/MarkdownRenderer/MarkdownRenderer.tsx +360 -0
  1801. package/packages/webui/src/components/messages/MarkdownRenderer/index.ts +8 -0
  1802. package/packages/webui/src/components/messages/Message.tsx +45 -0
  1803. package/packages/webui/src/components/messages/MessageContent.tsx +31 -0
  1804. package/packages/webui/src/components/messages/MessageInput.tsx +11 -0
  1805. package/packages/webui/src/components/messages/MessageList.tsx +11 -0
  1806. package/packages/webui/src/components/messages/ThinkingMessage.css +150 -0
  1807. package/packages/webui/src/components/messages/ThinkingMessage.stories.tsx +141 -0
  1808. package/packages/webui/src/components/messages/ThinkingMessage.tsx +83 -0
  1809. package/packages/webui/src/components/messages/UserMessage.stories.tsx +121 -0
  1810. package/packages/webui/src/components/messages/UserMessage.tsx +91 -0
  1811. package/packages/webui/src/components/messages/Waiting/InterruptedMessage.tsx +22 -0
  1812. package/packages/webui/src/components/messages/Waiting/WaitingMessage.tsx +83 -0
  1813. package/packages/webui/src/components/toolcalls/CheckboxDisplay.stories.tsx +63 -0
  1814. package/packages/webui/src/components/toolcalls/CheckboxDisplay.tsx +79 -0
  1815. package/packages/webui/src/components/toolcalls/EditToolCall.stories.tsx +92 -0
  1816. package/packages/webui/src/components/toolcalls/EditToolCall.tsx +216 -0
  1817. package/packages/webui/src/components/toolcalls/GenericToolCall.stories.tsx +102 -0
  1818. package/packages/webui/src/components/toolcalls/GenericToolCall.tsx +148 -0
  1819. package/packages/webui/src/components/toolcalls/ReadToolCall.stories.tsx +171 -0
  1820. package/packages/webui/src/components/toolcalls/ReadToolCall.tsx +338 -0
  1821. package/packages/webui/src/components/toolcalls/SaveMemoryToolCall.tsx +69 -0
  1822. package/packages/webui/src/components/toolcalls/SearchToolCall.stories.tsx +85 -0
  1823. package/packages/webui/src/components/toolcalls/SearchToolCall.tsx +210 -0
  1824. package/packages/webui/src/components/toolcalls/ShellToolCall.css +190 -0
  1825. package/packages/webui/src/components/toolcalls/ShellToolCall.stories.tsx +183 -0
  1826. package/packages/webui/src/components/toolcalls/ShellToolCall.tsx +297 -0
  1827. package/packages/webui/src/components/toolcalls/ThinkToolCall.stories.tsx +98 -0
  1828. package/packages/webui/src/components/toolcalls/ThinkToolCall.tsx +86 -0
  1829. package/packages/webui/src/components/toolcalls/UpdatedPlanToolCall.stories.tsx +100 -0
  1830. package/packages/webui/src/components/toolcalls/UpdatedPlanToolCall.tsx +188 -0
  1831. package/packages/webui/src/components/toolcalls/WebFetchToolCall.tsx +195 -0
  1832. package/packages/webui/src/components/toolcalls/WriteToolCall.stories.tsx +68 -0
  1833. package/packages/webui/src/components/toolcalls/WriteToolCall.tsx +132 -0
  1834. package/packages/webui/src/components/toolcalls/index.ts +22 -0
  1835. package/packages/webui/src/components/toolcalls/shared/CodeBlock.stories.tsx +52 -0
  1836. package/packages/webui/src/components/toolcalls/shared/CopyButton.stories.tsx +54 -0
  1837. package/packages/webui/src/components/toolcalls/shared/LayoutComponents.css +207 -0
  1838. package/packages/webui/src/components/toolcalls/shared/LayoutComponents.tsx +188 -0
  1839. package/packages/webui/src/components/toolcalls/shared/LocationsList.stories.tsx +45 -0
  1840. package/packages/webui/src/components/toolcalls/shared/StatusIndicator.stories.tsx +51 -0
  1841. package/packages/webui/src/components/toolcalls/shared/ToolCallCard.stories.tsx +80 -0
  1842. package/packages/webui/src/components/toolcalls/shared/ToolCallContainer.stories.tsx +79 -0
  1843. package/packages/webui/src/components/toolcalls/shared/copyUtils.tsx +99 -0
  1844. package/packages/webui/src/components/toolcalls/shared/index.ts +43 -0
  1845. package/packages/webui/src/components/toolcalls/shared/types.ts +95 -0
  1846. package/packages/webui/src/components/toolcalls/shared/utils.ts +284 -0
  1847. package/packages/webui/src/components/ui/Button.stories.tsx +83 -0
  1848. package/packages/webui/src/components/ui/Button.tsx +143 -0
  1849. package/packages/webui/src/components/ui/Input.tsx +149 -0
  1850. package/packages/webui/src/components/ui/Tooltip.stories.tsx +68 -0
  1851. package/packages/webui/src/components/ui/Tooltip.tsx +73 -0
  1852. package/packages/webui/src/context/PlatformContext.tsx +104 -0
  1853. package/packages/webui/src/hooks/useLocalStorage.ts +33 -0
  1854. package/packages/webui/src/hooks/useTheme.ts +35 -0
  1855. package/packages/webui/src/index.ts +256 -0
  1856. package/packages/webui/src/styles/components.css +524 -0
  1857. package/packages/webui/src/styles/timeline.css +69 -0
  1858. package/packages/webui/src/styles/variables.css +197 -0
  1859. package/packages/webui/src/types/chat.ts +28 -0
  1860. package/packages/webui/src/types/completion.ts +42 -0
  1861. package/packages/webui/src/types/messages.ts +13 -0
  1862. package/packages/webui/src/types/theme.ts +7 -0
  1863. package/packages/webui/src/types/toolCall.ts +48 -0
  1864. package/packages/webui/src/utils/sessionGrouping.ts +126 -0
  1865. package/packages/webui/tailwind.config.cjs +11 -0
  1866. package/packages/webui/tailwind.preset.cjs +90 -0
  1867. package/packages/webui/tsconfig.json +21 -0
  1868. package/packages/webui/vite.config.ts +59 -0
  1869. package/packages/zed-extension/LICENSE +22 -0
  1870. package/packages/zed-extension/README.md +126 -0
  1871. package/packages/zed-extension/extension.toml +32 -0
  1872. package/packages/zed-extension/qwen-code.svg +1 -0
  1873. package/patches/README.md +293 -0
  1874. package/pyproject.toml +54 -0
  1875. package/requirements.txt +10 -0
  1876. package/scripts/build.js +88 -0
  1877. package/scripts/build_package.js +37 -0
  1878. package/scripts/build_sandbox.js +174 -0
  1879. package/scripts/build_vscode_companion.js +30 -0
  1880. package/scripts/check-build-status.js +148 -0
  1881. package/scripts/check-i18n.ts +462 -0
  1882. package/scripts/check-lockfile.js +74 -0
  1883. package/scripts/clean.js +59 -0
  1884. package/scripts/copy_bundle_assets.js +90 -0
  1885. package/scripts/copy_files.js +86 -0
  1886. package/scripts/create_alias.sh +39 -0
  1887. package/scripts/dev.js +109 -0
  1888. package/scripts/esbuild-shims.js +29 -0
  1889. package/scripts/generate-git-commit-info.js +71 -0
  1890. package/scripts/generate-settings-schema.ts +146 -0
  1891. package/scripts/get-release-version.js +411 -0
  1892. package/scripts/install-ice.sh +70 -0
  1893. package/scripts/install.sh +136 -0
  1894. package/scripts/installation/INSTALLATION_GUIDE.md +250 -0
  1895. package/scripts/installation/install-qwen-with-source.bat +302 -0
  1896. package/scripts/installation/install-qwen-with-source.sh +570 -0
  1897. package/scripts/lint.js +205 -0
  1898. package/scripts/local_telemetry.js +219 -0
  1899. package/scripts/postinstall.cjs +14 -0
  1900. package/scripts/pre-commit.js +22 -0
  1901. package/scripts/prepare-package.js +186 -0
  1902. package/scripts/prepare-termux.cjs +26 -0
  1903. package/scripts/sandbox_command.js +128 -0
  1904. package/scripts/start.js +86 -0
  1905. package/scripts/telemetry.js +85 -0
  1906. package/scripts/telemetry_gcp.js +188 -0
  1907. package/scripts/telemetry_utils.js +450 -0
  1908. package/scripts/test-windows-paths.js +51 -0
  1909. package/scripts/tests/get-release-version.test.js +186 -0
  1910. package/scripts/tests/test-setup.ts +12 -0
  1911. package/scripts/tests/vitest.config.ts +26 -0
  1912. package/scripts/unused-keys-only-in-locales.json +62 -0
  1913. package/scripts/version.js +112 -0
  1914. package/test-reports/0.10.3-termux/README.md +213 -0
  1915. package/test-reports/0.10.3-termux/TEST-REPORT-2026-02-17.md +114 -0
  1916. package/test-reports/0.11.0-termux/TEST-REPORT-2026-03-01.md +104 -0
  1917. package/test-reports/0.11.3-termux/TEST-REPORT-2026-03-07.md +156 -0
  1918. package/test-reports/0.12.0-termux/CHECKLIST-MANUALE.md +217 -0
  1919. package/test-reports/0.12.0-termux/TEST-REPORT-2026-03-09.md +225 -0
  1920. package/test-reports/README.md +60 -0
  1921. package/test-reports/suites/README.md +22 -0
  1922. package/test-reports/suites/basic-smoke.md +162 -0
  1923. package/test-reports/suites/latest/termux.md +202 -0
  1924. package/test-reports/suites/qwen-test-suite.md +200 -0
  1925. package/test-reports/suites/termux-runtime.md +201 -0
  1926. package/tsconfig.json +31 -0
  1927. package/vitest.config.ts +14 -0
@@ -0,0 +1,873 @@
1
+ # MCP servers with Qwen Code
2
+
3
+ This document provides a guide to configuring and using Model Context Protocol (MCP) servers with Qwen Code.
4
+
5
+ ## What is an MCP server?
6
+
7
+ An MCP server is an application that exposes tools and resources to the CLI through the Model Context Protocol, allowing it to interact with external systems and data sources. MCP servers act as a bridge between the model and your local environment or other services like APIs.
8
+
9
+ An MCP server enables the CLI to:
10
+
11
+ - **Discover tools:** List available tools, their descriptions, and parameters through standardized schema definitions.
12
+ - **Execute tools:** Call specific tools with defined arguments and receive structured responses.
13
+ - **Access resources:** Read data from specific resources (though the CLI primarily focuses on tool execution).
14
+
15
+ With an MCP server, you can extend the CLI's capabilities to perform actions beyond its built-in features, such as interacting with databases, APIs, custom scripts, or specialized workflows.
16
+
17
+ ## Core Integration Architecture
18
+
19
+ Qwen Code integrates with MCP servers through a sophisticated discovery and execution system built into the core package (`packages/core/src/tools/`):
20
+
21
+ ### Discovery Layer (`mcp-client.ts`)
22
+
23
+ The discovery process is orchestrated by `discoverMcpTools()`, which:
24
+
25
+ 1. **Iterates through configured servers** from your `settings.json` `mcpServers` configuration
26
+ 2. **Establishes connections** using appropriate transport mechanisms (Stdio, SSE, or Streamable HTTP)
27
+ 3. **Fetches tool definitions** from each server using the MCP protocol
28
+ 4. **Sanitizes and validates** tool schemas for compatibility with the Qwen API
29
+ 5. **Registers tools** in the global tool registry with conflict resolution
30
+
31
+ ### Execution Layer (`mcp-tool.ts`)
32
+
33
+ Each discovered MCP tool is wrapped in a `DiscoveredMCPTool` instance that:
34
+
35
+ - **Handles confirmation logic** based on server trust settings and user preferences
36
+ - **Manages tool execution** by calling the MCP server with proper parameters
37
+ - **Processes responses** for both the LLM context and user display
38
+ - **Maintains connection state** and handles timeouts
39
+
40
+ ### Transport Mechanisms
41
+
42
+ The CLI supports three MCP transport types:
43
+
44
+ - **Stdio Transport:** Spawns a subprocess and communicates via stdin/stdout
45
+ - **SSE Transport:** Connects to Server-Sent Events endpoints
46
+ - **Streamable HTTP Transport:** Uses HTTP streaming for communication
47
+
48
+ ## How to set up your MCP server
49
+
50
+ Qwen Code uses the `mcpServers` configuration in your `settings.json` file to locate and connect to MCP servers. This configuration supports multiple servers with different transport mechanisms.
51
+
52
+ ### Configure the MCP server in settings.json
53
+
54
+ You can configure MCP servers in your `settings.json` file in two main ways: through the top-level `mcpServers` object for specific server definitions, and through the `mcp` object for global settings that control server discovery and execution.
55
+
56
+ #### Global MCP Settings (`mcp`)
57
+
58
+ The `mcp` object in your `settings.json` allows you to define global rules for all MCP servers.
59
+
60
+ - **`mcp.serverCommand`** (string): A global command to start an MCP server.
61
+ - **`mcp.allowed`** (array of strings): A list of MCP server names to allow. If this is set, only servers from this list (matching the keys in the `mcpServers` object) will be connected to.
62
+ - **`mcp.excluded`** (array of strings): A list of MCP server names to exclude. Servers in this list will not be connected to.
63
+
64
+ **Example:**
65
+
66
+ ```json
67
+ {
68
+ "mcp": {
69
+ "allowed": ["my-trusted-server"],
70
+ "excluded": ["experimental-server"]
71
+ }
72
+ }
73
+ ```
74
+
75
+ #### Server-Specific Configuration (`mcpServers`)
76
+
77
+ The `mcpServers` object is where you define each individual MCP server you want the CLI to connect to.
78
+
79
+ ### Configuration Structure
80
+
81
+ Add an `mcpServers` object to your `settings.json` file:
82
+
83
+ ```json
84
+ { ...file contains other config objects
85
+ "mcpServers": {
86
+ "serverName": {
87
+ "command": "path/to/server",
88
+ "args": ["--arg1", "value1"],
89
+ "env": {
90
+ "API_KEY": "$MY_API_TOKEN"
91
+ },
92
+ "cwd": "./server-directory",
93
+ "timeout": 30000,
94
+ "trust": false
95
+ }
96
+ }
97
+ }
98
+ ```
99
+
100
+ ### Configuration Properties
101
+
102
+ Each server configuration supports the following properties:
103
+
104
+ #### Required (one of the following)
105
+
106
+ - **`command`** (string): Path to the executable for Stdio transport
107
+ - **`url`** (string): SSE endpoint URL (e.g., `"http://localhost:8080/sse"`)
108
+ - **`httpUrl`** (string): HTTP streaming endpoint URL
109
+
110
+ #### Optional
111
+
112
+ - **`args`** (string[]): Command-line arguments for Stdio transport
113
+ - **`headers`** (object): Custom HTTP headers when using `url` or `httpUrl`
114
+ - **`env`** (object): Environment variables for the server process. Values can reference environment variables using `$VAR_NAME` or `${VAR_NAME}` syntax
115
+ - **`cwd`** (string): Working directory for Stdio transport
116
+ - **`timeout`** (number): Request timeout in milliseconds (default: 600,000ms = 10 minutes)
117
+ - **`trust`** (boolean): When `true`, bypasses all tool call confirmations for this server (default: `false`)
118
+ - **`includeTools`** (string[]): List of tool names to include from this MCP server. When specified, only the tools listed here will be available from this server (allowlist behavior). If not specified, all tools from the server are enabled by default.
119
+ - **`excludeTools`** (string[]): List of tool names to exclude from this MCP server. Tools listed here will not be available to the model, even if they are exposed by the server. **Note:** `excludeTools` takes precedence over `includeTools` - if a tool is in both lists, it will be excluded.
120
+ - **`targetAudience`** (string): The OAuth Client ID allowlisted on the IAP-protected application you are trying to access. Used with `authProviderType: 'service_account_impersonation'`.
121
+ - **`targetServiceAccount`** (string): The email address of the Google Cloud Service Account to impersonate. Used with `authProviderType: 'service_account_impersonation'`.
122
+
123
+ ### OAuth Support for Remote MCP Servers
124
+
125
+ Qwen Code supports OAuth 2.0 authentication for remote MCP servers using SSE or HTTP transports. This enables secure access to MCP servers that require authentication.
126
+
127
+ #### Automatic OAuth Discovery
128
+
129
+ For servers that support OAuth discovery, you can omit the OAuth configuration and let the CLI discover it automatically:
130
+
131
+ ```json
132
+ {
133
+ "mcpServers": {
134
+ "discoveredServer": {
135
+ "url": "https://api.example.com/sse"
136
+ }
137
+ }
138
+ }
139
+ ```
140
+
141
+ The CLI will automatically:
142
+
143
+ - Detect when a server requires OAuth authentication (401 responses)
144
+ - Discover OAuth endpoints from server metadata
145
+ - Perform dynamic client registration if supported
146
+ - Handle the OAuth flow and token management
147
+
148
+ #### Authentication Flow
149
+
150
+ When connecting to an OAuth-enabled server:
151
+
152
+ 1. **Initial connection attempt** fails with 401 Unauthorized
153
+ 2. **OAuth discovery** finds authorization and token endpoints
154
+ 3. **Browser opens** for user authentication (requires local browser access)
155
+ 4. **Authorization code** is exchanged for access tokens
156
+ 5. **Tokens are stored** securely for future use
157
+ 6. **Connection retry** succeeds with valid tokens
158
+
159
+ #### Browser Redirect Requirements
160
+
161
+ **Important:** OAuth authentication requires that your local machine can:
162
+
163
+ - Open a web browser for authentication
164
+ - Receive redirects on `http://localhost:7777/oauth/callback`
165
+
166
+ This feature will not work in:
167
+
168
+ - Headless environments without browser access
169
+ - Remote SSH sessions without X11 forwarding
170
+ - Containerized environments without browser support
171
+
172
+ #### Managing OAuth Authentication
173
+
174
+ Use the `/mcp auth` command to manage OAuth authentication:
175
+
176
+ ```bash
177
+ # List servers requiring authentication
178
+ /mcp auth
179
+
180
+ # Authenticate with a specific server
181
+ /mcp auth serverName
182
+
183
+ # Re-authenticate if tokens expire
184
+ /mcp auth serverName
185
+ ```
186
+
187
+ #### OAuth Configuration Properties
188
+
189
+ - **`enabled`** (boolean): Enable OAuth for this server
190
+ - **`clientId`** (string): OAuth client identifier (optional with dynamic registration)
191
+ - **`clientSecret`** (string): OAuth client secret (optional for public clients)
192
+ - **`authorizationUrl`** (string): OAuth authorization endpoint (auto-discovered if omitted)
193
+ - **`tokenUrl`** (string): OAuth token endpoint (auto-discovered if omitted)
194
+ - **`scopes`** (string[]): Required OAuth scopes
195
+ - **`redirectUri`** (string): Custom redirect URI (defaults to `http://localhost:7777/oauth/callback`)
196
+ - **`tokenParamName`** (string): Query parameter name for tokens in SSE URLs
197
+ - **`audiences`** (string[]): Audiences the token is valid for
198
+
199
+ #### Token Management
200
+
201
+ OAuth tokens are automatically:
202
+
203
+ - **Stored securely** in `~/.qwen/mcp-oauth-tokens.json`
204
+ - **Refreshed** when expired (if refresh tokens are available)
205
+ - **Validated** before each connection attempt
206
+ - **Cleaned up** when invalid or expired
207
+
208
+ #### Authentication Provider Type
209
+
210
+ You can specify the authentication provider type using the `authProviderType` property:
211
+
212
+ - **`authProviderType`** (string): Specifies the authentication provider. Can be one of the following:
213
+ - **`dynamic_discovery`** (default): The CLI will automatically discover the OAuth configuration from the server.
214
+ - **`google_credentials`**: The CLI will use the Google Application Default Credentials (ADC) to authenticate with the server. When using this provider, you must specify the required scopes.
215
+ - **`service_account_impersonation`**: The CLI will impersonate a Google Cloud Service Account to authenticate with the server. This is useful for accessing IAP-protected services (this was specifically designed for Cloud Run services).
216
+
217
+ #### Google Credentials
218
+
219
+ ```json
220
+ {
221
+ "mcpServers": {
222
+ "googleCloudServer": {
223
+ "httpUrl": "https://my-gcp-service.run.app/mcp",
224
+ "authProviderType": "google_credentials",
225
+ "oauth": {
226
+ "scopes": ["https://www.googleapis.com/auth/userinfo.email"]
227
+ }
228
+ }
229
+ }
230
+ }
231
+ ```
232
+
233
+ #### Service Account Impersonation
234
+
235
+ To authenticate with a server using Service Account Impersonation, you must set the `authProviderType` to `service_account_impersonation` and provide the following properties:
236
+
237
+ - **`targetAudience`** (string): The OAuth Client ID allowslisted on the IAP-protected application you are trying to access.
238
+ - **`targetServiceAccount`** (string): The email address of the Google Cloud Service Account to impersonate.
239
+
240
+ The CLI will use your local Application Default Credentials (ADC) to generate an OIDC ID token for the specified service account and audience. This token will then be used to authenticate with the MCP server.
241
+
242
+ #### Setup Instructions
243
+
244
+ 1. **[Create](https://cloud.google.com/iap/docs/oauth-client-creation) or use an existing OAuth 2.0 client ID.** To use an existing OAuth 2.0 client ID, follow the steps in [How to share OAuth Clients](https://cloud.google.com/iap/docs/sharing-oauth-clients).
245
+ 2. **Add the OAuth ID to the allowlist for [programmatic access](https://cloud.google.com/iap/docs/sharing-oauth-clients#programmatic_access) for the application.** Since Cloud Run is not yet a supported resource type in gcloud iap, you must allowlist the Client ID on the project.
246
+ 3. **Create a service account.** [Documentation](https://cloud.google.com/iam/docs/service-accounts-create#creating), [Cloud Console Link](https://console.cloud.google.com/iam-admin/serviceaccounts)
247
+ 4. **Add both the service account and users to the IAP Policy** in the "Security" tab of the Cloud Run service itself or via gcloud.
248
+ 5. **Grant all users and groups** who will access the MCP Server the necessary permissions to [impersonate the service account](https://cloud.google.com/docs/authentication/use-service-account-impersonation) (i.e., `roles/iam.serviceAccountTokenCreator`).
249
+ 6. **[Enable](https://console.cloud.google.com/apis/library/iamcredentials.googleapis.com) the IAM Credentials API** for your project.
250
+
251
+ ### Example Configurations
252
+
253
+ #### Python MCP Server (Stdio)
254
+
255
+ ```json
256
+ {
257
+ "mcpServers": {
258
+ "pythonTools": {
259
+ "command": "python",
260
+ "args": ["-m", "my_mcp_server", "--port", "8080"],
261
+ "cwd": "./mcp-servers/python",
262
+ "env": {
263
+ "DATABASE_URL": "$DB_CONNECTION_STRING",
264
+ "API_KEY": "${EXTERNAL_API_KEY}"
265
+ },
266
+ "timeout": 15000
267
+ }
268
+ }
269
+ }
270
+ ```
271
+
272
+ #### Node.js MCP Server (Stdio)
273
+
274
+ ```json
275
+ {
276
+ "mcpServers": {
277
+ "nodeServer": {
278
+ "command": "node",
279
+ "args": ["dist/server.js", "--verbose"],
280
+ "cwd": "./mcp-servers/node",
281
+ "trust": true
282
+ }
283
+ }
284
+ }
285
+ ```
286
+
287
+ #### Docker-based MCP Server
288
+
289
+ ```json
290
+ {
291
+ "mcpServers": {
292
+ "dockerizedServer": {
293
+ "command": "docker",
294
+ "args": [
295
+ "run",
296
+ "-i",
297
+ "--rm",
298
+ "-e",
299
+ "API_KEY",
300
+ "-v",
301
+ "${PWD}:/workspace",
302
+ "my-mcp-server:latest"
303
+ ],
304
+ "env": {
305
+ "API_KEY": "$EXTERNAL_SERVICE_TOKEN"
306
+ }
307
+ }
308
+ }
309
+ }
310
+ ```
311
+
312
+ #### HTTP-based MCP Server
313
+
314
+ ```json
315
+ {
316
+ "mcpServers": {
317
+ "httpServer": {
318
+ "httpUrl": "http://localhost:3000/mcp",
319
+ "timeout": 5000
320
+ }
321
+ }
322
+ }
323
+ ```
324
+
325
+ #### HTTP-based MCP Server with Custom Headers
326
+
327
+ ```json
328
+ {
329
+ "mcpServers": {
330
+ "httpServerWithAuth": {
331
+ "httpUrl": "http://localhost:3000/mcp",
332
+ "headers": {
333
+ "Authorization": "Bearer your-api-token",
334
+ "X-Custom-Header": "custom-value",
335
+ "Content-Type": "application/json"
336
+ },
337
+ "timeout": 5000
338
+ }
339
+ }
340
+ }
341
+ ```
342
+
343
+ #### MCP Server with Tool Filtering
344
+
345
+ ```json
346
+ {
347
+ "mcpServers": {
348
+ "filteredServer": {
349
+ "command": "python",
350
+ "args": ["-m", "my_mcp_server"],
351
+ "includeTools": ["safe_tool", "file_reader", "data_processor"],
352
+ // "excludeTools": ["dangerous_tool", "file_deleter"],
353
+ "timeout": 30000
354
+ }
355
+ }
356
+ }
357
+ ```
358
+
359
+ ### SSE MCP Server with SA Impersonation
360
+
361
+ ```json
362
+ {
363
+ "mcpServers": {
364
+ "myIapProtectedServer": {
365
+ "url": "https://my-iap-service.run.app/sse",
366
+ "authProviderType": "service_account_impersonation",
367
+ "targetAudience": "YOUR_IAP_CLIENT_ID.apps.googleusercontent.com",
368
+ "targetServiceAccount": "your-sa@your-project.iam.gserviceaccount.com"
369
+ }
370
+ }
371
+ }
372
+ ```
373
+
374
+ ## Discovery Process Deep Dive
375
+
376
+ When Qwen Code starts, it performs MCP server discovery through the following detailed process:
377
+
378
+ ### 1. Server Iteration and Connection
379
+
380
+ For each configured server in `mcpServers`:
381
+
382
+ 1. **Status tracking begins:** Server status is set to `CONNECTING`
383
+ 2. **Transport selection:** Based on configuration properties:
384
+ - `httpUrl` → `StreamableHTTPClientTransport`
385
+ - `url` → `SSEClientTransport`
386
+ - `command` → `StdioClientTransport`
387
+ 3. **Connection establishment:** The MCP client attempts to connect with the configured timeout
388
+ 4. **Error handling:** Connection failures are logged and the server status is set to `DISCONNECTED`
389
+
390
+ ### 2. Tool Discovery
391
+
392
+ Upon successful connection:
393
+
394
+ 1. **Tool listing:** The client calls the MCP server's tool listing endpoint
395
+ 2. **Schema validation:** Each tool's function declaration is validated
396
+ 3. **Tool filtering:** Tools are filtered based on `includeTools` and `excludeTools` configuration
397
+ 4. **Name sanitization:** Tool names are cleaned to meet Qwen API requirements:
398
+ - Invalid characters (non-alphanumeric, underscore, dot, hyphen) are replaced with underscores
399
+ - Names longer than 63 characters are truncated with middle replacement (`___`)
400
+
401
+ ### 3. Conflict Resolution
402
+
403
+ When multiple servers expose tools with the same name:
404
+
405
+ 1. **First registration wins:** The first server to register a tool name gets the unprefixed name
406
+ 2. **Automatic prefixing:** Subsequent servers get prefixed names: `serverName__toolName`
407
+ 3. **Registry tracking:** The tool registry maintains mappings between server names and their tools
408
+
409
+ ### 4. Schema Processing
410
+
411
+ Tool parameter schemas undergo sanitization for API compatibility:
412
+
413
+ - **`$schema` properties** are removed
414
+ - **`additionalProperties`** are stripped
415
+ - **`anyOf` with `default`** have their default values removed (Vertex AI compatibility)
416
+ - **Recursive processing** applies to nested schemas
417
+
418
+ ### 5. Connection Management
419
+
420
+ After discovery:
421
+
422
+ - **Persistent connections:** Servers that successfully register tools maintain their connections
423
+ - **Cleanup:** Servers that provide no usable tools have their connections closed
424
+ - **Status updates:** Final server statuses are set to `CONNECTED` or `DISCONNECTED`
425
+
426
+ ## Tool Execution Flow
427
+
428
+ When the model decides to use an MCP tool, the following execution flow occurs:
429
+
430
+ ### 1. Tool Invocation
431
+
432
+ The model generates a `FunctionCall` with:
433
+
434
+ - **Tool name:** The registered name (potentially prefixed)
435
+ - **Arguments:** JSON object matching the tool's parameter schema
436
+
437
+ ### 2. Confirmation Process
438
+
439
+ Each `DiscoveredMCPTool` implements sophisticated confirmation logic:
440
+
441
+ #### Trust-based Bypass
442
+
443
+ ```typescript
444
+ if (this.trust) {
445
+ return false; // No confirmation needed
446
+ }
447
+ ```
448
+
449
+ #### Dynamic Allow-listing
450
+
451
+ The system maintains internal allow-lists for:
452
+
453
+ - **Server-level:** `serverName` → All tools from this server are trusted
454
+ - **Tool-level:** `serverName.toolName` → This specific tool is trusted
455
+
456
+ #### User Choice Handling
457
+
458
+ When confirmation is required, users can choose:
459
+
460
+ - **Proceed once:** Execute this time only
461
+ - **Always allow this tool:** Add to tool-level allow-list
462
+ - **Always allow this server:** Add to server-level allow-list
463
+ - **Cancel:** Abort execution
464
+
465
+ ### 3. Execution
466
+
467
+ Upon confirmation (or trust bypass):
468
+
469
+ 1. **Parameter preparation:** Arguments are validated against the tool's schema
470
+ 2. **MCP call:** The underlying `CallableTool` invokes the server with:
471
+
472
+ ```typescript
473
+ const functionCalls = [
474
+ {
475
+ name: this.serverToolName, // Original server tool name
476
+ args: params,
477
+ },
478
+ ];
479
+ ```
480
+
481
+ 3. **Response processing:** Results are formatted for both LLM context and user display
482
+
483
+ ### 4. Response Handling
484
+
485
+ The execution result contains:
486
+
487
+ - **`llmContent`:** Raw response parts for the language model's context
488
+ - **`returnDisplay`:** Formatted output for user display (often JSON in markdown code blocks)
489
+
490
+ ## How to interact with your MCP server
491
+
492
+ ### Using the `/mcp` Command
493
+
494
+ The `/mcp` command provides comprehensive information about your MCP server setup:
495
+
496
+ ```bash
497
+ /mcp
498
+ ```
499
+
500
+ This displays:
501
+
502
+ - **Server list:** All configured MCP servers
503
+ - **Connection status:** `CONNECTED`, `CONNECTING`, or `DISCONNECTED`
504
+ - **Server details:** Configuration summary (excluding sensitive data)
505
+ - **Available tools:** List of tools from each server with descriptions
506
+ - **Discovery state:** Overall discovery process status
507
+
508
+ ### Example `/mcp` Output
509
+
510
+ ```
511
+ MCP Servers Status:
512
+
513
+ 📡 pythonTools (CONNECTED)
514
+ Command: python -m my_mcp_server --port 8080
515
+ Working Directory: ./mcp-servers/python
516
+ Timeout: 15000ms
517
+ Tools: calculate_sum, file_analyzer, data_processor
518
+
519
+ 🔌 nodeServer (DISCONNECTED)
520
+ Command: node dist/server.js --verbose
521
+ Error: Connection refused
522
+
523
+ 🐳 dockerizedServer (CONNECTED)
524
+ Command: docker run -i --rm -e API_KEY my-mcp-server:latest
525
+ Tools: docker__deploy, docker__status
526
+
527
+ Discovery State: COMPLETED
528
+ ```
529
+
530
+ ### Tool Usage
531
+
532
+ Once discovered, MCP tools are available to the Qwen model like built-in tools. The model will automatically:
533
+
534
+ 1. **Select appropriate tools** based on your requests
535
+ 2. **Present confirmation dialogs** (unless the server is trusted)
536
+ 3. **Execute tools** with proper parameters
537
+ 4. **Display results** in a user-friendly format
538
+
539
+ ## Status Monitoring and Troubleshooting
540
+
541
+ ### Connection States
542
+
543
+ The MCP integration tracks several states:
544
+
545
+ #### Server Status (`MCPServerStatus`)
546
+
547
+ - **`DISCONNECTED`:** Server is not connected or has errors
548
+ - **`CONNECTING`:** Connection attempt in progress
549
+ - **`CONNECTED`:** Server is connected and ready
550
+
551
+ #### Discovery State (`MCPDiscoveryState`)
552
+
553
+ - **`NOT_STARTED`:** Discovery hasn't begun
554
+ - **`IN_PROGRESS`:** Currently discovering servers
555
+ - **`COMPLETED`:** Discovery finished (with or without errors)
556
+
557
+ ### Common Issues and Solutions
558
+
559
+ #### Server Won't Connect
560
+
561
+ **Symptoms:** Server shows `DISCONNECTED` status
562
+
563
+ **Troubleshooting:**
564
+
565
+ 1. **Check configuration:** Verify `command`, `args`, and `cwd` are correct
566
+ 2. **Test manually:** Run the server command directly to ensure it works
567
+ 3. **Check dependencies:** Ensure all required packages are installed
568
+ 4. **Review logs:** Look for error messages in the CLI output
569
+ 5. **Verify permissions:** Ensure the CLI can execute the server command
570
+
571
+ #### No Tools Discovered
572
+
573
+ **Symptoms:** Server connects but no tools are available
574
+
575
+ **Troubleshooting:**
576
+
577
+ 1. **Verify tool registration:** Ensure your server actually registers tools
578
+ 2. **Check MCP protocol:** Confirm your server implements the MCP tool listing correctly
579
+ 3. **Review server logs:** Check stderr output for server-side errors
580
+ 4. **Test tool listing:** Manually test your server's tool discovery endpoint
581
+
582
+ #### Tools Not Executing
583
+
584
+ **Symptoms:** Tools are discovered but fail during execution
585
+
586
+ **Troubleshooting:**
587
+
588
+ 1. **Parameter validation:** Ensure your tool accepts the expected parameters
589
+ 2. **Schema compatibility:** Verify your input schemas are valid JSON Schema
590
+ 3. **Error handling:** Check if your tool is throwing unhandled exceptions
591
+ 4. **Timeout issues:** Consider increasing the `timeout` setting
592
+
593
+ #### Sandbox Compatibility
594
+
595
+ **Symptoms:** MCP servers fail when sandboxing is enabled
596
+
597
+ **Solutions:**
598
+
599
+ 1. **Docker-based servers:** Use Docker containers that include all dependencies
600
+ 2. **Path accessibility:** Ensure server executables are available in the sandbox
601
+ 3. **Network access:** Configure sandbox to allow necessary network connections
602
+ 4. **Environment variables:** Verify required environment variables are passed through
603
+
604
+ ### Debugging Tips
605
+
606
+ 1. **Enable debug mode:** Run the CLI with `--debug` for verbose output
607
+ 2. **Check stderr:** MCP server stderr is captured and logged (INFO messages filtered)
608
+ 3. **Test isolation:** Test your MCP server independently before integrating
609
+ 4. **Incremental setup:** Start with simple tools before adding complex functionality
610
+ 5. **Use `/mcp` frequently:** Monitor server status during development
611
+
612
+ ## Important Notes
613
+
614
+ ### Security Considerations
615
+
616
+ - **Trust settings:** The `trust` option bypasses all confirmation dialogs. Use cautiously and only for servers you completely control
617
+ - **Access tokens:** Be security-aware when configuring environment variables containing API keys or tokens
618
+ - **Sandbox compatibility:** When using sandboxing, ensure MCP servers are available within the sandbox environment
619
+ - **Private data:** Using broadly scoped personal access tokens can lead to information leakage between repositories
620
+
621
+ ### Performance and Resource Management
622
+
623
+ - **Connection persistence:** The CLI maintains persistent connections to servers that successfully register tools
624
+ - **Automatic cleanup:** Connections to servers providing no tools are automatically closed
625
+ - **Timeout management:** Configure appropriate timeouts based on your server's response characteristics
626
+ - **Resource monitoring:** MCP servers run as separate processes and consume system resources
627
+
628
+ ### Schema Compatibility
629
+
630
+ - **Schema compliance mode:** By default (`schemaCompliance: "auto"`), tool schemas are passed through as-is. Set `"model": { "generationConfig": { "schemaCompliance": "openapi_30" } }` in your `settings.json` to convert models to Strict OpenAPI 3.0 format.
631
+ - **OpenAPI 3.0 transformations:** When `openapi_30` mode is enabled, the system handles:
632
+ - Nullable types: `["string", "null"]` -> `type: "string", nullable: true`
633
+ - Const values: `const: "foo"` -> `enum: ["foo"]`
634
+ - Exclusive limits: numeric `exclusiveMinimum` -> boolean form with `minimum`
635
+ - Keyword removal: `$schema`, `$id`, `dependencies`, `patternProperties`
636
+ - **Name sanitization:** Tool names are automatically sanitized to meet API requirements
637
+ - **Conflict resolution:** Tool name conflicts between servers are resolved through automatic prefixing
638
+
639
+ This comprehensive integration makes MCP servers a powerful way to extend the CLI's capabilities while maintaining security, reliability, and ease of use.
640
+
641
+ ## Returning Rich Content from Tools
642
+
643
+ MCP tools are not limited to returning simple text. You can return rich, multi-part content, including text, images, audio, and other binary data in a single tool response. This allows you to build powerful tools that can provide diverse information to the model in a single turn.
644
+
645
+ All data returned from the tool is processed and sent to the model as context for its next generation, enabling it to reason about or summarize the provided information.
646
+
647
+ ### How It Works
648
+
649
+ To return rich content, your tool's response must adhere to the MCP specification for a [`CallToolResult`](https://modelcontextprotocol.io/specification/2025-06-18/server/tools#tool-result). The `content` field of the result should be an array of `ContentBlock` objects. The CLI will correctly process this array, separating text from binary data and packaging it for the model.
650
+
651
+ You can mix and match different content block types in the `content` array. The supported block types include:
652
+
653
+ - `text`
654
+ - `image`
655
+ - `audio`
656
+ - `resource` (embedded content)
657
+ - `resource_link`
658
+
659
+ ### Example: Returning Text and an Image
660
+
661
+ Here is an example of a valid JSON response from an MCP tool that returns both a text description and an image:
662
+
663
+ ```json
664
+ {
665
+ "content": [
666
+ {
667
+ "type": "text",
668
+ "text": "Here is the logo you requested."
669
+ },
670
+ {
671
+ "type": "image",
672
+ "data": "BASE64_ENCODED_IMAGE_DATA_HERE",
673
+ "mimeType": "image/png"
674
+ },
675
+ {
676
+ "type": "text",
677
+ "text": "The logo was created in 2025."
678
+ }
679
+ ]
680
+ }
681
+ ```
682
+
683
+ When Qwen Code receives this response, it will:
684
+
685
+ 1. Extract all the text and combine it into a single `functionResponse` part for the model.
686
+ 2. Present the image data as a separate `inlineData` part.
687
+ 3. Provide a clean, user-friendly summary in the CLI, indicating that both text and an image were received.
688
+
689
+ This enables you to build sophisticated tools that can provide rich, multi-modal context to the Qwen model.
690
+
691
+ ## MCP Prompts as Slash Commands
692
+
693
+ In addition to tools, MCP servers can expose predefined prompts that can be executed as slash commands within Qwen Code. This allows you to create shortcuts for common or complex queries that can be easily invoked by name.
694
+
695
+ ### Defining Prompts on the Server
696
+
697
+ Here's a small example of a stdio MCP server that defines prompts:
698
+
699
+ ```ts
700
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
701
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
702
+ import { z } from 'zod';
703
+
704
+ const server = new McpServer({
705
+ name: 'prompt-server',
706
+ version: '1.0.0',
707
+ });
708
+
709
+ server.registerPrompt(
710
+ 'poem-writer',
711
+ {
712
+ title: 'Poem Writer',
713
+ description: 'Write a nice haiku',
714
+ argsSchema: { title: z.string(), mood: z.string().optional() },
715
+ },
716
+ ({ title, mood }) => ({
717
+ messages: [
718
+ {
719
+ role: 'user',
720
+ content: {
721
+ type: 'text',
722
+ text: `Write a haiku${mood ? ` with the mood ${mood}` : ''} called ${title}. Note that a haiku is 5 syllables followed by 7 syllables followed by 5 syllables `,
723
+ },
724
+ },
725
+ ],
726
+ }),
727
+ );
728
+
729
+ const transport = new StdioServerTransport();
730
+ await server.connect(transport);
731
+ ```
732
+
733
+ This can be included in `settings.json` under `mcpServers` with:
734
+
735
+ ```json
736
+ {
737
+ "mcpServers": {
738
+ "nodeServer": {
739
+ "command": "node",
740
+ "args": ["filename.ts"]
741
+ }
742
+ }
743
+ }
744
+ ```
745
+
746
+ ### Invoking Prompts
747
+
748
+ Once a prompt is discovered, you can invoke it using its name as a slash command. The CLI will automatically handle parsing arguments.
749
+
750
+ ```bash
751
+ /poem-writer --title="Qwen Code" --mood="reverent"
752
+ ```
753
+
754
+ or, using positional arguments:
755
+
756
+ ```bash
757
+ /poem-writer "Qwen Code" reverent
758
+ ```
759
+
760
+ When you run this command, the CLI executes the `prompts/get` method on the MCP server with the provided arguments. The server is responsible for substituting the arguments into the prompt template and returning the final prompt text. The CLI then sends this prompt to the model for execution. This provides a convenient way to automate and share common workflows.
761
+
762
+ ## Managing MCP Servers with `qwen mcp`
763
+
764
+ While you can always configure MCP servers by manually editing your `settings.json` file, the CLI provides a convenient set of commands to manage your server configurations programmatically. These commands streamline the process of adding, listing, and removing MCP servers without needing to directly edit JSON files.
765
+
766
+ ### Adding a Server (`qwen mcp add`)
767
+
768
+ The `add` command configures a new MCP server in your `settings.json`. Based on the scope (`-s, --scope`), it will be added to either the user config `~/.qwen/settings.json` or the project config `.qwen/settings.json` file.
769
+
770
+ **Command:**
771
+
772
+ ```bash
773
+ qwen mcp add [options] <name> <commandOrUrl> [args...]
774
+ ```
775
+
776
+ - `<name>`: A unique name for the server.
777
+ - `<commandOrUrl>`: The command to execute (for `stdio`) or the URL (for `http`/`sse`).
778
+ - `[args...]`: Optional arguments for a `stdio` command.
779
+
780
+ **Options (Flags):**
781
+
782
+ - `-s, --scope`: Configuration scope (user or project). [default: "project"]
783
+ - `-t, --transport`: Transport type (stdio, sse, http). [default: "stdio"]
784
+ - `-e, --env`: Set environment variables (e.g. -e KEY=value).
785
+ - `-H, --header`: Set HTTP headers for SSE and HTTP transports (e.g. -H "X-Api-Key: abc123" -H "Authorization: Bearer abc123").
786
+ - `--timeout`: Set connection timeout in milliseconds.
787
+ - `--trust`: Trust the server (bypass all tool call confirmation prompts).
788
+ - `--description`: Set the description for the server.
789
+ - `--include-tools`: A comma-separated list of tools to include.
790
+ - `--exclude-tools`: A comma-separated list of tools to exclude.
791
+
792
+ #### Adding an stdio server
793
+
794
+ This is the default transport for running local servers.
795
+
796
+ ```bash
797
+ # Basic syntax
798
+ qwen mcp add <name> <command> [args...]
799
+
800
+ # Example: Adding a local server
801
+ qwen mcp add my-stdio-server -e API_KEY=123 /path/to/server arg1 arg2 arg3
802
+
803
+ # Example: Adding a local python server
804
+ qwen mcp add python-server python server.py --port 8080
805
+ ```
806
+
807
+ #### Adding an HTTP server
808
+
809
+ This transport is for servers that use the streamable HTTP transport.
810
+
811
+ ```bash
812
+ # Basic syntax
813
+ qwen mcp add --transport http <name> <url>
814
+
815
+ # Example: Adding an HTTP server
816
+ qwen mcp add --transport http http-server https://api.example.com/mcp/
817
+
818
+ # Example: Adding an HTTP server with an authentication header
819
+ qwen mcp add --transport http secure-http https://api.example.com/mcp/ --header "Authorization: Bearer abc123"
820
+ ```
821
+
822
+ #### Adding an SSE server
823
+
824
+ This transport is for servers that use Server-Sent Events (SSE).
825
+
826
+ ```bash
827
+ # Basic syntax
828
+ qwen mcp add --transport sse <name> <url>
829
+
830
+ # Example: Adding an SSE server
831
+ qwen mcp add --transport sse sse-server https://api.example.com/sse/
832
+
833
+ # Example: Adding an SSE server with an authentication header
834
+ qwen mcp add --transport sse secure-sse https://api.example.com/sse/ --header "Authorization: Bearer abc123"
835
+ ```
836
+
837
+ ### Managing Servers (`qwen mcp`)
838
+
839
+ To view and manage all MCP servers currently configured, use the `manage` command or simply `qwen mcp`. This opens an interactive TUI dialog where you can:
840
+
841
+ - View all MCP servers with their connection status
842
+ - Enable/disable servers
843
+ - Reconnect to disconnected servers
844
+ - View tools and prompts provided by each server
845
+ - View server logs
846
+
847
+ **Command:**
848
+
849
+ ```bash
850
+ qwen mcp
851
+ # or
852
+ qwen mcp manage
853
+ ```
854
+
855
+ The management dialog provides a visual interface showing each server's name, configuration details, connection status, and available tools/prompts.
856
+
857
+ ### Removing a Server (`qwen mcp remove`)
858
+
859
+ To delete a server from your configuration, use the `remove` command with the server's name.
860
+
861
+ **Command:**
862
+
863
+ ```bash
864
+ qwen mcp remove <name>
865
+ ```
866
+
867
+ **Example:**
868
+
869
+ ```bash
870
+ qwen mcp remove my-server
871
+ ```
872
+
873
+ This will find and delete the "my-server" entry from the `mcpServers` object in the appropriate `settings.json` file based on the scope (`-s, --scope`).